00001
00002
00003
00004 #ifndef RT_H_
00005 #define RT_H_
00006
00009 void RT_line_all( void );
00010
00013 double RT_line_driving(void);
00014
00015
00016
00017
00027 void RT_line_one(const TransitionProxy& t,
00028 bool lgShield_this_zone,
00029 realnum pestrk,
00030 realnum DopplerWidth);
00031
00035 double RT_continuum_shield_fcn( const TransitionProxy &t );
00036
00038 void RT_diffuse(void);
00039
00041 void RT_continuum(void);
00042
00045 void RT_OTS(void);
00046
00051 void RT_OTS_AddLine(double ots,
00052 long int ip );
00053
00060 void RT_OTS_Update(double* SumOTS);
00061
00063 void RT_OTS_Zero( void );
00064
00066 void RT_OTS_ChkSum(
00067 long int ipPnt);
00068
00077 void RT_line_one_tauinc(
00078 const TransitionProxy & t ,
00079 long int mas_species,
00080 long int mas_ion,
00081 long int mas_hi,
00082 long int mas_lo,
00083 realnum DopplerWidth);
00084
00086 void RT_tau_init(void);
00087
00091 class TransitionProxy;
00092 void RT_line_one_tau_reset(
00093 const TransitionProxy & t );
00094
00096 void RT_tau_reset(void);
00097
00099 void RT_tau_inc(void);
00100
00105 void RT_OTS_PrtRate(
00106 double weak ,
00107 int chFlag );
00108
00113 double esc_PRD_1side(double tau,
00114 double a);
00115
00117 double esc_CRDwing_1side(double tau,
00118 double a );
00119
00127 double RTesc_lya(
00128 double *esin,
00129 double *dest,
00130 double abund,
00131 const TransitionProxy& t,
00132 realnum DopplerWidth);
00133
00139 double esc_CRDwing(double tau,
00140 double tout,
00141 double damp);
00142
00147 double esc_CRDcore(double tau,
00148 double tout);
00149
00155 double esc_PRD(double tau,
00156 double tout,
00157 double damp );
00158
00162 double esca0k2(double taume);
00163
00168 double esccon(double tau,
00169 double hnukt);
00170
00180 double RT_DestProb(
00181 double abund,
00182 double crsec,
00183 long int ipanu,
00184 double widl,
00185 double escp,
00186 int nCore);
00187
00188 #if 0
00189
00193 double RT_LyaWidth(
00194 double tauin,
00195 double tauout,
00196 double a,
00197 double vth);
00198 #endif
00199
00204 double RT_LineWidth(
00205 const TransitionProxy & t,
00206 realnum DopplerWidth);
00207
00212 double RT_DestHummer(
00213 double beta);
00214
00218 double RT_recom_effic(
00219 long int ip);
00220
00222 void RT_stark(void);
00223
00226
00227 #define DEST0 SMALLFLOAT
00228
00229 struct t_rt {
00230
00232 realnum wayin,
00233
00236 wayout;
00237
00239 realnum fracin;
00240
00242 realnum TAddHLya,
00243 TAddHeI;
00244
00247 realnum DoubleTau;
00248
00250 long int ipxry;
00251
00253 realnum tauxry;
00254
00256 bool lgFstOn;
00257
00259 int nLineContShield;
00260
00262 bool lgElecScatEscape;
00263
00267 realnum dTauMase;
00268
00270 bool lgMaserSetDR;
00271
00274 bool lgMaserCapHit;
00275
00277 long int mas_species , mas_ion , mas_hi , mas_lo;
00278
00280 bool lgStarkON;
00281
00282 };
00283
00284 extern t_rt rt;
00285
00286 void RT_iso_integrate_RRC( const long ipISO, const long nelem, const bool lgUpdateContinuum );
00287
00290 #define LINE_CONT_SHIELD_PESC 1
00291 #define LINE_CONT_SHIELD_FEDERMAN 2
00292 #define LINE_CONT_SHIELD_FERLAND 3
00293
00294 #endif