cloudy
trunk
|
00001 /* This file is part of Cloudy and is copyright (C)1978-2008 by Gary J. Ferland and 00002 * others. For conditions of distribution and use see copyright notice in license.txt */ 00003 00004 #ifndef _STARS_H_ 00005 #define _STARS_H_ 00006 00007 00009 #define MDIM 4 00010 00012 #define MNAM 6 00013 00016 typedef enum { 00017 IM_ILLEGAL_MODE=-1, IM_RECT_GRID, IM_COSTAR_TEFF_MODID, 00018 IM_COSTAR_TEFF_LOGG, IM_COSTAR_MZAMS_AGE, IM_COSTAR_AGE_MZAMS 00019 } IntMode; 00020 00021 typedef enum { 00022 TL_BSTAR, TL_OSTAR 00023 } tl_grid; 00024 00025 struct process_counter 00026 { 00027 int nFound; 00028 int notProcessed; 00029 int nOK; 00030 int nFail; 00031 process_counter() : nFound(0), notProcessed(0), nOK(0), nFail(0) {} 00032 }; 00033 00035 void AtmospheresAvail(void); 00036 00038 int AtlasCompile(process_counter& pc); 00040 long AtlasInterpolate(double val[], /* val[nval] */ 00041 long *nval, 00042 long *ndim, 00043 const char *chMetalicity, 00044 const char *chODFNew, 00045 bool lgList, 00046 double *Tlow, 00047 double *Thigh); 00048 00050 int CoStarCompile(process_counter& pc); 00052 long CoStarInterpolate(double val[], /* requested model parameters */ 00053 long *nval, 00054 long *ndim, 00055 IntMode imode, /* which interpolation mode is requested */ 00056 bool lgHalo, /* flag indicating whether solar (==0) or halo (==1) abundances */ 00057 bool lgList, 00058 double *val0_lo, 00059 double *val0_hi); 00060 00062 bool GridCompile(const char *InName); 00064 long GridInterpolate(double val[], /* val[nval] */ 00065 long *nval, 00066 long *ndim, 00067 const char *FileName, 00068 bool lgList, 00069 double *Tlow, 00070 double *Thigh); 00071 00073 int Kurucz79Compile(process_counter& pc); 00075 long Kurucz79Interpolate(double val[], /* val[nval] */ 00076 long *nval, 00077 long *ndim, 00078 bool lgList, 00079 double *Tlow, 00080 double *Thigh); 00081 00083 int MihalasCompile(process_counter& pc); 00085 long MihalasInterpolate(double val[], /* val[nval] */ 00086 long *nval, 00087 long *ndim, 00088 bool lgList, 00089 double *Tlow, 00090 double *Thigh); 00091 00094 int RauchCompile(process_counter& pc); 00096 long RauchInterpolateHydr(double val[], /* val[nval] */ 00097 long *nval, 00098 long *ndim, 00099 bool lgList, 00100 double *Tlow, 00101 double *Thigh); 00103 long RauchInterpolateHelium(double val[], /* val[nval] */ 00104 long *nval, 00105 long *ndim, 00106 bool lgList, 00107 double *Tlow, 00108 double *Thigh); 00110 long RauchInterpolateHpHe(double val[], /* val[nval] */ 00111 long *nval, 00112 long *ndim, 00113 bool lgList, 00114 double *Tlow, 00115 double *Thigh); 00117 long RauchInterpolatePG1159(double val[], /* val[nval] */ 00118 long *nval, 00119 long *ndim, 00120 bool lgList, 00121 double *Tlow, 00122 double *Thigh); 00124 long RauchInterpolateHCa(double val[], /* val[nval] */ 00125 long *nval, 00126 long *ndim, 00127 bool lgHalo, 00128 bool lgList, 00129 double *Tlow, 00130 double *Thigh); 00132 long RauchInterpolateHNi(double val[], /* val[nval] */ 00133 long *nval, 00134 long *ndim, 00135 bool lgHalo, 00136 bool lgList, 00137 double *Tlow, 00138 double *Thigh); 00139 00141 bool StarburstInitialize(const char chInName[], 00142 const char chOutName[]); 00144 bool StarburstCompile(process_counter& pc); 00145 00147 int TlustyCompile(process_counter& pc); 00149 long TlustyInterpolate(double val[], /* val[nval] */ 00150 long *nval, 00151 long *ndim, 00152 tl_grid tlg, 00153 const char *chMetalicity, 00154 bool lgList, 00155 double *Tlow, 00156 double *Thigh); 00157 00159 int WernerCompile(process_counter& pc); 00161 long WernerInterpolate(double val[], /* val[nval] */ 00162 long *nval, 00163 long *ndim, 00164 bool lgList, 00165 double *Tlow, 00166 double *Thigh); 00167 00169 int WMBASICCompile(process_counter& pc); 00171 long WMBASICInterpolate(double val[], /* val[nval] */ 00172 long *nval, 00173 long *ndim, 00174 bool lgList, 00175 double *Tlow, 00176 double *Thigh); 00177 00178 #endif /* _STARS_H_ */