Go to the documentation of this file.
41 template<
class Thermo,
class OtherThermo>
46 const fvMesh&
mesh = this->mesh_;
55 cutCellIso cutCell(
mesh, ap);
57 forAll(interfaceArea_, celli)
59 label status = cutCell.calcSubCell(celli, isoAlpha_);
60 interfaceArea_[celli] = 0;
63 interfaceArea_[celli] =
64 mag(cutCell.faceArea())/
mesh.V()[celli];
68 const polyBoundaryMesh& pbm =
mesh.boundaryMesh();
72 if (isA<wallPolyPatch>(pbm[patchi]))
74 const polyPatch& pp = pbm[patchi];
75 forAll(pp.faceCells(), faceI)
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] =
108 mag(pp.faceAreas()[faceI])/
mesh.V()[pCelli];
118 template<
class Thermo,
class OtherThermo>
134 this->mesh_.time().timeName(),
147 this->mesh_.time().timeName(),
160 this->mesh_.time().timeName(),
173 this->mesh_.time().timeName(),
181 isoAlpha_(
dict.getOrDefault<scalar>(
"isoAlpha", 0.5)),
182 spread_(
dict.getOrDefault<scalar>(
"spread", 3))
188 template<
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;
261 template<
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));
288 template<
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));
319 template<
class Thermo,
class OtherThermo>
328 template<
class Thermo,
class OtherThermo>
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...
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
Dimensionless.
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
Global zero (0)
const dimensionSet dimDensity
Type gAverage(const FieldField< Field, Type > &f)
Different types of constants.
interfaceProperties interface(alpha1, U, thermo->transportPropertiesDict())
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
static const volPointInterpolation & New(const fvMesh &mesh, Args &&... args)
Get existing or create a new MeshObject.
virtual const phaseModel & to() const
To phase.
virtual bool includeDivU()
void spreadSource(volScalarField &mDotOut, const volScalarField &mDotIn, const volScalarField &alpha1, const volScalarField &alpha2, const dimensionedScalar &D, const scalar cutoff)
dimensionedScalar sign(const dimensionedScalar &ds)
#define forAll(list, i)
Loop across all elements in list.
virtual tmp< volScalarField > KSp(label modelVariable, const volScalarField &field)
Implicit mass transfer coefficient.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
virtual const dimensionedScalar & Tactivate() const
Return Tactivate.
bool interpolate(const vector &p1, const vector &p2, const vector &o, vector &n, scalar l)
const dimensionSet dimArea(sqr(dimLength))
virtual tmp< volScalarField > KSu(label modelVariable, const volScalarField &field)
Explicit mass transfer coefficient.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
const dimensionSet dimPower
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
interfaceHeatResistance(const dictionary &dict, const phasePair &pair)
Construct from components.
Mesh data needed to do the Finite Volume discretisation.
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
virtual const phaseModel & from() const
From phase.
const dimensionedScalar e
Elementary charge.
static tmp< T > New(Args &&... args)
Construct tmp of T with forwarding arguments.
const dimensionedScalar & D
const dimensionSet dimTemperature(0, 0, 0, 1, 0, 0, 0)
Interface Heat Resistance type of condensation/saturation model using spread source distribution foll...
virtual tmp< volScalarField > Kexp(const volScalarField &field)
Explicit total mass transfer coefficient.
Provides functions smooth spread and sweep which use the FaceCellWave algorithm to smooth and redistr...
dimensionedScalar pos(const dimensionedScalar &ds)