30 template<
class CloudType>
39 volatileData_(this->coeffDict().lookup(
"volatileData")),
40 YVolatile0_(volatileData_.size()),
41 volatileToGasMap_(volatileData_.size()),
44 if (volatileData_.empty())
48 "Foam::SingleKineticRateDevolatilisation<CloudType>::" 49 "SingleKineticRateDevolatilisation" 51 "const dictionary& dict, " 54 ) <<
"Devolatilisation model selected, but no volatiles defined" 59 Info<<
"Participating volatile species:" <<
endl;
62 const label idGas = owner.composition().idGas();
63 const scalar YGasTot = owner.composition().YMixture0()[idGas];
64 const scalarField& YGas = owner.composition().Y0(idGas);
67 const word& specieName = volatileData_[i].name();
68 const label id = owner.composition().localId(idGas, specieName);
69 volatileToGasMap_[i] = id;
70 YVolatile0_[i] = YGasTot*YGas[id];
72 Info<<
" " << specieName <<
": particle mass fraction = " 73 << YVolatile0_[i] <<
endl;
79 template<
class CloudType>
87 volatileData_(dm.volatileData_),
88 YVolatile0_(dm.YVolatile0_),
89 volatileToGasMap_(dm.volatileToGasMap_),
90 residualCoeff_(dm.residualCoeff_)
96 template<
class CloudType>
104 template<
class CloudType>
122 const label id = volatileToGasMap_[i];
123 const scalar massVolatile0 = mass0*YVolatile0_[i];
124 const scalar massVolatile = mass*YGasEff[id];
127 done = done && (massVolatile <= residualCoeff_*massVolatile0);
130 const scalar A1 = volatileData_[i].A1();
131 const scalar E = volatileData_[i].E();
137 dMassDV[id] =
min(dt*kappa*massVolatile, massVolatile);
140 if (done && canCombust != -1)
Single kinetic rate devolatisation model.
A class for handling words, derived from string.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
dimensionedScalar exp(const dimensionedScalar &ds)
A list of keyword definitions, which are a keyword followed by any number of values (e...
Templated devolatilisation model class.
Ostream & endl(Ostream &os)
Add newline and flush stream.
stressControl lookup("compactNormalStress") >> compactNormalStress
#define WarningIn(functionName)
Report a warning using Foam::Warning.
virtual void calculate(const scalar dt, const scalar age, const scalar mass0, const scalar mass, const scalar T, const scalarField &YGasEff, const scalarField &YLiquidEff, const scalarField &YSolidEff, label &canCombust, scalarField &dMassDV) const
Update model.
const scalar RR
Universal gas constant (default in [J/(kmol K)])
virtual ~SingleKineticRateDevolatilisation()
Destructor.
Templated base class for dsmc cloud.
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
SingleKineticRateDevolatilisation(const dictionary &dict, CloudType &owner)
Construct from dictionary.
const dimensionedScalar kappa
Coulomb constant: default SI units: [N.m2/C2].