33 template<
class BasePhaseSystem>
67 heatTransferModels_[interface];
76 case latentHeatTransfer::heat:
78 *eqns[phase1.
name()] +=
79 - HEff*(thermo2.
T() - thermo1.
T()) + H1*(Tf - thermo1.
T());
81 *eqns[phase2.
name()] +=
82 - HEff*(thermo1.
T() - thermo2.
T()) + H2*(Tf - thermo2.
T());
86 case latentHeatTransfer::mass:
90 *eqns[phase1.
name()] += H1Fac*dmdtf*L;
91 *eqns[phase2.
name()] += (1 - H1Fac)*dmdtf*L;
100 template<
class BasePhaseSystem>
132 heatTransferModels_[interface];
148 case latentHeatTransfer::heat:
154 case latentHeatTransfer::mass:
161 *eqns[phase1.
name()] += H1Fac*dmidtf*Li;
162 *eqns[phase2.
name()] += (1 - H1Fac)*dmidtf*Li;
172 case latentHeatTransfer::heat:
174 *eqns[phase1.
name()] +=
175 - HEff*(thermo2.
T() - thermo1.
T()) + H1*(Tf - thermo1.
T());
177 *eqns[phase2.
name()] +=
178 - HEff*(thermo1.
T() - thermo2.
T()) + H2*(Tf - thermo2.
T());
182 case latentHeatTransfer::mass:
195 template<
class BasePhaseSystem>
211 heatTransferModelIter
214 const phaseInterface&
interface = heatTransferModelIter()->interface();
218 if (!heatTransferModelIter()->haveModelInThe(iter()))
221 <<
"A heat transfer model for the " << iter().name()
222 <<
" side of the " << interface.name()
223 <<
" interface is not specified"
233 template<
class BasePhaseSystem>
241 template<
class BasePhaseSystem>
253 forAll(this->phaseModels_, phasei)
255 const phaseModel& phase = this->phaseModels_[phasei];
268 heatTransferModelIter
284 *eqns[phase1.
name()] +=
286 + H1/Cpv1*he1 -
fvm::Sp(H1/Cpv1, he1);
287 *eqns[phase2.
name()] +=
289 + H2/Cpv2*he2 -
fvm::Sp(H2/Cpv2, he2);
296 template<
class BasePhaseSystem>
300 BasePhaseSystem::predictThermophysicalTransport();
301 correctInterfaceThermo();
305 template<
class BasePhaseSystem>
309 BasePhaseSystem::correctThermophysicalTransport();
313 template<
class BasePhaseSystem>
#define forAll(list, i)
Loop across all elements in list.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
Generic GeometricField class.
bool insert(const Key &, const T &newElmt)
Insert a new hashedEntry.
const phaseInterface & interface() const
Access the interface.
const ModelType & modelInThe(const phaseModel &phase) const
Access the model within the given phase.
virtual autoPtr< phaseSystem::heatTransferTable > heatTransfer() const
Return the heat transfer matrices.
virtual void predictThermophysicalTransport()
Predict the energy transport e.g. alphat.
void addDmdtHefs(const phaseSystem::dmdtfTable &dmdtfs, const phaseSystem::dmdtfTable &Tfs, const latentHeatScheme scheme, const latentHeatTransfer transfer, phaseSystem::heatTransferTable &eqns) const
Add energy transfer terms which result from bulk phase changes.
virtual void correctThermophysicalTransport()
Correct the energy transport e.g. alphat.
TwoResistanceHeatTransferPhaseSystem(const fvMesh &)
Construct from fvMesh.
heatTransferModelTable heatTransferModels_
Heat transfer models.
void addDmidtHefs(const phaseSystem::dmidtfTable &dmidtfs, const phaseSystem::dmdtfTable &Tfs, const latentHeatScheme scheme, const latentHeatTransfer transfer, phaseSystem::heatTransferTable &eqns) const
Add energy transfer terms which result from specie phase changes.
virtual ~TwoResistanceHeatTransferPhaseSystem()
Destructor.
virtual bool read()
Read base phaseProperties dictionary.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
virtual const volScalarField & T() const =0
Temperature [K].
virtual const volScalarField & Cpv() const =0
Heat capacity at constant pressure/volume [J/kg/K].
virtual const volScalarField & he() const =0
Enthalpy/Internal energy [J/kg].
tmp< volScalarField > K() const
Return the heatTransfer coefficient K.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
Mesh data needed to do the Finite Volume discretisation.
Model for heat transfer between phases.
tmp< volScalarField > K() const
The heat transfer function K used in the enthalpy equation.
latentHeatScheme
Enumeration for the latent heat scheme.
Class to represent an interface between phases. Derivations can further specify the configuration of ...
const phaseModel & phase1() const
Return phase 1.
const phaseModel & phase2() const
Return phase 2.
virtual const rhoThermo & thermo() const =0
Return the thermophysical model.
const word & name() const
Return the name of this phase.
Base-class for thermodynamic properties based on density.
Base class of the thermophysical property types.
latentHeatTransfer
Enumeration for the form of the latent heat transfer.
A class for handling words, derived from string.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Calculate the matrix for implicit and explicit sources.
static tmp< surfaceInterpolationScheme< Type > > scheme(const surfaceScalarField &faceFlux, Istream &schemeData)
Return weighting factors for scheme given from Istream.
tmp< fvMatrix< Type > > Sp(const volScalarField::Internal &, const VolField< Type > &)
errorManipArg< error, int > exit(error &err, const int errNo=1)
const dimensionSet dimEnergy
const dimensionSet dimTime