// Determines weight or volume of acid in ml or mg from moles public static double acidAmountPerL(Acid acid, double moles) { double amnt = moles * acid.getMolWt(); if (acid.isLiquid()) { amnt = amnt / acid.getMgPerL(); } return amnt; }
// Determines moles of given acid required to shift to target ph given amount of acid // millieuivelants public static double molesByAcid(Acid acid, double millequivs, double pH) { double r1d = Math.pow(10, pH - acid.getPK1()); double r2d = Math.pow(10, pH - acid.getPK2()); double r3d = Math.pow(10, pH - acid.getPK3()); double dd = 1 / (1 + r1d + (r1d * r2d) + (r1d * r2d * r3d)); // double f1d = dd; double f2d = r1d * dd; double f3d = r1d * r2d * dd; double f4d = r1d * r2d * r3d * dd; double frac = f2d + (2 * f3d) + (3 * f4d); double moles = millequivs / frac; return moles; }