FireSTARR
Loading...
Searching...
No Matches
fs::sim::SpreadInfo Class Reference

Information regarding spread within a Cell for a specific Scenario and time. More...

#include <FireSpread.h>

Collaboration diagram for fs::sim::SpreadInfo:

Public Member Functions

 SpreadInfo (const Scenario &scenario, DurationSize time, const topo::SpreadKey &key, int nd, const wx::FwiWeather *weather)
 
 SpreadInfo (const Scenario &scenario, DurationSize time, const topo::SpreadKey &key, int nd, const wx::FwiWeather *weather, const wx::FwiWeather *weather_daily)
 Calculate fire spread for time and place.
 
constexpr SpreadInfo (SpreadInfo &&rhs) noexcept=default
 
 SpreadInfo (const SpreadInfo &rhs) noexcept=default
 
constexpr SpreadInfooperator= (SpreadInfo &&rhs) noexcept=default
 
SpreadInfooperator= (const SpreadInfo &rhs) noexcept=default
 
MathSize maxIntensity () const noexcept
 Maximum intensity in any direction for spread (kW/m)
 
const OffsetSet & offsets () const
 Offsets from origin point that represent spread under these conditions.
 
constexpr bool isNotSpreading () const
 Whether or not there is no spread.
 
constexpr int nd () const
 Difference between date and the date of minimum foliar moisture content.
 
constexpr const wx::FwiWeatherweather () const
 FwiWeather used for spread.
 
constexpr const wx::Windwind () const
 Wind used for spread.
 
constexpr const wx::Ffmcffmc () const
 Fine Fuel Moisture Code used for spread.
 
constexpr const wx::Buibui () const
 Build-up Index used for spread.
 
constexpr const wx::Dmcdmc () const
 Duff Moisture Code used for spread.
 
constexpr const wx::Dcdc () const
 Drought Code used for spread.
 
constexpr MathSize ffmcEffect () const
 FFMC effect used for spread.
 
constexpr DurationSize time () const
 Time used for spread.
 
constexpr MathSize lengthToBreadth () const
 Length to breadth ratio used for spread.
 
constexpr SlopeSize percentSlope () const
 Slope used for spread (%)
 
constexpr AspectSize slopeAzimuth () const
 Aspect used for spread (degrees)
 
constexpr MathSize headRos () const
 Head fire rate of spread (m/min)
 
constexpr fs::wx::Direction headDirection () const
 Head fire spread direction.
 
constexpr MathSize slopeFactor () const
 Slope factor calculated from percent slope.
 
constexpr MathSize foliarMoisture () const
 Calculate foliar moisture.
 
constexpr bool isInvalid () const
 Whether or not there is no spread for given conditions.
 
 SpreadInfo (const int year, const int month, const int day, const int hour, const int minute, const MathSize latitude, const MathSize longitude, const ElevationSize elevation, const SlopeSize slope, const AspectSize aspect, const char *fuel_name, const wx::FwiWeather *weather)
 
 SpreadInfo (const tm &start_date, const MathSize latitude, const MathSize longitude, const ElevationSize elevation, const SlopeSize slope, const AspectSize aspect, const char *fuel_name, const wx::FwiWeather *weather)
 
MathSize crownFractionBurned () const
 
MathSize crownFuelConsumption () const
 
char fireDescription () const
 
MathSize surfaceFuelConsumption () const
 
MathSize totalFuelConsumption () const
 

Static Public Member Functions

static constexpr MathSize calculateRosFromThreshold (const ThresholdSize threshold)
 Determine rate of spread from probability of spread threshold.
 

Static Public Attributes

static const SlopeTableArray SlopeTable = make_slope_table()
 Lookup table for Slope Factor calculated from Percent Slope.
 

Private Member Functions

 SpreadInfo (DurationSize time, MathSize min_ros, MathSize cell_size, const SlopeSize slope, const AspectSize aspect, const char *fuel_name, int nd, const wx::FwiWeather *weather)
 
 SpreadInfo (DurationSize time, MathSize min_ros, MathSize cell_size, const topo::SpreadKey &key, int nd, const wx::FwiWeather *weather)
 
 SpreadInfo (DurationSize time, MathSize min_ros, MathSize cell_size, const topo::SpreadKey &key, int nd, const wx::FwiWeather *weather, const wx::FwiWeather *weather_daily)
 

Static Private Member Functions

static MathSize initial (SpreadInfo &spread, const wx::FwiWeather &weather, MathSize &ffmc_effect, MathSize &wsv, MathSize &rsoi, const fuel::FuelType *const fuel, bool has_no_slope, MathSize heading_sin, MathSize heading_cos, MathSize bui_eff, MathSize min_ros, MathSize critical_surface_intensity)
 

Private Attributes

OffsetSet offsets_ {}
 Offsets from origin point that represent spread under these conditions.
 
MathSize max_intensity_
 Maximum intensity in any direction for spread (kW/m)
 
topo::SpreadKey key_
 Attributes for Cell spread is occurring in.
 
wx::FwiWeather const * weather_
 FwiWeather determining spread.
 
DurationSize time_
 Time that spread is occurring.
 
MathSize l_b_
 
MathSize head_ros_
 Head fire rate of spread (m/min)
 
MathSize cfb_
 
MathSize cfc_
 
MathSize tfc_
 
MathSize sfc_
 
bool is_crown_
 
fs::wx::Direction raz_
 Head fire spread direction.
 
int nd_
 Difference between date and the date of minimum foliar moisture content (from ST-X-3)
 

Detailed Description

Information regarding spread within a Cell for a specific Scenario and time.

Constructor & Destructor Documentation

◆ SpreadInfo() [1/2]

fs::sim::SpreadInfo::SpreadInfo ( const Scenario & scenario,
DurationSize time,
const topo::SpreadKey & key,
int nd,
const wx::FwiWeather * weather,
const wx::FwiWeather * weather_daily )

Calculate fire spread for time and place.

Parameters
scenarioScenario this is spreading in
timeTime spread is occurring
keyAttributes for Cell spread is occurring in
ndDifference between date and the date of minimum foliar moisture content
weatherFwiWeather to use for calculations

◆ SpreadInfo() [2/2]

fs::sim::SpreadInfo::SpreadInfo ( DurationSize time,
MathSize min_ros,
MathSize cell_size,
const SlopeSize slope,
const AspectSize aspect,
const char * fuel_name,
int nd,
const wx::FwiWeather * weather )
private

Actual fire spread calculation without needing to worry about settings or scenarios

Member Function Documentation

◆ bui()

const wx::Bui & fs::sim::SpreadInfo::bui ( ) const
inlinenodiscardconstexpr

Build-up Index used for spread.

Returns
Build-up Index used for spread
Here is the call graph for this function:

◆ calculateRosFromThreshold()

static constexpr MathSize fs::sim::SpreadInfo::calculateRosFromThreshold ( const ThresholdSize threshold)
inlinestaticnodiscardconstexpr

Determine rate of spread from probability of spread threshold.

Parameters
thresholdProbability of spread threshold
Returns
Rate of spread at given threshold (m/min)
Here is the caller graph for this function:

◆ dc()

const wx::Dc & fs::sim::SpreadInfo::dc ( ) const
inlinenodiscardconstexpr

Drought Code used for spread.

Returns
Drought Code used for spread
Here is the call graph for this function:

◆ dmc()

const wx::Dmc & fs::sim::SpreadInfo::dmc ( ) const
inlinenodiscardconstexpr

Duff Moisture Code used for spread.

Returns
Duff Moisture Code used for spread
Here is the call graph for this function:

◆ ffmc()

const wx::Ffmc & fs::sim::SpreadInfo::ffmc ( ) const
inlinenodiscardconstexpr

Fine Fuel Moisture Code used for spread.

Returns
Fine Fuel Moisture Code used for spread
Here is the call graph for this function:

◆ ffmcEffect()

MathSize fs::sim::SpreadInfo::ffmcEffect ( ) const
inlinenodiscardconstexpr

FFMC effect used for spread.

Returns
FFMC effect used for spread
Here is the call graph for this function:
Here is the caller graph for this function:

◆ foliarMoisture()

MathSize fs::sim::SpreadInfo::foliarMoisture ( ) const
inlinenodiscardconstexpr

Calculate foliar moisture.

Returns
Calculated foliar moisture

◆ headDirection()

fs::wx::Direction fs::sim::SpreadInfo::headDirection ( ) const
inlinenodiscardconstexpr

Head fire spread direction.

Returns
Head fire spread direction

◆ headRos()

MathSize fs::sim::SpreadInfo::headRos ( ) const
inlinenodiscardconstexpr

Head fire rate of spread (m/min)

Returns
Head fire rate of spread (m/min)

◆ initial()

MathSize fs::sim::SpreadInfo::initial ( SpreadInfo & spread,
const wx::FwiWeather & weather,
MathSize & ffmc_effect,
MathSize & wsv,
MathSize & rsoi,
const fuel::FuelType *const fuel,
bool has_no_slope,
MathSize heading_sin,
MathSize heading_cos,
MathSize bui_eff,
MathSize min_ros,
MathSize critical_surface_intensity )
staticprivate

Do initial spread calculations

Returns
Initial head ros calculation (-1 for none)
Here is the call graph for this function:

◆ isInvalid()

bool fs::sim::SpreadInfo::isInvalid ( ) const
inlinenodiscardconstexpr

Whether or not there is no spread for given conditions.

Returns
Whether or not there is no spread for given conditions
Here is the caller graph for this function:

◆ isNotSpreading()

bool fs::sim::SpreadInfo::isNotSpreading ( ) const
inlinenodiscardconstexpr

Whether or not there is no spread.

Returns
Whether or not there is no spread
Here is the call graph for this function:

◆ lengthToBreadth()

MathSize fs::sim::SpreadInfo::lengthToBreadth ( ) const
inlinenodiscardconstexpr

Length to breadth ratio used for spread.

Returns
Length to breadth ratio used for spread

◆ maxIntensity()

MathSize fs::sim::SpreadInfo::maxIntensity ( ) const
inlinenodiscardnoexcept

Maximum intensity in any direction for spread (kW/m)

Returns
Maximum intensity in any direction for spread (kW/m)

◆ nd()

int fs::sim::SpreadInfo::nd ( ) const
inlinenodiscardconstexpr

Difference between date and the date of minimum foliar moisture content.

Returns
Difference between date and the date of minimum foliar moisture content
Here is the caller graph for this function:

◆ offsets()

const OffsetSet & fs::sim::SpreadInfo::offsets ( ) const
inlinenodiscard

Offsets from origin point that represent spread under these conditions.

Returns
Offsets from origin point that represent spread under these conditions

◆ percentSlope()

SlopeSize fs::sim::SpreadInfo::percentSlope ( ) const
inlinenodiscardconstexpr

Slope used for spread (%)

Returns
Slope used for spread (%)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ slopeAzimuth()

AspectSize fs::sim::SpreadInfo::slopeAzimuth ( ) const
inlinenodiscardconstexpr

Aspect used for spread (degrees)

Returns
Aspect used for spread (degrees)
Here is the call graph for this function:

◆ slopeFactor()

MathSize fs::sim::SpreadInfo::slopeFactor ( ) const
inlinenodiscardconstexpr

Slope factor calculated from percent slope.

Returns
Slope factor calculated from percent slope
Here is the call graph for this function:

◆ time()

DurationSize fs::sim::SpreadInfo::time ( ) const
inlinenodiscardconstexpr

Time used for spread.

Returns
Time used for spread

◆ weather()

const wx::FwiWeather * fs::sim::SpreadInfo::weather ( ) const
inlinenodiscardconstexpr

FwiWeather used for spread.

Returns
FwiWeather used for spread
Here is the caller graph for this function:

◆ wind()

const wx::Wind & fs::sim::SpreadInfo::wind ( ) const
inlinenodiscardconstexpr

Wind used for spread.

Returns
Wind used for spread
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 files: