diff --git a/src/combustionModels/PaSR/PaSR.C b/src/combustionModels/PaSR/PaSR.C index 286b9f3f0c0b5d566de0983068443b79907c862f..16720de35b93f78792fb0ea77af5f23729bcab2b 100644 --- a/src/combustionModels/PaSR/PaSR.C +++ b/src/combustionModels/PaSR/PaSR.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -53,10 +53,15 @@ Foam::combustionModels::PaSR<CombThermoType>::PaSR dimensionedScalar("kappa", dimless, 0.0) ), useReactionRate_(this->coeffs().lookupOrDefault("useReactionRate", false)) -{} +{ + if (useReactionRate_) + { + Info<< " using reaction rate" << endl; + } +} -// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * // +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // template<class CombThermoType> Foam::combustionModels::PaSR<CombThermoType>::~PaSR() @@ -79,13 +84,12 @@ void Foam::combustionModels::PaSR<CombThermoType>::correct() { if (this->active()) { + const scalar t = this->mesh().time().value(); + const scalar dt = this->mesh().time().deltaTValue(); + if (!useReactionRate_) { - this->pChemistry_->solve - ( - this->mesh().time().value()-this->mesh().time().deltaTValue(), - this->mesh().time().deltaTValue() - ); + this->pChemistry_->solve(t - dt, dt); } else { @@ -94,35 +98,35 @@ void Foam::combustionModels::PaSR<CombThermoType>::correct() if (turbulentReaction_) { + tmp<volScalarField> trho(this->rho()); + const volScalarField& rho = trho(); tmp<volScalarField> tepsilon(this->turbulence().epsilon()); const volScalarField& epsilon = tepsilon(); tmp<volScalarField> tmuEff(this->turbulence().muEff()); const volScalarField& muEff = tmuEff(); + tmp<volScalarField> ttc(tc()); const volScalarField& tc = ttc(); + + const dimensionedScalar e0 + ( + "e0", + sqr(dimLength)/pow3(dimTime), + SMALL + ); + forAll(epsilon, i) { if (epsilon[i] > 0) { - const dimensionedScalar e0 - ( - "e0", - sqr(dimLength)/pow3(dimTime), SMALL - ); - scalar tk = Cmix_.value() - *Foam::sqrt - ( - muEff[i]/this->rho()()[i]/(epsilon[i] + e0.value()) - ); + *Foam::sqrt(muEff[i]/rho[i]/(epsilon[i] + e0.value())); // Chalmers PaSR model if (!useReactionRate_) { - kappa_[i] = - ( this->mesh().time().deltaTValue() + tc[i]) - /( this->mesh().time().deltaTValue() + tc[i] + tk); + kappa_[i] = (dt + tc[i])/(dt + tc[i] + tk); } else { @@ -148,11 +152,7 @@ template<class CombThermoType> Foam::tmp<Foam::fvScalarMatrix> Foam::combustionModels::PaSR<CombThermoType>::R(const volScalarField& Y) const { - - tmp<fvScalarMatrix> tSu - ( - new fvScalarMatrix(Y, dimMass/dimTime) - ); + tmp<fvScalarMatrix> tSu(new fvScalarMatrix(Y, dimMass/dimTime)); fvScalarMatrix& Su = tSu(); diff --git a/src/finiteVolume/fvMesh/fvMeshGeometry.C b/src/finiteVolume/fvMesh/fvMeshGeometry.C index 8006caf0a90052d3709d363ed599921be03356e4..0a06ef7364e0edbbf862fdd7040dc9a3a645e9fe 100644 --- a/src/finiteVolume/fvMesh/fvMeshGeometry.C +++ b/src/finiteVolume/fvMesh/fvMeshGeometry.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -398,7 +398,7 @@ const surfaceScalarField& fvMesh::phi() const if (!phiPtr_) { FatalErrorIn("fvMesh::phi()") - << "mesh flux field does not exists, is the mesh actually moving?" + << "mesh flux field does not exist, is the mesh actually moving?" << exit(FatalError); } @@ -418,7 +418,7 @@ surfaceScalarField& fvMesh::setPhi() if (!phiPtr_) { FatalErrorIn("fvMesh::setPhi()") - << "mesh flux field does not exists, is the mesh actually moving?" + << "mesh flux field does not exist, is the mesh actually moving?" << exit(FatalError); } diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/ODEChemistryModel/ODEChemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/ODEChemistryModel/ODEChemistryModel.C index 117412407c5f1b242328c33bb41dc5a23544cb4e..f0807eb725093cd3bf1c4e3836b049642afdfc57 100644 --- a/src/thermophysicalModels/chemistryModel/chemistryModel/ODEChemistryModel/ODEChemistryModel.C +++ b/src/thermophysicalModels/chemistryModel/chemistryModel/ODEChemistryModel/ODEChemistryModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -743,6 +743,8 @@ Foam::scalar Foam::ODEChemistryModel<CompType, ThermoType>::solve const scalar deltaT ) { + CompType::correct(); + scalar deltaTMin = GREAT; const volScalarField rho diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.C index 3b2aafecd8a696ab45a11419d934367cd01aa279..38efa9e858e89cbbad80eeaa4cc36e00e882f8ff 100644 --- a/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.C +++ b/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -34,6 +34,18 @@ namespace Foam defineTypeNameAndDebug(basicChemistryModel, 0); } +// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * // + +void Foam::basicChemistryModel::correct() +{ + if (mesh_.changing()) + { + deltaTChem_.setSize(mesh_.nCells()); + deltaTChem_ = deltaTChemIni_; + } +} + + // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::basicChemistryModel::basicChemistryModel(const fvMesh& mesh) @@ -51,11 +63,8 @@ Foam::basicChemistryModel::basicChemistryModel(const fvMesh& mesh) ), mesh_(mesh), chemistry_(lookup("chemistry")), - deltaTChem_ - ( - mesh.nCells(), - readScalar(lookup("initialChemicalTimeStep")) - ) + deltaTChemIni_(readScalar(lookup("initialChemicalTimeStep"))), + deltaTChem_(mesh.nCells(), deltaTChemIni_) {} diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.H b/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.H index 607133ce7e7beced87fd548b7efc17e4a97623d5..2f27d59f7081468c645a53191de4e335f8c67664 100644 --- a/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.H +++ b/src/thermophysicalModels/chemistryModel/chemistryModel/basicChemistryModel/basicChemistryModel.H @@ -76,6 +76,9 @@ protected: //- Chemistry activation switch Switch chemistry_; + //- Initial chemical time step + const scalar deltaTChemIni_; + //- Latest estimation of integration step scalarField deltaTChem_; @@ -86,6 +89,9 @@ protected: // step, e.g. for multi-chemistry model scalarField& deltaTChem(); + //- Correct function - updates due to mesh changes + void correct(); + public: