28 #include "BlendedInterfacialModel.H" 29 #include "heatTransferModel.H" 40 template<
class BasePhaseSystem>
68 const phasePair& pair(phasePairIter());
128 H1*pair.phase1().thermo().T()
129 + H2*pair.phase2().thermo().T()
136 zeroGradientFvPatchScalarField::typeName
146 template<
class BasePhaseSystem>
154 template<
class BasePhaseSystem>
157 const phaseModel& phase
164 template<
class BasePhaseSystem>
168 const phasePairKey& key
173 return dmdtSign**dmdt_[key];
177 template<
class BasePhaseSystem>
184 tmp<volScalarField> tdmdt
206 const phasePair& pair(phasePairIter());
213 const phaseModel* phase1 = &pair.phase1();
214 const phaseModel* phase2 = &pair.phase2();
218 if (phase1 == &phase)
220 tdmdt() += this->dmdt(pair);
223 Swap(phase1, phase2);
231 template<
class BasePhaseSystem>
235 autoPtr<phaseSystem::momentumTransferTable>
248 const phasePair& pair(phasePairIter());
262 *eqns[pair.phase1().name()] += dmdt21*
U2 -
fvm::Sp(dmdt21,
U1);
263 *eqns[pair.phase2().name()] -= dmdt12*
U1 -
fvm::Sp(dmdt12,
U2);
270 template<
class BasePhaseSystem>
274 autoPtr<phaseSystem::heatTransferTable> eqnsPtr
295 heatTransferModelTable,
297 heatTransferModelIter
300 const phasePair& pair
305 const phaseModel* phase = &pair.phase1();
306 const phaseModel* otherPhase = &pair.phase2();
312 heatTransferModelIter()[pair.first()]->K()
316 heatTransferModelIter()[pair.second()]->K()
336 *eqns[phase->name()] +=
337 (*K)*(Tf - phase->thermo().T())
340 Swap(phase, otherPhase);
353 const phasePair& pair(phasePairIter());
360 const phaseModel& phase1 = pair.phase1();
361 const phaseModel& phase2 = pair.phase2();
374 *eqns[phase1.name()] +=
375 dmdt21*(phase1.thermo().he(phase1.thermo().p(), Tf))
379 *eqns[phase2.name()] -=
380 dmdt12*(phase2.thermo().he(phase2.thermo().p(), Tf))
389 template<
class BasePhaseSystem>
HeatAndMassTransferPhaseSystem(const fvMesh &)
Construct from fvMesh.
static const dimensionSet dimK
Coefficient dimensions.
const word & name() const
Calculate the matrix for implicit and explicit sources.
HashTable< autoPtr< phasePair >, phasePairKey, phasePairKey::hash > phasePairTable
virtual autoPtr< phaseSystem::momentumTransferTable > momentumTransfer() const
Return the momentum transfer matrices.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
void insert(const word &, T *)
Add at head of dictionary.
dimensionedScalar posPart(const dimensionedScalar &ds)
static word timeName(const scalar, const int precision=precision_)
Return time name of given scalar time.
virtual ~HeatAndMassTransferPhaseSystem()
Destructor.
const dimensionSet dimEnergy
phasePairTable phasePairs_
Phase pairs.
const dimensionSet dimDensity
tmp< fvMatrix< Type > > Sp(const DimensionedField< scalar, volMesh > &, const GeometricField< Type, fvPatchField, volMesh > &)
static word groupName(Name name, const word &group)
const Time & time() const
Return the top-level database.
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
virtual bool read()
Read base phaseProperties dictionary.
fvMatrix< scalar > fvScalarMatrix
static int compare(const Pair< word > &a, const Pair< word > &b)
Compare Pairs.
void generatePairsAndSubModels(const word &modelName, HashTable< autoPtr< modelType >, phasePairKey, phasePairKey::hash > &models)
Generate pairs and sub-model tables.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
dimensionedScalar negPart(const dimensionedScalar &ds)
HashPtrTable< fvScalarMatrix, word, string::hash > heatTransferTable
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
phaseSystem::momentumTransferTable & momentumTransfer(momentumTransferPtr())
HashPtrTable< fvVectorMatrix, word, string::hash > momentumTransferTable
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
GeometricField< vector, fvPatchField, volMesh > volVectorField
phaseModelList phaseModels_
Phase models.
virtual tmp< volScalarField > dmdt(const phasePairKey &key) const
Return the interfacial mass flow rate.
virtual bool transfersMass(const phaseModel &phase) const
Return true if there is mass transfer for phase.
Calculate the divergence of the given field.
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.
void correctBoundaryConditions()
Correct boundary field.
virtual autoPtr< phaseSystem::heatTransferTable > heatTransfer() const
Return the heat transfer matrices.
bool read(const char *, int32_t &)
const fvMesh & mesh_
Reference to the mesh.
const fvMesh & mesh() const
Constant access the mesh.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
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.