27 #include "surfaceTensionModel.H" 28 #include "aspectRatioModel.H" 29 #include "surfaceInterpolate.H" 46 const phaseModelList& phaseModels
49 tmp<surfaceScalarField> tmpPhi
70 const dictTable& modelDicts
75 const phasePairKey& key = iter.key();
78 if (phasePairs_.found(key))
82 else if (key.ordered())
91 phaseModels_[key.first()],
92 phaseModels_[key.second()]
108 phaseModels_[key.first()],
109 phaseModels_[key.second()]
130 mesh.time().constant(),
132 IOobject::MUST_READ_IF_MODIFIED,
139 phaseModels_(
lookup(
"phases"), phaseModel::iNew(*this)),
141 phi_(calcPhi(phaseModels_)),
162 blendingMethods_.insert
174 generatePairsAndSubModels(
"surfaceTension", surfaceTensionModels_);
175 generatePairsAndSubModels(
"aspectRatio", aspectRatioModels_);
191 tmp<volScalarField> tmpRho
193 phaseModels_[0]*phaseModels_[0].
rho()
198 tmpRho.ref() += phaseModels_[
phasei]*phaseModels_[
phasei].rho();
207 tmp<volVectorField> tmpU
209 phaseModels_[0]*phaseModels_[0].
U()
214 tmpU.ref() += phaseModels_[
phasei]*phaseModels_[
phasei].U();
224 if (aspectRatioModels_.found(key))
226 return aspectRatioModels_[key]->E();
230 return tmp<volScalarField>
236 aspectRatioModel::typeName +
":E",
237 this->mesh_.time().timeName(),
254 if (surfaceTensionModels_.found(key))
256 return surfaceTensionModels_[key]->sigma();
260 return tmp<volScalarField>
266 surfaceTensionModel::typeName +
":sigma",
267 this->mesh_.time().timeName(),
289 phaseModels_[
phasei].correct();
296 bool updateDpdt =
false;
300 phaseModels_[
phasei].correctKinematics();
302 updateDpdt = updateDpdt || phaseModels_[
phasei].thermo().dpdt();
317 phaseModels_[
phasei].correctThermo();
326 phaseModels_[
phasei].correctTurbulence();
335 phaseModels_[
phasei].correctEnergyTransport();
348 readOK &= phaseModels_[
phasei].read();
static const word propertiesName
Default name of the phase properties dictionary.
void generatePairs(const dictTable &modelDicts)
Generate pairs.
#define forAll(list, i)
Loop across all elements in list.
tmp< volScalarField > E(const phasePairKey &key) const
Return the aspect-ratio.
virtual void correctTurbulence()
Correct the turbulence.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
virtual bool read()
Read object.
virtual void solve()
Solve for the phase fractions.
tmp< volScalarField > sigma(const phasePairKey &key) const
Return the surface tension coefficient.
tmp< GeometricField< Type, fvPatchField, volMesh > > ddt(const dimensioned< Type > dt, const fvMesh &mesh)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
Calculate the first temporal derivative.
psiReactionThermo & thermo
virtual void correctKinematics()
Correct the kinematics.
stressControl lookup("compactNormalStress") >> compactNormalStress
phaseSystem(const fvMesh &mesh)
Construct from fvMesh.
A class for handling words, derived from string.
tmp< volVectorField > U() const
Return the mixture velocity.
virtual void correctThermo()
Correct the thermodynamics.
const word dictName("particleTrackDict")
const dimensionSet dimPressure
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
static autoPtr< blendingMethod > New(const dictionary &dict, const wordList &phaseNames)
virtual void correct()
Correct the fluid properties other than the thermo and turbulence.
tmp< volScalarField > rho() const
Return the mixture density.
defineTypeNameAndDebug(combustionModel, 0)
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &tvf, const surfaceScalarField &faceFlux, Istream &schemeData)
Interpolate field onto faces using scheme given by Istream.
virtual void correctEnergyTransport()
Correct the energy transport e.g. alphat.
tmp< surfaceScalarField > calcPhi(const phaseModelList &phaseModels) const
Calculate and return the mixture flux.
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
static const dimensionSet dimSigma
Surface tension coefficient dimensions.
virtual ~phaseSystem()
Destructor.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
virtual bool read()
Read base phaseProperties dictionary.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
phasePairKey()
Construct null.
A class for managing temporary objects.
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField