31 template<
class BaseThermo>
38 template<
class BaseThermo>
54 auto Yslicer = this->Yslicer();
60 auto composition = this->elementComposition(Yslicer, i);
62 const typename BaseThermo::mixtureType::thermoMixtureType&
63 thermoMixture = this->thermoMixture(composition);
65 const typename BaseThermo::mixtureType::transportMixtureType&
67 this->transportMixture(composition, thermoMixture);
69 T[subi] = thermoMixture.Tes(
e[subi],
p[subi],
T[subi]);
71 rho[subi] = thermoMixture.rho(
p[subi],
T[subi]);
72 Cv[subi] = thermoMixture.Cv(
p[subi],
T[subi]);
74 kappa[subi] = transportMixture.kappa(
p[subi],
T[subi]);
77 if (BaseThermo::debug)
Info<<
" Finished" <<
endl;
scalar Cv(const scalar p, const scalar T) const
#define forAll(list, i)
Loop across all elements in list.
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.
virtual ~SolidLagrangianThermo()
Destructor.
virtual void correct(const LagrangianSubMesh &)
Update cached properties.
Pre-declare related SubField type.
#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].
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & endl(Ostream &os)
Add newline and flush stream.
void T(GeometricField< Type, GeoMesh, PrimitiveField1 > &gf, const GeometricField< Type, GeoMesh, PrimitiveField2 > &gf1)