00001
00002
00003
00004 #ifndef ATOMS_H_
00005 #define ATOMS_H_
00006
00015 void AtomSeqBeryllium(double cs12,
00016 double cs13,
00017 double cs23,
00018 transition * t,
00019 double a30);
00020
00037 void AtomSeqBoron(
00038 transition * t21,
00039 transition * t31,
00040 transition * t41,
00041 transition * t32,
00042 transition * t42,
00043 transition * t52,
00044 double cs51,
00045 double cs43,
00046 double cs53,
00047 double cd54,
00048 double pump_rate ,
00049 const char *chLabel
00050 );
00051
00055 void atom_level2(transition * t );
00056
00063 void atom_level3(transition * t10,
00064 transition * t21,
00065 transition * t20);
00066
00076 double atom_pop2(double omega,
00077 double g1,
00078 double g2,
00079 double a21,
00080 double bltz,
00081 double abund);
00082
00102 double atom_pop3(
00103 double g1, double g2, double g3,
00104 double o12, double o13, double o23,
00105 double a21, double a31, double a32,
00106 double Tex12, double Tex23,
00107 realnum *pop2,
00108 double abund,
00109 double gam2,
00110 double r12,
00111 double r13 );
00112
00146 void atom_pop5(const double g[],
00147 const double ex[],
00148 double cs12,
00149 double cs13,
00150 double cs14,
00151 double cs15,
00152 double cs23,
00153 double cs24,
00154 double cs25,
00155 double cs34,
00156 double cs35,
00157 double cs45,
00158 double a21,
00159 double a31,
00160 double a41,
00161 double a51,
00162 double a32,
00163 double a42,
00164 double a52,
00165 double a43,
00166 double a53,
00167 double a54,
00168 double p[],
00169 realnum abund,
00170 double *Cooling,
00171 double *CoolingDeriv,
00172 double pump12,
00173 double pump13,
00174 double pump14,
00175 double pump15
00176 );
00177
00204 void atom_levelN(
00205 long int nlev,
00206 realnum abund,
00207 const double g[],
00208 const double ex[],
00209 char chExUnits,
00210 double pops[],
00211 double depart[],
00212 double ***AulEscp,
00213 double ***col_str,
00214 double ***AulDest,
00215 double ***AulPump,
00216 double ***CollRate,
00217 const double create[] ,
00218 const double destroy[] ,
00219 bool lgCollRateDone,
00220 double *cooltl,
00221 double *coolder,
00222 const char *chLabel,
00223 int *nNegPop,
00224 bool *lgZeroPop ,
00225 bool lgDeBug);
00226
00230 void atom_oi_calc(double *coloi);
00231
00233 const int N_OI_LEVELS = 6;
00234 const long LIMLEVELN = 20L;
00235
00236 EXTERN struct t_atoms {
00237
00239 realnum p2nit, d5200r;
00240
00242 double c12, c13;
00243
00246 long int ipoiex[5];
00247
00249 long int nNegOI;
00250
00252 double popoi[N_OI_LEVELS];
00253
00254 realnum pmpo51, pmpo15;
00255
00257 realnum xMg2Max,
00259 popmg2;
00260
00267 double PopLevels[LIMLEVELN+1],
00268 DepLTELevels[LIMLEVELN+1];
00269
00270 } atoms;
00271
00272 #endif