www.mooseframework.org
BrineFluidProperties.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
13 #include "Water97FluidProperties.h"
14 
16 
17 template <>
18 InputParameters validParams<BrineFluidProperties>();
19 
20 #pragma GCC diagnostic push
21 #pragma GCC diagnostic ignored "-Woverloaded-virtual"
22 
39 {
40 public:
41  BrineFluidProperties(const InputParameters & parameters);
42  virtual ~BrineFluidProperties();
43 
48  virtual std::string fluidName() const override;
49 
55  Real molarMass(Real xnacl) const;
56  FPDualReal molarMass(const FPDualReal & xnacl) const;
57 
62  Real molarMassNaCl() const;
63 
68  Real molarMassH2O() const;
69 
70  virtual Real rho_from_p_T_X(Real pressure, Real temperature, Real xnacl) const override;
71  using MultiComponentFluidProperties::rho_from_p_T_X;
72 
74  const FPDualReal & temperature,
75  const FPDualReal & xnacl) const;
76 
77  virtual void rho_from_p_T_X(Real pressure,
78  Real temperature,
79  Real xnacl,
80  Real & rho,
81  Real & drho_dp,
82  Real & drho_dT,
83  Real & drho_dx) const override;
84 
85  virtual Real mu_from_p_T_X(Real pressure, Real temperature, Real xnacl) const override;
86  using MultiComponentFluidProperties::mu_from_p_T_X;
87 
88  virtual void mu_from_p_T_X(Real pressure,
89  Real temperature,
90  Real xnacl,
91  Real & mu,
92  Real & dmu_dp,
93  Real & dmu_dT,
94  Real & dmu_dx) const override;
95 
97  const FPDualReal & temperature,
98  const FPDualReal & xnacl) const;
99 
100  virtual Real h_from_p_T_X(Real pressure, Real temperature, Real xnacl) const override;
101  using MultiComponentFluidProperties::h_from_p_T_X;
102 
103  virtual void h_from_p_T_X(Real pressure,
104  Real temperature,
105  Real xnacl,
106  Real & h,
107  Real & dh_dp,
108  Real & dh_dT,
109  Real & dh_dx) const override;
110 
111  virtual Real cp_from_p_T_X(Real pressure, Real temperature, Real xnacl) const override;
112 
114  const FPDualReal & temperature,
115  const FPDualReal & xnacl) const;
116 
117  virtual Real e_from_p_T_X(Real pressure, Real temperature, Real xnacl) const override;
118 
119  virtual void e_from_p_T_X(Real pressure,
120  Real temperature,
121  Real xnacl,
122  Real & e,
123  Real & de_dp,
124  Real & de_dT,
125  Real & de_dx) const override;
126 
127  virtual Real k_from_p_T_X(Real pressure, Real temperature, Real xnacl) const override;
128 
139  Real vaporPressure(Real temperature, Real xnacl) const;
140 
155  Real haliteSolubility(Real temperature) const;
156 
165  Real henryConstant(Real temperature, const std::vector<Real> & coeffs) const;
166  void
167  henryConstant(Real temperature, const std::vector<Real> & coeffs, Real & Kh, Real & dKh_dT) const;
168  DualReal henryConstant(const DualReal & temperature, const std::vector<Real> & coeffs) const;
169 
171  static const unsigned int WATER = 0;
172  static const unsigned int NACL = 1;
173 
174  virtual const SinglePhaseFluidProperties & getComponent(unsigned int component) const override;
175 
176 protected:
182  Real massFractionToMolalConc(Real xnacl) const;
183 
189  Real massFractionToMoleFraction(Real xnacl) const;
190  FPDualReal massFractionToMoleFraction(const FPDualReal & xnacl) const;
191 
198 
200  Real _Mnacl;
202  Real _Mh2o;
204  mutable bool _water_fp_derivs;
205 };
206 
207 #pragma GCC diagnostic pop
BrineFluidProperties::haliteSolubility
Real haliteSolubility(Real temperature) const
Solubility of halite (solid NaCl) in water Originally from Potter et al., A new method for determinin...
Definition: BrineFluidProperties.C:471
BrineFluidProperties::_Mh2o
Real _Mh2o
Molar mass of water (H2O) (kg/mol)
Definition: BrineFluidProperties.h:202
BrineFluidProperties::molarMass
Real molarMass(Real xnacl) const
Average molar mass of brine.
Definition: BrineFluidProperties.C:104
BrineFluidProperties::_Mnacl
Real _Mnacl
Molar mass of NaCl (kg/mol)
Definition: BrineFluidProperties.h:200
BrineFluidProperties::BrineFluidProperties
BrineFluidProperties(const InputParameters &parameters)
Definition: BrineFluidProperties.C:25
BrineFluidProperties::molarMassNaCl
Real molarMassNaCl() const
NaCl molar mass.
Definition: BrineFluidProperties.C:110
SinglePhaseFluidProperties
Common class for single phase fluid properties.
Definition: SinglePhaseFluidProperties.h:89
BrineFluidProperties::cp_from_p_T_X
virtual Real cp_from_p_T_X(Real pressure, Real temperature, Real xnacl) const override
Definition: BrineFluidProperties.C:352
BrineFluidProperties::NACL
static const unsigned int NACL
Definition: BrineFluidProperties.h:172
validParams< BrineFluidProperties >
InputParameters validParams< BrineFluidProperties >()
Definition: BrineFluidProperties.C:16
BrineFluidProperties::_nacl_fp
const SinglePhaseFluidProperties * _nacl_fp
NaClFluidProperties UserObject.
Definition: BrineFluidProperties.h:197
BrineFluidProperties::_water_fp_derivs
bool _water_fp_derivs
Flag to indicate whether to calculate derivatives in water_fp.
Definition: BrineFluidProperties.h:204
MultiComponentFluidProperties
Common class for multiple component fluid properties using a pressure and temperature formulation.
Definition: MultiComponentFluidProperties.h:69
BrineFluidProperties::vaporPressure
Real vaporPressure(Real temperature, Real xnacl) const
Brine vapour pressure From Haas, Physical properties of the coexisting phases and thermochemical prop...
Definition: BrineFluidProperties.C:451
BrineFluidProperties::henryConstant
Real henryConstant(Real temperature, const std::vector< Real > &coeffs) const
IAPWS formulation of Henry's law constant for dissolution in water (implemented in water FluidPropert...
Definition: BrineFluidProperties.C:504
FPDualReal
DualNumber< Real, DNDerivativeSize< 5 > > FPDualReal
Definition: FluidProperties.h:15
BrineFluidProperties::WATER
static const unsigned int WATER
Fluid component numbers for water and NaCl.
Definition: BrineFluidProperties.h:171
BrineFluidProperties::e_from_p_T_X
FPDualReal e_from_p_T_X(const FPDualReal &pressure, const FPDualReal &temperature, const FPDualReal &xnacl) const
Definition: BrineFluidProperties.C:389
BrineFluidProperties::mu_from_p_T_X
virtual Real mu_from_p_T_X(Real pressure, Real temperature, Real xnacl) const override
Definition: BrineFluidProperties.C:211
BrineFluidProperties::getComponent
virtual const SinglePhaseFluidProperties & getComponent(unsigned int component) const override
Get UserObject for specified component.
Definition: BrineFluidProperties.C:76
MultiComponentFluidProperties.h
Water97FluidProperties
Water (H2O) fluid properties as a function of pressure (Pa) and temperature (K) from IAPWS-IF97: Revi...
Definition: Water97FluidProperties.h:42
BrineFluidProperties::molarMassH2O
Real molarMassH2O() const
H2O molar mass.
Definition: BrineFluidProperties.C:116
BrineFluidProperties::~BrineFluidProperties
virtual ~BrineFluidProperties()
Definition: BrineFluidProperties.C:73
MaterialTensorCalculatorTools::component
Real component(const SymmTensor &symm_tensor, unsigned int index)
Definition: MaterialTensorCalculatorTools.C:16
BrineFluidProperties::rho_from_p_T_X
virtual Real rho_from_p_T_X(Real pressure, Real temperature, Real xnacl) const override
Definition: BrineFluidProperties.C:171
BrineFluidProperties::h_from_p_T_X
FPDualReal h_from_p_T_X(const FPDualReal &pressure, const FPDualReal &temperature, const FPDualReal &xnacl) const
Definition: BrineFluidProperties.C:264
BrineFluidProperties::k_from_p_T_X
virtual Real k_from_p_T_X(Real pressure, Real temperature, Real xnacl) const override
Definition: BrineFluidProperties.C:435
BrineFluidProperties::_water97_fp
const Water97FluidProperties * _water97_fp
Water97FluidProperties UserObject (for Henry's law)
Definition: BrineFluidProperties.h:193
NS::temperature
const std::string temperature
Definition: NS.h:26
BrineFluidProperties::fluidName
virtual std::string fluidName() const override
Fluid name.
Definition: BrineFluidProperties.C:92
Water97FluidProperties.h
BrineFluidProperties
Brine (NaCl in H2O) fluid properties as a function of pressure (Pa), temperature (K) and NaCl mass fr...
Definition: BrineFluidProperties.h:38
BrineFluidProperties::massFractionToMolalConc
Real massFractionToMolalConc(Real xnacl) const
Conversion from mass fraction to molal concentration (molality)
Definition: BrineFluidProperties.C:480
BrineFluidProperties::massFractionToMoleFraction
Real massFractionToMoleFraction(Real xnacl) const
Conversion from mass fraction to mole fraction.
Definition: BrineFluidProperties.C:486
BrineFluidProperties::_water_fp
const SinglePhaseFluidProperties * _water_fp
Water97FluidProperties UserObject.
Definition: BrineFluidProperties.h:195
NS::pressure
const std::string pressure
Definition: NS.h:25