30 #include "BlendedInterfacialModel.H" 31 #include "dragModel.H" 32 #include "virtualMassModel.H" 33 #include "liftModel.H" 34 #include "wallLubricationModel.H" 35 #include "turbulentDispersionModel.H" 41 namespace functionObjects
51 template<
class modelType>
60 return model.template F<vector>();
64 return -model.template F<vector>();
71 Foam::functionObjects::phaseForces::phaseForces
86 fluid_(mesh_.lookupObject<
phaseSystem>(
"phaseProperties"))
124 virtualMassModel::typeName,
166 wallLubricationModel::typeName,
173 "wallLubricationForce",
189 turbulentDispersionModel::typeName,
196 "turbulentDispersionForce",
253 if (
type ==
"dragModel")
256 fluid_.lookupBlendedSubModel<
dragModel>(pair).
K()
260 if (
type ==
"virtualMassModel")
270 if (
type ==
"liftModel")
272 force = nonDragForce<liftModel>(pair);
275 if (
type ==
"wallLubricationModel")
277 force = nonDragForce<wallLubricationModel>(pair);
280 if (
type ==
"turbulentDispersionModel")
282 force = nonDragForce<turbulentDispersionModel>(pair);
296 HashPtrTable<volVectorField>,
301 writeObject(iter()->
name());
List< ReturnType > get(const UPtrList< T > &list, const AccessOp &aop)
List of values generated by applying the access operation to each list item.
HashPtrTable< volVectorField > forceFields_
const BlendedInterfacialModel< modelType > & lookupBlendedSubModel(const phasePair &key) const
Return a blended sub model between a phase pair.
#define forAllIter(Container, container, iter)
Iterate across all elements in the container object.
defineTypeNameAndDebug(ObukhovLength, 0)
A list of keyword definitions, which are a keyword followed by a number of values (eg...
virtual bool write()
Write the force fields.
const phaseSystem & fluid_
Constant access to phaseSystem.
const multiphaseInter::phaseModel & phase1() const
bool foundBlendedSubModel(const phasePair &key) const
Check availability of a blended sub model for a given phase pair.
dimensioned< vector > dimensionedVector
Dimensioned vector obtained from generic dimensioned type.
virtual tmp< volVectorField > DUDt() const =0
Return the substantive acceleration.
const phaseModel & phase_
Phase for which forces are evaluated.
A HashTable of pointers to objects of type <T>, with deallocation management of the pointers...
const Time & time() const
Return the top-level database.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object.
CGAL::Exact_predicates_exact_constructions_kernel K
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
Macros for easy insertion into run-time selection tables.
const phasePairTable & phasePairs() const
Return the phase pairs.
const volVectorField & U() const
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
const dimensionSet dimVolume(pow3(dimLength))
static word groupName(StringType base, const word &group)
Create dot-delimited name.group string.
virtual ~phaseForces()
Destructor.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
Class to represent a system of phases and model interfacial transfers between them.
A class for handling words, derived from Foam::string.
virtual bool execute()
Calculate the force fields.
const dimensionSet dimForce
static word timeName(const scalar t, const int precision=precision_)
Return a time name for the given scalar time value formatted with the given precision.
bool ordered() const noexcept
Return the ordered flag.
addToRunTimeSelectionTable(functionObject, ObukhovLength, dictionary)
const phaseModel & otherPhase(const phaseModel &phase) const
Return the other phase relative to the given phase.
virtual bool read(const dictionary &dict)
Read the input data.
tmp< volVectorField > nonDragForce(const phasePair &key) const
Evaluate and return non-drag force.
const word & name() const
bool contains(const phaseModel &phase) const
Return true if this phasePair contains the given phase.
virtual bool read(const dictionary &dict)
Read optional controls.
A class for managing temporary objects.
Defines the attributes of an object for which implicit objectRegistry management is supported...
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
Description for mass transfer between a pair of phases. The direction of the mass transfer is from th...
const fvMesh & mesh_
Reference to the fvMesh.