35template<
class Thermo,
class OtherThermo>
89 isoAlpha_(
dict.getOrDefault<scalar>(
"isoAlpha", 0.5))
95template<
class Thermo,
class OtherThermo>
119 const label status =
cutCell.calcSubCell(celli, isoAlpha_);
122 Salpha[celli] = scalar(1);
127 tmp<volScalarField> tSoxide =
128 max((oxideCrit_.value() - to)/oxideCrit_.value(), scalar(0));
131 tmp<volScalarField> tST =
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>
152 const labelUList& fc =
mesh.boundary()[patchi].faceCells();
153 tmp<scalarField> tsb =
pp.source();
155 auto tRhoto = volScalarField::New
158 IOobject::NO_REGISTER,
160 dimensionedScalar(dimDensity, Zero)
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];
179template<
class Thermo,
class OtherThermo>
191template<
class Thermo,
class OtherThermo>
uindirectPrimitivePatch pp(UIndirectList< face >(mesh.faces(), faceLabels), mesh.points())
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())
GeometricBoundaryField< scalar, fvPatchField, volMesh > Boundary
const Boundary & boundaryField() const noexcept
Return const-reference to the boundary field.
@ NO_REGISTER
Do not request registration (bool: false).
Defines the attributes of an object for which implicit objectRegistry management is supported,...
InterfaceCompositionModel(const dictionary &dict, const phasePair &pair)
Construct from components.
static FOAM_NO_DANGLING_REFERENCE const volPointInterpolation & New(const fvMesh &mesh, Args &&... args)
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.
The interfaceOxideRate is a simple model to calculate the formation rate of oxide inclusions (mDotOxi...
virtual tmp< volScalarField > Kexp(const volScalarField &field)
Explicit total mass transfer coefficient.
virtual tmp< volScalarField > KSu(label modelVariable, const volScalarField &field)
Explicit mass transfer coefficient.
virtual tmp< volScalarField > KSp(label modelVariable, const volScalarField &field)
Implicit mass transfer coefficient.
const fvMesh & mesh_
Reference to mesh.
const phasePair & pair() const
The phase pair.
const word & variable() const
Returns the variable on which the model is based.
Description for mass transfer between a pair of phases. The direction of the mass transfer is from th...
A class for managing temporary objects.
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
T & ref() const
Return non-const reference to the contents of a non-null managed pointer.
Type & refCast(U &obj)
A dynamic_cast (for references) to Type reference.
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
dimensionedScalar exp(const dimensionedScalar &ds)
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
MinMax< scalar > scalarMinMax
A scalar min/max range.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
const dimensionSet dimTemperature(0, 0, 0, 1, 0, 0, 0)
const Type * isA(const U &obj)
Attempt dynamic_cast to Type.
static constexpr const zero Zero
Global zero (0).
bool interpolate(const vector &p1, const vector &p2, const vector &o, vector &n, scalar l)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
const dimensionSet dimDensity
UList< label > labelUList
A UList of labels.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
#define forAll(list, i)
Loop across all elements in list.