Interface CWFGM Fuel. More...
import "FuelCom.idl";
Public Member Functions | |
HRESULT | MT_Lock ([in] unsigned short exclusive, [in] unsigned short obtain) |
HRESULT | Clone ([out]ICWFGM_Fuel **newFuel) |
HRESULT | FMC ([in]double latitude, [in]double longitude, [in]double elev, [in]unsigned short day, [out, retval]double *fmc) |
HRESULT | CalculateROSValues ([in]double GS, [in]double SAZ, [in]double WS, [in]double WAZ, [in]double BUI, [in]double FMC, [in]double FFMC, [in]double fF, [in]ULONGLONG time, [in]ULONGLONG ffmc_time, [in] short flag, [out]double *rss, [out]double *roseq, [out]double *ros, [out]double *frss, [out]double *froseq, [out]double *fros, [out]double *brss, [out]double *broseq, [out]double *bros, [out]double *wsv, [out]double *raz) |
HRESULT | CalculateFCValues ([in]double FFMC, [in]double BUI, [in]double FMC, [in]double RSS, [in]double ROS, [in]short flag, [out]double *cfb, [out]double *cfc, [out]double *rso, [out]double *csi, [out]double *sfc, [out]double *tfc, [out]double *fi) |
HRESULT | CalculateStatistics ([in]double ROS, [in]double FROS, [in]double BROS, [in]double CFB, [in]ULONGLONG time, [in]short flag, [out]double *area, [out]double *perimeter) |
HRESULT | CalculateDistances ([in]double ROS, [in]double FROS, [in]double BROS, [in]double CFB, [in]ULONGLONG time, [in]short flag, [out]double *dhead, [out]double *dflank, [out]double *dback) |
HRESULT | ISF ([in]double RSF, [in]double SF, [in]double ISZ, [in]short flag,[out]double *isfValue) |
HRESULT | SFC ([in] double FFMC, [in] double BUI, [in] short flag, [out, retval] double *sfc) |
HRESULT | RSI ([in]double FFMC, [in]double BUI, [in]double FMC, [in]double ISI, [in] short flag, [out, retval]double *rsi) |
HRESULT | IsConiferFuelType ([out, retval] VARIANT_BOOL *retbool) |
HRESULT | IsDeciduousFuelType ([out, retval] VARIANT_BOOL *retbool) |
HRESULT | IsMixedFuelType ([out, retval] VARIANT_BOOL *retbool) |
HRESULT | IsGrassFuelType ([out, retval] VARIANT_BOOL *retbool) |
HRESULT | IsC6FuelType ([out, retval] VARIANT_BOOL *retbool) |
HRESULT | IsMixedDeadFirFuelType ([out, retval]VARIANT_BOOL *retbool) |
HRESULT | IsSlashFuelType ([out, retval]VARIANT_BOOL *retbool) |
HRESULT | IsNonFuel ([out, retval] VARIANT_BOOL *retbool) |
HRESULT | GetDefaultCLSID ([out, retval] CLSID *clsId) |
HRESULT | GetAttribute ([in]unsigned short option, [out, retval]VARIANT *value) |
HRESULT | SetAttribute ([in]unsigned short option, [in]VARIANT value) |
Properties | |
BSTR | Name [get] |
VARIANT | UserData [get, set] |
Interface CWFGM Fuel.
ICWFGM_Fuel interface is a generic interface used by the FireEngine Module (or other tools such as FBPTester) to extract a variety of statistical data about the fuel type given specific conditions.
A given simulation/scenario may use many fuel types, each via the ICWFGM_Fuel COM interface for the purposes of calculating values such as rate-of-spread (ROS). A fuel type may match the published FBP standard, or it may have different, user-defined coefficients for the equations. A fuel type may also represent a fuel that is not defined by the FBP standard (e.g. urban areas).
Applications can also define new fuel types outside the FBP standard that may work with the simulation engine providing they conform to this interface definition and semantics.
ICWFGM_Fuel::CalculateDistances | ( | [in] double | ROS, |
[in] double | FROS, | ||
[in] double | BROS, | ||
[in] double | CFB, | ||
[in] ULONGLONG | time, | ||
[in] short | flag, | ||
[out] double * | dhead, | ||
[out] double * | dflank, | ||
[out] double * | dback | ||
) |
Calculates spread distances of the theoretical ellipse defined by ROS, FROS, BROS.
ROS | Equilibrium rate of spread (metres per minute). |
FROS | Equilibrium flank rate of spread (metres per minute). |
BROS | Equilibrium back rate of spread (metres per minute). |
CFB | Crown fraction burned. |
time | Time since fire start, important if acceleration is turned on. |
flag | A combination of
|
dhead | Calculated value, head fire spread distance. |
dflank | Calculated value, flank fire spread distance. |
dback | Calculated value, back fire spread distance. |
ICWFGM_Fuel::CalculateFCValues | ( | [in] double | FFMC, |
[in] double | BUI, | ||
[in] double | FMC, | ||
[in] double | RSS, | ||
[in] double | ROS, | ||
[in] short | flag, | ||
[out] double * | cfb, | ||
[out] double * | cfc, | ||
[out] double * | rso, | ||
[out] double * | csi, | ||
[out] double * | sfc, | ||
[out] double * | tfc, | ||
[out] double * | fi | ||
) |
Given several input parameters, calculates FC (fuel consumption) values. The specific set of equations used to calculate FC values is determined by the fuel type and/or any modifications which have been applied. Automatic caching of previously calculated values is performed for efficiency.
FFMC | Fine fuel moister code (FWI output) |
BUI | Buildup index (FWI output) |
FMC | Foliar moisture code (FBP output) (0-1) |
RSS | (metres per minute) |
ROS | Rate of spread (metres per minute) |
flag | A combination of
|
cfb | Calculated value, crown fraction burned (unitless). |
cfc | Calculated value, crown fuel consumption (kg/m2). |
rso | Calculated value, critical spread rate for crowning |
csi | Calculated value, critical surface intensity for crowning |
sfc | Calculated value, surface fuel consumption (kg/m2). |
tfc | Calculated value, total fuel consumption (kg/m2). |
fi | Calculated value, fire intensity |
ICWFGM_Fuel::CalculateROSValues | ( | [in] double | GS, |
[in] double | SAZ, | ||
[in] double | WS, | ||
[in] double | WAZ, | ||
[in] double | BUI, | ||
[in] double | FMC, | ||
[in] double | FFMC, | ||
[in] double | fF, | ||
[in] ULONGLONG | t, | ||
[in] ULONGLONG | ffmc_t, | ||
[in] short | flag, | ||
[out] double * | rss, | ||
[out] double * | roseq, | ||
[out] double * | ros, | ||
[out] double * | frss, | ||
[out] double * | froseq, | ||
[out] double * | fros, | ||
[out] double * | brss, | ||
[out] double * | broseq, | ||
[out] double * | bros, | ||
[out] double * | wsv, | ||
[out] double * | raz | ||
) |
Given several input parameters, calculates various of rate of spread (ROS) values. The specific set of equations used to calculate ROS values is determined by the fuel type and/or any modifications which have been applied. Automatic caching of previously calculated values is performed for efficiency.
GS | Percentage ground slope specified as a decimal value (0 - 1) |
SAZ | Slope azimuth, upslope (radians, Cartesian) |
WS | Observed wind speed (kph) |
WAZ | Wind azimuth (radians, Cartesian) |
BUI | Buildup index (FWI output) |
FMC | Foliar moisture code (FBP output) (0-1) |
FFMC | Fine fuel moister code (FWI output) |
fF | Fine fuel moisture function in the ISI (FWI output) |
t | Time in seconds since ignition, used for purposes of calculating acceleration |
ffmc_t | Time in seconds for the duration used to calculate FFMC |
flag | A combination of
|
rss | Calculated value, RSS (metres per minute) |
roseq | Calculated value, ROSeq (equilibrium rate of spread) (metres per minute) |
ros | Calculated value, ROS (rate of spread) (metres per minute) |
frss | Calculated value, FRSS (flank RSS) (metres per minute) |
froseq | Calculated value, FROSeq (flank equilibrium rate of spread) (metres per minute) |
fros | Calculated value, FROS (flank rate of spread) (metres per minute) |
brss | Calculated value, BRSS (back RSS) (metres per minute) |
broseq | Calculated value, BROSeq (back equilibrium rate of spread) (metres per minute) |
bros | Calculated value, BROS (back rate of spread) (metres per minute) |
wsv | Calculated value, WSV (wind speed vector) (metres per minute) |
raz | Calculated value, RAZ (wind speed vector azimuth) (radians, Cartesian) |
ICWFGM_Fuel::CalculateStatistics | ( | [in] double | ROS, |
[in] double | FROS, | ||
[in] double | BROS, | ||
[in] double | CFB, | ||
[in] ULONGLONG | time, | ||
[in] short | flag, | ||
[out] double * | area, | ||
[out] double * | perimeter | ||
) |
Calculates statistics of the theoretical ellipse defined by ROS, FROS, BROS. To match the CFS code, these values should be equilibrium values. To match Prometheus implementations, these should values should be instantaneous, after corrections through any ellipse equations.
ROS | Rate of spread (metres per minute). |
FROS | Flank rate of spread (metres per minute). |
BROS | Back rate of spread (metres per minute). |
CFB | Crown fraction burned. |
time | Time since fire start, important if acceleration is turned on. |
flag | A combination of
|
area | Calculated value, fire area. |
perimeter | Calculated value, fire perimeter. |
ICWFGM_Fuel::Clone | ( | [out] ICWFGM_Fuel ** | newFuel | ) |
Creates a new fuel object with properties which are identical to that of the object being called, returns a handle to the new object in newFuel.
newFuel | Address of memory to contain the reference for a newly created fuel object |
ICWFGM_Fuel::FMC | ( | [in] double | latitude, |
[in] double | longitude, | ||
[in] double | elev, | ||
[in] unsigned short | day, | ||
[out, retval] double * | fmc | ||
) |
Calculates the FMC (foliar moisture content) value based on several parameters. If elevation is negative, then the normalized latitude is calculated based on equation 1 of "Development and the Structure of the Canadian Forest Fire Behaviour Prediction System -Information Report ST-X-3", otherwise it is calculated from equation 3. Similarly, minimum FMC is calculated using either equation 2 or 4. If the latitude and longitude are outside the general extents of Canada (latitude: 42 to 83 degrees, longitude: -52 to -141 degrees), then the latitude and/or longitude are modified to be within these ranges.
latitude | Specific location (latitude, radians, signed) on the earth's surface. |
longitude | Specific location (longitude, radians, signed) on the earth's surface. |
elev | Elevation of the specific location (metres) from sea level. |
day | Julian day (day of the year, 0-365) |
fmc | The calculated FMC value (percentage value expressed as a decimal 0-1) |
ICWFGM_Fuel::GetAttribute | ( | [in] unsigned short | option, |
[out, retval] VARIANT * | value | ||
) |
Polymorphic. Gets a particular attribute for a fuel. Each fuel type comprises of a variety of equations and values. This function allows the client application to retrieve most any value that would define some aspect of the calculations for this fuel type.
option | This parameter identifies which attribute value to retrieve. |
value | The value of the attribute being requested. |
ICWFGM_Fuel::GetDefaultCLSID | ( | [out, retval] CLSID * | clsID | ) |
Returns the default CLSID for this fuel type. A CLSID is the identifier for the class of a COM object. For read-only fuel types, this value is set to the same class as itself. I.e., it's default fuel type is itself. For read/write fuel types which were cloned from another fuel type, this value is set to the class of the original default fuel type used to create it. I.e., if a C-1 fuel type was cloned into a read/write fuel type, this value would be the CLSID for the C-1 read-only fuel type. This value is unused by this COM DLL and may be removed in future releases. Its purpose is to facilitate the client application ability to reset a fuel type back to its default values.
clsID | return value for CLSID |
ICWFGM_Fuel::IsC6FuelType | ( | [out, retval] VARIANT_BOOL * | retbool | ) |
Reports whether the fuel type is C-6. This fuel type information is retained after cloning a read-only template into a read/write fuel type. This information will become invalid once an equation in the read/write fuel has been replaced.
retbool | result of the test |
ICWFGM_Fuel::IsConiferFuelType | ( | [out, retval] VARIANT_BOOL * | retbool | ) |
Reports whether the fuel type is C-1, C-2, C-3, C-4, C-5, C-6, or C-7. This fuel type information is retained after cloning a read-only template into a read/write fuel type. This information will become invalid once an equation in the read/write fuel has been replaced.
retbool | result of the test |
ICWFGM_Fuel::IsDeciduousFuelType | ( | [out, retval] VARIANT_BOOL * | retbool | ) |
Reports whether the fuel type is D-1 or D-2. This fuel type information is retained after cloning a read-only template into a read/write fuel type. This information will become invalid once an equation in the read/write fuel has been replaced.
retbool | result of the test |
ICWFGM_Fuel::ISF | ( | [in] double | RSF, |
[in] double | SF, | ||
[in] double | ISZ, | ||
[in] short | flag, | ||
[out] double * | isfValue | ||
) |
Calculates the value for ISF based on parameters passed in. Note that this method is used by mixed fuel types only and likely should not be called directly. Automatic caching of previously calculated values is performed for efficiency.
RSF | Intermediate output for calculating ROS values. |
SF | Slope factor. |
ISZ | Dead wind ISI. |
flag | A combination of
|
isfValue | the calculated ISF value |
ICWFGM_Fuel::IsGrassFuelType | ( | [out, retval] VARIANT_BOOL * | retbool | ) |
Reports whether the fuel type is O-1a or O-1b. This fuel type information is retained after cloning a read-only template into a read/write fuel type. This information will become invalid once an equation in the read/write fuel has been replaced.
retbool | result of the test |
ICWFGM_Fuel::IsMixedDeadFirFuelType | ( | [out,retval] VARIANT_BOOL * | retbool | ) |
Reports whether the fuel type is M-3 or M-4. This fuel type information is retained after cloning a read-only template into a read/write fuel type. This information will become invalid once an equation in the read/write fuel has been replaced.
retbool | result of the test |
ICWFGM_Fuel::IsMixedFuelType | ( | [out, retval] VARIANT_BOOL * | retbool | ) |
Reports whether the fuel type is M-1 or M-2. This fuel type information is retained after cloning a read-only template into a read/write fuel type. This information will become invalid once an equation in the read/write fuel has been replaced.
retbool | result of the test |
ICWFGM_Fuel::IsNonFuel | ( | [out,retval] VARIANT_BOOL * | retbool | ) |
Reports whether the fuel type is a non-fuel. This fuel type information is retained after cloning a read-only template into a read/write fuel type. This information will become invalid once an equation in the read/write fuel has been replaced.
retbool | result of the test |
ICWFGM_Fuel::IsSlashFuelType | ( | [out,retval] VARIANT_BOOL * | retbool | ) |
Reports whether the fuel type is S-1, S-2, or S-3. This fuel type information is retained after cloning a read-only template into a read/write fuel type. This information will become invalid once an equation in the read/write fuel has been replaced.
retbool | result of the test |
ICWFGM_Fuel::MT_Lock | ( | [in] unsigned short | exclusive, |
[in] unsigned short | obtain | ||
) |
Changes the state of the object with respect to access rights. When the object is used by an active simulation, it must not be modified. When the object is somehow modified, it must be done so in an atomic action to prevent concerns with arising from multithreading. Note that these locks are only needed for calls to this object via this interface. Method calls from the other interface are already multithreading friendly.
exclusive | TRUE if the requester wants a write lock, false for read/shared access |
obtain | TRUE to obtain the lock, FALSE to release the lock. If this is FALSE, then the exclusive parameter must match the initial call used to obtain the lock. |
ICWFGM_Fuel::RSI | ( | [in] double | FFMC, |
[in] double | BUI, | ||
[in] double | FMC, | ||
[in] double | ISI, | ||
[in] short | flag, | ||
[out,retval] double * | rsi | ||
) |
Calculates RSI (initial rate of spread) without BUI effect. Note that this routine may seem redundant to CalculateROSValues() but is used by mixed fuel types. Typically CalculateROSValues) should be called. Automatic caching of previously calculated values is performed for efficiency.
FFMC | Fine fuel moister code (FWI output) |
BUI | Buildup index (FWI output) |
FMC | Foliar moisture code (FBP output) (0-1) |
ISI | Initial spread index (FWI output). Note that the FBP version of the ISI calculation (in the FWI module) should be used. |
flag | A combination of
|
rsi | Returned calculated RSI |
ICWFGM_Fuel::SetAttribute | ( | [in] unsigned short | option, |
[in] VARIANT | value | ||
) |
Sets a particular attribute for a fuel. This method can be used to modify some generic value associated with the fuel, or most any coefficient of specific equations used to calculated values for the fuel.
option | This parameter identifies which attribute value to retrieve. |
value | The value of the attribute being requested. |
ICWFGM_Fuel::SFC | ( | [in] double | FFMC, |
[in] double | BUI, | ||
[in] short | flag, | ||
[out,retval] double * | sfc | ||
) |
Calculates the SFC (surface fuel consumption) value based on several parameters. Note that this routine may seem redundant to CalculateFCValues() but is used by mixed fuel types. Typically, the CalculateFCValues() method should be called. Automatic caching of previously calculated values is performed for efficiency.
FFMC | Fine fuel moister code (FWI output) |
BUI | Buildup index (FWI output) |
flag | A combination of
|
sfc | the calculated SFC value |
|
getproperty |
Return the name of the fuel type
pVal | Name of the fuel type |
|
getsetproperty |
This property is unused by this object, and is available for exclusive use by the client code. It is a VARIANT value to ensure that the client code can store a pointer value (if it chooses) for use in manual subclassing this object. This value is not loaded or saved during serialization operations, and it is the responsibility of the client code to manage any value or object stored here. Access to this property is not thread-safe.
pVal | when retrieving the property |
newVal | when setting the property |