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"]
121 const phasePairKey key(iter.key().first(), iter.key().second());
122 const phasePairKey key1In2(key.first(), key.second(),
true);
123 const phasePairKey key2In1(key.second(), key.first(),
true);
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))
204 const phasePair& pair = phasePairs_[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."
215 models[key][pair.
index(
phase)].reset(tempModelIter().ptr());
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...
virtual word otherName() const
Other pair name.
#define forAllIter(Container, container, iter)
Iterate across all elements in the container object.
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.
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.
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.
Ordered or unordered hashing of word pair.
#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.
word name(const complex &c)
Return string representation of complex.
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
const BlendedInterfacialModel< modelType > & lookupBlendedSubModel(const phasePair &key) const
Return a blended sub model between a phase pair.
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.
bool ordered() const
Return the ordered flag.
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.
virtual word name() const
Pair name.
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.