src/Utils.cpp

changeset 135
e68b27ad8a40
parent 134
5099df8ba6c6
child 163
6cccd340ea8c
--- a/src/Utils.cpp	Thu Apr 14 22:47:05 2022 +0200
+++ b/src/Utils.cpp	Fri Apr 15 20:20:22 2022 +0200
@@ -481,20 +481,34 @@
 
 double Utils::PartCO3(double pH)
 {
-    double H = pow(10, -pH);
-    return 100 * Ka1 * Ka2 / (H * H + H * Ka1 + Ka1 * Ka2);
+    double H = pow(10.0, -pH);
+    return 100.0 * Ka1 * Ka2 / (H * H + H * Ka1 + Ka1 * Ka2);
 }
 
 
 double Utils::PartHCO3(double pH)
 {
-    double H = pow(10, -pH);
-    return 100 * Ka1 * H / (H * H + H * Ka1 + Ka1 * Ka2);
+    double H = pow(10.0, -pH);
+    return 100.0 * Ka1 * H / (H * H + H * Ka1 + Ka1 * Ka2);
 }
 
 
 double Utils::Charge(double pH)
 {
-    return (-2 * PartCO3(pH) - PartHCO3(pH));
+    return (-2.0 * PartCO3(pH) - PartHCO3(pH));
 }
 
+
+double Utils::CalcFrac(double TpH, double pK1, double pK2, double pK3)
+{
+    double r1d = pow(10.0, TpH - pK1);
+    double r2d = pow(10.0, TpH - pK2);
+    double r3d = pow(10.0, TpH - pK3);
+    double dd = 1.0 / (1.0 + r1d + r1d * r2d + r1d * r2d * r3d);
+    double f2d = r1d * dd;
+    double f3d = r1d * r2d * dd;
+    double f4d = r1d * r2d * r3d * dd;
+    return f2d + 2.0 * f3d + 3.0 * f4d;
+}
+
+

mercurial