📄 firelib.h
字号:
((catalog)->modelPtr[(model)]->depth)
#define Fuel_Mext(catalog,model) \
((catalog)->modelPtr[(model)]->mext)
#define Fuel_SpreadAdjustment(catalog,model) \
((catalog)->modelPtr[(model)]->adjust)
#define Fuel_CombustionFlag(catalog,model) \
((catalog)->modelPtr[(model)]->combustion)
#define Fuel_MaxParticles(catalog,model) \
((catalog)->modelPtr[(model)]->maxParticles)
#define Fuel_Particles(catalog,model) \
((catalog)->modelPtr[(model)]->particles)
#define Fuel_ParticleArray(catalog,model) \
((catalog)->modelPtr[(model)]->partPtr)
#define Fuel_ParticlePtr(catalog,model,particle) \
((catalog)->modelPtr[(model)]->partPtr[(particle)])
/* Fuel model combustion intermediates macros. */
#define Fuel_LifeAreaWtg(catalog,model,life) \
((catalog)->modelPtr[(model)]->awtg[(life)])
#define Fuel_LifeRxFactor(catalog,model,life) \
((catalog)->modelPtr[(model)]->rxFactor[(life)])
#define Fuel_FineDead(catalog,model) \
((catalog)->modelPtr[(model)]->fineDead)
#define Fuel_LiveMextFactor(catalog,model) \
((catalog)->modelPtr[(model)]->liveFactor)
#define Fuel_BulkDensity(catalog,model) \
((catalog)->modelPtr[(model)]->rhob)
#define Fuel_ResidenceTime(catalog,model) \
((catalog)->modelPtr[(model)]->taur)
#define Fuel_PropFlux(catalog,model) \
((catalog)->modelPtr[(model)]->propFlux)
#define Fuel_SlopeK(catalog,model) \
((catalog)->modelPtr[(model)]->slopeK)
#define Fuel_WindB(catalog,model) \
((catalog)->modelPtr[(model)]->windB)
#define Fuel_WindE(catalog,model) \
((catalog)->modelPtr[(model)]->windE)
#define Fuel_WindK(catalog,model) \
((catalog)->modelPtr[(model)]->windK)
/* Fuel model fire behavior variable macros. */
#define Fuel_RxIntensity(catalog,model) \
((catalog)->modelPtr[(model)]->rxInt)
#define Fuel_Spread0(catalog,model) \
((catalog)->modelPtr[(model)]->spread0)
#define Fuel_HeatPerUnitArea(catalog,model) \
((catalog)->modelPtr[(model)]->hpua)
#define Fuel_SpreadMax(catalog,model) \
((catalog)->modelPtr[(model)]->spreadMax)
#define Fuel_AzimuthMax(catalog,model) \
((catalog)->modelPtr[(model)]->azimuthMax)
#define Fuel_SpreadAny(catalog,model) \
((catalog)->modelPtr[(model)]->spreadAny)
#define Fuel_AzimuthAny(catalog,model) \
((catalog)->modelPtr[(model)]->azimuthAny)
#define Fuel_EffectiveWind(catalog,model) \
((catalog)->modelPtr[(model)]->effWind)
#define Fuel_LwRatio(catalog,model) \
((catalog)->modelPtr[(model)]->lwRatio)
#define Fuel_Eccentricity(catalog,model) \
((catalog)->modelPtr[(model)]->eccentricity)
#define Fuel_PhiWind(catalog,model) \
((catalog)->modelPtr[(model)]->phiW)
#define Fuel_PhiSlope(catalog,model) \
((catalog)->modelPtr[(model)]->phiS)
#define Fuel_PhiEffWind(catalog,model) \
((catalog)->modelPtr[(model)]->phiEw)
#define Fuel_WindLimit(catalog,model) \
((catalog)->modelPtr[(model)]->wLimit)
#define Fuel_ByramsIntensity(catalog,model) \
((catalog)->modelPtr[(model)]->byrams)
#define Fuel_FlameLength(catalog,model) \
((catalog)->modelPtr[(model)]->flame)
#define Fuel_ScorchHeight(catalog,model) \
((catalog)->modelPtr[(model)]->scorch)
/* Fuel model environment variable macros. */
#define Fuel_EnvMoisture(catalog,model,mclass) \
((catalog)->modelPtr[(model)]->moisture[(mclass)])
#define Fuel_WindSpeed(catalog,model) \
((catalog)->modelPtr[(model)]->windFpm)
#define Fuel_WindDir(catalog,model) \
((catalog)->modelPtr[(model)]->windDeg)
#define Fuel_Slope(catalog,model) \
((catalog)->modelPtr[(model)]->slope)
#define Fuel_Aspect(catalog,model) \
((catalog)->modelPtr[(model)]->aspect)
/*
*------------------------------------------------------------------------------
* FuelCatData structure; provides a complete fuel catalog.
*------------------------------------------------------------------------------
*/
#define FIRE_CATALOG_MAGIC (19520904L)
#define FIRE_ERROR_BUFFER_SIZE (1024)
typedef struct fuelCatalogStruct
{
long magicCookie; /* magic cookie for sanity checking */
int status; /* return status of most recent call */
size_t maxModels; /* maximum number of models in this catalog */
size_t flameClasses; /* size of the flame length array */
char *name; /* name for this catalog instance */
char *error; /* error message buffer */
FuelModelPtr *modelPtr; /* array of ModelPtr[maxModels+1] */
double *flamePtr; /* flame length lookup array */
double flameStep; /* size of each flame length table class (ft) */
} FuelCatalogData, *FuelCatalogPtr;
#define FuelCat_MagicCookie(catalog) (catalog->magicCookie)
#define FuelCat_MaxModels(catalog) (catalog->maxModels)
#define FuelCat_Status(catalog) (catalog->status)
#define FuelCat_FlameClasses(catalog) (catalog->flameClasses)
#define FuelCat_FlameStep(catalog) (catalog->flameStep)
#define FuelCat_FlameArray(catalog) (catalog->flamePtr)
#define FuelCat_Name(catalog) (catalog->name)
#define FuelCat_Error(catalog) (catalog->error)
#define FuelCat_ModelArray(catalog) (catalog->modelPtr)
#define FuelCat_ModelPtr(catalog,model) (catalog->modelPtr[model])
/*
*------------------------------------------------------------------------------
* Function prototypes for fire behavior computations.
*------------------------------------------------------------------------------
*/
#define FIRE_NONE (0)
#define FIRE_BYRAMS (1)
#define FIRE_FLAME (2)
#define FIRE_SCORCH (4)
EXTERN int Fire_FlameScorch _ANSI_ARGS_((
FuelCatalogPtr catalog, /* FuelCatalogData instance pointer */
size_t model, /* fuel model number [0-maxModels] */
size_t doWhich /* FIRE_NONE | FIRE_BYRAMS | FIRE_FLAME | FIRE_SCORCH */
)) ;
EXTERN int Fire_FuelCombustion _ANSI_ARGS_((
FuelCatalogPtr catalog, /* FuelCatalogData instance pointer */
size_t model /* fuel model number [0-maxModels] */
)) ;
EXTERN int Fire_SpreadNoWindNoSlope _ANSI_ARGS_((
FuelCatalogPtr catalog, /* FuelCatalogData instance pointer */
size_t model, /* fuel model number [0-maxModels] */
double moisture[FIRE_MCLASSES] /* array of fuel moistures (fractions) */
)) ;
EXTERN int Fire_SpreadWindSlopeMax _ANSI_ARGS_((
FuelCatalogPtr catalog, /* FuelCatalogData instance pointer */
size_t model, /* fuel model number [0-maxModels] */
double windFpm, /* wind speed (ft/min) */
double windDeg, /* wind bearing vector (compass degs) */
double slope, /* slope (rise/reach) */
double aspect /* aspect (downslope) azimuth (compass degs) */
)) ;
EXTERN int Fire_SpreadAtAzimuth _ANSI_ARGS_((
FuelCatalogPtr catalog, /* FuelCatalogData instance pointer */
size_t model, /* fuel model number [0-maxModels] */
double azimuth, /* fire spread azimuth (deg from upslope) */
size_t doWhich /* FIRE_NONE | FIRE_BYRAMS | FIRE_FLAME | FIRE_SCORCH */
)) ;
/*
*------------------------------------------------------------------------------
* Function prototypes for creating and destroying fuel catalogs, fuel models,
* fuel particles, and flame length tables.
*------------------------------------------------------------------------------
*/
EXTERN int Fire_FlameLengthTable _ANSI_ARGS_((
FuelCatalogPtr catalog, /* FuelCatalogData instance pointer */
size_t flameClasses, /* number of flame length classes */
double flameStep /* flame length step value per class */
)) ;
EXTERN FuelCatalogPtr Fire_FuelCatalogCreate _ANSI_ARGS_((
char *name, /* FuelCatalogData instance name */
size_t maxModels /* maximum modelId allowed in this catalog */
)) ;
EXTERN FuelCatalogPtr Fire_FuelCatalogCreateStandard _ANSI_ARGS_((
char *name, /* FuelCatalogData instance name */
size_t maxModels /* maximum modelId allowed in this catalog */
)) ;
EXTERN int Fire_FuelCatalogDestroy _ANSI_ARGS_((
FuelCatalogPtr catalog /* FuelCatalogData instance pointer */
)) ;
EXTERN int Fire_FuelModelCreate _ANSI_ARGS_((
FuelCatalogPtr catalog, /* FuelCatalogData instance */
size_t model, /* fuel model number [0-maxModels] */
char *name, /* short name */
char *desc, /* longer description */
double depth, /* bed depth (ft) */
double mext, /* moisture of extinction (dl) */
double adjust, /* spread adjustment factor (dl) */
size_t maxParticles /* maximum number of fuel model particles */
)) ;
EXTERN int Fire_FuelModelDestroy _ANSI_ARGS_((
FuelCatalogPtr catalog, /* FuelCatalogData instance pointer */
size_t model /* fuel model id number [0-maxModels] */
)) ;
EXTERN int Fire_FuelModelExists _ANSI_ARGS_((
FuelCatalogPtr catalog, /* FuelCatalogData instance pointer */
size_t model /* fuel model id number [0-maxModels] */
)) ;
EXTERN int Fire_FuelParticleAdd _ANSI_ARGS_((
FuelCatalogPtr catalog, /* FuelCatalogData instance pointer */
size_t model, /* fuel model id number [0-maxModels] */
size_t type, /* FIRE_TYPE_DEAD, _TYPE_HERB, or _TYPE_WOOD */
double load, /* fuel load (lbs/ft2) */
double savr, /* surface-area-to-volume ratio (ft2/ft3) */
double dens, /* density (lbs/ft3) */
double heat, /* heat of combustion (btus/lb) */
double stot, /* total silica content (lb/lb) */
double seff /* effective silica content (lb/lb) */
)) ;
#ifdef NEED_STRDUP
char *strdup ( const char *str ) ;
#endif
#endif
/*
*******************************************************************************
* End of fireLib.h
*******************************************************************************
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -