57 c_(
"c", scalar(1) - b_),
61 rho_(
"rho", 1.0/(b_/uThermo_->
rho() + c_/bThermo_->
rho())),
62 psi_(
"psi", 1.0/(b_/uThermo_->
psi() + c_/bThermo_->
psi())),
63 mu_(
"mu", b_*uThermo_->
mu() + c_*bThermo_->
mu()),
64 kappa_(
"kappa", b_*uThermo_->
kappa() + c_*bThermo_->
kappa()),
67 phasePropertyName(
"alpha", unburntPhaseName), rho_*b_/uThermo_->
rho()
71 phasePropertyName(
"alpha", burntPhaseName), rho_*c_/bThermo_->
rho()
102 return uThermo_->properties();
109 return uThermo_->properties();
115 return uThermo_->mesh();
144 rho_ = 1.0/(b_/uThermo_->rho() + c_/bThermo_->rho());
145 psi_ = 1.0/(b_/uThermo_->psi() + c_/bThermo_->psi());
146 mu_ = b_*uThermo_->mu() + c_*bThermo_->mu();
147 kappa_ = b_*uThermo_->kappa() + c_*bThermo_->kappa();
149 alphau_ = rho_*b_/uThermo_->rho();
150 alphab_ = rho_*c_/bThermo_->rho();
156 return ubMixtureMap_->prompt(uThermo_->Y());
167 for (
label n=0;
n<=Yu[0].nOldTimes();
n++)
172 Yu0.
set(i, &Yu[i].oldTimeRef(
n));
178 Yb0.
set(i, &Yb[i].oldTime(
n));
181 ubMixtureMap_->reset(b_.oldTime(
n), Yu0, c_.oldTime(
n), Yb0);
184 uThermo_->reset(b_, c_, bThermo_->he());
189 <<
"Reset (EGR) not supported by " << uThermo_->type()
198 return uThermo_->W();
205 return uThermo_->W(
patchi);
211 return uThermo_->p();
217 return uThermo_->p();
230 return uThermo_->T();
237 return uThermo_->T();
243 return uThermo_->he();
249 return uThermo_->he();
255 return uThermo_->Cp();
261 return uThermo_->Cv();
267 return uThermo_->Cpv();
279 return rho_.boundaryField()[
patchi];
291 uThermo_->correctRho(dp);
292 bThermo_->correctRho(dp);
293 rho_ = 1.0/(b_/uThermo_->rho() + c_/bThermo_->rho());
304 return uThermo_->he(
p,
T);
315 return uThermo_->he(
p,
T);
326 return uThermo_->he(
T,
cells);
337 return uThermo_->he(
T,
patchi);
349 return uThermo_->he(
T, model, source);
362 return uThermo_->he(
T, model, source,
cells);
369 return uThermo_->hs();
379 return uThermo_->hs(
p,
T);
390 return uThermo_->hs(
p,
T);
401 return uThermo_->hs(
T,
cells);
412 return uThermo_->hs(
T,
patchi);
419 return uThermo_->ha();
430 return uThermo_->ha(
p,
T);
441 return uThermo_->ha(
p,
T);
452 return uThermo_->ha(
T,
cells);
463 return uThermo_->ha(
T,
patchi);
474 return uThermo_->Cp(
T,
patchi);
485 return uThermo_->Cv(
T,
patchi);
496 return uThermo_->Cpv(
T,
patchi);
508 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.
const dimensionSet dimless
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.