41template<
class Thermo,
class OtherThermo>
42void Foam::meltingEvaporationModels::
43interfaceHeatResistance<Thermo, OtherThermo>
57 forAll(interfaceArea_, celli)
59 label status =
cutCell.calcSubCell(celli, isoAlpha_);
60 interfaceArea_[celli] = 0;
63 interfaceArea_[celli] =
72 if (isA<wallPolyPatch>(pbm[patchi]))
77 const label pCelli = pp.
faceCells()[faceI];
82 && (
T[pCelli] - Tactivate_.value()) > 0
91 && (
T[pCelli] - Tactivate_.value()) < 0
102 alpha[pCelli] < 2*isoAlpha_
103 &&
alpha[pCelli] > 0.5*isoAlpha_
107 interfaceArea_[pCelli] =
118template<
class Thermo,
class OtherThermo>
181 isoAlpha_(
dict.getOrDefault<scalar>(
"isoAlpha", 0.5)),
182 spread_(
dict.getOrDefault<scalar>(
"spread", 3))
188template<
class Thermo,
class OtherThermo>
203 mesh.time().timeName(),
209 auto& deltaT = tdeltaT.ref();
213 if (
sign(R_.value()) > 0)
215 deltaT =
max(
T - Tactivate_,
T0);
219 deltaT =
max(Tactivate_ -
T,
T0);
222 word fullSpeciesName = this->transferSpecie();
223 auto tempOpen = fullSpeciesName.find(
'.');
224 const word speciesName(fullSpeciesName.substr(0, tempOpen));
237 spread_/
sqr(
gAverage(this->mesh_.nonOrthDeltaCoeffs()))
242 if (
max(mDotc_) > MdotMin)
255 mDotc_ = interfaceArea_*htc_*deltaT;
261template<
class Thermo,
class OtherThermo>
270 if (this->modelVariable_ == variable)
274 if (
sign(R_.value()) > 0)
276 return(coeff*
pos(refValue - Tactivate_));
280 return(coeff*
pos(Tactivate_ - refValue));
288template<
class Thermo,
class OtherThermo>
297 if (this->modelVariable_ == variable)
301 if (
sign(R_.value()) > 0)
303 return(-coeff*
pos(refValue - Tactivate_));
307 return(coeff*
pos(Tactivate_ - refValue));
Defines the attributes of an object for which implicit objectRegistry management is supported,...
Base class for interface composition models, templated on the two thermodynamic models either side of...
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
Class for cutting a cell, celli, of an fvMesh, mesh_, at its intersection with an isosurface defined ...
Service routines for cutting a cell, celli, of an fvMesh, mesh_, at its intersection with a surface.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Mesh data needed to do the Finite Volume discretisation.
Interface Heat Resistance type of condensation/saturation model using spread source distribution foll...
Description for mass transfer between a pair of phases. The direction of the mass transfer is from th...
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO.
A patch is a list of labels that address the faces in the global face list.
const vectorField::subField faceAreas() const
Return face normals.
const labelUList & faceCells() const
Return face-cell addressing.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
Provides functions smooth spread and sweep which use the FaceCellWave algorithm to smooth and redistr...
Different types of constants.
void spreadSource(volScalarField &mDotOut, const volScalarField &mDotIn, const volScalarField &alpha1, const volScalarField &alpha2, const dimensionedScalar &D, const scalar cutoff)
dimensionedScalar pos(const dimensionedScalar &ds)
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
const dimensionSet dimPower
const dimensionSet dimless
Dimensionless.
dimensionedScalar sign(const dimensionedScalar &ds)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
const dimensionSet dimArea(sqr(dimLength))
const dimensionSet dimTemperature(0, 0, 0, 1, 0, 0, 0)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
Type gAverage(const FieldField< Field, Type > &f)
static constexpr const zero Zero
Global zero (0)
const dimensionSet dimDensity
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
const dimensionedScalar & D
interfaceProperties interface(alpha1, U, thermo->transportPropertiesDict())
#define forAll(list, i)
Loop across all elements in list.
const vector L(dict.get< vector >("L"))