www/includes/formulas.php

changeset 147
e6e5d007eb54
parent 103
895829b91057
child 164
0a5abea575a9
equal deleted inserted replaced
146:2a6c00d325b2 147:e6e5d007eb54
641 SO42 := W2.Sulfate.Value / MMSO4; 641 SO42 := W2.Sulfate.Value / MMSO4;
642 Cl1 := W.Sulfate.Value / MMSO4; 642 Cl1 := W.Sulfate.Value / MMSO4;
643 Cl2 := W2.Sulfate.Value / MMSO4; 643 Cl2 := W2.Sulfate.Value / MMSO4;
644 644
645 645
646 procedure MixWater(W1, W2, Wr: TWater);
647
648 function Mix(V1, V2, C1, C2: double): double;
649 begin
650 if (V1 + V2) > 0 then
651 Result := (V1 * C1 + V2 * C2) / (V1 + V2)
652 else
653 Result := 0;
654 end;
655
656 var
657 vol1, vol2: double;
658 phnew: double;
659 begin
660 vol1 := W1.Amount.Value;
661 vol2 := W2.Amount.Value;
662 if (vol1 + vol2) > 0 then
663 begin
664 Wr.Amount.Value := vol1 + vol2;
665 Wr.Calcium.Value := Mix(vol1, vol2, W1.Calcium.Value, W2.Calcium.Value);
666 Wr.Magnesium.Value := Mix(vol1, vol2, W1.Magnesium.Value, W2.Magnesium.Value);
667 Wr.Sodium.Value := Mix(vol1, vol2, W1.Sodium.Value, W2.Sodium.Value);
668 Wr.Bicarbonate.Value := Mix(vol1, vol2, W1.Bicarbonate.Value, W2.Bicarbonate.Value);
669 Wr.Sulfate.Value := Mix(vol1, vol2, W1.Sulfate.Value, W2.Sulfate.Value);
670 Wr.Chloride.Value := Mix(vol1, vol2, W1.Chloride.Value, W2.Chloride.Value);
671 pHnew := -log10((power(10, -W1.pHWater.Value) * vol1 +
672 power(10, -W2.pHWater.Value) * vol2) / (vol1 + vol2));
673 Wr.pHwater.Value := pHnew;
674 end;
675 end;
676
677
678
679
680 procedure TRecipe.CalcWaterBalance; 646 procedure TRecipe.CalcWaterBalance;
681 var 647 var
682 i: integer; 648 i: integer;
683 F: TFermentable; 649 F: TFermentable;
684 begin 650 begin

mercurial