From 4ba2b7bec7ce0615dc9bc4bcce79abad1d7a1ab8 Mon Sep 17 00:00:00 2001 From: sergio <sergio> Date: Thu, 9 Jun 2016 15:38:13 +0100 Subject: [PATCH] Improved mesh motion in pyrolyis region. Fixed energy Eq in pyrolysis model and adding tutorial --- src/TurbulenceModels/compressible/Make/files | 1 + .../compressible/Make/options | 2 + ...fixedIncidentRadiationFvPatchScalarField.C | 219 ++++++++++++++++++ ...fixedIncidentRadiationFvPatchScalarField.H | 205 ++++++++++++++++ .../reactingOneDim/reactingOneDim.C | 23 +- .../basicSolidChemistryModel.H | 3 + .../solidChemistryModel/solidChemistryModel.H | 5 +- .../solidChemistryModelI.H | 41 +++- .../les/simplePMMApanel/.out.kate-swp | Bin 0 -> 137 bytes .../fireFoam/les/simplePMMApanel/0/CH4 | 60 +++++ .../fireFoam/les/simplePMMApanel/0/G | 32 +++ .../fireFoam/les/simplePMMApanel/0/N2 | 56 +++++ .../fireFoam/les/simplePMMApanel/0/O2 | 56 +++++ .../fireFoam/les/simplePMMApanel/0/T | 56 +++++ .../fireFoam/les/simplePMMApanel/0/U | 57 +++++ .../fireFoam/les/simplePMMApanel/0/Ydefault | 56 +++++ .../fireFoam/les/simplePMMApanel/0/alphat | 48 ++++ .../fireFoam/les/simplePMMApanel/0/k | 32 +++ .../fireFoam/les/simplePMMApanel/0/nut | 32 +++ .../fireFoam/les/simplePMMApanel/0/p | 56 +++++ .../fireFoam/les/simplePMMApanel/0/p_rgh | 61 +++++ .../les/simplePMMApanel/0/panelRegion/PMMA | 40 ++++ .../les/simplePMMApanel/0/panelRegion/Qr | 41 ++++ .../les/simplePMMApanel/0/panelRegion/T | 48 ++++ .../simplePMMApanel/0/panelRegion/Y0Default | 40 ++++ .../les/simplePMMApanel/0/panelRegion/p | 31 +++ .../fireFoam/les/simplePMMApanel/Allclean | 10 + .../fireFoam/les/simplePMMApanel/Allrun | 18 ++ .../constant/additionalControls | 20 ++ .../constant/boundaryRadiationProperties | 33 +++ .../constant/combustionProperties | 26 +++ .../fireFoam/les/simplePMMApanel/constant/g | 21 ++ .../constant/panelRegion/chemistryProperties | 35 +++ .../constant/panelRegion/radiationProperties | 35 +++ .../constant/panelRegion/reactions | 21 ++ .../constant/panelRegion/thermo.solid | 41 ++++ .../panelRegion/thermophysicalProperties | 68 ++++++ .../constant/polyMesh/blockMeshDict | 74 ++++++ .../simplePMMApanel/constant/pyrolysisZones | 44 ++++ .../constant/radiationProperties | 35 +++ .../constant/reactingCloud1Positions | 20 ++ .../constant/reactingCloud1Properties | 148 ++++++++++++ .../les/simplePMMApanel/constant/reactions | 17 ++ .../constant/surfaceFilmProperties | 23 ++ .../constant/thermo.compressibleGas | 193 +++++++++++++++ .../constant/thermophysicalProperties | 40 ++++ .../constant/turbulenceProperties | 99 ++++++++ .../les/simplePMMApanel/system/controlDict | 58 +++++ .../system/extrudeToRegionMeshDict | 40 ++++ .../les/simplePMMApanel/system/fvSchemes | 71 ++++++ .../les/simplePMMApanel/system/fvSolution | 132 +++++++++++ .../simplePMMApanel/system/makeFaceSet.setSet | 3 + .../system/panelRegion/fvSchemes | 57 +++++ .../system/panelRegion/fvSolution | 66 ++++++ .../les/simplePMMApanel/system/topoSetDict | 43 ++++ 55 files changed, 2781 insertions(+), 11 deletions(-) create mode 100644 src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.C create mode 100644 src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.H create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/.out.kate-swp create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/CH4 create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/G create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/N2 create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/O2 create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/T create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/U create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/Ydefault create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/alphat create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/k create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/nut create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/p create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/p_rgh create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/PMMA create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/Qr create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/T create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/Y0Default create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/p create mode 100755 tutorials/combustion/fireFoam/les/simplePMMApanel/Allclean create mode 100755 tutorials/combustion/fireFoam/les/simplePMMApanel/Allrun create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/additionalControls create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/boundaryRadiationProperties create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/combustionProperties create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/g create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/chemistryProperties create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/radiationProperties create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/reactions create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/thermo.solid create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/thermophysicalProperties create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/polyMesh/blockMeshDict create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/pyrolysisZones create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/radiationProperties create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/reactingCloud1Positions create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/reactingCloud1Properties create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/reactions create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/surfaceFilmProperties create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/thermo.compressibleGas create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/thermophysicalProperties create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/constant/turbulenceProperties create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/system/controlDict create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/system/extrudeToRegionMeshDict create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/system/fvSchemes create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/system/fvSolution create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/system/makeFaceSet.setSet create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/system/panelRegion/fvSchemes create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/system/panelRegion/fvSolution create mode 100644 tutorials/combustion/fireFoam/les/simplePMMApanel/system/topoSetDict diff --git a/src/TurbulenceModels/compressible/Make/files b/src/TurbulenceModels/compressible/Make/files index 2c2366c37dc..da115013cc1 100644 --- a/src/TurbulenceModels/compressible/Make/files +++ b/src/TurbulenceModels/compressible/Make/files @@ -11,6 +11,7 @@ $(BCs)/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFv $(BCs)/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C $(BCs)/wallHeatTransfer/wallHeatTransferFvPatchScalarField.C $(BCs)/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.C +$(BCs)/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.C turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C diff --git a/src/TurbulenceModels/compressible/Make/options b/src/TurbulenceModels/compressible/Make/options index 4a6578d6285..f7ebff8f5ce 100644 --- a/src/TurbulenceModels/compressible/Make/options +++ b/src/TurbulenceModels/compressible/Make/options @@ -2,6 +2,7 @@ EXE_INC = \ -I../turbulenceModels/lnInclude \ -I$(LIB_SRC)/transportModels/compressible/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/solidThermo/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/solidSpecie/lnInclude \ @@ -10,6 +11,7 @@ EXE_INC = \ LIB_LIBS = \ -lcompressibleTransportModels \ + -lradiationModels \ -lfluidThermophysicalModels \ -lsolidThermo \ -lsolidSpecie \ diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.C new file mode 100644 index 00000000000..ea5e4d8232c --- /dev/null +++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.C @@ -0,0 +1,219 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2016 OpenCFD Ltd. + \\/ 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 2 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "fixedIncidentRadiationFvPatchScalarField.H" +#include "addToRunTimeSelectionTable.H" +#include "fvPatchFieldMapper.H" +#include "volFields.H" +#include "constants.H" +#include "radiationModel.H" +#include "absorptionEmissionModel.H" + +using namespace Foam::constant; + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::radiation::fixedIncidentRadiationFvPatchScalarField:: +fixedIncidentRadiationFvPatchScalarField +( + const fvPatch& p, + const DimensionedField<scalar, volMesh>& iF +) +: + fixedGradientFvPatchScalarField(p, iF), + temperatureCoupledBase(patch(), "undefined", "undefined", "undefined-K"), + QrIncident_(p.size(), 0.0) +{} + + +Foam::radiation::fixedIncidentRadiationFvPatchScalarField:: +fixedIncidentRadiationFvPatchScalarField +( + const fixedIncidentRadiationFvPatchScalarField& psf, + const fvPatch& p, + const DimensionedField<scalar, volMesh>& iF, + const fvPatchFieldMapper& mapper +) +: + fixedGradientFvPatchScalarField(psf, p, iF, mapper), + temperatureCoupledBase(patch(), psf), + QrIncident_(psf.QrIncident_) +{} + + +Foam::radiation::fixedIncidentRadiationFvPatchScalarField:: +fixedIncidentRadiationFvPatchScalarField +( + const fvPatch& p, + const DimensionedField<scalar, volMesh>& iF, + const dictionary& dict +) +: + fixedGradientFvPatchScalarField(p, iF), + temperatureCoupledBase(patch(), dict), + QrIncident_("QrIncident", dict, p.size()) +{ + if (dict.found("value") && dict.found("gradient")) + { + fvPatchField<scalar>::operator=(Field<scalar>("value", dict, p.size())); + gradient() = Field<scalar>("gradient", dict, p.size()); + } + else + { + // Still reading so cannot yet evaluate. Make up a value. + fvPatchField<scalar>::operator=(patchInternalField()); + gradient() = 0.0; + } +} + + +Foam::radiation::fixedIncidentRadiationFvPatchScalarField:: +fixedIncidentRadiationFvPatchScalarField +( + const fixedIncidentRadiationFvPatchScalarField& psf, + const DimensionedField<scalar, volMesh>& iF +) +: + fixedGradientFvPatchScalarField(psf, iF), + temperatureCoupledBase(patch(), psf), + QrIncident_(psf.QrIncident_) +{} + + +Foam::radiation::fixedIncidentRadiationFvPatchScalarField:: +fixedIncidentRadiationFvPatchScalarField +( + const fixedIncidentRadiationFvPatchScalarField& ptf +) +: + fixedGradientFvPatchScalarField(ptf), + temperatureCoupledBase(patch(), ptf), + QrIncident_(ptf.QrIncident_) +{} + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + + +void Foam::radiation::fixedIncidentRadiationFvPatchScalarField::autoMap +( + const fvPatchFieldMapper& m +) +{ + fixedGradientFvPatchScalarField::autoMap(m); + QrIncident_.autoMap(m); +} + + +void Foam::radiation::fixedIncidentRadiationFvPatchScalarField::rmap +( + const fvPatchScalarField& psf, + const labelList& addr +) +{ + fixedGradientFvPatchScalarField::rmap(psf, addr); + + const fixedIncidentRadiationFvPatchScalarField& thftpsf = + refCast<const fixedIncidentRadiationFvPatchScalarField> + ( + psf + ); + + QrIncident_.rmap(thftpsf.QrIncident_, addr); +} + + +void Foam::radiation::fixedIncidentRadiationFvPatchScalarField::updateCoeffs() +{ + if (updated()) + { + return; + } + + scalarField intFld(patchInternalField()); + + const radiation::radiationModel& radiation = + db().lookupObject<radiation::radiationModel>("radiationProperties"); + + scalarField emissivity + ( + radiation.absorptionEmission().e()().boundaryField() + [ + patch().index() + ] + ); + + gradient() = + emissivity* + ( + QrIncident_ + - physicoChemical::sigma.value()*pow4(*this) + )/kappa(*this); + + fixedGradientFvPatchScalarField::updateCoeffs(); + + if (debug) + { + scalar Qr = gSum(kappa(*this)*gradient()*patch().magSf()); + Info<< patch().boundaryMesh().mesh().name() << ':' + << patch().name() << ':' + << this->dimensionedInternalField().name() << " -> " + << " radiativeFlux:" << Qr + << " walltemperature " + << " min:" << gMin(*this) + << " max:" << gMax(*this) + << " avg:" << gAverage(*this) + << endl; + } +} + + +void Foam::radiation::fixedIncidentRadiationFvPatchScalarField::write +( + Ostream& os +) const +{ + fixedGradientFvPatchScalarField::write(os); + temperatureCoupledBase::write(os); + QrIncident_.writeEntry("QrIncident", os); + writeEntry("value", os); +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace radiation +{ + makePatchTypeField + ( + fvPatchScalarField, + fixedIncidentRadiationFvPatchScalarField + ); +} +} + +// ************************************************************************* // diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.H new file mode 100644 index 00000000000..79b48191fe3 --- /dev/null +++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.H @@ -0,0 +1,205 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2016 OpenCFD Ltd. + \\/ 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Class + Foam::radiation::fixedIncidentRadiationFvPatchScalarField + +Group + grpThermoBoundaryConditions + +Description + Boundary condition for thermal coupling for solid regions. + Used to emulate a fixed incident radiative heat flux on a wall. + + the gradient heat flux is calculated as : + + Qr = emissivity*(QrIncident - sigma_*T^4) + + where: + + emissivity is the emissivity of the solid. + QrIncident is the specified fixed incident radiation. + + Example usage: + + wall + { + type fixedIncidentRadiation; + QrIncident uniform 500; + kappa solidThermo; + KappaName none; + } + + kappa: + - 'lookup' : lookup volScalarField (or volSymmTensorField) with name + - 'solidThermo' : use solidThermo kappa() + + emissivity: + - 'lookup' : lookup volScalarField emissivity + - 'localSolidRadiation': Look up for local solidRadiation + + +SourceFiles + fixedIncidentRadiationFvPatchScalarField.C + +\*---------------------------------------------------------------------------*/ + +#ifndef fixedIncidentRadiationFvPatchScalarField_H +#define fixedIncidentRadiationFvPatchScalarField_H + +#include "fixedGradientFvPatchFields.H" +#include "temperatureCoupledBase.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace radiation +{ +/*---------------------------------------------------------------------------*\ + Class fixedIncidentRadiationFvPatchScalarField declaration +\*---------------------------------------------------------------------------*/ + +class fixedIncidentRadiationFvPatchScalarField +: + public fixedGradientFvPatchScalarField, + public temperatureCoupledBase +{ + // Private data + + //- Incident radiative heat flux + scalarField QrIncident_; + + +public: + + //- Runtime type information + TypeName("fixedIncidentRadiation"); + + + // Constructors + + //- Construct from patch and internal field + fixedIncidentRadiationFvPatchScalarField + ( + const fvPatch&, + const DimensionedField<scalar, volMesh>& + ); + + //- Construct from patch, internal field and dictionary + fixedIncidentRadiationFvPatchScalarField + ( + const fvPatch&, + const DimensionedField<scalar, volMesh>&, + const dictionary& + ); + + //- Construct by mapping given + // turbulentTemperatureCoupledBaffleMixedFvPatchScalarField onto a + // new patch + fixedIncidentRadiationFvPatchScalarField + ( + const + fixedIncidentRadiationFvPatchScalarField&, + const fvPatch&, + const DimensionedField<scalar, volMesh>&, + const fvPatchFieldMapper& + ); + + //- Construct as copy + fixedIncidentRadiationFvPatchScalarField + ( + const fixedIncidentRadiationFvPatchScalarField& + ); + + + //- Construct and return a clone + virtual tmp<fvPatchScalarField> clone() const + { + return tmp<fvPatchScalarField> + ( + new fixedIncidentRadiationFvPatchScalarField + ( + *this + ) + ); + } + + //- Construct as copy setting internal field reference + fixedIncidentRadiationFvPatchScalarField + ( + const fixedIncidentRadiationFvPatchScalarField&, + const DimensionedField<scalar, volMesh>& + ); + + //- Construct and return a clone setting internal field reference + virtual tmp<fvPatchScalarField> clone + ( + const DimensionedField<scalar, volMesh>& iF + ) const + { + return tmp<fvPatchScalarField> + ( + new fixedIncidentRadiationFvPatchScalarField + ( + *this, + iF + ) + ); + } + + + // Member functions + + + // Mapping functions + + //- Map (and resize as needed) from self given a mapping object + virtual void autoMap(const fvPatchFieldMapper&); + + //- Reverse map the given fvPatchField onto this fvPatchField + virtual void rmap + ( + const fvPatchScalarField&, + const labelList& + ); + + //- Update the coefficients associated with the patch field + virtual void updateCoeffs(); + + //- Write + virtual void write(Ostream&) const; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam +} // End namespace radiation + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C index 41845e6488c..7c40998b004 100644 --- a/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C +++ b/src/regionModels/pyrolysisModels/reactingOneDim/reactingOneDim.C @@ -60,8 +60,10 @@ void reactingOneDim::readReactingOneDimControls() coeffs().lookup("minimumDelta") >> minimumDelta_; - coeffs().lookup("gasHSource") >> gasHSource_; + gasHSource_ = coeffs().lookupOrDefault<bool>("gasHSource", false); + coeffs().lookup("QrHSource") >> QrHSource_; + useChemistrySolvers_ = coeffs().lookupOrDefault<bool>("useChemistrySolvers", true); @@ -209,7 +211,8 @@ void reactingOneDim::updateFields() updateQr(); } - updatePhiGas(); + //SAF: Commented out as the sensible gas enrgy is included in energy eq. + //updatePhiGas(); } @@ -250,11 +253,10 @@ void reactingOneDim::solveContinuity() rhoEqn.solve(); } - - if (moveMesh_) + else { const scalarField deltaV = - -solidChemistry_->RRg()*regionMesh().V()/rho_; + -solidChemistry_->RRg()*regionMesh().V()*time_.deltaT()/rho_; updateMesh(deltaV); } @@ -319,13 +321,16 @@ void reactingOneDim::solveEnergy() - fvc::laplacian(kappa(), T()) == chemistrySh_ + + solidChemistry_->RRsHs() ); +/* NOTE: gas Hs is included in hEqn if (gasHSource_) { const surfaceScalarField phiGas(fvc::interpolate(phiHsGas_)); hEqn += fvc::div(phiGas); } +*/ if (QrHSource_) { @@ -350,12 +355,14 @@ void reactingOneDim::solveEnergy() void reactingOneDim::calculateMassTransfer() { + /* totalGasMassFlux_ = 0; forAll(intCoupledPatchIDs_, i) { const label patchI = intCoupledPatchIDs_[i]; totalGasMassFlux_ += gSum(phiGas_.boundaryField()[patchI]); } + */ if (infoOutput_) { @@ -453,8 +460,6 @@ reactingOneDim::reactingOneDim IOobject::AUTO_WRITE ), regionMesh() - //dimensionedScalar("zero", dimEnergy/dimArea/dimTime, 0.0), - //zeroGradientFvPatchVectorField::typeName ), lostSolidMass_(dimensionedScalar("zero", dimMass, 0.0)), @@ -720,8 +725,8 @@ void reactingOneDim::info() << addedGasMass_.value() << nl << indent << "Total solid mass lost [kg] = " << lostSolidMass_.value() << nl - << indent << "Total pyrolysis gases [kg/s] = " - << totalGasMassFlux_ << nl + //<< indent << "Total pyrolysis gases [kg/s] = " + //<< totalGasMassFlux_ << nl << indent << "Total heat release rate [J/s] = " << totalHeatRR_.value() << nl; } diff --git a/src/thermophysicalModels/solidChemistryModel/basicSolidChemistryModel/basicSolidChemistryModel.H b/src/thermophysicalModels/solidChemistryModel/basicSolidChemistryModel/basicSolidChemistryModel.H index 7ee840c4412..d6b778315e3 100644 --- a/src/thermophysicalModels/solidChemistryModel/basicSolidChemistryModel/basicSolidChemistryModel.H +++ b/src/thermophysicalModels/solidChemistryModel/basicSolidChemistryModel/basicSolidChemistryModel.H @@ -152,6 +152,9 @@ public: const label i ) const = 0; + //- Return net solid sensible enthalpy [J/Kg] + virtual tmp<DimensionedField<scalar, volMesh> > RRsHs() const = 0; + //- Return specie Table for gases virtual const speciesTable& gasTable() const = 0; diff --git a/src/thermophysicalModels/solidChemistryModel/solidChemistryModel/solidChemistryModel.H b/src/thermophysicalModels/solidChemistryModel/solidChemistryModel/solidChemistryModel.H index 17bde2bfbb1..b9d9cbbc0d3 100644 --- a/src/thermophysicalModels/solidChemistryModel/solidChemistryModel/solidChemistryModel.H +++ b/src/thermophysicalModels/solidChemistryModel/solidChemistryModel/solidChemistryModel.H @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -187,6 +187,9 @@ public: //- Return total solid source term inline tmp<DimensionedField<scalar, volMesh> > RRs() const; + //- Return net solid sensible enthalpy + inline tmp<DimensionedField<scalar, volMesh> > RRsHs() const; + //- Solve the reaction system for the given time step // and return the characteristic time virtual scalar solve(const scalar deltaT) = 0; diff --git a/src/thermophysicalModels/solidChemistryModel/solidChemistryModel/solidChemistryModelI.H b/src/thermophysicalModels/solidChemistryModel/solidChemistryModel/solidChemistryModelI.H index f2d0dad79ab..b956c8cd04b 100644 --- a/src/thermophysicalModels/solidChemistryModel/solidChemistryModel/solidChemistryModelI.H +++ b/src/thermophysicalModels/solidChemistryModel/solidChemistryModel/solidChemistryModelI.H @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2013-2013 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -95,4 +95,43 @@ Foam::solidChemistryModel<CompType, SolidThermo>::RRs() const } +template<class CompType, class SolidThermo> +inline Foam::tmp<Foam::DimensionedField<Foam::scalar, Foam::volMesh> > +Foam::solidChemistryModel<CompType, SolidThermo>::RRsHs() const +{ + tmp<DimensionedField<scalar, volMesh> > tRRsHs + ( + new DimensionedField<scalar, volMesh> + ( + IOobject + ( + "RRsHs", + this->time().timeName(), + this->mesh(), + IOobject::NO_READ, + IOobject::NO_WRITE + ), + this->mesh(), + dimensionedScalar("zero", dimEnergy/dimVolume/dimTime, 0.0) + ) + ); + + if (this->chemistry_) + { + DimensionedField<scalar, volMesh>& RRs = tRRsHs(); + + const volScalarField& T = this->solidThermo().T(); + const volScalarField& p = this->solidThermo().p(); + + for (label i=0; i < nSolids_; i++) + { + forAll (RRs, cellI) + { + RRs[cellI] += + RRs_[i][cellI]*solidThermo_[i].Hs(p[cellI], T[cellI]); + } + } + } + return tRRsHs; +} // ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/.out.kate-swp b/tutorials/combustion/fireFoam/les/simplePMMApanel/.out.kate-swp new file mode 100644 index 0000000000000000000000000000000000000000..afd9da2f00bb1d50de535330661daced69d525c1 GIT binary patch literal 137 zcmZQzV36@nEJ;-eE>A2_aLdd|RnS!kOD!tS%+FIW)H4VUVqjp{#K6Fy!N9<v=?dm9 uWnf^CU|?X7gm7mvFfb@EFfb@WxRX$28&LJSFfcF(F)%O)Lln!w^#TCYG!%3I literal 0 HcmV?d00001 diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/CH4 b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/CH4 new file mode 100644 index 00000000000..d53b24658ac --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/CH4 @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object CH4; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + + ground + { + type zeroGradient; + } + + side + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + + frontAndBack + { + type empty; + } + + region0_to_panelRegion_panel + { + type totalFlowRateAdvectiveDiffusive; + massFluxFraction 1; + phi phi; + rho rho; + value uniform 1; + } +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/G b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/G new file mode 100644 index 00000000000..afe48d7aa32 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/G @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object G; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 0 -3 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + ".*" + { + type MarshakRadiation; + T T; + value uniform 0; + } +} + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/N2 b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/N2 new file mode 100644 index 00000000000..f6e0a5bebca --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/N2 @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object N2; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.76699; + +boundaryField +{ + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + + ground + { + type zeroGradient; + } + + side + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + + frontAndBack + { + type empty; + } + + region0_to_panelRegion_panel + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/O2 b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/O2 new file mode 100644 index 00000000000..f67a7d6fe4a --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/O2 @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object O2; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.23301; + +boundaryField +{ + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + + ground + { + type zeroGradient; + } + + side + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + + frontAndBack + { + type empty; + } + + region0_to_panelRegion_panel + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/T b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/T new file mode 100644 index 00000000000..fd1a0c7221e --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/T @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 298.15; + +boundaryField +{ + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + + ground + { + type zeroGradient; + } + + side + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + + frontAndBack + { + type empty; + } + + region0_to_panelRegion_panel + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/U b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/U new file mode 100644 index 00000000000..0191cc698ec --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/U @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + location "0"; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + + ground + { + type fixedValue; + value $internalField; + } + + side + { + type pressureInletOutletVelocity; + phi phi; + value $internalField; + } + + frontAndBack + { + type empty; + } + + region0_to_panelRegion_panel + { + type fixedValue; + value uniform (0 0 0); + } +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/Ydefault b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/Ydefault new file mode 100644 index 00000000000..3b85d62f39b --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/Ydefault @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object Ydefault; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0.; + +boundaryField +{ + outlet + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + + ground + { + type zeroGradient; + } + + side + { + type inletOutlet; + inletValue $internalField; + value $internalField; + } + + frontAndBack + { + type empty; + } + + region0_to_panelRegion_panel + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/alphat b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/alphat new file mode 100644 index 00000000000..b0b7cdaace9 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/alphat @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object alphat; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + outlet + { + type zeroGradient; + } + ground + { + type zeroGradient; + } + frontAndBack + { + type empty; + } + side + { + type zeroGradient; + } + region0_to_panelRegion_panel + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/k b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/k new file mode 100644 index 00000000000..eef8433f2e2 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/k @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 1e-5; + +boundaryField +{ + ".*" + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/nut b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/nut new file mode 100644 index 00000000000..df7712b2f2f --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/nut @@ -0,0 +1,32 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + ".*" + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/p b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/p new file mode 100644 index 00000000000..ad24b0f0d42 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/p @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 101325; + +boundaryField +{ + outlet + { + type calculated; + value $internalField; + } + + ground + { + type calculated; + value $internalField; + } + + side + { + type calculated; + value $internalField; + } + + frontAndBack + { + type empty; + } + + region0_to_panelRegion_panel + { + type calculated; + value $internalField; + } +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/p_rgh b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/p_rgh new file mode 100644 index 00000000000..6994c4afbdd --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/p_rgh @@ -0,0 +1,61 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p_rgh; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 101325; + +boundaryField +{ + outlet + { + type fixedFluxPressure; + } + + ground + { + type fixedFluxPressure; + } + + side + { + type totalPressure; + U U; + phi phi; + rho rho; + psi none; + gamma 1.4; + p0 $internalField; + value $internalField; + } + + frontAndBack + { + type empty; + } + + region0_to_panelRegion_panel + { + type fixedFluxPressure; + } +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/PMMA b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/PMMA new file mode 100644 index 00000000000..8db8bc4c5bf --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/PMMA @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object PMMA; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 1; + +boundaryField +{ + panel_top + { + type zeroGradient; + } + region0_to_panelRegion_panel + { + type zeroGradient; + } + panel_side + { + type empty; + } + +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/Qr b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/Qr new file mode 100644 index 00000000000..654cb3ae748 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/Qr @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object Qr; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 0 -3 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + panel_top + { + type zeroGradient; + } + + panel_side + { + type empty; + } + + region0_to_panelRegion_panel + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/T b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/T new file mode 100644 index 00000000000..d06404e17fd --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/T @@ -0,0 +1,48 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object T; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 1 0 0 0]; + +internalField uniform 298.15; + +boundaryField +{ + panel_top + { + type fixedValue; + value uniform 298.15; + } + panel_side + { + type empty; + } + + region0_to_panelRegion_panel + { + + + type fixedIncidentRadiation; + kappa solidThermo; + kappaName none; + QrIncident uniform 60000.0; //W + value uniform 298.15; + } + +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/Y0Default b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/Y0Default new file mode 100644 index 00000000000..82adc156856 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/Y0Default @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0/pyrolysisRegion"; + object Ydefault; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + panel_top + { + type zeroGradient; + } + region0_to_panelRegion_panel + { + type zeroGradient; + } + panel_side + { + type empty; + } + +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/p b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/p new file mode 100644 index 00000000000..35f1796d497 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/0/panelRegion/p @@ -0,0 +1,31 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + ".*" + { + type zeroGradient; + } +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/Allclean b/tutorials/combustion/fireFoam/les/simplePMMApanel/Allclean new file mode 100755 index 00000000000..be64e41b64f --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/Allclean @@ -0,0 +1,10 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial clean functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cleanCase +rm -rf constant/panelRegion/polyMesh + +# ----------------------------------------------------------------------------- diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/Allrun b/tutorials/combustion/fireFoam/les/simplePMMApanel/Allrun new file mode 100755 index 00000000000..241ab1b9765 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/Allrun @@ -0,0 +1,18 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +runApplication blockMesh + +runApplication topoSet + +runApplication extrudeToRegionMesh -overwrite + +# Run +runApplication `getApplication` + +paraFoam -touchAll + +# ----------------------------------------------------------------------------- diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/additionalControls b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/additionalControls new file mode 100644 index 00000000000..68427639255 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/additionalControls @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object additionalControls; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvePrimaryRegion false; + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/boundaryRadiationProperties b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/boundaryRadiationProperties new file mode 100644 index 00000000000..20a028ae667 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/boundaryRadiationProperties @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object boundaryRadiationProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 0 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + ".*" + { + type boundaryRadiation; + mode lookup; + emissivity uniform 1.0; + absorptivity uniform 0.0; + value uniform 0.0; + } +} + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/combustionProperties b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/combustionProperties new file mode 100644 index 00000000000..d411b52d1d3 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/combustionProperties @@ -0,0 +1,26 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object combustionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +combustionModel infinitelyFastChemistry<psiThermoCombustion,gasHThermoPhysics>; + +active false; + +infinitelyFastChemistryCoeffs +{ + semiImplicit no; + C 10; +} diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/g b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/g new file mode 100644 index 00000000000..a2685678eee --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/g @@ -0,0 +1,21 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class uniformDimensionedVectorField; + location "constant"; + object g; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -2 0 0 0 0]; +value (0 0 -9.80665); + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/chemistryProperties b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/chemistryProperties new file mode 100644 index 00000000000..f5b002f478d --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/chemistryProperties @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object chemistryProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +chemistryType +{ + chemistrySolver ode; + chemistryThermo pyrolysis; +} + +chemistry on; + +initialChemicalTimeStep 1e-07; + +odeCoeffs +{ + solver SIBS; + eps 0.05; +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/radiationProperties b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/radiationProperties new file mode 100644 index 00000000000..f73d5441db6 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/radiationProperties @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object radiationProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +radiationModel opaqueSolid; + +absorptionEmissionModel greyMeanSolidAbsorptionEmission; + +greyMeanSolidAbsorptionEmissionCoeffs +{ + PMMA + { + absorptivity 0.17; + emissivity 0.17; + } +} + +scatterModel none; +transmissivityModel none; + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/reactions b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/reactions new file mode 100644 index 00000000000..cff71055269 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/reactions @@ -0,0 +1,21 @@ +species +( + PMMA +); + +gaseousSpecies +( + gas +); + +reactions +{ + charReaction + { + type irreversibleArrheniusSolidReaction; + reaction "PMMA = gas"; + A 1.2e6; + Ta 11300.57; + Tcrit 400; + } +} diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/thermo.solid b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/thermo.solid new file mode 100644 index 00000000000..5b483941d1e --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/thermo.solid @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format binary; + class dictionary; + location "constant"; + object thermo.solid; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +PMMA +{ + specie + { + nMoles 1; + molWeight 100; + } + transport + { + kappa 0.135; + } + thermodynamics + { + Cp 1462; + Hf -8.22e5; + } + equationOfState + { + rho 1114.7; + } +}; + +// ************************************************************************* // + diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/thermophysicalProperties b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/thermophysicalProperties new file mode 100644 index 00000000000..d5c9a3191bf --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/panelRegion/thermophysicalProperties @@ -0,0 +1,68 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type heSolidThermo; + mixture reactingMixture; + transport constIso; + thermo hConst; + equationOfState rhoConst; + specie specie; + energy sensibleEnthalpy; +} + + +chemistryReader foamChemistryReader; + +foamChemistryFile "$FOAM_CASE/constant/panelRegion/reactions"; + +foamChemistryThermoFile "$FOAM_CASE/constant/panelRegion/thermo.solid"; + +gasThermoType +{ + transport sutherland; + thermo janaf; + equationOfState perfectGas; + specie specie; + energy sensibleEnthalpy; +} + + +gas +{ + specie + { + nMoles 1; + molWeight 18.0153; + } + thermodynamics + { + Tlow 200; + Thigh 5000; + Tcommon 1000; + highCpCoeffs ( 2.67215 0.00305629 -8.73026e-07 1.20100e-10 -6.39162e-15 -29899.2 6.86282 ); + lowCpCoeffs ( 3.38684 0.00347498 -6.35470e-06 6.96858e-09 -2.50659e-12 -30208.1 2.59023 ); + } + transport + { + As 1.67212e-06; + Ts 170.672; + } +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/polyMesh/blockMeshDict b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/polyMesh/blockMeshDict new file mode 100644 index 00000000000..a98922be864 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/polyMesh/blockMeshDict @@ -0,0 +1,74 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 1; + +vertices +( + (0 0 0) + (1 0 0) + (1 1 0) + (0 1 0) + (0 0 1) + (1 0 1) + (1 1 1) + (0 1 1) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) (1 10 10) simpleGrading (1 1 1) +); + +edges +( +); + +patches +( + wall coupledPatch + ( + (0 4 7 3) + ) + + patch side + ( + (1 2 6 5) + ) + + empty frontAndBack + ( + (0 1 5 4) + (7 6 2 3) + ) + + patch outlet + ( + (4 5 6 7) + ) + + wall ground + ( + (0 3 2 1) + ) +); + +mergePatchPairs +( +); + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/pyrolysisZones b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/pyrolysisZones new file mode 100644 index 00000000000..4074c3e862c --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/pyrolysisZones @@ -0,0 +1,44 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format binary; + class dictionary; + location "constant"; + object pyrolysisZones; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + pyrolysis + { + active true; + + pyrolysisModel reactingOneDim; + + regionName panelRegion; + + reactingOneDimCoeffs + { + QrHSource no; //Energy source term due in depht radiation + + filmCoupled false; + + radFluxName Qr; + + minimumDelta 1e-6; + + moveMesh true; + + useChemistrySolvers false; + } + + infoOutput true; + } + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/radiationProperties b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/radiationProperties new file mode 100644 index 00000000000..a952e887a46 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/radiationProperties @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object radiationProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +radiation off; + +radiationModel P1; + +noRadiation +{ +} + +P1Coeffs +{ +} + +scatterModel none; + +transmissivityModel none; + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/reactingCloud1Positions b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/reactingCloud1Positions new file mode 100644 index 00000000000..cefd1f7b2a4 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/reactingCloud1Positions @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class vectorField; + location "constant"; + object reactingCloud1Positions; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +( + (0.0 0.0 0.0) +) +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/reactingCloud1Properties b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/reactingCloud1Properties new file mode 100644 index 00000000000..da4afd4132f --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/reactingCloud1Properties @@ -0,0 +1,148 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object reactingCloud1Properties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solution +{ + active false; + coupled yes; + transient yes; + cellValueSourceCorrection yes; + + sourceTerms + { + schemes + { + rho explicit 1; + U explicit 1; + Yi explicit 1; + hs explicit 1; + } + } + + interpolationSchemes + { + rho cell; + U cellPoint; + mu cell; + T cell; + Cp cell; + p cell; + } + + integrationSchemes + { + U Euler; + T analytical; + } +} + +constantProperties +{ + parcelTypeId 1; + + rhoMin 1e-15; + TMin 200; + pMin 1000; + minParticleMass 1e-15; + + rho0 1000; + T0 300; + Cp0 4187; + + youngsModulus 1e9; + poissonsRatio 0.35; + + epsilon0 1; + f0 0.5; + Pr 0.7; + Tvap 273; + Tbp 373; + + constantVolume false; +} + +subModels +{ + particleForces + { + sphereDrag; + gravity; + } + injectionModel reactingLookupTableInjection; + + dragModel sphereDrag; + + dispersionModel none; + + patchInteractionModel standardWallInteraction; + + heatTransferModel none; + + compositionModel singlePhaseMixture; + + phaseChangeModel none; + + stochasticCollisionModel none; + + postProcessingModel none; + + surfaceFilmModel thermoSurfaceFilm; + + radiation off; + + reactingLookupTableInjectionCoeffs + { + massTotal 1e-1; + parcelBasisType mass; + SOI 0.001; + inputFile "parcelInjectionProperties"; + duration 20.0; + parcelsPerSecond 200; + } + + standardWallInteractionCoeffs + { + type rebound; + } + + singlePhaseMixtureCoeffs + { + phases + ( + liquid + { + H2O 1; + } + ); + } + + thermoSurfaceFilmCoeffs + { + interactionType splashBai; + deltaWet 0.0005; + Adry 2630; + Awet 1320; + Cf 0.6; + } +} + + +cloudFunctions +{} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/reactions b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/reactions new file mode 100644 index 00000000000..a8f49e45e44 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/reactions @@ -0,0 +1,17 @@ +species +( + O2 + H2O + CH4 + CO2 + N2 +); + +reactions +{ + methaneReaction + { + type irreversibleinfiniteReaction; + reaction "CH4 + 2O2 + 7.52N2 = CO2 + 2H2O + 7.52N2"; + } +} diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/surfaceFilmProperties b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/surfaceFilmProperties new file mode 100644 index 00000000000..5d869e9a24b --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/surfaceFilmProperties @@ -0,0 +1,23 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object SurfaceFilmProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +active false; + +surfaceFilmModel none; + +regionName none; + diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/thermo.compressibleGas b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/thermo.compressibleGas new file mode 100644 index 00000000000..6fa14f2df8f --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/thermo.compressibleGas @@ -0,0 +1,193 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermo.compressibleGas; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +O2 +{ + specie + { + nMoles 1; + molWeight 31.9988; + } + thermodynamics + { + Tlow 200; + Thigh 5000; + Tcommon 1000; + highCpCoeffs ( 3.69758 0.00061352 -1.25884e-07 1.77528e-11 -1.13644e-15 -1233.93 3.18917 ); + lowCpCoeffs ( 3.21294 0.00112749 -5.75615e-07 1.31388e-09 -8.76855e-13 -1005.25 6.03474 ); + } + transport + { + As 1.67212e-06; + Ts 170.672; + } +} + +H2O +{ + specie + { + nMoles 1; + molWeight 18.0153; + } + thermodynamics + { + Tlow 200; + Thigh 5000; + Tcommon 1000; + highCpCoeffs ( 2.67215 0.00305629 -8.73026e-07 1.201e-10 -6.39162e-15 -29899.2 6.86282 ); + lowCpCoeffs ( 3.38684 0.00347498 -6.3547e-06 6.96858e-09 -2.50659e-12 -30208.1 2.59023 ); + } + transport + { + As 1.67212e-06; + Ts 170.672; + } +} + +CH4 +{ + specie + { + nMoles 1; + molWeight 16.0428; + } + thermodynamics + { + Tlow 200; + Thigh 6000; + Tcommon 1000; + highCpCoeffs ( 1.63543 0.0100844 -3.36924e-06 5.34973e-10 -3.15528e-14 -10005.6 9.9937 ); + lowCpCoeffs ( 5.14988 -0.013671 4.91801e-05 -4.84744e-08 1.66694e-11 -10246.6 -4.64132 ); + } + transport + { + As 1.67212e-06; + Ts 170.672; + } +} + +CO2 +{ + specie + { + nMoles 1; + molWeight 44.01; + } + thermodynamics + { + Tlow 200; + Thigh 5000; + Tcommon 1000; + highCpCoeffs ( 4.45362 0.00314017 -1.27841e-06 2.394e-10 -1.66903e-14 -48967 -0.955396 ); + lowCpCoeffs ( 2.27572 0.00992207 -1.04091e-05 6.86669e-09 -2.11728e-12 -48373.1 10.1885 ); + } + transport + { + As 1.67212e-06; + Ts 170.672; + } +} + +N2 +{ + specie + { + nMoles 1; + molWeight 28.0134; + } + thermodynamics + { + Tlow 200; + Thigh 5000; + Tcommon 1000; + highCpCoeffs ( 2.92664 0.00148798 -5.68476e-07 1.0097e-10 -6.75335e-15 -922.798 5.98053 ); + lowCpCoeffs ( 3.29868 0.00140824 -3.96322e-06 5.64152e-09 -2.44486e-12 -1020.9 3.95037 ); + } + transport + { + As 1.67212e-06; + Ts 170.672; + } +} + +C3H8 +{ + specie + { + nMoles 1; + molWeight 44.0962; + } + thermodynamics + { + Tlow 200; + Thigh 5000; + Tcommon 1000; + highCpCoeffs ( 7.5341368 0.018872239 -6.2718491e-06 9.1475649e-10 -4.7838069e-14 -16467.516 -17.892349 ); + lowCpCoeffs ( 0.93355381 0.026424579 6.1059727e-06 -2.1977499e-08 9.5149253e-12 -13958.52 19.201691 ); + } + transport + { + As 1.67212e-06; + Ts 170.672; + } +} + +CORRUGATED +{ + specie + { + nMoles 1; + molWeight 115.82; + } + thermodynamics + { + Tlow 200; + Thigh 5000; + Tcommon 1000; + highCpCoeffs ( 7.5341368 0.018872239 -6.2718491e-06 9.1475649e-10 -4.7838069e-14 -16467.516 -17.892349 ); + lowCpCoeffs ( 0.93355381 0.026424579 6.1059727e-06 -2.1977499e-08 9.5149253e-12 -13958.52 19.201691 ); + } + transport + { + As 1.67212e-06; + Ts 170.672; + } +} + +CH2O +{ + specie + { + nMoles 1; + molWeight 30.02628; + } + thermodynamics + { + Tlow 200; + Thigh 6000; + Tcommon 1000; + highCpCoeffs ( 3.1694807 0.0061932742 -2.2505981e-06 3.6598245e-10 -2.201541e-14 -14478.425 6.0423533 ); + lowCpCoeffs ( 4.7937036 -0.0099081518 3.7321459e-05 -3.7927902e-08 1.3177015e-11 -14308.955 0.60288702 ); + } + transport + { + As 1.67212e-06; + Ts 170.672; + } +} + diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/thermophysicalProperties b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/thermophysicalProperties new file mode 100644 index 00000000000..f67fb01b786 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/thermophysicalProperties @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object thermophysicalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +thermoType +{ + type hePsiThermo; + mixture singleStepReactingMixture; + transport sutherland; + thermo janaf; + energy sensibleEnthalpy; + equationOfState perfectGas; + specie specie; +} + + +inertSpecie N2; +fuel CH4; + +chemistryReader foamChemistryReader; + +foamChemistryFile "$FOAM_CASE/constant/reactions"; + +foamChemistryThermoFile "$FOAM_CASE/constant/thermo.compressibleGas"; + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/turbulenceProperties b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/turbulenceProperties new file mode 100644 index 00000000000..88dfee07931 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/constant/turbulenceProperties @@ -0,0 +1,99 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType LES; + +LES +{ + LESModel kEqn; + + delta cubeRootVol; + + turbulence on; + + printCoeffs on; + + kEqnCoeffs + { + Prt 1; + } + + cubeRootVolCoeffs + { + deltaCoeff 1; + } + + PrandtlCoeffs + { + delta cubeRootVol; + cubeRootVolCoeffs + { + deltaCoeff 1; + } + + smoothCoeffs + { + delta cubeRootVol; + cubeRootVolCoeffs + { + deltaCoeff 1; + } + + maxDeltaRatio 1.1; + } + + Cdelta 0.158; + } + + vanDriestCoeffs + { + delta cubeRootVol; + cubeRootVolCoeffs + { + deltaCoeff 1; + } + + smoothCoeffs + { + delta cubeRootVol; + cubeRootVolCoeffs + { + deltaCoeff 1; + } + + maxDeltaRatio 1.1; + } + + Aplus 26; + Cdelta 0.158; + } + + smoothCoeffs + { + delta cubeRootVol; + cubeRootVolCoeffs + { + deltaCoeff 1; + } + + maxDeltaRatio 1.1; + } +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/system/controlDict b/tutorials/combustion/fireFoam/les/simplePMMApanel/system/controlDict new file mode 100644 index 00000000000..dbe28ded588 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/system/controlDict @@ -0,0 +1,58 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application fireFoam; + +startFrom startTime; + +startTime 0.; + +stopAt endTime; + +endTime 3000; + +deltaT 1; + +writeControl adjustableRunTime; + +writeInterval 200; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression uncompressed; + +timeFormat general; + +timePrecision 6; + +graphFormat raw; + +runTimeModifiable yes; + +adjustTimeStep no; + +maxCo 1.0; + +maxDi 0.5; + +maxDeltaT 1; + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/system/extrudeToRegionMeshDict b/tutorials/combustion/fireFoam/les/simplePMMApanel/system/extrudeToRegionMeshDict new file mode 100644 index 00000000000..6b65cc6071c --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/system/extrudeToRegionMeshDict @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object extrudeToRegionMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +region panelRegion; + +faceZones (panel); + +oneD true; + +sampleMode nearestPatchFace; + +extrudeModel linearNormal; + +oneDPolyPatchType empty; + +nLayers 8; + +expansionRatio 1; + +adaptMesh true; + +linearNormalCoeffs +{ + thickness 0.0234; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/system/fvSchemes b/tutorials/combustion/fireFoam/les/simplePMMApanel/system/fvSchemes new file mode 100644 index 00000000000..7167da8dd4d --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/system/fvSchemes @@ -0,0 +1,71 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) Gauss linear; + div(phi,k) Gauss limitedLinear 1; + div(phi,Yi_hs) Gauss multivariateSelection + { + O2 limitedLinear01 1; + N2 limitedLinear01 1; + CH4 limitedLinear01 1; + H2O limitedLinear01 1; + CO2 limitedLinear01 1; + h limitedLinear 1; + }; + + div((muEff*dev2(T(grad(U))))) Gauss linear; + div(phiU,p) Gauss linear; + div(Ji,Ii_h) Gauss upwind grad(Ii_h); +} + +laplacianSchemes +{ + + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + p_rgh; +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/system/fvSolution b/tutorials/combustion/fireFoam/les/simplePMMApanel/system/fvSolution new file mode 100644 index 00000000000..65488fd24ff --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/system/fvSolution @@ -0,0 +1,132 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + rho + { + solver PCG; + preconditioner DIC; + tolerance 0; + relTol 0; + }; + + p_rgh + { + solver GAMG; + tolerance 1e-5; + relTol 0.01; + smoother GaussSeidel; + cacheAgglomeration true; + //nCellsInCoarsestLevel 10; + nCellsInCoarsestLevel 1; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + p_rghFinal + { + solver GAMG; + tolerance 1e-6; + relTol 0; + smoother GaussSeidel; + cacheAgglomeration true; + //nCellsInCoarsestLevel 10; + nCellsInCoarsestLevel 1; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + Yi + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-8; + relTol 0; + }; + + U + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-6; + relTol 0.0; + }; + + UFinal + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-7; + relTol 0; + }; + + k + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-8; + relTol 0; + }; + + //hs + h + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-8; + relTol 0; + }; + + Ii + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-8; + relTol 0; + } + + G + { + solver PCG; + preconditioner DIC; + tolerance 1e-06; + relTol 0; + } + +} + +PIMPLE +{ + momentumPredictor yes; + nOuterCorrectors 1; + nCorrectors 2; + nNonOrthogonalCorrectors 0; +} + +relaxationFactors +{ + equations + { + "(U|k).*" 1; + "(C3H8|O2|H2O|CO2|h).*" 1; + } +} + + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/system/makeFaceSet.setSet b/tutorials/combustion/fireFoam/les/simplePMMApanel/system/makeFaceSet.setSet new file mode 100644 index 00000000000..61670b92bcc --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/system/makeFaceSet.setSet @@ -0,0 +1,3 @@ +faceSet coupledPatch new patchToFace coupledPatch +faceZoneSet panel new setToFaceZone coupledPatch + diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/system/panelRegion/fvSchemes b/tutorials/combustion/fireFoam/les/simplePMMApanel/system/panelRegion/fvSchemes new file mode 100644 index 00000000000..1847ceeebc5 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/system/panelRegion/fvSchemes @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system/pyrolysisRegion"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; +} + +laplacianSchemes +{ + default none; + laplacian(kappa,T) Gauss harmonic uncorrected; + laplacian(thermo:alpha,h) Gauss harmonic uncorrected; + laplacian(kappa,T) Gauss harmonic uncorrected; +} + +interpolationSchemes +{ + default linear; + interpolate(K) harmonic; +} + +snGradSchemes +{ + default uncorrected; +} + +fluxRequired +{ + default no; +} + +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/system/panelRegion/fvSolution b/tutorials/combustion/fireFoam/les/simplePMMApanel/system/panelRegion/fvSolution new file mode 100644 index 00000000000..e74dfcec078 --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/system/panelRegion/fvSolution @@ -0,0 +1,66 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + h + { + solver PCG; + preconditioner DIC; + //tolerance 1e-6; + tolerance 1e-12; + relTol 0; + } + + "Yi" + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-06; + relTol 0; + } + + "rho|rhot" + { + solver PCG; + preconditioner DIC; + tolerance 0; + relTol 0; + }; + + thermo:rho + { + solver PCG; + preconditioner DIC; + tolerance 0; + relTol 0; + }; + +} + +SIMPLE +{ + nNonOrthCorr 0; +} + +relaxationFactors +{ + equations + { + h 1; + } +} +// ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/les/simplePMMApanel/system/topoSetDict b/tutorials/combustion/fireFoam/les/simplePMMApanel/system/topoSetDict new file mode 100644 index 00000000000..02fd6c63c4d --- /dev/null +++ b/tutorials/combustion/fireFoam/les/simplePMMApanel/system/topoSetDict @@ -0,0 +1,43 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: plus | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object topoSetDict; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +actions +( + { + name coupledPatch; + type faceSet; + action new; + source patchToFace; + sourceInfo + { + name coupledPatch; + } + } + + { + name panel; + type faceZoneSet; + action new; + source setToFaceZone; + sourceInfo + { + faceSet coupledPatch; + } + } +); + +// ************************************************************************* // -- GitLab