30 template<
class BaseThermo>
37 template<
class BaseThermo>
55 auto Yslicer = this->Yslicer();
61 auto composition = this->elementComposition(Yslicer, i);
63 const typename BaseThermo::mixtureType::thermoMixtureType&
64 thermoMixture = this->thermoMixture(composition);
66 const typename BaseThermo::mixtureType::transportMixtureType&
68 this->transportMixture(composition, thermoMixture);
70 T[subi] = thermoMixture.Tes(
e[subi],
p[subi],
T[subi]);
72 psi[subi] = thermoMixture.psi(
p[subi],
T[subi]);
73 rho[subi] = thermoMixture.rho(
p[subi],
T[subi]);
74 Cv[subi] = thermoMixture.Cv(
p[subi],
T[subi]);
76 kappa[subi] = transportMixture.kappa(
p[subi],
T[subi]);
77 mu[subi] = transportMixture.mu(
p[subi],
T[subi]);
80 if (BaseThermo::debug)
Info<<
" Finished" <<
endl;
86 template<
class BaseThermo>
95 this->LagrangianInjectionProperty
101 &BaseThermo::mixtureType::thermoMixture,
103 this->p(injection,
T.mesh())(),
109 template<
class BaseThermo>
117 typedef decltype(this->Yslicer(injection,
T.mesh())) YslicerType;
120 decltype(this->injectionElementComposition(YslicerType(), -1))
123 const typename BaseThermo::mixtureType::transportMixtureType&
124 (BaseThermo::mixtureType::*
mixture)(
const compositionType&)
const =
125 &BaseThermo::mixtureType::transportMixture;
128 this->LagrangianInjectionProperty
136 this->p(injection,
T.mesh())(),
scalar Cv(const scalar p, const scalar T) const
#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...
virtual tmp< LagrangianSubScalarField > psi(const LagrangianSubScalarField &T, const LagrangianInjection &) const
Compressibility for an injection [m^2/s^2].
virtual tmp< LagrangianSubScalarField > mu(const LagrangianSubScalarField &T, const LagrangianInjection &) const
Dynamic viscosity for an injection [W/m/K].
virtual ~FluidLagrangianThermo()
Destructor.
virtual void correct(const LagrangianSubMesh &)
Update state.
Base class for Lagrangian injections. Minimal wrapper over LagrangianSource. Implements some utility ...
Mesh that relates to a sub-section of a Lagrangian mesh. This is used to construct fields that relate...
word sub(const word &fieldName) const
Return the name of a field corresponding to this sub-mesh.
label start() const
Return start.
Pre-declare related SubField type.
A class for managing temporary objects.
const volScalarField & psi
#define InfoInFunction
Report an information message using Foam::Info.
const dimensionedScalar e
Elementary charge.
const dimensionedScalar kappa
Coulomb constant: default SI units: [N.m2/C2].
const dimensionedScalar mu
Atomic mass unit.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const dimensionSet & dimDynamicViscosity
Ostream & endl(Ostream &os)
Add newline and flush stream.
const dimensionSet & dimDensity
const dimensionSet & dimPressure
void T(GeometricField< Type, GeoMesh, PrimitiveField1 > &gf, const GeometricField< Type, GeoMesh, PrimitiveField2 > &gf1)