src/Utils.cpp

changeset 300
2a97905cb637
parent 281
af3dac6ff6c3
child 336
e97f9e87d94b
equal deleted inserted replaced
299:8021e09ab6a3 300:2a97905cb637
371 double liters = Volume; 371 double liters = Volume;
372 double alpha = Alpha / 100.0; 372 double alpha = Alpha / 100.0;
373 double mass = Amount * 1000.0; 373 double mass = Amount * 1000.0;
374 double time = Boiltime; 374 double time = Boiltime;
375 375
376 if ((Use == HOP_USEAT_AROMA) || (Use == HOP_USEAT_WHIRLPOOL) || (Use == HOP_USEAT_DRY_HOP)) { 376 if ((Use == HOP_USEAT_AROMA) || (Use == HOP_USEAT_WHIRLPOOL) || (Use == HOP_USEAT_DRY_HOP) || (Use == HOP_USEAT_BOTTLING)) {
377 fmoment = 0.0; 377 fmoment = 0.0;
378 } else if (Use == HOP_USEAT_MASH) { 378 } else if (Use == HOP_USEAT_MASH) {
379 fmoment += my_factor_mashhop / 100.0; // Brouwhulp 379 fmoment += my_factor_mashhop / 100.0; // Brouwhulp
380 time = Fulltime; // Take the full boiltime 380 time = Fulltime; // Take the full boiltime
381 } else if (Use == HOP_USEAT_FWH) { 381 } else if (Use == HOP_USEAT_FWH) {
389 pfactor += my_factor_plug / 100.0; 389 pfactor += my_factor_plug / 100.0;
390 } else if (Form == HOP_FORMS_LEAF_WET) { 390 } else if (Form == HOP_FORMS_LEAF_WET) {
391 pfactor += my_factor_wethop / 100.0; // From https://github.com/chrisgilmerproj/brewday/blob/master/brew/constants.py 391 pfactor += my_factor_wethop / 100.0; // From https://github.com/chrisgilmerproj/brewday/blob/master/brew/constants.py
392 } else if (Form == HOP_FORMS_CRYO) { 392 } else if (Form == HOP_FORMS_CRYO) {
393 pfactor += my_factor_cryohop / 100.0; 393 pfactor += my_factor_cryohop / 100.0;
394 } else if (Form == HOP_FORMS_EXTRACT) {
395 // Nothing for now.
394 } 396 }
395 397
396 // Ideas from Zymurgy March-April 2018. These are not exact formulas! 398 // Ideas from Zymurgy March-April 2018. These are not exact formulas!
397 double whirlibus = 0.0; 399 double whirlibus = 0.0;
398 if (Use == HOP_USEAT_AROMA) { 400 if (Use == HOP_USEAT_AROMA) {
454 456
455 double Utils::hopFlavourContribution(double bt, double vol, int use, double amount) 457 double Utils::hopFlavourContribution(double bt, double vol, int use, double amount)
456 { 458 {
457 double result; 459 double result;
458 460
459 if (use == 4 || use == 5) // Whirlpool or Dry-hop 461 if (use == HOP_USEAT_WHIRLPOOL || use == HOP_USEAT_DRY_HOP)
460 return 0; 462 return 0;
461 if (use == 1) { // First wort 463 if (use == HOP_USEAT_FWH) {
462 result = 0.15; // assume 15% flavourcontribution for fwh 464 result = 0.15; // assume 15% flavourcontribution for fwh
463 } else if (bt > 50) { 465 } else if (bt > 50) {
464 result = 0.10; // assume 10% flavourcontribution as a minimum 466 result = 0.10; // assume 10% flavourcontribution as a minimum
465 } else { 467 } else {
466 result = 15.25 / (6 * sqrt(2 * 3.1416)) * exp(-0.5 * pow((bt - 21.0) / 6.0, 2.0)); 468 result = 15.25 / (6 * sqrt(2 * 3.1416)) * exp(-0.5 * pow((bt - 21.0) / 6.0, 2.0));
473 475
474 double Utils::hopAromaContribution(double bt, double vol, int use, double amount) 476 double Utils::hopAromaContribution(double bt, double vol, int use, double amount)
475 { 477 {
476 double result = 0.0; 478 double result = 0.0;
477 479
478 if (use == 5) { // Dry hop 480 if (use == HOP_USEAT_DRY_HOP) {
479 result = 1.33; 481 result = 1.33;
480 } else if (use == 4) { // Whirlpool 482 } else if (use == HOP_USEAT_WHIRLPOOL) {
481 if (bt > 30) 483 if (bt > 30)
482 bt = 30; // Max 30 minutes 484 bt = 30; // Max 30 minutes
483 result = 0.62 * bt / 30.0; 485 result = 0.62 * bt / 30.0;
484 } else if (bt > 20) { 486 } else if (bt > 20) {
485 result = 0.0; 487 result = 0.0;
486 } else if (bt > 7.5) { 488 } else if (bt > 7.5) {
487 result = 10.03 / (4 * sqrt(2 * 3.1416)) * exp(-0.5 * pow((bt - 7.5) / 4.0, 2.0)); 489 result = 10.03 / (4 * sqrt(2 * 3.1416)) * exp(-0.5 * pow((bt - 7.5) / 4.0, 2.0));
488 } else if (use == 2) { // Boil 490 } else if (use == HOP_USEAT_BOIL) { // Boil
489 result = 1; 491 result = 1;
490 } else if (use == 3) { // Aroma 492 } else if (use == HOP_USEAT_AROMA) { // Aroma
491 result = 1.2; 493 result = 1.2;
492 } 494 }
493 return (result * amount * 1000.0) / vol; 495 return (result * amount * 1000.0) / vol;
494 } 496 }
495 497

mercurial