Fri, 21 Sep 2018 17:10:41 +0200
Added Tinseth IBU calculation.
13 | 1 | /***************************************************************************** |
2 | * Copyright (C) 2014 | |
3 | * | |
4 | * Michiel Broek <mbroek at mbse dot eu> | |
5 | * | |
6 | * This file is part of BrewCloud | |
7 | * | |
8 | * This is free software; you can redistribute it and/or modify it | |
9 | * under the terms of the GNU General Public License as published by the | |
10 | * Free Software Foundation; either version 2, or (at your option) any | |
11 | * later version. | |
12 | * | |
13 | * BrewCloud is distributed in the hope that it will be useful, but | |
14 | * WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
16 | * General Public License for more details. | |
17 | * | |
18 | * You should have received a copy of the GNU General Public License | |
19 | * along with ThermFerm; see the file COPYING. If not, write to the Free | |
20 | * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. | |
21 | *****************************************************************************/ | |
22 | ||
23 | ||
24 | function getLocalization() { | |
25 | var localizationobj = {}; | |
26 | localizationobj.pagerGoToPageString = "Gehe zu:"; | |
27 | localizationobj.pagerShowRowsString = "Zeige Zeile:"; | |
28 | localizationobj.pagerRangeString = " von "; | |
29 | localizationobj.pagerNextButtonString = "voriger"; | |
30 | localizationobj.pagerFirstButtonString = "first"; | |
31 | localizationobj.pagerLastButtonString = "last"; | |
32 | localizationobj.pagerPreviousButtonString = "nächster"; | |
33 | localizationobj.sortAscendingString = "Sortiere aufsteigend"; | |
34 | localizationobj.sortDescendingString = "Sortiere absteigend"; | |
35 | localizationobj.sortRemoveString = "Entferne Sortierung"; | |
36 | localizationobj.firstDay = 1; | |
37 | localizationobj.percentSymbol = "%"; | |
38 | localizationobj.currencySymbol = "€"; | |
39 | localizationobj.currencySymbolPosition = "after"; | |
40 | localizationobj.decimalSeparator = ","; | |
41 | localizationobj.thousandsSeparator = "."; | |
42 | var days = { | |
43 | // full day names | |
44 | names: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"], | |
45 | // abbreviated day names | |
46 | namesAbbr: ["Sonn", "Mon", "Dien", "Mitt", "Donn", "Fre", "Sams"], | |
47 | // shortest day names | |
48 | namesShort: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"] | |
49 | }; | |
50 | localizationobj.days = days; | |
51 | var months = { | |
52 | // full month names (13 months for lunar calendards -- 13th month should be "" if not lunar) | |
53 | names: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember", ""], | |
54 | // abbreviated month names | |
55 | namesAbbr: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dez", ""] | |
56 | }; | |
57 | var patterns = { | |
58 | d: "dd.MM.yyyy", | |
59 | D: "dddd, d. MMMM yyyy", | |
60 | t: "HH:mm", | |
61 | T: "HH:mm:ss", | |
62 | f: "dddd, d. MMMM yyyy HH:mm", | |
63 | F: "dddd, d. MMMM yyyy HH:mm:ss", | |
64 | M: "dd MMMM", | |
65 | Y: "MMMM yyyy" | |
66 | } | |
67 | localizationobj.patterns = patterns; | |
68 | localizationobj.months = months; | |
69 | return localizationobj; | |
70 | } | |
71 | ||
72 | ||
73 | ||
74 | $(document).ready(function () { | |
34 | 75 | $('#aboutWindow').jqxWindow({ |
76 | resizable: true, | |
77 | minWidth: 300, | |
78 | minHeight: 300, | |
79 | theme: theme, | |
80 | autoOpen: false, | |
81 | isModal: true | |
82 | }); | |
83 | $('#aboutWindow').jqxWindow('focus'); | |
84 | ||
13 | 85 | $("#jqxMenu").jqxMenu({ |
86 | width: 1280, | |
87 | height: '30px', | |
88 | theme: theme | |
89 | }); | |
90 | $("#jqxWidget").css('visibility', 'visible'); | |
91 | }); | |
92 | ||
59
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
93 | |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
94 | |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
95 | /* |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
96 | * Berekeningen uit https://www.hobbybrouwen.nl/forum/index.php/topic,6079.msg69464.html#msg69464 |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
97 | */ |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
98 | function toIBU_Tinseth(Use, Form, SG, Volume, Amount, Boiltime, Alpha) { |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
99 | var gravity = parseFloat(SG); |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
100 | var liters = parseFloat(Volume); |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
101 | var alpha = parseFloat(Alpha)/100; |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
102 | var mass = parseFloat(Amount) * 1000; |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
103 | var time = parseFloat(Boiltime); |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
104 | var fmoment = 1.0; |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
105 | var pfactor = 1.0; |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
106 | |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
107 | if ((Use == "Dry Hop") || (Use == "Dry hop")) { |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
108 | fmoment = 0.0; |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
109 | } else if (Use == "Whirlpool") { |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
110 | fmoment = 0.0; |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
111 | } else if (Use == "Mash") { |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
112 | fmoment = 0.7; // Brouwhulp |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
113 | } else if ((Use == "First Wort") || (Use == "First wort")) { |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
114 | fmoment = 1.1; // Brouwhulp, Louis, Ozzie |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
115 | } else if (Use == "Aroma") { |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
116 | fmoment = 0.0; |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
117 | } |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
118 | |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
119 | if (Form == "Pellet") { |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
120 | pfactor = 1.1; |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
121 | } |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
122 | |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
123 | // TODO: sg = (postBoilGravity - 1.0) * batchSize / boilSize; |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
124 | |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
125 | /* |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
126 | * http://realbeer.com/hops/research.html |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
127 | * |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
128 | * decimal AA rating * grams hops * 1000 |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
129 | * mg/l of added alpha acids = ------------------------------------- |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
130 | * volume of finished beer in liters |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
131 | * |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
132 | * Bigness factor = 1.65 * 0.000125^(wort gravity - 1) |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
133 | * |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
134 | * 1 - e^(-0.04 * time in mins) |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
135 | * Boil Time factor = ---------------------------- |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
136 | * 4.15 |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
137 | * |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
138 | * decimal alpha acid utilization = Bigness factor * Boil Time factor |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
139 | * |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
140 | * IBUs = decimal alpha acid utilization * mg/l of added alpha acids |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
141 | */ |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
142 | var AddedAlphaAcids = (alpha * mass * 1000) / liters; |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
143 | var Bigness_factor = 1.65 * Math.pow( 0.000125, gravity - 1); |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
144 | var BoilTime_factor = ((1 - Math.exp(-0.04 * time)) / 4.15); // Glen Tinseth |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
145 | var utiisation = Bigness_factor * BoilTime_factor; |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
146 | |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
147 | console.log(" AddedAlphaAcids:"+AddedAlphaAcids+" Bigness_factor:"+Bigness_factor+" BoilTime_factor:"+BoilTime_factor+" utilisation:"+utiisation); |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
148 | console.log(" fmoment:"+fmoment+" pfactor:"+pfactor); |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
149 | |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
150 | var ibu = (Math.round(utiisation * AddedAlphaAcids * fmoment * pfactor * 10) / 10.0); |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
151 | return ibu; |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
152 | } |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
153 | |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
154 | |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
155 | |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
156 | function toIBU(Use, Form, SG, Volume, Amount, Boiltime, Alpha, Method) { |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
157 | |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
158 | console.log("toIBU_Tinseth("+Use+"," + Form + "," + SG + "," + Volume + "," + Amount + "," + Boiltime + "," + Alpha + "," + Method + ")"); |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
159 | return toIBU_Tinseth(Use, Form, SG, Volume, Amount, Boiltime, Alpha); |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
160 | } |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
161 | |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
162 | |
ad28e09e3abd
Added Tinseth IBU calculation.
Michiel Broek <mbroek@mbse.eu>
parents:
34
diff
changeset
|
163 |