From f3d64c24090b484bb52233e92fbbde9e598ad69b Mon Sep 17 00:00:00 2001 From: sergio <sergio> Date: Wed, 7 Mar 2012 12:06:00 +0000 Subject: [PATCH] ENH: Adding noCombustion model --- src/combustionModels/Make/files | 2 + .../noCombustion/noCombustion.C | 142 ++++++++++++++++++ .../noCombustion/noCombustion.H | 118 +++++++++++++++ .../noCombustion/noCombustions.C | 53 +++++++ .../constant/combustionProperties | 1 + 5 files changed, 316 insertions(+) create mode 100644 src/combustionModels/noCombustion/noCombustion.C create mode 100644 src/combustionModels/noCombustion/noCombustion.H create mode 100644 src/combustionModels/noCombustion/noCombustions.C diff --git a/src/combustionModels/Make/files b/src/combustionModels/Make/files index 3bb286c7d6b..325fa1dde13 100644 --- a/src/combustionModels/Make/files +++ b/src/combustionModels/Make/files @@ -23,5 +23,7 @@ FSD/reactionRateFlameAreaModels/relaxation/relaxation.C FSD/FSDs.C +noCombustion/noCombustions.C + LIB = $(FOAM_LIBBIN)/libcombustionModels diff --git a/src/combustionModels/noCombustion/noCombustion.C b/src/combustionModels/noCombustion/noCombustion.C new file mode 100644 index 00000000000..3abdedaf297 --- /dev/null +++ b/src/combustionModels/noCombustion/noCombustion.C @@ -0,0 +1,142 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "noCombustion.H" +#include "fvmSup.H" + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +template<class CombThermoType> +Foam::combustionModels::noCombustion<CombThermoType>::noCombustion +( + const word& modelType, + const fvMesh& mesh +) +: + CombThermoType(modelType, mesh) +{} + + +// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * // + +template<class CombThermoType> +Foam::combustionModels::noCombustion<CombThermoType>::~noCombustion() +{} + + +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + +template<class CombThermoType> +void Foam::combustionModels::noCombustion<CombThermoType>::correct() +{ +// Do Nothing +} + + +template<class CombThermoType> +Foam::tmp<Foam::fvScalarMatrix> +Foam::combustionModels::noCombustion<CombThermoType>::R +( + const volScalarField& Y +) const +{ + tmp<fvScalarMatrix> tSu + ( + new fvScalarMatrix(Y, dimMass/dimTime) + ); + + return tSu; +} + + +template<class CombThermoType> +Foam::tmp<Foam::volScalarField> +Foam::combustionModels::noCombustion<CombThermoType>::dQ() const +{ + tmp<volScalarField> tdQ + ( + new volScalarField + ( + IOobject + ( + "dQ", + this->mesh().time().timeName(), + this->mesh(), + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + this->mesh(), + dimensionedScalar("dQ", dimEnergy/dimTime, 0.0), + zeroGradientFvPatchScalarField::typeName + ) + ); + + return tdQ; +} + + +template<class CombThermoType> +Foam::tmp<Foam::volScalarField> +Foam::combustionModels::noCombustion<CombThermoType>::Sh() const +{ + tmp<volScalarField> tSh + ( + new volScalarField + ( + IOobject + ( + "Sh", + this->mesh().time().timeName(), + this->mesh(), + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + this->mesh(), + dimensionedScalar("zero", dimEnergy/dimTime/dimVolume, 0.0), + zeroGradientFvPatchScalarField::typeName + ) + ); + + return tSh; +} + + +template<class CombThermoType> +bool Foam::combustionModels::noCombustion<CombThermoType>::read() +{ + if (CombThermoType::read()) + { + return true; + } + else + { + return false; + } +} + + +// ************************************************************************* // diff --git a/src/combustionModels/noCombustion/noCombustion.H b/src/combustionModels/noCombustion/noCombustion.H new file mode 100644 index 00000000000..8e845d43f14 --- /dev/null +++ b/src/combustionModels/noCombustion/noCombustion.H @@ -0,0 +1,118 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::combustionModels::noCombustion + +Description + +SourceFiles + noCombustion.C + +\*---------------------------------------------------------------------------*/ + +#ifndef noCombustion_H +#define noCombustion_H + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace combustionModels +{ + +/*---------------------------------------------------------------------------*\ + Class noCombustion Declaration +\*---------------------------------------------------------------------------*/ + +template<class CombThermoType> +class noCombustion +: + public CombThermoType +{ + + //- Disallow copy construct + noCombustion(const noCombustion&); + + //- Disallow default bitwise assignment + void operator=(const noCombustion&); + + +public: + + //- Runtime type information + TypeName("noCombustion"); + + + // Constructors + + //- Construct from components + noCombustion + ( + const word& modelType, + const fvMesh& mesh + ); + + + //- Destructor + virtual ~noCombustion(); + + + // Member Functions + + // Evolution + + //- Correct combustion rate + virtual void correct(); + + //- Fuel consumption rate matrix. + virtual tmp<fvScalarMatrix> R(const volScalarField& Y) const; + + //- Heat release rate calculated from fuel consumption rate matrix + virtual tmp<volScalarField> dQ() const; + + //- Return source for enthalpy equation [kg/m/s3] + virtual tmp<volScalarField> Sh() const; + + // I-O + + //- Update properties from given dictionary + virtual bool read(); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace combustionModels +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#ifdef NoRepository +# include "noCombustion.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/combustionModels/noCombustion/noCombustions.C b/src/combustionModels/noCombustion/noCombustions.C new file mode 100644 index 00000000000..dba5597f1e4 --- /dev/null +++ b/src/combustionModels/noCombustion/noCombustions.C @@ -0,0 +1,53 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "makeCombustionTypes.H" + +#include "psiCombustionModel.H" +#include "rhoCombustionModel.H" +#include "noCombustion.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace combustionModels +{ + makeCombustionTypes + ( + noCombustion, + psiCombustionModel + ); + + makeCombustionTypes + ( + noCombustion, + rhoCombustionModel + ); +} +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/combustionProperties b/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/combustionProperties index 619c448058c..ae740ee6716 100644 --- a/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/combustionProperties +++ b/tutorials/combustion/fireFoam/les/smallPoolFire2D/constant/combustionProperties @@ -15,6 +15,7 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +//combustionModel noCombustion<psiCombustionModel>; combustionModel infinitelyFastChemistry<psiCombustionModel,gasThermoPhysics>; //combustionModel FSD<psiCombustionModel,gasThermoPhysics>; -- GitLab