remove cyclic dependencies for phase systems
centralize more libraries in src/phaseSystemModels
avoid phaseSystem cyclic dependencies, reduce number of libraries
Previously the phaseSystems had a number of smaller libraries to provide interface and model properties. However, the cyclic dependencies between phaseSystem and the models (and turbulence) causes extreme difficultly for mingw linking. The potential additional flexibility is not actually used anywhere.
-
libincompressibleMultiphaseSystems
- removed: libmassTransferModels
-
libmultiphaseSystem
- removed: libcompressibleMultiphaseEulerianInterfacialModels
-
libreactingMultiphaseSystem
- removed: libreactingPhaseSystem
- removed: libreactingEulerianFvPatchFields
- removed: libreactingEulerianInterfacialCompositionModels
- removed: libreactingEulerianInterfacialModels
- removed: libmultiphaseReactingTurbulenceModels
-
libreactingTwoPhaseSystem
- removed: libreactingPhaseSystem
- removed: libreactingEulerianFvPatchFields
- removed: libreactingEulerianInterfacialCompositionModels
- removed: libreactingEulerianInterfacialModels
Avoid duplicate symbol for phaseCompressibleTurbulenceModels.
Common turbulence models are defined in libreactingMultiphaseSystem, and libmultiphaseReactingTurbulenceModels is now redundant.
The libtwoPhaseReactingTurbulenceModels extends the common models for reactingTwoPhaseSystem.
Merge request reports
Activity
added code style compilation discussion feature labels
The reactingTwoPhaseEulerFoam and reactingMultiPhaseEulerFoam tutorials are crashing while in the develop version they don't. Any change on that particular lib that can cause the problem?.
In multiphaseInter for icoReactingMultiphaseFoam the surface tension models should NOT be there. They are used from the transport library. I can push that change.
Hi @Sergio - no more time to check today (for me), but try a checkout with a few commits back
ENH: avoid phaseSystem cyclic dependencies, reduce number of libraries
This is also a reasonable point to check. The final two commits are mostly "window dressing", but might have brought something in odd that we need to re-check (maybe the famous code style that actually breaks things).
Hi @mark , The problem seems to be the phasePair folder. Using the old sources works. It looks like the most likely is the phasePairKey. Some new function are introduced here.
Hi @Sergio - thanks for tracking it down (makes my life easier). Will take another look.
added 4 commits
Toggle commit listCouldn't quickly figure out what I messed up with that commit, so just sidelined it for now. Can always come back to it later if still feeling pedantic, and after other code has been cleaned up.
I have done a forced update, should be good now. Testing with multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling clearly showed the problem
- worked in develop
- failed with nan for the solver (with the dodgy style commit)
- working again now
Have a spin.
The twoPhase turbulence models appear to be properly added to the multiphase ones. The 'banana test' for reactingTwoPhaseEulerFoam:
--> FOAM FATAL IO ERROR: Unknown RASModel type banana Valid RASModel types : 8(LaheyKEpsilon continuousGasKEpsilon kEpsilon kOmegaSST kOmegaSSTSato kineticTheory mixtureKEpsilon phasePressure)
assigned to @Sergio
added 6 commits
-
42ce617b - 1 commit from branch
develop
- 03526e20 - ENH: centralize more libraries in src/phaseSystemModels
- 915c0785 - ENH: avoid phaseSystem cyclic dependencies, reduce number of libraries
- 93ed9337 - STYLE: use unitConversion degToRad() from instead of separate value
- 99e20b3b - ENH: combine some phaseSystem selectors into regular .C files
- a192095c - COMP: remove unused variable from phasePressureModel
Toggle commit list-
42ce617b - 1 commit from branch
mentioned in commit f39c1d3c
mentioned in issue #149 (closed)