Determines the phase compositions, pressures and saturations given the total mass of all components. More...
#include <opm/material/fluidmatrixinteractions/NullMaterial.hpp>
#include <opm/material/fluidmatrixinteractions/MaterialTraits.hpp>
#include <opm/material/fluidstates/CompositionalFluidState.hpp>
#include <opm/material/densead/Evaluation.hpp>
#include <opm/material/densead/Math.hpp>
#include <opm/material/common/MathToolbox.hpp>
#include <opm/common/Valgrind.hpp>
#include <opm/common/ErrorMacros.hpp>
#include <opm/common/Exceptions.hpp>
#include <opm/common/utility/platform_dependent/disable_warnings.h>
#include <dune/common/fvector.hh>
#include <dune/common/fmatrix.hh>
#include <opm/common/utility/platform_dependent/reenable_warnings.h>
#include <limits>
#include <iostream>
Go to the source code of this file.
Classes | |
class | Opm::NcpFlash< Scalar, FluidSystem > |
Determines the phase compositions, pressures and saturations given the total mass of all components. More... | |
Determines the phase compositions, pressures and saturations given the total mass of all components.
In a M-phase, N-component context, we have the following unknowns:
This sums up to M*(N + 2). On the equations side of things, we have:
this also sums up to M*(N + 2).
We use the following catches: Capillary pressures are taken into account explicitly, so that only the pressure of the first phase is solved implicitly, also the closure condition for the saturations is taken into account explicitly, which means that we don't need to implicitly solve for the last saturation. These two measures reduce the number of unknowns to M*(N + 1), namely: