tmp<DimensionedField<scalar, volMesh> > thermoSingleLayer::Srho ( const label i ) const { const label vapId = thermo_.carrierId(thermo_.liquids().components()[liquidId_]); tmp<DimensionedField<scalar, volMesh> > tSrho ( new DimensionedField<scalar, volMesh> ( IOobject ( "thermoSingleLayer::Srho(" + Foam::name(i) + ")", time_.timeName(), primaryMesh(), IOobject::NO_READ, IOobject::NO_WRITE, false ), primaryMesh(), dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0.0) ) ); if (vapId == i) { scalarField& Srho = tSrho(); const scalarField& V = primaryMesh().V(); const scalar dt = time().deltaTValue(); forAll(intCoupledPatchIDs_, i) { const label filmPatchI = intCoupledPatchIDs_[i]; const mapDistribute& distMap = mappedPatches_[filmPatchI].map(); scalarField patchMass = primaryMassPCTrans_.boundaryField()[filmPatchI]; distMap.distribute(patchMass); const label primaryPatchI = primaryPatchIDs()[i]; const unallocLabelList& cells = primaryMesh().boundaryMesh()[primaryPatchI].faceCells(); forAll(patchMass, j) { Srho[cells[j]] = patchMass[j]/(V[cells[j]]*dt); } } }
tmp<DimensionedField<scalar, volMesh> > thermoSingleLayer::Srho() const { tmp<DimensionedField<scalar, volMesh> > tSrho ( new DimensionedField<scalar, volMesh> ( IOobject ( "thermoSingleLayer::Srho", time().timeName(), primaryMesh(), IOobject::NO_READ, IOobject::NO_WRITE, false ), primaryMesh(), dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0.0) ) ); scalarField& Srho = tSrho(); const scalarField& V = primaryMesh().V(); const scalar dt = time_.deltaTValue(); forAll(intCoupledPatchIDs(), i) { const label filmPatchI = intCoupledPatchIDs()[i]; const mapDistribute& distMap = mappedPatches_[filmPatchI].map(); scalarField patchMass = primaryMassPCTrans_.boundaryField()[filmPatchI]; distMap.distribute(patchMass); const label primaryPatchI = primaryPatchIDs()[i]; const unallocLabelList& cells = primaryMesh().boundaryMesh()[primaryPatchI].faceCells(); forAll(patchMass, j) { Srho[cells[j]] = patchMass[j]/(V[cells[j]]*dt); } } return tSrho; }
tmp<volScalarField::Internal> kinematicSingleLayer::Sh() const { return volScalarField::Internal::New ( typeName + ":Sh", primaryMesh(), dimensionedScalar(dimEnergy/dimVolume/dimTime, 0) ); }
tmp<volScalarField::Internal> kinematicSingleLayer::Sh() const { return tmp<volScalarField::Internal> ( new volScalarField::Internal ( IOobject ( typeName + ":Sh", time().timeName(), primaryMesh(), IOobject::NO_READ, IOobject::NO_WRITE, false ), primaryMesh(), dimensionedScalar("zero", dimEnergy/dimVolume/dimTime, 0.0) ) ); }
tmp<volScalarField::Internal> kinematicSingleLayer::Srho ( const label i ) const { return volScalarField::Internal::New ( typeName + ":Srho(" + Foam::name(i) + ")", primaryMesh(), dimensionedScalar(dimMass/dimVolume/dimTime, 0) ); }
tmp<volScalarField::Internal> kinematicSingleLayer::Srho ( const label i ) const { return tmp<volScalarField::Internal> ( new volScalarField::Internal ( IOobject ( typeName + ":Srho(" + Foam::name(i) + ")", time().timeName(), primaryMesh(), IOobject::NO_READ, IOobject::NO_WRITE, false ), primaryMesh(), dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0.0) ) ); }
const tmp<volScalarField> noPyrolysis::Cp() const { FatalErrorIn("const tmp<volScalarField>& noPyrolysis::Cp() const") << "Cp field not available for " << type() << abort(FatalError); return tmp<volScalarField> ( new volScalarField ( IOobject ( "noPyrolysis::Cp", time().timeName(), primaryMesh(), IOobject::NO_READ, IOobject::NO_WRITE, false ), primaryMesh(), dimensionedScalar("zero", dimEnergy/dimVolume/dimTime, 0.0) ) ); }
kinematicSingleLayer::kinematicSingleLayer ( const word& modelType, const fvMesh& mesh, const dimensionedVector& g, const word& regionType, const bool readFields ) : surfaceFilmModel(modelType, mesh, g, regionType), momentumPredictor_(solution().subDict("PISO").lookup("momentumPredictor")), nOuterCorr_(solution().subDict("PISO").lookupOrDefault("nOuterCorr", 1)), nCorr_(readLabel(solution().subDict("PISO").lookup("nCorr"))), nNonOrthCorr_ ( readLabel(solution().subDict("PISO").lookup("nNonOrthCorr")) ), cumulativeContErr_(0.0), deltaSmall_("deltaSmall", dimLength, SMALL), deltaCoLimit_(solution().lookupOrDefault("deltaCoLimit", 1e-4)), rho_ ( IOobject ( "rhof", time().timeName(), regionMesh(), IOobject::NO_READ, IOobject::AUTO_WRITE ), regionMesh(), dimensionedScalar("zero", dimDensity, 0.0), zeroGradientFvPatchScalarField::typeName ), mu_ ( IOobject ( "muf", time().timeName(), regionMesh(), IOobject::NO_READ, IOobject::AUTO_WRITE ), regionMesh(), dimensionedScalar("zero", dimPressure*dimTime, 0.0), zeroGradientFvPatchScalarField::typeName ), sigma_ ( IOobject ( "sigmaf", time().timeName(), regionMesh(), IOobject::NO_READ, IOobject::AUTO_WRITE ), regionMesh(), dimensionedScalar("zero", dimMass/sqr(dimTime), 0.0), zeroGradientFvPatchScalarField::typeName ), delta_ ( IOobject ( "deltaf", time().timeName(), regionMesh(), IOobject::MUST_READ, IOobject::AUTO_WRITE ), regionMesh() ), alpha_ ( IOobject ( "alpha", time().timeName(), regionMesh(), IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE ), regionMesh(), dimensionedScalar("zero", dimless, 0.0), zeroGradientFvPatchScalarField::typeName ), U_ ( IOobject ( "Uf", time().timeName(), regionMesh(), IOobject::MUST_READ, IOobject::AUTO_WRITE ), regionMesh() ), Us_ ( IOobject ( "Usf", time().timeName(), regionMesh(), IOobject::NO_READ, IOobject::NO_WRITE ), U_, zeroGradientFvPatchScalarField::typeName ), Uw_ ( IOobject ( "Uwf", time().timeName(), regionMesh(), IOobject::NO_READ, IOobject::NO_WRITE ), U_, zeroGradientFvPatchScalarField::typeName ), deltaRho_ ( IOobject ( delta_.name() + "*" + rho_.name(), time().timeName(), regionMesh(), IOobject::NO_READ, IOobject::NO_WRITE ), regionMesh(), dimensionedScalar("zero", delta_.dimensions()*rho_.dimensions(), 0.0), zeroGradientFvPatchScalarField::typeName ), phi_ ( IOobject ( "phi", time().timeName(), regionMesh(), IOobject::NO_READ, IOobject::AUTO_WRITE ), regionMesh(), dimensionedScalar("0", dimLength*dimMass/dimTime, 0.0) ), primaryMassTrans_ ( IOobject ( "primaryMassTrans", time().timeName(), regionMesh(), IOobject::NO_READ, IOobject::NO_WRITE ), regionMesh(), dimensionedScalar("zero", dimMass, 0.0), zeroGradientFvPatchScalarField::typeName ), cloudMassTrans_ ( IOobject ( "cloudMassTrans", time().timeName(), regionMesh(), IOobject::NO_READ, IOobject::NO_WRITE ), regionMesh(), dimensionedScalar("zero", dimMass, 0.0), zeroGradientFvPatchScalarField::typeName ), cloudDiameterTrans_ ( IOobject ( "cloudDiameterTrans", time().timeName(), regionMesh(), IOobject::NO_READ, IOobject::NO_WRITE ), regionMesh(), dimensionedScalar("zero", dimLength, -1.0), zeroGradientFvPatchScalarField::typeName ), USp_ ( IOobject ( "USpf", time().timeName(), regionMesh(), IOobject::NO_READ, IOobject::NO_WRITE ), regionMesh(), dimensionedVector ( "zero", dimMass*dimVelocity/dimArea/dimTime, Zero ), this->mappedPushedFieldPatchTypes<vector>() ), pSp_ ( IOobject ( "pSpf", time_.timeName(), regionMesh(), IOobject::NO_READ, IOobject::NO_WRITE ), regionMesh(), dimensionedScalar("zero", dimPressure, 0.0), this->mappedPushedFieldPatchTypes<scalar>() ), rhoSp_ ( IOobject ( "rhoSpf", time_.timeName(), regionMesh(), IOobject::NO_READ, IOobject::NO_WRITE ), regionMesh(), dimensionedScalar("zero", dimMass/dimTime/dimArea, 0.0), this->mappedPushedFieldPatchTypes<scalar>() ), USpPrimary_ ( IOobject ( USp_.name(), // must have same name as USp_ to enable mapping time().timeName(), primaryMesh(), IOobject::NO_READ, IOobject::NO_WRITE ), primaryMesh(), dimensionedVector("zero", USp_.dimensions(), Zero) ), pSpPrimary_ ( IOobject ( pSp_.name(), // must have same name as pSp_ to enable mapping time().timeName(), primaryMesh(), IOobject::NO_READ, IOobject::NO_WRITE ), primaryMesh(), dimensionedScalar("zero", pSp_.dimensions(), 0.0) ), rhoSpPrimary_ ( IOobject ( rhoSp_.name(), // must have same name as rhoSp_ to enable mapping time().timeName(), primaryMesh(), IOobject::NO_READ, IOobject::NO_WRITE ), primaryMesh(), dimensionedScalar("zero", rhoSp_.dimensions(), 0.0) ), UPrimary_ ( IOobject ( "U", // must have same name as U to enable mapping time().timeName(), regionMesh(), IOobject::NO_READ, IOobject::NO_WRITE ), regionMesh(), dimensionedVector("zero", dimVelocity, Zero), this->mappedFieldAndInternalPatchTypes<vector>() ), pPrimary_ ( IOobject ( "p", // must have same name as p to enable mapping time().timeName(), regionMesh(), IOobject::NO_READ, IOobject::NO_WRITE ), regionMesh(), dimensionedScalar("zero", dimPressure, 0.0), this->mappedFieldAndInternalPatchTypes<scalar>() ), rhoPrimary_ ( IOobject ( "rho", // must have same name as rho to enable mapping time().timeName(), regionMesh(), IOobject::NO_READ, IOobject::NO_WRITE ), regionMesh(), dimensionedScalar("zero", dimDensity, 0.0), this->mappedFieldAndInternalPatchTypes<scalar>() ), muPrimary_ ( IOobject ( "thermo:mu", // must have same name as mu to enable mapping time().timeName(), regionMesh(), IOobject::NO_READ, IOobject::NO_WRITE ), regionMesh(), dimensionedScalar("zero", dimPressure*dimTime, 0.0), this->mappedFieldAndInternalPatchTypes<scalar>() ), filmThermo_(filmThermoModel::New(*this, coeffs_)), availableMass_(regionMesh().nCells(), 0.0), injection_(*this, coeffs_), transfer_(*this, coeffs_), turbulence_(filmTurbulenceModel::New(*this, coeffs_)), forces_(*this, coeffs_), addedMassTotal_(0.0) { if (readFields) { transferPrimaryRegionThermoFields(); correctAlpha(); correctThermoFields(); deltaRho_ == delta_*rho_; surfaceScalarField phi0 ( IOobject ( "phi", time().timeName(), regionMesh(), IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE, false ), fvc::flux(deltaRho_*U_) ); phi_ == phi0; } }
void Foam::regionModels::regionModel::initialise() { if (debug) { Pout<< "regionModel::initialise()" << endl; } label nBoundaryFaces = 0; DynamicList<label> primaryPatchIDs; DynamicList<label> intCoupledPatchIDs; const polyBoundaryMesh& rbm = regionMesh().boundaryMesh(); const polyBoundaryMesh& pbm = primaryMesh().boundaryMesh(); mappedPatches_.setSize(rbm.size()); forAll(rbm, patchI) { const polyPatch& regionPatch = rbm[patchI]; if (isA<directMappedWallPolyPatch>(regionPatch)) { if (debug) { Pout<< "found " << directMappedWallPolyPatch::typeName << " " << regionPatch.name() << endl; } intCoupledPatchIDs.append(patchI); nBoundaryFaces += regionPatch.faceCells().size(); const directMappedWallPolyPatch& dmp = refCast<const directMappedWallPolyPatch>(regionPatch); const label primaryPatchI = dmp.samplePolyPatch().index(); primaryPatchIDs.append(primaryPatchI); mappedPatches_.set ( patchI, new directMappedPatchBase ( pbm[primaryPatchI], regionMesh().name(), directMappedPatchBase::NEARESTPATCHFACE, regionPatch.name(), vector::zero ) ); } } primaryPatchIDs_.transfer(primaryPatchIDs); intCoupledPatchIDs_.transfer(intCoupledPatchIDs); // mappedPatches_.resize(nCoupledPatches); if (nBoundaryFaces == 0) { WarningIn("regionModel::initialise()") << "Region model being applied without direct mapped boundary " << "conditions" << endl; } }