Foam::COxidationKineticDiffusionLimitedRate<CloudType>:: COxidationKineticDiffusionLimitedRate ( const dictionary& dict, CloudType& owner ) : SurfaceReactionModel<CloudType>(dict, owner, typeName), Sb_(readScalar(this->coeffDict().lookup("Sb"))), C1_(readScalar(this->coeffDict().lookup("C1"))), C2_(readScalar(this->coeffDict().lookup("C2"))), E_(readScalar(this->coeffDict().lookup("E"))), CsLocalId_(-1), O2GlobalId_(owner.composition().globalCarrierId("O2")), CO2GlobalId_(owner.composition().globalCarrierId("CO2")), WC_(0.0), WO2_(0.0), HcCO2_(0.0) { // Determine Cs ids label idSolid = owner.composition().idSolid(); CsLocalId_ = owner.composition().localId(idSolid, "C"); // Set local copies of thermo properties WO2_ = owner.thermo().carrier().W(O2GlobalId_); const scalar WCO2 = owner.thermo().carrier().W(CO2GlobalId_); WC_ = WCO2 - WO2_; HcCO2_ = owner.thermo().carrier().Hc(CO2GlobalId_); const scalar YCloc = owner.composition().Y0(idSolid)[CsLocalId_]; const scalar YSolidTot = owner.composition().YMixture0()[idSolid]; Info<< " C(s): particle mass fraction = " << YCloc*YSolidTot << endl; }
Foam::COxidationDiffusionLimitedRate<CloudType>::COxidationDiffusionLimitedRate ( const dictionary& dict, CloudType& owner ) : SurfaceReactionModel<CloudType>(dict, owner, typeName), Sb_(readScalar(this->coeffDict().lookup("Sb"))), D_(readScalar(this->coeffDict().lookup("D"))), CsLocalId_(-1), O2GlobalId_(owner.composition().carrierId("O2")), CO2GlobalId_(owner.composition().carrierId("CO2")), WC_(0.0), WO2_(0.0), HcCO2_(0.0) { // Determine Cs ids label idSolid = owner.composition().idSolid(); CsLocalId_ = owner.composition().localId(idSolid, "C"); // Set local copies of thermo properties WO2_ = owner.thermo().carrier().W(O2GlobalId_); const scalar WCO2 = owner.thermo().carrier().W(CO2GlobalId_); WC_ = WCO2 - WO2_; HcCO2_ = owner.thermo().carrier().Hc(CO2GlobalId_); if (Sb_ < 0) { FatalErrorIn ( "COxidationDiffusionLimitedRate<CloudType>" "(" "const dictionary&, " "CloudType&" ")" ) << "Stoichiometry of reaction, Sb, must be greater than zero" << nl << exit(FatalError); } const scalar YCloc = owner.composition().Y0(idSolid)[CsLocalId_]; const scalar YSolidTot = owner.composition().YMixture0()[idSolid]; Info<< " C(s): particle mass fraction = " << YCloc*YSolidTot << endl; }
Foam::COxidationHurtMitchell<CloudType>::COxidationHurtMitchell ( const dictionary& dict, CloudType& owner ) : SurfaceReactionModel<CloudType>(dict, owner, typeName), Sb_(readScalar(this->coeffDict().lookup("Sb"))), CsLocalId_(-1), ashLocalId_(-1), O2GlobalId_(owner.composition().globalCarrierId("O2")), CO2GlobalId_(owner.composition().globalCarrierId("CO2")), WC_(0.0), WO2_(0.0), HcCO2_(0.0), heatOfReaction_(-1.0) { // Determine Cs and ash ids label idSolid = owner.composition().idSolid(); CsLocalId_ = owner.composition().localId(idSolid, "C"); ashLocalId_ = owner.composition().localId(idSolid, "ash", true); // Set local copies of thermo properties WO2_ = owner.thermo().carrier().W(O2GlobalId_); const scalar WCO2 = owner.thermo().carrier().W(CO2GlobalId_); WC_ = WCO2 - WO2_; HcCO2_ = owner.thermo().carrier().Hc(CO2GlobalId_); const scalar YCloc = owner.composition().Y0(idSolid)[CsLocalId_]; const scalar YSolidTot = owner.composition().YMixture0()[idSolid]; Info<< " C(s): particle mass fraction = " << YCloc*YSolidTot << endl; if (this->coeffDict().readIfPresent("heatOfReaction", heatOfReaction_)) { Info<< " Using user specified heat of reaction: " << heatOfReaction_ << " [J/kg]" << endl; } }
Foam::CompositionModel<CloudType>::CompositionModel ( const dictionary& dict, CloudType& owner, const word& type ) : SubModelBase<CloudType>(owner, dict, typeName, type), thermo_(owner.thermo()), phaseProps_ ( this->coeffDict().lookup("phases"), thermo_.carrier().species(), thermo_.liquids().components(), thermo_.solids().components() ) {}
Foam::CompositionModel<CloudType>::CompositionModel(CloudType& owner) : SubModelBase<CloudType>(owner), thermo_(owner.thermo()), phaseProps_() {}