82                                       const Scalar temperature)
 
   87        for (
int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
 
   88            assert(FluidSystem::isIdealMixture(phaseIdx));
 
   94        fluidState.setTemperature(temperature);
 
   95        fluidState.setPressure(phase0Idx, phasePressure[phase0Idx]);
 
   96        fluidState.setPressure(phase1Idx, phasePressure[phase1Idx]);
 
   99        const Scalar k10 = FluidSystem::fugacityCoefficient(fluidState, phase0Idx, comp0Idx) * fluidState.pressure(phase0Idx)
 
  100                     / (FluidSystem::fugacityCoefficient(fluidState, phase1Idx, comp0Idx) * fluidState.pressure(phase1Idx));
 
  101        const Scalar k11 = FluidSystem::fugacityCoefficient(fluidState, phase0Idx, comp1Idx) * fluidState.pressure(phase0Idx)
 
  102                     / (FluidSystem::fugacityCoefficient(fluidState, phase1Idx, comp1Idx) * fluidState.pressure(phase1Idx));
 
  105        fluidState.setMoleFraction(phase0Idx, comp0Idx, ((1. - k11) / (k10 - k11)));
 
  106        fluidState.setMoleFraction(phase1Idx, comp0Idx, (fluidState.moleFraction(phase0Idx,comp0Idx) * k10));
 
  107        fluidState.setMoleFraction(phase0Idx, comp1Idx, 1.0 - fluidState.moleFraction(phase0Idx,comp0Idx));
 
  108        fluidState.setMoleFraction(phase1Idx, comp1Idx, 1.0 - fluidState.moleFraction(phase1Idx,comp0Idx));
 
  111        const Scalar K10 = fluidState.massFraction(phase1Idx, comp0Idx) / fluidState.massFraction(phase0Idx, comp0Idx);
 
  112        const Scalar K11 = (1. - fluidState.massFraction(phase1Idx, comp0Idx)) / (1. - fluidState.massFraction(phase0Idx, comp0Idx));
 
  115        const Scalar Nu0 = 1. + ((Z0 * (K10 - 1.)) + ((1. - Z0) * (K11 - 1.))) / ((K11 - 1.) * (K10 - 1.));
 
  118        std::array<Scalar, 2> phaseMassFraction;
 
  121        if (Nu0 > 0. && Nu0 < 1.) 
 
  122            phaseMassFraction[phase0Idx] = Nu0;
 
  125            phaseMassFraction[phase0Idx] = 0.0; 
 
  126            fluidState.setMassFraction(phase1Idx,comp0Idx, Z0); 
 
  130            phaseMassFraction[phase0Idx] = 1.0; 
 
  131            fluidState.setMassFraction(phase0Idx, comp0Idx, Z0); 
 
  135        phaseMassFraction[phase1Idx] = 1.0 - phaseMassFraction[phase0Idx];
 
  138        fluidState.setDensity(phase0Idx, FluidSystem::density(fluidState, phase0Idx));
 
  139        fluidState.setDensity(phase1Idx, FluidSystem::density(fluidState, phase1Idx));
 
  140        fluidState.setMolarDensity(phase0Idx, FluidSystem::molarDensity(fluidState, phase0Idx));
 
  141        fluidState.setMolarDensity(phase1Idx, FluidSystem::molarDensity(fluidState, phase1Idx));
 
  143        fluidState.setViscosity(phase0Idx, FluidSystem::viscosity(fluidState, phase0Idx));
 
  144        fluidState.setViscosity(phase1Idx, FluidSystem::viscosity(fluidState, phase1Idx));
 
  146        Scalar sw = phaseMassFraction[phase0Idx] / fluidState.density(phase0Idx);
 
  147        sw /= (phaseMassFraction[phase0Idx] / fluidState.density(phase0Idx)
 
  148                    + phaseMassFraction[phase1Idx] / fluidState.density(phase1Idx));
 
  149        fluidState.setSaturation(phase0Idx, sw);
 
  150        fluidState.setSaturation(phase1Idx, 1.0-sw);
 
 
  167    static void concentrationFlash1p2c(FluidState1p2c& fluidState, 
const Scalar& Z0,
const Dune::FieldVector<Scalar,numPhases>
 
  168                                       phasePressure,
const int presentPhaseIdx, 
const Scalar& temperature)
 
  172        fluidState.
setPressure(phase0Idx, phasePressure[phase0Idx]);
 
  173        fluidState.
setPressure(phase1Idx, phasePressure[phase1Idx]);
 
  179        fluidState.
setMoleFraction(presentPhaseIdx, comp0Idx, Z0 / FluidSystem::molarMass(comp0Idx)
 
  180                / (Z0 / FluidSystem::molarMass(comp0Idx) + (1. - Z0) / FluidSystem::molarMass(comp1Idx)));
 
  183                fluidState.
massFraction(presentPhaseIdx, comp0Idx) * FluidSystem::molarMass(comp0Idx)
 
  184                + fluidState.
massFraction(presentPhaseIdx, comp1Idx) * FluidSystem::molarMass(comp1Idx));
 
  186        fluidState.
setDensity(presentPhaseIdx, FluidSystem::density(fluidState, presentPhaseIdx));
 
  187        fluidState.
setMolarDensity(presentPhaseIdx, FluidSystem::molarDensity(fluidState, presentPhaseIdx));
 
  189        fluidState.
setViscosity(presentPhaseIdx, FluidSystem::viscosity(fluidState, presentPhaseIdx));
 
 
  208                                    const Scalar saturation,
 
  210                                    const Scalar temperature)
 
  215        for (
int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
 
  216            assert(FluidSystem::isIdealMixture(phaseIdx));
 
  222        fluidState.setTemperature(temperature);
 
  223        fluidState.setPressure(phase0Idx, phasePressure[phase0Idx]);
 
  224        fluidState.setPressure(phase1Idx, phasePressure[phase1Idx]);
 
  227        const Scalar k10 = FluidSystem::fugacityCoefficient(fluidState, phase0Idx, comp0Idx) * fluidState.pressure(phase0Idx)
 
  228                     / (FluidSystem::fugacityCoefficient(fluidState, phase1Idx, comp0Idx) * fluidState.pressure(phase1Idx));
 
  229        const Scalar k11 = FluidSystem::fugacityCoefficient(fluidState, phase0Idx, comp1Idx) * fluidState.pressure(phase0Idx)
 
  230                     / (FluidSystem::fugacityCoefficient(fluidState, phase1Idx, comp1Idx) * fluidState.pressure(phase1Idx));
 
  233        fluidState.setMoleFraction(phase0Idx,comp0Idx, ((1. - k11) / (k10 - k11)));
 
  234        fluidState.setMoleFraction(phase1Idx,comp0Idx, (fluidState.moleFraction(phase0Idx,comp0Idx) * k10));
 
  235        fluidState.setMoleFraction(phase0Idx, comp1Idx, 1.0 - fluidState.moleFraction(phase0Idx,comp0Idx));
 
  236        fluidState.setMoleFraction(phase1Idx, comp1Idx, 1.0 - fluidState.moleFraction(phase1Idx,comp0Idx));
 
  239        fluidState.setDensity(phase0Idx, FluidSystem::density(fluidState, phase0Idx));
 
  240        fluidState.setDensity(phase1Idx, FluidSystem::density(fluidState, phase1Idx));
 
  241        fluidState.setMolarDensity(phase0Idx, FluidSystem::molarDensity(fluidState, phase0Idx));
 
  242        fluidState.setMolarDensity(phase1Idx, FluidSystem::molarDensity(fluidState, phase1Idx));
 
  244        fluidState.setViscosity(phase0Idx, FluidSystem::viscosity(fluidState, phase0Idx));
 
  245        fluidState.setViscosity(phase1Idx, FluidSystem::viscosity(fluidState, phase1Idx));
 
  248        fluidState.setSaturation(phase0Idx, saturation);
 
  249        fluidState.setSaturation(phase1Idx, 1.0-saturation);