From a8044e1f535ea910bfe2dc32b5278513d6e515ce Mon Sep 17 00:00:00 2001 From: ignis Date: Tue, 23 Jan 2018 21:35:04 +0900 Subject: [PATCH] remove CMC methods and pure virtual methods added to chemistryModels --- .../basicChemistryModel/basicChemistryModel.H | 34 +- .../chemistryModel/chemistryModel.C | 353 +----------------- .../chemistryModel/chemistryModel.H | 29 -- 3 files changed, 8 insertions(+), 408 deletions(-) diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.H b/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.H index 2d636fd89..553fc1a01 100644 --- a/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.H +++ b/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.H @@ -178,45 +178,23 @@ public: //- Return the mass fraction of the *specieName //- 28.Nov.2017 Jinwoo Park - virtual tmp Yspecie(const word *specieName) const = 0; + virtual tmp Yspecie(const word *specieName) {} //- Return the mass fraction of the *specieName //- 28.Nov.2017 Jinwoo Park - virtual tmp MoleFracSpecie(const word *specieName) const = 0; + virtual tmp MoleFracSpecie(const word *specieName) {} //- Return the epsilon - virtual tmp epsilon() const = 0; + virtual tmp epsilon() {} //- Return the k - virtual tmp k() const = 0; + virtual tmp k() {} //- Return the U field - virtual tmp U() const = 0; + virtual tmp U() {} //- Return the turbulent kinematic diffusivity of chemical species (Le=1 is assumed) - virtual tmp nut() const = 0; - - virtual scalar solveCMCchem - ( - scalar deltaT, scalar& rho, scalar& T, - scalar& p, scalarField& Qi, scalar& Qh, - scalarField& RRCMC, scalar& ChemDeltaT - ) = 0; //CMC - - virtual scalar calculateTCMC(scalar& Qh, scalarField& Qi, scalar& Told, scalar& rho, scalar& p) = 0; //CMC - virtual scalar calculateRHOCMC(scalarField& Qi, scalar& T, scalar& p) = 0; //CMC - virtual scalar calculateHCMC(scalarField& Qi, scalar& T, scalar& rho, scalar& p) = 0; //CMC - virtual scalar calculateShCMC(scalarField& RRCMC, label i) = 0; //CMC - virtual void correction - ( - scalarField& b, scalarField& Ta, scalarField& Wa, scalarField& Wb, - scalarField& Gab, scalarField& Gat, scalarField& Gbt, - scalarField& Gaa, scalarField& Gbb, scalar& Gtt, scalar& rhorho - ) = 0; - - //- Calculate the reaction rate (EDM or finite-rate/EDM) - //- 11.Apr.2017 Karam Han (updated by Jinwoo Park) - virtual void calculateEDM(bool finiteRate, const scalar A, const scalar B) = 0; + virtual tmp nut() {} }; diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.C index 6d99a3c01..6807df96e 100644 --- a/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.C +++ b/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.C @@ -27,7 +27,6 @@ License #include "reactingMixture.H" #include "UniformField.H" #include "extrapolatedCalculatedFvPatchFields.H" -#include "wallFvPatch.H" //jinwoo, implemented according to the of231 version of simpleCoalCombustionfoam from karam // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // @@ -50,12 +49,11 @@ Foam::chemistryModel::chemistryModel dynamic_cast&> (this->thermo()).speciesData() ), + nSpecie_(Y_.size()), nReaction_(reactions_.size()), Treact_(CompType::template lookupOrDefault("Treact", 0.0)), - RR_(nSpecie_), - edmRR_(reactions_.size()), - kineticRR_(reactions_.size()) + RR_(nSpecie_) { // create the fields for the chemistry sources forAll(RR_, fieldi) @@ -79,45 +77,6 @@ Foam::chemistryModel::chemistryModel ); } - forAll(edmRR_, reactioni) - { - edmRR_.set - ( - reactioni, - new volScalarField - ( - IOobject - ( - "edmRR." + reactions_[reactioni].name(), - mesh.time().timeName(), - mesh, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh, - dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0.0) - ) - ); - - kineticRR_.set - ( - reactioni, - new volScalarField - ( - IOobject - ( - "kineticRR." + reactions_[reactioni].name(), - mesh.time().timeName(), - mesh, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh, - dimensionedScalar("zero", dimMass/dimVolume/dimTime, 0.0) - ) - ); - } - Info<< "chemistryModel: Number of species = " << nSpecie_ << " and reactions = " << nReaction_ << endl; } @@ -1161,313 +1120,5 @@ void Foam::chemistryModel::solve NotImplemented; } -template -Foam::scalar Foam::chemistryModel::solveCMCchem -( - scalar deltaT, scalar& rho, scalar& T, scalar& p, scalarField& Qi, scalar& Qh, scalarField& RRCMC, scalar& ChemDeltaT -) -{ - scalar deltaTMin = GREAT; - //if(!this->chemistry_) - //{ - // return deltaTMin; - //} - - scalar rhoi = rho; - scalar Ti = T; - scalar pi = p; - - scalarField c(nSpecie_); - scalarField c0(nSpecie_); - - for(label i=0 ; i SMALL) - { - scalar dt = timeLeft; - this->solve(c, Ti, pi, dt, ChemDeltaT); - timeLeft -= dt; - } - deltaTMin = min(ChemDeltaT, deltaTMin); - - for(label i=0 ; i -Foam::scalar Foam::chemistryModel::calculateTCMC -( - scalar& Qh, scalarField& Qi, scalar& Told, scalar& rho, scalar& p -) -{ - scalar rhoi = rho; - scalar Ti = Told; - scalar pi = p; - - scalarField c(nSpecie_); - - for (label i=0; i -Foam::scalar Foam::chemistryModel::calculateRHOCMC -( - scalarField& Qi, scalar& T, scalar& p -) -{ - scalar Ti = T; //conditional temperature [K] - scalar pi = p; //pressure [Pa] - - scalar MeanMW(0); //mean molecular weight [kg/kmol] - scalar InvMeanMW(0); //inverse of MeanMW [kmol/kg] - scalar RHOCMC(0); //conditional density [kg/kmol] - - for (label i=0; i -Foam::scalar Foam::chemistryModel::calculateHCMC -( - scalarField& Qi, scalar& T, scalar& rho, scalar& p -) -{ - scalar rhoi = rho; //conditional density [kg/kmol] - scalar pi = p; - scalar Ti = T; //conditional temperature [K] - scalar HCMC(0); //conditional total enthalpy [J/kg] - scalarField c(nSpecie_); - - for (label i=0; i -Foam::scalar Foam::chemistryModel::calculateShCMC -( - scalarField& RRCMC, label i -) -{ - scalar tSh(0); - if (this->chemistry_) - { - scalar hi = specieThermo_[i].Hc(); - //Info<<"hi = "<thermo().rho(); - const volScalarField& k = this->db().objectRegistry::lookupObject("k"); - const volScalarField& epsilon = this->db().objectRegistry::lookupObject("epsilon"); - - const scalarField& T = this->thermo().T(); - const scalarField& p = this->thermo().p(); - - scalar EDMrate(0.0); - - forAll(rho, celli) - { - scalarField RRedm(nSpecie_, 0.0); - scalarField RRkinetic(nSpecie_, 0.0); - - forAll(reactions_, reactioni) - { - const Reaction& R = reactions_[reactioni]; - - scalar Ymin(1.0); - forAll(R.lhs(), lhs_speciei) - { - const label speciei = R.lhs()[lhs_speciei].index; - const scalar stoiCoeff = R.lhs()[lhs_speciei].stoichCoeff; - if(stoiCoeff != 0) - { - Ymin = min(Ymin, Y_[speciei][celli]/stoiCoeff/specieThermo_[speciei].W()); - } - } - - scalar YPmin(0.0); - scalar Num(0.0); - scalar Den(0.0); - forAll(R.rhs(), rhs_speciei) - { - const label speciei = R.rhs()[rhs_speciei].index; - const scalar stoiCoeff = R.rhs()[rhs_speciei].stoichCoeff; - if(stoiCoeff != 0) - { - Num += Y_[speciei][celli]; - Den += stoiCoeff*specieThermo_[speciei].W(); - } - } - YPmin = Num / Den; - - Ymin = min(Ymin, B*YPmin); - - EDMrate = A*rho[celli]*epsilon[celli]/k[celli]*Ymin; - - scalar omegai = 0.0; - if(finiteRate == true) - { - scalar pf, cf, pr, cr; - label lRef, rRef; - - scalarField c(nSpecie_, 0.0); - for(label i=0 ; i> RR_; - scalarField b_, Ta_, Wa_, Wb_, Gab_, Gat_, Gbt_, Gaa_, Gbb_; - - scalar Gtt_, rhorho_; - - PtrList> edmRR_; - - PtrList> kineticRR_; // Protected Member Functions @@ -229,24 +222,6 @@ public: // and return the characteristic time virtual scalar solve(const scalarField& deltaT); - virtual scalar solveCMCchem - ( - scalar deltaT, scalar& rho, scalar& T, - scalar& p, scalarField& Qi, scalar& Qh, - scalarField& RRCMC, scalar& ChemDeltaT - ); - - virtual scalar calculateTCMC(scalar& Qh, scalarField& Qi, scalar& Told, scalar& rho, scalar& p); - virtual scalar calculateRHOCMC(scalarField& Qi, scalar& T, scalar& p); - virtual scalar calculateHCMC(scalarField& Qi, scalar& T, scalar& rho, scalar& p); - virtual scalar calculateShCMC(scalarField& RRCMC, label i); - virtual void correction - ( - scalarField& b, scalarField& Ta, scalarField& Wa, scalarField& Wb, - scalarField& Gab, scalarField& Gat, scalarField& Gbt, - scalarField& Gaa, scalarField& Gbb, scalar& Gtt, scalar& rhorho - ); - //- Return the chemical time scale virtual tmp tc() const; @@ -280,10 +255,6 @@ public: //- 28.Nov.2017 Jinwoo Park virtual tmp nut() const; - //- Calculate the reaction rates (EDM or finite-rate EDM) - //- 11.Apr.2017 Karam Han (updated by Jinwoo Park) - virtual void calculateEDM(bool finiteRate, const scalar A, const scalar B); - // ODE functions (overriding abstract functions in ODE.H) //- Number of ODE's to solve