OGS
DimensionLessGibbsFreeEnergyRegion1.cpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
5
6#include <cmath>
7
8namespace MaterialLib
9{
10namespace Fluid
11{
12static const double ni[34] = {
13 1.4632971213167E-01, -8.4548187169114E-01, -3.7563603672040E+00,
14 3.3855169168385E+00, -9.5791963387872E-01, 1.5772038513228E-01,
15 -1.6616417199501E-02, 8.1214629983568E-04, 2.8319080123804E-04,
16 -6.0706301565874E-04, -1.8990068218419E-02, -3.2529748770505E-02,
17 -2.1841717175414E-02, -5.2838357969930E-05, -4.7184321073267E-04,
18 -3.0001780793026E-04, 4.7661393906987E-05, -4.4141845330846E-06,
19 -7.2694996297594E-16, -3.1679644845054E-05, -2.8270797985312E-06,
20 -8.5205128120103E-10, -2.2425281908000E-06, -6.5171222895601E-07,
21 -1.4341729937924E-13, -4.0516996860117E-07, -1.2734301741641E-09,
22 -1.7424871230634E-10, -6.8762131295531E-19, 1.4478307828521E-20,
23 2.6335781662795E-23, -1.1947622640071E-23, 1.8228094581404E-24,
24 -9.35370872924580E-26};
25
26static const double li[34] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
27 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4,
28 4, 5, 8, 8, 21, 23, 29, 30, 31, 32};
29
30static const double ji[34] = {
31 -2, -1, 0, 1, 2, 3, 4, 5, -9, -7, -1, 0, 1, 3, -3, 0, 1,
32 3, 17, -4, 0, 6, -5, -2, 10, -8, -11, -6, -29, -31, -38, -39, -40, -41};
33
35 const double pi)
36{
37 double val = 0.;
38 for (int i = 0; i < 34; i++)
39 {
40 val += ni[i] * std::pow(7.1 - pi, li[i]) * std::pow(tau - 1.222, ji[i]);
41 }
42
43 return val;
44}
45
47 const double pi)
48{
49 double val = 0.;
50 for (int i = 0; i < 34; i++)
51 {
52 val += ni[i] * ji[i] * std::pow(7.1 - pi, li[i]) *
53 std::pow(tau - 1.222, ji[i] - 1.0);
54 }
55
56 return val;
57}
58
60 const double tau, const double pi)
61{
62 double val = 0.;
63 for (int i = 0; i < 34; i++)
64 {
65 val += ni[i] * ji[i] * (ji[i] - 1.0) * std::pow(7.1 - pi, li[i]) *
66 std::pow(tau - 1.222, ji[i] - 2.0);
67 }
68
69 return val;
70}
71
73 const double pi)
74{
75 double val = 0.;
76 for (int i = 0; i < 34; i++)
77 {
78 val -= ni[i] * li[i] * std::pow(7.1 - pi, li[i] - 1.0) *
79 std::pow(tau - 1.222, ji[i]);
80 }
81
82 return val;
83}
84
86 const double pi)
87{
88 double val = 0.;
89 for (int i = 0; i < 34; i++)
90 {
91 val += ni[i] * li[i] * (li[i] - 1.0) * std::pow(7.1 - pi, li[i] - 2.0) *
92 std::pow(tau - 1.222, ji[i]);
93 }
94
95 return val;
96}
97
99 const double tau, const double pi)
100{
101 double val = 0.;
102 for (int i = 0; i < 34; i++)
103 {
104 val -= ni[i] * ji[i] * li[i] * std::pow(7.1 - pi, li[i] - 1.0) *
105 std::pow(tau - 1.222, ji[i] - 1.0);
106 }
107
108 return val;
109}
110
111} // namespace Fluid
112} // namespace MaterialLib
static double get_dgamma_dpi_dpi(const double tau, const double pi)
static double get_dgamma_dtau_dtau(const double tau, const double pi)
static double get_dgamma_dtau_dpi(const double tau, const double pi)