Thu, 07 Jul 2022 14:17:53 +0200
Removed Garetz and Rager IBU calculations, we will only use Tinseth
#ifndef _UTILS_H #define _UTILS_H #include <QString> #include <QColor> // #define Ka1 0.0000004445 // #define Ka2 0.0000000000468 /** * @namespace Utils * * @brief Global math functions. */ namespace Utils { double lintner_to_kolbach(double lintner); double kolbach_to_lintner(double kolbach); double ebc_to_srm(double ebc); double srm_to_ebc(double srm); double get_kt(int ebc); double plato_to_sg(double plato); double sg_to_plato(double sg); double brix_to_sg(double brix); double sg_to_brix(double sg); double brix_to_fg(double o_plato, double refracto); double calc_svg(double og, double fg); double estimate_sg(double sugars, double batch_size); double estimate_fg(double psugar, double pcara, double wgratio, double mashtime, double mashtemp, double svg, double og); double kw_to_srm(int colormethod, double c); double kw_to_ebc(int colormethod, double c); double kw_to_newebc(int colormethod, double c); double abvol(double og, double fg); /** * @brief Calculate standar air pressure at the brewery. * Assume 20°C and use the global setup height. * @return Pressure in hPa. */ double brewery_hPa(); /** * @brief Return boil temperature in °C at the brewery height. * @return Temperature in °C */ double boilPoint(); /** * @brief Calculate IBU reduction at given temperature. * @param Tc temperature in °C. * @return The reduction factor. */ double IBU_reduction(double Tc); /** * @brief Calculate IBU's of a hop at 100°C using the Tinseth formula. * @param SG the density * @param Volume in liters * @param Amount in kilograms * @param Time in minutes * @param Alpha in procent * @return The calculated IBU's */ double TinsethIBU(double SG, double Volume, double Amount, double Time, double Alpha); /** * @brief Calculate IBU's of a hop during the whole production process. * @param Use HOP_USEAT_MASH HOP_USEAT_FWH HOP_USEAT_BOIL HOP_USEAT_AROMA HOP_USEAT_WHIRLPOOL HOP_USEAT_DRY_HOP HOP_USEAT_BOTTLING * @param Form HOP_FORMS_PELLET HOP_FORMS_PLUG HOP_FORMS_LEAF HOP_FORMS_LEAF_WET HOP_FORMS_CRYO HOP_FORMS_EXTRACT * @param SG the density * @param Volume in liters * @param Amount in kilograms * @param Boiltime in minutes * @param Alpha in procent * @param Method, 0 = Tinseth, 1 = Tinseth++ (+flamout, +whirlpool etc). * @param Whirlpool9 time in whirlpool above 80°C or zero. * @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. * @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); double hopFlavourContribution(double bt, double vol, int use, double amount); double hopAromaContribution(double bt, double vol, int use, double amount); QString hours_to_string(int hours); double kettle_cm(double volume, double kettle_volume, double kettle_height); double kettle_vol(double cm, double kettle_volume, double kettle_height); /** * @brief Map SRM color to RGB and return as QColor. * @param srm The srm value. * @return QColor */ QColor srm_to_color(int srm); /** * @brief Map EBC color to RGB and return as QColor. * @param ebc The ebc value. * @return QColor */ QColor ebc_to_color(int ebc); /** * @brief Map SRM color to a QString for stylesheets. * @param srm The srm value. * @return A QString with stylesheet colors. */ QString srm_to_style(int ebc); /** * @brief Map EBC color to a QString for stylesheets. * @param ebc The ebc value. * @return A QString with stylesheet colors. */ QString ebc_to_style(int srm); /** * @brief Mix water volumes and ingredients. * */ double mix(double v1, double v2, double c1, double c2); /** * @brief Return mg/l as CaCO3 */ double ResidualAlkalinity(double total_alkalinity, double calcium, double magnesium); double PartCO3(double pH); double PartHCO3(double pH); double Charge(double pH); double CalcFrac(double TpH, double pK1, double pK2, double pK3); } #endif