cloudy trunk
|
00001 /* This file is part of Cloudy and is copyright (C)1978-2008 by Gary J. Ferland and 00002 * others. For conditions of distribution and use see copyright notice in license.txt */ 00003 /*HydroOscilStr computes hydrogenic oscillator strengths, used in the function hdexct. */ 00004 #include "cddefines.h" 00005 #include "physconst.h" 00006 #include "hydrooscilstr.h" 00007 00008 double HydroOscilStr(double xLower, 00009 double Upper) 00010 { 00011 double fosc_v, 00012 gaunt, 00013 gnt0, 00014 gnt1, 00015 gnt2, 00016 x; 00017 00018 DEBUG_ENTRY( "HydroOscilStr()" ); 00019 00020 /* >>refer H1 As Johnson L.C., 1972 ApJ 174 227*/ 00021 /* check order, and that none negative */ 00022 ASSERT( xLower < Upper ); 00023 ASSERT( xLower*Upper >0 ); 00024 00025 x = 1.0 - POW2(xLower/Upper); 00026 if( xLower >= 3 ) 00027 { 00028 gnt0 = 0.9935 + 0.2328/xLower - 0.1296/xLower/xLower; 00029 gnt1 = -(0.6282 - 0.5598/xLower + 0.5299/xLower/xLower)/xLower; 00030 gnt2 = (0.3887 - 1.181/xLower + 1.470/xLower/xLower)/xLower/ 00031 xLower; 00032 } 00033 else if( xLower == 2 ) 00034 { 00035 gnt0 = 1.0785; 00036 gnt1 = -.2319; 00037 gnt2 = 0.02947; 00038 } 00039 else 00040 { 00041 gnt0 = 1.1330; 00042 gnt1 = -.4059; 00043 gnt2 = 0.07014; 00044 } 00045 gaunt = gnt0 + gnt1/x + gnt2/x/x; 00046 fosc_v = 32./3./PI/sqrt(3.)*xLower/POW3(Upper)*gaunt/x/x/x; 00047 return( fosc_v ); 00048 }