00001
00002
00003
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
00021
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 }