FireSTARR
Loading...
Searching...
No Matches
fs::fuel::FuelType Class Referenceabstract

An FBP fuel type. More...

#include <FuelType.h>

Inheritance diagram for fs::fuel::FuelType:

Public Member Functions

virtual MathSize cfl () const =0
 Crown fuel load (kg/m^2) [ST-X-3 table 8].
 
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 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 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 buiEffect (MathSize bui) const =0
 BUI Effect on surface fire rate of spread [ST-X-3 eq 54].
 
virtual MathSize crownConsumption (MathSize cfb) const =0
 Crown Fuel Consumption (CFC) (kg/m^2) [ST-X-3 eq 66].
 
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].
 
virtual MathSize lengthToBreadth (MathSize ws) const =0
 Length to Breadth ratio [ST-X-3 eq 79].
 
virtual MathSize finalRos (const SpreadInfo &spread, MathSize isi, MathSize cfb, MathSize rss) const =0
 Final rate of spread (m/min)
 
virtual MathSize criticalSurfaceIntensity (const SpreadInfo &spread) const =0
 Critical Surface Fire Intensity (CSI) [ST-X-3 eq 56].
 
constexpr const char * name () const
 Name of the fuel.
 
constexpr FuelCodeSize code () const
 Code for this fuel type.
 

Static Public Member Functions

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.
 

Private Attributes

const char * name_
 Name of the fuel.
 
const bool can_crown_
 Whether or not this fuel can have a crown fire.
 
FuelCodeSize code_
 Code to identify fuel with.
 

Detailed Description

An FBP fuel type.

Constructor & Destructor Documentation

◆ FuelType()

fs::fuel::FuelType::FuelType ( const FuelCodeSize & code,
const char * name,
const bool can_crown )
inlineconstexprnoexcept

Fuel type.

Parameters
codeCode to identify fuel with
nameName of the fuel
can_crownWhether or not this fuel can have a crown fire

Member Function Documentation

◆ buiEffect()

◆ calculateIsf()

◆ calculateRos()

◆ canCrown()

bool fs::fuel::FuelType::canCrown ( ) const
inlinenodiscardconstexpr

Whether or not this fuel can have a crown fire.

Returns
Whether or not this fuel can have a crown fire

◆ cbh()

◆ cfl()

◆ code()

FuelCodeSize fs::fuel::FuelType::code ( ) const
inlinenodiscardconstexpr

Code for this fuel type.

Returns
Code for this fuel type
Here is the caller graph for this function:

◆ criticalRos()

static constexpr MathSize fs::fuel::FuelType::criticalRos ( const MathSize sfc,
const MathSize csi )
inlinestaticnodiscardconstexpr

Critical rate of spread (m/min)

Parameters
sfcSurface fuel consumption (SFC) (kg/m^2) [ST-X-3 eq 9-25]
csiCritical Surface Fire Intensity (CSI) (kW/m) [ST-X-3 eq 56]
Returns
Critical rate of spread (m/min)

◆ criticalSurfaceIntensity()

◆ crownConsumption()

◆ crownFractionBurned()

virtual MathSize fs::fuel::FuelType::crownFractionBurned ( MathSize rss,
MathSize rso ) const
nodiscardpure virtualnoexcept

Crown Fraction Burned (CFB) [ST-X-3 eq 58].

Parameters
rssSurface Rate of spread (ROS) (m/min) [ST-X-3 eq 55]
rsoCritical surface fire spread rate (RSO) [ST-X-3 eq 57]
Returns
Crown Fraction Burned (CFB) [ST-X-3 eq 58]

Implemented in fs::fuel::FuelBase< BulkDensity, InorganicPercent, DuffDepth >, fs::fuel::FuelVariable< FuelSpring, FuelSummer >, fs::fuel::FuelVariable< FuelD1, FuelD2 >, fs::fuel::FuelVariable< FuelM1< PercentConifer >, FuelM2< PercentConifer > >, fs::fuel::FuelVariable< FuelM3< PercentDeadFir >, FuelM4< PercentDeadFir > >, fs::fuel::FuelVariable< FuelO1A, FuelO1B >, and fs::fuel::InvalidFuel.

Here is the caller graph for this function:

◆ finalRos()

virtual MathSize fs::fuel::FuelType::finalRos ( const SpreadInfo & spread,
MathSize isi,
MathSize cfb,
MathSize rss ) const
nodiscardpure virtual

◆ grass_curing()

◆ isCrown()

static constexpr bool fs::fuel::FuelType::isCrown ( const MathSize csi,
const MathSize sfi )
inlinestaticnodiscardconstexpr

Whether or not this is a crown fire.

Parameters
csiCritical Surface Fire Intensity (CSI) (kW/m) [ST-X-3 eq 56]
sfiSurface Fire Intensity (kW/m)
Returns
Whether or not this is a crown fire

◆ lengthToBreadth()

◆ name()

const char * fs::fuel::FuelType::name ( ) const
inlinenodiscardconstexpr

Name of the fuel.

Returns
Name of the fuel
Here is the caller graph for this function:

◆ probabilityPeat()

virtual MathSize fs::fuel::FuelType::probabilityPeat ( MathSize mc_fraction) const
nodiscardpure virtualnoexcept

◆ safeCode()

static constexpr FuelCodeSize fs::fuel::FuelType::safeCode ( const FuelType * fuel)
inlinestaticnodiscardconstexpr

Convert FuelType to its code, or 0 if nullptr.

Parameters
fuelFuelType to convert
Returns
Code for FuelType, or 0 if nullptr
Here is the call graph for this function:
Here is the caller graph for this function:

◆ safeName()

static constexpr const char * fs::fuel::FuelType::safeName ( const FuelType * fuel)
inlinestaticnodiscardconstexpr

Convert FuelType to its name, or 0 if nullptr.

Parameters
fuelFuelType to convert
Returns
Name for FuelType, or "NULL" if nullptr
Here is the call graph for this function:
Here is the caller graph for this function:

◆ surfaceFuelConsumption()

virtual MathSize fs::fuel::FuelType::surfaceFuelConsumption ( const SpreadInfo & spread) const
nodiscardpure virtual

Surface fuel consumption (SFC) (kg/m^2) [ST-X-3 eq 9-25].

Parameters
spreadSpreadInfo to use
Returns
Surface fuel consumption (SFC) (kg/m^2) [ST-X-3 eq 9-25]

Implemented in fs::fuel::fbp::FuelC1, fs::fuel::fbp::FuelC2, fs::fuel::fbp::FuelC7, fs::fuel::fbp::FuelD1, fs::fuel::fbp::FuelD2, fs::fuel::FuelGrass< A, B, C >, fs::fuel::FuelGrass< 190, 310, 140 >, fs::fuel::FuelGrass< 250, 350, 170 >, fs::fuel::FuelJackpine< A, B, C, Bui0, Cbh, Cfl, BulkDensity, DuffDepth >, fs::fuel::FuelJackpine< 110, 293, 150, 66, 4, 120, 31, 62 >, fs::fuel::FuelJackpine< 110, 444, 300, 62, 8, 115, 20, 65 >, fs::fuel::FuelMixed< A, B, C, Bui0, RosMultiplier, PercentMixed, BulkDensity, InorganicPercent, DuffDepth >, fs::fuel::FuelMixed< 110, 282, 150, 50, RosMultiplier, RatioMixed, 108, 25, 50 >, fs::fuel::FuelMixed< A, B, C, Bui0, RosMultiplier, PercentDeadFir, 61, 15, 75 >, fs::fuel::FuelMixedWood< RosMultiplier, RatioMixed >, fs::fuel::FuelMixedWood< 10, PercentConifer >, fs::fuel::FuelMixedWood< 2, PercentConifer >, fs::fuel::FuelPine< A, B, C, Bui0, Cbh, Cfl, BulkDensity, DuffDepth >, fs::fuel::FuelPine< 30, 697, 400, 56, 18, 120, 93, 46 >, fs::fuel::FuelPine< 30, 800, 300, 62, 7, 180, 50, 50 >, fs::fuel::FuelSlash< A, B, C, Bui0, FfcA, FfcB, WfcA, WfcB, BulkDensity >, fs::fuel::FuelSlash< 40, 438, 170, 63, 10, -130, 6, -600, 132 >, fs::fuel::FuelSlash< 55, 829, 320, 31, 12, -166, 20, -210, 100 >, fs::fuel::FuelSlash< 75, 297, 130, 38, 4, -250, 4, -340, 78 >, fs::fuel::FuelVariable< FuelSpring, FuelSummer >, fs::fuel::FuelVariable< FuelD1, FuelD2 >, fs::fuel::FuelVariable< FuelM1< PercentConifer >, FuelM2< PercentConifer > >, fs::fuel::FuelVariable< FuelM3< PercentDeadFir >, FuelM4< PercentDeadFir > >, fs::fuel::FuelVariable< FuelO1A, FuelO1B >, and fs::fuel::InvalidFuel.

Here is the caller graph for this function:

◆ survivalProbability()

virtual ThresholdSize fs::fuel::FuelType::survivalProbability ( const wx::FwiWeather & wx) const
nodiscardpure virtualnoexcept

Survival probability calculated using probability of ony survival based on multiple formulae.

Parameters
wxFwiWeather to calculate survival probability for
Returns
Chance of survival (% / 100)

Implemented in fs::fuel::FuelBase< BulkDensity, InorganicPercent, DuffDepth >, fs::fuel::FuelVariable< FuelSpring, FuelSummer >, fs::fuel::FuelVariable< FuelD1, FuelD2 >, fs::fuel::FuelVariable< FuelM1< PercentConifer >, FuelM2< PercentConifer > >, fs::fuel::FuelVariable< FuelM3< PercentDeadFir >, FuelM4< PercentDeadFir > >, fs::fuel::FuelVariable< FuelO1A, FuelO1B >, and fs::fuel::InvalidFuel.

Here is the caller graph for this function:

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