35 template<
class Thermo,
class OtherThermo>
89 isoAlpha_(
dict.getOrDefault<scalar>(
"isoAlpha", 0.5))
95 template<
class Thermo,
class OtherThermo>
119 const label status =
cutCell.calcSubCell(celli, isoAlpha_);
122 Salpha[celli] = scalar(1);
128 max((oxideCrit_.value() - to)/oxideCrit_.value(), scalar(0));
135 - scalar(1)/
max((
T - Tsolidus_)/(Tliquidus_ - Tsolidus_),scalar(1
e-6))
139 mDotOxide_ = C_*tSalpha*tSoxide*tST;
145 if (isA<timeVaryingMassSorptionFvPatchScalarField>(alphab[patchi]))
148 refCast<const timeVaryingMassSorptionFvPatchScalarField>
162 auto& rhoto = tRhoto.ref();
164 rhoto = this->pair().
to().
rho();
168 const label cellI = fc[faceI];
169 const scalar rhoI = rhoto[cellI];
170 mDotOxide_[cellI] += rhoI*tsb()[faceI];
179 template<
class Thermo,
class OtherThermo>
191 template<
class Thermo,
class OtherThermo>
A list of keyword definitions, which are a keyword followed by a number of values (eg...
static const volPointInterpolation & New(const fvMesh &mesh, Args &&... args)
Get existing or create MeshObject registered with typeName.
bool interpolate(const vector &p1, const vector &p2, const vector &o, vector &n, scalar l)
T & ref() const
Return non-const reference to the contents of a non-null managed pointer.
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
Class for cutting a cell, celli, of an fvMesh, mesh_, at its intersection with an isosurface defined ...
Base class for interface composition models, templated on the two thermodynamic models either side of...
virtual tmp< volScalarField > Kexp(const volScalarField &field)
Explicit total mass transfer coefficient.
Service routines for cutting a cell, celli, of an fvMesh, mesh_, at its intersection with a surface...
#define forAll(list, i)
Loop across all elements in list.
virtual const multiphaseInter::phaseModel & to() const
To phase.
const dimensionedScalar e
Elementary charge.
virtual const multiphaseInter::phaseModel & from() const
From phase.
dimensionedScalar exp(const dimensionedScalar &ds)
interfaceOxideRate(const dictionary &dict, const phasePair &pair)
Construct from components.
const dimensionSet dimTemperature(0, 0, 0, 1, 0, 0, 0)
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
static tmp< GeometricField< scalar, fvPatchField, volMesh > > New(const word &name, IOobjectOption::registerOption regOpt, const Mesh &mesh, const dimensionSet &dims, const word &patchFieldType=fvPatchField< scalar >::calculatedType())
Return tmp field (NO_READ, NO_WRITE) from name, mesh, dimensions and patch type. [Takes current timeN...
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
tmp< volScalarField > rho() const
Return the phase density.
const dimensionSet dimDensity
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
Mesh data needed to do the Finite Volume discretisation.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
virtual tmp< volScalarField > KSp(label modelVariable, const volScalarField &field)
Implicit mass transfer coefficient.
A class for managing temporary objects.
Defines the attributes of an object for which implicit objectRegistry management is supported...
Description for mass transfer between a pair of phases. The direction of the mass transfer is from th...
const Boundary & boundaryField() const noexcept
Return const-reference to the boundary field.
Do not request registration (bool: false)
virtual tmp< volScalarField > KSu(label modelVariable, const volScalarField &field)
Explicit mass transfer coefficient.
uindirectPrimitivePatch pp(UIndirectList< face >(mesh.faces(), faceLabels), mesh.points())
static constexpr const zero Zero
Global zero (0)