View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003717 | OpenFOAM | Patch | public | 2021-08-24 17:50 | 2021-08-25 12:02 |
Reporter | mboesi | Assigned To | henry | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | Unix | OS | Other | OS Version | (please specify) |
Summary | 0003717: Dynamic compilation of TDACChemistryModel fails | ||||
Description | The running the TDACChemistryModel fails when using thermo-physics not pre-defined in the chemistryModel. The issue is related to a missing symbol. I've checked the problem and found out that the pre-processor instruction in the basicChemistryModelTemplate.C has a typo and, therefore, the standardChemistryModel and the chemistryReduction- and chemistryTabulationMethods are not compiled. The instruction reads: "#if ${method}CppTest == TDACChemistryModelCppTest" but should be "#if ${method}ChemistryModelCppTest == TDACChemistryModelCppTest". I've attached a corrected version of the file and a test case based on the DLR_A_LTS case. | ||||
Steps To Reproduce | Select a non | ||||
Tags | No tags attached. | ||||
|
basicChemistryModelTemplate.C (6,148 bytes)
/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Copyright (C) YEAR OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. \*---------------------------------------------------------------------------*/ #include "makeChemistrySolver.H" #include "${method}ChemistryModel.H" #include "${solver}.H" #include "typedefThermo.H" #include "${specie}.H" #include "thermo.H" // EoS #include "${equationOfState}.H" // Thermo #include "${thermo}Thermo.H" #include "${energy}.H" // Transport #include "${transport}Transport.H" // * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * // extern "C" { // dynamicCode: // SHA1 = ${SHA1sum} // // Unique function name that can be checked if the correct library version // has been loaded void ${typeName}_${SHA1sum}(bool load) { if (load) { // code that can be explicitly executed after loading } else { // code that can be explicitly executed before unloading } } } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #define ThermoPhysics \ ${transport}Transport${energy}${thermo}Thermo${equationOfState}${specie} namespace Foam { typedefThermo ( ${transport}Transport, ${energy}, ${thermo}Thermo, ${equationOfState}, ${specie} ); defineChemistrySolver(${method}ChemistryModel, ThermoPhysics); makeChemistrySolver(${solver}, ${method}ChemistryModel, ThermoPhysics); } #define standardChemistryModelCppTest 0 #define TDACChemistryModelCppTest 1 #if ${method}ChemistryModelCppTest == TDACChemistryModelCppTest #include "makeChemistryReductionMethod.H" #include "makeChemistryTabulationMethod.H" namespace Foam { defineChemistrySolver(standardChemistryModel, ThermoPhysics); defineChemistryReductionMethod(nullArg, ThermoPhysics); defineChemistryTabulationMethod(nullArg, ThermoPhysics); } #include "noChemistryReduction.H" #include "DAC.H" #include "DRG.H" #include "DRGEP.H" #include "EFA.H" #include "PFA.H" namespace Foam { makeChemistryReductionMethod(none, ThermoPhysics); makeChemistryReductionMethod(DAC, ThermoPhysics); makeChemistryReductionMethod(DRG, ThermoPhysics); makeChemistryReductionMethod(DRGEP, ThermoPhysics); makeChemistryReductionMethod(EFA, ThermoPhysics); makeChemistryReductionMethod(PFA, ThermoPhysics); } #include "noChemistryTabulation.H" #include "ISAT.H" namespace Foam { makeChemistryTabulationMethod(none, ThermoPhysics); makeChemistryTabulationMethod(ISAT, ThermoPhysics); } #endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #include "makeReaction.H" #include "ArrheniusReactionRate.H" #include "LandauTellerReactionRate.H" #include "thirdBodyArrheniusReactionRate.H" #include "JanevReactionRate.H" #include "powerSeriesReactionRate.H" #include "ChemicallyActivatedReactionRate.H" #include "FallOffReactionRate.H" #include "LindemannFallOffFunction.H" #include "SRIFallOffFunction.H" #include "TroeFallOffFunction.H" #include "LangmuirHinshelwoodReactionRate.H" #include "MichaelisMentenReactionRate.H" namespace Foam { defineReaction(nullArg, ThermoPhysics); makeIRNReactions(ArrheniusReactionRate, ThermoPhysics); makeIRNReactions(LandauTellerReactionRate, ThermoPhysics); makeIRNReactions(thirdBodyArrheniusReactionRate, ThermoPhysics); makeIRReactions(JanevReactionRate, ThermoPhysics); makeIRReactions(powerSeriesReactionRate, ThermoPhysics); makeIRRPressureDependentReactions ( FallOffReactionRate, ArrheniusReactionRate, LindemannFallOffFunction, ThermoPhysics ); makeIRRPressureDependentReactions ( FallOffReactionRate, ArrheniusReactionRate, TroeFallOffFunction, ThermoPhysics ); makeIRRPressureDependentReactions ( FallOffReactionRate, ArrheniusReactionRate, SRIFallOffFunction, ThermoPhysics ); makeIRRPressureDependentReactions ( ChemicallyActivatedReactionRate, ArrheniusReactionRate, LindemannFallOffFunction, ThermoPhysics ); makeIRRPressureDependentReactions ( ChemicallyActivatedReactionRate, ArrheniusReactionRate, TroeFallOffFunction, ThermoPhysics ); makeIRRPressureDependentReactions ( ChemicallyActivatedReactionRate, ArrheniusReactionRate, SRIFallOffFunction, ThermoPhysics ); } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #include "LangmuirHinshelwoodReactionRate.H" namespace Foam { makeIRReactions(LangmuirHinshelwoodReactionRate, ThermoPhysics); } #include "fluxLimitedLangmuirHinshelwoodReactionRate.H" namespace Foam { makeGeneralReaction ( IrreversibleReaction, fluxLimitedLangmuirHinshelwoodReactionRate, ThermoPhysics ); } // ************************************************************************* // |
|
I can't reproduce the problem with the case you have provided, I get a string of errors from the thermo relating to incorrect input: [0] [0] [0] --> FOAM FATAL IO ERROR: [0] keyword muCoeffs<8> is undefined in dictionary "/home/dm2/henry/Downloads/DLR_A_LTSTest/constant/thermophysicalProperties/H2/transport" [0] [0] file: /home/dm2/henry/Downloads/DLR_A_LTSTest/constant/thermophysicalProperties/H2/transport from line 809 to line 810. [0] [0] From function const Foam::entry& Foam::dictionary::lookupEntry(const Foam::word&, bool, bool) const [0] in file db/dictionary/dictionary.C at line 811. . . . |
|
Resolved in OpenFOAM-9 by commit 7b57b4747f7583bad0fed179581a191f542709e4 Resolved in OpenFOAM-dev by commit 9b8aa48a7ed3d1f5e9f61c83c41d8b0e828a6af8 |
Date Modified | Username | Field | Change |
---|---|---|---|
2021-08-24 17:50 | mboesi | New Issue | |
2021-08-24 17:50 | mboesi | File Added: DLR_A_LTSTest.tar.xz | |
2021-08-24 17:50 | mboesi | File Added: basicChemistryModelTemplate.C | |
2021-08-25 11:25 | henry | Note Added: 0012163 | |
2021-08-25 12:02 | henry | Assigned To | => henry |
2021-08-25 12:02 | henry | Status | new => resolved |
2021-08-25 12:02 | henry | Resolution | open => fixed |
2021-08-25 12:02 | henry | Fixed in Version | => 9 |
2021-08-25 12:02 | henry | Note Added: 0012165 |