View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001736 | OpenFOAM | Bug | public | 2015-06-10 13:26 | 2015-06-16 07:51 |
Reporter | DanielJ | Assigned To | henry | ||
Priority | normal | Severity | feature | Reproducibility | N/A |
Status | resolved | Resolution | fixed | ||
Platform | GNU/Linux | OS | Ubuntu | OS Version | 14.10 |
Summary | 0001736: Add steady-state coal combustion solver | ||||
Description | I have prepared steady-state solver for coal combustion. This solver is based on coalChemistryFoam and LTSreactingParcelFoam. | ||||
Tags | No tags attached. | ||||
|
LTSCoalChemistryFoam-solver.patch (22,370 bytes)
From 02d2377fca92d18a68b75e9c54eb821c2432ed9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jasi=C5=84ski?= <daniel.jasinski@gmail.com> Date: Wed, 10 Jun 2015 12:28:38 +0200 Subject: [PATCH] LTSCoalChemistryFoam solver for steady-state coal combustion. --- .../solvers/lagrangian/coalChemistryFoam/Allwmake | 8 ++ .../LTSCoalChemistryFoam/LTSCoalChemistryFoam.C | 120 ++++++++++++++++ .../LTSCoalChemistryFoam/Make/files | 3 + .../LTSCoalChemistryFoam/Make/options | 55 +++++++ .../LTSCoalChemistryFoam/createFields.H | 158 +++++++++++++++++++++ .../LTSCoalChemistryFoam/createRDeltaT.H | 14 ++ .../coalChemistryFoam/LTSCoalChemistryFoam/pEqn.H | 75 ++++++++++ .../LTSCoalChemistryFoam/readTimeControls.H | 42 ++++++ .../LTSCoalChemistryFoam/timeScales.H | 116 +++++++++++++++ 9 files changed, 591 insertions(+) create mode 100755 applications/solvers/lagrangian/coalChemistryFoam/Allwmake create mode 100755 applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/LTSCoalChemistryFoam.C create mode 100755 applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/Make/files create mode 100755 applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/Make/options create mode 100755 applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/createFields.H create mode 100755 applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/createRDeltaT.H create mode 100755 applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/pEqn.H create mode 100755 applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/readTimeControls.H create mode 100755 applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/timeScales.H diff --git a/applications/solvers/lagrangian/coalChemistryFoam/Allwmake b/applications/solvers/lagrangian/coalChemistryFoam/Allwmake new file mode 100755 index 0000000..61c0fd5 --- /dev/null +++ b/applications/solvers/lagrangian/coalChemistryFoam/Allwmake @@ -0,0 +1,8 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory +set -x + +wmake +wmake LTSCoalChemistryFoam + +# ----------------------------------------------------------------- end-of-file diff --git a/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/LTSCoalChemistryFoam.C b/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/LTSCoalChemistryFoam.C new file mode 100755 index 0000000..5872387 --- /dev/null +++ b/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/LTSCoalChemistryFoam.C @@ -0,0 +1,120 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2011-2015 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/>. + +Application + LTSCoalChemistryFoam + +Description + Local time stepping (LTS) solver for steady, compressible, laminar or + turbulent reacting and non-reacting flow with multiphase Lagrangian + parcels and porous media, including run-time selectable finitite volume + options, e.g. sources, constraints + + +\*---------------------------------------------------------------------------*/ + +#include "fvCFD.H" +#include "turbulenceModel.H" +#include "basicThermoCloud.H" +#include "coalCloud.H" +#include "rhoCombustionModel.H" +#include "radiationModel.H" +#include "IOporosityModelList.H" +#include "fvIOoptionList.H" +#include "SLGThermo.H" +#include "fvcSmooth.H" +#include "pimpleControl.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ + #include "setRootCase.H" + + #include "createTime.H" + #include "createMesh.H" + #include "readGravitationalAcceleration.H" + + pimpleControl pimple(mesh); + + #include "readTimeControls.H" + #include "createFields.H" + #include "createFvOptions.H" + #include "createRDeltaT.H" + #include "createRadiationModel.H" + #include "createClouds.H" + #include "initContinuityErrs.H" + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + Info<< "\nStarting time loop\n" << endl; + + while (runTime.run()) + { + #include "readTimeControls.H" + + runTime++; + + Info<< "Time = " << runTime.timeName() << nl << endl; + + rhoEffLagrangian = coalParcels.rhoEff() + limestoneParcels.rhoEff(); + pDyn = 0.5*rho*magSqr(U); + + coalParcels.evolve(); + + limestoneParcels.evolve(); + + #include "timeScales.H" + + #include "rhoEqn.H" + + // --- Pressure-velocity PIMPLE corrector loop + while (pimple.loop()) + { + turbulence->correct(); + + #include "UEqn.H" + #include "YEqn.H" + #include "EEqn.H" + + // --- Pressure corrector loop + while (pimple.correct()) + { + #include "pEqn.H" + } + } + + runTime.write(); + + Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" + << " ClockTime = " << runTime.elapsedClockTime() << " s" + << nl << endl; + } + + Info<< "End\n" << endl; + + return(0); +} + + +// ************************************************************************* // diff --git a/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/Make/files b/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/Make/files new file mode 100755 index 0000000..b0d27fc --- /dev/null +++ b/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/Make/files @@ -0,0 +1,3 @@ +LTSCoalChemistryFoam.C + +EXE = $(FOAM_APPBIN)/LTSCoalChemistryFoam diff --git a/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/Make/options b/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/Make/options new file mode 100755 index 0000000..1a9ecb7 --- /dev/null +++ b/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/Make/options @@ -0,0 +1,55 @@ +EXE_INC = \ + -I.. \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I${LIB_SRC}/meshTools/lnInclude \ + -I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \ + -I$(LIB_SRC)/lagrangian/basic/lnInclude \ + -I$(LIB_SRC)/lagrangian/intermediate/lnInclude \ + -I$(LIB_SRC)/lagrangian/coalCombustion/lnInclude \ + -I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \ + -I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \ + -I$(LIB_SRC)/ODE/lnInclude \ + -I$(LIB_SRC)/regionModels/regionModel/lnInclude \ + -I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \ + -I$(LIB_SRC)/combustionModels/lnInclude \ + -I$(LIB_SRC)/fvOptions/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude + + +EXE_LIBS = \ + -lfiniteVolume \ + -lmeshTools \ + -lcompressibleTurbulenceModel \ + -lcompressibleRASModels \ + -lcompressibleLESModels \ + -llagrangian \ + -llagrangianIntermediate \ + -llagrangianTurbulence \ + -lcoalCombustion\ + -lspecie \ + -lfluidThermophysicalModels \ + -lliquidProperties \ + -lliquidMixtureProperties \ + -lsolidProperties \ + -lsolidMixtureProperties \ + -lthermophysicalFunctions \ + -lreactionThermophysicalModels \ + -lSLGThermo \ + -lchemistryModel \ + -lradiationModels \ + -lODE \ + -lregionModels \ + -lsurfaceFilmModels \ + -lcombustionModels \ + -lfvOptions \ + -lsampling diff --git a/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/createFields.H b/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/createFields.H new file mode 100755 index 0000000..c4de287 --- /dev/null +++ b/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/createFields.H @@ -0,0 +1,158 @@ + Info<< "Creating combustion model\n" << endl; + + autoPtr<combustionModels::rhoCombustionModel> combustion + ( + combustionModels::rhoCombustionModel::New(mesh) + ); + + rhoReactionThermo& thermo = combustion->thermo(); + thermo.validate(args.executable(), "h", "e"); + + SLGThermo slgThermo(mesh, thermo); + + basicMultiComponentMixture& composition = thermo.composition(); + PtrList<volScalarField>& Y = composition.Y(); + + const word inertSpecie(thermo.lookup("inertSpecie")); + + if (!composition.contains(inertSpecie)) + { + FatalErrorIn(args.executable()) + << "Specified inert specie '" << inertSpecie << "' not found in " + << "species list. Available species:" << composition.species() + << exit(FatalError); + } + + volScalarField& p = thermo.p(); + const volScalarField& T = thermo.T(); + const volScalarField& psi = thermo.psi(); + + volScalarField rho + ( + IOobject + ( + "rho", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + thermo.rho() + ); + + // lagrangian effective density field - used externally (optional) + volScalarField rhoEffLagrangian + ( + IOobject + ( + "rhoEffLagrangian", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("zero", dimDensity, 0.0) + ); + + // dynamic pressure field - used externally (optional) + volScalarField pDyn + ( + IOobject + ( + "pDyn", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("zero", dimPressure, 0.0) + ); + + + Info<< "\nReading field U\n" << endl; + volVectorField U + ( + IOobject + ( + "U", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh + ); + + #include "compressibleCreatePhi.H" + + dimensionedScalar rhoMax + ( + "rhoMax", + dimDensity, + mesh.solutionDict().subDict("PIMPLE") + .lookupOrDefault<scalar>("rhoMax", GREAT) + ); + + dimensionedScalar rhoMin + ( + "rhoMin", + dimDensity, + mesh.solutionDict().subDict("PIMPLE") + .lookupOrDefault<scalar>("rhoMin", -GREAT) + ); + + Info<< "Creating turbulence model\n" << endl; + autoPtr<compressible::turbulenceModel> turbulence + ( + compressible::turbulenceModel::New + ( + rho, + U, + phi, + thermo + ) + ); + + // Set the turbulence into the combustion model + combustion->setTurbulence(turbulence()); + + Info<< "Creating field dpdt\n" << endl; + volScalarField dpdt + ( + IOobject + ( + "dpdt", + runTime.timeName(), + mesh + ), + mesh, + dimensionedScalar("dpdt", p.dimensions()/dimTime, 0) + ); + + Info<< "Creating field kinetic energy K\n" << endl; + volScalarField K("K", 0.5*magSqr(U)); + + Info<< "Creating multi-variate interpolation scheme\n" << endl; + multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields; + + forAll(Y, i) + { + fields.add(Y[i]); + } + fields.add(thermo.he()); + + volScalarField dQ + ( + IOobject + ( + "dQ", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("dQ", dimEnergy/dimTime, 0.0) + ); diff --git a/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/createRDeltaT.H b/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/createRDeltaT.H new file mode 100755 index 0000000..c445eae --- /dev/null +++ b/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/createRDeltaT.H @@ -0,0 +1,14 @@ + volScalarField rDeltaT + ( + IOobject + ( + "rDeltaT", + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("one", dimless/dimTime, 1), + zeroGradientFvPatchScalarField::typeName + ); diff --git a/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/pEqn.H b/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/pEqn.H new file mode 100755 index 0000000..115d74a --- /dev/null +++ b/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/pEqn.H @@ -0,0 +1,75 @@ +{ + rho = thermo.rho(); + + // Thermodynamic density needs to be updated by psi*d(p) after the + // pressure solution - done in 2 parts. Part 1: + thermo.rho() -= psi*p; + + volScalarField rAU(1.0/UEqn.A()); + surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU)); + + volVectorField HbyA("HbyA", U); + HbyA = rAU*UEqn.H(); + + surfaceScalarField phiHbyA + ( + "phiHbyA", + ( + (fvc::interpolate(rho*HbyA) & mesh.Sf()) + + rhorAUf*fvc::ddtCorr(rho, U, phi) + ) + ); + + fvOptions.makeRelative(fvc::interpolate(rho), phiHbyA); + + fvScalarMatrix pDDtEqn + ( + fvc::ddt(rho) + psi*correction(fvm::ddt(p)) + + fvc::div(phiHbyA) + == + coalParcels.Srho() + + fvOptions(psi, p, rho.name()) + ); + + while (pimple.correctNonOrthogonal()) + { + fvScalarMatrix pEqn + ( + pDDtEqn + - fvm::laplacian(rhorAUf, p) + ); + + fvOptions.constrain(pEqn); + + pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter()))); + + if (pimple.finalNonOrthogonalIter()) + { + phi = phiHbyA + pEqn.flux(); + } + } + + p.relax(); + + // Second part of thermodynamic density update + thermo.rho() += psi*p; + + #include "rhoEqn.H" // NOTE: flux and time scales now inconsistent + #include "compressibleContinuityErrs.H" + + U = HbyA - rAU*fvc::grad(p); + U.correctBoundaryConditions(); + fvOptions.correct(U); + K = 0.5*magSqr(U); + + if (thermo.dpdt()) + { + dpdt = fvc::ddt(p); + } + + rho = thermo.rho(); + rho = max(rho, rhoMin); + rho = min(rho, rhoMax); + + Info<< "p min/max = " << min(p).value() << ", " << max(p).value() << endl; +} diff --git a/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/readTimeControls.H b/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/readTimeControls.H new file mode 100755 index 0000000..c2b7761 --- /dev/null +++ b/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/readTimeControls.H @@ -0,0 +1,42 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2011-2015 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/>. + +\*---------------------------------------------------------------------------*/ + +// Maximum flow Courant number +scalar maxCo(readScalar(pimple.dict().lookup("maxCo"))); + +// Maximum time scale +scalar maxDeltaT(pimple.dict().lookupOrDefault<scalar>("maxDeltaT", GREAT)); + +// Smoothing parameter (0-1) when smoothing iterations > 0 +scalar rDeltaTSmoothingCoeff +( + pimple.dict().lookupOrDefault<scalar>("rDeltaTSmoothingCoeff", 0.1) +); + +// Maximum change in cell temperature per iteration (relative to previous value) +scalar alphaTemp(pimple.dict().lookupOrDefault("alphaTemp", 0.05)); + + +// ************************************************************************* // diff --git a/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/timeScales.H b/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/timeScales.H new file mode 100755 index 0000000..1c72794 --- /dev/null +++ b/applications/solvers/lagrangian/coalChemistryFoam/LTSCoalChemistryFoam/timeScales.H @@ -0,0 +1,116 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2011-2015 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/>. + +\*---------------------------------------------------------------------------*/ + +Info<< "Time scales min/max:" << endl; + + +{ + // Cache old time scale field + tmp<volScalarField> trDeltaT + ( + new volScalarField + ( + IOobject + ( + "rDeltaT0", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + rDeltaT + ) + ); + const volScalarField& rDeltaT0 = trDeltaT(); + + + // Flow time scale + // ~~~~~~~~~~~~~~~ + { + rDeltaT = + fvc::surfaceSum + ( + mag(phi)*mesh.deltaCoeffs()/(maxCo*mesh.magSf()) + ) + /rho; + + rDeltaT.max(1.0/maxDeltaT); + + Info<< " Flow = " + << gMin(1/rDeltaT.internalField()) << ", " + << gMax(1/rDeltaT.internalField()) << endl; + } + + + // Temperature source time scale + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + { + scalarField tau + ( + runTime.deltaTValue() + *mag + ( + (coalParcels.hsTrans()+limestoneParcels.hsTrans()) + /(mesh.V()*runTime.deltaT()) + // + fvOptions(rho, hs) + + combustion->Sh()() + - fvc::div(phi, 0.5*magSqr(U), "div(phi,K)")() + ) + /rho + ); + + tau = alphaTemp*thermo.Cp()*T/(tau + ROOTVSMALL); + + Info<< " Temperature = " << min(maxDeltaT, gMin(tau)) << ", " + << min(maxDeltaT, gMax(tau)) << endl; + + rDeltaT.internalField() = max(rDeltaT.internalField(), 1/tau); + } + + + // Limit rate of change of time scale + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // - reduce as much as required for flow, but limit source contributions + const dimensionedScalar deltaTRamp("deltaTRamp", dimless, 1/(1 + 0.2)); + rDeltaT = max(rDeltaT, rDeltaT0*deltaTRamp); + + + // Limit the largest time scale + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + rDeltaT.max(1/maxDeltaT); + + + // Spatially smooth the time scale field + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + fvc::smooth(rDeltaT, rDeltaTSmoothingCoeff); + + Info<< " Overall = " << min(1/rDeltaT).value() + << ", " << max(1/rDeltaT).value() << nl << endl; +} + + +// ************************************************************************* // -- 1.9.1 |
|
A few side notes: 1- If you were to attach the source code folder (zipped or in a tar.gz), it would make it easier for the admins to handle the request and inspect the source code. 2- 1 or 2 test cases that prove that this solver is working as intended is usually needed, since the smallest mistake in the source code is enough to make it a GIGO solver :( The use of test cases can aid in making it less likely for such errors to exist. |
|
|
|
|
|
I uploaded source code for the solver. I also uploaded simple case to test the solver. |
|
It is not clear why you have used density-based thermodynamics rather than the compressibility based thermodynamics of coalChemistryFoam. I would have used coalChemistryFoam as the base and added LTS. |
|
I have created an LTS version of coalChemistryFoam in OpenFOAM-dev using as much of the existing functionality as possible and uses the same thermodynamics. Let me know if it fulfills your requirements. |
|
This is very OK :) Thanks. |
|
Why do you need an LTS version of coalChemistryFoam? Do you need the support for two cloud types? If not why not just use LTSreactingParcelFoam? |
|
Two clouds are not essential. LTSreactingParcelFoam does not support surface reactions which are necessary for coal combustion. |
|
Resolved by commit c0cb1d6e8f53ed6dbf6b0d2af4c5b277dae47ffb in OpenFOAM-dev |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-06-10 13:26 | DanielJ | New Issue | |
2015-06-10 13:26 | DanielJ | File Added: LTSCoalChemistryFoam-solver.patch | |
2015-06-11 10:57 | wyldckat | Note Added: 0004903 | |
2015-06-11 14:42 | DanielJ | File Added: LTSCoalChemistryFoam.zip | |
2015-06-11 14:42 | DanielJ | File Added: upDraft-test.zip | |
2015-06-11 14:46 | DanielJ | Note Added: 0004906 | |
2015-06-15 21:58 | henry | Note Added: 0004941 | |
2015-06-15 22:39 | henry | Note Added: 0004942 | |
2015-06-15 22:47 | DanielJ | Note Added: 0004943 | |
2015-06-15 23:20 | henry | Note Added: 0004944 | |
2015-06-16 07:07 | DanielJ | Note Added: 0004945 | |
2015-06-16 07:51 | henry | Note Added: 0004946 | |
2015-06-16 07:51 | henry | Status | new => resolved |
2015-06-16 07:51 | henry | Resolution | open => fixed |
2015-06-16 07:51 | henry | Assigned To | => henry |