H2 UV fluorescence¶
The following option in Parameter.in
.true. ! UV_H2 : include H2 UV levels, enable fluorescence pumping
will compute the o/p-H2 levels including electronically excited levels to account for flourescent pumping. Data includes up to 28481 rovibronic line transitions among 2276 levels (in /data: H2_energy_B.dat, H2_energy_C_plus.dat, H2_energy_C_minus.dat, H2_transprob_B.dat, H2_transprob_C_plus.dat, H2_transprob_C_minuns.dat). The dara were taken from Abgrall, H., Roueff, E., & Drira, I. 2000, A&AS, 141, 297-300
The size of the H2 models is specified in init_headcool.f where there are two calls as
call READ_NLTE_H2_UVpump(10,.true. ,Nlevmax,8,21) ! ortho-H2
call READ_NLTE_H2_UVpump(11,.false.,Nlevmax,8,22) ! para-H2
where Nlevmax is specified in dataNLTE.f, and vmax=8 and Jmax=21 are the maximum vibrational and rotational quantum numbers. Because of the large dimension of levels, ProDiMo requires large memory to run such models. Use the HUGEMEM compiler directive to allocate more memory. The size of the possible H2-models can be changed by using larger values for vmax and Jmax, but will be limited by your memory and whether it's a 32bit or 64bit machine.
The larger the H2 models, the slower ProDiMo will become, because the matix operations scale with number of levels as N3. The linear algebra solver in stateq_it.f will switch to a sparse matrix solver, if the number of levels exceeds
500 ! sparse_Nlev
ie., below 500 levels the standard LU solver is used. For very large model molecules the performance of the sparse solver will overcome the cost of the overhead. You can try to run ProDiMo with a higher value (sparse_Nlev>3000) to disable the sparse matrix solver and use the standard SLATEC LU solver instead. However, you will see that going from 80 to ~2300 levels will slow down the code considerably. So please use the option only when the model has reached convergence.
Please also consider to use a Voigt profile escape probability (Voigt_profile_escape_probability).