266 $("#miscGrid").jqxGrid('setcellvalue', i, 'm_weight', amount); |
264 $("#miscGrid").jqxGrid('setcellvalue', i, 'm_weight', amount); |
267 $("#miscGrid").jqxGrid('setcellvalue', i, 'm_amount', amount / 1000); |
265 $("#miscGrid").jqxGrid('setcellvalue', i, 'm_amount', amount / 1000); |
268 break; |
266 break; |
269 } |
267 } |
270 } |
268 } |
271 console.log("set something, found: "+found); |
269 // console.log("set something, found: "+found); |
272 if (! found) { |
270 if (! found) { |
273 // console.log("need to add this misc"); |
271 // console.log("need to add this misc"); |
274 var miscs = new $.jqx.dataAdapter(miscInvSource, { |
272 var miscs = new $.jqx.dataAdapter(miscInvSource, { |
275 loadComplete: function () { |
273 loadComplete: function () { |
276 var records = miscs.records; |
274 var records = miscs.records; |
487 sulfate = dataRecord.w1_sulfate; |
485 sulfate = dataRecord.w1_sulfate; |
488 total_alkalinity = dataRecord.w1_total_alkalinity; |
486 total_alkalinity = dataRecord.w1_total_alkalinity; |
489 ph = dataRecord.w1_ph; |
487 ph = dataRecord.w1_ph; |
490 } |
488 } |
491 $('#wg_amount').val(liters); |
489 $('#wg_amount').val(liters); |
|
490 var wg_calcium = calcium; |
492 $('#wg_calcium').val(Math.round(calcium * 10) / 10); |
491 $('#wg_calcium').val(Math.round(calcium * 10) / 10); |
|
492 var wg_magnesium = magnesium; |
493 $('#wg_magnesium').val(Math.round(magnesium * 10) / 10); |
493 $('#wg_magnesium').val(Math.round(magnesium * 10) / 10); |
|
494 var wg_sodium = sodium; |
494 $('#wg_sodium').val(Math.round(sodium * 10) / 10); |
495 $('#wg_sodium').val(Math.round(sodium * 10) / 10); |
|
496 var wg_total_alkalinity = total_alkalinity; |
495 $('#wg_total_alkalinity').val(Math.round(total_alkalinity * 10) / 10); |
497 $('#wg_total_alkalinity').val(Math.round(total_alkalinity * 10) / 10); |
|
498 var wg_chloride = chloride; |
496 $('#wg_chloride').val(Math.round(chloride * 10) / 10); |
499 $('#wg_chloride').val(Math.round(chloride * 10) / 10); |
|
500 var wg_sulfate = sulfate; |
497 $('#wg_sulfate').val(Math.round(sulfate * 10) / 10); |
501 $('#wg_sulfate').val(Math.round(sulfate * 10) / 10); |
498 // Note: brouwhulp has the malts included here in the result. |
502 // Note: brouwhulp has the malts included here in the result. |
|
503 var wg_ph = ph; |
499 $('#wg_ph').val(Math.round(ph * 10) / 10); |
504 $('#wg_ph').val(Math.round(ph * 10) / 10); |
500 $('#wb_ph').val(Math.round(ph * 10) / 10); |
505 // $('#wb_ph').val(Math.round(ph * 10) / 10); |
|
506 $('#wb_ph').val(Math.round(MashpH() * 10) / 10); |
501 bicarbonate = total_alkalinity * 1.22; |
507 bicarbonate = total_alkalinity * 1.22; |
|
508 var wg_bicarbonate = bicarbonate; |
502 |
509 |
503 // Noot: de volgende berekeningen geven bijna gelijke resultaten in Brun'water. |
510 // Noot: de volgende berekeningen geven bijna gelijke resultaten in Brun'water. |
504 // Calculate Ca |
511 // Calculate Ca |
505 RA = parseFloat($("#wa_cacl2").jqxNumberInput('decimal')) * MMCa / MMCaCl2 + |
512 RA = parseFloat($("#wa_cacl2").jqxNumberInput('decimal')) * MMCa / MMCaCl2 + |
506 parseFloat($("#wa_caso4").jqxNumberInput('decimal')) * MMCa / MMCaSO4; |
513 parseFloat($("#wa_caso4").jqxNumberInput('decimal')) * MMCa / MMCaSO4; |
542 protonDeficit = ProtonDeficit(TpH); |
558 protonDeficit = ProtonDeficit(TpH); |
543 console.log("calc_acid tgt: "+TpH+" protonDeficit: "+protonDeficit); |
559 console.log("calc_acid tgt: "+TpH+" protonDeficit: "+protonDeficit); |
544 if (protonDeficit > 0) { // Add acid |
560 if (protonDeficit > 0) { // Add acid |
545 $("#wa_base").val(0); |
561 $("#wa_base").val(0); |
546 setWaterAgent(last_base, 0); |
562 setWaterAgent(last_base, 0); |
547 if ($("#wa_acid_name").val() == "") { |
|
548 $("#wa_acid_name").val('Melkzuur'); |
|
549 last_acid = 'Melkzuur'; |
|
550 } |
|
551 frac = CalcFrac(TpH, pK1, pK2, pK3); |
563 frac = CalcFrac(TpH, pK1, pK2, pK3); |
552 Acid = protonDeficit / frac; |
564 Acid = protonDeficit / frac; |
553 console.log("Required moles: "+Acid); |
565 // console.log("Required moles: "+Acid); |
554 Acid *= MolWt; // mg |
566 Acid *= MolWt; // mg |
555 // Acidmg = Acid; |
567 Acidmg = Acid; |
556 // console.log("Required mg: "+Acidmg); |
568 // console.log("Required mg: "+Acidmg); |
557 Acid = Acid / AcidSG; // ml |
569 Acid = Acid / AcidSG; // ml |
558 |
570 |
559 if (parseFloat($("#wa_acid_perc").jqxNumberInput('decimal')) == 0) |
571 if (parseFloat($("#wa_acid_perc").jqxNumberInput('decimal')) == 0) |
560 $("#wa_acid_perc").val(AcidPrc); |
572 $("#wa_acid_perc").val(AcidPrc); |
566 bicarbonate = bicarbonate - protonDeficit * frac / liters; |
578 bicarbonate = bicarbonate - protonDeficit * frac / liters; |
567 total_alkalinity = bicarbonate * 50 / 61; |
579 total_alkalinity = bicarbonate * 50 / 61; |
568 } else if (protonDeficit < 0) { //Add base |
580 } else if (protonDeficit < 0) { //Add base |
569 $("#wa_acid").val(0); |
581 $("#wa_acid").val(0); |
570 setWaterAgent(last_acid, 0); |
582 setWaterAgent(last_acid, 0); |
571 if ($("#wa_base_name").val() == "") { |
|
572 $("#wa_base_name").val('NaHCO3'); |
|
573 last_base = 'NaHCO3'; |
|
574 } |
|
575 r1d = Math.pow(10, (TpH - 6.38)); |
583 r1d = Math.pow(10, (TpH - 6.38)); |
576 r2d = Math.pow(10, (TpH - 10.38)); |
584 r2d = Math.pow(10, (TpH - 10.38)); |
577 f1d = 1 / (1 + r1d + r1d * r2d); |
585 f1d = 1 / (1 + r1d + r1d * r2d); |
578 f2d = f1d * r1d; |
586 f2d = f1d * r1d; |
579 f3d = f2d * r2d; |
587 f3d = f2d * r2d; |
585 if (liters > 0) { |
593 if (liters > 0) { |
586 // Na |
594 // Na |
587 RA = parseFloat($("#wa_nacl").jqxNumberInput('decimal')) * MMNa / MMNaCl + |
595 RA = parseFloat($("#wa_nacl").jqxNumberInput('decimal')) * MMNa / MMNaCl + |
588 parseFloat($("#wa_base").jqxNumberInput('decimal')) * MMNa / MMNaHCO3; |
596 parseFloat($("#wa_base").jqxNumberInput('decimal')) * MMNa / MMNaHCO3; |
589 RA = 1000 * RA / liters; |
597 RA = 1000 * RA / liters; |
590 sodium = parseFloat($('#wg_sodium').jqxNumberInput('decimal')) + RA; |
598 sodium = wg_sodium + RA; |
591 // HCO3 |
599 // HCO3 |
592 RA = parseFloat($("#wa_base").jqxNumberInput('decimal')) * MMHCO3 / MMNaHCO3; |
600 RA = parseFloat($("#wa_base").jqxNumberInput('decimal')) * MMHCO3 / MMNaHCO3; |
593 RA = 1000 * RA / liters; |
601 RA = 1000 * RA / liters; |
594 bicarbonate = (parseFloat($('#wg_total_alkalinity').jqxNumberInput('decimal')) * 1.22) + RA; |
602 bicarbonate = wg_bicarbonate + RA; |
595 total_alkalinity = bicarbonate * 50 / 61; |
603 total_alkalinity = bicarbonate * 50 / 61; |
596 } |
604 } |
597 break; |
605 break; |
598 case 'Na2CO3': base = -protonDeficit / (2 * f1d + f2d); //mmol totaal |
606 case 'Na2CO3': base = -protonDeficit / (2 * f1d + f2d); //mmol totaal |
599 base = base * MMNa2CO3/1000; //gram |
607 base = base * MMNa2CO3/1000; //gram |
601 setWaterAgent(BT, Math.round(base * 100) / 100); |
609 setWaterAgent(BT, Math.round(base * 100) / 100); |
602 if (liters > 0) { |
610 if (liters > 0) { |
603 RA = parseFloat($("#wa_nacl").jqxNumberInput('decimal')) * MMNa / MMNaCl + |
611 RA = parseFloat($("#wa_nacl").jqxNumberInput('decimal')) * MMNa / MMNaCl + |
604 parseFloat($("#wa_base").jqxNumberInput('decimal')) * 2 * MMNa / MMNa2CO3; |
612 parseFloat($("#wa_base").jqxNumberInput('decimal')) * 2 * MMNa / MMNa2CO3; |
605 RA = 1000 * RA / liters; |
613 RA = 1000 * RA / liters; |
606 sodium = parseFloat($('#wg_sodium').jqxNumberInput('decimal')) + RA; |
614 sodium = wg_sodium + RA; |
607 // HCO3 |
615 // HCO3 |
608 RA = parseFloat($("#wa_base").jqxNumberInput('decimal')) * MMHCO3 / MMNa2CO3; |
616 RA = parseFloat($("#wa_base").jqxNumberInput('decimal')) * MMHCO3 / MMNa2CO3; |
609 RA = 1000 * RA / liters; |
617 RA = 1000 * RA / liters; |
610 bicarbonate = (parseFloat($('#wg_total_alkalinity').jqxNumberInput('decimal')) * 1.22) + RA; |
618 bicarbonate = wg_bicarbonate + RA; |
611 total_alkalinity = bicarbonate * 50 / 61; |
619 total_alkalinity = bicarbonate * 50 / 61; |
612 } |
620 } |
613 break; |
621 break; |
614 case 'CaCO3': base = -protonDeficit * (f1d - f3d); //mmol totaal |
622 case 'CaCO3': base = -protonDeficit * (f1d - f3d); //mmol totaal |
615 base = base * MMCaCO3/1000; //gram |
623 base = base * MMCaCO3/1000; //gram |
619 setWaterAgent(BT, Math.round(base * 100) / 100); |
627 setWaterAgent(BT, Math.round(base * 100) / 100); |
620 if (liters > 0) { |
628 if (liters > 0) { |
621 //Bicarbonate |
629 //Bicarbonate |
622 RA = parseFloat($("#wa_base").jqxNumberInput('decimal')) / 3 * MMHCO3 / MMCaCO3; |
630 RA = parseFloat($("#wa_base").jqxNumberInput('decimal')) / 3 * MMHCO3 / MMCaCO3; |
623 RA = 1000 * RA / liters; |
631 RA = 1000 * RA / liters; |
624 bicarbonate = (parseFloat($('#wg_total_alkalinity').jqxNumberInput('decimal')) * 1.22) + RA; |
632 bicarbonate = wg_bicarbonate + RA; |
625 total_alkalinity = bicarbonate * 50 / 61; |
633 total_alkalinity = bicarbonate * 50 / 61; |
626 //Ca precipitates out as Ca10(PO4)6(OH)2 |
634 //Ca precipitates out as Ca10(PO4)6(OH)2 |
627 RA = parseFloat($("#wa_cacl2").jqxNumberInput('decimal')) * MMCa / MMCaCl2 + |
635 RA = parseFloat($("#wa_cacl2").jqxNumberInput('decimal')) * MMCa / MMCaCl2 + |
628 parseFloat($("#wa_caso4").jqxNumberInput('decimal')) * MMCa / MMCaSO4 + |
636 parseFloat($("#wa_caso4").jqxNumberInput('decimal')) * MMCa / MMCaSO4 + |
629 parseFloat($("#wa_base").jqxNumberInput('decimal')) * MMCa / MMCaCO3; |
637 parseFloat($("#wa_base").jqxNumberInput('decimal')) * MMCa / MMCaCO3; |
630 RA = 1000 * RA / liters; |
638 RA = 1000 * RA / liters; |
631 calcium = parseFloat($('#wg_calcium').jqxNumberInput('decimal')) + RA; |
639 calcium = wg_calcium + RA; |
632 } |
640 } |
633 break; |
641 break; |
634 case 'Ca(OH)2': base = -protonDeficit / 19.3; // g |
642 case 'Ca(OH)2': base = -protonDeficit / 19.3; // g |
635 $("#wa_base").val(Math.round(base * 100) / 100); |
643 $("#wa_base").val(Math.round(base * 100) / 100); |
636 setWaterAgent(BT, Math.round(base * 100) / 100); |
644 setWaterAgent(BT, Math.round(base * 100) / 100); |
637 if (liters > 0) { |
645 if (liters > 0) { |
638 // Bicarbonate |
646 // Bicarbonate |
639 RA = -protonDeficit / liters; |
647 RA = -protonDeficit / liters; |
640 total_alkalinity = parseFloat($('#wg_total_alkalinity').jqxNumberInput('decimal')) + RA; |
648 total_alkalinity = wg_total_alkalinity + RA; |
641 bicarbonate = total_alkalinity * 61 / 50; |
649 bicarbonate = total_alkalinity * 61 / 50; |
642 // Calcium |
650 // Calcium |
643 RA = parseFloat($("#wa_cacl2").jqxNumberInput('decimal')) * MMCa / MMCaCl2 + |
651 RA = parseFloat($("#wa_cacl2").jqxNumberInput('decimal')) * MMCa / MMCaCl2 + |
644 parseFloat($("#wa_caso4").jqxNumberInput('decimal')) * MMCa / MMCaSO4 + |
652 parseFloat($("#wa_caso4").jqxNumberInput('decimal')) * MMCa / MMCaSO4 + |
645 parseFloat($("#wa_base").jqxNumberInput('decimal')) * MMCa / MMCaOH2; |
653 parseFloat($("#wa_base").jqxNumberInput('decimal')) * MMCa / MMCaOH2; |
646 RA = 1000 * RA / liters; |
654 RA = 1000 * RA / liters; |
647 calcium = parseFloat($('#wg_calcium').jqxNumberInput('decimal')) + RA; |
655 calcium = wg_calcium + RA; |
648 } |
656 } |
649 break; |
657 break; |
650 } |
658 } |
651 } |
659 } |
652 ph = TpH; |
660 ph = TpH; |
657 if (parseFloat($("#wa_base").jqxNumberInput('decimal')) > 0) { |
665 if (parseFloat($("#wa_base").jqxNumberInput('decimal')) > 0) { |
658 |
666 |
659 } |
667 } |
660 |
668 |
661 TpH = parseFloat(dataRecord.mash_ph); |
669 TpH = parseFloat(dataRecord.mash_ph); |
662 pHa = parseFloat($('#wg_ph').jqxNumberInput('decimal')); |
670 // pHa = MashpH(); |
663 //pHa = parseFloat(dataRecord.mash_ph); |
671 pHa = parseFloat($("#wb_ph").jqxNumberInput('decimal')); |
664 // Then calculate the new pH with added acids |
672 // Then calculate the new pH with added acids |
665 if (parseFloat($("#wa_acid").jqxNumberInput('decimal')) > 0) { |
673 if (parseFloat($("#wa_acid").jqxNumberInput('decimal')) > 0) { |
666 console.log("TpH: "+TpH+" water: "+pHa); |
674 console.log("TpH: "+TpH+" water: "+pHa); |
667 Acid = parseFloat($("#wa_acid").jqxNumberInput('decimal')); |
675 Acid = parseFloat($("#wa_acid").jqxNumberInput('decimal')); |
668 if (parseFloat($("#wa_acid_perc").jqxNumberInput('decimal')) == 0) |
676 if (parseFloat($("#wa_acid_perc").jqxNumberInput('decimal')) == 0) |
669 $("#wa_acid_perc").val(AcidPrc); |
677 $("#wa_acid_perc").val(AcidPrc); |
670 Acid = Acid / AcidPrc * (parseFloat($("#wa_acid_perc").jqxNumberInput('decimal')) / 100); // ml |
678 Acid = Acid / AcidPrc * (parseFloat($("#wa_acid_perc").jqxNumberInput('decimal')) / 100); // ml |
671 Acid = Acid * AcidSG; // ml |
679 Acid = Acid * AcidSG; // ml |
672 Acid = Acid / MolWt; // mg |
680 Acid = Acid / MolWt; // mg |
|
681 Acidmg = Acid; |
673 |
682 |
674 //find the pH where the protondeficit = protondeficit by the acid |
683 //find the pH where the protondeficit = protondeficit by the acid |
675 frac = CalcFrac(pHa, pK1, pK2, pK3); |
684 frac = CalcFrac(pHa, pK1, pK2, pK3); |
676 protonDeficit = Acid * frac; |
685 protonDeficit = Acid * frac; |
677 |
686 |
678 deltapH = 0.01; |
687 deltapH = 0.001; |
679 deltapd = 0.1; |
688 deltapd = 0.1; |
680 pd = ProtonDeficit(TpH); |
689 pd = ProtonDeficit(TpH); |
681 n = 0; |
690 n = 0; |
682 console.log("n: "+n+" pd: "+pd+" protonDeficit: "+protonDeficit+" frac: "+frac+" pHa: "+pHa); |
691 console.log("n: "+n+" pd: "+pd+" protonDeficit: "+protonDeficit+" frac: "+frac+" pHa: "+pHa); |
683 |
692 |
684 while (((pd < (protonDeficit - deltapd)) || (pd > (protonDeficit + deltapd))) && (n < 1000)) { |
693 while (((pd < (protonDeficit - deltapd)) || (pd > (protonDeficit + deltapd))) && (n < 2000)) { |
685 n++; |
694 n++; |
686 if (pd < (protonDeficit-deltapd)) |
695 if (pd < (protonDeficit-deltapd)) |
687 pHa = pHa - deltapH; |
696 pHa = pHa - deltapH; |
688 else if (pd > (protonDeficit+deltapd)) |
697 else if (pd > (protonDeficit+deltapd)) |
689 pHa = pHa + deltapH; |
698 pHa = pHa + deltapH; |
691 protonDeficit = Acid * frac; |
700 protonDeficit = Acid * frac; |
692 pd = ProtonDeficit(pHa); |
701 pd = ProtonDeficit(pHa); |
693 // console.log("n: "+n+" pd: "+pd+" protonDeficit: "+protonDeficit+" frac: "+frac+" pHa: "+pHa); |
702 // console.log("n: "+n+" pd: "+pd+" protonDeficit: "+protonDeficit+" frac: "+frac+" pHa: "+pHa); |
694 } |
703 } |
695 console.log("n: "+n+" pd: "+pd+" protonDeficit: "+protonDeficit+" frac: "+frac+" pHa: "+pHa); |
704 console.log("n: "+n+" pd: "+pd+" protonDeficit: "+protonDeficit+" frac: "+frac+" pHa: "+pHa); |
696 |
705 RA = wg_bicarbonate - protonDeficit * frac / liters; |
|
706 bicarbonate = RA; |
|
707 total_alkalinity = RA * 50 / 61; |
|
708 ph = pHa; |
|
709 $('#wb_ph').val(Math.round(ph * 10) / 10); |
697 } |
710 } |
698 } |
711 } |
699 /* |
712 |
700 TpH = parseFloat(dataRecord.mash_ph); |
713 if ((AT == 'Zwavelzuur') && (liters > 0)) { |
701 if (TpH < 5.0 || TpH > 6.0) { |
714 RA = parseFloat($("#wa_caso4").jqxNumberInput('decimal')) * MMSO4 / MMCaSO4 + |
702 TpH = 5.4; |
715 parseFloat($("#wa_mgso4").jqxNumberInput('decimal')) * MMSO4 / MMMgSO4 + |
703 dataRecord.mash_ph = 5.4; |
716 Acidmg / 1000 * MMSO4 / (MMSO4 + 2); |
704 $("#mash_ph").val(5.4); |
717 RA = 1000 * RA / liters; |
705 } |
718 sulfate = wg_sulfate + RA; // Not add to sulfate?? |
706 var acid_amount = parseFloat($("#wa_acid").jqxNumberInput('decimal')); |
719 } else if ((AT == 'Zoutzuur') && (liters > 0)) { |
707 var acid_perc = parseFloat($("#wa_acid_perc").jqxNumberInput('decimal')); |
720 RA = parseFloat($("#wa_cacl2").jqxNumberInput('decimal')) * MMCl / MMCaCl2 + |
708 |
721 parseFloat($("#wa_nacl").jqxNumberInput('decimal')) * MMCl / MMNaCl + |
709 switch ($("#wa_acid_name").val()) { |
722 Acidmg / 1000 * MMCl / (MMCL + 1); |
710 case 'Melkzuur': pK1 = 3.08; |
723 RA = 1000 * RA / liters; |
711 pK2 = 20; |
724 chloride = wg_chloride + RA; |
712 pK3 = 20; |
725 } |
713 MolWt = 90.08; |
726 |
714 AcidSG = 1214; //@88% |
|
715 AcidPrc = 0.88; |
|
716 frac = CalcFrac(TpH, pK1, pK2, pK3); |
|
717 acid += acid_amount * acid_perc / 100 * AcidSG / MolWt * frac / liters; //mEq/l |
|
718 break; |
|
719 |
|
720 case 'Zoutzuur': pK1 = -10; |
|
721 pK2 = 20; |
|
722 pK3 = 20; |
|
723 MolWt = 36.46; |
|
724 AcidSG = 1142; //@28% |
|
725 AcidPrc = 0.28; |
|
726 frac = CalcFrac(TpH, pK1, pK2, pK3); |
|
727 Acidmg = acid_amount * acid_perc / 100 * AcidSG / liters; |
|
728 acid += Acidmg / MolWt * frac; //mEq/l |
|
729 chloride += Acidmg / 1000 * MMCl / (MMCl + 1); |
|
730 break; |
|
731 |
|
732 case 'Fosforzuur': pK1 = 2.12; |
|
733 pK2 = 7.20; |
|
734 pK3 = 12.44; |
|
735 MolWt = 98.00; |
|
736 AcidSG = 1170; //@25% |
|
737 AcidPrc = 0.25; |
|
738 frac = CalcFrac(TpH, pK1, pK2, pK3); |
|
739 Acidmg = acid_amount * acid_perc / 100 * AcidSG / liters; |
|
740 acid += Acidmg / MolWt * frac; //mEq/l |
|
741 break; |
|
742 |
|
743 case 'Zwavelzuur': pK1 = -10; |
|
744 pK2 = 1.92; |
|
745 pK3 = 20; |
|
746 MolWt = 98.07; |
|
747 AcidSG = 1700; //@93% |
|
748 AcidPrc = 0.93; |
|
749 frac = CalcFrac(TpH, pK1, pK2, pK3); |
|
750 Acidmg = acid_amount * acid_perc / 100 * AcidSG / liters; |
|
751 acid += Acidmg / MolWt * frac; //mEq/l |
|
752 sulfate += Acidmg / 1000 * MMSO4 / (MMSO4 + 2); |
|
753 break; |
|
754 } |
|
755 |
|
756 if (dataRecord.calc_acid) { |
|
757 } else if (liters > 0) { // not calc_acid |
|
758 // First add base salts |
|
759 if (parseFloat($("#wa_base").jqxNumberInput('decimal')) > 0) { |
|
760 |
|
761 } |
|
762 |
|
763 pHa = parseFloat($("#wb_ph").jqxNumberInput('decimal')); |
|
764 console.log("Adjusted water mash pH: "+pHa); |
|
765 // Then calculate the new pH with added acids |
|
766 if (parseFloat($("#wa_acid").jqxNumberInput('decimal')) > 0) { |
|
767 acid = parseFloat($("#wa_acid").jqxNumberInput('decimal')); |
|
768 if (parseFloat($("#wa_acid_perc").jqxNumberInput('decimal')) == 0) |
|
769 $("#wa_acid_perc").val(AcidPrc); |
|
770 console.log("screen value: "+acid); |
|
771 acid = acid / AcidPrc * (parseFloat($("#wa_acid_perc").jqxNumberInput('decimal')) / 100); // ml |
|
772 console.log("acid ml: "+acid); |
|
773 acid = acid * AcidSG // ml |
|
774 console.log("acid ml: "+acid); |
|
775 acid = acid / MolWt; // mg |
|
776 console.log("acid mg: "+acid); |
|
777 var Acidmg = acid; |
|
778 |
|
779 frac = CalcFrac(pHa, pK1, pK2, pK3); |
|
780 protonDeficit = acid * frac; |
|
781 |
|
782 deltapH = 0.001; |
|
783 deltapd = 0.1; |
|
784 pd = ProtonDeficit(pHa); |
|
785 n = 0; |
|
786 console.log("n: "+n+" pd: "+pd+" protonDeficit: "+protonDeficit+" frac: "+frac+" pHa: "+pHa); |
|
787 |
|
788 while (((pd < (protonDeficit - deltapd)) || (pd > (protonDeficit + deltapd))) && (n < 1000)) { |
|
789 n++; |
|
790 if (pd < (protonDeficit-deltapd)) |
|
791 pHa = pHa - deltapH; |
|
792 else if (pd > (protonDeficit+deltapd)) |
|
793 pHa = pHa + deltapH; |
|
794 frac = CalcFrac(pHa, pK1, pK2, pK3); |
|
795 protonDeficit = acid * frac; |
|
796 pd = ProtonDeficit(pHa); |
|
797 console.log("n: "+n+" pd: "+pd+" protonDeficit: "+protonDeficit+" frac: "+frac+" pHa: "+pHa); |
|
798 } |
|
799 console.log("n: "+n+" pd: "+pd+" protonDeficit: "+protonDeficit+" frac: "+frac+" pHa: "+pHa); |
|
800 } |
|
801 } |
|
802 total_alkalinity -= 50 / 61 * protonDeficit * frac / liters; |
|
803 MashpH(); |
|
804 */ |
|
805 $('#tgt_bu').val(Math.round(GetBUGU() * 100) / 100); |
727 $('#tgt_bu').val(Math.round(GetBUGU() * 100) / 100); |
806 $('#tgt_cl_so4').val(Math.round(GetOptClSO4ratio() * 10) / 10); |
728 $('#tgt_cl_so4').val(Math.round(GetOptClSO4ratio() * 10) / 10); // Show real value too |
807 |
729 |
808 $('#wb_calcium').val(Math.round(calcium * 10) / 10); |
730 $('#wb_calcium').val(Math.round(calcium * 10) / 10); |
809 $('#wb_magnesium').val(Math.round(magnesium * 10) / 10); |
731 $('#wb_magnesium').val(Math.round(magnesium * 10) / 10); |
810 $('#wb_sodium').val(Math.round(sodium * 10) / 10); |
732 $('#wb_sodium').val(Math.round(sodium * 10) / 10); |
811 $('#wb_sulfate').val(Math.round(sulfate * 10) / 10); |
733 $('#wb_sulfate').val(Math.round(sulfate * 10) / 10); |