9#include "LookupTable.h"
10#include "StandardFuel.h"
11#ifdef DEBUG_FUEL_VARIABLE
21[[nodiscard]]
constexpr bool calculate_is_green(
const int nd)
28static constexpr int START_GREENING = -43;
29[[nodiscard]]
constexpr int calculate_grass_curing(
const int nd)
31 return (nd < START_GREENING)
40 : static_cast<int>(52.5042 - 1.07324 * nd);
42[[nodiscard]]
static MathSize
43 calculate_surface_fuel_consumption_mixed_or_c2(
const MathSize bui)
noexcept
45 return 5.0 * (1.0 - exp(-0.0115 * bui));
47static const util::LookupTable<&calculate_surface_fuel_consumption_mixed_or_c2>
48 SURFACE_FUEL_CONSUMPTION_MIXED_OR_C2{};
49[[nodiscard]]
static MathSize
50 calculate_surface_fuel_consumption_d1(
const MathSize bui)
noexcept
52 return 1.5 * (1.0 - exp(-0.0183 * bui));
54static util::LookupTable<&calculate_surface_fuel_consumption_d1>
55 SURFACE_FUEL_CONSUMPTION_D1{};
68template <
int A,
int B,
int C,
int Bui0,
int Cbh,
int Cfl,
int BulkDensity,
int InorganicPercent,
int DuffDepth>
70 :
public StandardFuel<A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth>
80 using StandardFuel<A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth>
::
89 const MathSize isi)
const noexcept override
95 * spread.slopeFactor());
105 const MathSize isi)
const noexcept override
122template <
int A,
int B,
int C,
int Bui0,
int Cbh,
int Cfl,
int BulkDensity,
int InorganicPercent,
int DuffDepth>
124 :
public FuelNonMixed<A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth>
145 const Duff* duff_ffmc,
146 const Duff* duff_dmc)
147 :
FuelNonMixed<A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth>(
code,
179[[nodiscard]]
static MathSize
180 calculate_surface_fuel_consumption_jackpine(
181 const MathSize bui)
noexcept
183 return 5.0 * pow(1.0 - exp(-0.0164 * bui), 2.24);
189static util::LookupTable<&calculate_surface_fuel_consumption_jackpine>
190 SURFACE_FUEL_CONSUMPTION_JACKPINE{};
202template <
int A,
int B,
int C,
int Bui0,
int Cbh,
int Cfl,
int BulkDensity,
int DuffDepth>
204 :
public FuelConifer<A, B, C, Bui0, Cbh, Cfl, BulkDensity, 15, DuffDepth>
213 using FuelConifer<A, B, C, Bui0, Cbh, Cfl, BulkDensity, 15, DuffDepth>::FuelConifer;
220 const SpreadInfo& spread)
const noexcept override
222 return SURFACE_FUEL_CONSUMPTION_JACKPINE(spread.bui().asValue());
230[[nodiscard]]
static MathSize
231 calculate_surface_fuel_consumption_pine(
const MathSize bui)
noexcept
233 return 5.0 * pow(1.0 - exp(-0.0149 * bui), 2.48);
240static util::LookupTable<&calculate_surface_fuel_consumption_pine>
241 SURFACE_FUEL_CONSUMPTION_PINE{};
253template <
int A,
int B,
int C,
int Bui0,
int Cbh,
int Cfl,
int BulkDensity,
int DuffDepth>
263 using FuelConifer<A, B, C, Bui0, Cbh, Cfl, BulkDensity, 15, DuffDepth>::FuelConifer;
270 const SpreadInfo& spread)
const noexcept override
272 return SURFACE_FUEL_CONSUMPTION_PINE(spread.bui().asValue());
307 const SpreadInfo& spread)
const noexcept override
309 return SURFACE_FUEL_CONSUMPTION_D1(spread.bui().asValue());
319 MathSize ros_multiplier,
320 MathSize isi)
const noexcept;
335template <
int A,
int B,
int C,
int Bui0,
int RosMultiplier,
int PercentMixed,
int BulkDensity,
int InorganicPercent,
int DuffDepth>
337 :
public StandardFuel<A, B, C, Bui0, 6, 80, BulkDensity, InorganicPercent, DuffDepth>
355 :
StandardFuel<A, B, C, Bui0, 6, 80, BulkDensity, InorganicPercent, DuffDepth>(
code,
369 const SpreadInfo& spread)
const noexcept override
371 return SURFACE_FUEL_CONSUMPTION_MIXED_OR_C2(spread.bui().asValue());
389 const MathSize isi)
const noexcept override
401 const MathSize isi)
const noexcept override
412 return PercentMixed / 100.0;
420 return 1.0 - (PercentMixed / 100.0);
429 return RosMultiplier / 10.0;
437 [[nodiscard]]
static MathSize
439 const MathSize isi)
noexcept
454template <
int A,
int B,
int C,
int Bui0,
int RosMultiplier,
int PercentDeadFir>
456 :
public FuelMixed<A, B, C, Bui0, RosMultiplier, PercentDeadFir, 61, 15, 75>
474 :
FuelMixed<A, B, C, Bui0, RosMultiplier, PercentDeadFir, 61, 15, 75>(
code,
485template <
int RosMultiplier,
int RatioMixed>
487 :
public FuelMixed<110, 282, 150, 50, RosMultiplier, RatioMixed, 108, 25, 50>
503 :
FuelMixed<110, 282, 150, 50, RosMultiplier, RatioMixed, 108, 25, 50>(
code,
514 const SpreadInfo& spread)
const noexcept override
517 + this->
ratioDeciduous() * SURFACE_FUEL_CONSUMPTION_D1(spread.bui().asValue());
523[[nodiscard]]
static constexpr MathSize
524 calculate_length_to_breadth_grass(
const MathSize ws)
noexcept
526 return ws < 1.0 ? 1.0 : (1.1 * pow(ws, 0.464));
531static util::LookupTable<calculate_length_to_breadth_grass> LENGTH_TO_BREADTH_GRASS{};
537[[nodiscard]]
static constexpr MathSize
538 calculate_base_multiplier_curing(
const MathSize curing)
noexcept
540 return (curing >= 58.8)
541 ? (0.176 + 0.02 * (curing - 58.8))
542 : (0.005 * expm1(0.061 * curing));
548static util::LookupTable<&calculate_base_multiplier_curing> BASE_MULTIPLIER_CURING{};
555template <
int A,
int B,
int C>
557 :
public StandardFuel<A, B, C, 1, 0, 0, 0, 0, static_cast<int>(DUFF_FFMC_DEPTH * 10.0)>
576 :
StandardFuel<A, B, C, 1, 0, 0, 0, 0, static_cast<int>(DUFF_FFMC_DEPTH * 10.0)>(
code,
591 return DEFAULT_GRASS_FUEL_LOAD;
605 : calculate_grass_curing(nd);
625 const MathSize isi)
const noexcept override
629 const auto mu_not_zero = max(0.001, mu);
641 const MathSize isi)
const noexcept override
653 return LENGTH_TO_BREADTH_GRASS(ws);
663 const MathSize isi)
const noexcept
665 return multiplier * this->
rosBasic(isi);
700 const SpreadInfo& spread)
const noexcept override;
731 const SpreadInfo& spread)
const noexcept override;
841 MathSize rss)
const noexcept override;
872 const SpreadInfo& spread)
const noexcept override;
905 const SpreadInfo& spread)
const noexcept override;
915 MathSize isi)
const noexcept override;
921template <
int PercentConifer>
945template <
int PercentConifer>
969template <
int PercentDeadFir>
995template <
int PercentDeadFir>
1003 FuelM4& operator=(
const FuelM4& rhs)
noexcept =
delete;
1072template <
int A,
int B,
int C,
int Bui0,
int FfcA,
int FfcB,
int WfcA,
int WfcB,
int BulkDensity>
1093 const Duff* duff_ffmc,
1094 const Duff* duff_dmc)
1108 const SpreadInfo& spread)
const noexcept override
1110 return ffcA() * (1.0 - exp(
ffcB() * spread.bui().asValue()))
1111 +
wfcA() * (1.0 - exp(
wfcB() * spread.bui().asValue()));
1118 [[nodiscard]]
static constexpr MathSize
ffcA()
1126 [[nodiscard]]
static constexpr MathSize
ffcB()
1128 return FfcB / 10000.0;
1134 [[nodiscard]]
static constexpr MathSize
wfcA()
1142 [[nodiscard]]
static constexpr MathSize
wfcB()
1144 return WfcB / 10000.0;
1159 FuelS1& operator=(
const FuelS1& rhs)
noexcept =
delete;
1184 FuelS2& operator=(
const FuelS2& rhs)
noexcept =
delete;
1209 FuelS3& operator=(
const FuelS3& rhs)
noexcept =
delete;
1225template <
class FuelSpring,
class FuelSummer>
1227template <
class FuelSpring,
class FuelSummer>
1228[[nodiscard]]
const FuelType& find_fuel_by_season(
const int nd,
1231 FuelSummer>& fuel)
noexcept
1238 : calculate_is_green(nd)
1242template <
class FuelSpring,
class FuelSummer>
1243[[nodiscard]] MathSize compare_by_season(
const FuelVariable<FuelSpring, FuelSummer>& fuel,
1244 const function<MathSize(
const FuelType&)>& fct)
1248 const auto for_spring = fct(fuel.spring());
1249#ifdef DEBUG_FUEL_VARIABLE
1250 const auto for_summer = fct(fuel.summer());
1251 logging::check_fatal(for_spring != for_summer,
"Expected spring and summer cfb to be identical");
1260template <
class FuelSpring,
class FuelSummer>
1276 const bool can_crown,
1277 const FuelSpring*
const spring,
1278 const FuelSummer*
const summer)
1293 [[nodiscard]] MathSize
buiEffect(MathSize bui)
const override
1295 return compare_by_season(*
this, [bui](
const FuelType& fuel) {
return fuel.
buiEffect(bui); });
1303 return compare_by_season(*
this, [&nd, &wx](
const FuelType& fuel) {
return fuel.
grass_curing(nd, wx); });
1309 [[nodiscard]] MathSize
cbh()
const override
1311 return compare_by_season(*
this, [](
const FuelType& fuel) {
return fuel.
cbh(); });
1317 [[nodiscard]] MathSize
cfl()
const override
1319 return compare_by_season(*
this, [](
const FuelType& fuel) {
return fuel.
cfl(); });
1339 const MathSize isi)
const override
1341 return find_fuel_by_season(nd, *
this).
calculateRos(nd, wx, isi);
1350 const MathSize isi)
const override
1352 return find_fuel_by_season(spread.
nd(), *
this).
calculateIsf(spread, isi);
1384 const MathSize rss)
const override
1386 return find_fuel_by_season(spread.
nd(), *
this).
finalRos(spread, isi, cfb, rss);
1405 const MathSize rso)
const noexcept override
1414 [[nodiscard]] MathSize
probabilityPeat(
const MathSize mc_fraction)
const noexcept override
1476 const FuelD2* d2) noexcept
1485template <
int PercentConifer>
1515template <
int PercentDeadFir>
1550 FuelO1& operator=(
const FuelO1& rhs)
noexcept =
delete;
constexpr MathSize asValue() const noexcept
Returns value as a MathSize.
Definition Index.h:84
A result of calling log(x) for some value of x, pre-calculated at compile time.
Definition Index.h:168
Base class for DuffType.
Definition Duff.h:43
static const DuffType< 94, 2220, -198198, -1169, 10414, 782 > Peat
Peat [Frandsen table 2/3].
Definition Duff.h:114
static const DuffType< 359, 1220, 3325604, -12220, -21024, -12619 > WhiteSpruce
Sedge meadow (upper) [Frandsen table 2/3].
Definition Duff.h:110
static const DuffType< 365, 1900, 451778, -3227, -3644, -362 > PineSeney
Sedge meadow (Seney) [Frandsen table 2/3].
Definition Duff.h:126
static const DuffType< 181, 427, 90970, -1040, 1165, -646 > FeatherMoss
Sphagnum (lower) [Frandsen table 2/3].
Definition Duff.h:94
static const DuffType< 307, 1160, 586921, -2737, -5413, -1246 > SprucePine
Spruce/pine duff [Frandsen table 2/3].
Definition Duff.h:130
static const DuffType< 124, 218, -88306, -608, 8095, 2735 > SphagnumUpper
Feather moss (upper) [Frandsen table 2/3].
Definition Duff.h:86
static const DuffType< 261, 563, 80359, -393, -591, -340 > Reindeer
Reindeer/feather [Frandsen table 2/3].
Definition Duff.h:98
A conifer fuel type.
Definition FBP45.h:125
constexpr FuelConifer(const FuelCodeSize &code, const char *name, const LogValue log_q, const Duff *duff_ffmc, const Duff *duff_dmc)
A conifer FBP fuel type.
Definition FBP45.h:142
constexpr FuelConifer(const FuelCodeSize &code, const char *name, const LogValue log_q, const Duff *duff)
A conifer FBP fuel type.
Definition FBP45.h:162
A grass fuel type.
Definition FBP45.h:558
MathSize lengthToBreadth(const MathSize ws) const noexcept override
Length to Breadth ratio [ST-X-3 eq 80/81].
Definition FBP45.h:651
MathSize calculateIsf(const SpreadInfo &spread, const MathSize isi) const noexcept override
Calculate ISI with slope influence and zero wind (ISF) [ST-X-3 eq 41].
Definition FBP45.h:624
MathSize surfaceFuelConsumption(const SpreadInfo &) const noexcept override
Surface Fuel Consumption (SFC) (kg/m^2) [ST-X-3 pg 21].
Definition FBP45.h:588
MathSize calculateRos(const MathSize multiplier, const MathSize isi) const noexcept
Calculate rate of spread (m/min)
Definition FBP45.h:662
constexpr FuelGrass(const FuelCodeSize &code, const char *name, const LogValue log_q)
A grass fuel type.
Definition FBP45.h:572
MathSize calculateRos(const int nd, const wx::FwiWeather &wx, const MathSize isi) const noexcept override
Calculate rate of spread (m/min)
Definition FBP45.h:639
MathSize grass_curing(const int nd, const wx::FwiWeather &wx) const override
Grass curing.
Definition FBP45.h:597
MathSize baseMultiplier(const int nd, const wx::FwiWeather &wx) const noexcept
Calculate base rate of spread multiplier.
Definition FBP45.h:613
A fuel with jackpine as base fuel type.
Definition FBP45.h:205
MathSize surfaceFuelConsumption(const SpreadInfo &spread) const noexcept override
Surface fuel consumption (SFC) (kg/m^2) [ST-X-3 eq 11].
Definition FBP45.h:219
A fuel made of dead fir and D1.
Definition FBP45.h:457
constexpr FuelMixedDead(const FuelCodeSize &code, const char *name, const LogValue log_q)
A mixed dead FBP fuel type.
Definition FBP45.h:471
A fuel composed of C2 and D1 mixed.
Definition FBP45.h:488
constexpr FuelMixedWood(const FuelCodeSize &code, const char *name)
A mixedwood FBP fuel type.
Definition FBP45.h:501
MathSize surfaceFuelConsumption(const SpreadInfo &spread) const noexcept override
Surface Fuel Consumption (SFC) (kg/m^2) [ST-X-3 eq 17].
Definition FBP45.h:513
A mixedwood fuel type.
Definition FBP45.h:338
MathSize surfaceFuelConsumption(const SpreadInfo &spread) const noexcept override
Surface Fuel Consumption (SFC) (kg/m^2) [ST-X-3 eq 10].
Definition FBP45.h:368
constexpr FuelMixed(const FuelCodeSize &code, const char *name, const LogValue log_q)
A mixed FBP fuel type.
Definition FBP45.h:352
MathSize calculateIsf(const SpreadInfo &spread, const MathSize isi) const noexcept override
Calculate ISI with slope influence and zero wind (ISF) [ST-X-3 eq 42].
Definition FBP45.h:400
static constexpr MathSize ratioDeciduous()
Percent Deciduous (% / 100)
Definition FBP45.h:418
MathSize crownConsumption(const MathSize cfb) const noexcept override
Crown Fuel Consumption (CFC) (kg/m^2) [ST-X-3 eq 66, pg 38].
Definition FBP45.h:378
static MathSize isfD1(const SpreadInfo &spread, const MathSize isi) noexcept
Calculate ISI with slope influence and zero wind (ISF) for D-1 [ST-X-3 eq 41].
Definition FBP45.h:438
static constexpr MathSize ratioConifer()
Percent Conifer (% / 100)
Definition FBP45.h:410
MathSize calculateRos(const int, const wx::FwiWeather &, const MathSize isi) const noexcept override
Calculate rate of spread (m/min) [ST-X-3 27/28, GLC-X-10 29/31].
Definition FBP45.h:387
static constexpr MathSize rosMultiplier()
Rate of spread multiplier [ST-X-3 eq 27/28, GLC-X-10 eq 29/30].
Definition FBP45.h:427
A StandardFuel that is not made of multiple fuels.
Definition FBP45.h:71
virtual MathSize calculateRos(const int, const wx::FwiWeather &, const MathSize isi) const noexcept override
Initial rate of spread (m/min) [ST-X-3 eq 26].
Definition FBP45.h:103
MathSize calculateIsf(const SpreadInfo &spread, const MathSize isi) const noexcept override
ISI with slope influence and zero wind (ISF) [ST-X-3 eq 41].
Definition FBP45.h:88
A fuel with pine as the base fuel type.
Definition FBP45.h:255
MathSize surfaceFuelConsumption(const SpreadInfo &spread) const noexcept override
Surface fuel consumption (SFC) (kg/m^2) [ST-X-3 eq 12].
Definition FBP45.h:269
A slash fuel type.
Definition FBP45.h:1074
constexpr FuelSlash(const FuelCodeSize &code, const char *name, const LogValue log_q, const Duff *duff_ffmc, const Duff *duff_dmc)
A slash fuel type.
Definition FBP45.h:1090
static constexpr MathSize wfcB()
Woody Fuel Consumption parameter b [ST-X-3 eq 20/22/24].
Definition FBP45.h:1142
static constexpr MathSize ffcA()
Forest Floor Consumption parameter a [ST-X-3 eq 19/21/23].
Definition FBP45.h:1118
static constexpr MathSize wfcA()
Woody Fuel Consumption parameter a [ST-X-3 eq 20/22/24].
Definition FBP45.h:1134
MathSize surfaceFuelConsumption(const SpreadInfo &spread) const noexcept override
Surface Fuel Consumption (SFC) (kg/m^2) [ST-X-3 eq 25].
Definition FBP45.h:1107
static constexpr MathSize ffcB()
Forest Floor Consumption parameter b [ST-X-3 eq 19/21/23].
Definition FBP45.h:1126
An FBP fuel type.
Definition FuelType.h:55
virtual MathSize cfl() const =0
Crown fuel load (kg/m^2) [ST-X-3 table 8].
virtual MathSize grass_curing(const int, const wx::FwiWeather &) const
Grass curing.
Definition FuelType.h:129
virtual MathSize calculateIsf(const SpreadInfo &spread, MathSize isi) const =0
Calculate ISI with slope influence and zero wind (ISF) [ST-X-3 eq 41/42].
virtual MathSize crownConsumption(MathSize cfb) const =0
Crown Fuel Consumption (CFC) (kg/m^2) [ST-X-3 eq 66].
virtual MathSize lengthToBreadth(MathSize ws) const =0
Length to Breadth ratio [ST-X-3 eq 79].
constexpr FuelCodeSize code() const
Code for this fuel type.
Definition FuelType.h:234
virtual MathSize buiEffect(MathSize bui) const =0
BUI Effect on surface fire rate of spread [ST-X-3 eq 54].
virtual MathSize cbh() const =0
Crown base height (m) [ST-X-3 table 8].
virtual MathSize crownFractionBurned(MathSize rss, MathSize rso) const noexcept=0
Crown Fraction Burned (CFB) [ST-X-3 eq 58].
virtual MathSize criticalSurfaceIntensity(const SpreadInfo &spread) const =0
Critical Surface Fire Intensity (CSI) [ST-X-3 eq 56].
virtual MathSize probabilityPeat(MathSize mc_fraction) const noexcept=0
Calculate probability of burning [Anderson eq 1].
virtual ThresholdSize survivalProbability(const wx::FwiWeather &wx) const noexcept=0
Survival probability calculated using probability of ony survival based on multiple formulae.
virtual MathSize finalRos(const SpreadInfo &spread, MathSize isi, MathSize cfb, MathSize rss) const =0
Final rate of spread (m/min)
virtual MathSize surfaceFuelConsumption(const SpreadInfo &spread) const =0
Surface fuel consumption (SFC) (kg/m^2) [ST-X-3 eq 9-25].
virtual MathSize calculateRos(int nd, const wx::FwiWeather &wx, MathSize isi) const =0
Calculate rate of spread (m/min)
constexpr const char * name() const
Name of the fuel.
Definition FuelType.h:226
A fuel type that changes based on the season.
Definition FBP45.h:1262
MathSize probabilityPeat(const MathSize mc_fraction) const noexcept override
Calculate probability of burning [Anderson eq 1].
Definition FBP45.h:1414
MathSize grass_curing(const int nd, const wx::FwiWeather &wx) const override
Grass curing.
Definition FBP45.h:1301
constexpr const FuelType & spring() const
Fuel to use before green-up.
Definition FBP45.h:1432
const FuelSummer *const summer_
Fuel to use after green-up.
Definition FBP45.h:1452
MathSize finalRos(const SpreadInfo &spread, const MathSize isi, const MathSize cfb, const MathSize rss) const override
Final rate of spread (m/min)
Definition FBP45.h:1381
MathSize surfaceFuelConsumption(const SpreadInfo &spread) const override
Surface Fuel Consumption (SFC) (kg/m^2) [ST-X-3 eq 9-25].
Definition FBP45.h:1359
MathSize crownFractionBurned(const MathSize rss, const MathSize rso) const noexcept override
Crown Fraction Burned (CFB) [ST-X-3 eq 58].
Definition FBP45.h:1404
MathSize crownConsumption(const MathSize cfb) const override
Crown Fuel Consumption (CFC) (kg/m^2) [ST-X-3 eq 66].
Definition FBP45.h:1326
const FuelSpring *const spring_
Fuel to use before green-up.
Definition FBP45.h:1448
constexpr FuelVariable(const FuelCodeSize &code, const char *name, const bool can_crown, const FuelSpring *const spring, const FuelSummer *const summer)
A slash fuel type.
Definition FBP45.h:1274
constexpr const FuelType & summer() const
Fuel to use after green-up.
Definition FBP45.h:1440
MathSize cfl() const override
Crown fuel load (kg/m^2) [ST-X-3 table 8].
Definition FBP45.h:1317
MathSize lengthToBreadth(const MathSize ws) const override
Length to Breadth ratio [ST-X-3 eq 79].
Definition FBP45.h:1369
MathSize survivalProbability(const wx::FwiWeather &wx) const noexcept override
Survival probability calculated using probability of ony survival based on multiple formulae.
Definition FBP45.h:1423
MathSize calculateRos(const int nd, const wx::FwiWeather &wx, const MathSize isi) const override
Initial rate of spread (m/min) [ST-X-3 eq 26].
Definition FBP45.h:1337
MathSize criticalSurfaceIntensity(const SpreadInfo &spread) const override
Critical Surface Fire Intensity (CSI) [ST-X-3 eq 56].
Definition FBP45.h:1393
MathSize calculateIsf(const SpreadInfo &spread, const MathSize isi) const override
Calculate ISI with slope influence and zero wind (ISF) [ST-X-3 eq 41].
Definition FBP45.h:1349
MathSize buiEffect(MathSize bui) const override
BUI Effect on surface fire rate of spread [ST-X-3 eq 54].
Definition FBP45.h:1293
MathSize cbh() const override
Crown base height (m) [ST-X-3 table 8].
Definition FBP45.h:1309
A FuelBase made of a standard fuel type.
Definition StandardFuel.h:83
constexpr StandardFuel(const FuelCodeSize &code, const char *name, const bool can_crown, const LogValue log_q, const Duff *duff_ffmc, const Duff *duff_dmc) noexcept
Constructor.
Definition StandardFuel.h:94
virtual MathSize crownConsumption(const MathSize cfb) const noexcept override
Crown Fuel Consumption (CFC) (kg/m^2) [ST-X-3 eq 66].
Definition StandardFuel.h:148
MathSize rosBasic(const MathSize isi) const noexcept
Initial rate of spread (m/min) [ST-X-3 eq 26].
Definition StandardFuel.h:138
MathSize limitIsf(const MathSize mu, const MathSize rsf) const noexcept
ISI with slope influence and zero wind (ISF) [ST-X-3 eq 41].
Definition StandardFuel.h:158
FBP fuel type C-1.
Definition FBP45.h:674
constexpr FuelC1(const FuelCodeSize &code) noexcept
FBP fuel type C-1.
Definition FBP45.h:686
MathSize surfaceFuelConsumption(const SpreadInfo &spread) const noexcept override
Surface Fuel Consumption (SFC) (kg/m^2) [GLC-X-10 eq 9a/9b].
Definition FBP45.cpp:35
FBP fuel type C-2.
Definition FBP45.h:706
MathSize surfaceFuelConsumption(const SpreadInfo &spread) const noexcept override
Surface Fuel Consumption (SFC) (kg/m^2) [ST-X-3 eq 10].
Definition FBP45.cpp:39
constexpr FuelC2(const FuelCodeSize &code) noexcept
FBP fuel type C-2.
Definition FBP45.h:718
FBP fuel type C-3.
Definition FBP45.h:737
constexpr FuelC3(const FuelCodeSize &code) noexcept
FBP fuel type C-3.
Definition FBP45.h:749
FBP fuel type C-4.
Definition FBP45.h:762
constexpr FuelC4(const FuelCodeSize &code) noexcept
FBP fuel type C-4.
Definition FBP45.h:774
FBP fuel type C-5.
Definition FBP45.h:786
constexpr FuelC5(const FuelCodeSize &code) noexcept
FBP fuel type C-5.
Definition FBP45.h:798
FBP fuel type C-6.
Definition FBP45.h:810
MathSize finalRos(const SpreadInfo &spread, MathSize isi, MathSize cfb, MathSize rss) const noexcept override
Final rate of spread (m/min)
Definition FBP45.cpp:43
constexpr FuelC6(const FuelCodeSize &code) noexcept
FBP fuel type C-6.
Definition FBP45.h:822
FBP fuel type C-7.
Definition FBP45.h:847
MathSize surfaceFuelConsumption(const SpreadInfo &spread) const noexcept override
Surface Fuel Consumption (SFC) (kg/m^2) [ST-X-3 eq 15].
Definition FBP45.cpp:85
constexpr FuelC7(const FuelCodeSize &code) noexcept
FBP fuel type C-7.
Definition FBP45.h:859
FBP fuel type D-1/D-2.
Definition FBP45.h:1460
constexpr FuelD1D2(const FuelCodeSize &code, const FuelD1 *d1, const FuelD2 *d2) noexcept
A fuel that changes between D-1/D-2 depending on green-up.
Definition FBP45.h:1474
FBP fuel type D-1.
Definition FBP45.h:281
MathSize isfD1(const SpreadInfo &spread, MathSize ros_multiplier, MathSize isi) const noexcept
Calculate ISI with slope influence and zero wind (ISF) for D-1 [ST-X-3 eq 41].
Definition FBP45.cpp:11
constexpr FuelD1(const FuelCodeSize &code) noexcept
FBP fuel type D-1.
Definition FBP45.h:293
MathSize surfaceFuelConsumption(const SpreadInfo &spread) const noexcept override
Surface Fuel Consumption (SFC) (kg/m^2) [ST-X-3 eq 25].
Definition FBP45.h:306
FBP fuel type D-2.
Definition FBP45.h:878
constexpr FuelD2(const FuelCodeSize &code) noexcept
FBP fuel type D-2.
Definition FBP45.h:891
MathSize surfaceFuelConsumption(const SpreadInfo &spread) const noexcept override
Surface Fuel Consumption (SFC) (kg/m^2)
Definition FBP45.cpp:95
MathSize calculateRos(int nd, const wx::FwiWeather &wx, MathSize isi) const noexcept override
Calculate rate of spread (m/min)
Definition FBP45.cpp:99
FBP fuel type M-1/M-2.
Definition FBP45.h:1487
constexpr FuelM1M2(const FuelCodeSize &code, const char *name, const FuelM1< PercentConifer > *m1, const FuelM2< PercentConifer > *m2)
A fuel that changes between M-1/M-2 depending on green-up.
Definition FBP45.h:1503
FBP fuel type M-1.
Definition FBP45.h:923
constexpr FuelM1(const FuelCodeSize &code, const char *name)
FBP fuel type M-1.
Definition FBP45.h:936
FBP fuel type M-2.
Definition FBP45.h:947
constexpr FuelM2(const FuelCodeSize &code, const char *name)
FBP fuel type M-2.
Definition FBP45.h:960
FBP fuel type M-3/M-4.
Definition FBP45.h:1517
constexpr FuelM3M4(const FuelCodeSize &code, const char *name, const FuelM3< PercentDeadFir > *m3, const FuelM4< PercentDeadFir > *m4)
A fuel that changes between M-3/M-4 depending on green-up.
Definition FBP45.h:1532
FBP fuel type M-3.
Definition FBP45.h:971
constexpr FuelM3(const FuelCodeSize &code, const char *name)
FBP fuel type M-3.
Definition FBP45.h:984
FBP fuel type M-4.
Definition FBP45.h:997
constexpr FuelM4(const FuelCodeSize &code, const char *name)
FBP fuel type M-4.
Definition FBP45.h:1010
FBP fuel type O-1a.
Definition FBP45.h:1021
constexpr FuelO1A(const FuelCodeSize &code) noexcept
FBP fuel type O-1a.
Definition FBP45.h:1033
FBP fuel type O-1b.
Definition FBP45.h:1042
constexpr FuelO1B(const FuelCodeSize &code) noexcept
FBP fuel type O-1b.
Definition FBP45.h:1054
FBP fuel type O-1.
Definition FBP45.h:1544
constexpr FuelO1(const FuelCodeSize &code, const char *name, const FuelO1A *o1a, const FuelO1B *o1b)
A fuel that changes between O-1a/O-1b depending on green-up.
Definition FBP45.h:1559
FBP fuel type S-1.
Definition FBP45.h:1153
constexpr FuelS1(const FuelCodeSize &code) noexcept
FBP fuel type S-1.
Definition FBP45.h:1165
FBP fuel type S-2.
Definition FBP45.h:1178
constexpr FuelS2(const FuelCodeSize &code) noexcept
FBP fuel type S-2.
Definition FBP45.h:1190
FBP fuel type S-3.
Definition FBP45.h:1203
constexpr FuelS3(const FuelCodeSize &code) noexcept
FBP fuel type S-3.
Definition FBP45.h:1215
static bool forceStaticCuring() noexcept
Whether or not to force static grass curing value for all fires.
Definition Settings.cpp:696
static bool forceNoGreenup() noexcept
Whether or not to force no greenup for all fires.
Definition Settings.cpp:688
static bool forceGreenup() noexcept
Whether or not to force greenup for all fires.
Definition Settings.cpp:680
static int staticCuring() noexcept
Static curing value.
Definition Settings.cpp:700
Information regarding spread within a Cell for a specific Scenario and time.
Definition FireSpread.h:30
constexpr int nd() const
Difference between date and the date of minimum foliar moisture content.
Definition FireSpread.h:109
A Weather value with calculated FWI indices.
Definition FWI.h:209
constexpr const Dc & dc() const
Drought Code.
Definition FWI.h:358