Skip to content

Commit

Permalink
Merge pull request #3039 from E3SM-Project/mahf708/p3/runtime-params
Browse files Browse the repository at this point in the history
p3 runtime params reorg
  • Loading branch information
mahf708 authored Oct 18, 2024
2 parents d782bf0 + 34cd4f7 commit 16049f2
Show file tree
Hide file tree
Showing 16 changed files with 171 additions and 128 deletions.
38 changes: 19 additions & 19 deletions components/eamxx/cime_config/namelist_defaults_scream.xml
Original file line number Diff line number Diff line change
Expand Up @@ -202,25 +202,25 @@ be lost if SCREAM_HACK_XML is not enabled.
${DIN_LOC_ROOT}/atm/scream/tables/vn_table_vals.dat8,
${DIN_LOC_ROOT}/atm/scream/tables/vm_table_vals.dat8
</tables>
<p3_autoconversion_prefactor type="real" doc="Autoconversion linear prefactor in P3">1350.0</p3_autoconversion_prefactor>
<p3_autoconversion_qc_exponent type="real" doc="Autoconversion qc exponent in P3">2.47</p3_autoconversion_qc_exponent>
<p3_autoconversion_nc_exponent type="real" doc="Autoconversion nc exponent in P3">1.79</p3_autoconversion_nc_exponent>
<p3_autoconversion_radius type="real" doc="Autoconversion droplet radius (meter) in P3">25.0e-6</p3_autoconversion_radius>
<p3_accretion_prefactor type="real" doc="Accretion linear prefactor in P3">67.0</p3_accretion_prefactor>
<p3_accretion_qc_exponent type="real" doc="Accretion qc exponent in P3">1.15</p3_accretion_qc_exponent>
<p3_accretion_qr_exponent type="real" doc="Accretion qr exponent in P3">1.15</p3_accretion_qr_exponent>
<p3_rain_selfcollection_prefactor type="real" doc="Rain selfcollection prefactor in P3">5.78</p3_rain_selfcollection_prefactor>
<p3_rain_selfcollection_breakup_diameter type="real" doc="Rain selfcollection breakup diameter (meter) in P3">0.00028</p3_rain_selfcollection_breakup_diameter>
<p3_mu_r_constant type="real" doc="P3 mu_r_constant (rain shape parameter in gamma drop-size distribution)">1.0</p3_mu_r_constant>
<p3_spa_to_nc type="real" doc="P3 spa_to_nc (scaling factor for turning CCN into nc in SPA)">1.0</p3_spa_to_nc>
<p3_eci type="real" doc="P3 eci (liquid/ice collision/collection coefficient)">0.5</p3_eci>
<p3_eri type="real" doc="P3 eri (ice/rain collision/collection coefficient)">1.0</p3_eri>
<p3_rho_rime_min type="real" doc="P3 rho_rime_min (riming density maximum)">50.0</p3_rho_rime_min>
<p3_rho_rime_max type="real" doc="P3 rho_rime_max (riming density minimum)">900.0</p3_rho_rime_max>
<p3_a_imm type="real" doc="P3 a_imm (drop freezing exponent )">0.65</p3_a_imm>
<p3_dep_nucleation_exponent type="real" doc="P3 dep_nucleation_exponent (deposition nucleation)">0.304</p3_dep_nucleation_exponent>
<p3_ice_sed_knob type="real" doc="P3 ice_sed_knob (ice fall speed)">1.0</p3_ice_sed_knob>
<p3_do_ice_production type="logical" doc="Flag to turn on ice production processes in P3 (loss processes unaffected by this flag)">true</p3_do_ice_production>
<autoconversion_prefactor type="real" doc="Autoconversion linear prefactor">1350.0</autoconversion_prefactor>
<autoconversion_qc_exponent type="real" doc="Autoconversion qc exponent">2.47</autoconversion_qc_exponent>
<autoconversion_nc_exponent type="real" doc="Autoconversion nc exponent">1.79</autoconversion_nc_exponent>
<autoconversion_radius type="real" doc="Autoconversion droplet radius in meter">25.0e-6</autoconversion_radius>
<accretion_prefactor type="real" doc="Accretion linear prefactor">67.0</accretion_prefactor>
<accretion_qc_exponent type="real" doc="Accretion qc exponent">1.15</accretion_qc_exponent>
<accretion_qr_exponent type="real" doc="Accretion qr exponent">1.15</accretion_qr_exponent>
<rain_selfcollection_prefactor type="real" doc="Rain self-collection prefactor">5.78</rain_selfcollection_prefactor>
<rain_selfcollection_breakup_diameter type="real" doc="Rain self-collection breakup diameter in meter">0.00028</rain_selfcollection_breakup_diameter>
<constant_mu_rain type="real" doc="Constant shape parameter (mu) in the rain droplet distribution">1.0</constant_mu_rain>
<spa_ccn_to_nc_factor type="real" doc="Scaling factor for turning SPA ccn into P3 nc">1.0</spa_ccn_to_nc_factor>
<cldliq_to_ice_collection_factor type="real" doc="Cloud liquid to ice collection scaling factor">0.5</cldliq_to_ice_collection_factor>
<rain_to_ice_collection_factor type="real" doc="Rain to ice collection scaling factor">1.0</rain_to_ice_collection_factor>
<min_rime_rho type="real" doc="Minimum rime density in kg/m3">50.0</min_rime_rho>
<max_rime_rho type="real" doc="Maximum rime density in kg/m3">900.0</max_rime_rho>
<immersion_freezing_exponent type="real" doc="Immersion freezing exponent for both rain and cloud liquid">0.65</immersion_freezing_exponent>
<deposition_nucleation_exponent type="real" doc="Deposition nucleation exponent factor">0.304</deposition_nucleation_exponent>
<ice_sedimentation_factor type="real" doc="Ice sedimentation fall speed factor">1.0</ice_sedimentation_factor>
<do_ice_production type="logical" doc="Flag to turn on ice production processes (loss processes unaffected)">true</do_ice_production>
</p3>

<!-- SHOC macrophysics -->
Expand Down
2 changes: 1 addition & 1 deletion components/eamxx/src/physics/p3/disp/p3_main_impl_disp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ ::p3_main_internal_disp(
const Int kbot = kdir == -1 ? nk-1 : 0;
constexpr bool debug_ABORT = false;

const bool do_ice_production = runtime_options.p3_do_ice_production;
const bool do_ice_production = runtime_options.do_ice_production;

// per-column bools
view_1d<bool> nucleationPossible("nucleationPossible", nj);
Expand Down
23 changes: 2 additions & 21 deletions components/eamxx/src/physics/p3/eamxx_p3_process_interface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -219,27 +219,8 @@ void P3Microphysics::init_buffers(const ATMBufferManager &buffer_manager)
// =========================================================================================
void P3Microphysics::initialize_impl (const RunType /* run_type */)
{
// Gather runtime options
runtime_options.max_total_ni = m_params.get<double>("max_total_ni", 740.0e3);
runtime_options.p3_autoconversion_prefactor = m_params.get<double>("p3_autoconversion_prefactor", 1350.0);
runtime_options.p3_autoconversion_qc_exponent = m_params.get<double>("p3_autoconversion_qc_exponent", 2.47);
runtime_options.p3_autoconversion_nc_exponent = m_params.get<double>("p3_autoconversion_nc_exponent", 1.79);
runtime_options.p3_autoconversion_radius = m_params.get<double>("p3_autoconversion_radius", 25.0e-6);
runtime_options.p3_accretion_prefactor = m_params.get<double>("p3_accretion_prefactor", 67.0);
runtime_options.p3_accretion_qc_exponent = m_params.get<double>("p3_accretion_qc_exponent", 1.15);
runtime_options.p3_accretion_qr_exponent = m_params.get<double>("p3_accretion_qr_exponent", 1.15);
runtime_options.p3_rain_selfcollection_prefactor = m_params.get<double>("p3_rain_selfcollection_prefactor", 5.78);
runtime_options.p3_rain_selfcollection_breakup_diameter = m_params.get<double>("p3_rain_selfcollection_breakup_diameter", 0.00028);
runtime_options.p3_mu_r_constant = m_params.get<double>("p3_mu_r_constant", 1.0);
runtime_options.p3_spa_to_nc = m_params.get<double>("p3_spa_to_nc", 1.0);
runtime_options.p3_eci = m_params.get<double>("p3_eci", 0.5);
runtime_options.p3_eri = m_params.get<double>("p3_eri", 1.0);
runtime_options.p3_rho_rime_min = m_params.get<double>("p3_rho_rime_min", 50.0);
runtime_options.p3_rho_rime_max = m_params.get<double>("p3_rho_rime_max", 900.0);
runtime_options.p3_a_imm = m_params.get<double>("p3_a_imm", 0.65);
runtime_options.p3_dep_nucleation_exponent = m_params.get<double>("p3_dep_nucleation_exponent", 0.304);
runtime_options.p3_ice_sed_knob = m_params.get<double>("p3_ice_sed_knob", 1.0);
runtime_options.p3_do_ice_production = m_params.get<bool>("p3_do_ice_production", true);
// Gather runtime options from file
runtime_options.load_runtime_options_from_file(m_params);

// Set property checks for fields in this process
add_invariant_check<FieldWithinIntervalCheck>(get_field_out("T_mid"),m_grid,100.0,500.0,false);
Expand Down
28 changes: 18 additions & 10 deletions components/eamxx/src/physics/p3/impl/p3_autoconversion_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,21 @@ ::cloud_water_autoconversion(
// Khroutdinov and Kogan (2000)
const auto qc_not_small = qc_incld >= 1e-8 && context;

const Scalar p3_autoconversion_prefactor = runtime_options.p3_autoconversion_prefactor;
const Scalar p3_autoconversion_qc_exponent = runtime_options.p3_autoconversion_qc_exponent;
const Scalar p3_autoconversion_nc_exponent = runtime_options.p3_autoconversion_nc_exponent;
const Scalar p3_autoconversion_radius = runtime_options.p3_autoconversion_radius;

// TODO: correct this later (by keeping commented-out def) once BFB reqs are satisfied
const Scalar CONS3 = C::CONS3; // sp(1.0) / (C::CONS2 * pow(p3_autoconversion_radius, sp(3.0)));
const Scalar autoconversion_prefactor =
runtime_options.autoconversion_prefactor;
const Scalar autoconversion_qc_exponent =
runtime_options.autoconversion_qc_exponent;
const Scalar autoconversion_nc_exponent =
runtime_options.autoconversion_nc_exponent;
const Scalar autoconversion_radius = runtime_options.autoconversion_radius;

Scalar CONS3;
// TODO: always default to second branch after BFB stuff is addressed
if(autoconversion_radius == sp(25.0e-6)) {
CONS3 = C::CONS3;
} else {
CONS3 = sp(1.0) / (C::CONS2 * pow(autoconversion_radius, sp(3.0)));
}

if(qc_not_small.any()) {
Spack sgs_var_coef;
Expand All @@ -35,9 +43,9 @@ ::cloud_water_autoconversion(

qc2qr_autoconv_tend.set(
qc_not_small,
sgs_var_coef * p3_autoconversion_prefactor *
pow(qc_incld, p3_autoconversion_qc_exponent) *
pow(nc_incld * sp(1.e-6) * rho, -p3_autoconversion_nc_exponent));
sgs_var_coef * autoconversion_prefactor *
pow(qc_incld, autoconversion_qc_exponent) *
pow(nc_incld * sp(1.e-6) * rho, -autoconversion_nc_exponent));
// note: ncautr is change in Nr; nc2nr_autoconv_tend is change in Nc
ncautr.set(qc_not_small, qc2qr_autoconv_tend * CONS3);
nc2nr_autoconv_tend.set(qc_not_small,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,15 @@ ::cldliq_immersion_freezing(
constexpr Scalar T_zerodegc = C::T_zerodegc;
constexpr Scalar CONS5 = C::CONS5;
constexpr Scalar CONS6 = C::CONS6;
const Scalar p3_a_imm = runtime_options.p3_a_imm;
const Scalar immersion_freezing_exponent =
runtime_options.immersion_freezing_exponent;

const auto qc_not_small_and_t_freezing = (qc_incld >= qsmall) &&
(T_atm <= T_rainfrz) && context;
if (qc_not_small_and_t_freezing.any()) {
Spack expAimmDt, inv_lamc3;
expAimmDt.set(qc_not_small_and_t_freezing, exp(p3_a_imm * (T_zerodegc-T_atm)));
expAimmDt.set(qc_not_small_and_t_freezing,
exp(immersion_freezing_exponent * (T_zerodegc - T_atm)));
inv_lamc3.set(qc_not_small_and_t_freezing, cube(1/lamc));

Spack sgs_var_coef;
Expand Down
23 changes: 14 additions & 9 deletions components/eamxx/src/physics/p3/impl/p3_cloud_rain_acc_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ ::cloud_rain_accretion(
{
constexpr Scalar qsmall = C::QSMALL;

const Scalar p3_accretion_prefactor = runtime_options.p3_accretion_prefactor;
const Scalar p3_accretion_qc_exponent = runtime_options.p3_accretion_qc_exponent;
const Scalar p3_accretion_qr_exponent = runtime_options.p3_accretion_qr_exponent;
const Scalar accretion_prefactor = runtime_options.accretion_prefactor;
const Scalar accretion_qc_exponent = runtime_options.accretion_qc_exponent;
const Scalar accretion_qr_exponent = runtime_options.accretion_qr_exponent;

Spack sgs_var_coef;
// sgs_var_coef = subgrid_variance_scaling(inv_qc_relvar, sp(1.15) );
Expand All @@ -36,12 +36,17 @@ ::cloud_rain_accretion(
const auto qr_and_qc_not_small = (qr_incld >= qsmall) && (qc_incld >= qsmall) && context;
if(qr_and_qc_not_small.any()) {
// Khroutdinov and Kogan (2000)
qc2qr_accret_tend.set(
qr_and_qc_not_small,
sgs_var_coef * sp(p3_accretion_prefactor) *
// TODO: split this pow into two in a later PR due to NBFB behavior
// pow(qc_incld, p3_accretion_qc_exponent) * pow(qr_incld, p3_accretion_qr_exponent));
pow(qc_incld * qr_incld, p3_accretion_qr_exponent));
// TODO: always default to second branch after BFB stuff is addressed
if(accretion_qc_exponent == accretion_qr_exponent) {
qc2qr_accret_tend.set(qr_and_qc_not_small,
sgs_var_coef * accretion_prefactor *
pow(qc_incld * qr_incld, accretion_qr_exponent));
} else {
qc2qr_accret_tend.set(qr_and_qc_not_small,
sgs_var_coef * accretion_prefactor *
pow(qc_incld, accretion_qc_exponent) *
pow(qr_incld, accretion_qr_exponent));
}
nc_accret_tend.set(qr_and_qc_not_small,
qc2qr_accret_tend * nc_incld / qc_incld);

Expand Down
2 changes: 1 addition & 1 deletion components/eamxx/src/physics/p3/impl/p3_dsd2_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ get_rain_dsd2 (

const auto qr_gt_small = qr >= qsmall && context;

const Scalar mu_r_const = runtime_options.p3_mu_r_constant;
const Scalar mu_r_const = runtime_options.constant_mu_rain;

if (qr_gt_small.any()) {
// use lookup table to get mu
Expand Down
33 changes: 24 additions & 9 deletions components/eamxx/src/physics/p3/impl/p3_ice_collection_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,25 @@ ::ice_cldliq_collection(
const auto both_ge_small = qi_incld_ge_small && qc_incld_ge_small && context;
const auto both_ge_small_pos_t = both_ge_small && !t_is_negative;

const Scalar p3_eci = runtime_options.p3_eci;
const Scalar cldliq_to_ice_collection_factor =
runtime_options.cldliq_to_ice_collection_factor;
constexpr auto inv_dropmass = C::ONE/C::dropmass;

qc2qi_collect_tend.set(both_ge_small && t_is_negative,
rhofaci*table_val_qc2qi_collect*qc_incld*p3_eci*rho*ni_incld);
nc_collect_tend.set(both_ge_small, rhofaci*table_val_qc2qi_collect*nc_incld*p3_eci*rho*ni_incld);
rhofaci * table_val_qc2qi_collect * qc_incld *
cldliq_to_ice_collection_factor * rho * ni_incld);
nc_collect_tend.set(both_ge_small,
rhofaci * table_val_qc2qi_collect * nc_incld *
cldliq_to_ice_collection_factor * rho * ni_incld);

// for T_atm > 273.15, assume cloud water is collected and shed as rain drops
// sink for cloud water mass and number, note qcshed is source for rain mass
qc2qr_ice_shed_tend.set(both_ge_small_pos_t, rhofaci*table_val_qc2qi_collect*qc_incld*p3_eci*rho*ni_incld);
nc_collect_tend.set(both_ge_small_pos_t, rhofaci*table_val_qc2qi_collect*nc_incld*p3_eci*rho*ni_incld);
qc2qr_ice_shed_tend.set(both_ge_small_pos_t,
rhofaci * table_val_qc2qi_collect * qc_incld *
cldliq_to_ice_collection_factor * rho * ni_incld);
nc_collect_tend.set(both_ge_small_pos_t,
rhofaci * table_val_qc2qi_collect * nc_incld *
cldliq_to_ice_collection_factor * rho * ni_incld);
// source for rain number, assume 1 mm drops are shed
ncshdc.set(both_ge_small_pos_t, qc2qr_ice_shed_tend*inv_dropmass);
}
Expand Down Expand Up @@ -67,11 +75,17 @@ ::ice_rain_collection(
const auto both_ge_small_neg_t = both_ge_small && t_is_negative;

constexpr Scalar ten = 10.0;
const Scalar p3_eri = runtime_options.p3_eri;
const Scalar rain_to_ice_collection_factor =
runtime_options.rain_to_ice_collection_factor;

// note: table_val_qr2qi_collect and logn0r are already calculated as log_10
qr2qi_collect_tend.set(both_ge_small_neg_t, pow(ten, table_val_qr2qi_collect+logn0r)*rho*rhofaci*p3_eri*ni_incld);
nr_collect_tend.set(both_ge_small_neg_t, pow(ten, table_val_nr_collect+logn0r)*rho*rhofaci*p3_eri*ni_incld);
qr2qi_collect_tend.set(both_ge_small_neg_t,
pow(ten, table_val_qr2qi_collect + logn0r) * rho *
rhofaci * rain_to_ice_collection_factor *
ni_incld);
nr_collect_tend.set(both_ge_small_neg_t,
pow(ten, table_val_nr_collect + logn0r) * rho * rhofaci *
rain_to_ice_collection_factor * ni_incld);

// rain number sink due to collection
// for T_atm > 273.15, assume collected rain number is shed as
Expand All @@ -80,7 +94,8 @@ ::ice_rain_collection(
// rate of ice mass due to melting
// collection of rain above freezing does not impact total rain mass
nr_collect_tend.set(both_ge_small && !t_is_negative,
pow(ten, table_val_nr_collect + logn0r)*rho*rhofaci*p3_eri*ni_incld);
pow(ten, table_val_nr_collect + logn0r) * rho * rhofaci *
rain_to_ice_collection_factor * ni_incld);
// for now neglect shedding of ice collecting rain above freezing, since snow is
// not expected to shed in these conditions (though more hevaily rimed ice would be
// expected to lead to shedding)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ ::ice_nucleation(
constexpr Scalar piov3 = C::PIOV3;
constexpr Scalar mi0 = sp(4.0)*piov3*sp(900.0)*sp(1.e-18);

const Scalar p3_dep_nucleation_exponent = runtime_options.p3_dep_nucleation_exponent;
const Scalar deposition_nucleation_exponent =
runtime_options.deposition_nucleation_exponent;

const auto t_lt_T_icenuc = temp < T_icenuc;
const auto qv_supersat_i_ge_005 = qv_supersat_i >= 0.05;
Expand All @@ -36,7 +37,7 @@ ::ice_nucleation(
Spack dum{0.0}, N_nuc{0.0}, Q_nuc{0.0};

if (any_if_not_log.any()) {
dum = sp(0.005)*exp(sp(p3_dep_nucleation_exponent)*(tmelt-temp))*sp(1.0e3)*inv_rho;
dum = sp(0.005)*exp(sp(deposition_nucleation_exponent)*(tmelt-temp))*sp(1.0e3)*inv_rho;

dum = min(dum, sp(1.0e5)*inv_rho);

Expand Down
18 changes: 9 additions & 9 deletions components/eamxx/src/physics/p3/impl/p3_ice_sed_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ ::calc_bulk_rho_rime(
{
constexpr Scalar bsmall = C::BSMALL;
constexpr Scalar qsmall = C::QSMALL;
const Scalar p3_rho_rime_min = runtime_options.p3_rho_rime_min;
const Scalar p3_rho_rime_max = runtime_options.p3_rho_rime_max;
const Scalar min_rime_rho = runtime_options.min_rime_rho;
const Scalar max_rime_rho = runtime_options.max_rime_rho;

Spack rho_rime(0);

Expand All @@ -33,12 +33,12 @@ ::calc_bulk_rho_rime(
rho_rime.set(bi_rim_gt_small, qi_rim / bi_rim);
}

Smask rho_rime_lt_min = rho_rime < p3_rho_rime_min;
Smask rho_rime_gt_max = rho_rime > p3_rho_rime_max;
Smask rho_rime_lt_min = rho_rime < min_rime_rho;
Smask rho_rime_gt_max = rho_rime > max_rime_rho;

// impose limits on rho_rime; adjust bi_rim if needed
rho_rime.set(bi_rim_gt_small && rho_rime_lt_min, p3_rho_rime_min);
rho_rime.set(bi_rim_gt_small && rho_rime_gt_max, p3_rho_rime_max);
rho_rime.set(bi_rim_gt_small && rho_rime_lt_min, min_rime_rho);
rho_rime.set(bi_rim_gt_small && rho_rime_gt_max, max_rime_rho);
Smask adjust = bi_rim_gt_small && (rho_rime_gt_max || rho_rime_lt_min);
if (adjust.any()) {
bi_rim.set(adjust, qi_rim / rho_rime);
Expand Down Expand Up @@ -105,7 +105,7 @@ ::ice_sedimentation(
constexpr Scalar qsmall = C::QSMALL;
constexpr Scalar nsmall = C::NSMALL;

const Scalar p3_ice_sed_knob = runtime_options.p3_ice_sed_knob;
const Scalar ice_sedimentation_factor = runtime_options.ice_sedimentation_factor;

bool log_qxpresent;
const Int k_qxtop = find_top(team, sqi, qsmall, kbot, ktop, kdir, log_qxpresent);
Expand Down Expand Up @@ -163,8 +163,8 @@ ::ice_sedimentation(
ni_incld(pk).set(qi_gt_small, max(ni_incld(pk), table_val_ni_lammin * ni_incld(pk)));
ni(pk).set(qi_gt_small, ni_incld(pk) * cld_frac_i(pk));

V_qit(pk).set(qi_gt_small, p3_ice_sed_knob * table_val_qi_fallspd * rhofaci(pk)); // mass-weighted fall speed (with density factor)
V_nit(pk).set(qi_gt_small, p3_ice_sed_knob * table_val_ni_fallspd * rhofaci(pk)); // number-weighted fall speed (with density factor)
V_qit(pk).set(qi_gt_small, ice_sedimentation_factor * table_val_qi_fallspd * rhofaci(pk)); // mass-weighted fall speed (with density factor)
V_nit(pk).set(qi_gt_small, ice_sedimentation_factor * table_val_ni_fallspd * rhofaci(pk)); // number-weighted fall speed (with density factor)
}
const auto Co_max_local = max(qi_gt_small, 0,
V_qit(pk) * dt_left * inv_dz(pk));
Expand Down
2 changes: 1 addition & 1 deletion components/eamxx/src/physics/p3/impl/p3_main_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ ::p3_main_internal(
const Int kbot = kdir == -1 ? nk-1 : 0;
constexpr bool debug_ABORT = false;

const bool do_ice_production = runtime_options.p3_do_ice_production;
const bool do_ice_production = runtime_options.do_ice_production;

// we do not want to measure init stuff
auto start = std::chrono::steady_clock::now();
Expand Down
Loading

0 comments on commit 16049f2

Please sign in to comment.