cloudy  trunk
Todo List
Global AddLine2Stack (bool lgRadiativeTrans)
2 bring these two together.
Global advection_set_detault (bool lgWind)

1 get following to work

0 document this problem with molecules - time dependent

Global atmdat_2phot_rate (long ipISO, long nelem)

2 change the name of this routine to reflect the fact that it is entirely induced.

2 How should these affect locally emitted continuum calculated in rtdiffuse? Just subtract these rates from the emitted ones?

Global atmdat_2phot_rate (long ipISO, long nelem)

2 change the name of this routine to reflect the fact that it is entirely induced.

2 How should these affect locally emitted continuum calculated in rtdiffuse? Just subtract these rates from the emitted ones?

Global atmdat_readin (void)
2 - check these
Global atmol_popsolve (void)

0 this pointer should be cached one time, and the species removed from the list if it is not computed

1 this neglects photo excitations, hardwires in Boltzmann

Global atom_level3 (transition *t10, transition *t21, transition *t20)

2 test on c checks whether collisions are possible at this temperature, should add photo excitation

2 these pops ARE NOT defined below

Global atom_oi_calc (double *coloi)

2 this is not used, should it be?

2 following needed to get badbugs/bug8.in to work

2 following needed to get badbugs/bug5.in to work

Global atom_pop5 (double g[], double ex[], double cs12, double cs13, double cs14, double cs15, double cs23, double cs24, double cs25, double cs34, double cs35, double cs45, double a21, double a31, double a41, double a51, double a32, double a42, double a52, double a43, double a53, double a54, double p[], realnum abund)
2 p(5) was very slightly negative (1e-40) for SII in dqher.in
Global AtomSeqBoron (transition *t21, transition *t31, transition *t41, transition *t32, transition *t42, transition *t52, double cs51, double cs43, double cs53, double cd54, double pump_rate, const char *chLabel)
2 use TransitionZero here
Global AtomSeqBoron (transition *t21, transition *t31, transition *t41, transition *t32, transition *t42, transition *t52, double cs51, double cs43, double cs53, double cd54, double pump_rate, const char *chLabel)
2 use TransitionZero here
Global cdTemp (const char *chLabel, long int IonStage, double *TeMean, const char *chWeight)
2 this should have a last argument like cdIonFrac for whether or not weighting is wrt electron density
Global ChargTranEval (double *O_HIonRate)

1 update ct to Kimura et al. (1996)

1 above rate not intended for very low temperatures - find ref for low-T rate, probably is 1e-9 like above

0 these should be values at 1e5 K

2 not currently used - include as deexcitation process

Global CO_drive (void)
2 use TransitionZero here?
Global ContCreatePointers (void)

2 this is redundant with contents of oxygen line arrays use them instead when removing this, make sure all line intensity predictions also go into oi line arrays

2 what are we trying to print here?

Global ContRate (double *freqm, double *opacm)
2 - this routine is very important since it sets the pace for the calculation, and directly affects the convergence of the code. Most of the logic is very old and messy. 1) make sure all test cases have punch dr 2) cat all these reasons together into one file and sort on the reason 3) discover what logic is the main pacesetter for the code 4) which are never triggered and so can be removed
Global ConvBase (long loopi)

2 this assert is not passed if error made much smaller. This error should be related to a check on convergence of the molecular networks and their sum rules, with a criteria used here and there

0 PvH prefers test against err/10

Global CoolCarb (void)

2 add term for protons from Rouef, E., & Le Bourlot, J. 1990, A&A, 236, 515

1 add neutral helium Staemmler, V., & Flower, D. R. 1991, J. Phys. B, 24, 2343

3 change to atom_level3

Global CoolIron (void)

2 - ground term is actually a fix level system, the vectors are created, with pointers ipFe1_54m , ipFe1_111m, must add collision date, use larger model atom

2 following to stop insane FeX strengths >>chng 96 jul 11, removed 1 / 10 factor, so using real data, 90.01 cs = cs * 0.1 >>chng 96 jun 03, transferred following >>chng 97 jan 31, I give up on this mess, use cs of unity

2 update atomic data to Chidichimo et al 1999 AASup 137, 175

2 * following not in cooling function

Global CoolMagn (void)
2 use AtomSeqBeryllium here
Global CoolNeon (void)
2 transfer these lines
Global CoolNitr (void)

2 use atom_level3

1 update cs these to following reference: >>refer n2 cs Hudson, C.E. & Bell, K.L. 2004, MNRAS, 348, 1275 and A&A, 430, 725 they agree with Lennon & Burke

Global CoolOxyg (void)
2 put all these in cooling
Global CoolPhos (void)
2 update to Tayal data, email of April 22 2003, must be published
Global CoolSili (void)
2 - update to this reference for As >>refer Si7 As Galavis, M.E., Mendoza, C., * Zeippen, C.J. 1997, A&AS, 123, 159
Global CoolSulf (void)
1 upgrade SV to more levels there is intercombination line at 0.7634 ryd upgrade to atomic data described in >>refer s5 cs Hudson, C.E> & Bell, K.L. 2006, A&A, 452, 1113
Global DoBeckert_etal (double etai, double etaf, double chi)
2 - insert reference
Global DoSatelliteLines (long nelem)
2 say where these come from
Global DoSutherland (double etai, double etaf, double chi)

2 - insert reference

2 - this check may also too liberal.

Global DrvContPump (transition *t)
2 if used, add damp as arg since calling routine probably evaluated it
Global DynaPresChngFactor (void)

2 this should be setable at run time as per Robin Williams email rshock = 4e16;

2 Switch to supersonic when bad enough failure for STRONGD -- need to improve this logic when the p(rho) data is cleaner

Global Fe3Lev14 (void)
2 put in temperature dependence
Global Fe7Lev8 (void)
2 put in temperature dependence
Global FeIILyaPump (void)
2 change this number to speed of light.
Global ForbiddenAuls (long ipHi, long ipLo, long nelem)

2 find a transition probability for this 2^3P0 - 2^3P1 transition. It will require a bit of trickery to insert into the rate matrix, because of the fact that the lower level has a higher index. See discussion "Energy order within 2 3P" near the top of helike.c

2 find a transition probability for this 2^3P1 - 2^3P2 transition. It will require a bit of trickery to insert into the rate matrix, because of the fact that the lower level has a higher index. See discussion "Energy order within 2 3P" near the top of helike.c

Global FreeFreeGaunt (double x)
2 - These are liberal bounds, in final product, this ASSERT should be much more demanding.
Global GetStandardHeLines (void)
2 - this structure is currently only used for helium itself... stuff numbers in for other elements, or drop the [nelem] dimension off of CaABLines
Global GrainCharge (long int nd, double *ThermRatio)
2 remove gv.bin[nd]->lgChrgConverged, gv.bin[nd]->LowestPot, gv.bin[nd]->dstpotsav gv.bin[nd]->RateUp, gv.bin[nd]->RateDn; also gv.HighestIon??, HighestIonStage()??
Global GrainChargeTemp (void)

2 this algorithm might be more efficient with Brent

2 should collisional heating/cooling be included here?

2 use something like log(ThermRatio) + log(delta) ????

2 this algorithm might be more efficient with Brent

Global GrainCollHeating (long int nd, realnum *dcheat, realnum *dccool)
2 a self-consistent treatment for the heating by Compton recoil should be used
Global GrainElecEmis1 (long, long, double *, double *, double *, double *)
- add ionizations due to cosmic rays
Global GrainsInit (void)
xray - StickElec depends on Te ???? use elec_esc_length(1.5*kTe,nd) ????
Global H2_Create (void)
1 add this as a Lya excitation process
Global H2_He_coll (int init, int final, double temp)
1 fix this hack - Phillip Stancil is refitting
Global H2_LevelPops (void)

2 - put H2Lines in outward beams in RT_diffuse

2 put supra thermal excitation into excitation of electronic bands

Global H2_Punch_line_data (FILE *ioPUN, bool lgDoAll)
1 add logic to deduce cs
Global H2_ReadTransprob (long int nelec)
2 the "50" here and in h2.h should be made a macro.
Global HeatSum (void)

1 add part of hard heat to secondaries

2 find correct high-energy limit for these

Global HeCollidSetup (void)
2 - this structure is currently only used for helium itself... stuff numbers in for other elements, or drop the [nelem] dimension off of iso.HeCS[ipISO]
Global HelikeTransProbSetup (void)
2 this test is out of place, where should it go?
Global Hion_coll_ioniz_ratecoef (long int ipISO, long int nelem, long int level)

2 This routine, like the above one, needs to use proper energy.

2 sometimes rate is negative...is that okay?

Global hmole_reactions (void)

2 following always true, why? either remove test or use it - it is here to save time - this step routine is called very often

2 this should be done with new populations after converged soln

Global hmole_step (int *nFixup, double *error)

2 - put in actual composition dependent Tad - this is only valid for bare surfaces - not ice - for ice Tad is 555K hmi.Tad is binding energy expressed as a temperature note that hmi.Tad is set to 800. in zero tau_nu the first equation in section 2.5 equation one paragraph before equation 2 at low grain temperatures all end in para, J=0

1 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

1 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

2 process is net source term for H(n=3) states, must be added in

2 process is net ionization term for H(n=3) states

1 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

1 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

1 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

1 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

1 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

0 update photoelectric opacity for H2 to include real cross sections and energies. this is not a higher priority because when H2 is formed there can be very little ionizing radiation. this process must be trivial compared with the Solomon process following reference gives cross section for all energies >>refer H2 photo cs Yan, M., Sadeghpour, H.R., & Dalgarno, A., 1998, ApJ, 496, 1044 Wilms, J., Allen, A., & McCray, R. 2000, ApJ, 542, 914

0 must include heating, Compton ionization

1 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

1 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? reverse of this reaction i not in detailed balance,why? GS

2 this rate drives numerical instability in such models as secondary1 and 2.in

1 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

1 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

2 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

2 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

1 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

2 must add process H2+ + H- => H2 + H, Dalgarno&Lepp 87

2 put in H2+ + gamma => H + H+

1 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

2 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

2 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

2 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

2 equivalent reaction for H2* is not included in chemistry, Big h2 does not include this reaction, what to do? GS

0 had to comment following test out - NA change to hmole caused massive prints

Global hydro_transprob (long nelem, long ipHi, long ipLo)
1 define quantum defects and use scqdri to calculate A's if levels are not exactly degenerate.
Global Hypergeometric2F1 (complex< double > a, complex< double > b, complex< double > c, double chi, long *NumRenorms, long *NumTerms)
2 - pick these interface values and stick with it...best results have been 0.4, 1.5
Global InitBinAugerData (long, long, long)
xray - Compton recoil still needs to be added here
Global InitCoreload (void)
3 these should be const since cannot change, are flags
Global ion_solver (long int nelem, bool lgPrintIt)
2 renorm should == 1 when the molecules and ionization are in equilibrium. Should monitor this figure of merit in calling routine.
Global IonOxyge (void)
2 this will be zero in current form of atmdat_phfit set 2s**2 rate to rate for O V
Global iso_cool (long int ipISO, long int nelem)
0 08 nov 21 replaced above derivative with simple following version - this exposed with limit_lte_he1_ste.in - derivative above is vastly too large
Global iso_create (void)
2 this should be changed for j-resolved levels
Global iso_level (const long int ipISO, const long int nelem)
2 the indices for the two-photon rates must be changed for further iso sequences.
Global iso_photo (long ipISO, long int nelem)
2 - hydro.lgHInducImp should depend on iso and nelem, even better - just call one gamnc and within that code check to see whether induced is important by looking at occnum near threshold
Global iso_satellite (void)
2 say where these come from
Global iso_solve (long ipISO)
2 remove this when this routine really controls helium itself
Global lines_continuum (void)
2 this block of lines should have nInu, InwT, InwC like main vector of continuum points
Global lines_lv1_k_zn (void)

1 this does not belong here - should be where radius incremented

2 put this line back in! EFF = 43.6 / (43.6 + 0.27*COLFAC) R11 = FE(11)*FLUX(IPFE10)*3.122E-12*EFF * 1 ( PFE11A*ESCINC(T353(1),1E-4)/(1.+17.0/5.3*T353(3) ) + 2 PFE11B*ESCINC(T353(1)/3.,1E-4)/(1.+11.0/12.3*T353(3) ) ) contribution to Fe11 from continuum fluorescence call linadd( R11 , 7892 , 'Pump','i')

2 put this in

Global lines_lv1_li_ne (void)
0 rm this old code for old NI collisions
Global lines_molecules (void)
2 is there a reason that these two have the form COXX instead of the XXCO used elsewhere?
Global lines_setup (void)

2 initialization already done at this point

1 streamline all of this, using TransitionZero and then setting dangerously large negative numbers.

Global NewChargeData (long)
2 should any of the following 3 statements be removed?
Global oi_level_pops (double abundoi, double *coloi)
2 this must have all stimulated emission, pump by cont, etc
Global OpacityAddTotal (void)

2 add charged heavy elements

1 stupid - why this test on opacity_abs ? - we only get here if we already passed above test on this very thing

Global outline (transition *t)
1 explore effects of adding term *opac.tmn[ip] to following
Global pah1_fun (double, sd_data *, grain_data *, double *, double *, double *, int *)

2 impose size limits on PAH's, changeover to graphite ??

2 detect if PAH's are present in ionized regions ??

Global ParseAssertResults (void)
2 NB this is not used, should do both, and more molecules (H2 only for now)
Global ParseCommands (void)
2 is there a need to keep this negative?
Global ParseDynaWind (char *chCard)

2 Need to include divergence terms in pressure balance if flux index is != 0

2 Need to include divergence terms in pressure balance if flux index is != 0

Global PE_init (long, long, long, double *, double *, double *, double *, double *, double *, double *)
xray - add fluoresence in energy balance
Global PresTotCurrent (void)

2 this is the total binding energy of the molecules, and is negative, the energy need to get back to free atoms never set and only appears in print statements

2 - should this include mass in grains?

2 - should this include mass in grain mantle ice deposits?

0 add this press term due to cosmic rays - hextra.cr_energydensity

0 code has variable magnetic energydensity and pressure, which are equal, as they must be - del one or the other

Global PrtComment (void)
2 extend to all iso and elem
Global PrtLinePres (void)
1 make this and eval rad pressure same routine, with flag saying to print contributors - copy code from other routine - this code has been left behind
Global Punch1LineData (transition *t, FILE *ioPUN, bool lgCS_2)
1 define lifetime and collision rate for multi-level species so that the critical density is derived correctly in this routine. For now the flag lgCS_2 being true means to punch critical den and is only true for two-level systems all places where this routine is called with lgCS_2 false need to be fixed
Global Punch1LineData (transition *t, FILE *ioPUN, bool lgCS_2)
1 define lifetime and collision rate for multi-level species so that the critical density is derived correctly in this routine. For now the flag lgCS_2 being true means to punch critical den and is only true for two-level systems all places where this routine is called with lgCS_2 false need to be fixed
Global PunchDo (const char *chTime)

2 introduce units option for wavelength and include area for intensity to make luminosity

1 these hardwired numbers for indices can't be right

Global PunchNewContinuum (FILE *ioPUN, long ipCon)
2 - NB - if continuum resolution changed the lines WILL NOT WORK
Global radius_next (void)
1 rm logic detecting temp and pres failure - these normally occur near troubled parts of cooling curve
Global rayleh (double ener)
2 update to astro-ph/0308073, Lee, H-W, ApJ in press
Global rfield_opac_malloc (void)

3 consider making the fine opacity array a double. with a float, the opacity itself often becomes a denormalized number, it then becomes significant when multiplied by dr - can cause numerical noise. this is why the coarse opacity array is a double

1 set temp of 1e4K will be too coarse a line for PDRs where H2 line overlap is very important

Global RT_DestProb (double abund, double crsec, long int ipanu, double widl, double escp, int nCore)
2 this min is because there are no calculations that show what to do for beta beyound this value
Global RT_diffuse (void)

2 This doesn't really seem to be the expression above!!!

2 should use ConEmitLocal for all continua, but not followed by DiffuseEscape - put that at the end. Once continua all bundled this way, it will be easy to save them as a function of depth and then do exact rt

2 Replace this constant with the appropriate macro, if any

2 add fegrain to outward beams, but within main formalism by including grains in all x-ray processes

Global RT_LineWidth (const transition *t)

1 dynamics; this test assumes that neg vel are subsonic, so that sobolev length would overestimate the optical depth, since ion is at most present over computed slab, and possibly more.

1 rewrite so that this checks on size not sign of windv

Global RT_OTS (void)
2 should also check whether IonLo is in bounds - in func_set_ion test He0 is set to zero, so this does not do anything. as NISO grows this will become larger waste of time
Global RT_stark (void)
2 - Stark is disabled for now since Lya escape causes density dependent feedback on the radiative transfer. Would need to redo the escape probs every time the electron density is updated - see blr89.in for an example
Class stellar_grid

- check rebinning of Tlusty models

- why was it necessary to change stars_tlusty.in? (change from r43 to r50?)

- check all interpolation modes of CoStar

- compare models with original code, dump atmospheres!

- check all Edges arrays...

- update Doxygen documentation

- write documentation for ascii files

Global t_fe2ovr_la::atoms_fe2ovr (void)
2 hydro.dstfe2lya is always multiplied by a double and stuffed into a double. defining it as a realnum causes lost precision here.
Global tbl_fun (double, sd_data *, grain_data *, double *, double *, double *, int *)

2 include code for interpolating inv_att_len somewhere!!

2 why is charge of pah2_ism_01.opc so different??

Global TempInterp (double *TempArray, double *ValueArray, long NumElements)
2 use a canned interpolation routine, no need for special one here
Global TempInterp2 (double *TempArray, double *ValueArray, long NumElements)
there is a virtually identical routine in helike_recom.cpp -> combine
Global UpdatePot1 (long, long, long, long)

xray - secondaries from incident electrons still need to be added in

xray - primary, secondary, auger electrons need to be added into suprathermals

Global vib_evap (struct COmole_rate_s *rate)
0 find physical theory for this process
Global zero (void)

2 change this to CS_new

2 should iso.ipLyaRedist[ipHE_LIKE] use ipLY_A as does H-like?

2 file opacities are disabled for now - reinstate this when arrays settle down

Global ZoneStart (const char *chMode)
2 is this the best place for this?
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated for cloudy by doxygen 1.7.6.1