Skip to content
Snippets Groups Projects

remove cyclic dependencies for phase systems

Merged Mark OLESEN requested to merge comp-cyclic-dependencies into develop

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.

Edited by Mark OLESEN

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Author Maintainer

    @andy or @Sergio - who wants to pick this up?

  • Mark OLESEN unmarked as a Work In Progress

    unmarked as a Work In Progress

  • Mark OLESEN changed title from WIP: remove cyclic dependencies to remove cyclic dependencies for phase systems

    changed title from WIP: remove cyclic dependencies to remove cyclic dependencies for phase systems

  • Mark OLESEN changed the description

    changed the description

  • 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.

  • Author Maintainer

    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.

  • Author Maintainer

    Hi @Sergio - thanks for tracking it down (makes my life easier). Will take another look.

  • Mark OLESEN added 4 commits

    added 4 commits

    • 1127a878 - ENH: avoid phaseSystem cyclic dependencies, reduce number of libraries
    • f3bb5065 - STYLE: use unitConversion degToRad() from instead of separate value
    • 14081135 - ENH: combine some phaseSystem selectors into regular .C files
    • f135c094 - COMP: remove unused variable from phasePressureModel

    Compare with previous version

    Toggle commit list
  • Author Maintainer

    @Sergio, @andy

    Couldn'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.

  • Author Maintainer

    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

  • Sergio Ferraris added 6 commits

    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

    Compare with previous version

    Toggle commit list
  • Sergio Ferraris mentioned in commit f39c1d3c

    mentioned in commit f39c1d3c

  • mentioned in issue #149 (closed)

Please register or sign in to reply