55 return is >> wlat.
wl >> wlat.
t;
61 return os << wlat.
wl << wlat.
t;
65 inline bool operator==
71 return a.
wl ==
b.wl && a.
t ==
b.t;
75 inline bool operator!=
101 auto add = [&](
const word& sidePhaseName)
103 const word nameSidePhaseName =
106 if (!this->
found(nameSidePhaseName))
return;
128 dict.add(keyword, wlats[i].t);
156 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
164 forAll(this->phaseModels_, phasei)
166 if (fieldList.set(phasei))
171 const phaseModel& phase = this->phaseModels_[phasei];
181 this->mesh_.time().name(),
192 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
200 forAll(this->phaseModels_, phasei)
202 const phaseModel& phase = this->phaseModels_[phasei];
204 if (fieldTable.set(phase.
name()))
217 this->mesh_.time().name(),
228 template<
class ModelType>
235 if (i0 != word::npos)
238 if (i1 != word::npos)
245 if (
name(
name.size() - 5, 5) ==
"Model")
254 template<
class ModelType,
class ... InterfaceTypes>
278 && isA<InterfaceTypes>(modelInterfacePtr())
284 refCast<InterfaceTypes>(modelInterfacePtr())
291 if (!interfacePtr.
valid())
294 <<
"Interface " << modelInterfacePtr->name()
295 <<
" is not of suitable type for construction of a "
296 << ModelType::typeName
309 const word name = interfacePtr->name();
319 dicts[names[
name]].add
321 modelInterfacePtr->name(),
334 template<
class ModelType>
349 generateInterfacialModels<ModelType, phaseInterface>
352 NullObjectRef<phaseInterface>(),
360 models.insert(listInterfaces[i], listModels.
set(i,
nullptr));
366 template<
class ModelType>
379 interfacialDict<dictionary>(modelName<ModelType>()),
385 template<
class ValueType>
399 values.
insert(interfacePtr(), value);
404 template<
class ValueType>
407 const word& valueName,
411 generateInterfacialValues(interfacialDict<ValueType>(valueName), values);
415 template<
class ModelType>
421 if (
dict.size() != 1)
424 <<
"Too many matching entries for construction of a "
425 << ModelType::typeName <<
nl <<
dict.
toc()
432 <<
"Non-sub-dictionary entries found for specification of a "
433 << ModelType::typeName
441 template<
class ModelType>
450 <<
"A " << ModelType::typeName <<
" was specified for pair "
451 << interface.
name() <<
", but one of these phases is stationary. "
452 <<
"Mass transfer is not supported on stationary phases"
458 template<
class ModelType>
465 mesh().foundObject<ModelType>
472 template<
class ModelType>
479 mesh().lookupObject<ModelType>
493 template<
class GeoField,
class Group>
504 fieldList[
group.index()] += field;
521 template<
class GeoField,
class Group>
526 const GeoField& field,
534 template<
class GeoField,
class Group>
545 *fieldTable[
group.name()] += field;
562 template<
class GeoField,
class Group>
567 const GeoField& field,
graph_traits< Graph >::vertices_size_type size_type
#define forAll(list, i)
Loop across all elements in list.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
Generic mesh wrapper used by volMesh, surfaceMesh, pointMesh etc.
Generic GeometricField class.
A HashTable specialisation for hashing pointers.
An STL-conforming hash table.
bool set(const Key &, const T &newElmt)
Assign a new hashedEntry, overwriting existing entries.
bool insert(const Key &, const T &newElmt)
Insert a new hashedEntry.
bool found(const Key &) const
Return true if hashedEntry is found in table.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
static word groupName(Name name, const word &group)
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
bool set(const label) const
Is element set.
void append(T *)
Append an element at the end of the list.
T * first()
Return the first entry.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
bool valid() const
Return true if the autoPtr valid (ie, the pointer is set)
bool empty() const
Return true if the autoPtr is empty (ie, no pointer set)
T * ptr()
Return object pointer for reuse.
void set(T *)
Set pointer to that given.
const fileName & name() const
Return the dictionary name.
A list of keyword definitions, which are a keyword followed by any number of values (e....
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.
bool isDict(const word &) const
Check if entry is a sub-dictionary.
const dictionary & subDict(const word &) const
Find and return a sub-dictionary.
bool add(entry *, bool mergeEntry=false)
Add a new entry.
wordList toc() const
Return the table of contents.
bool found(const word &, bool recursive=false, bool patternMatch=true) const
Search dictionary for given keyword.
Dimension set for the base types.
Generic dimensioned Type class.
A wordList with hashed indices for faster lookup by name.
bool found(const word &) const
Does the list contain the specified name.
void append(const word &)
Append an element at the end of the list.
Traits class for primitives.
Word-pair based class used for keying interface models in hash tables.
Class to represent an interface between phases. Derivations can further specify the configuration of ...
static word oldNamePartsToName(const phaseSystem &fluid, const wordList &oldNameParts)
Convert old-format interface name parts to an interface name. Used.
virtual word name() const
Name.
static autoPtr< phaseInterface > New(const phaseSystem &fluid, const word &name)
Select given fluid and name.
const phaseModel & phase1() const
Return phase 1.
const phaseModel & phase2() const
Return phase 2.
virtual bool stationary() const =0
Return whether the phase is stationary.
const word & name() const
Return the name of this phase.
dictionary interfacialDict(const word &name) const
Return the dictionary containing interfacial model or value.
bool foundInterfacialModel(const phaseInterface &interface) const
Check availability of a sub model for a given interface.
void validateMassTransfer(const phaseInterface &interface) const
Check that mass transfer is supported across the given interface.
void generateInterfacialModels(const dictionary &dict, const phaseInterface &interface, PtrList< phaseInterface > &interfaces, PtrList< ModelType > &models) const
Generate interfacial-model lists.
const phaseModelList & phases() const
Return the phase models.
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.
word modelName() const
Return the model name. This is the same as the model's typename.
void generateInterfacialValues(const dictionary &dict, HashTable< ValueType, phaseInterfaceKey, phaseInterfaceKey::hash > &values) const
Generate interfacial-model tables.
void generateInterfacialModels(HashTable< autoPtr< ModelType >, phaseInterfaceKey, phaseInterfaceKey::hash > &models) const
Generate interfacial-model tables.
static const dictionary & modelSubDict(const dictionary &dict)
Return the dictionary from which to construct a low-level.
const ModelType & lookupInterfacialModel(const phaseInterface &interface) const
Return a sub model for an interface.
static word separator()
Return the separator that delimits this interface's name.
A class for managing temporary objects.
wordListAndType(Istream &is)
A class for handling words, derived from string.
static const word null
An empty word.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
autoPtr< CompressibleMomentumTransportModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const viscosity &viscosity)
const char *const group
Group name for atomic constants.
void addField(const Group &group, const word &name, tmp< GeoField > field, PtrList< GeoField > &fieldList)
errorManipArg< error, int > exit(error &err, const int errNo=1)
bool notNull(const T &t)
Return true if t is not a reference to the nullObject of type T.
Istream & operator>>(Istream &, directionInfo &)
Ostream & operator<<(Ostream &, const ensightPart &)
word name(const complex &)
Return a string representation of a complex.