diff -r ef298b5aa994 -r 041af8a82d77 www/js/rec_edit.js --- a/www/js/rec_edit.js Thu Dec 27 22:30:26 2018 +0100 +++ b/www/js/rec_edit.js Fri Dec 28 23:18:42 2018 +0100 @@ -252,9 +252,7 @@ var row = rows[i]; if (row.m_name == name) { var id = $("#miscGrid").jqxGrid('getrowid', i); -// console.log("name found, erase "+ id); var commit = $("#miscGrid").jqxGrid('deleterow', id); -// console.log("result: "+commit); } } } else { @@ -268,7 +266,7 @@ break; } } - console.log("set something, found: "+found); +// console.log("set something, found: "+found); if (! found) { // console.log("need to add this misc"); var miscs = new $.jqx.dataAdapter(miscInvSource, { @@ -287,7 +285,6 @@ row["m_weight"] = amount; row["m_amount_is_weight"] = record.amount_is_weight; var commit = $("#miscGrid").jqxGrid('addrow', null, row); -// console.log("result: "+commit); } } } @@ -390,7 +387,7 @@ var deltapH = 0.001; var deltapd = 0.1; var pd = ProtonDeficit(pH); - while (((pd < -deltapd) || (pd > deltapd)) && (n < 1000)) { + while (((pd < -deltapd) || (pd > deltapd)) && (n < 2000)) { n++; if (pd < -deltapd) pH -= deltapH; @@ -399,6 +396,7 @@ pd = ProtonDeficit(pH); } console.log("MashpH() n: "+n+" pH: "+pH); + return pH; } function GetAcidSpecs(AT) { @@ -489,16 +487,25 @@ ph = dataRecord.w1_ph; } $('#wg_amount').val(liters); + var wg_calcium = calcium; $('#wg_calcium').val(Math.round(calcium * 10) / 10); + var wg_magnesium = magnesium; $('#wg_magnesium').val(Math.round(magnesium * 10) / 10); + var wg_sodium = sodium; $('#wg_sodium').val(Math.round(sodium * 10) / 10); + var wg_total_alkalinity = total_alkalinity; $('#wg_total_alkalinity').val(Math.round(total_alkalinity * 10) / 10); + var wg_chloride = chloride; $('#wg_chloride').val(Math.round(chloride * 10) / 10); + var wg_sulfate = sulfate; $('#wg_sulfate').val(Math.round(sulfate * 10) / 10); // Note: brouwhulp has the malts included here in the result. + var wg_ph = ph; $('#wg_ph').val(Math.round(ph * 10) / 10); - $('#wb_ph').val(Math.round(ph * 10) / 10); +// $('#wb_ph').val(Math.round(ph * 10) / 10); + $('#wb_ph').val(Math.round(MashpH() * 10) / 10); bicarbonate = total_alkalinity * 1.22; + var wg_bicarbonate = bicarbonate; // Noot: de volgende berekeningen geven bijna gelijke resultaten in Brun'water. // Calculate Ca @@ -525,6 +532,15 @@ chloride += 1000 * RA / liters; // Einde noot. + if ($("#wa_acid_name").val() == "") { + $("#wa_acid_name").val('Melkzuur'); + last_acid = 'Melkzuur'; + } + if ($("#wa_base_name").val() == "") { + $("#wa_base_name").val('NaHCO3'); + last_base = 'NaHCO3'; + } + var AT = $("#wa_acid_name").val(); var BT = $("#wa_base_name").val(); @@ -544,15 +560,11 @@ if (protonDeficit > 0) { // Add acid $("#wa_base").val(0); setWaterAgent(last_base, 0); - if ($("#wa_acid_name").val() == "") { - $("#wa_acid_name").val('Melkzuur'); - last_acid = 'Melkzuur'; - } frac = CalcFrac(TpH, pK1, pK2, pK3); Acid = protonDeficit / frac; - console.log("Required moles: "+Acid); + // console.log("Required moles: "+Acid); Acid *= MolWt; // mg - // Acidmg = Acid; + Acidmg = Acid; // console.log("Required mg: "+Acidmg); Acid = Acid / AcidSG; // ml @@ -568,10 +580,6 @@ } else if (protonDeficit < 0) { //Add base $("#wa_acid").val(0); setWaterAgent(last_acid, 0); - if ($("#wa_base_name").val() == "") { - $("#wa_base_name").val('NaHCO3'); - last_base = 'NaHCO3'; - } r1d = Math.pow(10, (TpH - 6.38)); r2d = Math.pow(10, (TpH - 10.38)); f1d = 1 / (1 + r1d + r1d * r2d); @@ -587,11 +595,11 @@ RA = parseFloat($("#wa_nacl").jqxNumberInput('decimal')) * MMNa / MMNaCl + parseFloat($("#wa_base").jqxNumberInput('decimal')) * MMNa / MMNaHCO3; RA = 1000 * RA / liters; - sodium = parseFloat($('#wg_sodium').jqxNumberInput('decimal')) + RA; + sodium = wg_sodium + RA; // HCO3 RA = parseFloat($("#wa_base").jqxNumberInput('decimal')) * MMHCO3 / MMNaHCO3; RA = 1000 * RA / liters; - bicarbonate = (parseFloat($('#wg_total_alkalinity').jqxNumberInput('decimal')) * 1.22) + RA; + bicarbonate = wg_bicarbonate + RA; total_alkalinity = bicarbonate * 50 / 61; } break; @@ -603,11 +611,11 @@ RA = parseFloat($("#wa_nacl").jqxNumberInput('decimal')) * MMNa / MMNaCl + parseFloat($("#wa_base").jqxNumberInput('decimal')) * 2 * MMNa / MMNa2CO3; RA = 1000 * RA / liters; - sodium = parseFloat($('#wg_sodium').jqxNumberInput('decimal')) + RA; + sodium = wg_sodium + RA; // HCO3 RA = parseFloat($("#wa_base").jqxNumberInput('decimal')) * MMHCO3 / MMNa2CO3; RA = 1000 * RA / liters; - bicarbonate = (parseFloat($('#wg_total_alkalinity').jqxNumberInput('decimal')) * 1.22) + RA; + bicarbonate = wg_bicarbonate + RA; total_alkalinity = bicarbonate * 50 / 61; } break; @@ -621,14 +629,14 @@ //Bicarbonate RA = parseFloat($("#wa_base").jqxNumberInput('decimal')) / 3 * MMHCO3 / MMCaCO3; RA = 1000 * RA / liters; - bicarbonate = (parseFloat($('#wg_total_alkalinity').jqxNumberInput('decimal')) * 1.22) + RA; + bicarbonate = wg_bicarbonate + RA; total_alkalinity = bicarbonate * 50 / 61; //Ca precipitates out as Ca10(PO4)6(OH)2 RA = parseFloat($("#wa_cacl2").jqxNumberInput('decimal')) * MMCa / MMCaCl2 + parseFloat($("#wa_caso4").jqxNumberInput('decimal')) * MMCa / MMCaSO4 + parseFloat($("#wa_base").jqxNumberInput('decimal')) * MMCa / MMCaCO3; RA = 1000 * RA / liters; - calcium = parseFloat($('#wg_calcium').jqxNumberInput('decimal')) + RA; + calcium = wg_calcium + RA; } break; case 'Ca(OH)2': base = -protonDeficit / 19.3; // g @@ -637,14 +645,14 @@ if (liters > 0) { // Bicarbonate RA = -protonDeficit / liters; - total_alkalinity = parseFloat($('#wg_total_alkalinity').jqxNumberInput('decimal')) + RA; + total_alkalinity = wg_total_alkalinity + RA; bicarbonate = total_alkalinity * 61 / 50; // Calcium RA = parseFloat($("#wa_cacl2").jqxNumberInput('decimal')) * MMCa / MMCaCl2 + parseFloat($("#wa_caso4").jqxNumberInput('decimal')) * MMCa / MMCaSO4 + parseFloat($("#wa_base").jqxNumberInput('decimal')) * MMCa / MMCaOH2; RA = 1000 * RA / liters; - calcium = parseFloat($('#wg_calcium').jqxNumberInput('decimal')) + RA; + calcium = wg_calcium + RA; } break; } @@ -659,8 +667,8 @@ } TpH = parseFloat(dataRecord.mash_ph); - pHa = parseFloat($('#wg_ph').jqxNumberInput('decimal')); - //pHa = parseFloat(dataRecord.mash_ph); + // pHa = MashpH(); + pHa = parseFloat($("#wb_ph").jqxNumberInput('decimal')); // Then calculate the new pH with added acids if (parseFloat($("#wa_acid").jqxNumberInput('decimal')) > 0) { console.log("TpH: "+TpH+" water: "+pHa); @@ -670,18 +678,19 @@ Acid = Acid / AcidPrc * (parseFloat($("#wa_acid_perc").jqxNumberInput('decimal')) / 100); // ml Acid = Acid * AcidSG; // ml Acid = Acid / MolWt; // mg + Acidmg = Acid; //find the pH where the protondeficit = protondeficit by the acid frac = CalcFrac(pHa, pK1, pK2, pK3); protonDeficit = Acid * frac; - deltapH = 0.01; + deltapH = 0.001; deltapd = 0.1; pd = ProtonDeficit(TpH); n = 0; console.log("n: "+n+" pd: "+pd+" protonDeficit: "+protonDeficit+" frac: "+frac+" pHa: "+pHa); - while (((pd < (protonDeficit - deltapd)) || (pd > (protonDeficit + deltapd))) && (n < 1000)) { + while (((pd < (protonDeficit - deltapd)) || (pd > (protonDeficit + deltapd))) && (n < 2000)) { n++; if (pd < (protonDeficit-deltapd)) pHa = pHa - deltapH; @@ -693,117 +702,30 @@ // console.log("n: "+n+" pd: "+pd+" protonDeficit: "+protonDeficit+" frac: "+frac+" pHa: "+pHa); } console.log("n: "+n+" pd: "+pd+" protonDeficit: "+protonDeficit+" frac: "+frac+" pHa: "+pHa); - + RA = wg_bicarbonate - protonDeficit * frac / liters; + bicarbonate = RA; + total_alkalinity = RA * 50 / 61; + ph = pHa; + $('#wb_ph').val(Math.round(ph * 10) / 10); } - } -/* - TpH = parseFloat(dataRecord.mash_ph); - if (TpH < 5.0 || TpH > 6.0) { - TpH = 5.4; - dataRecord.mash_ph = 5.4; - $("#mash_ph").val(5.4); - } - var acid_amount = parseFloat($("#wa_acid").jqxNumberInput('decimal')); - var acid_perc = parseFloat($("#wa_acid_perc").jqxNumberInput('decimal')); - - switch ($("#wa_acid_name").val()) { - case 'Melkzuur': pK1 = 3.08; - pK2 = 20; - pK3 = 20; - MolWt = 90.08; - AcidSG = 1214; //@88% - AcidPrc = 0.88; - frac = CalcFrac(TpH, pK1, pK2, pK3); - acid += acid_amount * acid_perc / 100 * AcidSG / MolWt * frac / liters; //mEq/l - break; - - case 'Zoutzuur': pK1 = -10; - pK2 = 20; - pK3 = 20; - MolWt = 36.46; - AcidSG = 1142; //@28% - AcidPrc = 0.28; - frac = CalcFrac(TpH, pK1, pK2, pK3); - Acidmg = acid_amount * acid_perc / 100 * AcidSG / liters; - acid += Acidmg / MolWt * frac; //mEq/l - chloride += Acidmg / 1000 * MMCl / (MMCl + 1); - break; - - case 'Fosforzuur': pK1 = 2.12; - pK2 = 7.20; - pK3 = 12.44; - MolWt = 98.00; - AcidSG = 1170; //@25% - AcidPrc = 0.25; - frac = CalcFrac(TpH, pK1, pK2, pK3); - Acidmg = acid_amount * acid_perc / 100 * AcidSG / liters; - acid += Acidmg / MolWt * frac; //mEq/l - break; - - case 'Zwavelzuur': pK1 = -10; - pK2 = 1.92; - pK3 = 20; - MolWt = 98.07; - AcidSG = 1700; //@93% - AcidPrc = 0.93; - frac = CalcFrac(TpH, pK1, pK2, pK3); - Acidmg = acid_amount * acid_perc / 100 * AcidSG / liters; - acid += Acidmg / MolWt * frac; //mEq/l - sulfate += Acidmg / 1000 * MMSO4 / (MMSO4 + 2); - break; } - if (dataRecord.calc_acid) { - } else if (liters > 0) { // not calc_acid - // First add base salts - if (parseFloat($("#wa_base").jqxNumberInput('decimal')) > 0) { - - } - - pHa = parseFloat($("#wb_ph").jqxNumberInput('decimal')); - console.log("Adjusted water mash pH: "+pHa); - // Then calculate the new pH with added acids - if (parseFloat($("#wa_acid").jqxNumberInput('decimal')) > 0) { - acid = parseFloat($("#wa_acid").jqxNumberInput('decimal')); - if (parseFloat($("#wa_acid_perc").jqxNumberInput('decimal')) == 0) - $("#wa_acid_perc").val(AcidPrc); - console.log("screen value: "+acid); - acid = acid / AcidPrc * (parseFloat($("#wa_acid_perc").jqxNumberInput('decimal')) / 100); // ml - console.log("acid ml: "+acid); - acid = acid * AcidSG // ml - console.log("acid ml: "+acid); - acid = acid / MolWt; // mg - console.log("acid mg: "+acid); - var Acidmg = acid; - - frac = CalcFrac(pHa, pK1, pK2, pK3); - protonDeficit = acid * frac; + if ((AT == 'Zwavelzuur') && (liters > 0)) { + RA = parseFloat($("#wa_caso4").jqxNumberInput('decimal')) * MMSO4 / MMCaSO4 + + parseFloat($("#wa_mgso4").jqxNumberInput('decimal')) * MMSO4 / MMMgSO4 + + Acidmg / 1000 * MMSO4 / (MMSO4 + 2); + RA = 1000 * RA / liters; + sulfate = wg_sulfate + RA; // Not add to sulfate?? + } else if ((AT == 'Zoutzuur') && (liters > 0)) { + RA = parseFloat($("#wa_cacl2").jqxNumberInput('decimal')) * MMCl / MMCaCl2 + + parseFloat($("#wa_nacl").jqxNumberInput('decimal')) * MMCl / MMNaCl + + Acidmg / 1000 * MMCl / (MMCL + 1); + RA = 1000 * RA / liters; + chloride = wg_chloride + RA; + } - deltapH = 0.001; - deltapd = 0.1; - pd = ProtonDeficit(pHa); - n = 0; - console.log("n: "+n+" pd: "+pd+" protonDeficit: "+protonDeficit+" frac: "+frac+" pHa: "+pHa); - - while (((pd < (protonDeficit - deltapd)) || (pd > (protonDeficit + deltapd))) && (n < 1000)) { - n++; - if (pd < (protonDeficit-deltapd)) - pHa = pHa - deltapH; - else if (pd > (protonDeficit+deltapd)) - pHa = pHa + deltapH; - frac = CalcFrac(pHa, pK1, pK2, pK3); - protonDeficit = acid * frac; - pd = ProtonDeficit(pHa); - console.log("n: "+n+" pd: "+pd+" protonDeficit: "+protonDeficit+" frac: "+frac+" pHa: "+pHa); - } - console.log("n: "+n+" pd: "+pd+" protonDeficit: "+protonDeficit+" frac: "+frac+" pHa: "+pHa); - } - } - total_alkalinity -= 50 / 61 * protonDeficit * frac / liters; - MashpH(); -*/ $('#tgt_bu').val(Math.round(GetBUGU() * 100) / 100); - $('#tgt_cl_so4').val(Math.round(GetOptClSO4ratio() * 10) / 10); + $('#tgt_cl_so4').val(Math.round(GetOptClSO4ratio() * 10) / 10); // Show real value too $('#wb_calcium').val(Math.round(calcium * 10) / 10); $('#wb_magnesium').val(Math.round(magnesium * 10) / 10);