Extends chemistryModel by adding the TDAC method. More...
Public Member Functions | |
TypeName ("TDACChemistryModel") | |
Runtime type information. More... | |
TDACChemistryModel (const fvMesh &mesh, const word &phaseName) | |
Construct from mesh. More... | |
virtual | ~TDACChemistryModel () |
Destructor. More... | |
bool | variableTimeStep () const |
Return true if the time-step is variable and/or non-uniform. More... | |
label | timeSteps () const |
Return the number of chemistry evaluations (used by ISAT) More... | |
autoPtr< OFstream > | logFile (const word &name) const |
Create and return a TDAC log file of the given name. More... | |
PtrList< volScalarField > & | Y () |
virtual void | omega (const scalarField &c, const scalar T, const scalar p, scalarField &dcdt) const |
dc/dt = omega, rate of change in concentration, for each species More... | |
virtual scalar | omega (const Reaction< ThermoType > &r, const scalarField &c, const scalar T, const scalar p, scalar &pf, scalar &cf, label &lRef, scalar &pr, scalar &cr, label &rRef) const |
Return the reaction rate for reaction r and the reference. More... | |
virtual scalar | solve (const scalar deltaT) |
Solve the reaction system for the given time step. More... | |
virtual scalar | solve (const scalarField &deltaT) |
Solve the reaction system for the given time step. More... | |
virtual void | derivatives (const scalar t, const scalarField &c, scalarField &dcdt) const |
Calculate the derivatives in dydx. More... | |
void | jacobian (const scalar t, const scalarField &c, scalarSquareMatrix &dfdc) const |
Pure jacobian function for tabulation. More... | |
virtual void | jacobian (const scalar t, const scalarField &c, scalarField &dcdt, scalarSquareMatrix &dfdc) const |
Calculate the Jacobian of the system. More... | |
virtual void | solve (scalarField &c, scalar &T, scalar &p, scalar &deltaT, scalar &subDeltaT) const =0 |
void | setNsDAC (const label newNsDAC) |
void | setNSpecie (const label newNs) |
scalarField & | completeC () |
scalarField & | simplifiedC () |
Field< bool > & | reactionsDisabled () |
bool | active (const label i) const |
void | setActive (const label i) |
DynamicList< label > & | simplifiedToCompleteIndex () |
Field< label > & | completeToSimplifiedIndex () |
const Field< label > & | completeToSimplifiedIndex () const |
List< List< specieElement > > & | specieComp () |
autoPtr< chemistryReductionMethod< CompType, ThermoType > > & | mechRed () |
tmp< volScalarField > | tabulationResults () const |
void | setTabulationResultsAdd (const label celli) |
void | setTabulationResultsGrow (const label celli) |
void | setTabulationResultsRetrieve (const label celli) |
void | resetTabulationResults () |
template<class DeltaTType > | |
Foam::scalar | solve (const DeltaTType &deltaT) |
Public Member Functions inherited from chemistryModel< CompType, ThermoType > | |
TypeName ("chemistryModel") | |
Runtime type information. More... | |
chemistryModel (const fvMesh &mesh, const word &phaseName) | |
Construct from mesh. More... | |
virtual | ~chemistryModel () |
Destructor. More... | |
const PtrList< Reaction< ThermoType > > & | reactions () const |
The reactions. More... | |
const PtrList< ThermoType > & | specieThermo () const |
Thermodynamic data of the species. More... | |
virtual label | nSpecie () const |
The number of species. More... | |
virtual label | nReaction () const |
The number of reactions. More... | |
scalar | Treact () const |
Temperature below which the reaction rates are assumed 0. More... | |
scalar & | Treact () |
Temperature below which the reaction rates are assumed 0. More... | |
virtual scalar | omegaI (label iReaction, const scalarField &c, const scalar T, const scalar p, scalar &pf, scalar &cf, label &lRef, scalar &pr, scalar &cr, label &rRef) const |
Return the reaction rate for iReaction and the reference. More... | |
virtual void | calculate () |
Calculates the reaction rates. More... | |
const volScalarField::Internal & | RR (const label i) const |
Return const access to the chemical source terms for specie, i. More... | |
virtual volScalarField::Internal & | RR (const label i) |
Return non const access to chemical source terms [kg/m3/s]. More... | |
virtual tmp< volScalarField::Internal > | calculateRR (const label reactionI, const label speciei) const |
Return reaction rate of the speciei in reactionI. More... | |
virtual tmp< volScalarField > | tc () const |
Return the chemical time scale. More... | |
virtual tmp< volScalarField > | Qdot () const |
Return the heat release rate [kg/m/s3]. More... | |
virtual label | nEqns () const |
Number of ODE's to solve. More... | |
template<class DeltaTType > | |
Foam::scalar | solve (const DeltaTType &deltaT) |
Public Member Functions inherited from ODESystem | |
ODESystem () | |
Construct null. More... | |
virtual | ~ODESystem () |
Destructor. More... | |
Additional Inherited Members | |
Protected Types inherited from chemistryModel< CompType, ThermoType > | |
typedef ThermoType | thermoType |
Protected Member Functions inherited from chemistryModel< CompType, ThermoType > | |
PtrList< volScalarField::Internal > & | RR () |
Write access to chemical source terms. More... | |
Protected Attributes inherited from chemistryModel< CompType, ThermoType > | |
PtrList< volScalarField > & | Y_ |
Reference to the field of specie mass fractions. More... | |
const PtrList< Reaction< ThermoType > > & | reactions_ |
Reactions. More... | |
const PtrList< ThermoType > & | specieThermo_ |
Thermodynamic data of the species. More... | |
label | nSpecie_ |
Number of species. More... | |
label | nReaction_ |
Number of reactions. More... | |
scalar | Treact_ |
Temperature below which the reaction rates are assumed 0. More... | |
PtrList< volScalarField::Internal > | RR_ |
List of reaction rate per specie [kg/m3/s]. More... | |
scalarField | c_ |
Temporary concentration field. More... | |
scalarField | dcdt_ |
Temporary rate-of-change of concentration field. More... | |
Extends chemistryModel by adding the TDAC method.
Contino, F., Jeanmart, H., Lucchini, T., & D’Errico, G. (2011). Coupling of in situ adaptive tabulation and dynamic adaptive chemistry: An effective method for solving combustion in engine simulations. Proceedings of the Combustion Institute, 33(2), 3057-3064. Contino, F., Lucchini, T., D'Errico, G., Duynslaegher, C., Dias, V., & Jeanmart, H. (2012). Simulations of advanced combustion modes using detailed chemistry combined with tabulation and mechanism reduction techniques. SAE International Journal of Engines, 5(2012-01-0145), 185-196. Contino, F., Foucher, F., Dagaut, P., Lucchini, T., D’Errico, G., & Mounaïm-Rousselle, C. (2013). Experimental and numerical analysis of nitric oxide effect on the ignition of iso-octane in a single cylinder HCCI engine. Combustion and Flame, 160(8), 1476-1483. Contino, F., Masurier, J. B., Foucher, F., Lucchini, T., D’Errico, G., & Dagaut, P. (2014). CFD simulations using the TDAC method to model iso-octane combustion for a large range of ozone seeding and temperature conditions in a single cylinder HCCI engine. Fuel, 137, 179-184.
Definition at line 47 of file chemistryReductionMethod.H.
TDACChemistryModel | ( | const fvMesh & | mesh, |
const word & | phaseName | ||
) |
Construct from mesh.
Definition at line 35 of file TDACChemistryModel.C.
References composition, forAll, mesh, Foam::name(), Foam::New(), basicMultiComponentMixture::setInactive(), basicMultiComponentMixture::species(), thermo, and Y.
|
virtual |
Destructor.
Definition at line 140 of file TDACChemistryModel.C.
References TDACChemistryModel< CompType, ThermoType >::omega().
TypeName | ( | "TDACChemistryModel< CompType, ThermoType >" | ) |
Runtime type information.
|
inline |
Return true if the time-step is variable and/or non-uniform.
Definition at line 30 of file TDACChemistryModelI.H.
Referenced by chemistryTabulationMethod< CompType, ThermoType >::variableTimeStep(), and chemPointISAT< CompType, ThermoType >::variableTimeStep().
|
inline |
Return the number of chemistry evaluations (used by ISAT)
Definition at line 38 of file TDACChemistryModelI.H.
|
inline |
Create and return a TDAC log file of the given name.
Definition at line 46 of file TDACChemistryModelI.H.
References mesh, Foam::mkDir(), and path().
Referenced by ISAT< CompType, ThermoType >::ISAT().
|
inline |
Definition at line 61 of file TDACChemistryModelI.H.
Referenced by DAC< CompType, ThermoType >::DAC(), DRG< CompType, ThermoType >::DRG(), DRGEP< CompType, ThermoType >::DRGEP(), and PFA< CompType, ThermoType >::PFA().
|
virtual |
dc/dt = omega, rate of change in concentration, for each species
Reimplemented from chemistryModel< CompType, ThermoType >.
Definition at line 148 of file TDACChemistryModel.C.
References forAll, Reaction< ReactionThermo >::lhs(), R, Reaction< ReactionThermo >::rhs(), s(), and Foam::Zero.
Referenced by TDACChemistryModel< CompType, ThermoType >::~TDACChemistryModel().
|
virtual |
Return the reaction rate for reaction r and the reference.
species and charateristic times
Reimplemented from chemistryModel< CompType, ThermoType >.
Definition at line 202 of file TDACChemistryModel.C.
References TDACChemistryModel< CompType, ThermoType >::derivatives(), Foam::exp(), Reaction< ReactionThermo >::kf(), Reaction< ReactionThermo >::kr(), Reaction< ReactionThermo >::lhs(), Foam::max(), Foam::pow(), Reaction< ReactionThermo >::rhs(), and s().
|
virtual |
Solve the reaction system for the given time step.
and return the characteristic time
Reimplemented from chemistryModel< CompType, ThermoType >.
Definition at line 882 of file TDACChemistryModel.C.
References Foam::min(), and solve().
|
virtual |
Solve the reaction system for the given time step.
and return the characteristic time
Reimplemented from chemistryModel< CompType, ThermoType >.
Definition at line 897 of file TDACChemistryModel.C.
References TDACChemistryModel< CompType, ThermoType >::setTabulationResultsAdd().
|
virtual |
Calculate the derivatives in dydx.
Reimplemented from chemistryModel< CompType, ThermoType >.
Definition at line 311 of file TDACChemistryModel.C.
References cp, TDACChemistryModel< CompType, ThermoType >::jacobian(), Foam::max(), nSpecie, and rho.
Referenced by TDACChemistryModel< CompType, ThermoType >::omega().
void jacobian | ( | const scalar | t, |
const scalarField & | c, | ||
scalarSquareMatrix & | dfdc | ||
) | const |
Pure jacobian function for tabulation.
Definition at line 395 of file TDACChemistryModel.C.
References delta, Foam::constant::electromagnetic::e, forAll, Reaction< ReactionThermo >::kf(), Reaction< ReactionThermo >::kr(), Reaction< ReactionThermo >::lhs(), Foam::max(), Foam::pow(), Reaction< ReactionThermo >::rhs(), and Foam::Zero.
Referenced by TDACChemistryModel< CompType, ThermoType >::derivatives().
|
virtual |
Calculate the Jacobian of the system.
Need by the stiff-system solvers
Reimplemented from chemistryModel< CompType, ThermoType >.
Definition at line 579 of file TDACChemistryModel.C.
|
pure virtual |
Implements chemistryModel< CompType, ThermoType >.
|
inline |
Definition at line 97 of file TDACChemistryModelI.H.
|
inline |
Definition at line 105 of file TDACChemistryModelI.H.
|
inline |
Definition at line 146 of file TDACChemistryModelI.H.
|
inline |
Definition at line 154 of file TDACChemistryModelI.H.
|
inline |
Definition at line 138 of file TDACChemistryModelI.H.
|
inline |
Definition at line 87 of file TDACChemistryModelI.H.
References thermo.
Referenced by TDACChemistryModel< CompType, ThermoType >::setActive(), and TDACChemistryModel< CompType, ThermoType >::solve().
|
inline |
Definition at line 77 of file TDACChemistryModelI.H.
References TDACChemistryModel< CompType, ThermoType >::active(), and thermo.
Referenced by TDACChemistryModel< CompType, ThermoType >::mechRed().
|
inline |
Definition at line 113 of file TDACChemistryModelI.H.
Referenced by chemPointISAT< CompType, ThermoType >::chemPointISAT().
|
inline |
Definition at line 121 of file TDACChemistryModelI.H.
Referenced by chemPointISAT< CompType, ThermoType >::chemPointISAT().
|
inline |
Definition at line 130 of file TDACChemistryModelI.H.
|
inline |
Definition at line 162 of file TDACChemistryModelI.H.
Referenced by DAC< CompType, ThermoType >::DAC().
|
inline |
Definition at line 69 of file TDACChemistryModelI.H.
References TDACChemistryModel< CompType, ThermoType >::setActive().
|
inline |
Definition at line 278 of file TDACChemistryModel.H.
References TDACChemistryModel< CompType, ThermoType >::resetTabulationResults(), TDACChemistryModel< CompType, ThermoType >::setTabulationResultsAdd(), TDACChemistryModel< CompType, ThermoType >::setTabulationResultsGrow(), and TDACChemistryModel< CompType, ThermoType >::setTabulationResultsRetrieve().
void setTabulationResultsAdd | ( | const label | celli | ) |
Definition at line 907 of file TDACChemistryModel.C.
References TDACChemistryModel< CompType, ThermoType >::setTabulationResultsGrow().
Referenced by TDACChemistryModel< CompType, ThermoType >::solve(), and TDACChemistryModel< CompType, ThermoType >::tabulationResults().
void setTabulationResultsGrow | ( | const label | celli | ) |
Definition at line 917 of file TDACChemistryModel.C.
References TDACChemistryModel< CompType, ThermoType >::setTabulationResultsRetrieve().
Referenced by TDACChemistryModel< CompType, ThermoType >::setTabulationResultsAdd(), and TDACChemistryModel< CompType, ThermoType >::tabulationResults().
void setTabulationResultsRetrieve | ( | const label | celli | ) |
Definition at line 928 of file TDACChemistryModel.C.
Referenced by TDACChemistryModel< CompType, ThermoType >::setTabulationResultsGrow(), and TDACChemistryModel< CompType, ThermoType >::tabulationResults().
|
inline |
Definition at line 169 of file TDACChemistryModelI.H.
References forAll.
Referenced by TDACChemistryModel< CompType, ThermoType >::tabulationResults().
Foam::scalar solve | ( | const DeltaTType & | deltaT | ) |
Definition at line 599 of file TDACChemistryModel.C.
References basicMultiComponentMixture::active(), TDACChemistryModel< CompType, ThermoType >::active(), Foam::constant::universal::c, composition, correct, Foam::endl(), forAll, mesh, Foam::min(), nSpecie, Foam::constant::mathematical::pi(), rho, basicMultiComponentMixture::setActive(), List< T >::size(), solve(), thermo, clockTime::timeIncrement(), timeName, Y, and Foam::Zero.