Go to the documentation of this file.
31 #include "surfaceInterpolate.H"
61 template<
class ModelType>
62 template<
class GeoField>
68 typename GeoField::Boundary& fieldBf =
field.boundaryFieldRef();
70 forAll(phase1_.phi()().boundaryField(), patchi)
74 isA<fixedValueFvsPatchScalarField>
76 phase1_.phi()().boundaryField()[patchi]
80 fieldBf[patchi] =
Zero;
86 template<
class ModelType>
90 template<
class>
class PatchField,
98 (ModelType::*method)(Args ...)
const,
110 if (model_ || model1In2_)
113 blendedInterfacialModel::interpolate<scalarGeoField>
115 blending_.f1(phase1_, phase2_)
119 if (model_ || model2In1_)
122 blendedInterfacialModel::interpolate<scalarGeoField>
124 blending_.f2(phase1_, phase2_)
134 ModelType::typeName +
":" +
name,
135 phase1_.mesh().time().timeName(),
151 <<
"Cannot treat an interfacial model with no distinction "
152 <<
"between continuous and dispersed phases as signed"
156 x.ref() += (model_().*method)(
args ...)*(scalar(1) - f1() - f2());
161 x.ref() += (model1In2_().*method)(
args ...)*f1;
181 && (model_ || model1In2_ || model2In1_)
184 correctFixedFluxBCs(
x.ref());
193 template<
class ModelType>
202 const bool correctFixedFluxBCs
218 model1In2_(model1In2),
219 model2In1_(model2In1),
220 correctFixedFluxBCs_(correctFixedFluxBCs)
224 template<
class ModelType>
232 const bool correctFixedFluxBCs
247 correctFixedFluxBCs_(correctFixedFluxBCs)
249 if (modelTable.
found(pair))
261 if (modelTable.
found(pair1In2))
267 modelTable[pair1In2],
273 if (modelTable.
found(pair2In1))
279 modelTable[pair2In1],
289 template<
class ModelType>
296 template<
class ModelType>
299 const class phaseModel& phase
309 template<
class ModelType>
315 return &
phase == &(phase1_) ? model1In2_ : model2In1_;
319 template<
class ModelType>
325 return evaluate(
k,
"K", ModelType::dimK,
false);
329 template<
class ModelType>
335 return evaluate(
k,
"K", ModelType::dimK,
false, residualAlpha);
339 template<
class ModelType>
343 return evaluate(&ModelType::Kf,
"Kf", ModelType::dimK,
false);
347 template<
class ModelType>
356 template<
class ModelType>
364 template<
class ModelType>
372 template<
class ModelType>
376 return evaluate(&ModelType::dmdt,
"dmdt", ModelType::dimDmdt,
false);
380 template<
class ModelType>
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
Defines the attributes of an object for which implicit objectRegistry management is supported,...
void subtract(FieldField< Field1, typename typeOfSum< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
Description for mass transfer between a pair of phases. The direction of the mass transfer is from th...
tmp< surfaceScalarField > Kf() const
A class for handling words, derived from Foam::string.
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
A class for managing temporary objects.
static constexpr const zero Zero
tmp< volScalarField > dmdt() const
~BlendedInterfacialModel()
tmp< GeometricField< Type, fvPatchField, volMesh > > F() const
surfaceScalarField Ff(fluid.Ff())
volVectorField F(fluid.F())
Dimension set for the base types, which can be used to implement rigorous dimension checking for alge...
bool hasModel(const phaseModel &phase) const
bool good() const noexcept
CGAL::Exact_predicates_exact_constructions_kernel K
const dimensionSet dimArea(sqr(dimLength))
static tmp< GeoField > interpolate(tmp< volScalarField > f)
OBJstream os(runTime.globalPath()/outputName)
Generic mesh wrapper used by volMesh, surfaceMesh, pointMesh etc.
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &tvf, const surfaceScalarField &faceFlux, Istream &schemeData)
errorManipArg< error, int > exit(error &err, const int errNo=1)
A HashTable similar to std::unordered_map.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
tmp< volScalarField > K() const
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
#define FatalErrorInFunction
tmp< surfaceScalarField > Ff() const
virtual word name() const
tmp< volScalarField > D() const
const dimensionedScalar & D
const phaseModel & phase2() const
word name(const expressions::valueTypeCode typeCode)
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
bool found(const Key &key) const
const phaseModel & phase1() const
Generic GeometricField class.
Foam::argList args(argc, argv)
const ModelType & model(const phaseModel &phase) const
bool writeData(Ostream &os) const
string evaluate(label fieldWidth, const std::string &s, size_t pos=0, size_t len=std::string::npos)