OGS
DensityHauer.cpp
Go to the documentation of this file.
1
10#include "DensityHauer.h"
11
12namespace
13{
14// NaX_Hauer_polyfrac_CC.pickle
15// date extracted 2015-06-23 15:38:35 file mtime 2015-06-23 15:19:19
16const double DensityHauer_c[] = {
17 0.36490158988356747, /* a0 */
18 -0.0013723270478333963, /* a1 */
19 -0.0007655780628099964, /* a2 */
20 -3.353324854315774e-08, /* a3 */
21 5.424357157710913e-07, /* a4 */
22 6.613430586648678e-10, /* a5 */
23 -1.0300151379421499e-10 /* a6 */
24};
25
26} // namespace
27
28namespace Adsorption
29{
30double DensityHauer::getAdsorbateDensity(const double T_Ads) const
31{
32 return rhoWaterHauer(T_Ads);
33}
34
35// Thermal expansivity model for water found in the works of Hauer
36double DensityHauer::getAlphaT(const double T_Ads) const
37{
38 // data like in python script
39 const double T0 = 283.15;
40 const double alpha0 = 3.781e-4; // K; 1/K
41
42 return alpha0 / (1. - alpha0 * (T_Ads - T0)); // in 1/K
43}
44
45// Characteristic curve. Return W (A)
46double DensityHauer::characteristicCurve(const double A) const
47{
48 double W = curvePolyfrac(DensityHauer_c, A); // cm^3/g
49
50 if (W < 0.0)
51 {
52 W = 0.0; // TODO [CL] debug output
53 }
54
55 return W / 1.e3; // m^3/kg
56}
57
58double DensityHauer::dCharacteristicCurve(const double A) const
59{
60 return dCurvePolyfrac(DensityHauer_c, A);
61}
62
63} // namespace Adsorption
double characteristicCurve(const double A) const override
double getAlphaT(const double T_Ads) const override
double getAdsorbateDensity(const double T_Ads) const override
double dCharacteristicCurve(const double A) const override
double curvePolyfrac(const double *coeffs, const double x)
Definition Adsorption.h:52
double rhoWaterHauer(const double T_Ads)
double dCurvePolyfrac(const double *coeffs, const double x)
Definition Adsorption.h:61