FireSTARR
Loading...
Searching...
No Matches
fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth > Class Template Reference

A FuelBase made of a standard fuel type. More...

#include <StandardFuel.h>

Inheritance diagram for fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >:
Collaboration diagram for fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >:

Public Member Functions

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.
 
constexpr StandardFuel (const FuelCodeSize &code, const char *name, const bool can_crown, const LogValue log_q, const Duff *duff) noexcept
 Constructor.
 
 StandardFuel (StandardFuel &&rhs) noexcept=delete
 
 StandardFuel (const StandardFuel &rhs) noexcept=delete
 
StandardFueloperator= (StandardFuel &&rhs) noexcept=delete
 
StandardFueloperator= (const StandardFuel &rhs)=delete
 
MathSize rosBasic (const MathSize isi) const noexcept
 Initial rate of spread (m/min) [ST-X-3 eq 26].
 
virtual MathSize crownConsumption (const MathSize cfb) const noexcept override
 Crown Fuel Consumption (CFC) (kg/m^2) [ST-X-3 eq 66].
 
MathSize limitIsf (const MathSize mu, const MathSize rsf) const noexcept
 ISI with slope influence and zero wind (ISF) [ST-X-3 eq 41].
 
MathSize criticalSurfaceIntensity (const SpreadInfo &spread) const noexcept override
 Critical Surface Fire Intensity (CSI) [ST-X-3 eq 56].
 
MathSize lengthToBreadth (const MathSize ws) const noexcept override
 Length to Breadth ratio [ST-X-3 eq 79].
 
MathSize finalRos (const SpreadInfo &, MathSize, MathSize, const MathSize rss) const noexcept override
 Final rate of spread (m/min)
 
MathSize buiEffect (const MathSize bui) const noexcept override
 BUI Effect on surface fire rate of spread [ST-X-3 eq 54].
 
- Public Member Functions inherited from fs::fuel::FuelBase< BulkDensity, InorganicPercent, DuffDepth >
constexpr FuelBase (const FuelCodeSize &code, const char *name, const bool can_crown, const Duff *duff_ffmc, const Duff *duff_dmc)
 Constructor.
 
 FuelBase (FuelBase &&rhs) noexcept=delete
 
 FuelBase (const FuelBase &rhs)=delete
 
FuelBaseoperator= (FuelBase &&rhs) noexcept=delete
 
FuelBaseoperator= (const FuelBase &rhs)=delete
 
MathSize crownFractionBurned (const MathSize rss, const MathSize rso) const noexcept override
 Crown Fraction Burned (CFB) [ST-X-3 eq 58].
 
ThresholdSize probabilityPeat (const MathSize mc_fraction) const noexcept override
 Calculate probability of burning [Anderson eq 1].
 
ThresholdSize survivalProbability (const wx::FwiWeather &wx) const noexcept override
 Survival probability calculated using probability of ony survival based on multiple formulae.
 
constexpr const DuffduffDmcType () const
 Type of duff deeper underground.
 
constexpr const DuffduffFfmcType () const
 Type of duff near the surface.
 
- Public Member Functions inherited from fs::fuel::FuelType
constexpr FuelType (const FuelCodeSize &code, const char *name, const bool can_crown) noexcept
 Fuel type.
 
 FuelType (FuelType &&rhs) noexcept=delete
 
 FuelType (const FuelType &rhs) noexcept=delete
 
FuelTypeoperator= (FuelType &&rhs) noexcept=delete
 
FuelTypeoperator= (const FuelType &rhs) noexcept=delete
 
constexpr bool canCrown () const
 Whether or not this fuel can have a crown fire.
 
virtual MathSize grass_curing (const int, const wx::FwiWeather &) const
 Grass curing.
 
virtual MathSize calculateRos (int nd, const wx::FwiWeather &wx, MathSize isi) const =0
 Calculate rate of spread (m/min)
 
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 surfaceFuelConsumption (const SpreadInfo &spread) const =0
 Surface fuel consumption (SFC) (kg/m^2) [ST-X-3 eq 9-25].
 
constexpr const char * name () const
 Name of the fuel.
 
constexpr FuelCodeSize code () const
 Code for this fuel type.
 

Protected Member Functions

MathSize cbh () const override
 Crown base height (m) [ST-X-3 table 8].
 
MathSize cfl () const override
 Crown fuel load (kg/m^2) [ST-X-3 table 8].
 

Static Protected Member Functions

static constexpr MathSize bui0 () noexcept
 Average Build-up Index for the fuel type [ST-X-3 table 7].
 
static constexpr MathSize a () noexcept
 Rate of spread parameter a [ST-X-3 table 6].
 
static constexpr MathSize negB () noexcept
 Negative of rate of spread parameter b [ST-X-3 table 6].
 
static constexpr MathSize c () noexcept
 Rate of spread parameter c [ST-X-3 table 6].
 
static constexpr MathSize crownRateOfSpread (const MathSize isi, const MathSize fmc) noexcept
 Crown fire spread rate (RSC) (m/min) [ST-X-3 eq 64].
 

Private Attributes

LogValue log_q_
 Log value of q [ST-X-3 table 7].
 

Additional Inherited Members

- Static Public Member Functions inherited from fs::fuel::FuelBase< BulkDensity, InorganicPercent, DuffDepth >
static constexpr MathSize bulkDensity ()
 Duff Bulk Density (kg/m^3) [Anderson table 1].
 
static constexpr MathSize inorganicPercent ()
 Inorganic Percent (% / 100) [Anderson table 1].
 
static constexpr MathSize duffDepth ()
 DuffDepth Depth of Duff layer (cm) [Anderson table 1].
 
static constexpr MathSize ffmcRatio ()
 What fraction of the duff layer should use FFMC to determine moisture.
 
static constexpr MathSize dmcRatio ()
 What fraction of the duff layer should use DMC to determine moisture.
 
- Static Public Member Functions inherited from fs::fuel::FuelType
static constexpr FuelCodeSize safeCode (const FuelType *fuel)
 Convert FuelType to its code, or 0 if nullptr.
 
static constexpr const char * safeName (const FuelType *fuel)
 Convert FuelType to its name, or 0 if nullptr.
 
static constexpr MathSize criticalRos (const MathSize sfc, const MathSize csi)
 Critical rate of spread (m/min)
 
static constexpr bool isCrown (const MathSize csi, const MathSize sfi)
 Whether or not this is a crown fire.
 

Detailed Description

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
class fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >

A FuelBase made of a standard fuel type.

Template Parameters
ARate of spread parameter a [ST-X-3 table 6]
BRate of spread parameter b * 10000 [ST-X-3 table 6]
CRate of spread parameter c * 100 [ST-X-3 table 6]
Bui0Average Build-up Index for the fuel type [ST-X-3 table 7]
CbhCrown base height (m) [ST-X-3 table 8]
CflCrown fuel load (kg/m^2) [ST-X-3 table 8]
BulkDensityDuff Bulk Density (kg/m^3) [Anderson table 1] * 1000
InorganicPercentInorganic percent of Duff layer (%) [Anderson table 1]
DuffDepthDepth of Duff layer (cm * 10) [Anderson table 1]

Constructor & Destructor Documentation

◆ StandardFuel() [1/2]

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >::StandardFuel ( const FuelCodeSize & code,
const char * name,
const bool can_crown,
const LogValue log_q,
const Duff * duff_ffmc,
const Duff * duff_dmc )
inlineconstexprnoexcept

Constructor.

Parameters
codeCode to identify fuel with
nameName of the fuel
can_crownWhether or not this fuel type can have a crown fire
log_qLog value of q [ST-X-3 table 7]
duff_ffmcType of duff near the surface
duff_dmcType of duff deeper underground

◆ StandardFuel() [2/2]

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >::StandardFuel ( const FuelCodeSize & code,
const char * name,
const bool can_crown,
const LogValue log_q,
const Duff * duff )
inlineconstexprnoexcept

Constructor.

Parameters
codeCode to identify fuel with
nameName of the fuel
can_crownWhether or not this fuel type can have a crown fire
log_qLog value of q [ST-X-3 table 7]
duffType of duff near the surface and deeper underground

Member Function Documentation

◆ a()

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
static constexpr MathSize fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >::a ( )
inlinestaticnodiscardconstexprprotectednoexcept

Rate of spread parameter a [ST-X-3 table 6].

Returns
Rate of spread parameter a [ST-X-3 table 6]
Here is the caller graph for this function:

◆ bui0()

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
static constexpr MathSize fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >::bui0 ( )
inlinestaticnodiscardconstexprprotectednoexcept

Average Build-up Index for the fuel type [ST-X-3 table 7].

Returns
Average Build-up Index for the fuel type [ST-X-3 table 7]
Here is the caller graph for this function:

◆ buiEffect()

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
MathSize fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >::buiEffect ( const MathSize bui) const
inlinenodiscardoverridevirtualnoexcept

BUI Effect on surface fire rate of spread [ST-X-3 eq 54].

Parameters
buiBuild-up Index
Returns
BUI Effect on surface fire rate of spread [ST-X-3 eq 54]

Implements fs::fuel::FuelType.

Here is the call graph for this function:

◆ c()

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
static constexpr MathSize fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >::c ( )
inlinestaticnodiscardconstexprprotectednoexcept

Rate of spread parameter c [ST-X-3 table 6].

Returns
Rate of spread parameter c [ST-X-3 table 6]
Here is the caller graph for this function:

◆ cbh()

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
MathSize fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >::cbh ( ) const
inlinenodiscardoverrideprotectedvirtual

Crown base height (m) [ST-X-3 table 8].

Returns
Crown base height (m) [ST-X-3 table 8]

Implements fs::fuel::FuelType.

Here is the caller graph for this function:

◆ cfl()

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
MathSize fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >::cfl ( ) const
inlinenodiscardoverrideprotectedvirtual

Crown fuel load (kg/m^2) [ST-X-3 table 8].

Returns
Crown fuel load (kg/m^2) [ST-X-3 table 8]

Implements fs::fuel::FuelType.

Here is the caller graph for this function:

◆ criticalSurfaceIntensity()

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
MathSize fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >::criticalSurfaceIntensity ( const SpreadInfo & spread) const
inlinenodiscardoverridevirtualnoexcept

Critical Surface Fire Intensity (CSI) [ST-X-3 eq 56].

Parameters
spreadSpreadInfo to use in calculation
Returns
Critical Surface Fire Intensity (CSI) [ST-X-3 eq 56]

Implements fs::fuel::FuelType.

Here is the call graph for this function:

◆ crownConsumption()

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
virtual MathSize fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >::crownConsumption ( const MathSize cfb) const
inlineoverridevirtualnoexcept

Crown Fuel Consumption (CFC) (kg/m^2) [ST-X-3 eq 66].

Parameters
cfbCrown Fraction Burned (CFB) [ST-X-3 eq 58]
Returns
Crown Fuel Consumption (CFC) (kg/m^2) [ST-X-3 eq 66]

Implements fs::fuel::FuelType.

Reimplemented in fs::fuel::FuelMixed< A, B, C, Bui0, RosMultiplier, PercentMixed, BulkDensity, InorganicPercent, DuffDepth >, fs::fuel::FuelMixed< 110, 282, 150, 50, RosMultiplier, RatioMixed, 108, 25, 50 >, and fs::fuel::FuelMixed< A, B, C, Bui0, RosMultiplier, PercentDeadFir, 61, 15, 75 >.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ crownRateOfSpread()

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
static constexpr MathSize fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >::crownRateOfSpread ( const MathSize isi,
const MathSize fmc )
inlinestaticnodiscardconstexprprotectednoexcept

Crown fire spread rate (RSC) (m/min) [ST-X-3 eq 64].

Parameters
isiInitial Spread Index
fmcFoliar Moisture Content
Returns
Crown fire spread rate (RSC) (m/min) [ST-X-3 eq 64]

◆ finalRos()

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
MathSize fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >::finalRos ( const SpreadInfo & ,
MathSize ,
MathSize ,
const MathSize rss ) const
inlineoverridevirtualnoexcept

Final rate of spread (m/min)

Parameters
rssSurface Rate of spread (ROS) (m/min) [ST-X-3 eq 55]
Returns
Final rate of spread (m/min)

Implements fs::fuel::FuelType.

◆ lengthToBreadth()

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
MathSize fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >::lengthToBreadth ( const MathSize ws) const
inlinenodiscardoverridevirtualnoexcept

Length to Breadth ratio [ST-X-3 eq 79].

Parameters
wsWind Speed (km/h)
Returns
Length to Breadth ratio [ST-X-3 eq 79]

Implements fs::fuel::FuelType.

◆ limitIsf()

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
MathSize fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >::limitIsf ( const MathSize mu,
const MathSize rsf ) const
inlinenodiscardnoexcept

ISI with slope influence and zero wind (ISF) [ST-X-3 eq 41].

Parameters
muMultiplier
rsfSlope-adjusted zero wind rate of spread (RSF) [ST-X-3 eq 40]
Returns
ISI with slope influence and zero wind (ISF) [ST-X-3 eq 41]
Here is the call graph for this function:
Here is the caller graph for this function:

◆ negB()

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
static constexpr MathSize fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >::negB ( )
inlinestaticnodiscardconstexprprotectednoexcept

Negative of rate of spread parameter b [ST-X-3 table 6].

Returns
Negative of rate of spread parameter b [ST-X-3 table 6]
Here is the caller graph for this function:

◆ rosBasic()

template<int A, int B, int C, int Bui0, int Cbh, int Cfl, int BulkDensity, int InorganicPercent, int DuffDepth>
MathSize fs::fuel::StandardFuel< A, B, C, Bui0, Cbh, Cfl, BulkDensity, InorganicPercent, DuffDepth >::rosBasic ( const MathSize isi) const
inlinenodiscardnoexcept

Initial rate of spread (m/min) [ST-X-3 eq 26].

Parameters
isiInitial Spread Index
Returns
Initial rate of spread (m/min) [ST-X-3 eq 26]
Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following file: