Go to the documentation of this file.
40 template<
class Thermo,
class OtherThermo>
44 const fvMesh&
mesh = this->mesh_;
53 cutCellIso cutCell(
mesh, ap);
55 forAll(interfaceArea_, celli)
57 label status = cutCell.calcSubCell(celli, isoAlpha_);
58 interfaceArea_[celli] = 0;
61 interfaceArea_[celli] =
62 mag(cutCell.faceArea())/
mesh.V()[celli];
66 for (
const polyPatch& pp :
mesh.boundaryMesh())
68 if (isA<wallPolyPatch>(pp))
70 forAll(pp.faceCells(), faceI)
72 const label pCelli = pp.faceCells()[faceI];
77 && (
T[pCelli] - Tactivate_.value()) > 0
86 && (
T[pCelli] - Tactivate_.value()) < 0
97 alpha[pCelli] < 2*isoAlpha_
98 &&
alpha[pCelli] > 0.5*isoAlpha_
102 interfaceArea_[pCelli] =
103 mag(pp.faceAreas()[faceI])/
mesh.V()[pCelli];
113 template<
class Thermo,
class OtherThermo>
164 isoAlpha_(
dict.getOrDefault<scalar>(
"isoAlpha", 0.5))
169 const typename OtherThermo::thermoType& toThermo =
177 Mv_.
value() = toThermo.W()*1
e-3;
179 if (Mv_.
value() == -1)
182 <<
" Please provide the molar weight (Mv) of vapour [g/mol] "
190 template<
class Thermo,
class OtherThermo>
220 mesh.time().timeName(),
236 mesh.time().timeName(),
247 if (
sign(C_.value()) > 0)
249 rhov = this->pair().
to().
rho();
250 deltaT =
max(
T - Tactivate_,
T0);
254 rhov = this->pair().
from().
rho();
255 deltaT =
max(Tactivate_ -
T,
T0);
258 htc_ = 2*
mag(C_)/(2-
mag(C_))*(
L()*rhov/HerztKnudsConst);
260 mDotc_ = htc_*deltaT*interfaceArea_;
266 template<
class Thermo,
class OtherThermo>
274 if (this->modelVariable_ == variable)
278 if (
sign(C_.value()) > 0)
280 return(coeff*
pos(refValue - Tactivate_));
284 return(coeff*
pos(Tactivate_ - refValue));
289 return tmp<volScalarField> ();
294 template<
class Thermo,
class OtherThermo>
302 if (this->modelVariable_ == variable)
306 if (
sign(C_.value()) > 0)
308 return(-coeff*
pos(refValue - Tactivate_));
312 return(coeff*
pos(Tactivate_ - refValue));
317 return tmp<volScalarField> ();
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const vector L(dict.get< vector >("L"))
Description for mass transfer between a pair of phases. The direction of the mass transfer is from th...
Base class for interface composition models, templated on the two thermodynamic models either side of...
virtual tmp< volScalarField > KSu(label modelVariable, const volScalarField &field)
Considering the Hertz Knudsen formula, which gives the evaporation-condensation flux based on the kin...
A class for handling words, derived from Foam::string.
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
A class for managing temporary objects.
static constexpr const zero Zero
const dimensionSet dimDensity
Different types of constants.
interfaceProperties interface(alpha1, U, thermo->transportPropertiesDict())
kineticGasEvaporation(const dictionary &dict, const phasePair &pair)
const pureMixture< ThermoType >::thermoType & getLocalThermo(const word &speciesName, const pureMixture< ThermoType > &globalThermo) const
const dimensionedScalar alpha
static const volPointInterpolation & New(const fvMesh &mesh, Args &&... args)
virtual const phaseModel & to() const
const dimensionSet dimMoles(0, 0, 0, 0, 1, 0, 0)
const Type & value() const
const word transferSpecie() const
dimensionedScalar sign(const dimensionedScalar &ds)
const dimensionedScalar R
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
bool interpolate(const vector &p1, const vector &p2, const vector &o, vector &n, scalar l)
const dimensionSet dimArea(sqr(dimLength))
dimensionedScalar pow3(const dimensionedScalar &ds)
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
label max(const labelHashSet &set, label maxValue=labelMin)
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Generic dimensioned Type class.
Mesh data needed to do the Finite Volume discretisation.
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
errorManip< error > abort(error &err)
virtual tmp< volScalarField > KSp(label modelVariable, const volScalarField &field)
#define FatalErrorInFunction
constexpr scalar pi(M_PI)
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
virtual const phaseModel & from() const
const dimensionedScalar e
const dimensionSet dimTemperature(0, 0, 0, 1, 0, 0, 0)
const dimensionedScalar & rho() const
virtual tmp< volScalarField > Kexp(const volScalarField &field)
Generic GeometricField class.
const OtherThermo & toThermo_
Provides functions smooth spread and sweep which use the FaceCellWave algorithm to smooth and redistr...
const dimensionSet dimless
dimensionedScalar pos(const dimensionedScalar &ds)