Skip to content

Commit f3c3506

Browse files
committed
Separate active crown flame length
1 parent eab3bd5 commit f3c3506

4 files changed

Lines changed: 28 additions & 2 deletions

File tree

src/behave/spot.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ void Spot::calculateSpottingDistanceFromActiveCrown() {
291291
double treeHeight = calculateTreeHeight(LengthUnits::Meters);
292292

293293
double firelineIntensity = spotInputs_.getCrownFirelineIntensity(FirelineIntensityUnits::KilowattsPerMeter);
294-
double flameLength = spotInputs_.getSurfaceFlameLength(LengthUnits::Meters);
294+
double flameLength = spotInputs_.getActiveCrownFlameLength(LengthUnits::Meters);
295295

296296
// Use Byram (1959) FLI approximation if FLI is null
297297
if ((std::abs(firelineIntensity) < 0.01) && (flameLength > 0.0)) {
@@ -464,6 +464,11 @@ void Spot::setFlameLength(double flameLength, LengthUnits::LengthUnitsEnum flame
464464
spotInputs_.setSurfaceFlameLength(flameLength, flameLengthUnits);
465465
}
466466

467+
void Spot::setActiveCrownFlameLength(double activeCrownFlameLength, LengthUnits::LengthUnitsEnum flameLengthUnits)
468+
{
469+
spotInputs_.setActiveCrownFlameLength(activeCrownFlameLength, flameLengthUnits);
470+
}
471+
467472
void Spot::setFirelineIntensity(double firelineIntensity, FirelineIntensityUnits::FirelineIntensityUnitsEnum firelineIntensityUnits)
468473
{
469474
spotInputs_.setCrownFirelineIntensity(firelineIntensity, firelineIntensityUnits);
@@ -567,6 +572,11 @@ double Spot::getSurfaceFlameLength(LengthUnits::LengthUnitsEnum flameLengthUnits
567572
return spotInputs_.getSurfaceFlameLength(flameLengthUnits);
568573
}
569574

575+
double Spot::getActiveCrownFlameLength(LengthUnits::LengthUnitsEnum flameLengthUnits) const
576+
{
577+
return spotInputs_.getActiveCrownFlameLength(flameLengthUnits);
578+
}
579+
570580
double Spot::getCrownFirelineIntensity(FirelineIntensityUnits::FirelineIntensityUnitsEnum firelineIntensityUnits) const
571581
{
572582
return spotInputs_.getCrownFirelineIntensity(firelineIntensityUnits);

src/behave/spot.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ class Spot
5757
void setDownwindCoverHeight(double downwindCoverHeight, LengthUnits::LengthUnitsEnum coverHeightUnits);
5858
void setDownwindCanopyMode(SpotDownWindCanopyMode::SpotDownWindCanopyModeEnum downwindCanopyMode);
5959
void setFlameLength(double flameLength, LengthUnits::LengthUnitsEnum flameLengthUnits);
60+
void setActiveCrownFlameLength(double activeCrownFlameLength, LengthUnits::LengthUnitsEnum flameLengthUnits);
6061
void setFirelineIntensity(double firelineIntensity, FirelineIntensityUnits::FirelineIntensityUnitsEnum firelineIntensityUnits);
6162
void setLocation(SpotFireLocation::SpotFireLocationEnum location);
6263
void setRidgeToValleyDistance(double ridgeToValleyDistance, LengthUnits::LengthUnitsEnum ridgeToValleyDistanceUnits);
@@ -91,6 +92,7 @@ class Spot
9192
double getDownwindCoverHeight(LengthUnits::LengthUnitsEnum coverHeightUnits) const;
9293
SpotDownWindCanopyMode::SpotDownWindCanopyModeEnum getDownwindCanopyMode() const;
9394
double getSurfaceFlameLength(LengthUnits::LengthUnitsEnum surfaceFlameLengthUnits) const;
95+
double getActiveCrownFlameLength(LengthUnits::LengthUnitsEnum flameLengthUnits) const;
9496
double getCrownFirelineIntensity(FirelineIntensityUnits::FirelineIntensityUnitsEnum firelineIntensityUnits) const;
9597
SpotFireLocation::SpotFireLocationEnum getLocation() const;
9698
double getRidgeToValleyDistance(LengthUnits::LengthUnitsEnum ridgeToValleyDistanceUnits) const;

src/behave/spotInputs.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@ void SpotInputs::setSurfaceFlameLength(double surfaceFlameLength, LengthUnits::L
5757
surfaceFlameLength_ = LengthUnits::toBaseUnits(surfaceFlameLength, flameLengthUnits);
5858
}
5959

60+
void SpotInputs::setActiveCrownFlameLength(double activeCrownFlameLength, LengthUnits::LengthUnitsEnum flameLengthUnits)
61+
{
62+
activeCrownFlameLength_ = LengthUnits::toBaseUnits(activeCrownFlameLength, flameLengthUnits);
63+
}
64+
6065
void SpotInputs::setCrownFirelineIntensity(double crownFirelineIntensity, FirelineIntensityUnits::FirelineIntensityUnitsEnum firelineIntensityUnits) {
6166
crownFirelineIntensity_ = FirelineIntensityUnits::toBaseUnits(crownFirelineIntensity, firelineIntensityUnits);
6267
}
@@ -156,7 +161,7 @@ void SpotInputs::updateSpotInputsForActiveCrownFire(
156161
{
157162
initializeMembers();
158163
setLocation(location);
159-
setSurfaceFlameLength(activeCrownFlameLength, flameLengthUnits);
164+
setActiveCrownFlameLength(activeCrownFlameLength, flameLengthUnits);
160165
setRidgeToValleyDistance(ridgeToValleyDistance, ridgeToValleyDistanceUnits);
161166
setRidgeToValleyElevation(ridgeToValleyElevation, elevationUnits);
162167
setTreeHeight(treeHeight, treeHeightUnits);
@@ -189,6 +194,11 @@ double SpotInputs::getSurfaceFlameLength(LengthUnits::LengthUnitsEnum surfaceFla
189194
return LengthUnits::fromBaseUnits(surfaceFlameLength_, surfaceFlameLengthUnits);
190195
}
191196

197+
double SpotInputs::getActiveCrownFlameLength(LengthUnits::LengthUnitsEnum activeCrownFlameLengthUnits) const
198+
{
199+
return LengthUnits::fromBaseUnits(activeCrownFlameLength_, activeCrownFlameLengthUnits);
200+
}
201+
192202
double SpotInputs::getCrownFirelineIntensity(FirelineIntensityUnits::FirelineIntensityUnitsEnum firelineIntensityUnits) const
193203
{
194204
return FirelineIntensityUnits::fromBaseUnits(crownFirelineIntensity_, firelineIntensityUnits);
@@ -231,6 +241,7 @@ double SpotInputs::getWindSpeedAtTwentyFeet(SpeedUnits::SpeedUnitsEnum windSpeed
231241

232242
void SpotInputs::initializeMembers()
233243
{
244+
activeCrownFlameLength_ = 0.0;
234245
downwindCoverHeight_ = 0.0;
235246
downwindCanopyMode_ = SpotDownWindCanopyMode::CLOSED;
236247
crownFirelineIntensity_ = 0.0;

src/behave/spotInputs.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ class SpotInputs
8282
void setDownwindCoverHeight(double downwindCoverHeight, LengthUnits::LengthUnitsEnum coverHeightUnits);
8383
void setDownwindCanopyMode(SpotDownWindCanopyMode::SpotDownWindCanopyModeEnum downwindCanopyMode);
8484
void setSurfaceFlameLength(double surfaceFlameLength, LengthUnits::LengthUnitsEnum flameLengthUnits);
85+
void setActiveCrownFlameLength(double activeCrownFlameLength, LengthUnits::LengthUnitsEnum flameLengthUnits);
8586
void setCrownFirelineIntensity(double crownFirelineIntensity, FirelineIntensityUnits::FirelineIntensityUnitsEnum firelineIntensityUnits);
8687
void setLocation(SpotFireLocation::SpotFireLocationEnum location);
8788
void setRidgeToValleyDistance(double ridgeToValleyDistance, LengthUnits::LengthUnitsEnum ridgeToValleyDistanceUnits);
@@ -114,6 +115,7 @@ class SpotInputs
114115
double getDownwindCoverHeight(LengthUnits::LengthUnitsEnum coverHeightUnits) const;
115116
SpotDownWindCanopyMode::SpotDownWindCanopyModeEnum getDownWindCanopyMode() const;
116117
double getSurfaceFlameLength(LengthUnits::LengthUnitsEnum flameLengthUnits) const;
118+
double getActiveCrownFlameLength(LengthUnits::LengthUnitsEnum activeCrownFlameLengthUnits) const;
117119
double getCrownFirelineIntensity(FirelineIntensityUnits::FirelineIntensityUnitsEnum firelineIntensityUnits) const;
118120
SpotFireLocation::SpotFireLocationEnum getLocation() const;
119121
double getRidgeToValleyDistance(LengthUnits::LengthUnitsEnum ridgeToValleyDistanceUnits) const;
@@ -136,6 +138,7 @@ class SpotInputs
136138
protected:
137139
void initializeMembers();
138140

141+
double activeCrownFlameLength_ = 0.0;
139142
double DBH_ = 0.0;
140143
double downwindCoverHeight_ = 0.0;
141144
SpotDownWindCanopyMode::SpotDownWindCanopyModeEnum downwindCanopyMode_;

0 commit comments

Comments
 (0)