56 c_(
"c", scalar(1) - b_),
60 rho_(
"rho", 1.0/(b_/uThermo_->
rho() + c_/bThermo_->
rho())),
61 psi_(
"psi", 1.0/(b_/uThermo_->
psi() + c_/bThermo_->
psi())),
62 mu_(
"mu", b_*uThermo_->
mu() + c_*bThermo_->
mu()),
63 kappa_(
"kappa", b_*uThermo_->
kappa() + c_*bThermo_->
kappa()),
66 phasePropertyName(
"alpha", unburntPhaseName), rho_*b_/uThermo_->
rho()
70 phasePropertyName(
"alpha", burntPhaseName), rho_*c_/bThermo_->
rho()
101 return uThermo_->properties();
108 return uThermo_->properties();
114 return uThermo_->mesh();
143 rho_ = 1.0/(b_/uThermo_->rho() + c_/bThermo_->rho());
144 psi_ = 1.0/(b_/uThermo_->psi() + c_/bThermo_->psi());
145 mu_ = b_*uThermo_->mu() + c_*bThermo_->mu();
146 kappa_ = b_*uThermo_->kappa() + c_*bThermo_->kappa();
148 alphau_ = rho_*b_/uThermo_->rho();
149 alphab_ = rho_*c_/bThermo_->rho();
155 return ubMixtureMap_->prompt(uThermo_->Y());
166 for (
label n=0;
n<=Yu[0].nOldTimes();
n++)
171 Yu0.
set(i, &Yu[i].oldTimeRef(
n));
177 Yb0.
set(i, &Yb[i].oldTime(
n));
180 ubMixtureMap_->reset(b_.oldTime(
n), Yu0, c_.oldTime(
n), Yb0);
183 uThermo_->reset(b_, c_, bThermo_->he());
188 <<
"Reset (EGR) not supported by " << uThermo_->type()
197 return uThermo_->W();
204 return uThermo_->W(
patchi);
210 return uThermo_->p();
216 return uThermo_->p();
229 return uThermo_->T();
236 return uThermo_->T();
242 return uThermo_->he();
248 return uThermo_->he();
254 return uThermo_->Cp();
260 return uThermo_->Cv();
266 return uThermo_->Cpv();
278 return rho_.boundaryField()[
patchi];
290 uThermo_->correctRho(dp);
291 bThermo_->correctRho(dp);
292 rho_ = 1.0/(b_/uThermo_->rho() + c_/bThermo_->rho());
303 return uThermo_->he(
p,
T);
314 return uThermo_->he(
p,
T);
325 return uThermo_->he(
T,
cells);
336 return uThermo_->he(
T,
patchi);
348 return uThermo_->he(
T, model, source);
361 return uThermo_->he(
T, model, source,
cells);
368 return uThermo_->hs();
378 return uThermo_->hs(
p,
T);
389 return uThermo_->hs(
p,
T);
400 return uThermo_->hs(
T,
cells);
411 return uThermo_->hs(
T,
patchi);
418 return uThermo_->ha();
429 return uThermo_->ha(
p,
T);
440 return uThermo_->ha(
p,
T);
451 return uThermo_->ha(
T,
cells);
462 return uThermo_->ha(
T,
patchi);
473 return uThermo_->Cp(
T,
patchi);
484 return uThermo_->Cv(
T,
patchi);
495 return uThermo_->Cpv(
T,
patchi);
507 return uThermo_->The(
h,
p,
T0);
#define forAll(list, i)
Loop across all elements in list.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Generic GeometricField class.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
static word groupName(Name name, const word &group)
const Field0Type & oldTime() const
Return the old-time field.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
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.
label size() const
Return the number of elements in the UPtrList.
Base-class for combustion fluid thermodynamic properties based on compressibility.
Mesh data needed to do the Finite Volume discretisation.
Base class for finite volume sources.
A class for managing temporary objects.
Base-class for combustion fluid thermodynamic properties based on compressibility.
Base class for unburnt/burnt gas composition mapping.
virtual tmp< volScalarField > W() const
Molecular weight [kg/kmol].
virtual const IOdictionary & properties() const
Properties dictionary.
virtual const volScalarField & T() const
Temperature [K].
virtual void correct()
Update properties.
virtual tmp< volScalarField > ha() const
Absolute enthalpy [J/kg].
static const word burntPhaseName
virtual const volScalarField & kappa() const
Thermal conductivity of mixture [W/m/K].
virtual const word & phaseName() const
Phase name.
virtual word thermoName() const
Name of the thermo physics (not implemented)
static const word unburntPhaseName
virtual const volScalarField & Cpv() const
Heat capacity at constant pressure/volume [J/kg/K].
virtual const volScalarField & he() const
Enthalpy/Internal energy [J/kg].
virtual word mixtureName() const
Return the name of the mixture (not implemented)
PtrList< volScalarField::Internal > prompt() const
Return the burnt gas prompt specie mass fractions.
virtual tmp< volScalarField > hs() const
Sensible enthalpy [J/kg].
virtual const fvMesh & mesh() const
Return const access to the mesh.
virtual const volScalarField & Cv() const
Heat capacity at constant volume [J/kg/K].
virtual tmp< volScalarField > rho() const
Density [kg/m^3].
void reset()
Reset the mixture to an unburnt state.
ubRhoThermo(const fvMesh &mesh)
Construct from mesh.
virtual const volScalarField & p() const
Pressure [Pa].
virtual const volScalarField & Cp() const
Heat capacity at constant pressure [J/kg/K].
virtual ~ubRhoThermo()
Destructor.
virtual void correctRho(const volScalarField &dp)
Update the density corresponding to the given pressure change.
virtual tmp< volScalarField > The(const volScalarField &h, const volScalarField &p, const volScalarField &T0) const
Temperature from enthalpy/internal energy.
virtual const volScalarField & psi() const
Compressibility [s^2/m^2].
virtual const volScalarField & mu() const
Dynamic viscosity of mixture [kg/m/s].
A class for handling words, derived from string.
static const word null
An empty word.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const volScalarField & psi
const dimensionedScalar kappa
Coulomb constant: default SI units: [N.m2/C2].
const dimensionedScalar mu
Atomic mass unit.
const dimensionedScalar h
Planck constant.
errorManipArg< error, int > exit(error &err, const int errNo=1)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
word name(const LagrangianState state)
Return a string representation of a Lagrangian state enumeration.
defineTypeNameAndDebug(atmosphericBoundaryLayer, 0)
tmp< DimensionedField< TypeR, GeoMesh, Field > > New(const tmp< DimensionedField< TypeR, GeoMesh, Field >> &tdf1, const word &name, const dimensionSet &dimensions)
void T(GeometricField< Type, GeoMesh, PrimitiveField1 > &gf, const GeometricField< Type, GeoMesh, PrimitiveField2 > &gf1)
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.