Go to the documentation of this file.
28 #include "BlendedInterfacialModel.H"
32 template<
class modelType>
35 const dictTable& modelDicts,
46 const phasePairKey&
key = iter.key();
61 template<
class modelType>
64 const word& modelName,
73 dictTable modelDicts(lookup(modelName));
75 generatePairs(modelDicts);
77 createSubModels(modelDicts, models);
81 template<
class modelType>
84 const word& modelName,
91 const bool correctFixedFluxBCs
98 modelTypeTable tempModels;
99 generatePairsAndSubModels(modelName, tempModels);
103 blendingMethods_.found(modelName)
104 ? blendingMethods_[modelName]
105 : blendingMethods_.found(member(modelName))
106 ? blendingMethods_[member(modelName)]
107 : blendingMethods_[
"default"]
132 phaseModels_[
key.first()],
133 phaseModels_[
key.second()],
135 tempModels.found(
key ) ? tempModels[
key ] : noModel,
136 tempModels.found(key1In2) ? tempModels[key1In2] : noModel,
137 tempModels.found(key2In1) ? tempModels[key2In1] : noModel,
143 if (!phasePairs_.found(
key))
152 phaseModels_[
key.first()],
153 phaseModels_[
key.second()]
162 template<
class modelType>
165 const word& modelName,
172 const bool correctFixedFluxBCs
183 modelTypeTable tempModels;
184 generatePairsAndSubModels
191 forAllIter(
typename modelTypeTable, tempModels, tempModelIter)
195 if (!models.found(
key))
209 <<
"A two-sided " << modelType::typeName <<
" was "
210 <<
"specified for the " <<
phase.
name() <<
" side of the "
211 << pair <<
" pair, but that phase is not part of that pair."
221 template<
class GeoField>
225 const word& fieldName,
249 template<
class GeoField>
253 const word& fieldName,
254 const GeoField&
field,
262 template<
class GeoField>
266 const word& fieldName,
290 template<
class GeoField>
294 const word& fieldName,
295 const GeoField&
field,
305 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
330 this->mesh_.time().timeName(),
341 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
366 this->mesh_.time().timeName(),
377 template<
class modelType>
415 template<
class modelType>
435 template<
class modelType>
446 template<
class modelType>
457 template<
class modelType>
489 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,...
Description for mass transfer between a pair of phases. The direction of the mass transfer is from th...
#define forAllIter(Container, container, iter)
Iterate across all elements in the container object.
Hashing functor for phasePairKey.
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
Global zero (0)
void fillFields(const word &name, const dimensionSet &dims, PtrList< GeometricField< Type, PatchField, GeoMesh >> &fieldList) const
Fill up gaps in a phase-indexed list of fields with zeros.
auto key(const Type &t) -> typename std::enable_if< std::is_enum< Type >::value, typename std::underlying_type< Type >::type >::type
void createSubModels(const dictTable &modelDicts, HashTable< autoPtr< modelType >, phasePairKey, phasePairKey::hash > &models)
Generate pairs and sub-model tables using pair keys.
void addField(const phaseModel &phase, const word &fieldName, tmp< GeoField > field, PtrList< GeoField > &fieldList) const
Add the field to a phase-indexed list, with the given name,.
label index(const phaseModel &phase) const
Return the index of the given phase. Generates a FatalError if.
const modelType & lookupSubModel(const phasePair &key) const
Access a sub model between a phase pair.
const T * set(const label i) const
Return const pointer to element (can be nullptr),.
Dimension set for the base types, which can be used to implement rigorous dimension checking for alge...
HashTable< dictionary, phasePairKey, phasePairKey::hash > dictTable
bool foundSubModel(const phasePair &key) const
Check availability of a sub model for a given phase pair.
bool foundObject(const word &name, const bool recursive=false) const
Is the named Type found?
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object.
#define forAll(list, i)
Loop across all elements in list.
bool set(const Key &key, T *ptr)
Assign a new entry, overwriting existing entries.
void generatePairsAndSubModels(const word &modelName, HashTable< autoPtr< modelType >, phasePairKey, phasePairKey::hash > &models)
Generate pairs and sub-model tables.
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
const Type & lookupObject(const word &name, const bool recursive=false) const
An ordered or unorder pair of phase names. Typically specified as follows.
const BlendedInterfacialModel< modelType > & lookupBlendedSubModel(const phasePair &key) const
Return a blended sub model between a phase pair.
phasePairKey::hasher hash
Alternative name for functor.
bool contains(const phaseModel &phase) const
Return true if this phasePair contains the given phase.
Generic dimensioned Type class.
Generic mesh wrapper used by volMesh, surfaceMesh, pointMesh etc.
errorManipArg< error, int > exit(error &err, const int errNo=1)
const word & name() const
A HashTable similar to std::unordered_map.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
An ordered pair of two objects of type <T> with first() and second() elements.
A HashTable of pointers to objects of type <T>, with deallocation management of the pointers.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
phasePairTable phasePairs_
Phase pairs.
bool foundBlendedSubModel(const phasePair &key) const
Check availability of a blended sub model for a given phase pair.
static word groupName(StringType base, const word &group)
Create dot-delimited name.group string.
Generic GeometricField class.