VR-Vantage 2.8 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Macros | Functions
Eigenmaterials.h File Reference

Go to the source code of this file.

Classes

struct  MATERIAL_EIGENFRACTIONS
struct  AXISSELECT
struct  GROUP_POPULATION_STAT
struct  EMAT_SELECT

Macros

#define USE_AVERANGE_AREAS   FALSE /* Specifies whether to use {Amin,Amax} or {Aave,Aspan} as evapotranspiration axes. */
#define LOTOL   0.005 /* Value of (max-min)/(max+min) below which an axis is considered degenerate. */
#define NCOEFF   6
#define HOTOBJECT_EMISSION   (CM_SQUARED_2_M_SQUARED*SIGMA * power(500.0, 4))
#define CONST300K_EMISSION   (CM_SQUARED_2_M_SQUARED*SIGMA * power(300.0, 4))
#define NITCOEFF   4
#define TEMPFLUXMAX   ((2000.0)*(5000.0)*(10.0))
#define CONVECTMAX   (4.0 + 3.8*pow(100.0, 0.8))
#define CONSTEIMAX   (CM_SQUARED_2_M_SQUARED*SIGMA*power(500.0,4))
#define NUM_PHYSPROPS   5
#define NEIGENMATERIALS   6

Functions

double GetMaterialNameAxisValue (char *name)
void FillMaterialPropertyAxes (NPOINT *props, MATL_PROP_TABLE *mp_table)
int ClusterMaterialSystemsInPhysicalPropertySpace (int mingroups, int maxgroups, MATL_PROP_TABLE *mp_table, int nmatls, int *group_index, int *ngroups, int MIN_MTLSPERGROUP, AXISSELECT axisselect, double EmatTolerance)
double RMSDifference (double *a, double *b, long nelements)
double RMSRadianceDifference (MATL_PROP_TABLE *a, MATL_PROP_TABLE *b)
double RadianceBoundedFitFunction (NPOINT coeff, double *auxiliary, int nauxiliary)
void FindOptimalBoundedFitCoeffs (MATL_PROP_TABLE **emat, int nemats, MATL_PROP_TABLE *tofit, NPOINT *optcoeff)
void FindExactBoundedFitCoeffs (MATL_PROP_TABLE **emat, int nemats, MATL_PROP_TABLE *tofit, NPOINT *optcoeff)
int FindExtremalMaterialsInGroup (MATL_PROP_TABLE *mp_table_in, int nmatls_in, int *group_index, int group, int *mtl1, int *mtl2, int *ngroupmtls, double EmatTolerance)
int FindEigenmaterialsAndFit (MATL_PROP_TABLE *mp_table_in, int nmatls_in, int *group_index, int ngroups, int **eig_index_out, int *neigenmaterials, MATERIAL_EIGENFRACTIONS **mtlfractions_out, jrmbool MATRIX, jrmbool FITINGROUP, jrmbool ALLOWSINGLEGROUPEMAT, double EmatTolerance)
int FindNumberOfMatsInGroup (int whichgroup, int *group_index, int totmatls)
int FindNumberOfEmatsInGroup (int whichgroup, int *group_index, int *emat_index, int neigenmaterials)
jrmbool IsEmat (int matl_index, int *emat_index, int neigenmaterials)
jrmbool DonateMatsToOtherGroups (int ngroups, int *group_index, int nmatls, int **emat_index, int *neigenmaterials, int MIN_MTLSPERGROUP, MATL_PROP_TABLE *mp_table, MATERIAL_EIGENFRACTIONS **mtlfraction, jrmbool ALLOWSINGLEGROUPEMAT)
SIGSIM49_API int AddEMAT_SELECT (EMAT_SELECT **c, int *nc, EMAT_SELECT toadd)
SIGSIM49_API void FreeEMAT_SELECTArray (EMAT_SELECT **c, int *nc, jrmbool init)
SIGSIM49_API int RemoveEMAT_SELECT (EMAT_SELECT **P, int *np, int index)
SIGSIM49_API int ReadEmatSelectFile (const char *infile, EMAT_SELECT **eselect, int *neselects)
SIGSIM49_API int FitToKnownEigenmaterials (MATL_PROP_TABLE *mp_table_in, int nmatls_in, EMAT_SELECT *eselect, int neselects, int *neigenmaterials, int **eig_index_out, MATERIAL_EIGENFRACTIONS **mtlfractions_out, jrmbool MATRIX)
SIGSIM49_API int AllocateMATERIAL_EIGENFRACTIONSArray (MATERIAL_EIGENFRACTIONS **matlfraction, long nmatls, int neigenmaterials)
SIGSIM49_API int AllocateMATERIAL_EIGENFRACTIONSFractionArrays (MATERIAL_EIGENFRACTIONS **matlfraction, long nmatls, int neigenmaterials)
SIGSIM49_API void FreeMATERIAL_EIGENFRACTIONSArray (MATERIAL_EIGENFRACTIONS **matlfraction, long nmatls)
SIGSIM49_API int WriteFractionFileWithEmatNameHeader (char *outfilebasename, MATERIAL_EIGENFRACTIONS *matlfraction, long nmatls, int *ematIndices, int neigenmaterials)
SIGSIM49_API int WriteFractionFile (char *outfilebasename, MATERIAL_EIGENFRACTIONS *matlfraction, long nmatls, int neigenmaterials)
SIGSIM49_API int ReadFractionFile (char *outfilebasename, MATERIAL_EIGENFRACTIONS **matlfraction, long *nmatls, int *neigenmaterials)
SIGSIM49_API int CreateEigenMaterialsInMemory (char *sigsim_data_dir, char *matl_sys_file, char *outputbasename, MATERIAL_EIGENFRACTIONS **matlfraction, long *nmatls, MATL_PROP_TABLE **eig_table, int *neigenmaterials, double env_update_interval)
SIGSIM49_API int CreateEigenMaterialsOnDisk (char *sigsim_data_dir, char *matl_sys_file, char *outfilebasename, double env_update_interval)
SIGSIM49_API int ReconstructMaterials (char *sigsim_data_dir, char *eigmatl_sys_file, char *outfilebasename, double env_update_interval)
SIGSIM49_API int ReconstructThermalSpinup (char *outfilebasename, int neigenmaterials)
SIGSIM49_API int CreateMaterialsWhichDifferAlongOneAxis (char *sigsim_data_dir, char *matl_sys_file, int referencems, char *outfilebasename, int diffaxis, double minfrac, double maxfrac, int nmatlsout, double env_update_interval)
SIGSIM49_API double FitCurve (double tod, double coeff[NCOEFF], double todL, THERMAL_CACHE *tc, double env_update_interval)
SIGSIM49_API void FillBasisFunctionMatrix (double F[NCOEFF *NCOEFF], double todlag, THERMAL_CACHE *tc, double env_update_interval)
SIGSIM49_API void FillTestCurveArray (double test[NCOEFF], MATL_PROP_TABLE *mp_table)
SIGSIM49_API int FitToBasisFunctions (double F[NCOEFF *NCOEFF], double test[NCOEFF], double coeff[NCOEFF])
SIGSIM49_API double TestCurve (double tod, MATL_PROP_TABLE *mp_table)
SIGSIM49_API double RMSerror (double todlag, double coeff[NCOEFF], MATL_PROP_TABLE *mp_table, THERMAL_CACHE *tc, double env_update_interval)
SIGSIM49_API void FindOptimumCoefficientsAndLag (MATL_PROP_TABLE *mp_table, THERMAL_CACHE *tc, double env_update_interval, double optcoeff[NCOEFF], double *optlag)
SIGSIM49_API double TemperatureFunction (double tod, NPOINT coeff, double startdegK, THERMAL_CACHE *tc, double env_update_interval)
SIGSIM49_API double TemperatureIterativeFitFunction (NPOINT coeff, double *auxiliary, int nauxiliary)
SIGSIM49_API double PolynomialTestIterativeFitFunction (NPOINT coeff, double *auxiliary, int nauxiliary)
SIGSIM49_API void FindOptimalIterativeFitCoeffs (MATL_PROP_TABLE *mp_table, THERMAL_CACHE *tc, double env_update_interval, NPOINT *optcoeff)
SIGSIM49_API int BoundedEigenMaterialAnalysis (MATL_PROP_TABLE *mp_table, long nmatls, MATERIAL_EIGENFRACTIONS **mtlfraction, int **eig_index_out, int *neigenmaterials, int maxrequestedemats, int mingroups, int maxgroups, int MIN_MTLSPERGROUP, jrmbool MATRIX, jrmbool FITINGROUP, jrmbool ALLOWSINGLEGROUPEMAT, AXISSELECT axisselect, double EmatTolerance)
SIGSIM49_API int BoundedEigenMaterialFitToKnownGrouping (MATL_PROP_TABLE *mp_table, long nmatls, MATERIAL_EIGENFRACTIONS **mtlfraction, int **eig_index_out, int *neigenmaterials, int *group_index, int ngroups, jrmbool MATRIX, jrmbool ALLOWSINGLEGROUPEMAT, double EmatTolerance)
SIGSIM49_API double BoundedFitRadiance (double tod, MATL_PROP_TABLE *mp_table, int *eig_index, int neigenmaterials, MATERIAL_EIGENFRACTIONS *mtlfractions)
SIGSIM49_API double ActualBBRadiance (double tod, MATL_PROP_TABLE *mp_table)
SIGSIM49_API double RMSFitDifference (MATL_PROP_TABLE *mp_table, int *eig_index, int neigenmaterials, MATERIAL_EIGENFRACTIONS *mtlfractions, int indextotest)
SIGSIM49_API int WriteEigenmaterialMSFile (char *sigsim_data_dir, char *ms_filename, char *dbname, MATL_PROP_TABLE *mp_table, int *eig_index, int neigenmaterials)

Macro Definition Documentation

#define USE_AVERANGE_AREAS   FALSE /* Specifies whether to use {Amin,Amax} or {Aave,Aspan} as evapotranspiration axes. */
#define LOTOL   0.005 /* Value of (max-min)/(max+min) below which an axis is considered degenerate. */
#define NCOEFF   6
#define HOTOBJECT_EMISSION   (CM_SQUARED_2_M_SQUARED*SIGMA * power(500.0, 4))
#define CONST300K_EMISSION   (CM_SQUARED_2_M_SQUARED*SIGMA * power(300.0, 4))
#define NITCOEFF   4
#define TEMPFLUXMAX   ((2000.0)*(5000.0)*(10.0))
#define CONVECTMAX   (4.0 + 3.8*pow(100.0, 0.8))
#define CONSTEIMAX   (CM_SQUARED_2_M_SQUARED*SIGMA*power(500.0,4))
#define NUM_PHYSPROPS   5
#define NEIGENMATERIALS   6

Function Documentation

double GetMaterialNameAxisValue ( char *  name)
void FillMaterialPropertyAxes ( NPOINT props,
MATL_PROP_TABLE mp_table 
)
int ClusterMaterialSystemsInPhysicalPropertySpace ( int  mingroups,
int  maxgroups,
MATL_PROP_TABLE mp_table,
int  nmatls,
int group_index,
int ngroups,
int  MIN_MTLSPERGROUP,
AXISSELECT  axisselect,
double  EmatTolerance 
)
double RMSDifference ( double *  a,
double *  b,
long  nelements 
)
double RMSRadianceDifference ( MATL_PROP_TABLE a,
MATL_PROP_TABLE b 
)
double RadianceBoundedFitFunction ( NPOINT  coeff,
double *  auxiliary,
int  nauxiliary 
)
void FindOptimalBoundedFitCoeffs ( MATL_PROP_TABLE **  emat,
int  nemats,
MATL_PROP_TABLE tofit,
NPOINT optcoeff 
)
void FindExactBoundedFitCoeffs ( MATL_PROP_TABLE **  emat,
int  nemats,
MATL_PROP_TABLE tofit,
NPOINT optcoeff 
)
int FindExtremalMaterialsInGroup ( MATL_PROP_TABLE mp_table_in,
int  nmatls_in,
int group_index,
int  group,
int mtl1,
int mtl2,
int ngroupmtls,
double  EmatTolerance 
)
int FindEigenmaterialsAndFit ( MATL_PROP_TABLE mp_table_in,
int  nmatls_in,
int group_index,
int  ngroups,
int **  eig_index_out,
int neigenmaterials,
MATERIAL_EIGENFRACTIONS **  mtlfractions_out,
jrmbool  MATRIX,
jrmbool  FITINGROUP,
jrmbool  ALLOWSINGLEGROUPEMAT,
double  EmatTolerance 
)
int FindNumberOfMatsInGroup ( int  whichgroup,
int group_index,
int  totmatls 
)
int FindNumberOfEmatsInGroup ( int  whichgroup,
int group_index,
int emat_index,
int  neigenmaterials 
)
jrmbool IsEmat ( int  matl_index,
int emat_index,
int  neigenmaterials 
)
jrmbool DonateMatsToOtherGroups ( int  ngroups,
int group_index,
int  nmatls,
int **  emat_index,
int neigenmaterials,
int  MIN_MTLSPERGROUP,
MATL_PROP_TABLE mp_table,
MATERIAL_EIGENFRACTIONS **  mtlfraction,
jrmbool  ALLOWSINGLEGROUPEMAT 
)
SIGSIM49_API int AddEMAT_SELECT ( EMAT_SELECT **  c,
int nc,
EMAT_SELECT  toadd 
)
SIGSIM49_API void FreeEMAT_SELECTArray ( EMAT_SELECT **  c,
int nc,
jrmbool  init 
)
SIGSIM49_API int RemoveEMAT_SELECT ( EMAT_SELECT **  P,
int np,
int  index 
)
SIGSIM49_API int ReadEmatSelectFile ( const char *  infile,
EMAT_SELECT **  eselect,
int neselects 
)
SIGSIM49_API int FitToKnownEigenmaterials ( MATL_PROP_TABLE mp_table_in,
int  nmatls_in,
EMAT_SELECT eselect,
int  neselects,
int neigenmaterials,
int **  eig_index_out,
MATERIAL_EIGENFRACTIONS **  mtlfractions_out,
jrmbool  MATRIX 
)
SIGSIM49_API int AllocateMATERIAL_EIGENFRACTIONSArray ( MATERIAL_EIGENFRACTIONS **  matlfraction,
long  nmatls,
int  neigenmaterials 
)
SIGSIM49_API int AllocateMATERIAL_EIGENFRACTIONSFractionArrays ( MATERIAL_EIGENFRACTIONS **  matlfraction,
long  nmatls,
int  neigenmaterials 
)
SIGSIM49_API void FreeMATERIAL_EIGENFRACTIONSArray ( MATERIAL_EIGENFRACTIONS **  matlfraction,
long  nmatls 
)
SIGSIM49_API int WriteFractionFileWithEmatNameHeader ( char *  outfilebasename,
MATERIAL_EIGENFRACTIONS matlfraction,
long  nmatls,
int ematIndices,
int  neigenmaterials 
)
SIGSIM49_API int WriteFractionFile ( char *  outfilebasename,
MATERIAL_EIGENFRACTIONS matlfraction,
long  nmatls,
int  neigenmaterials 
)
SIGSIM49_API int ReadFractionFile ( char *  outfilebasename,
MATERIAL_EIGENFRACTIONS **  matlfraction,
long *  nmatls,
int neigenmaterials 
)
SIGSIM49_API int CreateEigenMaterialsInMemory ( char *  sigsim_data_dir,
char *  matl_sys_file,
char *  outputbasename,
MATERIAL_EIGENFRACTIONS **  matlfraction,
long *  nmatls,
MATL_PROP_TABLE **  eig_table,
int neigenmaterials,
double  env_update_interval 
)
SIGSIM49_API int CreateEigenMaterialsOnDisk ( char *  sigsim_data_dir,
char *  matl_sys_file,
char *  outfilebasename,
double  env_update_interval 
)
SIGSIM49_API int ReconstructMaterials ( char *  sigsim_data_dir,
char *  eigmatl_sys_file,
char *  outfilebasename,
double  env_update_interval 
)
SIGSIM49_API int ReconstructThermalSpinup ( char *  outfilebasename,
int  neigenmaterials 
)
SIGSIM49_API int CreateMaterialsWhichDifferAlongOneAxis ( char *  sigsim_data_dir,
char *  matl_sys_file,
int  referencems,
char *  outfilebasename,
int  diffaxis,
double  minfrac,
double  maxfrac,
int  nmatlsout,
double  env_update_interval 
)
SIGSIM49_API double FitCurve ( double  tod,
double  coeff[NCOEFF],
double  todL,
THERMAL_CACHE tc,
double  env_update_interval 
)
SIGSIM49_API void FillBasisFunctionMatrix ( double  F[NCOEFF *NCOEFF],
double  todlag,
THERMAL_CACHE tc,
double  env_update_interval 
)
SIGSIM49_API void FillTestCurveArray ( double  test[NCOEFF],
MATL_PROP_TABLE mp_table 
)
SIGSIM49_API int FitToBasisFunctions ( double  F[NCOEFF *NCOEFF],
double  test[NCOEFF],
double  coeff[NCOEFF] 
)
SIGSIM49_API double TestCurve ( double  tod,
MATL_PROP_TABLE mp_table 
)
SIGSIM49_API double RMSerror ( double  todlag,
double  coeff[NCOEFF],
MATL_PROP_TABLE mp_table,
THERMAL_CACHE tc,
double  env_update_interval 
)
SIGSIM49_API void FindOptimumCoefficientsAndLag ( MATL_PROP_TABLE mp_table,
THERMAL_CACHE tc,
double  env_update_interval,
double  optcoeff[NCOEFF],
double *  optlag 
)
SIGSIM49_API double TemperatureFunction ( double  tod,
NPOINT  coeff,
double  startdegK,
THERMAL_CACHE tc,
double  env_update_interval 
)
SIGSIM49_API double TemperatureIterativeFitFunction ( NPOINT  coeff,
double *  auxiliary,
int  nauxiliary 
)
SIGSIM49_API double PolynomialTestIterativeFitFunction ( NPOINT  coeff,
double *  auxiliary,
int  nauxiliary 
)
SIGSIM49_API void FindOptimalIterativeFitCoeffs ( MATL_PROP_TABLE mp_table,
THERMAL_CACHE tc,
double  env_update_interval,
NPOINT optcoeff 
)
SIGSIM49_API int BoundedEigenMaterialAnalysis ( MATL_PROP_TABLE mp_table,
long  nmatls,
MATERIAL_EIGENFRACTIONS **  mtlfraction,
int **  eig_index_out,
int neigenmaterials,
int  maxrequestedemats,
int  mingroups,
int  maxgroups,
int  MIN_MTLSPERGROUP,
jrmbool  MATRIX,
jrmbool  FITINGROUP,
jrmbool  ALLOWSINGLEGROUPEMAT,
AXISSELECT  axisselect,
double  EmatTolerance 
)
SIGSIM49_API int BoundedEigenMaterialFitToKnownGrouping ( MATL_PROP_TABLE mp_table,
long  nmatls,
MATERIAL_EIGENFRACTIONS **  mtlfraction,
int **  eig_index_out,
int neigenmaterials,
int group_index,
int  ngroups,
jrmbool  MATRIX,
jrmbool  ALLOWSINGLEGROUPEMAT,
double  EmatTolerance 
)
SIGSIM49_API double BoundedFitRadiance ( double  tod,
MATL_PROP_TABLE mp_table,
int eig_index,
int  neigenmaterials,
MATERIAL_EIGENFRACTIONS mtlfractions 
)
SIGSIM49_API double ActualBBRadiance ( double  tod,
MATL_PROP_TABLE mp_table 
)
SIGSIM49_API double RMSFitDifference ( MATL_PROP_TABLE mp_table,
int eig_index,
int  neigenmaterials,
MATERIAL_EIGENFRACTIONS mtlfractions,
int  indextotest 
)
SIGSIM49_API int WriteEigenmaterialMSFile ( char *  sigsim_data_dir,
char *  ms_filename,
char *  dbname,
MATL_PROP_TABLE mp_table,
int eig_index,
int  neigenmaterials 
)


Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)