16static constexpr int MAX_SPREAD_ANGLE = 5.0;
17static constexpr MathSize INVALID_ROS = -1.0;
18static constexpr MathSize INVALID_INTENSITY = -1.0;
24int calculate_nd_ref_for_point(
const int elevation,
const topo::Point& point)
noexcept;
25int calculate_nd_for_point(
const Day day,
const int elevation,
const topo::Point& point);
39 const topo::SpreadKey& key,
52 const topo::SpreadKey& key,
71 return std::numeric_limits<ThresholdSize>::infinity();
79 return 25.0 / 4.0 *
log(-(exp(41.0 / 25.0) * threshold) / (threshold - 1));
93 [[nodiscard]]
const OffsetSet&
offsets()
const
109 [[nodiscard]]
constexpr int nd()
const
173 [[nodiscard]]
constexpr DurationSize
time()
const
205 [[nodiscard]]
constexpr MathSize
headRos()
const
238 : 85.0 + 0.0189 *
nd_ *
nd_;
262 raz_(fs::wx::Direction::Invalid),
271 const MathSize latitude,
272 const MathSize longitude,
273 const ElevationSize elevation,
274 const SlopeSize slope,
275 const AspectSize aspect,
276 const char* fuel_name,
277 const wx::FwiWeather*
weather);
279 const tm& start_date,
280 const MathSize latitude,
281 const MathSize longitude,
282 const ElevationSize elevation,
283 const SlopeSize slope,
284 const AspectSize aspect,
285 const char* fuel_name,
286 const wx::FwiWeather*
weather);
287 MathSize crownFractionBurned()
const
291 MathSize crownFuelConsumption()
const
295 char fireDescription()
const
297 return cfb_ >= 0.9 ?
'C' : (cfb_ < 0.1 ?
'S' :
'I');
299 MathSize surfaceFuelConsumption()
const
303 MathSize totalFuelConsumption()
const
311 SpreadInfo(DurationSize time,
314 const SlopeSize slope,
315 const AspectSize aspect,
316 const char* fuel_name,
318 const wx::FwiWeather*
weather);
319 SpreadInfo(DurationSize time,
322 const topo::SpreadKey& key,
324 const wx::FwiWeather*
weather);
325 SpreadInfo(DurationSize time,
328 const topo::SpreadKey& key,
331 const wx::FwiWeather* weather_daily);
336 static MathSize
initial(SpreadInfo& spread,
338 MathSize& ffmc_effect,
341 const fuel::FuelType*
const fuel,
343 MathSize heading_sin,
344 MathSize heading_cos,
347 MathSize critical_surface_intensity);
A single Scenario in an Iteration using a specific FireWeather stream.
Definition Scenario.h:38
Information regarding spread within a Cell for a specific Scenario and time.
Definition FireSpread.h:30
fs::wx::Direction raz_
Head fire spread direction.
Definition FireSpread.h:381
constexpr fs::wx::Direction headDirection() const
Head fire spread direction.
Definition FireSpread.h:213
static constexpr MathSize calculateRosFromThreshold(const ThresholdSize threshold)
Determine rate of spread from probability of spread threshold.
Definition FireSpread.h:66
constexpr const wx::Dmc & dmc() const
Duff Moisture Code used for spread.
Definition FireSpread.h:149
wx::FwiWeather const * weather_
FwiWeather determining spread.
Definition FireSpread.h:363
MathSize max_intensity_
Maximum intensity in any direction for spread (kW/m)
Definition FireSpread.h:355
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)
Definition FireSpread.cpp:80
constexpr const wx::Bui & bui() const
Build-up Index used for spread.
Definition FireSpread.h:141
int nd_
Difference between date and the date of minimum foliar moisture content (from ST-X-3)
Definition FireSpread.h:385
static const SlopeTableArray SlopeTable
Lookup table for Slope Factor calculated from Percent Slope.
Definition FireSpread.h:35
constexpr MathSize lengthToBreadth() const
Length to breadth ratio used for spread.
Definition FireSpread.h:181
constexpr const wx::Ffmc & ffmc() const
Fine Fuel Moisture Code used for spread.
Definition FireSpread.h:133
MathSize head_ros_
Head fire rate of spread (m/min)
Definition FireSpread.h:372
constexpr SlopeSize percentSlope() const
Slope used for spread (%)
Definition FireSpread.h:189
constexpr MathSize foliarMoisture() const
Calculate foliar moisture.
Definition FireSpread.h:231
MathSize maxIntensity() const noexcept
Maximum intensity in any direction for spread (kW/m)
Definition FireSpread.h:85
constexpr const wx::Wind & wind() const
Wind used for spread.
Definition FireSpread.h:125
DurationSize time_
Time that spread is occurring.
Definition FireSpread.h:367
constexpr int nd() const
Difference between date and the date of minimum foliar moisture content.
Definition FireSpread.h:109
constexpr bool isNotSpreading() const
Whether or not there is no spread.
Definition FireSpread.h:101
constexpr MathSize headRos() const
Head fire rate of spread (m/min)
Definition FireSpread.h:205
constexpr const wx::Dc & dc() const
Drought Code used for spread.
Definition FireSpread.h:157
constexpr DurationSize time() const
Time used for spread.
Definition FireSpread.h:173
constexpr MathSize slopeFactor() const
Slope factor calculated from percent slope.
Definition FireSpread.h:221
constexpr MathSize ffmcEffect() const
FFMC effect used for spread.
Definition FireSpread.h:165
constexpr AspectSize slopeAzimuth() const
Aspect used for spread (degrees)
Definition FireSpread.h:197
constexpr bool isInvalid() const
Whether or not there is no spread for given conditions.
Definition FireSpread.h:244
topo::SpreadKey key_
Attributes for Cell spread is occurring in.
Definition FireSpread.h:359
constexpr const wx::FwiWeather * weather() const
FwiWeather used for spread.
Definition FireSpread.h:117
OffsetSet offsets_
Offsets from origin point that represent spread under these conditions.
Definition FireSpread.h:351
const OffsetSet & offsets() const
Offsets from origin point that represent spread under these conditions.
Definition FireSpread.h:93
constexpr AspectSize aspect() const noexcept
Aspect (degrees)
Definition Cell.h:198
constexpr SlopeSize slope() const noexcept
Slope (degrees)
Definition Cell.h:214
Build-up Index value.
Definition FWI.h:130
Drought Code value.
Definition FWI.h:73
Direction with access to degrees or radians.
Definition Weather.h:64
Duff Moisture Code value.
Definition FWI.h:43
Fine Fuel Moisture Code value.
Definition FWI.h:15
A Weather value with calculated FWI indices.
Definition FWI.h:209
constexpr const Bui & bui() const
Build-up Index.
Definition FWI.h:374
constexpr MathSize ffmcEffect() const
Ffmc effect used for spread.
Definition FWI.h:422
constexpr const Dmc & dmc() const
Duff Moisture Code.
Definition FWI.h:350
constexpr const Ffmc & ffmc() const
Fine Fuel Moisture Code.
Definition FWI.h:342
constexpr const Dc & dc() const
Drought Code.
Definition FWI.h:358
constexpr const Wind & wind() const noexcept
Wind (km/h)
Definition Weather.h:368
Wind with a Speed and Direction.
Definition Weather.h:139