Commit Graph

64 Commits

Author SHA1 Message Date
22aae2816d ENH: combustionModels: Changed the construction order
The combustion and chemistry models no longer select and own the
thermodynamic model; they hold a reference instead. The construction of
the combustion and chemistry models has been changed to require a
reference to the thermodyanmics, rather than the mesh and a phase name.

At the solver-level the thermo, turbulence and combustion models are now
selected in sequence. The cyclic dependency between the three models has
been resolved, and the raw-pointer based post-construction step for the
combustion model has been removed.

The old solver-level construction sequence (typically in createFields.H)
was as follows:

    autoPtr<combustionModels::psiCombustionModel> combustion
    (
        combustionModels::psiCombustionModel::New(mesh)
    );

    psiReactionThermo& thermo = combustion->thermo();

    // Create rho, U, phi, etc...

    autoPtr<compressible::turbulenceModel> turbulence
    (
        compressible::turbulenceModel::New(rho, U, phi, thermo)
    );

    combustion->setTurbulence(*turbulence);

The new sequence is:

    autoPtr<psiReactionThermo> thermo(psiReactionThermo::New(mesh));

    // Create rho, U, phi, etc...

    autoPtr<compressible::turbulenceModel> turbulence
    (
        compressible::turbulenceModel::New(rho, U, phi, *thermo)
    );

    autoPtr<combustionModels::psiCombustionModel> combustion
    (
        combustionModels::psiCombustionModel::New(*thermo, *turbulence)
    );

ENH: combustionModel, chemistryModel: Simplified model selection

The combustion and chemistry model selection has been simplified so
that the user does not have to specify the form of the thermodynamics.

Examples of new combustion and chemistry entries are as follows:

    In constant/combustionProperties:

        combustionModel PaSR;

        combustionModel FSD;

    In constant/chemistryProperties:

        chemistryType
        {
            solver          ode;
            method          TDAC;
        }

All the angle bracket parts of the model names (e.g.,
<psiThermoCombustion,gasHThermoPhysics>) have been removed as well as
the chemistryThermo entry.

The changes are mostly backward compatible. Only support for the
angle bracket form of chemistry solver names has been removed. Warnings
will print if some of the old entries are used, as the parts relating to
thermodynamics are now ignored.

ENH: combustionModel, chemistryModel: Simplified model selection

Updated all tutorials to the new format

STYLE: combustionModel: Namespace changes

Wrapped combustion model make macros in the Foam namespace and removed
combustion model namespace from the base classes. This fixes a namespace
specialisation bug in gcc 4.8. It is also somewhat less verbose in the
solvers.

This resolves bug report https://bugs.openfoam.org/view.php?id=2787

ENH: combustionModels: Default to the "none" model

When the constant/combustionProperties dictionary is missing, the solver
will now default to the "none" model. This is consistent with how
radiation models are selected.
2017-11-23 16:57:12 +00:00
a9741cea79 ENH: additional text expansion shortcuts (issue #792)
Support the following expansions when they occur at the start of a
string:

    Short-form       Equivalent
    =========       ===========
      <etc>/          ~OpenFOAM/   (as per foamEtcFile)
      <case>/         $FOAM_CASE/
      <constant>/     $FOAM_CASE/constant/
      <system>/       $FOAM_CASE/system/

These can be used in fileName expansions to improve clarity and reduce
some typing

     "<constant>/reactions"   vs  "$FOAM_CASE/constant/reactions"
2018-04-10 13:41:41 +02:00
fe140cd6c5 TUT: test mode not respected (closes #710)
- now replaced 'if ! isTest' with 'if notTest' for most cases.
2018-02-20 12:54:44 +01:00
e3c4696a6e TUT: Updated Allrun scripts for tests. Fixes #710 2018-01-17 15:30:49 +00:00
c792a9d7df TUT: script cleanup, provide cleanCase0 for commonly used operation 2017-10-12 19:20:56 +02:00
6afa62a6e4 STYLE: use shell 'command' instead of 'which' in tutorials 2017-07-07 16:00:57 +02:00
0ea219adf5 TUT: consistent writeCompression option
- Use on/off vs longer compressed/uncompressed.
  For consistency, replaced yes/no with on/off.

- Avoid the combination of binary/compressed,
  which is disallowed and provokes a warning anyhow
2017-06-13 06:50:16 +02:00
28e37bbec9 STYLE: Consistency updates 2016-12-16 14:36:48 +00:00
a6a90838fa STYLE: adjust tutorial Allrun scripts (issue #310)
- A few without a 'cd' at the start.
  Use $(getApplication) directly in more places (for clarity).
2016-11-21 10:18:00 +01:00
21679c04e4 STYLE: adjust tutorial Allclean scripts (issue #310)
- A few without a 'cd' at the start.
  Several remove files that are already covered by the cleanCase function.
2016-11-20 17:26:44 +01:00
3dbd39146c STYLE: consistency updates 2016-09-27 15:17:55 +01:00
ad1e798293 ENH: Initial testing updates 2016-09-26 09:28:31 +01:00
9fbd612672 GIT: Initial state after latest Foundation merge 2016-09-20 14:49:08 +01:00
0857f479a8 PBiCGStab: New preconditioned bi-conjugate gradient stabilized solver for asymmetric lduMatrices
using a run-time selectable preconditioner

References:
    Van der Vorst, H. A. (1992).
    Bi-CGSTAB: A fast and smoothly converging variant of Bi-CG
    for the solution of nonsymmetric linear systems.
    SIAM Journal on scientific and Statistical Computing, 13(2), 631-644.

    Barrett, R., Berry, M. W., Chan, T. F., Demmel, J., Donato, J.,
    Dongarra, J., Eijkhout, V., Pozo, R., Romine, C. & Van der Vorst, H.
    (1994).
    Templates for the solution of linear systems:
    building blocks for iterative methods
    (Vol. 43). Siam.

See also: https://en.wikipedia.org/wiki/Biconjugate_gradient_stabilized_method

Tests have shown that PBiCGStab with the DILU preconditioner is more
robust, reliable and shows faster convergence (~2x) than PBiCG with
DILU, in particular in parallel where PBiCG occasionally diverges.

This remarkable improvement over PBiCG prompted the update of all
tutorial cases currently using PBiCG to use PBiCGStab instead.  If any
issues arise with this update please report on Mantis: http://bugs.openfoam.org
2016-09-05 11:46:42 +01:00
1d57269680 TDACChemistryModel: New chemistry model providing Tabulation of Dynamic Adaptive Chemistry
Provides efficient integration of complex laminar reaction chemistry,
combining the advantages of automatic dynamic specie and reaction
reduction with ISAT (in situ adaptive tabulation).  The advantages grow
as the complexity of the chemistry increases.

References:
    Contino, F., Jeanmart, H., Lucchini, T., & D’Errico, G. (2011).
    Coupling of in situ adaptive tabulation and dynamic adaptive chemistry:
    An effective method for solving combustion in engine simulations.
    Proceedings of the Combustion Institute, 33(2), 3057-3064.

    Contino, F., Lucchini, T., D'Errico, G., Duynslaegher, C.,
    Dias, V., & Jeanmart, H. (2012).
    Simulations of advanced combustion modes using detailed chemistry
    combined with tabulation and mechanism reduction techniques.
    SAE International Journal of Engines,
    5(2012-01-0145), 185-196.

    Contino, F., Foucher, F., Dagaut, P., Lucchini, T., D’Errico, G., &
    Mounaïm-Rousselle, C. (2013).
    Experimental and numerical analysis of nitric oxide effect on the
    ignition of iso-octane in a single cylinder HCCI engine.
    Combustion and Flame, 160(8), 1476-1483.

    Contino, F., Masurier, J. B., Foucher, F., Lucchini, T., D’Errico, G., &
    Dagaut, P. (2014).
    CFD simulations using the TDAC method to model iso-octane combustion
    for a large range of ozone seeding and temperature conditions
    in a single cylinder HCCI engine.
    Fuel, 137, 179-184.

Two tutorial cases are currently provided:
    + tutorials/combustion/chemFoam/ic8h18_TDAC
    + tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC

the first of which clearly demonstrates the advantage of dynamic
adaptive chemistry providing ~10x speedup,

the second demonstrates ISAT on the modest complex GRI mechanisms for
methane combustion, providing a speedup of ~4x.

More tutorials demonstrating TDAC on more complex mechanisms and cases
will be provided soon in addition to documentation for the operation and
settings of TDAC.  Also further updates to the TDAC code to improve
consistency and integration with the rest of OpenFOAM and further
optimize operation can be expected.

Original code providing all algorithms for chemistry reduction and
tabulation contributed by Francesco Contino, Tommaso Lucchini, Gianluca
D’Errico, Hervé Jeanmart, Nicolas Bourgeois and Stéphane Backaert.

Implementation updated, optimized and integrated into OpenFOAM-dev by
Henry G. Weller, CFD Direct Ltd with the help of Francesco Contino.
2016-07-17 15:13:54 +01:00
b00e67ca37 foamChemistryReader: Added support for elements and specie composition
Based on a patch contributed by Francesco Contino, Tommaso Lucchini,
Gianluca D’Errico, Hervé Jeanmart, Nicolas Bourgeois and Stéphane
Backaert.
2016-07-12 09:05:00 +01:00
1988e4bb60 STYLE: avoid backticks for getApplication 2016-06-27 17:50:55 +02:00
cf4b35693c tutorials: Remove the unnecessary "\"s on "cp", "rm" and "mv"
Resolves bug-report http://bugs.openfoam.org/view.php?id=2077
2016-05-05 15:17:55 +01:00
6a49568b8d ENh: Adding reactionSensitivityAnalysis FO and adding it to utorials/combustion/chemFoam/gri/ test case 2016-06-02 10:31:31 -07:00
fd9d801e2d GIT: Initial commit after latest foundation merge 2016-04-25 11:40:48 +01:00
350d03246e scripts: Reformat with consistent section separators 2016-02-15 18:30:24 +00:00
cfa7678ba8 foamRunTutorials: Rationalized support for the "-test" option
RunFunctions: Added "isTest()" argument parsing function
tutorials: Updated Allrun scripts to propagate the "-test" option
tutorials: Removed the lower Alltest scripts and updated the Allrun to
    use the "isTest()" function to handle test-specific operation
2016-02-15 15:49:05 +00:00
f0c3e8d599 STYLE: Updated version to 'plus' 2015-12-22 23:14:17 +00:00
04752147c8 GIT: Resolved conflict on merge from upstream 2015-12-22 16:49:44 +00:00
0e01c44129 GIT: Resolved conflict 2015-12-09 16:19:28 +00:00
5c9dff6146 GIT: Resolved conflict 2015-12-09 16:19:28 +00:00
8837a89237 STYLE: Updated links from openfoam.org to openfoam.com 2015-12-09 15:03:05 +00:00
62945ab1ea chemFoam: Remove unused turbulence model 2015-11-21 18:30:35 +00:00
093b4aade6 chemkinReader: Add support for reading transport properties from dictionary
Note the dictionary is in OpenFOAM format not CHEMKIN.

Patch provided by Daniel Jasinski
Resolves feature request http://www.openfoam.org/mantisbt/view.php?id=1888
2015-11-20 18:55:36 +00:00
0fb6a01280 fluxRequired: Added setFluxRequired function to fvSchemes class
Added calls to setFluxRequired for p, p_rgh etc. in all solvers which
avoids the need to add fluxRequired entries in fvSchemes dictionaries.
2015-07-15 21:57:16 +01:00
41368addc9 Minor change to comment 2014-12-14 21:50:14 +00:00
9fb26d59d3 GIT: Repo update 2014-12-11 08:35:10 +00:00
fbb3ddf2c4 Updated for release 2.3.0 2014-02-17 10:21:46 +00:00
11416d066d BUG: removed bash-dependent test for the existence of gnuplot 2014-02-05 16:20:53 +00:00
ee4e19ef85 Renamed folder -> directory for consistency with POSIX and the rest of OpenFOAM 2014-01-30 13:01:04 +00:00
dd7809b4e2 Corrected ODE solver name 2013-11-11 13:02:59 +00:00
bc2d925d61 chemFoam tutorials: set ODE solver to seulex which performs best overall 2013-11-07 18:38:58 +00:00
69ffc9051f chemFoam tutorials: Changed ODE solver to rodas32 which is fastest and robust 2013-11-07 09:38:20 +00:00
5c3df09323 LTSReactingFoam, reactingFoam counterFlowFlame2D: Chemistry is not stiff
and low accuracy is required so EulerImplicit is more efficient
2013-11-04 13:13:06 +00:00
17ae13c9c1 ODESolvers: Updated tolerance handling to use absolute and relative 2013-11-03 16:04:05 +00:00
9d45269abc chemistryModel: Remove support for the sequential solver and rationalise EulerImplicit 2013-10-02 08:37:55 +01:00
ca2ad8032e Thermodynamics: Completed dictionary based selection mechanisms for all thermodynamic packages
Rationalised "make" macros to reduce code duplication
Removed solid phase radiation properties
Updated tutorials appropriately
2012-10-03 22:43:50 +01:00
88050abcab ChemistryModel: the from of the compressibility thermo is now selectable
The form of the chemistry model is no longer selectable (only one choice).
2012-10-02 11:33:04 +01:00
7d17731637 ChemistryModel: Updated names and lookup 2012-10-01 17:00:43 +01:00
9bf80af379 Thermodynamics: Update selection mechanism for reaction and chemistry thermodynamics 2012-09-30 21:27:18 +01:00
8f4b56b3c3 Thermodynamics: Rationalised the base classes for fluid and solid thermo.
New base class for fluid and solid thermo: veryBasicThermo
Base class for fluid thermo: basicThermo (derived from veryBasicThermo)
Base class for solid thermo: solidThermo (derived from veryBasicThermo)

Note in next commit basicThermo -> fluidThermo, veryBasicThermo -> basicThermo
2012-08-23 11:39:02 +01:00
831bcdc6b9 STYLE: scripts: removed trailing spaces 2012-08-17 12:30:55 +01:00
63da3e9afc Thermodynamics: Rationalization
At the specie level:
    hs = sensible enthalpy
    ha = absolute (what was total) enthalpy
    es = sensibly internal energy
    ea = absolute (what was total) internal energy

At top-level
    Rename total enthalpy h -> ha
    Rename sensible enthalpy hs -> h

Combined h, hs, e and es thermo packages into a single structure.

Thermo packages now provide "he" function which may return either enthalpy or
internal energy, sensible or absolute according to the run-time selected form

alphaEff now returns the effective diffusivity for the particular energy which
the thermodynamics package is selected to solve for.
2012-05-30 15:19:38 +01:00
636145b9b7 ENH: Added check to see if gnuplot exists on the system before creating graphs 2011-11-25 12:29:55 +00:00
c2dd153a14 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00