28 #include "BlendedInterfacialModel.H" 29 #include "heatTransferModel.H" 41 template<
class BasePhaseSystem>
69 const phasePair& pair(phasePairIter());
129 H1*pair.phase1().thermo().T()
130 + H2*pair.phase2().thermo().T()
137 zeroGradientFvPatchScalarField::typeName
147 template<
class BasePhaseSystem>
155 template<
class BasePhaseSystem>
158 const phaseModel& phase
165 template<
class BasePhaseSystem>
169 const phasePairKey& key
174 return dmdtSign**dmdt_[key];
178 template<
class BasePhaseSystem>
185 tmp<volScalarField> tdmdt
207 const phasePair& pair(phasePairIter());
214 const phaseModel* phase1 = &pair.phase1();
215 const phaseModel* phase2 = &pair.phase2();
219 if (phase1 == &phase)
221 tdmdt.ref() += this->dmdt(pair);
224 Swap(phase1, phase2);
232 template<
class BasePhaseSystem>
236 autoPtr<phaseSystem::momentumTransferTable>
249 const phasePair& pair(phasePairIter());
263 *eqns[pair.phase1().name()] += dmdt21*
U2 -
fvm::Sp(dmdt21,
U1);
264 *eqns[pair.phase2().name()] -= dmdt12*
U1 -
fvm::Sp(dmdt12,
U2);
271 template<
class BasePhaseSystem>
275 autoPtr<phaseSystem::heatTransferTable> eqnsPtr
296 heatTransferModelTable,
298 heatTransferModelIter
301 const phasePair& pair
306 const phaseModel* phase = &pair.phase1();
307 const phaseModel* otherPhase = &pair.phase2();
313 heatTransferModelIter()[pair.first()]->K()
317 heatTransferModelIter()[pair.second()]->K()
337 *eqns[phase->name()] +=
338 (*K)*(Tf - phase->thermo().T())
341 Swap(phase, otherPhase);
354 const phasePair& pair(phasePairIter());
361 const phaseModel& phase1 = pair.phase1();
362 const phaseModel& phase2 = pair.phase2();
375 *eqns[phase1.name()] +=
376 dmdt21*(phase1.thermo().he(phase1.thermo().p(), Tf))
380 *eqns[phase2.name()] -=
381 dmdt12*(phase2.thermo().he(phase2.thermo().p(), Tf))
390 template<
class BasePhaseSystem>
fvMatrix< scalar > fvScalarMatrix
#define forAll(list, i)
Loop across all elements in list.
HashTable< autoPtr< phasePair >, phasePairKey, phasePairKey::hash > phasePairTable
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
virtual autoPtr< phaseSystem::momentumTransferTable > momentumTransfer() const
Return the momentum transfer matrices.
tmp< fvMatrix< Type > > Sp(const DimensionedField< scalar, volMesh > &, const GeometricField< Type, fvPatchField, volMesh > &)
phasePairTable phasePairs_
Phase pairs.
static int compare(const Pair< word > &a, const Pair< word > &b)
Compare Pairs.
IOobject(const word &name, const fileName &instance, const objectRegistry ®istry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true)
Construct from name, instance, registry, io options.
virtual bool transfersMass(const phaseModel &phase) const
Return true if there is mass transfer for phase.
static word timeName(const scalar, const int precision=precision_)
Return time name of given scalar time.
GeometricField< vector, fvPatchField, volMesh > volVectorField
dimensionedScalar posPart(const dimensionedScalar &ds)
phaseModelList phaseModels_
Phase models.
void insert(const word &, T *)
Add at head of dictionary.
static const dimensionSet dimK
Coefficient dimensions.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
HashPtrTable< fvScalarMatrix, word, string::hash > heatTransferTable
bool read(const char *, int32_t &)
const fvMesh & mesh() const
Constant access the mesh.
phaseSystem::momentumTransferTable & momentumTransfer(momentumTransferPtr())
static word groupName(Name name, const word &group)
virtual ~HeatAndMassTransferPhaseSystem()
Destructor.
HashPtrTable< fvVectorMatrix, word, string::hash > momentumTransferTable
const fvMesh & mesh_
Reference to the mesh.
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
virtual tmp< volScalarField > dmdt(const phasePairKey &key) const
Return the interfacial mass flow rate.
Calculate the divergence of the given field.
HeatAndMassTransferPhaseSystem(const fvMesh &)
Construct from fvMesh.
const dimensionSet dimEnergy
const dimensionSet dimDensity
const word & name() const
void generatePairsAndSubModels(const word &modelName, HashTable< autoPtr< modelType >, phasePairKey, phasePairKey::hash > &models)
Generate pairs and sub-model tables.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
void correctBoundaryConditions()
Correct boundary field.
virtual autoPtr< phaseSystem::heatTransferTable > heatTransfer() const
Return the heat transfer matrices.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
A class for managing temporary objects.
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
virtual bool read()
Read base phaseProperties dictionary.
Calculate the matrix for implicit and explicit sources.
dimensionedScalar negPart(const dimensionedScalar &ds)
const Time & time() const
Return the top-level database.