src/Utils.cpp

changeset 134
5099df8ba6c6
parent 131
0115b97e8c39
child 135
e68b27ad8a40
--- a/src/Utils.cpp	Thu Apr 14 21:54:37 2022 +0200
+++ b/src/Utils.cpp	Thu Apr 14 22:47:05 2022 +0200
@@ -464,3 +464,37 @@
 }
 
 
+double Utils::mix(double v1, double v2, double c1, double c2)
+{
+    if ((v1 + v2) > 0) {
+        return ((v1 * c1) + (v2 * c2)) / (v1 + v2);
+    }
+    return 0;
+}
+
+
+double Utils::ResidualAlkalinity(double total_alkalinity, double calcium, double magnesium)
+{
+    return total_alkalinity - (calcium / 1.4 + magnesium / 1.7);
+}
+
+
+double Utils::PartCO3(double pH)
+{
+    double H = pow(10, -pH);
+    return 100 * 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 Utils::Charge(double pH)
+{
+    return (-2 * PartCO3(pH) - PartHCO3(pH));
+}
+

mercurial