81 lines
3.0 KiB
Org Mode
81 lines
3.0 KiB
Org Mode
https://www.meadmaderight.com/tosna-calculator
|
|
|
|
#+NAME: input-data
|
|
| starting gravity | 1.100 | |
|
|
| batch size | 5 | gallons |
|
|
| sg from nonfermentables | 1.000 | |
|
|
| yeast nutrient req | 0.9 | |
|
|
|
|
#+begin_src C :exports results :includes (list "<stdio.h>" "<stdlib.h>") :var tab=input-data
|
|
char *err_ptr;
|
|
double yeastRequirement = strtod(tab[3][1], &err_ptr); //a.k.a., M
|
|
if (*err_ptr != '\0')
|
|
puts("`tab[3][1]' is not a full number!");
|
|
double sg = strtod(tab[0][1], &err_ptr); //a.k.a., H
|
|
if (*err_ptr != '\0')
|
|
puts("`tab[0][1]' is not a full number!");
|
|
double sugarBreak = (sg - 1.0) / 3.0 + 1.0;
|
|
double batchSize = strtod(tab[1][1], &err_ptr); //a.k.a., B
|
|
if (*err_ptr != '\0')
|
|
puts("`tab[1][1]' is not a full number!");
|
|
double brix = ((182.4601 * sg - 775.6821) * sg + 1262.7794) * sg - 669.5622; //a.k.a., R18
|
|
double digestionRequirement = brix * 10.0 * yeastRequirement / 50 * batchSize;
|
|
double L = strtod(tab[2][1], &err_ptr);
|
|
if (*err_ptr != '\0')
|
|
puts("`tab[1][2]' is not a full number!");
|
|
double fruitGrav = (100.0 / (sg * 1000 - 1000)) * ( L * 1000 - 1000); //a.k.a., R19
|
|
|
|
//printf("brix\t%lf\n", brix);
|
|
//printf("digestionRequirement\t%lf\n", digestionRequirement);
|
|
//printf("fruitGrav\t%lf\n", fruitGrav);
|
|
|
|
double totalRequirement=digestionRequirement;
|
|
if(fruitGrav > 0)
|
|
totalRequirement -= (fruitGrav / 100.0) * digestionRequirement;
|
|
|
|
printf("total nutrient requirement\t%lf\n", totalRequirement);
|
|
printf("each nutrient addition\t%lf\n", totalRequirement/4.0);
|
|
printf("1/3 sugar break\t%lf\n", sugarBreak);
|
|
#+end_src
|
|
|
|
#+RESULTS:
|
|
| total nutrient requirement | 21.396773 |
|
|
| each nutrient addition | 5.349193 |
|
|
| 1/3 sugar break | 1.033333 |
|
|
|
|
do an addition at 24, 48, 72 hours, and then at the 1/3rd sugar break or 1 week (whichever comes first)
|
|
|
|
* yeast ref
|
|
|
|
| Lalvin 71B | 0.75 |
|
|
| Lalvin BA 11 | 1.25 |
|
|
| Lalvin BM45 | 0.9 |
|
|
| Lalvin BM4X4 | 1.25 |
|
|
| Lalvin CLOS | 0.9 |
|
|
| Lalvin CY3079 | 1.25 |
|
|
| Lalvin D21 | 0.75 |
|
|
| Lalvin D254 | 0.9 |
|
|
| Lalvin D47 | 0.75 |
|
|
| Lalvin D80 | 0.9 |
|
|
| Lalvin DV10 | 0.75 |
|
|
| Lalvin EC-1118 | 0.75 |
|
|
| Lalvin K1V-1116 | 0.9 |
|
|
| Lalvin QA23 | 0.75 |
|
|
| Lalvin R2 | 0.9 |
|
|
| Lalvin RC212 | 0.9 |
|
|
| Lalvin Rhone 2226 | 1.25 |
|
|
| Red Star Cote Des Blancs | 1.25 |
|
|
| Red Star Montrachet | 0.75 |
|
|
| Red Star Pasteur Champange | 0.75 |
|
|
| Red Star Pasteur Red | 0.9 |
|
|
| Red Star Premier Cuvee | 0.9 |
|
|
| Uvaferm 43 | 0.75 |
|
|
| Uvaferm BDX | 0.9 |
|
|
| Uvaferm SVG | 0.9 |
|
|
| Uvaferm VRB | 0.9 |
|
|
| Viti Levur 58W3 | 0.75 |
|
|
| Other Low N Requirement | 0.75 |
|
|
| Other Medium N Requirement | 0.9 |
|
|
| Other High N Requirement | 1.25 |
|
|
| Ale / Lager Yeast | 0.75 |
|