subroutine coulog(et,at,zt,denb,tempb,ab,zb,cln,nb,Bmag, > llstix) C C (See the warnings below about some (usually small) uncertainties in C certain parameter regimes.) C C calculates the Coulomb logarithm for a test particle of energy et C (kev), atomic mass at and atomic charge zt, colliding with NB C maxwellian background species with densities denb (/m**3), C temperatures tempb (keV), atomic masses ab, atomic charges zb. The C electrons should be included as one of the background species, with C Z=-1 and A=(1./1836.1). The list of Coulomb logarithms is returned C in cln. The magnetic field should be input as bmag (Tesla). C C Note that the test particle loglambda's produced by this subroutine c are not symmetric, i.e. it is not true that c loglam_alpha_beta=loglam_beta_alpha. If such symmetry is desired, c one should set Et=(3/2)T_t and call this routine twice with species c alpha and beta switched, and take the average value of the log_lambda's c that are returned. C C Written by Greg Hammett, 16-May-1989. C C The exact details of the Coulomb logarithm are probably not worth C worrying about too much. It has the form C C log(Lambda) = log(r_max/r_min) C C For typical values of log(Lambda) ~ 18, a factor of 2 difference in C r_max/r_min gives only a 4% correction to log(Lambda). Since the whole C assumption of small-angle scattering in the Fokker-Planck approximation C to the collision operator is only accurate to ~O(1/log(Lambda)), this is C good enough for most purposes. Often the most important correction is C the difference between the classical and quantum r_min, which can give about C an 18% difference in log(Lambda) at T_e=10 keV and n_e=1.e20/m^3 (using the C simplified thermal expressions in the NRL formulary). C C The recipe I use here is similiar to the C one given in the NRL plasma formulary. So it includes the quantum C mechanics correction which is usually important for collisions with C electrons. Rather than completely ignoring the Debye shielding by C particles with vthermal < v, it contains a smooth transition which I C have rigorously shown (so I have thought) from the Balescu-Lenard C to be correct in the limits vthermal>>v and vthermal<>v_te, ! and focussing on just the log(Lambda) for the fast particle energy ! loss rate on thermal electrons (the g_1(v) term in his Eq. 26) ! suggests that the above should be modified from: ! ! ln(Lambda) = log(r_max/r_min) ! ! to ! ! ln(Lambda) = ln(exp(0.5)/1.467*r_max/r_min) ! = ln(1.12*r_max/r_min) ! ! This is only a very minor correction!!! (If I did the calculation right.) ! One could eventually also check other regimes and thus the Pade ! interpolation formulas. ! ! Could further modify the above formula to be ! ! ln(Lambda) => ln(sqrt(1+(1.12*r_max/r_min)**2)) ! ! This can be derived from the calculation for the dynamical friction ! drag rate, and gives a positive value for ln(Lambda) for all possible ! r_max/r_min, but it is not correct compared to molecular dynamics ! simulations for small r_max/r_min, where certain correlation effects ! become important. ! ! Expanding for large Lambda, we get ! ! ln(sqrt(1+(C*Lambda)^2)) = ln(C*Lambda)*ln(sqrt(1+1/(C*Lambda)^2)) ! ~ ln(C*Lambda) + 0.5/(C*Lambda)^2 ! ! and it is known that there are other corrections of order ! 1/sqrt(Lambda_eff) (see Perkins 1965, if I understand him right). ! Perkins calculates the first order correction C, but no one (I think) ! has tried to go beyond that. These other terms would dominate over ! the above 0.5/Lambda_eff^2 term. Also, although one could in ! principle calculate the dynamical drag rate or the mean energy loss ! rate to arbitrary order in 1/Lambda, the whole assumption that ! small-angle scattering dominates breaks down so that a Fokker-Planck ! form for the collision operator is no longer valid and one should ! use a Boltzmann collision operator and include large-angle ! scattering. ! ! See papers by Baalrud et al. for a better transition to the strongly coupled ! regime. An improved fit is if r_max is limited to be no smaller than ! 1/n^(1/3), the average interparticle spacing. But I think even that does ! not do as well as empirical fits to molecular dynamics (MD) simulations of ! the strongly-coupled regime. c debug section: set all log(lambda)'s to a simple formula for c log(lambda_e) to benchmark with Stix's solutions: if(llstix) then do 300 i=1,nb 300 cln(i)=24.0-alog(sqrt(denb(1)/1.e6)/(tempb(1)*1000.)) endif return end