Massively edited:
Further thinking on the profile question: Given that one cannot duplicate the Black Malty profile should it not be replaced with something that one can duplicate? I'd say so but what should it be replaced with? Clearly there was some reason for picking the ion concentrations that were picked (and I assume that bicarbonate was then added to bring about balance) so that it would seem reasonable that the replacement profile should have all the ion concentrations as close to the current ones as possible given that they can be realized with the salts available. Bicarbonate will have to go where it wants to go as sodium bicarbonate is the only source of sodium other than NaCl and using even enough of magnesium chloride and sulfate to not quite reach the magnesium requirement busts both chloride and sulfate. Again, because of the limitations on sulfate and chloride we have to get calcium from lime. In both cases there are, of course, have implications with respect to the alkalinity of the synthesized water.
The following synthesis is based on ignoring the bicarbonate and trying to get the other ions aligned as best we can. Using this approach we can, in fact, get a perfect match to all the other ions but the pH is would be 12.75 (so high that the added lime is only 1/4 dissociated) and the alkalinity 1965! In the synthesis we have limited the alkalinity to 100 and the pH wound up at 10.81
Salt mg/L Synth
CaCl2.0H2O 58.57
NaCl 0.00
MgCl2.6H2O 22.35
CaSO4.2H20 39.56
MgSO4.7H20 21.76
Liters/Liter 0.00
CaCO3 0.00
NaHCO3 74.01
CO2 0.00
HCl 0.00
Ca(OH)2 25.27
Na2CO3.H2O 0.00
Sodium Phosphate 0.00
Potassium Phosphate 0.00
Phosphoric 0.00
Sulfuric 0.00
Weights Errors, % Errors, mg/L Target Realized
1 -26.6200% -15.97 Calcium 60 44.0280
1 -3.6579% -0.18 Magnesium 5 4.8171
0 -66.2733% -1.73 mmol Carbo 2.61200 0.8809
0 -66.2733% -28.31 Bicarbonate 42.71 14.4055
1 5.3674% 1.56 Sulfate 29 30.5565
1 10.2814% 4.22 Chloride 41.00 45.2154
0 0.0000% 0.00 Nitrate 0 0.0000
0 0.0000% 0.00 Nitrite 0 0.0000
1 1.2641% 0.25 Sodium 20.0000 20.2528
0 0.0000% 0.00 Potassium 0.00 0.0000
Wt'd RMSE Wt'd RMSE,% RMSE, mg/L
0.06431653 13.1005% 9.1133 Target pH 10.8121
Wts ≠ 0 RMSE, (Wt ≠ 0) RMSE, (Wt ≠ 0)
5 13.1005% 7.4215
Alk, as CaCO3 Max (Wt ≠ 0) %
100.00 26.6200%
If we allow the alkalinity to rise as high as 200 the pH becomes 11.51 but the peak error, in calcium again, goes down to 16% in magnitude (50.3 mg/L realized out of a desired 60). The salt amounts are similar but as you might expect the amounts of NaHCO3 and Ca(OH)2 both go up. This is, as you might expect, to push the calcium level up but here are the error data on this synthesis:
Weights Errors, % Errors, mg/L Target Realized
1 -16.1063% -9.66 Calcium 60 50.3362
1 -2.2132% -0.11 Magnesium 5 4.8893
0 -65.2151% -1.70 mmol Carbo 2.61200 0.9086
0 -65.2151% -7.10 Bicarbonate 10.89 3.7868
1 3.2476% 0.94 Sulfate 29 29.9418
1 6.2208% 2.55 Chloride 41.00 43.5505
0 0.0000% 0.00 Nitrate 0 0.0000
0 0.0000% 0.00 Nitrite 0 0.0000
1 4.4413% 0.89 Sodium 20.0000 20.8883
0 0.0000% 0.00 Potassium 0.00 0.0000
0 0.0000% 0.00 Fe(II) 0 0.0000
0 0.0000% 0.00 Fe(III) 0 0.0000
0 0.0000% 0.00 Ammon.
Wt'd RMSE Wt'd RMSE,% RMSE, mg/L
0.037808513 8.1643% 3.4517 Target pH 11.5105
Wts ≠ 0 RMSE, (Wt ≠ 0) RMSE, (Wt ≠ 0)
5 8.1643% 4.5074
Alk, as CaCO3 Max (Wt ≠ 0) %
200.00 16.1063%
The sodium is now 4.4% over whereas in the first synthesis it was only 1.3% over. What is happening here is that the bicarbonate is now acting as an acid supplying protons to neutralize hydroxyl ions from lime allowing us to get more calcium that way.
We certainly don't want a synthesis that comes out with alkalinity of 100 to 200 as we will just have to supply acid to neutralize that acidity in order to get this water to mash pH. It makes more sense to add the acid as part of the synthesis and let that acid neutralize the lime. In this next example we synthesize to pH 5.4, which we take as a reasonable mash pH, using lactic acid:
CaCl2.0H2O 33.15
NaCl 17.69
MgCl2.6H2O 26.06
CaSO4.2H20 38.62
MgSO4.7H20 19.11
Liters/Liter 0.00
CaCO3 0.00
NaHCO3 47.65
CO2 0.00
HCl 0.00
Ca(OH)2 72.17
Na2CO3.H2O 0.00
Sodium Lactate 0.00
Potassium Lactate 0.00
Lactic 228.49 mg/l (0.83 mL 88% acid per gal)
Sulfuric 0.00
The ion match is essentially perfect:
Weights Errors, % Errors, mg/L Target Realized
1 -0.0001% 0.00 Calcium 60 60.0000
1 0.0000% 0.00 Magnesium 5 5.0000
0 -78.2849% -2.04 mmol Carbo 2.61200 0.5672
0 -78.2849% -11.79 Bicarbonate 15.06 3.2696
1 0.0000% 0.00 Sulfate 29 29.0000
1 0.0000% 0.00 Chloride 41.00 41.0000
0 0.0000% 0.00 Nitrate 0 0.0000
0 0.0000% 0.00 Nitrite 0 0.0000
1 0.0000% 0.00 Sodium 20.0000 20.0000
0 0.0000% 0.00 Potassium 0.00 0.0000
0 0.0000% 0.00 Fe(II) 0 0.0000
0 0.0000% 0.00 Fe(III) 0 0.0000
0 0.0000% 0.00 Ammon.
Wt'd RMSE Wt'd RMSE,% RMSE, mg/L
1.19049E-07 0.0000% 3.3180 Target pH 5.4000
Wts ≠ 0 RMSE, (Wt ≠ 0) RMSE, (Wt ≠ 0)
5 0.0000% 0.0000
Alk, as CaCO3 Max (Wt ≠ 0) %
4.18 0.0001%
The concern here is with the lactic acid required to make the synthesis:
228.49 mg/l (0.83 mL 88% acid per gal). Someone else here was concerned about 0.5 mL/gal and this is over that. Now it is possible here that an 80/ grist might have a proton surfeit at pH 5.4 which surfeit can be subtracted directly from the acid required for the water.
All this is very interesting (to some) but does not answer the question as to how to fix the Water Profile Adjustment Page. The water profile under study, Black Malty, was apparently put together choosing a set of desired ion concentrations and then adding bicarbonate to balance at pH 8. That makes it balanced at pH 8 but that doesn't mean we can synthesize it at pH 8 as we have seen here. Trying to force a solution at pH 8 without acid gives a poor result:
Weights Errors, % Errors, mg/L Target Realized
1 -55.1780% -33.11 Calcium 60 26.8932
1 -7.5822% -0.38 Magnesium 5 4.6209
0 -88.2266% -2.30 mmol Carbo 2.61200 0.3075
0 -88.2266% -137.82 Bicarbonate 156.21 18.3915
1 11.1250% 3.23 Sulfate 29 32.2263
1 21.3119% 8.74 Chloride 41.00 49.7379
0 0.0000% 0.00 Nitrate 0 0.0000
0 0.0000% 0.00 Nitrite 0 0.0000
1 -16.0318% -3.21 Sodium 20.0000 16.7936
0 0.0000% 0.00 Potassium 0.00 0.0000
0 0.0000% 0.00 Fe(II) 0 0.0000
0 0.0000% 0.00 Fe(III) 0 0.0000
0 0.0000% 0.00 Ammon.
Wt'd RMSE Wt'd RMSE,% RMSE, mg/L
0.165848327 28.0610% 39.4122 Target pH 8.3000
Wts ≠ 0 RMSE, (Wt ≠ 0) RMSE, (Wt ≠ 0)
5 28.0610% 15.4483
Alk, as CaCO3 Max (Wt ≠ 0) %
17.22 55.1780%
as we can't use Ca(OH)2. We had suggested in the original version of this post that this poorly fitting profile be used instead of the given profile because we can synthesize that but this seems, within the perspective of this edited version, a foolish suggestion. The simplest fix is doubtless to add another column to the table in which the amount of acid required to achieve the desired synthesis is stated. It could easily replace the bicarbonate column as that contains replicate information given that alkalinity and pH are known. I am assuming that pH is 8 for all the profiles but this should be clearly stated in big letters somewhere on the page.
ClaudiusB: hope you still like it!