16 params.
addClassDescription(
"Compositional flash calculations for use in fluid state classes");
27 std::vector<Real> & Zi,
28 std::vector<Real> & Ki)
const 30 const std::size_t num_z = Zi.size();
32 if (Ki.size() != num_z + 1)
33 mooseError(
"The number of mass fractions or equilibrium components passed to rachfordRice is " 39 for (std::size_t i = 0; i < num_z; ++i)
41 f += Zi[i] * (Ki[i] - 1.0) / (1.0 +
x * (Ki[i] - 1.0));
46 f += (1.0 - Z_total) * (Ki[num_z] - 1.0) / (1.0 +
x * (Ki[num_z] - 1.0));
53 std::vector<Real> & Zi,
54 std::vector<Real> & Ki)
const 56 const std::size_t num_Z = Zi.size();
58 if (Ki.size() != num_Z + 1)
59 mooseError(
"The number of mass fractions or equilibrium components passed to rachfordRice is " 65 for (std::size_t i = 0; i < num_Z; ++i)
67 df -= Zi[i] * (Ki[i] - 1.0) * (Ki[i] - 1.0) / (1.0 +
x * (Ki[i] - 1.0)) /
68 (1.0 +
x * (Ki[i] - 1.0));
73 df -= (1.0 - Z_total) * (Ki[num_Z] - 1.0) * (Ki[num_Z] - 1.0) / (1.0 +
x * (Ki[num_Z] - 1.0)) /
74 (1.0 +
x * (Ki[num_Z] - 1.0));
82 return (Z0 * (K1 - K0) - (K1 - 1.0)) / ((K0 - 1.0) * (K1 - 1.0));
90 return (Z0 * (K1 - K0) - (K1 - 1.0)) / ((K0 - 1.0) * (K1 - 1.0));
97 if (Ki.size() != Zi.size() + 1)
98 mooseError(
"The number of mass fractions or equilibrium components passed to rachfordRice is " 111 unsigned int iter = 0;
static InputParameters validParams()
Real rachfordRice(Real vf, std::vector< Real > &Zi, std::vector< Real > &Ki) const
Rachford-Rice equation for vapor fraction.
static InputParameters validParams()
Base class for fluid states for miscible multiphase flow in porous media.
ADRealEigenVector< T, D, asd > abs(const ADRealEigenVector< T, D, asd > &)
const std::vector< double > x
Real f(Real x)
Test function for Brents method.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string v
Real vaporMassFraction(Real Z0, Real K0, Real K1) const
Solves Rachford-Rice equation to provide vapor mass fraction.
void mooseError(Args &&... args) const
PorousFlowFluidStateFlash(const InputParameters ¶meters)
const Real _nr_tol
Tolerance for Newton-Raphson iterations.
Real rachfordRiceDeriv(Real vf, std::vector< Real > &Zi, std::vector< Real > &Ki) const
Derivative of Rachford-Rice equation wrt vapor fraction.
const Real _nr_max_its
Maximum number of iterations for the Newton-Raphson routine.