30 #include "BlendedInterfacialModel.H" 31 #include "heatTransferModel.H" 42 template<
class BasePhaseSystem>
51 this->generatePairsAndSubModels
66 const phasePair& pair = this->phasePairs_[heatTransferModelIter.key()];
71 <<
"A heat transfer model for the " << pair.
phase1().
name()
72 <<
" side of the " << pair <<
" pair is not specified" 78 <<
"A heat transfer model for the " << pair.
phase2().
name()
79 <<
" side of the " << pair <<
" pair is not specified" 92 const phasePair& pair = this->phasePairs_[heatTransferModelIter.key()];
112 this->
mesh().time().timeName(),
117 (H1*T1 + H2*T2)/
max(H1 + H2, HSmall)
126 template<
class BasePhaseSystem>
134 template<
class BasePhaseSystem>
162 heatTransferModelIter
167 this->phasePairs_[heatTransferModelIter.key()]
174 heatTransferModelIter().first()->
K(),
175 heatTransferModelIter().second()->
K()
224 if (this->heatTransferModels_.found(phasePairIter.key()))
246 template<
class BasePhaseSystem>
250 BasePhaseSystem::correctEnergyTransport();
252 correctInterfaceThermo();
256 template<
class BasePhaseSystem>
262 heatTransferModelTable,
264 heatTransferModelIter
269 this->phasePairs_[heatTransferModelIter.key()]
291 this->heatTransferModels_[pair].first()->
K()
296 this->heatTransferModels_[pair].second()->
K()
303 Tf = (H1*T1 + H2*T2 + dmdt*
L)/(H1 + H2);
305 Info<<
"Tf." << pair.name()
306 <<
": min = " <<
min(Tf.primitiveField())
307 <<
", mean = " <<
average(Tf.primitiveField())
308 <<
", max = " <<
max(Tf.primitiveField())
314 template<
class BasePhaseSystem>
virtual void correctInterfaceThermo()
Correct the interface thermodynamics.
dimensioned< Type > average(const DimensionedField< Type, GeoMesh > &f1)
fvMatrix< scalar > fvScalarMatrix
const multiphaseInter::phaseModel & phase2() const
errorManipArg< error, int > exit(error &err, const int errNo=1)
heatTransferModelTable heatTransferModels_
Heat transfer models.
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
const vector L(dict.get< vector >("L"))
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const multiphaseInter::phaseModel & phase1() const
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
Ostream & endl(Ostream &os)
Add newline and flush stream.
virtual const volScalarField & T() const
Temperature [K].
const word & name() const
The name of this phase.
A HashTable of pointers to objects of type <T>, with deallocation management of the pointers...
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object.
CGAL::Exact_predicates_exact_constructions_kernel K
dimensionedScalar posPart(const dimensionedScalar &ds)
virtual volScalarField & he()=0
Enthalpy/Internal energy [J/kg].
#define forAll(list, i)
Loop across all elements in list.
static const dimensionSet dimK
Coefficient dimensions.
virtual volScalarField & p()
Pressure [Pa].
static word groupName(StringType base, const word &group)
Create dot-delimited name.group string.
An ordered pair of two objects of type <T> with first() and second() elements.
bool set(const Key &key, T *ptr)
Assign a new entry, overwrites existing.
virtual tmp< volScalarField > K() const =0
Return the phase kinetic energy.
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
zeroField Sp(const Foam::zero, const GeometricField< Type, fvPatchField, volMesh > &)
A no-op source.
Calculate the divergence of the given field.
virtual void correctEnergyTransport()
Correct the energy transport e.g. alphat and Tf.
virtual autoPtr< phaseSystem::heatTransferTable > heatTransfer() const
Return the heat transfer matrices.
tmp< GeometricField< Type, PatchField, GeoMesh > > T() const
Return transpose (only if it is a tensor field)
virtual word name() const
Pair name.
bool ordered() const noexcept
Return the ordered flag.
const dimensionSet dimEnergy
HashPtrTable< volScalarField, phasePairKey, phasePairKey::hash > Tf_
Interface temperatures.
Mesh data needed to do the Finite Volume discretisation.
Automatically write from objectRegistry::writeObject()
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
const word & name() const
messageStream Info
Information stream (stdout output on master, null elsewhere)
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
virtual ~TwoResistanceHeatTransferPhaseSystem()
Destructor.
virtual bool read()
Read base phaseProperties dictionary.
Defines the attributes of an object for which implicit objectRegistry management is supported...
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
Description for mass transfer between a pair of phases. The direction of the mass transfer is from th...
virtual const rhoThermo & thermo() const =0
Return the thermophysical model.
const word & name() const
Calculate the finiteVolume matrix for implicit and explicit sources.
dimensionedScalar negPart(const dimensionedScalar &ds)
TwoResistanceHeatTransferPhaseSystem(const fvMesh &)
Construct from fvMesh.