Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • dumux dumux
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 100
    • Issues 100
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 86
    • Merge requests 86
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • dumux-repositoriesdumux-repositories
  • dumuxdumux
  • Issues
  • #1109
Closed
Open
Issue created Dec 02, 2021 by Dennis Gläser@DennisGlaeserOwner

More user-friendly way of specifying initial conditions for mpnc

Since mpnc uses fugacities, users have to use a constraint solver to compute them from whatever initial conditions they want to have in terms of saturations, mole fractions, etc...

If one wants single-phasic initial conditions (without dissolved components), and one does for instance:

GetPropType<TypeTag, Properties::FluidState> fs;

// ... set stuff in fluid state -> I want single-phasic state

// use constraint solver to compute fugacities
using MiscibleMultiPhaseComposition = Dumux::MiscibleMultiPhaseComposition<Scalar, FluidSystem>;
typename FluidSystem::ParameterCache paramCache;
MiscibleMultiPhaseComposition::solve(fs, paramCache);

one gets already nonzero mole fractions of the non-present phases in the initially present phase, because MiscibleMultiPhaseComposition seems to assume that all phases are present. One therefore has to use ComputeFromReferencePhase in this case, which to me does not seem obvious.

We should maybe either rethink our assumptions in MiscibleMultiPhaseComposition, or give the user some hints/warnings/info... This could be achieved by adding an "impl" layer which we use internally, while MiscibleMultiPhaseComposition, etc. forward to the impl but give some descriptive information message. For instance:

"This uses the assumption that all phases are present. For single-phase situations, use ..."

Assignee
Assign to
Time tracking