46 void Foam::fv::homogeneousCondensation::readCoeffs(
const dictionary&
dict)
50 saturationModel_.reset
62 const word& modelType,
89 name +
":mDotByAlpha",
98 saturationModel_(nullptr)
120 this->multicomponentThermos(
true,
false);
129 multicomponentThermos.valid().second()
130 ? vfToVif(multicomponentThermos.second().rhoi(specieis().
second(),
p,
T))
136 return alphaGas*mDotByAlphaGas_/(rhoLiquid*v);
146 return alphaGas*mDotByAlphaGas_;
160 this->multicomponentThermos(
true,
false);
171 thermoGas.
Y()[specieis().
first()]*WGas/thermoGas.
Wi(specieis().
first())
174 return Xi*rhoGas/
max(mDotByAlphaGas_, mDotRootVSmall);
180 #define DebugField(field) \
183 << #field << ' ' << field.dimensions() << " min/avg/max = " \
184 << gMin(field) << '/' << gAverage(field) << '/' << gMax(field) \
192 this->multicomponentThermos(
true,
false);
213 : vfToVif(thermos().
second().
W())
218 ? vfToVif(multicomponentThermos.
second().rhoi(specieis().
second(),
p,
T))
233 fluid_.phases()[phaseNames().
first()],
234 fluid_.phases()[phaseNames().
second()]
243 thermoGas.
Y()[specieis().
first()]*WGas/thermoGas.
Wi(specieis().
first())
279 sqrt(6*
k*
T()/mMolc)*
sqrt((iStar + 1)/iStar)*
sqr(d_/2 + dMolc/2)
287 betaIStar1*
sqr(cSat*
NNA)*
exp(-deltaPhiStar/(
k*
T()))
289 *2*mMolc/(
pi*
sqr(d_)*rhoLiquid)
294 mDotByAlphaGas_ = J*iStar*mMolc;
308 const label i = index(alphaNames(), eqn.
psi().name());
329 readCoeffs(coeffs(
dict));
Macros for easy insertion into run-time selection tables.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
static tmp< DimensionedField< Type, GeoMesh, PrimitiveField > > New(const word &name, const Mesh &mesh, const dimensionSet &, const PrimitiveField< Type > &)
Return a temporary field constructed from name, mesh,.
Generic GeometricField class.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
const Type & second() const
Return second.
Class containing a pair of thermo references. Handles down-casting to more specific thermo types by c...
const Pair< bool > & valid() const
Access the validity flags.
const ThermoType & first() const
Access the first thermo.
const ThermoType & second() const
Access the second thermo.
virtual tmp< volScalarField > W() const =0
Molecular weight [kg/kmol].
virtual const volScalarField & T() const =0
Temperature [K].
virtual tmp< volScalarField > rho() const =0
Density [kg/m^3].
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
Mesh data needed to do the Finite Volume discretisation.
Finite volume model abstract base class.
static const dictionary & coeffs(const word &modelType, const dictionary &)
Return the coefficients sub-dictionary for a given model type.
Model for the homogeneous nucleation of liquid droplets out of a gaseous mixture.
virtual void correct()
Correct the fvModel.
virtual tmp< DimensionedField< scalar, volMesh > > mDot() const
Return the mass transfer rate.
virtual bool read(const dictionary &dict)
Read source dictionary.
homogeneousCondensation(const word &name, const word &modelType, const fvMesh &mesh, const dictionary &dict)
Construct from explicit source name and mesh.
void addSup(const volScalarField &alpha, const volScalarField &rho, const volScalarField &heOrYi, fvMatrix< scalar > &eqn) const
Use phaseChange's source functions.
virtual tmp< DimensionedField< scalar, volMesh > > d() const
Return the diameter of nuclei.
virtual tmp< DimensionedField< scalar, volMesh > > tau() const
Return the nucleation time scale.
virtual tmp< DimensionedField< scalar, volMesh > > nDot() const
Return the number rate at which nuclei are generated.
virtual void addSup(fvMatrix< scalar > &eqn) const
Add a source term to a field-less proxy equation.
Base class for phase change models.
void reReadSpecie(const dictionary &dict) const
Re-read the names of the transferring specie.
virtual bool read(const dictionary &dict)
Read source dictionary.
Base-class for multi-component thermodynamic properties.
virtual PtrList< volScalarField > & Y()=0
Access the mass-fraction fields.
virtual dimensionedScalar Wi(const label speciei) const =0
Molecular weight [kg/kmol].
const Type & lookupObject(const word &name) const
Lookup and return the object of the given Type and name.
Class to represent an interface between phases. Derivations can further specify the configuration of ...
Class to represent a system of phases.
static autoPtr< saturationPressureModel > New(const dictionary &dict)
Select with dictionary.
A class for managing temporary objects.
A class for handling words, derived from string.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
Fundamental dimensioned constants.
#define DebugField(field)
volScalarField alpha(IOobject("alpha", runTime.name(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
const dimensionedScalar k
Boltzmann constant.
const dimensionedScalar sigma
Stefan-Boltzmann constant: default SI units: [W/m^2/K^4].
const dimensionedScalar NNA
Avagadro number: default SI units: [1/kmol].
addToRunTimeSelectionTable(fvConstraint, bound, dictionary)
defineTypeNameAndDebug(bound, 0)
tmp< fvMatrix< Type > > S(const Pair< tmp< volScalarField::Internal >> &, const VolField< Type > &)
tmp< fvMatrix< Type > > Sp(const volScalarField::Internal &, const VolField< Type > &)
dimensionedScalar exp(const dimensionedScalar &ds)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void T(LagrangianPatchField< Type > &f, const LagrangianPatchField< Type > &f1)
const dimensionSet dimLength
labelList second(const UList< labelPair > &p)
dimensionedScalar log(const dimensionedScalar &ds)
labelList first(const UList< labelPair > &p)
const dimensionSet dimTime
scalarList W(const fluidMulticomponentThermo &thermo)
const dimensionSet dimDensity
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
void pow3(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
void cbrt(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
void sqr(LagrangianPatchField< typename outerProduct< Type, Type >::type > &f, const LagrangianPatchField< Type > &f1)
word name(const LagrangianState state)
Return a string representation of a Lagrangian state enumeration.
void sqrt(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)