1006 } |
1006 } |
1007 } |
1007 } |
1008 } |
1008 } |
1009 |
1009 |
1010 function setRangeIndicator(ion, rangeCode) { |
1010 function setRangeIndicator(ion, rangeCode) { |
1011 if (rangeCode == "laag") |
1011 if ((rangeCode == "laag") || (rangeCode == "hoog")) |
1012 $("#wr_"+ion).html("<img src='images/dialog-error.png'><span style='vertical-align: top; font-size: 10px; font-style: italic;'>"+rangeCode + "</span>"); |
1012 $("#wr_"+ion).html("<img src='images/dialog-error.png'><span style='vertical-align: top; font-size: 10px; font-style: italic;'>"+rangeCode + "</span>"); |
1013 else if (rangeCode == "hoog") |
|
1014 $("#wr_"+ion).html("<img src='images/dialog-error.png'><span style='vertical-align: top; font-size: 10px; font-style: italic;'>"+rangeCode+"</span>"); |
|
1015 else |
1013 else |
1016 $("#wr_"+ion).html("<img src='images/dialog-ok-apply.png'>"); |
1014 $("#wr_"+ion).html("<img src='images/dialog-ok-apply.png'>"); |
1017 } |
1015 } |
1018 |
1016 |
1019 function mix(v1, v2, c1, c2) { |
1017 function mix(v1, v2, c1, c2) { |
1589 } else { |
1587 } else { |
1590 dataRecord.sparge_source = 0; |
1588 dataRecord.sparge_source = 0; |
1591 $("#sparge_source").val(0); |
1589 $("#sparge_source").val(0); |
1592 } |
1590 } |
1593 } |
1591 } |
1594 |
1592 //console.log("calcSparge() target pH: "+TargetpH+" Source: "+Source_pH+" alkalinity: "+Source_alkalinity); |
1595 console.log("calcSparge() target pH: "+TargetpH+" Source: "+Source_pH+" alkalinity: "+Source_alkalinity); |
|
1596 |
1593 |
1597 // Step 1: Compute the mole fractions of carbonic (f1o), bicarbonate (f2o) and carbonate(f3o) at the water pH |
1594 // Step 1: Compute the mole fractions of carbonic (f1o), bicarbonate (f2o) and carbonate(f3o) at the water pH |
1598 var r1 = Math.pow(10, Source_pH - 6.38); |
1595 var r1 = Math.pow(10, Source_pH - 6.38); |
1599 var r2 = Math.pow(10, Source_pH - 10.33); |
1596 var r2 = Math.pow(10, Source_pH - 10.373); |
1600 var d = 1 + r1 + r1*r2; |
1597 var d = 1 + r1 + r1*r2; |
1601 var f1 = 1/d; |
1598 var f1 = 1/d; |
1602 var f2 = r1/d; |
1599 var f2 = r1/d; |
1603 var f3 = r1 * r2 / d; |
1600 var f3 = r1 * r2 / d; |
1604 |
1601 |
1605 //Step 2. Compute the mole fractions at pH = 4.3 (the pH which defines alkalinity) |
1602 //Step 2. Compute the mole fractions at pH = 4.3 (the pH which defines alkalinity) |
1606 var r143 = Math.pow(10, 4.3 - 6.38); |
1603 var r143 = Math.pow(10, 4.3 - 6.38); |
1607 var r243 = Math.pow(10, 4.3 - 10.33); |
1604 var r243 = Math.pow(10, 4.3 - 10.373); |
1608 var d43 = 1 + r143 + r143*r243; |
1605 var d43 = 1 + r143 + r143*r243; |
1609 var f143 = 1/d43; |
1606 var f143 = 1/d43; |
1610 var f243 = r143 / d43; |
1607 var f243 = r143 / d43; |
1611 var f343 = r143 * r243 / d43; |
1608 var f343 = r143 * r243 / d43; |
1612 |
1609 |
1613 //Step 3. Convert the sample alkalinity to milliequivalents/L |
1610 //Step 3. Convert the water alkalinity to milliequivalents/L |
1614 var alkalinity = Source_alkalinity / 50; |
1611 var alkalinity = Source_alkalinity / 50; |
|
1612 |
1615 //Step 4. Solve |
1613 //Step 4. Solve |
1616 alkalinity = alkalinity / ((f143-f1)+(f3-f343)); |
1614 var Ct = (alkalinity - 1000 * (Math.pow(10, -4.3) - Math.pow(10, -Source_pH))) / ((f143-f1)+(f3-f343)); |
1617 |
1615 |
1618 //Step 5. Compute mole fractions at desired pH |
1616 //Step 5. Compute mole fractions at desired pH |
1619 var r1g = Math.pow(10, TargetpH - 6.38); |
1617 var r1g = Math.pow(10, TargetpH - 6.38); |
1620 var r2g = Math.pow(10, TargetpH - 10.33); |
1618 var r2g = Math.pow(10, TargetpH - 10.373); |
1621 var dg = 1 + r1g + r1g*r2g; |
1619 var dg = 1 + r1g + r1g*r2g; |
1622 var f1g = 1/dg; |
1620 var f1g = 1/dg; |
1623 var f2g = r1g / dg; |
1621 var f2g = r1g / dg; |
1624 var f3g = r1g * r2g / dg; |
1622 var f3g = r1g * r2g / dg; |
1625 |
1623 |
1626 //Step 6. Use these to compute the milliequivalents acid required per liter (mEq/L) |
1624 //Step 6. Use these to compute the milliequivalents acid required per liter (mEq/L) |
1627 var Acid = alkalinity * ((f1g-f1)+(f3-f3g)) + Math.pow(10, -TargetpH) - Math.pow(10, -Source_pH); //mEq/l |
1625 var Acid = Ct * ((f1g-f1)+(f3-f3g)) + Math.pow(10, -TargetpH) - Math.pow(10, -Source_pH); //mEq/l |
|
1626 Acid += 0.01; // Add acid that would be required for distilled water. |
1628 if (dataRecord.sparge_acid_type < 0 || dataRecord.sparge_acid_type > 3) { |
1627 if (dataRecord.sparge_acid_type < 0 || dataRecord.sparge_acid_type > 3) { |
1629 dataRecord.sparge_acid_type = 0; |
1628 dataRecord.sparge_acid_type = 0; |
1630 $("#sparge_acid_type").val(0); |
1629 $("#sparge_acid_type").val(0); |
1631 } |
1630 } |
|
1631 |
|
1632 //Step 8. Get the acid data. |
1632 var AT = dataRecord.sparge_acid_type; |
1633 var AT = dataRecord.sparge_acid_type; |
1633 var result = GetAcidSpecs(AT); |
1634 var result = GetAcidSpecs(AT); |
1634 var pK1 = result.pK1; |
1635 var pK1 = result.pK1; |
1635 var pK2 = result.pK2; |
1636 var pK2 = result.pK2; |
1636 var pK3 = result.pK3; |
1637 var pK3 = result.pK3; |