Added cooling parameters to the toIBU function.

Thu, 07 Jul 2022 14:57:24 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Thu, 07 Jul 2022 14:57:24 +0200
changeset 340
b9af88bfe972
parent 339
2f3cfb983fcc
child 341
1b1e2d4c1a3e

Added cooling parameters to the toIBU function.

src/EditProductExport.cpp file | annotate | diff | comparison | revisions
src/EditProductTab4.cpp file | annotate | diff | comparison | revisions
src/EditRecipeExport.cpp file | annotate | diff | comparison | revisions
src/EditRecipeTab3.cpp file | annotate | diff | comparison | revisions
src/PrinterDialog.cpp file | annotate | diff | comparison | revisions
src/Utils.cpp file | annotate | diff | comparison | revisions
src/Utils.h file | annotate | diff | comparison | revisions
--- a/src/EditProductExport.cpp	Thu Jul 07 14:17:53 2022 +0200
+++ b/src/EditProductExport.cpp	Thu Jul 07 14:57:24 2022 +0200
@@ -456,7 +456,8 @@
     for (int i = 0; i < product->hops.size(); i++) {
         double ibu = Utils::toIBU(product->hops.at(i).useat, product->hops.at(i).form, product->preboil_sg, product->batch_size,
                         product->hops.at(i).amount, product->hops.at(i).time, product->hops.at(i).alpha, product->ibu_method,
-                        product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time);
+                        product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time,
+			product->brew_cooling_method, 0, 0);
         memo.append("[row][data]" + product->hops.at(i).name + " (" + product->hops.at(i).origin + ")[/data]");
         memo.append("[data]" + QCoreApplication::translate("HopForm", g_hop_forms[product->hops.at(i).form]) + "[/data]");
         memo.append("[data]" + QString::number(product->hops.at(i).alpha, 'f', 1) + "[/data]");
--- a/src/EditProductTab4.cpp	Thu Jul 07 14:17:53 2022 +0200
+++ b/src/EditProductTab4.cpp	Thu Jul 07 14:57:24 2022 +0200
@@ -106,7 +106,8 @@
 
 	double ibu = Utils::toIBU(product->hops.at(i).useat, product->hops.at(i).form, product->preboil_sg, product->batch_size,
 			   product->hops.at(i).amount, product->hops.at(i).time, product->hops.at(i).alpha, product->ibu_method,
-			   product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time);
+			   product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time,
+			   product->brew_cooling_method, 0, 0);
 	item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0'));
         item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
         ui->hopsTable->setItem(i, 7, item);
@@ -258,11 +259,13 @@
 	ibus += Utils::toIBU(product->hops.at(i).useat, product->hops.at(i).form, product->preboil_sg,
 			   product->batch_size, product->hops.at(i).amount,
                            product->hops.at(i).time, product->hops.at(i).alpha, product->ibu_method,
-			   product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time);
+			   product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time,
+			   product->brew_cooling_method, 0, 0);
 	ferm_ibus += Utils::toIBU(product->hops.at(i).useat, product->hops.at(i).form, product->preboil_sg,
 			   product->brew_fermenter_volume + product->brew_fermenter_tcloss, product->hops.at(i).amount,
                            product->hops.at(i).time, product->hops.at(i).alpha, product->ibu_method,
-			   product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time);
+			   product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time,
+			   product->brew_cooling_method, 0, 0);
 
 	hop_flavour += Utils::hopFlavourContribution(product->hops.at(i).time, product->batch_size, product->hops.at(i).useat, product->hops.at(i).amount);
         hop_aroma += Utils::hopAromaContribution(product->hops.at(i).time, product->batch_size, product->hops.at(i).useat, product->hops.at(i).amount);
@@ -360,7 +363,8 @@
     double ibu = Utils::toIBU(product->hops.at(product->hops_row).useat, product->hops.at(product->hops_row).form, product->preboil_sg,
                               product->batch_size, product->hops.at(product->hops_row).amount, product->hops.at(product->hops_row).time,
                               product->hops.at(product->hops_row).alpha, product->ibu_method,
-			      product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time);
+			      product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time,
+			      product->brew_cooling_method, 0, 0);
 
     ibuEdit->setValue(ibu);
     item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0'));
@@ -394,7 +398,8 @@
     double ibu = Utils::toIBU(product->hops.at(product->hops_row).useat, product->hops.at(product->hops_row).form, product->preboil_sg,
                               product->batch_size, product->hops.at(product->hops_row).amount, product->hops.at(product->hops_row).time,
  			      product->hops.at(product->hops_row).alpha, product->ibu_method,
-			      product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time);
+			      product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time,
+			      product->brew_cooling_method, 0, 0);
 
     ibuEdit->setValue(ibu);
     item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0'));
@@ -459,7 +464,8 @@
     double ibu = Utils::toIBU(product->hops.at(product->hops_row).useat, product->hops.at(product->hops_row).form, product->preboil_sg,
 		              product->batch_size, product->hops.at(product->hops_row).amount, product->hops.at(product->hops_row).time,
 			      product->hops.at(product->hops_row).alpha, product->ibu_method,
-			      product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time);
+			      product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time,
+			      product->brew_cooling_method, 0, 0);
     ibuEdit->setValue(ibu);
 
     ui->hopsTable->setItem(product->hops_row, 0, new QTableWidgetItem(product->hops.at(product->hops_row).origin));
@@ -683,7 +689,8 @@
     double ibu = Utils::toIBU(product->hops.at(product->hops_row).useat, product->hops.at(product->hops_row).form, product->preboil_sg,
                               product->batch_size, product->hops.at(product->hops_row).amount, product->hops.at(product->hops_row).time,
                               product->hops.at(product->hops_row).alpha, product->ibu_method,
-			      product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time);
+			      product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time,
+			      product->brew_cooling_method, 0, 0);
     ibuEdit->setValue(ibu);
 
     hop_instock_changed(true);
--- a/src/EditRecipeExport.cpp	Thu Jul 07 14:17:53 2022 +0200
+++ b/src/EditRecipeExport.cpp	Thu Jul 07 14:57:24 2022 +0200
@@ -473,7 +473,7 @@
     for (int i = 0; i < recipe->hops.size(); i++) {
 	double ibu = Utils::toIBU(recipe->hops.at(i).useat, recipe->hops.at(i).form, recipe->preboil_sg, recipe->batch_size,
 			recipe->hops.at(i).amount, recipe->hops.at(i).time, recipe->hops.at(i).alpha, recipe->ibu_method,
-			0, recipe->hops.at(i).time, 0, recipe->boil_time);
+			0, recipe->hops.at(i).time, 0, recipe->boil_time, 0, 0, 0);
 	memo.append("[row][data]" + recipe->hops.at(i).name + " (" + recipe->hops.at(i).origin + ")[/data]");
 	memo.append("[data]" + QCoreApplication::translate("HopForm", g_hop_forms[recipe->hops.at(i).form]) + "[/data]");
 	memo.append("[data]" + QString::number(recipe->hops.at(i).alpha, 'f', 1) + "[/data]");
--- a/src/EditRecipeTab3.cpp	Thu Jul 07 14:17:53 2022 +0200
+++ b/src/EditRecipeTab3.cpp	Thu Jul 07 14:57:24 2022 +0200
@@ -97,7 +97,7 @@
 
 	double ibu = Utils::toIBU(recipe->hops.at(i).useat, recipe->hops.at(i).form, recipe->preboil_sg, recipe->batch_size, recipe->hops.at(i).amount,
 	                   recipe->hops.at(i).time, recipe->hops.at(i).alpha, recipe->ibu_method, 0, recipe->hops.at(i).time,
-			   0, recipe->boil_time);
+			   0, recipe->boil_time, 0, 0, 0);
 	item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0'));
         item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
         ui->hopsTable->setItem(i, 7, item);
@@ -224,7 +224,7 @@
 
 	ibus += Utils::toIBU(recipe->hops.at(i).useat, recipe->hops.at(i).form, recipe->preboil_sg, recipe->batch_size, recipe->hops.at(i).amount,
                            recipe->hops.at(i).time, recipe->hops.at(i).alpha, recipe->ibu_method, 0, recipe->hops.at(i).time,
-			   0, recipe->boil_time);
+			   0, recipe->boil_time, 0, 0, 0);
 	hop_flavour += Utils::hopFlavourContribution(recipe->hops.at(i).time, recipe->batch_size, recipe->hops.at(i).useat, recipe->hops.at(i).amount);
         hop_aroma += Utils::hopAromaContribution(recipe->hops.at(i).time, recipe->batch_size, recipe->hops.at(i).useat, recipe->hops.at(i).amount);
     }
@@ -311,7 +311,7 @@
     double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg,
                               recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time,
                               recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time,
-			      0, recipe->boil_time);
+			      0, recipe->boil_time, 0, 0, 0);
 
     ibuEdit->setValue(ibu);
     item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0'));
@@ -335,7 +335,7 @@
     double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg,
                               recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time,
                               recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time,
-                              0, recipe->boil_time);
+                              0, recipe->boil_time, 0, 0, 0);
 
     ibuEdit->setValue(ibu);
     item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0'));
@@ -367,7 +367,7 @@
     double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg,
                               recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time,
  			      recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time,
-			      0, recipe->boil_time);
+			      0, recipe->boil_time, 0, 0, 0);
 
     ibuEdit->setValue(ibu);
     item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0'));
@@ -429,7 +429,7 @@
     double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg,
 		              recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time,
 			      recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time,
-			      0, recipe->boil_time);
+			      0, recipe->boil_time, 0, 0, 0);
     ibuEdit->setValue(ibu);
 
     ui->hopsTable->setItem(recipe->hops_row, 0, new QTableWidgetItem(recipe->hops.at(recipe->hops_row).origin));
@@ -516,7 +516,7 @@
     double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg,
                               recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time,
                               recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time,
-                              0, recipe->boil_time);
+                              0, recipe->boil_time, 0, 0, 0);
 
     ibuEdit->setValue(ibu);
     item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0'));
@@ -691,7 +691,7 @@
     double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg,
                               recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time,
                               recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time,
-			      0, recipe->boil_time);
+			      0, recipe->boil_time, 0, 0, 0);
     ibuEdit->setValue(ibu);
 
     hop_instock_changed(true);
--- a/src/PrinterDialog.cpp	Thu Jul 07 14:17:53 2022 +0200
+++ b/src/PrinterDialog.cpp	Thu Jul 07 14:57:24 2022 +0200
@@ -438,7 +438,7 @@
 	    cost_hops += cost;
 	    double ibu = Utils::toIBU(recipe->hops.at(i).useat, recipe->hops.at(i).form, recipe->preboil_sg, recipe->batch_size,
 			    	      recipe->hops.at(i).amount, recipe->hops.at(i).time, recipe->hops.at(i).alpha,
-				      recipe->ibu_method, 0, recipe->hops.at(i).time, 0, recipe->boil_time);
+				      recipe->ibu_method, 0, recipe->hops.at(i).time, 0, recipe->boil_time, 0, 0, 0);
 
 	    if (recipe->hops.at(i).useat == 2 || recipe->hops.at(i).useat == 4)	// Boil or Whirlpool
 		use = QCoreApplication::translate("HopUse", g_hop_useat[recipe->hops.at(i).useat]) + QString(" %1 min").arg(recipe->hops.at(i).time);
@@ -838,7 +838,8 @@
             cost_hops += cost;
             double ibu = Utils::toIBU(product->hops.at(i).useat, product->hops.at(i).form, product->preboil_sg, product->batch_size,
                                       product->hops.at(i).amount, product->hops.at(i).time, product->hops.at(i).alpha,
-                                      product->ibu_method, product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6, product->boil_time);
+                                      product->ibu_method, product->brew_whirlpool9, product->brew_whirlpool7, product->brew_whirlpool6,
+				      product->boil_time, product->brew_cooling_method, 0, 0);
 
             if (product->hops.at(i).useat == 2 || product->hops.at(i).useat == 4)     // Boil or Whirlpool
                 use = QCoreApplication::translate("HopUse", g_hop_useat[product->hops.at(i).useat]) + QString(" %1 min").arg(product->hops.at(i).time);
--- a/src/Utils.cpp	Thu Jul 07 14:17:53 2022 +0200
+++ b/src/Utils.cpp	Thu Jul 07 14:57:24 2022 +0200
@@ -411,8 +411,9 @@
 
 
 double Utils::toIBU(int Use, int Form, double SG, double Volume, double Amount, double Boiltime, double Alpha,
-		    int Method, double Whirlpool9, double Whirlpool7, double Whirlpool6, double Fulltime)
+		    int Method, double Whirlpool9, double Whirlpool7, double Whirlpool6, double Fulltime, int Cooltype, double Coolparm1, double Coolparm2)
 {
+    double steep_time = 0;		/* Total time a hop in the kettle.				*/
     double loss_boiltemp = 1.0;		/* Loss due to the lower boil temperature at higher altitude.	*/
 
     double ibu = 0.0, whirlibus = 0.0;
@@ -460,6 +461,10 @@
 //	qDebug() << "whirpool" << wibu << wibu * IBU_reduction(74);
     }
 
+    if ((Use == HOP_USEAT_MASH) || (Use == HOP_USEAT_FWH) || (Use == HOP_USEAT_BOIL)) {
+	steep_time += Boiltime;
+    }
+
     /*
      * IBU's from hops during Mash, FWH and boil.
      */
--- a/src/Utils.h	Thu Jul 07 14:17:53 2022 +0200
+++ b/src/Utils.h	Thu Jul 07 14:57:24 2022 +0200
@@ -78,10 +78,14 @@
      * @param Whirlpool7 time in whirlpool between 72°C and 77°C.
      * @param Whirlpool6 time in whirlpool between 60°C amd 66°C.
      * @param Fulltime, full boiltime, even for aroma hops.
+     * @param Cooltype 0 = N/A, 1 = Emersion chiller, 2 = Counterflow, 3 = Au bain marie, 4 = natural
+     * @param Coolparm1 to define later
+     * @param Coolparm2 to define later
      * @return The calculated IBU's
      */
     double toIBU(int Use, int Form, double SG, double Volume, double Amount, double Boiltime, double Alpha,
-                 int Method, double Whirlpool9, double Whirlpool7, double Whirlpool6, double Fulltime);
+                 int Method, double Whirlpool9, double Whirlpool7, double Whirlpool6, double Fulltime,
+		 int Cooltype, double Coolparm1, double Coolparm2);
 
     double hopFlavourContribution(double bt, double vol, int use, double amount);
     double hopAromaContribution(double bt, double vol, int use, double amount);

mercurial