30#include "twoPhaseSystem.H"
31#include "diameterModel.H"
35#include "heatTransferModel.H"
41#include "surfaceInterpolate.H"
76 fluid.subDict(phaseName)
78 alphaMax_(phaseDict_.getOrDefault<scalar>(
"alphaMax", 1)),
115 alphaPhi_.setOriented();
116 alphaRhoPhi_.setOriented();
118 thermo_->validate(
"phaseModel " + name_,
"h",
"e");
125 fluid_.mesh().time().timeName(),
132 Info<<
"Reading face flux field " << phiName <<
endl;
141 fluid_.mesh().time().timeName(),
152 Info<<
"Calculating face flux field " << phiName <<
endl;
156 U_.boundaryField().size(),
160 forAll(U_.boundaryField(), i)
169 phiTypes[i] = fixedValueFvsPatchScalarField::typeName;
180 fluid_.mesh().time().timeName(),
253 return dPtr_->read(phaseDict_);
263 forAll(alphaPhiBf, patchi)
267 if (!alphaPhip.coupled())
269 alphaPhip = phiBf[patchi]*alphaBf[patchi];
const Mesh & mesh() const noexcept
Return const reference to mesh.
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
GeometricBoundaryField< scalar, fvsPatchField, surfaceMesh > Boundary
@ NO_READ
Nothing to be read.
@ READ_IF_PRESENT
Reading is optional [identical to LAZY_READ].
@ MUST_READ
Reading required.
@ AUTO_WRITE
Automatically write from objectRegistry::writeObject().
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const Time & time() const noexcept
Return Time associated with the objectRegistry.
bool typeHeaderOk(const bool checkType=true, const bool search=true, const bool verbose=true)
Read header (respects is_globalIOobject trait) and check its info. A void type suppresses trait and t...
static word groupName(StringType base, const word &group)
Create dot-delimited name.group string.
Templated abstract base class for multiphase compressible turbulence models.
static autoPtr< PhaseCompressibleTurbulenceModel > New(const alphaField &alpha, const volScalarField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const transportModel &transportModel, const word &propertiesName=turbulenceModel::propertiesName)
Return a reference to the selected turbulence model.
static autoPtr< diameterModel > New(const dictionary &diameterProperties, const phaseModel &phase)
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Dimension set for the base types, which can be used to implement rigorous dimension checking for alge...
static const word & calculatedType() noexcept
The type name for calculated patch fields.
Single incompressible phase derived from the phase-fraction. Used as part of the multiPhaseMixture fo...
const phaseSystem & fluid() const
Return the system to which this phase belongs.
const PhaseCompressibleTurbulenceModel< phaseModel > & turbulence() const
Return the turbulence model.
static autoPtr< phaseModel > New(const phaseSystem &fluid, const word &phaseName, const label index)
void correct()
Correct the phase properties.
virtual ~phaseModel()
Destructor.
phaseModel(const word &phaseName, const dictionary &phaseDict, const fvMesh &mesh)
const surfaceScalarField & phi() const
const phaseModel & otherPhase() const
Return the other phase in this two-phase system.
tmp< volScalarField > d() const
void correctInflowOutflow(surfaceScalarField &alphaPhi) const
Ensure that the flux at inflow/outflow BCs is preserved.
virtual bool read()
Read phase properties dictionary.
Helper class to manage multi-specie phase properties.
Basic thermodynamic properties based on density.
A class for managing temporary objects.
virtual void correct()=0
Solve the turbulence equations and correct the turbulence viscosity.
Class which solves the volume fraction equations for two phases.
A class for handling words, derived from Foam::string.
Calculate the face-flux of the given field.
tmp< surfaceScalarField > flux(const volVectorField &vvf)
Return the face-flux field obtained from the given volVectorField.
List< word > wordList
List of word.
const dimensionSet dimless
Dimensionless.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
messageStream Info
Information stream (stdout output on master, null elsewhere).
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
Ostream & endl(Ostream &os)
Add newline and flush stream.
const Type * isA(const U &obj)
Attempt dynamic_cast to Type.
static constexpr const zero Zero
Global zero (0).
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
fvsPatchField< scalar > fvsPatchScalarField
#define forAll(list, i)
Loop across all elements in list.
surfaceScalarField alphaPhi(phi.name()+alpha1.name(), fvc::flux(phi, alpha1, alphaScheme))