diff -r 83ccc36df675 -r ad28e09e3abd www/js/global.js --- a/www/js/global.js Thu Sep 20 17:50:30 2018 +0200 +++ b/www/js/global.js Fri Sep 21 17:10:41 2018 +0200 @@ -90,3 +90,74 @@ $("#jqxWidget").css('visibility', 'visible'); }); + + +/* + * Berekeningen uit https://www.hobbybrouwen.nl/forum/index.php/topic,6079.msg69464.html#msg69464 + */ +function toIBU_Tinseth(Use, Form, SG, Volume, Amount, Boiltime, Alpha) { + var gravity = parseFloat(SG); + var liters = parseFloat(Volume); + var alpha = parseFloat(Alpha)/100; + var mass = parseFloat(Amount) * 1000; + var time = parseFloat(Boiltime); + var fmoment = 1.0; + var pfactor = 1.0; + + if ((Use == "Dry Hop") || (Use == "Dry hop")) { + fmoment = 0.0; + } else if (Use == "Whirlpool") { + fmoment = 0.0; + } else if (Use == "Mash") { + fmoment = 0.7; // Brouwhulp + } else if ((Use == "First Wort") || (Use == "First wort")) { + fmoment = 1.1; // Brouwhulp, Louis, Ozzie + } else if (Use == "Aroma") { + fmoment = 0.0; + } + + if (Form == "Pellet") { + pfactor = 1.1; + } + + // TODO: sg = (postBoilGravity - 1.0) * batchSize / boilSize; + + /* + * http://realbeer.com/hops/research.html + * + * decimal AA rating * grams hops * 1000 + * mg/l of added alpha acids = ------------------------------------- + * volume of finished beer in liters + * + * Bigness factor = 1.65 * 0.000125^(wort gravity - 1) + * + * 1 - e^(-0.04 * time in mins) + * Boil Time factor = ---------------------------- + * 4.15 + * + * decimal alpha acid utilization = Bigness factor * Boil Time factor + * + * IBUs = decimal alpha acid utilization * mg/l of added alpha acids + */ + var AddedAlphaAcids = (alpha * mass * 1000) / liters; + var Bigness_factor = 1.65 * Math.pow( 0.000125, gravity - 1); + var BoilTime_factor = ((1 - Math.exp(-0.04 * time)) / 4.15); // Glen Tinseth + var utiisation = Bigness_factor * BoilTime_factor; + + console.log(" AddedAlphaAcids:"+AddedAlphaAcids+" Bigness_factor:"+Bigness_factor+" BoilTime_factor:"+BoilTime_factor+" utilisation:"+utiisation); + console.log(" fmoment:"+fmoment+" pfactor:"+pfactor); + + var ibu = (Math.round(utiisation * AddedAlphaAcids * fmoment * pfactor * 10) / 10.0); + return ibu; +} + + + +function toIBU(Use, Form, SG, Volume, Amount, Boiltime, Alpha, Method) { + + console.log("toIBU_Tinseth("+Use+"," + Form + "," + SG + "," + Volume + "," + Amount + "," + Boiltime + "," + Alpha + "," + Method + ")"); + return toIBU_Tinseth(Use, Form, SG, Volume, Amount, Boiltime, Alpha); +} + + +