1)
I must inject here that it is my personal opinion that A.J. should not be de-Facto lumping all software other than his quite new proton balance based software into a single (and thus restrictively limiting) category as "gen 1". The range of math models between software of this type is broad, and should not be lumped together as one in quite the way that he is doing. If all gen 1 software was gen 1, then it would all give the same output advice, but the (A.J. defined) gen 1's offer broadly varying output advice, to sometimes a quite high degree.
Let me clarify what I mean by Gen I vs Gen II. Of course Gen I's differ and when the first Gen II spreadsheets get written they will differ too. In the broadest sense Gen I means just what the name suggests - a Gen I spreadsheet/calculator is one that has been prepared up to this point in time.
A Gen I program has one or more of the following characteristics:
1)Algorithm based on a combination of chemistry and empirical observations. If a result doesn't match an observation the algorithm is modified to produce a result that better matches the observation.
2)Tries to treat the problem as one in which the pH is a linear function of malt and water and addition parameters
3)Ignores malt pHDI - attempts to chacterize malt "acidity" based on color or malt type but does not accept malt pHDI or other titration data input.
4)Assumes that the effect of alkalinity on pH is independent of water sample pH
5)Uses bicarbonate as a proxy for alkalinity
6)Ignores the fact that the effect of alkalinity depends on the pH used in determining alkalinity
7)Assumes that the ability of lactic and phosphoric acids to deliver protons and that the ability of bicarbonate/carbonate to absorb them are independent of mash pH.
8)Ignores the alkalinity of the water molecules themselves.
9)Ignores the fact that acid released by the reaction of calcium and magnesium with malt phosphate does not complete in the mash tun but continues in the kettle.
A Gen II program is, broadly, any program that handles each of the above in the following way
1)Algorithm is based on the chemistry alone. Empirical observations are not included. No changes are made to the algorithm if a result does not match an observation. The explanation is found by examination of input malt or water data.
2)Recognizes that the problem is non linear as the chemistry clearly shows. Uses techniques that solve non linear equations.
3)Requires input malt data that accurately reproduces the malts' titration curves including pHDI and 3 buffering coefficients
4)Computes the proton deficit attributable to bicarbonate in the water from reported alkalinity, sample pH and titration end point as dictated by the chemistry.
5)Doesn't even calculate bicarbonate as no knowledge of it is needed. Computes the effects of water as indicated in 4).
6)See 4)
7) Computes the normality of added acids and/or bases based on the target pH as required by the chemistry
8) Computes the proton deficit of the water molecules themselves.
9) Requires an estimate of the portion of the calcium/magnesium/phosphate protons are released in the mash tun.
Note that no mention of malt models is mentioned. A Gen II program is guaranteed to give a good answer if it is fed good malt and water data. If fed bad data it will produce bad answers just as a Gen I program will. The Gen I programs tended to require broad input characterizations of malts such as their color which results in at best fair representation of malts. A Gen II program demands malt titration data as input but as there is not much of that available it will, in many cases, have to be generated from broad characterizations. Feeding Gen II algorithms with malt data deduced from color or malt type is subject to the same difficulties as when this is done in a Gen I program.
There are no Gen II programs out there. What is out there is a whole bunch of Excel functions which make preparing a Gen II based spreadsheet really easy. The user of such a spreadsheet is guaranteed freedom from any of the problems enumerated above but not from the modeling problem. The functions themselves are, as they are intended for use with Excel, written in Microsoft VBA. Each is quite small and simple and a port to any modern (or archaic) programming language should be quite simple. So, in summary, Gen II to me means
1)Computational accuracy
2)Great simplification in spreadsheet preparation