From d137f6818b991ad487f1483da99e54e32a4b6e4a Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Fri, 15 Mar 2024 11:27:43 +0800 Subject: [PATCH 01/73] Update the configure.py to fit the CR+SRHD --- src/configure.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/configure.py b/src/configure.py index a3a350a9a3..6d5c093028 100644 --- a/src/configure.py +++ b/src/configure.py @@ -367,8 +367,8 @@ def load_arguments(): parser.add_argument( "--cosmic_ray", type=str2bool, metavar="BOOLEAN", gamer_name="COSMIC_RAY", default=False, depend={"model":"HYDRO"}, - constraint={ True:{"dual":[NONE_STR], "eos":"COSMIC_RAY", "comoving":False} }, - help="Enable cosmic ray. Must use <--eos=COSMIC_RAY>.\n" + constraint={ True:{"dual":[NONE_STR], "eos":["COSMIC_RAY", "TAUBMATHEWS"], "comoving":False} }, + help="Enable cosmic ray. Hydro/MHD: <--eos=COSMIC_RAY> or SRHD: <--eos=TABMATHEWS>.\n" ) parser.add_argument( "--eos", type=str, metavar="TYPE", gamer_name="EOS", @@ -652,8 +652,9 @@ def set_conditional_defaults( args ): args["flux"] = "HLLD" if args["mhd"] else "HLLC" if args["eos"] == None: - if args["cosmic_ray"]: args["eos"] = "COSMIC_RAY" - elif args["srhd"] : args["eos"] = "TAUBMATHEWS" + # The order does matter in this if + if args["srhd"] : args["eos"] = "TAUBMATHEWS" + elif args["cosmic_ray"]: args["eos"] = "COSMIC_RAY" else : args["eos"] = "GAMMA" return args From 498e8181ed246d7079dd8ab75eb4320300ab44e9 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 21 Mar 2024 10:16:08 +0800 Subject: [PATCH 02/73] Add the Jet for the SRHD (temporary) --- .../Hydro/Jet/ExtPot_IsothermalSlab.cpp | 225 +++ .../Hydro/Jet/ExtPot_IsothermalSlab.cu | 1 + .../Hydro/Jet/Init_TestProb_Hydro_Jet.cpp | 2 +- .../Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp | 1595 +++++++++++++++++ .../Hydro/Jet/Interpolation_UM_IC.cpp | 104 ++ 5 files changed, 1926 insertions(+), 1 deletion(-) create mode 100644 src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cpp create mode 120000 src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cu create mode 100644 src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp create mode 100644 src/TestProblem/Hydro/Jet/Interpolation_UM_IC.cpp diff --git a/src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cpp b/src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cpp new file mode 100644 index 0000000000..bb422b64ae --- /dev/null +++ b/src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cpp @@ -0,0 +1,225 @@ +#include "CUPOT.h" +#ifdef __CUDACC__ +#include "CUAPI.h" +#endif + +#ifdef GRAVITY + + + + +// ================================= +// I. Set auxiliary arrays +// ================================= + +#ifndef __CUDACC__ + +extern double IsothermalSlab_Center[3]; +extern real IsothermalSlab_VelocityDispersion; +extern real IsothermalSlab_PeakDens; +extern real IsothermalSlab_Truncation; +extern real interfaceHeight; + +extern int Jet_Ambient; +extern real distance_h; +extern real v_halo; + +//------------------------------------------------------------------------------------------------------- +// Function : SetExtPotAuxArray_IsothermalSlab +// Description : Set the auxiliary arrays ExtPot_AuxArray_Flt/Int[] used by ExtPot_IsothermalSlab() +// +// Note : 1. Invoked by Init_ExtPot_IsothermalSlab() +// 2. AuxArray_Flt/Int[] have the size of EXT_POT_NAUX_MAX defined in Macro.h (default = 20) +// 3. Add "#ifndef __CUDACC__" since this routine is only useful on CPU +// +// Parameter : AuxArray_Flt/Int : Floating-point/Integer arrays to be filled up +// +// Return : AuxArray_Flt/Int[] +//------------------------------------------------------------------------------------------------------- +void SetExtPotAuxArray_IsothermalSlab( double AuxArray_Flt[], int AuxArray_Int[] ) +{ + + AuxArray_Flt[ 0] = IsothermalSlab_Center[0]; // x coordinate of the IsothermalSlab center + AuxArray_Flt[ 1] = IsothermalSlab_Center[1]; // y ... + AuxArray_Flt[ 2] = IsothermalSlab_Center[2]; // z ... + AuxArray_Flt[ 3] = IsothermalSlab_VelocityDispersion; // + AuxArray_Flt[ 4] = IsothermalSlab_PeakDens; // + AuxArray_Flt[ 5] = NEWTON_G; + AuxArray_Flt[ 6] = amr->BoxSize[2]; + AuxArray_Flt[ 7] = IsothermalSlab_Truncation; + AuxArray_Flt[ 8] = distance_h; + AuxArray_Flt[ 9] = v_halo; + AuxArray_Flt[10] = interfaceHeight; + + AuxArray_Int[ 0] = Jet_Ambient; + +} // FUNCTION : SetExtPotAuxArray_IsothermalSlab +#endif // #ifndef __CUDACC__ + + + +// ================================= +// II. Specify external potential +// ================================= + +//----------------------------------------------------------------------------------------- +// Function : ExtPot_IsothermalSlab +// Description : Calculate the external potential at the given coordinates and time +// +// Note : 1. This function is shared by CPU and GPU +// 2. Auxiliary arrays UserArray_Flt/Int[] are set by SetExtPotAuxArray_IsothermalSlab() +// +// Parameter : x/y/z : Target spatial coordinates +// Time : Target physical time +// UserArray_Flt/Int : User-provided floating-point/integer auxiliary arrays +// Usage : Different usages of external potential when computing total potential on level Lv +// --> EXT_POT_USAGE_ADD : add external potential on Lv +// EXT_POT_USAGE_SUB : subtract external potential for preparing self-gravity potential on Lv-1 +// EXT_POT_USAGE_SUB_TINT: like SUB but for temporal interpolation +// --> This parameter is useless in most cases +// PotTable : 3D potential table used by EXT_POT_TABLE +// +// Return : External potential at (x,y,z,Time) +//----------------------------------------------------------------------------------------- +GPU_DEVICE_NOINLINE +static real ExtPot_IsothermalSlab( const double x, const double y, const double z, const double Time, + const double UserArray_Flt[], const int UserArray_Int[], + const ExtPotUsage_t Usage, const real PotTable[] ) +{ + +// halo potential + const double cz = UserArray_Flt[ 2]; // z ... + const real IsothermalSlab_VelocityDispersion = (real)UserArray_Flt[ 3]; // + const real IsothermalSlab_PeakDens = (real)UserArray_Flt[ 4]; // + const real NewtonG = UserArray_Flt[ 5]; + const real BoxSize_Z = UserArray_Flt[ 6]; + const double dz = z - cz; + const real IsothermalSlab_Truncation = (real)UserArray_Flt[ 7]; // + const real distance_h = (real)UserArray_Flt[ 8]; + const real v_halo = (real)UserArray_Flt[ 9]; + const real interfaceHeight = (real)UserArray_Flt[10]; + const int Jet_Ambient = UserArray_Int[ 0]; + + const double IsothermalSlab_VelocityDispersion_Sqr = SQR(IsothermalSlab_VelocityDispersion); + + real stellarDiskPot = sqrt( ( 2.0*M_PI*NewtonG*IsothermalSlab_PeakDens ) / IsothermalSlab_VelocityDispersion_Sqr ); + +# ifndef __CUDACC__ + if ( cz != 0.5*BoxSize_Z ) Aux_Error( ERROR_INFO, "We expect the z-position of stellar disk is at box-center!\n" ); +# endif + + real LogPot; + + if ( Jet_Ambient == 2 ) + { + if ( fabs(dz) > IsothermalSlab_Truncation ) + { + stellarDiskPot = 2.0*IsothermalSlab_VelocityDispersion_Sqr*log(cosh(IsothermalSlab_Truncation*stellarDiskPot)); + LogPot = SQR(v_halo) * log(SQR(IsothermalSlab_Truncation) + SQR(distance_h)); + } else + { + stellarDiskPot = 2.0*IsothermalSlab_VelocityDispersion_Sqr*log(cosh(dz*stellarDiskPot)); + LogPot = SQR(v_halo) * log(dz*dz + SQR(distance_h)); + } + } + else if ( Jet_Ambient == 3 ) + { + if ( fabs(dz) > interfaceHeight ) + { + stellarDiskPot = 2.0*IsothermalSlab_VelocityDispersion_Sqr*log(cosh(interfaceHeight*stellarDiskPot)); + LogPot = SQR(v_halo) * log(SQR(interfaceHeight) + SQR(distance_h)); + } else + { + stellarDiskPot = 2.0*IsothermalSlab_VelocityDispersion_Sqr*log(cosh(dz*stellarDiskPot)); + LogPot = SQR(v_halo) * log(dz*dz + SQR(distance_h)); + } + } + + real TotPot = stellarDiskPot + LogPot; + + return TotPot; + +} // FUNCTION : ExtPot_IsothermalSlab + + + +// ================================= +// III. Set initialization functions +// ================================= + +#ifdef __CUDACC__ +# define FUNC_SPACE __device__ static +#else +# define FUNC_SPACE static +#endif + +FUNC_SPACE ExtPot_t ExtPot_Ptr = ExtPot_IsothermalSlab; + +//----------------------------------------------------------------------------------------- +// Function : SetCPU/GPUExtPot_IsothermalSlab +// Description : Return the function pointers of the CPU/GPU external potential routines +// +// Note : 1. Invoked by Init_ExtPot_IsothermalSlab() +// +// Parameter : CPU/GPUExtPot_Ptr (call-by-reference) +// +// Return : CPU/GPUExtPot_Ptr +//----------------------------------------------------------------------------------------- +#ifdef __CUDACC__ +__host__ +void SetGPUExtPot_IsothermalSlab( ExtPot_t &GPUExtPot_Ptr ) +{ + CUDA_CHECK_ERROR( cudaMemcpyFromSymbol( &GPUExtPot_Ptr, ExtPot_Ptr, sizeof(ExtPot_t) ) ); +} + +#else // #ifdef __CUDACC__ + +void SetCPUExtPot_IsothermalSlab( ExtPot_t &CPUExtPot_Ptr ) +{ + CPUExtPot_Ptr = ExtPot_Ptr; +} + +#endif // #ifdef __CUDACC__ ... else ... + + + +#ifndef __CUDACC__ + +// local function prototypes +void SetExtPotAuxArray_IsothermalSlab( double [], int [] ); +void SetCPUExtPot_IsothermalSlab( ExtPot_t & ); +#ifdef GPU +void SetGPUExtPot_IsothermalSlab( ExtPot_t & ); +#endif + +//----------------------------------------------------------------------------------------- +// Function : Init_ExtPot_IsothermalSlab +// Description : Initialize external potential +// +// Note : 1. Set auxiliary arrays by invoking SetExtPotAuxArray_*() +// --> They will be copied to GPU automatically in CUAPI_SetConstMemory() +// 2. Set the CPU/GPU external potential major routines by invoking SetCPU/GPUExtPot_*() +// 3. Invoked by Init_ExtAccPot() +// --> Enable it by linking to the function pointer "Init_ExtPot_Ptr" +// 4. Add "#ifndef __CUDACC__" since this routine is only useful on CPU +// +// Parameter : None +// +// Return : None +//----------------------------------------------------------------------------------------- +void Init_ExtPot_IsothermalSlab() +{ + + SetExtPotAuxArray_IsothermalSlab( ExtPot_AuxArray_Flt, ExtPot_AuxArray_Int ); + SetCPUExtPot_IsothermalSlab( CPUExtPot_Ptr ); +# ifdef GPU + SetGPUExtPot_IsothermalSlab( GPUExtPot_Ptr ); +# endif + +} // FUNCTION : Init_ExtPot_IsothermalSlab + +#endif // #ifndef __CUDACC__ + + + +#endif // #ifdef GRAVITY diff --git a/src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cu b/src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cu new file mode 120000 index 0000000000..eb0d9c78f0 --- /dev/null +++ b/src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cu @@ -0,0 +1 @@ +ExtPot_IsothermalSlab.cpp \ No newline at end of file diff --git a/src/TestProblem/Hydro/Jet/Init_TestProb_Hydro_Jet.cpp b/src/TestProblem/Hydro/Jet/Init_TestProb_Hydro_Jet.cpp index 54a40107d8..1d542645e2 100644 --- a/src/TestProblem/Hydro/Jet/Init_TestProb_Hydro_Jet.cpp +++ b/src/TestProblem/Hydro/Jet/Init_TestProb_Hydro_Jet.cpp @@ -572,7 +572,7 @@ int Flu_ResetByUser_Jet( real fluid[], const double Emag, const double x, const // // Return : None //------------------------------------------------------------------------------------------------------- -void Init_TestProb_Hydro_Jet() +void Init_TestProb_Hydro_Jet_old() { if ( MPI_Rank == 0 ) Aux_Message( stdout, "%s ...\n", __FUNCTION__ ); diff --git a/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp b/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp new file mode 100644 index 0000000000..5b61e991ab --- /dev/null +++ b/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp @@ -0,0 +1,1595 @@ +#include +#include +#include +#include "GAMER.h" +#include "TestProb.h" + +void ***calloc_3d_array (size_t nt, size_t nr, size_t nc, size_t size); +void free_3d_array(void ***array); +void Mis_Cartesian2Spherical( const double Cartesian[], double Spherical[] ); +void CartesianRotate( double x[], double theta, double phi, bool inverse ); +void Interpolation_UM_IC( real x, real y, real z, real ****Pri_input, real **XYZ, real *Pri_output, bool disk ); +real TrilinearInterpolation(real *FieldAtVertices, real *xyz000, real *dxyz, real *xyz); +static void SetArrayDisk(); +static void SetArrayHVC(); +static real *randXYZ; +static int numClouds = 30; +static real radiusCloud = 1.0; +void randCloud( real **randXYZ, int numClouds ); + + +#if ( MODEL == HYDRO ) + +// problem-specific global variables +// ======================================================================================= + +// options + int Jet_Ambient; // [0/1/9]: uniform/Milky-Way/load-from-file +static bool Jet_Precession; // flag: precessing jet source +static bool Jet_TimeDependentSrc; // flag: time-dependent fluid variables in source +static int Jet_Fire; // [0/1/2/3]: no jet/jet1/jet2/bipolar jet +static double Jet_Duration; // a duration of jet injection from the start of simulation + +// general parameters +static double ParticleMass; // atomic mass unit in jet source + +// uniform background parameters +static double Amb_UniformDens; // uniform ambient density +static double Amb_UniformVel[3]; // uniform ambient 4-velocity +static double Amb_UniformTemp; // uniform ambient temperature + +// Milky Way parameters + double IsothermalSlab_Center[3]; + +// jet fluid parameters +static double Jet_SrcVel; // jet 4-velocity +static double Jet_SrcDens; // jet density +static double Jet_SrcTemp; // jet temperature +static bool Jet_SmoothVel; // smooth radial component of 4-velocity on cross section + +static bool Jet_SphericalSrc; + +#ifdef COSMIC_RAY +static double Jet_Src_CR_Engy; +static double Amb_CR_Engy; +#endif + +// sound speed +static double CharacteristicSpeed; // the characteristic speed of the simulation problem + // the default end-time (END_T) will be estimated from + // `CharacteristicSpeed` and `BOX_SIZE` +static real *buffer; +static real *Header_disk; +static real ***Rhoo_disk; +static real ***VelX_disk; +static real ***VelY_disk; +static real ***VelZ_disk; +static real ***Pres_disk; +static real *Header_hvc; +static real ***Rhoo_hvc; +static real ***VelX_hvc; +static real ***VelY_hvc; +static real ***VelZ_hvc; +static real ***Pres_hvc; +static real *X_disk; +static real *Y_disk; +static real *Z_disk; +static real *X_hvc; +static real *Y_hvc; +static real *Z_hvc; + +// fermi bubbles + real IsothermalSlab_VelocityDispersion; + real IsothermalSlab_PeakDens; + real IsothermalSlab_Truncation; +static real ambientTemperature; +static real gasDiskTemperature; +static real gasDiskPeakDens; + real interfaceHeight; +static double criticalTemp; +static double gasDisk_highResRadius; +static double jetSrc_highResRadius; +static int gasDisk_lowRes_LEVEL; +static int jetSrc_lowRes_LEVEL; + +// Dark logarithmic halo potential + real v_halo; + real distance_h; + +void Init_ExtPot_IsothermalSlab(); + +// ======================================================================================= +/* G A C */ +/* ____________ */ +/* \ | / */ +/* \ E| / z */ +/* \ /|\ / ^ */ +/* \/_|_\/ | */ +/* /\O| /\B | */ +/* / \|/ \ */ +/* / D| \ */ +/* /_____|_____\ */ +/* F */ +// ======================================================================================= +// +// jet geometry parameters +static double Jet_Radius; // length of OB +static double Jet_HalfHeight; // length of OA +static double Jet_HalfOpeningAngle; // half-opening angle (i.e. ∠ADC) +static double Jet_CenOffset[3]; // jet central coordinates offset +static double Jet_Center[3]; // jet central coordinates +static double Jet_MaxDis; // maximum distance between the jet source and the jet center + + +// precession parameters +static double Jet_AngularVelocity; // precession angular velocity (degree per code_time) +static double Jet_PrecessionAngle; // precession angle in degree +static double Jet_PrecessionAxis[3]; // cone orientation vector (x,y,z). i.e. vector OA + // --> NOT necessary to be a unit vector + +// time-depent source +static double Jet_BurstStartTime; // start burst time in jet source +static double Jet_BurstEndTime; // end burst time in jet source +static double Jet_Burst4VelRatio; // increase 4-velocity by a factor of `Jet_Burst4VelRatio` during `Jet_BurstStartTime` and `Jet_BurstEndTime` +static double Jet_BurstDensRatio; // increase proper density by a factor of `Jet_BurstDensRatio` during `Jet_BurstStartTime` and `Jet_BurstEndTime` +static double Jet_BurstTempRatio; // increase temperature by a factor of `Jet_BurstTempRatio` during `Jet_BurstStartTime` and `Jet_BurstEndTime` +static bool Flag_Burst4Vel; // flag: burst 4-velocity +static bool Flag_BurstDens; // flag: burst proper density +static bool Flag_BurstTemp; // flag: burst temperature + +static double Amb_FluSphereRadius; // + +#if (NCOMP_PASSIVE_USER > 0) +static FieldIdx_t Passive_0000 = 5; // disk +static FieldIdx_t Passive_0001 = 6; // src, the ejected material is Jet_Dens +static FieldIdx_t Passive_0002 = 7; // src, the ejected material is CRay +#endif +// ======================================================================================= + + + +//------------------------------------------------------------------------------------------------------- +// Function : Validate +// Description : Validate the compilation flags and runtime parameters for this test problem +// +// Note : None +// +// Parameter : None +// +// Return : None +//------------------------------------------------------------------------------------------------------- +void Validate() +{ + + if ( MPI_Rank == 0 ) Aux_Message( stdout, " Validating test problem %d ...\n", TESTPROB_ID ); + + +// errors +# ifdef PARTICLE + Aux_Error( ERROR_INFO, "PARTICLE must be disabled !!\n" ); +# endif + +# ifndef GRAVITY + if ( Jet_Ambient == 1 || Jet_Ambient == 2 ) + Aux_Error( ERROR_INFO, "GRAVITY must be enabled !!\n" ); +# endif + +// warnings + if ( MPI_Rank == 0 ) + { + for (int s=0; s<6; s++) + if ( OPT__BC_FLU[s] != BC_FLU_OUTFLOW ) + Aux_Message( stderr, "WARNING : it's recommended to use the outflow BC (currently OPT__BC_FLU[%d] = %d != 2)\n", + s, OPT__BC_FLU[s] ); + } + + + if ( MPI_Rank == 0 ) Aux_Message( stdout, " Validating test problem %d ... done\n", TESTPROB_ID ); + +} // FUNCTION : Validate + + + +//------------------------------------------------------------------------------------------------------- +// Function : SetParameter +// Description : Load and set the problem-specific runtime parameters +// +// Note : 1. Filename is set to "Input__TestProb" by default +// 2. Major tasks in this function: +// (1) load the problem-specific runtime parameters +// (2) set the problem-specific derived parameters +// (3) reset other general-purpose parameters if necessary +// (4) make a note of the problem-specific parameters +// +// Parameter : None +// +// Return : None +//------------------------------------------------------------------------------------------------------- +void SetParameter() +{ + + if ( MPI_Rank == 0 ) Aux_Message( stdout, " Setting runtime parameters ...\n" ); + + +// (1) load the problem-specific runtime parameters + const char FileName[] = "Input__TestProb"; + ReadPara_t *ReadPara = new ReadPara_t; + +// (1-1) add parameters in the following format: +// --> note that VARIABLE, DEFAULT, MIN, and MAX must have the same data type +// --> some handy constants (e.g., Useless_bool, Eps_double, NoMin_int, ...) are defined in "include/ReadPara.h" +// ************************************************************************************************************************ +// ReadPara->Add( "KEY_IN_THE_FILE", &VARIABLE, DEFAULT, MIN, MAX ); +// ************************************************************************************************************************ + +// load options + ReadPara->Add( "Jet_Ambient", &Jet_Ambient, 1, 0, 9 ); + ReadPara->Add( "Jet_Fire", &Jet_Fire, 3, 0, 3 ); + ReadPara->Add( "Jet_Precession", &Jet_Precession, false, Useless_bool, Useless_bool ); + ReadPara->Add( "Jet_SphericalSrc", &Jet_SphericalSrc, false, Useless_bool, Useless_bool ); + ReadPara->Add( "Jet_TimeDependentSrc", &Jet_TimeDependentSrc, false, Useless_bool, Useless_bool ); + ReadPara->Add( "Jet_Duration", &Jet_Duration , NoMax_double, 0.0, NoMax_double ); + +// load jet fluid parameters + ReadPara->Add( "Jet_SrcVel", &Jet_SrcVel , -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "Jet_SmoothVel", &Jet_SmoothVel , false, Useless_bool, Useless_bool ); + ReadPara->Add( "Jet_SrcDens", &Jet_SrcDens , -1.0, Eps_double, NoMax_double ); + ReadPara->Add( "Jet_SrcTemp", &Jet_SrcTemp , -1.0, Eps_double, NoMax_double ); + ReadPara->Add( "gasDisk_highResRadius", &gasDisk_highResRadius, -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "gasDisk_lowRes_LEVEL", &gasDisk_lowRes_LEVEL, -1, 0, NoMax_int ); + ReadPara->Add( "jetSrc_highResRadius", &jetSrc_highResRadius, -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "jetSrc_lowRes_LEVEL", &jetSrc_lowRes_LEVEL, -1, 0, NoMax_int ); +# ifdef COSMIC_RAY + ReadPara->Add( "Jet_Src_CR_Engy", &Jet_Src_CR_Engy , -1.0, 0.0, NoMax_double ); + ReadPara->Add( "Amb_CR_Engy", &Amb_CR_Engy , -1.0, 0.0, NoMax_double ); +# endif + + +// load source geometry parameters + ReadPara->Add( "Jet_Radius", &Jet_Radius, -1.0, Eps_double, NoMax_double ); + ReadPara->Add( "Jet_HalfHeight", &Jet_HalfHeight, -1.0, Eps_double, NoMax_double ); + ReadPara->Add( "Jet_HalfOpeningAngle", &Jet_HalfOpeningAngle, -1.0, 0.0, 90.0 ); + ReadPara->Add( "Jet_CenOffset_x", &Jet_CenOffset [0], NoDef_double, NoMin_double, NoMax_double ); + ReadPara->Add( "Jet_CenOffset_y", &Jet_CenOffset [1], NoDef_double, NoMin_double, NoMax_double ); + ReadPara->Add( "Jet_CenOffset_z", &Jet_CenOffset [2], NoDef_double, NoMin_double, NoMax_double ); + +// load precission parameters + ReadPara->Add( "Jet_AngularVelocity", &Jet_AngularVelocity, NoDef_double, 0.0, NoMax_double ); + ReadPara->Add( "Jet_PrecessionAngle", &Jet_PrecessionAngle, NoDef_double, NoMin_double, 90.0 ); + ReadPara->Add( "Jet_PrecessionAxis_x", &Jet_PrecessionAxis[0], NoDef_double, NoMin_double, NoMax_double ); + ReadPara->Add( "Jet_PrecessionAxis_y", &Jet_PrecessionAxis[1], NoDef_double, NoMin_double, NoMax_double ); + ReadPara->Add( "Jet_PrecessionAxis_z", &Jet_PrecessionAxis[2], NoDef_double, NoMin_double, NoMax_double ); + +// load uniform background parameters + ReadPara->Add( "Amb_UniformDens", &Amb_UniformDens, -1.0, Eps_double, NoMax_double ); + ReadPara->Add( "Amb_UniformVel_x", &Amb_UniformVel[0], 0.0, NoMin_double, NoMax_double ); + ReadPara->Add( "Amb_UniformVel_y", &Amb_UniformVel[1], 0.0, NoMin_double, NoMax_double ); + ReadPara->Add( "Amb_UniformVel_z", &Amb_UniformVel[2], 0.0, NoMin_double, NoMax_double ); + ReadPara->Add( "Amb_UniformTemp", &Amb_UniformTemp, -1.0, Eps_double, NoMax_double ); + + + ReadPara->Add( "Amb_FluSphereRadius", &Amb_FluSphereRadius, -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "CharacteristicSpeed", &CharacteristicSpeed, -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "criticalTemp", &criticalTemp, -1.0, NoMin_double, NoMax_double ); + +// load Milky Way parameters + ReadPara->Add( "IsothermalSlab_Center_x", &IsothermalSlab_Center[0], -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "IsothermalSlab_Center_y", &IsothermalSlab_Center[1], -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "IsothermalSlab_Center_z", &IsothermalSlab_Center[2], -1.0, NoMin_double, NoMax_double ); + +// load time-dependent source varibles + ReadPara->Add( "Jet_BurstStartTime", &Jet_BurstStartTime, -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "Jet_BurstEndTime", &Jet_BurstEndTime, -1.0, NoMin_double, NoMax_double ); + + ReadPara->Read( FileName ); + + delete ReadPara; + +// Read header for the fermi bubbles + SetArrayDisk(); +// SetArrayHVC(); + randCloud( &randXYZ, numClouds ); + + +// replace useless parameters with NaN + if ( Jet_Ambient != 0 ) + { + Amb_UniformDens = NAN; + Amb_UniformVel[0] = NAN; + Amb_UniformVel[1] = NAN; + Amb_UniformVel[2] = NAN; + } + + if ( Amb_FluSphereRadius < 0.0 ) + { + Amb_FluSphereRadius = NAN; + } + + + if ( !Jet_TimeDependentSrc ) + { + Jet_BurstDensRatio = NAN; + Jet_Burst4VelRatio = NAN; + Jet_BurstTempRatio = NAN; + Jet_BurstStartTime = NAN; + Jet_BurstEndTime = NAN; + } + +// (1-2) check runtime parameters + +// check time-dependent source + if ( Jet_TimeDependentSrc ) + { + if ( !Flag_Burst4Vel && !Flag_BurstDens && !Flag_BurstTemp ) + Aux_Error( ERROR_INFO, "One of Flag_Burst4Vel, Flag_BurstDens or Flag_BurstTemp must be enabled !!\n" ); + + if ( Jet_BurstEndTime <= Jet_BurstStartTime) + Aux_Error( ERROR_INFO, "Jet_BurstEndTime <= Jet_BurstStartTime !!\n" ); + + if ( Jet_BurstEndTime >= END_T ) + Aux_Error( ERROR_INFO, "Jet_BurstEndTime >= END_T !!\n" ); + + if ( Flag_Burst4Vel && Jet_Burst4VelRatio <= Eps_double ) + Aux_Error( ERROR_INFO, "Jet_Burst4VelRatio <= Eps_double !!\n" ); + + if ( Flag_BurstDens && Jet_BurstDensRatio <= Eps_double ) + Aux_Error( ERROR_INFO, "Jet_BurstDensRatio <= Eps_double !!\n" ); + + if ( Flag_BurstTemp && Jet_BurstTempRatio <= Eps_double ) + Aux_Error( ERROR_INFO, "Jet_BurstTempRatio <= Eps_double !!\n" ); + } + + if ( IsothermalSlab_Center[0] == -1.0 ) + IsothermalSlab_Center[0] = 0.5*amr->BoxSize[0]; + + if ( IsothermalSlab_Center[1] == -1.0 ) + IsothermalSlab_Center[1] = 0.5*amr->BoxSize[1]; + + if ( IsothermalSlab_Center[2] == -1.0 ) + IsothermalSlab_Center[2] = 0.5*amr->BoxSize[2]; + + if ( Jet_Ambient == 9 && OPT__INIT != 3 ) + { + Aux_Error( ERROR_INFO, "OPT__INIT must be 3 !!\n" ); + } + + +// check UNIT_L is in reasonable range + if ( ( UNIT_L <= 0.5*Const_kpc || 2.0*Const_kpc <= UNIT_L ) && OPT__UNIT ) + Aux_Error( ERROR_INFO, "UNIT_L=%e is far from %e !!\n", UNIT_L, Const_kpc ); + + const double Const_Erg2eV = 6.2415e11; + +// (1-2) convert to code unit + Jet_SrcVel *= Const_c / UNIT_V; + Jet_SrcTemp *= Const_kB / (ParticleMass*Const_c*Const_c); + Jet_SrcDens *= 1.0 / UNIT_D; + +# ifdef COSMIC_RAY + Jet_Src_CR_Engy *= 1.0 / UNIT_P; + Amb_CR_Engy *= 1.0 / UNIT_P; +# endif + + Jet_Radius *= Const_kpc / UNIT_L; + Jet_HalfHeight *= Const_kpc / UNIT_L; + Jet_HalfOpeningAngle *= M_PI / 180.0; + Jet_PrecessionAngle *= M_PI / 180.0; + + Jet_CenOffset[0] *= Const_kpc / UNIT_L; + Jet_CenOffset[1] *= Const_kpc / UNIT_L; + Jet_CenOffset[2] *= Const_kpc / UNIT_L; + + Jet_Duration *= Const_Myr / UNIT_T; + + gasDisk_highResRadius *= Const_kpc / UNIT_L; + jetSrc_highResRadius *= Const_kpc / UNIT_L; + + if ( Jet_Ambient == 0 ) + { + Amb_UniformDens *= 1.0 / UNIT_D; + Amb_UniformVel[0] *= Const_c / UNIT_V; + Amb_UniformVel[1] *= Const_c / UNIT_V; + Amb_UniformVel[2] *= Const_c / UNIT_V; + } else if ( Jet_Ambient == 2 || Jet_Ambient == 3 || Jet_Ambient == 4 ) + { + IsothermalSlab_VelocityDispersion = Header_disk[15]; + IsothermalSlab_PeakDens = Header_disk[16]; + //IsothermalSlab_Truncation = Header_disk[21]; + IsothermalSlab_Truncation = 0.95*0.5*amr->BoxSize[2]; + gasDiskPeakDens = Header_disk[19]; + + IsothermalSlab_VelocityDispersion *= 1e5 / UNIT_V; // km/s --> 1/c + IsothermalSlab_PeakDens *= 1.0 / UNIT_D; + IsothermalSlab_Truncation *= Const_kpc / UNIT_L; + IsothermalSlab_Center[0] *= Const_kpc / UNIT_L; + IsothermalSlab_Center[1] *= Const_kpc / UNIT_L; + IsothermalSlab_Center[2] *= Const_kpc / UNIT_L; + + distance_h = Header_disk[29]; + v_halo = Header_disk[30]; + + distance_h *= Const_kpc / UNIT_L; + v_halo *= 1.0 / UNIT_V; + + gasDiskPeakDens /= UNIT_D; + + ambientTemperature = Header_disk[20]; + ambientTemperature *= Const_kB/(ParticleMass*UNIT_V*UNIT_V); + + gasDiskTemperature = Header_disk[18]; + gasDiskTemperature *= Const_kB / (ParticleMass*UNIT_V*UNIT_V); + + criticalTemp *= Const_kB / (ParticleMass*Const_c*Const_c); + } + + Amb_UniformTemp *= Const_kB / (ParticleMass*Const_c*Const_c); + Jet_AngularVelocity *= 1.0; // the unit of Jet_AngularVelocity is UNIT_T + + + if ( Amb_FluSphereRadius > 0.0 ) + { + Amb_FluSphereRadius *= Const_kpc / UNIT_L; + } + + + if ( Jet_TimeDependentSrc ) + { + Jet_BurstStartTime *= 1e3*Const_yr / UNIT_T; + Jet_BurstEndTime *= 1e3*Const_yr / UNIT_T; + Jet_Burst4VelRatio *= Const_c / UNIT_V; + Jet_BurstDensRatio *= 1.0 / UNIT_D; + } + +// (2) set the problem-specific derived parameters + const double SecAngle = 1.0 / cos(0.5*Jet_HalfOpeningAngle); + const double TanAngle = sin(0.5*Jet_HalfOpeningAngle) * SecAngle; + + Jet_MaxDis = sqrt( SQR( Jet_Radius ) + SQR( Jet_HalfHeight * SecAngle ) + 2.0 * Jet_Radius * Jet_HalfHeight * TanAngle ); + + for (int d=0; d<3; d++) Jet_Center[d] = 0.5*amr->BoxSize[d] + Jet_CenOffset[d]; + + +// (4) reset other general-purpose parameters +// --> a helper macro PRINT_RESET_PARA is defined in Macro.h + const long End_Step_Default = __INT_MAX__; + const double End_T_Default = 0.5*BOX_SIZE * UNIT_L / (CharacteristicSpeed *UNIT_V) / UNIT_T; + + if ( END_STEP < 0 ) { + END_STEP = End_Step_Default; + PRINT_RESET_PARA( END_STEP, FORMAT_LONG, "" ); + } + + if ( END_T < 0.0 ) { + if ( CharacteristicSpeed == -1.0 ) Aux_Error( ERROR_INFO, "CharacteristicSpeed must be provided !!\n" ); + else END_T = End_T_Default; + + PRINT_RESET_PARA( END_T, FORMAT_REAL, "" ); + } + + if ( OUTPUT_DT < 0.0 ) + { + OUTPUT_DT = END_T / 30.0; + PRINT_RESET_PARA( OUTPUT_DT, FORMAT_REAL, "" ); + } + + +// (4) make a note + if ( MPI_Rank == 0 ) + { + Aux_Message( stdout, "=============================================================================\n" ); + Aux_Message( stdout, " test problem ID = %d\n", TESTPROB_ID ); + Aux_Message( stdout, " Jet_Ambient = %d\n", Jet_Ambient ); + Aux_Message( stdout, " Jet_Fire = %d\n", Jet_Fire ); + Aux_Message( stdout, " Jet_SmoothVel = %d\n", Jet_SmoothVel ); + Aux_Message( stdout, " Jet_Precession = %d\n", Jet_Precession ); + Aux_Message( stdout, " Jet_SphericalSrc = %d\n", Jet_SphericalSrc ); + Aux_Message( stdout, " Jet_TimeDependentSrc = %d\n", Jet_TimeDependentSrc ); + Aux_Message( stdout, " Jet_Duration = %14.7e Myr \n", Jet_Duration*UNIT_T/Const_Myr ); + Aux_Message( stdout, " ParticleMass = %14.7e g\n", ParticleMass ); + Aux_Message( stdout, " Jet_SrcVel = %14.7e c\n", Jet_SrcVel ); + Aux_Message( stdout, " Jet_SrcDens = %14.7e g/cm^3\n", Jet_SrcDens*UNIT_D ); + Aux_Message( stdout, " Jet_SrcTemp = %14.7e kT/mc**2\n", Jet_SrcTemp ); +# ifdef COSMIC_RAY + Aux_Message( stdout, " Jet_Src_CR_Engy = %14.7e \n", Jet_Src_CR_Engy*UNIT_P ); + Aux_Message( stdout, " Amb_CR_Engy = %14.7e \n", Amb_CR_Engy*UNIT_P ); +# endif + Aux_Message( stdout, " Jet_NumDensSrc = %14.7e per cc\n", Jet_SrcDens*UNIT_D/ParticleMass ); + Aux_Message( stdout, " Jet_CenOffset[x] = %14.7e kpc\n", Jet_CenOffset [0]*UNIT_L/Const_kpc ); + Aux_Message( stdout, " Jet_CenOffset[y] = %14.7e kpc\n", Jet_CenOffset [1]*UNIT_L/Const_kpc ); + Aux_Message( stdout, " Jet_CenOffset[z] = %14.7e kpc\n", Jet_CenOffset [2]*UNIT_L/Const_kpc ); + Aux_Message( stdout, " Jet_AngularVelocity = %14.7e degree/kyr\n", Jet_AngularVelocity ); + Aux_Message( stdout, " Jet_PrecessionAngle = %14.7e degree\n", Jet_PrecessionAngle*180.0/M_PI ); + Aux_Message( stdout, " Jet_HalfOpeningAngle = %14.7e degree\n", Jet_HalfOpeningAngle*180.0/M_PI ); + Aux_Message( stdout, " Jet_Radius = %14.7e kpc\n", Jet_Radius*UNIT_L/Const_kpc ); + Aux_Message( stdout, " Jet_HalfHeight = %14.7e kpc\n", Jet_HalfHeight*UNIT_L/Const_kpc ); + Aux_Message( stdout, " Jet_MaxDis = %14.7e kpc\n", Jet_MaxDis*UNIT_L/Const_kpc ); + Aux_Message( stdout, " gasDisk_highResRadius = %14.7e kpc\n", gasDisk_highResRadius*UNIT_L/Const_kpc ); + Aux_Message( stdout, " gasDisk_lowRes_LEVEL = %d\n", gasDisk_lowRes_LEVEL ); + Aux_Message( stdout, " jetSrc_highResRadius = %14.7e kpc\n", jetSrc_highResRadius*UNIT_L/Const_kpc ); + Aux_Message( stdout, " jetSrc_lowRes_LEVEL = %d\n", jetSrc_lowRes_LEVEL ); + + if ( Jet_Ambient == 0 ) + { + Aux_Message( stdout, " Amb_UniformDens = %14.7e g/cm^3\n", Amb_UniformDens*UNIT_D ); + Aux_Message( stdout, " Amb_UniformTemp = %14.7e kT/mc**2\n", Amb_UniformTemp ); + Aux_Message( stdout, " Amb_UniformVel[x] = %14.7e c\n", Amb_UniformVel[0] ); + Aux_Message( stdout, " Amb_UniformVel[y] = %14.7e c\n", Amb_UniformVel[1] ); + Aux_Message( stdout, " Amb_UniformVel[z] = %14.7e c\n", Amb_UniformVel[2] ); + Aux_Message( stdout, " Jet_UniformNumDens = %14.7e per cc\n", Amb_UniformDens*UNIT_D/ParticleMass ); + } else if ( Jet_Ambient == 2 ) + { + Aux_Message( stdout, " IsothermalSlab_Center[0] = %14.7e kpc\n", IsothermalSlab_Center[0]*UNIT_L/Const_kpc ); + Aux_Message( stdout, " IsothermalSlab_Center[1] = %14.7e kpc\n", IsothermalSlab_Center[1]*UNIT_L/Const_kpc ); + Aux_Message( stdout, " IsothermalSlab_Center[2] = %14.7e kpc\n", IsothermalSlab_Center[2]*UNIT_L/Const_kpc ); + Aux_Message( stdout, " criticalTemp = %14.7e K\n", criticalTemp / ( Const_kB /( ParticleMass * Const_c * Const_c ) ) ); + } // if ( Jet_Ambient == 0 ) ... else if ... + + Aux_Message( stdout, " CharacteristicSpeed = %14.7e c\n", CharacteristicSpeed / UNIT_V ); + Aux_Message( stdout, " Jet_PrecessionAxis[x] = %14.7e\n", Jet_PrecessionAxis[0] ); + Aux_Message( stdout, " Jet_PrecessionAxis[y] = %14.7e\n", Jet_PrecessionAxis[1] ); + Aux_Message( stdout, " Jet_PrecessionAxis[z] = %14.7e\n", Jet_PrecessionAxis[2] ); + + if ( Amb_FluSphereRadius > 0.0 ) + { + Aux_Message( stdout, " Amb_FluSphereRadius = %14.7e kpc\n", Amb_FluSphereRadius*UNIT_L/Const_kpc ); + } // if ( Amb_FluSphereRadius > 0.0 ) + + if ( Jet_TimeDependentSrc ) + { + Aux_Message( stdout, " Jet_BurstStartTime = %14.7e kyr \n", Jet_BurstStartTime*UNIT_T/(1e3*Const_yr) ); + Aux_Message( stdout, " Jet_BurstEndTime = %14.7e kyr \n", Jet_BurstEndTime*UNIT_T/(1e3*Const_yr) ); + Aux_Message( stdout, " Jet_Burst4VelRatio = %14.7e c \n", Jet_Burst4VelRatio ); + Aux_Message( stdout, " Jet_BurstDensRatio = %14.7e g/cm^3\n", Jet_BurstDensRatio*UNIT_D ); + Aux_Message( stdout, " Jet_BurstTempRatio = %14.7e\n", Jet_BurstTempRatio ); + Aux_Message( stdout, " Flag_Burst4Vel = %d\n", Flag_Burst4Vel ); + Aux_Message( stdout, " Flag_BurstDens = %d\n", Flag_BurstDens ); + Aux_Message( stdout, " Flag_BurstTemp = %d\n", Flag_BurstTemp ); + } // if ( Jet_TimeDependentSrc ) + + Aux_Message( stdout, "=============================================================================\n" ); + } // if ( MPI_Rank == 0 ) + + if ( MPI_Rank == 0 ) Aux_Message( stdout, " Setting runtime parameters ... done\n" ); + +} // FUNCTION : SetParameter + + + +void ReadBinFile( char *FileName, real **buffer ) +{ + FILE *pFile; + long lSize; + size_t result; + + pFile = fopen( FileName, "rb" ); + if ( pFile == NULL ) { fputs ("File error\n", stderr ); exit(1); } + + // obtain file size + fseek( pFile, 0, SEEK_END ); + lSize = ftell( pFile ); + rewind( pFile ); + + // allocate memory to contain the whole file + *buffer = (real*) calloc( lSize, sizeof(double) ); + if ( *buffer == NULL ) { fputs( "Memory error\n", stderr ); exit(2); } + + // copy the file into the *buffer + result = fread( *buffer, 1, lSize, pFile ); + if ( result != lSize ) { fputs( "Reading error\n", stderr ); exit(3); } + + fclose (pFile); + +} // FUNCTION : ReadBinFile + + + +void randCloud( real **randXYZ, int numClouds ) +{ + *randXYZ = (real*)malloc( 3*numClouds*sizeof(real) ); + + for ( int i=0; i<3*numClouds; i+=3 ) { + (*randXYZ)[i+0] = (real)rand() / (real)RAND_MAX*amr->BoxSize[0]; + (*randXYZ)[i+1] = (real)rand() / (real)RAND_MAX*amr->BoxSize[1]; + (*randXYZ)[i+2] = (real)rand() / (real)RAND_MAX*amr->BoxSize[2]; + + if ( (*randXYZ)[i+2] < amr->BoxSize[2]*0.5+3.0 ) { + i-=3; + } + } +} // FUNCTION : randCloud + + + +bool checkInsideClouds( real *randXYZ, int numClouds, real x, real y, real z, real *cloudCenter ) +{ + real distance; + + for ( int i=0; i<3*numClouds; i+=3 ) { + distance = SQRT( SQR( x-randXYZ[i+0] ) + SQR( y-randXYZ[i+1] ) + SQR( z-randXYZ[i+2] ) ); + if ( distance < radiusCloud ) { + cloudCenter[0] = randXYZ[i+0]; + cloudCenter[1] = randXYZ[i+1]; + cloudCenter[2] = randXYZ[i+2]; + return true; + } + } + return false; +} // FUNCTION : checkInsideClouds + + + +void SetArrayDisk() +{ +// Reading table for interpolations in SetGridIC() + char TableFileName[] = "UM_IC"; + ReadBinFile( TableFileName, &buffer ); + + int headerSize = (int)buffer[0]; + + Header_disk = (real*)malloc( (size_t)headerSize * sizeof(real) ); + + memcpy( Header_disk, buffer, (size_t)headerSize*sizeof(real) ); + + ParticleMass = Header_disk[8] * Header_disk[9]; + + interfaceHeight = Header_disk[17]; + interfaceHeight *= Const_kpc/UNIT_L; + + int Nx = (int)Header_disk[22]; + int Ny = (int)Header_disk[23]; + int Nz = (int)Header_disk[24]; + + if ( 5*Nx*Ny*Nz > INT_MAX ) { printf("integer overflow!!\n"); exit(0); } + + real Lx = Header_disk[12]; + real Ly = Header_disk[13]; + real Lz = Header_disk[14]; + int numGhost = (int)Header_disk[25]; + + real dx = Lx/(real)Nx; + real dy = Lx/(real)Nx; + real dz = Lx/(real)Nx; + + int NX = Nx+2*numGhost; + int NY = Ny+2*numGhost; + int NZ = Nz+2*numGhost; + + if ( Step == 0 ) + { + Rhoo_disk = (real***)calloc_3d_array( (size_t)NX, (size_t)NY, (size_t)NZ, sizeof(real) ); + VelX_disk = (real***)calloc_3d_array( (size_t)NX, (size_t)NY, (size_t)NZ, sizeof(real) ); + VelY_disk = (real***)calloc_3d_array( (size_t)NX, (size_t)NY, (size_t)NZ, sizeof(real) ); + VelZ_disk = (real***)calloc_3d_array( (size_t)NX, (size_t)NY, (size_t)NZ, sizeof(real) ); + Pres_disk = (real***)calloc_3d_array( (size_t)NX, (size_t)NY, (size_t)NZ, sizeof(real) ); + + X_disk = (real*)calloc( (size_t)NX, sizeof(real) ); + Y_disk = (real*)calloc( (size_t)NY, sizeof(real) ); + Z_disk = (real*)calloc( (size_t)NZ, sizeof(real) ); + + if ( X_disk == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0); } + if ( Y_disk == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0); } + if ( Z_disk == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0); } + + real *Ptr; + + Ptr = buffer + headerSize; + + for (int c=0; c<5*NX*NY*NZ; c++) { + int i, j, k, cc; + + cc = c%(NX*NY*NZ); + i = (cc - cc%(NY*NZ)) / (NY*NZ); + j = ((cc - cc%NZ) / NZ) % NY; + k = cc%NZ; + + if ( 0 <= c && c < NX*NY*NZ ) Rhoo_disk[i][j][k] = Ptr[c]; + if ( NX*NY*NZ <= c && c < 2*NX*NY*NZ ) VelX_disk[i][j][k] = Ptr[c]; + if ( 2*NX*NY*NZ <= c && c < 3*NX*NY*NZ ) VelY_disk[i][j][k] = Ptr[c]; + if ( 3*NX*NY*NZ <= c && c < 4*NX*NY*NZ ) VelZ_disk[i][j][k] = Ptr[c]; + if ( 4*NX*NY*NZ <= c && c < 5*NX*NY*NZ ) Pres_disk[i][j][k] = Ptr[c]; + + } + + Ptr += 5*NX*NY*NZ; + for (int c=0; c INT_MAX) {printf("integer overflow!!\n"); exit(0);} + + real Lx = Header_hvc[12]; + real Ly = Header_hvc[13]; + real Lz = Header_hvc[14]; + int numGhost = (int)Header_hvc[25]; + + real dx = Lx/(real)Nx; + real dy = Lx/(real)Nx; + real dz = Lx/(real)Nx; + + int NX = Nx+2*numGhost; + int NY = Ny+2*numGhost; + int NZ = Nz+2*numGhost; + + if (Step == 0) + { + Rhoo_hvc = (real***)calloc_3d_array( (size_t)NX, (size_t)NY, (size_t)NZ, sizeof(real) ); + VelX_hvc = (real***)calloc_3d_array( (size_t)NX, (size_t)NY, (size_t)NZ, sizeof(real) ); + VelY_hvc = (real***)calloc_3d_array( (size_t)NX, (size_t)NY, (size_t)NZ, sizeof(real) ); + VelZ_hvc = (real***)calloc_3d_array( (size_t)NX, (size_t)NY, (size_t)NZ, sizeof(real) ); + Pres_hvc = (real***)calloc_3d_array( (size_t)NX, (size_t)NY, (size_t)NZ, sizeof(real) ); + + X_hvc = (real*)calloc( (size_t)NX,sizeof(real) ); + Y_hvc = (real*)calloc( (size_t)NY,sizeof(real) ); + Z_hvc = (real*)calloc( (size_t)NZ,sizeof(real) ); + + if ( X_hvc == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0); } + if ( Y_hvc == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0); } + if ( Z_hvc == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0); } + + real *Ptr; + + Ptr = buffer + headerSize; + + for ( int c=0; c<5*NX*NY*NZ; c++ ) { + int i, j, k, cc; + + cc = c%(NX*NY*NZ); + i = (cc - cc%(NY*NZ)) / (NY*NZ); + j = ((cc - cc%NZ) / NZ) % NY; + k = cc%NZ; + + if ( 0 <= c && c < NX*NY*NZ ) Rhoo_hvc[i][j][k] = Ptr[c]; + if ( NX*NY*NZ <= c && c < 2*NX*NY*NZ ) VelX_hvc[i][j][k] = Ptr[c]; + if ( 2*NX*NY*NZ <= c && c < 3*NX*NY*NZ ) VelY_hvc[i][j][k] = Ptr[c]; + if ( 3*NX*NY*NZ <= c && c < 4*NX*NY*NZ ) VelZ_hvc[i][j][k] = Ptr[c]; + if ( 4*NX*NY*NZ <= c && c < 5*NX*NY*NZ ) Pres_hvc[i][j][k] = Ptr[c]; + + } + + Ptr += 5*NX*NY*NZ; + for (int c=0; c NX-2){ printf("x=%e is out of range! XYZ[0][0]=%e, XYZ[0][%d]=%e\n", x, XYZ[0][0], NX-1, XYZ[0][NX-1]); exit(0); } + if (Jdx<0 || Jdx > NY-2){ printf("y=%e is out of range! XYZ[1][1]=%e, XYZ[1][%d]=%e\n", y, XYZ[1][0], NY-1, XYZ[1][NY-1]); exit(0); } + if (Kdx<0 || Kdx > NZ-2){ printf("z=%e is out of range! XYZ[2][2]=%e, XYZ[2][%d]=%e\n", z, XYZ[2][0], NZ-1, XYZ[2][NZ-1]); exit(0); } + + + real Vertex000[5] = { Pri_input[0][Idx ][Jdx ][Kdx ], Pri_input[1][Idx ][Jdx ][Kdx ], Pri_input[2][Idx ][Jdx ][Kdx ], Pri_input[3][Idx ][Jdx ][Kdx ], Pri_input[4][Idx ][Jdx ][Kdx ] }; + real Vertex001[5] = { Pri_input[0][Idx ][Jdx ][Kdx+1], Pri_input[1][Idx ][Jdx ][Kdx+1], Pri_input[2][Idx ][Jdx ][Kdx+1], Pri_input[3][Idx ][Jdx ][Kdx+1], Pri_input[4][Idx ][Jdx ][Kdx+1] }; + real Vertex010[5] = { Pri_input[0][Idx ][Jdx+1][Kdx ], Pri_input[1][Idx ][Jdx+1][Kdx ], Pri_input[2][Idx ][Jdx+1][Kdx ], Pri_input[3][Idx ][Jdx+1][Kdx ], Pri_input[4][Idx ][Jdx+1][Kdx ] }; + real Vertex100[5] = { Pri_input[0][Idx+1][Jdx ][Kdx ], Pri_input[1][Idx+1][Jdx ][Kdx ], Pri_input[2][Idx+1][Jdx ][Kdx ], Pri_input[3][Idx+1][Jdx ][Kdx ], Pri_input[4][Idx+1][Jdx ][Kdx ] }; + real Vertex011[5] = { Pri_input[0][Idx ][Jdx+1][Kdx+1], Pri_input[1][Idx ][Jdx+1][Kdx+1], Pri_input[2][Idx ][Jdx+1][Kdx+1], Pri_input[3][Idx ][Jdx+1][Kdx+1], Pri_input[4][Idx ][Jdx+1][Kdx+1] }; + real Vertex101[5] = { Pri_input[0][Idx+1][Jdx ][Kdx+1], Pri_input[1][Idx+1][Jdx ][Kdx+1], Pri_input[2][Idx+1][Jdx ][Kdx+1], Pri_input[3][Idx+1][Jdx ][Kdx+1], Pri_input[4][Idx+1][Jdx ][Kdx+1] }; + real Vertex110[5] = { Pri_input[0][Idx+1][Jdx+1][Kdx ], Pri_input[1][Idx+1][Jdx+1][Kdx ], Pri_input[2][Idx+1][Jdx+1][Kdx ], Pri_input[3][Idx+1][Jdx+1][Kdx ], Pri_input[4][Idx+1][Jdx+1][Kdx ] }; + real Vertex111[5] = { Pri_input[0][Idx+1][Jdx+1][Kdx+1], Pri_input[1][Idx+1][Jdx+1][Kdx+1], Pri_input[2][Idx+1][Jdx+1][Kdx+1], Pri_input[3][Idx+1][Jdx+1][Kdx+1], Pri_input[4][Idx+1][Jdx+1][Kdx+1] }; + + bool Unphy = false; + + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex000, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex001, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex010, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex100, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex011, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex110, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex101, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex111, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + + if ( Unphy ) { + printf("Idx=%d, Jdx=%d, Kdx=%d\n", Idx, Jdx, Kdx); + printf("x=%e, y=%e, z=%e\n", x, y, z); + exit(0); + } + + real xyz000[3] = {XYZ[0][Idx], XYZ[1][Jdx], XYZ[2][Kdx]}; + + for ( int v=0; v<5; v++ ) { + real FieldAtVertices[8] = { Vertex000[v], Vertex001[v], Vertex010[v], Vertex100[v], Vertex011[v], Vertex101[v], Vertex110[v], Vertex111[v] }; + + Pri_output[v] = TrilinearInterpolation( FieldAtVertices, xyz000, dxyz, xyz ); + } + + //free_3d_array((void***)Rhoo_disk); + //free_3d_array((void***)VelX_disk); + //free_3d_array((void***)VelY_disk); + //free_3d_array((void***)VelZ_disk); + //free_3d_array((void***)Pres_disk); + //free(X_disk); + //free(Y_disk); + //free(Z_disk); + //free(buffer); + +} // FUNCTION : Interpolation_UM_IC + + + +#ifdef GRAVITY +real IsothermalSlab_Pot( real z ) +{ + real Pot, Log; + + // 1. isothermal slab + Pot = 2.0 * M_PI * NEWTON_G * IsothermalSlab_PeakDens; + Pot /= SQR(IsothermalSlab_VelocityDispersion); + Pot = log( cosh( z*sqrt(Pot) ) ); + Pot *= 2.0 * SQR(IsothermalSlab_VelocityDispersion); + + // 2. log potential + Log = SQR(v_halo) * log( z*z + SQR(distance_h) ); + Log -= SQR(v_halo) * log( SQR(distance_h) ); + + return Pot + Log; +} // FUNCTION : IsothermalSlab_Pot +#endif + + + +//------------------------------------------------------------------------------------------------------- +// Function : SetGridIC +// Description : Set the problem-specific initial condition on grids +// +// Note : 1. This function may also be used to estimate the numerical errors when OPT__OUTPUT_USER is enabled +// --> In this case, it should provide the analytical solution at the given "Time" +// 2. This function will be invoked by multiple OpenMP threads when OPENMP is enabled +// --> Please ensure that everything here is thread-safe +// +// Parameter : fluid : Fluid field to be initialized +// x/y/z : Physical coordinates +// Time : Physical time +// lv : Target refinement level +// AuxArray : Auxiliary array +// +// Return : fluid +//------------------------------------------------------------------------------------------------------- +void SetGridIC( real fluid[], const double x, const double y, const double z, const double Time, + const int lv, double AuxArray[] ) +{ +// variables for jet + real Pri[NCOMP_FLUID]; + real xc = x - IsothermalSlab_Center[0]; + real yc = y - IsothermalSlab_Center[1]; + real zc = z - IsothermalSlab_Center[2]; + + real ***Pri_disk_input[5] = { Rhoo_disk, VelX_disk, VelY_disk, VelZ_disk, Pres_disk }; + real *** Pri_hvc_input[5] = { Rhoo_hvc, VelX_hvc, VelY_hvc, VelZ_hvc, Pres_hvc }; + + if ( Jet_Ambient == 0 ) // uniform ambient + { + Pri[0] = (real)Amb_UniformDens; + Pri[1] = (real)Amb_UniformVel[0]; + Pri[2] = (real)Amb_UniformVel[1]; + Pri[3] = (real)Amb_UniformVel[2]; + Pri[4] = (real)Amb_UniformTemp * Amb_UniformDens; + + Hydro_Pri2Con( Pri, fluid, false, PassiveNorm_NVar, PassiveNorm_VarIdx, EoS_DensPres2Eint_CPUPtr, + EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, + h_EoS_Table, NULL ); + + + if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, + EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) exit(0); + +# if (NCOMP_PASSIVE_USER > 0) + fluid[Passive_0000] = fluid[DENS]; + fluid[Passive_0001] = 0.0; + fluid[Passive_0002] = 0.0; +# endif +# ifdef COSMIC_RAY + fluid[CRAY] = (real)0.333333333 * Amb_CR_Engy; +# endif + } + else if ( Jet_Ambient == 2 ) // cold disk in stratified ambient + { +# ifdef GRAVITY + if ( fabs(zc) < interfaceHeight ) + { + real *XYZ[3] = { X_disk, Y_disk, Z_disk }; + + Interpolation_UM_IC( xc, yc, zc, Pri_disk_input, XYZ, Pri, true ); + + if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, + EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) exit(0); + + if ( Pri[4]/Pri[0] > criticalTemp ) Pri[0] = Pri[4] / ambientTemperature; + + + Hydro_Pri2Con( Pri, fluid, false, PassiveNorm_NVar, PassiveNorm_VarIdx, EoS_DensPres2Eint_CPUPtr, + EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, + h_EoS_Table, NULL ); + +# if (NCOMP_PASSIVE_USER > 0) + fluid[Passive_0000] = fluid[DENS]; + fluid[Passive_0001] = 0.0; + fluid[Passive_0002] = 0.0; +# endif + +# ifdef COSMIC_RAY + fluid[CRAY] = (real)0.333333333 * Amb_CR_Engy; +# endif + } else // if ( fabs(zc) < interfaceHeight ) + { + real Dens_gDisk_ambient, PotAtZ0, ambientDens; + + PotAtZ0 = IsothermalSlab_Pot(interfaceHeight); + + Dens_gDisk_ambient = ambientTemperature / gasDiskTemperature; + Dens_gDisk_ambient *= exp( PotAtZ0 * (ambientTemperature-gasDiskTemperature) / (ambientTemperature*gasDiskTemperature) ); + + if ( Dens_gDisk_ambient > HUGE_NUMBER || Dens_gDisk_ambient < -HUGE_NUMBER ) { + printf( "Dens_gDisk_ambient=%e! %s: %d\n", Dens_gDisk_ambient, __FUNCTION__, __LINE__ ); + exit(0); + } + + real ambientPeakDens = gasDiskPeakDens / Dens_gDisk_ambient; + + if ( fabs(zc) > IsothermalSlab_Truncation ) + ambientDens = -IsothermalSlab_Pot(IsothermalSlab_Truncation) / ambientTemperature; + else + ambientDens = -IsothermalSlab_Pot(zc) / ambientTemperature; + + ambientDens = exp(ambientDens); + ambientDens *= ambientPeakDens; + + Pri[0] = ambientDens; + Pri[1] = 0.0; + Pri[2] = 0.0; + Pri[3] = 0.0; + Pri[4] = ambientDens * ambientTemperature; + + real cloudCenter[3]; + + if ( checkInsideClouds( randXYZ, numClouds, x, y, z, cloudCenter ) ) + { + real Pri_hvc_output[5]; + + real *XYZ[3] = { X_hvc, Y_hvc, Z_hvc }; + + Interpolation_UM_IC( x-cloudCenter[0], y-cloudCenter[1], z-cloudCenter[2], + Pri_hvc_input, XYZ, Pri_hvc_output, false ); + + if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri_hvc_output, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, + EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) exit(0); + + Pri[0] = Pri_hvc_output[0]*0.05*Const_mp/UNIT_D; + Pri[1] = 0.0; + Pri[2] = 0.0; + Pri[3] = 0.0; + Pri[4] = Pri[4]; + } + + Hydro_Pri2Con( Pri, fluid, false, PassiveNorm_NVar, PassiveNorm_VarIdx, EoS_DensPres2Eint_CPUPtr, + EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, + h_EoS_Table, NULL ); + + if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, + EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) exit(0); + +# if (NCOMP_PASSIVE_USER > 0) + fluid[Passive_0000] = 0.0; + fluid[Passive_0001] = 0.0; + fluid[Passive_0002] = 0.0; +# endif + +# ifdef COSMIC_RAY + fluid[CRAY] = (real)0.333333333*Amb_CR_Engy; +# endif + } // if ( fabs(zc) < interfaceHeight ) ... else ... +# endif + } else if ( Jet_Ambient == 3 ) // cold disk in uniform ambient + { +# ifdef GRAVITY + if ( fabs(zc) < interfaceHeight ) + { + real *XYZ[3] = { X_disk, Y_disk, Z_disk }; + + Interpolation_UM_IC( xc, yc, zc, Pri_disk_input, XYZ, Pri, true ); + + if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, + EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) exit(0); + + Hydro_Pri2Con( Pri, fluid, false, PassiveNorm_NVar, PassiveNorm_VarIdx, EoS_DensPres2Eint_CPUPtr, + EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, + h_EoS_Table, NULL ); + +# if (NCOMP_PASSIVE_USER > 0) + fluid[Passive_0000] = 0.0; + fluid[Passive_0001] = 0.0; + fluid[Passive_0002] = 0.0; +# endif + +# ifdef COSMIC_RAY + fluid[CRAY] = (real)0.333333333*Amb_CR_Engy; +# endif + } else // if ( fabs(zc) < interfaceHeight ) + { + real Dens_gDisk_ambient, PotAtZ0, ambientDens; + + PotAtZ0 = IsothermalSlab_Pot(interfaceHeight); + + Dens_gDisk_ambient = ambientTemperature / gasDiskTemperature; + Dens_gDisk_ambient *= exp( PotAtZ0*(ambientTemperature-gasDiskTemperature)/(ambientTemperature*gasDiskTemperature) ); + + if ( Dens_gDisk_ambient > HUGE_NUMBER || Dens_gDisk_ambient < -HUGE_NUMBER ) + { + printf( "Dens_gDisk_ambient=%e! %s: %d\n", Dens_gDisk_ambient, __FUNCTION__, __LINE__ ); + exit(0); + } + + real ambientPeakDens = gasDiskPeakDens / Dens_gDisk_ambient; + + ambientDens = -IsothermalSlab_Pot(interfaceHeight) / ambientTemperature; + ambientDens = exp(ambientDens); + ambientDens *= ambientPeakDens; + + Pri[0] = ambientDens; + Pri[1] = 0.0; + Pri[2] = 0.0; + Pri[3] = 0.0; + Pri[4] = ambientDens * ambientTemperature; + + if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, + EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) exit(0); + + Hydro_Pri2Con( Pri, fluid, false, PassiveNorm_NVar, PassiveNorm_VarIdx, EoS_DensPres2Eint_CPUPtr, + EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, + h_EoS_Table, NULL ); + + +# if (NCOMP_PASSIVE_USER > 0) + fluid[Passive_0000] = 0.0; + fluid[Passive_0001] = 0.0; + fluid[Passive_0002] = 0.0; +# endif + +# ifdef COSMIC_RAY + fluid[CRAY] = (real)0.333333333*Amb_CR_Engy; +# endif + + } // if ( fabs(zc) < interfaceHeight ) ... else ... + } // else if ( Jet_Ambient == 3 ) + else if ( Jet_Ambient == 4 ) + { + real ambientDens; +// +// PotAtZ0 = IsothermalSlab_Pot(interfaceHeight); +// +// Dens_gDisk_ambient = ambientTemperature / gasDiskTemperature; +// Dens_gDisk_ambient *= exp( PotAtZ0*(ambientTemperature-gasDiskTemperature)/(ambientTemperature*gasDiskTemperature) ); +// +// if (Dens_gDisk_ambient > HUGE_NUMBER || Dens_gDisk_ambient < -HUGE_NUMBER){ +// printf("Dens_gDisk_ambient=%e! %s: %d\n", Dens_gDisk_ambient, __FUNCTION__, __LINE__); +// exit(0); +// } + + real ambientPeakDens = (real)2.842783e-27/UNIT_D; + + + if ( fabs(zc) > IsothermalSlab_Truncation ) + ambientDens = -IsothermalSlab_Pot(IsothermalSlab_Truncation)/ambientTemperature; + else + ambientDens = -IsothermalSlab_Pot(zc)/ambientTemperature; + + //printf("IsothermalSlab_Pot(zc)=%e\n", IsothermalSlab_Pot(zc)); + //printf("ambientTemperature=%e\n", ambientTemperature); + + ambientDens = exp(ambientDens); + ambientDens *= ambientPeakDens; + + Pri[0] = ambientDens; + Pri[1] = 0.0; + Pri[2] = 0.0; + Pri[3] = 0.0; + Pri[4] = ambientDens*ambientTemperature; + + Hydro_Pri2Con( Pri, fluid, false, PassiveNorm_NVar, PassiveNorm_VarIdx, EoS_DensPres2Eint_CPUPtr, + EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, + h_EoS_Table, NULL ); + + + if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, + EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) exit(0); + +# if (NCOMP_PASSIVE_USER > 0) + fluid[Passive_0000] = 0.0; + fluid[Passive_0001] = 0.0; + fluid[Passive_0002] = 0.0; +# endif + +# ifdef COSMIC_RAY + fluid[CRAY] = (real)0.333333333*Amb_CR_Engy; +# endif + +# endif // #ifdef GRAVITY + } else + { + // TODO : Add an error for wrong Jet_Ambient + } // if ( Jet_Ambient == 0 ) ... else if +} // FUNCTION : SetGridIC + + + +//------------------------------------------------------------------------------------------------------- +// Function : Flu_ResetByUser_Jets +// Description : Function to reset the fluid field +// +// Note : 1. Invoked by "Flu_ResetByUser_API()" and "Model_Init_ByFunction_AssignData()" using the +// function pointer "Flu_ResetByUser_Func_Ptr" +// 2. This function will be invoked when constructing the initial condition +// (by calling "Model_Init_ByFunction_AssignData()") and after each update +// (by calling "Flu_ResetByUser_API()") +// 3. Input "fluid" array stores the original values +// 4. Even when DUAL_ENERGY is adopted, one does NOT need to set the dual-energy variable here +// --> It will be set automatically in "Flu_ResetByUser_API()" and "Model_Init_ByFunction_AssignData()" +// 5. Enabled by the runtime option "OPT__RESET_FLUID" +// +// Parameter : fluid : Fluid array storing both the input (origial) and reset values +// --> Including both active and passive variables +// x/y/z : Target physical coordinates +// Time : Target physical time +// lv : Target refinement level +// AuxArray : Auxiliary array +// +// Return : true : This cell has been reset +// false : This cell has not been reset +// +// ======================================================================================= +/* G A C */ +/* ____________ */ +/* \ | / */ +/* \ E| / z */ +/* \ /|\ / ^ */ +/* \/_|_\/ | */ +/* /\O| /\B | */ +/* / \|/ \ */ +/* / D| \ */ +/* /_____|_____\ */ +/* F */ +// ======================================================================================= +// +int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const double y, const double z, + const double Time, const double dt, const int lv, double AuxArray[] ) +{ + if ( Jet_Fire == 0 ) return false; + + if ( Jet_Duration < Time ) return false; + + if ( !Jet_SphericalSrc ) { + double xp[3], rp[3]; + double Prim[NCOMP_FLUID], Cons[NCOMP_FLUID], Vel[3]; + real PriReal[NCOMP_FLUID]; + double PrecessionAxis_Spherical[3], Omega_t; + bool InsideUpperCone, InsideLowerCone; + double Jet_SrcVelSmooth; + + Omega_t = Jet_AngularVelocity * Time * M_PI / 180.0; + +// shift the coordinate origin to the source center (the point O) + xp[0] = x - Jet_Center[0]; + xp[1] = y - Jet_Center[1]; + xp[2] = z - Jet_Center[2]; + + if ( Jet_PrecessionAxis[0] != 0.0 || Jet_PrecessionAxis[1] != 0.0 || Jet_PrecessionAxis[2] == 0.0 ) { +// get theta, phi for the first rotation + Mis_Cartesian2Spherical( Jet_PrecessionAxis, PrecessionAxis_Spherical ); +// rotate coordinate to align z-axis with fixed precession axis + CartesianRotate( xp, PrecessionAxis_Spherical[1], PrecessionAxis_Spherical[2], false ); + } + +// rotate coordinate to align z-axis with rotating symmetric axis + CartesianRotate( xp, Jet_PrecessionAngle, Omega_t, false ); + +// determine whether or not the point is inside of source + InsideUpperCone = SQR(xp[0]) + SQR(xp[1]) <= SQR( +tan(Jet_HalfOpeningAngle)*xp[2] + Jet_Radius ); + InsideUpperCone &= 0.0 <= xp[2] && xp[2] <= Jet_HalfHeight; + + InsideLowerCone = SQR(xp[0]) + SQR(xp[1]) <= SQR( -tan(Jet_HalfOpeningAngle)*xp[2] + Jet_Radius ); + InsideLowerCone &= -Jet_HalfHeight <= xp[2] && xp[2] <= 0.0; + + if ( Jet_HalfOpeningAngle != 0.0 ) { + InsideUpperCone &= SQR(xp[0]) + SQR(xp[1]) + SQR(xp[2] + Jet_Radius/tan(Jet_HalfOpeningAngle)) + <= SQR(Jet_HalfHeight+Jet_Radius/tan(Jet_HalfOpeningAngle)); + + InsideUpperCone &= 0.0 <= xp[2]; + + InsideLowerCone &= SQR(xp[0]) + SQR(xp[1]) + SQR(xp[2] - Jet_Radius/tan(Jet_HalfOpeningAngle)) + <= SQR(Jet_HalfHeight+Jet_Radius/tan(Jet_HalfOpeningAngle)); + + InsideLowerCone &= xp[2] <= 0.0; + } else { + InsideUpperCone &= 0.0 <= xp[2] && xp[2] <= Jet_HalfHeight; + InsideLowerCone &= -Jet_HalfHeight <= xp[2] && xp[2] <= 0.0; + } // if ( Jet_HalfOpeningAngle != 0.0 ) ... else ... + +// set fluid variable inside source + if ( ( InsideUpperCone && ( Jet_Fire == 1 || Jet_Fire == 3 ) ) || + ( InsideLowerCone && ( Jet_Fire == 2 || Jet_Fire == 3 ) ) ) + { + if ( Jet_HalfOpeningAngle == 0.0 ) + { + Vel[0] = 0.0; + Vel[1] = 0.0; + if ( InsideUpperCone == true ) Vel[2] = +Jet_SrcVel; + else Vel[2] = -Jet_SrcVel; + + CartesianRotate( Vel, Jet_PrecessionAngle, Omega_t, true ); + + if ( Jet_PrecessionAxis[0] != 0.0 || Jet_PrecessionAxis[1] != 0.0 || Jet_PrecessionAxis[2] == 0.0 ) + CartesianRotate( Vel, PrecessionAxis_Spherical[1], PrecessionAxis_Spherical[2], true ); + + Prim[0] = Jet_SrcDens; + Prim[1] = Vel[0]; + Prim[2] = Vel[1]; + Prim[3] = Vel[2]; + Prim[4] = Jet_SrcTemp*Jet_SrcDens; + } else // if ( Jet_HalfOpeningAngle == 0.0 ) + { +// shift origin to the point D/E + if ( InsideUpperCone == true ) xp[2] += Jet_Radius/tan(Jet_HalfOpeningAngle); + else xp[2] -= Jet_Radius/tan(Jet_HalfOpeningAngle); + + CartesianRotate( xp, Jet_PrecessionAngle, Omega_t, true ); + + Mis_Cartesian2Spherical( xp, rp ); + + if ( InsideLowerCone == true ) rp[1] -= M_PI; + +// smooth velocity on cross section + if ( Jet_SmoothVel ) Jet_SrcVelSmooth = Jet_SrcVel*SQR(cos( 0.5 * M_PI * rp[1] / Jet_HalfOpeningAngle )); + else Jet_SrcVelSmooth = Jet_SrcVel; + + if ( Jet_PrecessionAxis[0] != 0.0 || Jet_PrecessionAxis[1] != 0.0 || Jet_PrecessionAxis[2] == 0.0 ) + CartesianRotate( xp, PrecessionAxis_Spherical[1], PrecessionAxis_Spherical[2], true ); + + Mis_Cartesian2Spherical( xp, rp ); + + Prim[0] = Jet_SrcDens; + Prim[1] = Jet_SrcVelSmooth*sin(rp[1])*cos(rp[2]); + Prim[2] = Jet_SrcVelSmooth*sin(rp[1])*sin(rp[2]); + Prim[3] = Jet_SrcVelSmooth*cos(rp[1]); + Prim[4] = Jet_SrcTemp*Jet_SrcDens; + } // if ( Jet_HalfOpeningAngle == 0.0 ) ... else ... + + PriReal[0] = (real)Prim[0]; + PriReal[1] = (real)Prim[1]; + PriReal[2] = (real)Prim[2]; + PriReal[3] = (real)Prim[3]; + PriReal[4] = (real)Prim[4]; + + Hydro_Pri2Con( PriReal, fluid, NULL_BOOL, NULL_INT, NULL, EoS_DensPres2Eint_CPUPtr, + EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, + EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, NULL ); + +# if (NCOMP_PASSIVE_USER > 0) + fluid[Passive_0000] = 0.0; + fluid[Passive_0001] = fluid[DENS]; + fluid[Passive_0002] = (real)0.333333333*Jet_Src_CR_Engy; +# endif + +# ifdef COSMIC_RAY + fluid[CRAY] = (real)0.333333333*Jet_Src_CR_Engy; +# endif + + return true; + } // if ( ( InsideUpperCone && ( Jet_Fire == 1 || Jet_Fire == 3 ) ) || +// ( InsideLowerCone && ( Jet_Fire == 2 || Jet_Fire == 3 ) ) ) + } else // if ( !Jet_SphericalSrc ) + { + double xp[3], rp[3]; + double Prim[NCOMP_FLUID], Cons[NCOMP_FLUID], Vel[3]; + real PriReal[NCOMP_FLUID]; + +// shift the coordinate origin to the source center (the point O) + xp[0] = x - Jet_Center[0]; + xp[1] = y - Jet_Center[1]; + xp[2] = z - Jet_Center[2]; + + //Mis_Cartesian2Spherical(xp, rp); + + double R = SQRT( SQR(xp[0]) + SQR(xp[1]) + SQR(xp[2]) ); + +// For quick test, we temporarily use Jet_HalfHeight to represent the radius of spherical source + if ( R < Jet_HalfHeight ) + { + Prim[0] = Jet_SrcDens; + Prim[1] = Jet_SrcVel*xp[0]/R; + Prim[2] = Jet_SrcVel*xp[1]/R; + Prim[3] = Jet_SrcVel*xp[2]/R; + Prim[4] = Jet_SrcTemp*Jet_SrcDens; + + PriReal[0] = (real)Prim[0]; + PriReal[1] = (real)Prim[1]; + PriReal[2] = (real)Prim[2]; + PriReal[3] = (real)Prim[3]; + PriReal[4] = (real)Prim[4]; + + Hydro_Pri2Con( PriReal, fluid, NULL_BOOL, NULL_INT, NULL, EoS_DensPres2Eint_CPUPtr, + EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, + EoS_AuxArray_Int, h_EoS_Table, NULL ); + +# if (NCOMP_PASSIVE_USER > 0) + fluid[Passive_0000] = 0.0; + fluid[Passive_0001] = fluid[DENS]; + fluid[Passive_0002] = (real)0.333333333*Jet_Src_CR_Engy; +# endif + +# ifdef COSMIC_RAY + fluid[CRAY] = (real)0.333333333*Jet_Src_CR_Engy; +# endif + + return true; + } // if ( R < Jet_HalfHeight ) + } // if ( !Jet_SphericalSrc ) ... else ... + + return false; + +} // FUNCTION : Flu_ResetByUser_Jets + + + +// (true/false): if the target cell (is/is not) within the region to be refined +static bool Flag_Region( const int i, const int j, const int k, const int lv, const int PID ) +{ + if ( Step > 0 ) + { + const double dh = amr->dh[lv]; // grid size + const double Pos[3] = { amr->patch[0][lv][PID]->EdgeL[0] + (i+0.5)*dh, // x,y,z position + amr->patch[0][lv][PID]->EdgeL[1] + (j+0.5)*dh, + amr->patch[0][lv][PID]->EdgeL[2] + (k+0.5)*dh }; + const double Center[3] = { 0.5*amr->BoxSize[0], + 0.5*amr->BoxSize[1], + 0.5*amr->BoxSize[2] }; + const double dr[3] = { Pos[0]-Center[0]-Jet_CenOffset[0], + Pos[1]-Center[1]-Jet_CenOffset[1], + Pos[2]-Center[2]-Jet_CenOffset[2] }; + const double R = sqrt( SQR(dr[0]) + SQR(dr[1]) ); + //const double r = sqrt( SQR(dr[0]) + SQR(dr[1]) + SQR(dr[2]) ); + //const double ShellThickness = 16*amr->dh[3]; + + bool Flag = false; + Flag = R > gasDisk_highResRadius && lv > gasDisk_lowRes_LEVEL && fabs(dr[2]) < 2.0*interfaceHeight; + + if ( Flag ) return false; + else return true; + } else // if ( Step > 0 ) + { + return true; + } // if ( Step > 0 ) ... else ... +} // FUNCTION : Flag_Region + + + +bool Flag_User( const int i, const int j, const int k, const int lv, const int PID, const double *Threshold ) +{ + const double dh = amr->dh[lv]; // grid size + const double Pos[3] = { amr->patch[0][lv][PID]->EdgeL[0] + (i+0.5)*dh, // x,y,z position + amr->patch[0][lv][PID]->EdgeL[1] + (j+0.5)*dh, + amr->patch[0][lv][PID]->EdgeL[2] + (k+0.5)*dh }; + + const double Center[3] = { Jet_Center[0], Jet_Center[1], Jet_Center[2] }; + + const double dR[3] = { Pos[0]-Center[0], Pos[1]-Center[1], Pos[2]-Center[2] }; + const double R = sqrt( SQR(dR[0]) + SQR(dR[1]) + SQR(dR[2]) ); + + bool Flag, Src; + + if ( Jet_Ambient != 4 ) + { + bool Disk; + Disk = fabs(dR[2]) <= dh*1.8; + + if ( lv >= jetSrc_lowRes_LEVEL ) Disk = false; + + Src = R <= dh*1.8; + Flag = Src || Disk; + } else // if ( Jet_Ambient != 4 ) + { + Src = R <= dh*1.8; + Flag = Src; + } // if ( Jet_Ambient != 4 ) ... else ... + + return Flag; +} // FUNCTION : Flag_User + + + +void CartesianRotate( double x[], double theta, double phi, bool inverse ) +{ + double xp[3]; + + if ( inverse ) + { + xp[0] = - sin(phi)*x[0] - cos(theta)*cos(phi)*x[1] + sin(theta)*cos(phi)*x[2]; + xp[1] = + cos(phi)*x[0] - cos(theta)*sin(phi)*x[1] + sin(theta)*sin(phi)*x[2]; + xp[2] = + sin(theta)* x[1] + cos(theta)* x[2]; + } else + { + xp[0] = - sin(phi)*x[0] + cos(phi)*x[1]; + xp[1] = - cos(theta)*cos(phi)*x[0] - cos(theta)*sin(phi)*x[1] + sin(theta)* x[2]; + xp[2] = + sin(theta)*cos(phi)*x[0] + sin(theta)*sin(phi)*x[1] + cos(theta)* x[2]; + } + + for (int i=0;i<3;i++) x[i] = xp[i]; +} // FUNCTION : CartesianRotate + + + +//------------------------------------------------------------------------------------------------------- +// Function : Mis_GetTimeStep_User_Template +// Description : Template of user-defined criteria to estimate the evolution time-step +// +// Note : 1. This function should be applied to both physical and comoving coordinates and always +// return the evolution time-step (dt) actually used in various solvers +// --> Physical coordinates : dt = physical time interval +// Comoving coordinates : dt = delta(scale_factor) / ( Hubble_parameter*scale_factor^3 ) +// --> We convert dt back to the physical time interval, which equals "delta(scale_factor)" +// in the comoving coordinates, in Mis_GetTimeStep() +// 2. Invoked by Mis_GetTimeStep() using the function pointer "Mis_GetTimeStep_User_Ptr", +// which must be set by a test problem initializer +// 3. Enabled by the runtime option "OPT__DT_USER" +// +// Parameter : lv : Target refinement level +// dTime_dt : dTime/dt (== 1.0 if COMOVING is off) +// +// Return : dt +//------------------------------------------------------------------------------------------------------- +double Mis_GetTimeStep_User( const int lv, const double dTime_dt ) +{ + double Jet_SrcGamma = sqrt(1.0 + SQR(Jet_SrcVel)); + double Jet_Src3Vel = Jet_SrcVel / Jet_SrcGamma; + + double dh = amr->dh[MAX_LEVEL]; + + double Cs = 0.182574; // 1.0/sqrt(3); + double dt_user = DT__FLUID * dh / (Jet_Src3Vel+3.0*Cs); + + return dt_user; +} // FUNCTION : Mis_GetTimeStep_User_Template + + + +void AddNewField_Jet() +{ +#if ( NCOMP_PASSIVE_USER > 0) + if ( Passive_0000 == 5 ) Passive_0000 = AddField( "Passive_0000", NORMALIZE_NO ); + if ( Passive_0001 == 6 ) Passive_0001 = AddField( "Passive_0001", NORMALIZE_NO ); + if ( Passive_0002 == 7 ) Passive_0002 = AddField( "Passive_0002", NORMALIZE_NO ); +#endif +} // FUNCTION : AddNewField_Jet + + + +//------------------------------------------------------------------------------------------------------- +// Function : Init_TestProb_Hydro_Jets +// Description : Test problem initializer +// +// Note : None +// +// Parameter : None +// +// Return : None +//------------------------------------------------------------------------------------------------------- +void Init_TestProb_Hydro_Jet() +{ + + if ( MPI_Rank == 0 ) Aux_Message( stdout, "%s ...\n", __FUNCTION__ ); + + +// validate the compilation flags and runtime parameters + Validate(); + + +// set the problem-specific runtime parameters + SetParameter(); + + +// get enclosed mass + Init_Function_User_Ptr = SetGridIC; + Flag_User_Ptr = Flag_User; + Flag_Region_Ptr = Flag_Region; + + //if (Jet_Fire > 0) + //{ + // OPT__DT_USER = 1; + // Mis_GetTimeStep_User_Ptr = Mis_GetTimeStep_User; + //} + //else + //{ + // OPT__DT_USER = 0; + // Mis_GetTimeStep_User_Ptr = NULL; + //} + + BC_User_Ptr = NULL; + Flu_ResetByUser_Func_Ptr = Flu_ResetByUser_Jets; + Output_User_Ptr = NULL; + Aux_Record_User_Ptr = NULL; + End_User_Ptr = NULL; +# ifdef GRAVITY + Init_ExtPot_Ptr = Init_ExtPot_IsothermalSlab; +# endif + +# if ( NCOMP_PASSIVE_USER > 0 ) + Init_Field_User_Ptr = AddNewField_Jet; +# endif + + + if ( MPI_Rank == 0 ) Aux_Message( stdout, "%s ... done\n", __FUNCTION__ ); + +} // FUNCTION : Init_TestProb_Hydro_Jets + +#endif // #if ( MODEL == HYDRO ) diff --git a/src/TestProblem/Hydro/Jet/Interpolation_UM_IC.cpp b/src/TestProblem/Hydro/Jet/Interpolation_UM_IC.cpp new file mode 100644 index 0000000000..a30b53dc3e --- /dev/null +++ b/src/TestProblem/Hydro/Jet/Interpolation_UM_IC.cpp @@ -0,0 +1,104 @@ +#include +#include +#include +#include"Typedef.h" + +/*----------------------------------------------------------------------------*/ +/*! \fn void*** calloc_3d_array(size_t nt, size_t nr, size_t nc, size_t size) + * * * \brief Construct 3D array = array[nt][nr][nc] */ +void ***calloc_3d_array (size_t nt, size_t nr, size_t nc, size_t size) +{ + void ***array; + size_t i, j; + + if ((array = (void ***) calloc (nt, sizeof (void **))) == NULL) + { + printf ("[calloc_3d] failed to allocate memory for %d 1st-pointers\n", (int) nt); + return NULL; + } + + if ((array[0] = (void **) calloc (nt * nr, sizeof (void *))) == NULL) + { + printf ("[calloc_3d] failed to allocate memory for %d 2nd-pointers\n", (int) (nt * nr)); + free ((void *) array); + return NULL; + } + + for (i = 1; i < nt; i++) + { + array[i] = (void **) ((unsigned char *) array[0] + i * nr * sizeof (void *)); + } + + if ((array[0][0] = (void *) calloc (nt * nr * nc, size)) == NULL) + { + printf ("[calloc_3d] failed to alloc. memory (%d X %d X %d of size %d)\n", + (int) nt, (int) nr, (int) nc, (int) size); + free ((void *) array[0]); + free ((void *) array); + return NULL; + } + for (j = 1; j < nr; j++) + { + array[0][j] = (void **) ((unsigned char *) array[0][j - 1] + nc * size); + } +for (i = 1; i < nt; i++) + { + array[i][0] = (void **) ((unsigned char *) array[i - 1][0] + nr * nc * size); + for (j = 1; j < nr; j++) + { + array[i][j] = (void **) ((unsigned char *) array[i][j - 1] + nc * size); + } + } + + return array; +} + +void free_3d_array(void ***array){ + + free(array[0][0]); + free(array[0]); + free(array); +} + +real TrilinearInterpolation(real *FieldAtVertices, real *xyz000, real *dxyz, real *xyz) +{ + real x1, y1, z1, x0, y0, z0, xd, yd, zd, x, y, z; + real c000, c001, c010, c100, c011, c101, c110, c111, c00, c01, c10, c11, c0, c1, c; + + x0 = xyz000[0]; + y0 = xyz000[1]; + z0 = xyz000[2]; + + x1 = xyz000[0] + dxyz[0]; + y1 = xyz000[1] + dxyz[1]; + z1 = xyz000[2] + dxyz[2]; + + x = xyz[0]; + y = xyz[1]; + z = xyz[2]; + + c000 = FieldAtVertices[0]; + c001 = FieldAtVertices[1]; + c010 = FieldAtVertices[2]; + c100 = FieldAtVertices[3]; + c011 = FieldAtVertices[4]; + c101 = FieldAtVertices[5]; + c110 = FieldAtVertices[6]; + c111 = FieldAtVertices[7]; + + xd = (x-x0)/(x1-x0); + yd = (y-y0)/(y1-y0); + zd = (z-z0)/(z1-z0); + + c00 = c000*(1.0-xd) + c100*xd; + c01 = c001*(1.0-xd) + c101*xd; + c10 = c010*(1.0-xd) + c110*xd; + c11 = c011*(1.0-xd) + c111*xd; + + c0 = c00*(1.0-yd) + c10*yd; + c1 = c01*(1.0-yd) + c11*yd; + + c = c0*(1.0-zd) + c1*zd; + + return c; +} From 778ea8dc04d10d84d5697585aa1c86f3e18bf72a Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 21 Mar 2024 10:20:36 +0800 Subject: [PATCH 03/73] Let SRHD support CR --- include/EoS.h | 4 +- include/Global.h | 8 +- include/Typedef.h | 6 +- src/Auxiliary/Aux_Check_Parameter.cpp | 8 -- src/EoS/EoS_Init.cpp | 8 +- src/EoS/TaubMathews/CPU_EoS_TaubMathews.cpp | 107 +++++++++++++++++--- src/Main/Main.cpp | 8 +- 7 files changed, 101 insertions(+), 48 deletions(-) diff --git a/include/EoS.h b/include/EoS.h index 91506030c9..3dbce46c3f 100644 --- a/include/EoS.h +++ b/include/EoS.h @@ -41,10 +41,8 @@ struct EoS_t EoS_DE2T_t DensEint2Temp_FuncPtr; EoS_DT2P_t DensTemp2Pres_FuncPtr; EoS_DE2S_t DensEint2Entr_FuncPtr; - EoS_GENE_t General_FuncPtr; -# ifdef COSMIC_RAY EoS_CRE2CRP_t CREint2CRPres_FuncPtr; -# endif + EoS_GENE_t General_FuncPtr; // table pointers real **Table; diff --git a/include/Global.h b/include/Global.h index 240d5dc3d0..eb4eb70566 100644 --- a/include/Global.h +++ b/include/Global.h @@ -277,10 +277,8 @@ extern EoS_DP2C_t EoS_DensPres2CSqr_CPUPtr; extern EoS_DE2T_t EoS_DensEint2Temp_CPUPtr; extern EoS_DT2P_t EoS_DensTemp2Pres_CPUPtr; extern EoS_DE2S_t EoS_DensEint2Entr_CPUPtr; -extern EoS_GENE_t EoS_General_CPUPtr; -#ifdef COSMIC_RAY extern EoS_CRE2CRP_t EoS_CREint2CRPres_CPUPtr; -#endif +extern EoS_GENE_t EoS_General_CPUPtr; #ifdef GPU extern EoS_GUESS_t EoS_GuessHTilde_GPUPtr; extern EoS_H2TEM_t EoS_HTilde2Temp_GPUPtr; @@ -291,10 +289,8 @@ extern EoS_DP2C_t EoS_DensPres2CSqr_GPUPtr; extern EoS_DE2T_t EoS_DensEint2Temp_GPUPtr; extern EoS_DT2P_t EoS_DensTemp2Pres_GPUPtr; extern EoS_DE2S_t EoS_DensEint2Entr_GPUPtr; -extern EoS_GENE_t EoS_General_GPUPtr; -#ifdef COSMIC_RAY extern EoS_CRE2CRP_t EoS_CREint2CRPres_GPUPtr; -#endif +extern EoS_GENE_t EoS_General_GPUPtr; #endif extern EoS_t EoS; #endif // HYDRO diff --git a/include/Typedef.h b/include/Typedef.h index d073d857c5..eeb77dcc21 100644 --- a/include/Typedef.h +++ b/include/Typedef.h @@ -520,14 +520,12 @@ typedef real (*EoS_DT2P_t) ( const real Dens, const real Temp, const real Pa typedef real (*EoS_DE2S_t) ( const real Dens, const real Eint, const real Passive[], const double AuxArray_Flt[], const int AuxArray_Int[], const real *const Table[EOS_NTABLE_MAX] ); -typedef void (*EoS_GENE_t) ( const int Mode, real Out[], const real In_Flt[], const int In_Int[], +typedef real (*EoS_CRE2CRP_t) ( const real E_CR, const double AuxArray_Flt[], const int AuxArray_Int[], const real *const Table[EOS_NTABLE_MAX] ); -#ifdef COSMIC_RAY -typedef real (*EoS_CRE2CRP_t) ( const real E_CR, +typedef void (*EoS_GENE_t) ( const int Mode, real Out[], const real In_Flt[], const int In_Int[], const double AuxArray_Flt[], const int AuxArray_Int[], const real *const Table[EOS_NTABLE_MAX] ); -#endif typedef void (*ExtAcc_t) ( real Acc[], const double x, const double y, const double z, const double Time, const double UserArray[] ); typedef real (*ExtPot_t) ( const double x, const double y, const double z, const double Time, diff --git a/src/Auxiliary/Aux_Check_Parameter.cpp b/src/Auxiliary/Aux_Check_Parameter.cpp index d310bb6b61..245e54bead 100644 --- a/src/Auxiliary/Aux_Check_Parameter.cpp +++ b/src/Auxiliary/Aux_Check_Parameter.cpp @@ -723,10 +723,6 @@ void Aux_Check_Parameter() # error : ERROR : EOS != EOS_TAUBMATHEWS for SRHD !! # endif -# ifdef COSMIC_RAY -# error : ERROR : SRHD does not support COSMIC_RAY !! -# endif - # ifdef DUAL_ENERGY # error : ERROR : SRHD does not support DUAL_ENERGY !! # endif @@ -768,10 +764,6 @@ void Aux_Check_Parameter() # error : ERROR : COSMIC_RAY currently only supports the MHM_RP fluid scheme !! # endif -# if ( EOS != EOS_COSMIC_RAY ) -# error : ERROR : COSMIC_RAY must use EOS_COSMIC_RAY !! -# endif - # ifdef DUAL_ENERGY # error : ERROR : DUAL_ENERGY is not supported for COSMIC_RAY !! # endif diff --git a/src/EoS/EoS_Init.cpp b/src/EoS/EoS_Init.cpp index ed2cb47f2e..2e0a0a3a52 100644 --- a/src/EoS/EoS_Init.cpp +++ b/src/EoS/EoS_Init.cpp @@ -95,10 +95,8 @@ void EoS_Init() EoS.GuessHTilde_FuncPtr = EoS_GuessHTilde_GPUPtr; EoS.HTilde2Temp_FuncPtr = EoS_HTilde2Temp_GPUPtr; EoS.Temp2HTilde_FuncPtr = EoS_Temp2HTilde_GPUPtr; - EoS.General_FuncPtr = EoS_General_GPUPtr; -# ifdef COSMIC_RAY EoS.CREint2CRPres_FuncPtr = EoS_CREint2CRPres_GPUPtr; -# endif + EoS.General_FuncPtr = EoS_General_GPUPtr; CUAPI_SetConstMemory_EoS(); @@ -113,10 +111,8 @@ void EoS_Init() EoS.GuessHTilde_FuncPtr = EoS_GuessHTilde_CPUPtr; EoS.HTilde2Temp_FuncPtr = EoS_HTilde2Temp_CPUPtr; EoS.Temp2HTilde_FuncPtr = EoS_Temp2HTilde_CPUPtr; - EoS.General_FuncPtr = EoS_General_CPUPtr; -# ifdef COSMIC_RAY EoS.CREint2CRPres_FuncPtr = EoS_CREint2CRPres_CPUPtr; -# endif + EoS.General_FuncPtr = EoS_General_CPUPtr; EoS.AuxArrayDevPtr_Flt = EoS_AuxArray_Flt; EoS.AuxArrayDevPtr_Int = EoS_AuxArray_Int; diff --git a/src/EoS/TaubMathews/CPU_EoS_TaubMathews.cpp b/src/EoS/TaubMathews/CPU_EoS_TaubMathews.cpp index b3a936a511..ca4903d5d8 100644 --- a/src/EoS/TaubMathews/CPU_EoS_TaubMathews.cpp +++ b/src/EoS/TaubMathews/CPU_EoS_TaubMathews.cpp @@ -8,6 +8,20 @@ +#ifdef COSMIC_RAY +#ifdef __CUDACC__ +__device__ static real EoS_CREint2CRPres_TaubMathews( const real E_CR, + const double AuxArray_Flt[], const int AuxArray_Int[], + const real *const Table[EOS_NTABLE_MAX] ); +#else // #ifdef __CUDACC__ +static real EoS_CREint2CRPres_TaubMathews( const real E_CR, + const double AuxArray_Flt[], const int AuxArray_Int[], + const real *const Table[EOS_NTABLE_MAX] ); +#endif // #ifdef __CUDACC__ ... else ... +#endif // #ifdef COSMIC_RAY + + + /******************************************************** 1. Approximately relativistic ideal gas EoS (Taub-Mathews EoS) @@ -56,6 +70,10 @@ void EoS_SetAuxArray_TaubMathews( double AuxArray_Flt[], int AuxArray_Int[] ) AuxArray_Flt[0] = ( OPT__UNIT ) ? MOLECULAR_WEIGHT * MU_NORM / Const_kB * (UNIT_E/UNIT_M) : MOLECULAR_WEIGHT; AuxArray_Flt[1] = 1.0 / AuxArray_Flt[0]; +# ifdef COSMIC_RAY + AuxArray_Flt[2] = GAMMA_CR; + AuxArray_Flt[3] = GAMMA_CR - 1.0; +# endif } // FUNCTION : EoS_SetAuxArray_TaubMathews #endif // #ifndef __CUDACC__ @@ -245,7 +263,55 @@ static real EoS_DensPres2CSqr_TaubMathews( const real Dens, const real Pres, con return Cs2; -} // FUNCTION : EoS_DensPres2CSqr_TaubMathews +} // FUNCTION : EoS_DensPres2CSqr_TaubMathews + + +#ifdef COSMIC_RAY +//------------------------------------------------------------------------------------------------------- +// Function : EoS_CREint2CRPres_TaubMathews +// Description : Convert cosmic-ray energy density to cosmic-ray pressure +// +// Note : 1. Internal energy density here is per unit volume instead of per unit mass +// 2. See EoS_SetAuxArray_GammaCR() for the values stored in AuxArray_Flt/Int[] +// +// Parameter : E_CR : Cosmic-ray energy density +// AuxArray_* : Auxiliary arrays (see the Note above) +// +// Return : Cosmic ray pressure +//------------------------------------------------------------------------------------------------------- +GPU_DEVICE_NOINLINE +static real EoS_CREint2CRPres_TaubMathews( const real E_CR, + const double AuxArray_Flt[], const int AuxArray_Int[], + const real *const Table[EOS_NTABLE_MAX] ) +{ + +// check +# ifdef GAMER_DEBUG + if ( E_CR < (real)0.0 ) + printf( "ERROR : invalid input cosmic-ray energy density (%13.7e) in %s() !!\n", E_CR, __FUNCTION__ ); +# endif // GAMER_DEBUG + + + const real GammaCR_m1 = (real)AuxArray_Flt[3]; + real Pres_CR; + + Pres_CR = GammaCR_m1*E_CR; + + +// check +# ifdef GAMER_DEBUG + if ( Pres_CR < (real)0.0 ) + { + printf( "ERROR : invalid output cosmic-ray pressure (%13.7e) in %s() !!\n", Pres_CR, __FUNCTION__ ); + printf( " CRay=%13.7e\n", E_CR ); + } +# endif // GAMER_DEBUG + + + return Pres_CR; + +} // FUNCTION : EoS_CREint2CRPres_TaubMathews +#endif // #ifdef COSMIC_RAY @@ -259,10 +325,15 @@ static real EoS_DensPres2CSqr_TaubMathews( const real Dens, const real Pres, con # define FUNC_SPACE static #endif -FUNC_SPACE EoS_GUESS_t EoS_GuessHTilde_Ptr = EoS_GuessHTilde_TaubMathews; -FUNC_SPACE EoS_H2TEM_t EoS_HTilde2Temp_Ptr = EoS_HTilde2Temp_TaubMathews; -FUNC_SPACE EoS_TEM2H_t EoS_Temp2HTilde_Ptr = EoS_Temp2HTilde_TaubMathews; -FUNC_SPACE EoS_DP2C_t EoS_DensPres2CSqr_Ptr = EoS_DensPres2CSqr_TaubMathews; +FUNC_SPACE EoS_GUESS_t EoS_GuessHTilde_Ptr = EoS_GuessHTilde_TaubMathews; +FUNC_SPACE EoS_H2TEM_t EoS_HTilde2Temp_Ptr = EoS_HTilde2Temp_TaubMathews; +FUNC_SPACE EoS_TEM2H_t EoS_Temp2HTilde_Ptr = EoS_Temp2HTilde_TaubMathews; +FUNC_SPACE EoS_DP2C_t EoS_DensPres2CSqr_Ptr = EoS_DensPres2CSqr_TaubMathews; +#ifdef COSMIC_RAY +FUNC_SPACE EoS_CRE2CRP_t EoS_CREint2CRPres_Ptr = EoS_CREint2CRPres_TaubMathews; +#else +FUNC_SPACE EoS_CRE2CRP_t EoS_CREint2CRPres_Ptr = NULL; +#endif //----------------------------------------------------------------------------------------- // Function : EoS_SetCPU/GPUFunc_TaubMathews @@ -288,12 +359,14 @@ __host__ void EoS_SetGPUFunc_TaubMathews( EoS_GUESS_t &EoS_GuessHTilde_GPUPtr, EoS_H2TEM_t &EoS_HTilde2Temp_GPUPtr, EoS_TEM2H_t &EoS_Temp2HTilde_GPUPtr, - EoS_DP2C_t &EoS_DensPres2CSqr_GPUPtr ) + EoS_DP2C_t &EoS_DensPres2CSqr_GPUPtr, + EoS_CRE2CRP_t &EoS_CREint2CRPres_GPUPtr ) { - CUDA_CHECK_ERROR( cudaMemcpyFromSymbol( &EoS_GuessHTilde_GPUPtr, EoS_GuessHTilde_Ptr, sizeof(EoS_GUESS_t) ) ); - CUDA_CHECK_ERROR( cudaMemcpyFromSymbol( &EoS_HTilde2Temp_GPUPtr, EoS_HTilde2Temp_Ptr, sizeof(EoS_H2TEM_t) ) ); - CUDA_CHECK_ERROR( cudaMemcpyFromSymbol( &EoS_Temp2HTilde_GPUPtr, EoS_Temp2HTilde_Ptr, sizeof(EoS_TEM2H_t) ) ); - CUDA_CHECK_ERROR( cudaMemcpyFromSymbol( &EoS_DensPres2CSqr_GPUPtr, EoS_DensPres2CSqr_Ptr, sizeof(EoS_DP2C_t ) ) ); + CUDA_CHECK_ERROR( cudaMemcpyFromSymbol( &EoS_GuessHTilde_GPUPtr, EoS_GuessHTilde_Ptr, sizeof(EoS_GUESS_t ) ) ); + CUDA_CHECK_ERROR( cudaMemcpyFromSymbol( &EoS_HTilde2Temp_GPUPtr, EoS_HTilde2Temp_Ptr, sizeof(EoS_H2TEM_t ) ) ); + CUDA_CHECK_ERROR( cudaMemcpyFromSymbol( &EoS_Temp2HTilde_GPUPtr, EoS_Temp2HTilde_Ptr, sizeof(EoS_TEM2H_t ) ) ); + CUDA_CHECK_ERROR( cudaMemcpyFromSymbol( &EoS_DensPres2CSqr_GPUPtr, EoS_DensPres2CSqr_Ptr, sizeof(EoS_DP2C_t ) ) ); + CUDA_CHECK_ERROR( cudaMemcpyFromSymbol( &EoS_CREint2CRPres_GPUPtr, EoS_CREint2CRPres_Ptr, sizeof(EoS_CRE2CRP_t) ) ); } #else // #ifdef __CUDACC__ @@ -301,12 +374,14 @@ void EoS_SetGPUFunc_TaubMathews( EoS_GUESS_t &EoS_GuessHTilde_GPUPtr, void EoS_SetCPUFunc_TaubMathews( EoS_GUESS_t &EoS_GuessHTilde_CPUPtr, EoS_H2TEM_t &EoS_HTilde2Temp_CPUPtr, EoS_TEM2H_t &EoS_Temp2HTilde_CPUPtr, - EoS_DP2C_t &EoS_DensPres2CSqr_CPUPtr ) + EoS_DP2C_t &EoS_DensPres2CSqr_CPUPtr, + EoS_CRE2CRP_t &EoS_CREint2CRPres_CPUPtr ) { EoS_GuessHTilde_CPUPtr = EoS_GuessHTilde_Ptr; EoS_HTilde2Temp_CPUPtr = EoS_HTilde2Temp_Ptr; EoS_Temp2HTilde_CPUPtr = EoS_Temp2HTilde_Ptr; EoS_DensPres2CSqr_CPUPtr = EoS_DensPres2CSqr_Ptr; + EoS_CREint2CRPres_CPUPtr = EoS_CREint2CRPres_Ptr; } #endif // #ifdef __CUDACC__ ... else ... @@ -317,9 +392,9 @@ void EoS_SetCPUFunc_TaubMathews( EoS_GUESS_t &EoS_GuessHTilde_CPUPtr, // local function prototypes void EoS_SetAuxArray_TaubMathews( double [] ); -void EoS_SetCPUFunc_TaubMathews(EoS_GUESS_t &, EoS_H2TEM_t &, EoS_TEM2H_t &, EoS_DP2C_t & ); +void EoS_SetCPUFunc_TaubMathews( EoS_GUESS_t &, EoS_H2TEM_t &, EoS_TEM2H_t &, EoS_DP2C_t &, EoS_CRE2CRP_t & ); #ifdef GPU -void EoS_SetGPUFunc_TaubMathews(EoS_GUESS_t &, EoS_H2TEM_t &, EoS_TEM2H_t &, EoS_DP2C_t & ); +void EoS_SetGPUFunc_TaubMathews( EoS_GUESS_t &, EoS_H2TEM_t &, EoS_TEM2H_t &, EoS_DP2C_t &, EoS_CRE2CRP_t & ); #endif //----------------------------------------------------------------------------------------- @@ -341,9 +416,11 @@ void EoS_Init_TaubMathews() { EoS_SetAuxArray_TaubMathews( EoS_AuxArray_Flt, EoS_AuxArray_Int ); - EoS_SetCPUFunc_TaubMathews( EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_Temp2HTilde_CPUPtr, EoS_DensPres2CSqr_CPUPtr ); + EoS_SetCPUFunc_TaubMathews( EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_Temp2HTilde_CPUPtr, + EoS_DensPres2CSqr_CPUPtr, EoS_CREint2CRPres_CPUPtr ); # ifdef GPU - EoS_SetGPUFunc_TaubMathews( EoS_GuessHTilde_GPUPtr, EoS_HTilde2Temp_GPUPtr, EoS_Temp2HTilde_GPUPtr, EoS_DensPres2CSqr_GPUPtr ); + EoS_SetGPUFunc_TaubMathews( EoS_GuessHTilde_GPUPtr, EoS_HTilde2Temp_GPUPtr, EoS_Temp2HTilde_GPUPtr, + EoS_DensPres2CSqr_GPUPtr, EoS_CREint2CRPres_GPUPtr ); # endif } // FUNCTION : EoS_Init_TaubMathews diff --git a/src/Main/Main.cpp b/src/Main/Main.cpp index c99a6c6666..592a04d888 100644 --- a/src/Main/Main.cpp +++ b/src/Main/Main.cpp @@ -259,10 +259,8 @@ EoS_DP2C_t EoS_DensPres2CSqr_CPUPtr = NULL; EoS_DE2T_t EoS_DensEint2Temp_CPUPtr = NULL; EoS_DT2P_t EoS_DensTemp2Pres_CPUPtr = NULL; EoS_DE2S_t EoS_DensEint2Entr_CPUPtr = NULL; -EoS_GENE_t EoS_General_CPUPtr = NULL; -#ifdef COSMIC_RAY EoS_CRE2CRP_t EoS_CREint2CRPres_CPUPtr = NULL; -#endif +EoS_GENE_t EoS_General_CPUPtr = NULL; #ifdef GPU EoS_GUESS_t EoS_GuessHTilde_GPUPtr = NULL; EoS_H2TEM_t EoS_HTilde2Temp_GPUPtr = NULL; @@ -273,10 +271,8 @@ EoS_DP2C_t EoS_DensPres2CSqr_GPUPtr = NULL; EoS_DE2T_t EoS_DensEint2Temp_GPUPtr = NULL; EoS_DT2P_t EoS_DensTemp2Pres_GPUPtr = NULL; EoS_DE2S_t EoS_DensEint2Entr_GPUPtr = NULL; -EoS_GENE_t EoS_General_GPUPtr = NULL; -#ifdef COSMIC_RAY EoS_CRE2CRP_t EoS_CREint2CRPres_GPUPtr = NULL; -#endif +EoS_GENE_t EoS_General_GPUPtr = NULL; #endif // c. data structure for the CPU/GPU solvers From 772ebabaef053c46dfd8ee6a62ee5df2bc50c79f Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 21 Mar 2024 10:21:00 +0800 Subject: [PATCH 04/73] Add the function for the SRHD Jet test --- src/Makefile_base | 2 +- src/Miscellaneous/Mis_CoordinateTransform.cpp | 181 ++++++++++++++++++ 2 files changed, 182 insertions(+), 1 deletion(-) diff --git a/src/Makefile_base b/src/Makefile_base index 6944b0dd1b..075ef60886 100644 --- a/src/Makefile_base +++ b/src/Makefile_base @@ -98,7 +98,7 @@ CPU_FILE += Mis_CompareRealValue.cpp Mis_GetTotalPatchNumber.cpp Mis_GetTim Mis_BinarySearch.cpp Mis_1D3DIdx.cpp Mis_Matching.cpp Mis_GetTimeStep_User.cpp \ Mis_dTime2dt.cpp Mis_CoordinateTransform.cpp Mis_BinarySearch_Real.cpp Mis_InterpolateFromTable.cpp \ CPU_dtSolver.cpp dt_Prepare_Flu.cpp dt_Prepare_Pot.cpp dt_Close.cpp dt_InvokeSolver.cpp \ - Mis_UserWorkBeforeNextLevel.cpp Mis_UserWorkBeforeNextSubstep.cpp + Mis_UserWorkBeforeNextLevel.cpp Mis_UserWorkBeforeNextSubstep.cpp Mis_CoordinateTransform.cpp CPU_FILE += Output_DumpData_Total.cpp Output_DumpData.cpp Output_DumpManually.cpp Output_PatchMap.cpp \ Output_DumpData_Part.cpp Output_FlagMap.cpp Output_Patch.cpp Output_PreparedPatch_Fluid.cpp \ diff --git a/src/Miscellaneous/Mis_CoordinateTransform.cpp b/src/Miscellaneous/Mis_CoordinateTransform.cpp index 1dc9132de8..9d9a616813 100644 --- a/src/Miscellaneous/Mis_CoordinateTransform.cpp +++ b/src/Miscellaneous/Mis_CoordinateTransform.cpp @@ -77,3 +77,184 @@ int Mis_Cell2Scale( const int NCell, const int lv ) return NCell*amr->scale[lv]; } // FUNCTION : Mis_Cell2Scale + + + +//------------------------------------------------------------------------------------------------------- +// Function : Mis_Cartesian2Spherical +// Description : Convert Cartesian coordinates to spherical coordinates +// +// Note : Reference: https://en.wikipedia.org/wiki/Del_in_cylindrical_and_spherical_coordinates +// +// Parameter : Cartesian : The array stored Cartesian coordinates +// --> Cartesian[0/1/2] = x/y/z +// Spherical : The array stored spherical coordinates +// --> Spherical[0] = r, the length of radial vector +// --> Spherical[1] = θ, the angle between the z-axis and the radial vector +// --> Spherical[2] = φ, the angle between the x-axis and the projection of +// the radial vector onto the xy-plane +// Return : Spherical[] +//------------------------------------------------------------------------------------------------------- +void Mis_Cartesian2Spherical( const double Cartesian[], double Spherical[] ) +{ + + Spherical[0] = SQRT( SQR(Cartesian[0]) + SQR(Cartesian[1]) + SQR(Cartesian[2]) ); + + if ( SQR(Cartesian[0]) + SQR(Cartesian[1]) == 0.0 && Cartesian[2] == 0.0 ) + Aux_Error( ERROR_INFO, "Both arguments in atan2 can not be zero !! (%s)\n", __FUNCTION__ ); + + Spherical[1] = ATAN2( SQRT( SQR(Cartesian[0]) + SQR(Cartesian[1]) ), Cartesian[2] ); + + if ( Cartesian[0] == 0.0 && Cartesian[1] == 0.0 ) + Aux_Error( ERROR_INFO, "Both arguments in atan2 can not be zero !! (%s)\n", __FUNCTION__ ); + + Spherical[2] = ATAN2( Cartesian[1], Cartesian[0] ); + +} + + + +//------------------------------------------------------------------------------------------------------- +// Function : Mis_Cartesian2Cylindrical +// Description : Convert Cartesian coordinates to cylindrical coordinates +// +// Note : Reference: https://en.wikipedia.org/wiki/Del_in_cylindrical_and_spherical_coordinates +// +// Parameter : Cartesian : The array stored Cartesian coordinates +// --> Cartesian[0/1/2] = x/y/z +// Cylindrical : The array stored cylindrical coordinates +// --> Cylindrical[0] = ρ, the length of radial vector +// --> Cylindrical[1] = φ, the angle between the x-axis and the radial vector +// --> Cylindrical[2] = z, z coordinates +// Return : Cylindrical[] +//------------------------------------------------------------------------------------------------------- +void Mis_Cartesian2Cylindrical( const double Cartesian[], double Cylindrical[] ) +{ + + Cylindrical[0] = SQRT( SQR(Cartesian[0]) + SQR(Cartesian[1]) ); + + if ( Cartesian[1] == 0.0 && Cartesian[0] == 0.0 ) + Aux_Error( ERROR_INFO, "Both arguments in atan2 can not be zero !! (%s)\n", __FUNCTION__ ); + + Cylindrical[1] = ATAN2( Cartesian[1], Cartesian[0] ); + + Cylindrical[2] = Cartesian[2]; + +} + + + +//------------------------------------------------------------------------------------------------------- +// Function : Mis_Spherical2Cartesian +// Description : Convert Spherical coordinates to Cartesian coordinates +// +// Note : Reference: https://en.wikipedia.org/wiki/Del_in_cylindrical_and_spherical_coordinates +// +// +// Parameter : Spherical : The array stored Spherical coordinates +// --> Spherical[0] = r, the length of radial vector +// --> Spherical[1] = θ, the angle between the z-axis and the radial vector +// --> Spherical[2] = φ, the angle between the x-axis and the projection of +// the radial vector onto the xy-plane +// Cartesian : The array stored Cartesian coordinates +// --> Cartesian[0/1/2] = x/y/z +// +// Return : Cartesian[] +//------------------------------------------------------------------------------------------------------- +void Mis_Spherical2Cartesian( const double Spherical[], double Cartesian[] ) +{ + + Cartesian[0] = Spherical[0]*SIN(Spherical[1])*COS(Spherical[2]); + + Cartesian[1] = Spherical[0]*SIN(Spherical[1])*SIN(Spherical[2]); + + Cartesian[2] = Spherical[0]*COS(Spherical[1]); + +} + + + +//------------------------------------------------------------------------------------------------------- +// Function : Mis_RotateRigidBody +// Description : 1. Rotate rigid body based on Euler angles. +// 2. Rotation convention follows the section 4.4 in Classical Mechenial, Goldstein, 3rd edition +// --> Using Eq.(4.47) +// 3. Rotating rigid body is equivalent to active rotation +// 4. However, below process is for passive coordinate transformation +// 5. First, rotating the initial axes, xyz, by an angle φ counterclockwise about the z-axis. +// The resultant coordinate system is labeled the ξηζ axes. +// Second, rotate ξηζ axes about the ξ-axis counterclockwise by an angle θ to produce another +// intermediate set, ξ'η'ζ' axes. +// Finally, the ξ'η'ζ' axes are rotated counterclockwise by an angle ψ about the ζ' axis to produce +// the desired x'y'z' system. +// 6. The angle set (φ, θ, ψ) thus completely specify the 3D rotation from the xyz to x'y'z' system. +// +// Note : 1. This function rotate and change the array `Cartesian` in-place +// 2. The Euler angles between two given systems can be found by .... +// +// Parameter : Cartesian : The array stored Cartesian coordinates +// --> Cartesian[0/1/2] = x/y/z +// EulerAngle[0/1/2] : φ/θ/ψ +// +// +// Return : Cartesian[] +//------------------------------------------------------------------------------------------------------- +void Mis_RotateRigidBody( double Cartesian[], const double EulerAngle[] ) +{ + + double CartesianRot[3], Phi, Theta, Psi; + + Phi = EulerAngle[0]; + Theta = EulerAngle[1]; + Psi = EulerAngle[2]; + + CartesianRot[0] = ( COS(Phi)*COS(Psi) - COS(Theta)*SIN(Phi)*SIN(Psi) )*Cartesian[0] + - ( COS(Phi)*SIN(Psi) + COS(Theta)*SIN(Phi)*COS(Psi) )*Cartesian[1] + + ( SIN(Theta)*SIN(Phi) )*Cartesian[2]; + + CartesianRot[1] = - ( SIN(Phi)*COS(Psi) + COS(Theta)*COS(Phi)*SIN(Psi) )*Cartesian[0] + - ( SIN(Phi)*SIN(Psi) - COS(Theta)*COS(Phi)*COS(Psi) )*Cartesian[1] + - ( SIN(Theta)*COS(Phi) )*Cartesian[2]; + + CartesianRot[2] = SIN(Theta)*SIN(Psi)*Cartesian[0] + SIN(Theta)*COS(Psi)*Cartesian[1] + COS(Theta)*Cartesian[2]; + + for (int idx=0; idx<3; idx++) Cartesian[idx] = CartesianRot[idx]; + +} + + + +//------------------------------------------------------------------------------------------------------- +// Function : Mis_GetEulerAngles +// Description : Get Euler angles by +// Note : See https://en.wikipedia.org/wiki/Euler_angles#Proper_Euler_angles_2 +// +// Parameter : EulerAngle[0/1/2] : φ/θ/ψ, Euler angles, described in the function `RotateRigidBody` +// : Unit[0] : The z-coordinate of the unit vector along y'-axis in the original xyz system +// : Unit[1] : The y-coordinate of the unit vector along z'-axis in the original xyz system +// : Unit[2] : The z-coordinate of the unit vector along z'-axis in the original xyz system +// +// Return : EulerAngle[0/1/2] : φ/θ/ψ +//------------------------------------------------------------------------------------------------------- + +void Mis_GetEulerAngles( double EulerAngle[], const double Unit[] ) +{ + + double Argument0 = -Unit[1] / SQRT( (double)1.0 - Unit[2]*Unit[2] ); + double Argument1 = +Unit[2]; + double Argument2 = +Unit[0] / SQRT( (double)1.0 - Unit[2]*Unit[2] ); + + bool Fail = false; + + Fail |= Argument0 < (double)-1.0 || Argument0 > (double)1.0; + Fail |= Argument1 < (double)-1.0 || Argument1 > (double)1.0; + Fail |= Argument2 < (double)-1.0 || Argument2 > (double)1.0; + + if ( Fail ) + Aux_Error( ERROR_INFO, "Argument should be lie between -1 and 1 !! (%s)\n", Argument2, __FUNCTION__ ); + + EulerAngle[0] = acos( Argument0 ); + EulerAngle[1] = acos( Argument1 ); + EulerAngle[2] = acos( Argument2 ); + +} From 382e7473cbb9c2b14158d002dedb3ccd9ecfcdf1 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 21 Mar 2024 10:21:58 +0800 Subject: [PATCH 05/73] Let the tests supoport CR --- .../Init_TestProb_Hydro_CR_SoundWave.cpp | 5 +++++ .../Riemann/Init_TestProb_Hydro_Riemann.cpp | 20 ++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/TestProblem/Hydro/CR_SoundWave/Init_TestProb_Hydro_CR_SoundWave.cpp b/src/TestProblem/Hydro/CR_SoundWave/Init_TestProb_Hydro_CR_SoundWave.cpp index 5c4e0b5cbc..012bc5d3c6 100644 --- a/src/TestProblem/Hydro/CR_SoundWave/Init_TestProb_Hydro_CR_SoundWave.cpp +++ b/src/TestProblem/Hydro/CR_SoundWave/Init_TestProb_Hydro_CR_SoundWave.cpp @@ -240,8 +240,13 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co // set the output array of passive scaler fluid[CRAY] = CRay; +# ifdef SRHD + Eint = Pres / (GAMMA - 1.0); // SRHD assuming that P_gas >> P_cr + Etot = 0.5*(MomX*MomX + MomY*MomY + MomZ*MomZ)/Dens + Eint; +# else Eint = EoS_DensPres2Eint_CPUPtr( Dens, Pres, fluid+NCOMP_FLUID, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table ); Etot = Hydro_ConEint2Etot( Dens, MomX, MomY, MomZ, Eint, 0.0 ); // do NOT include magnetic energy here +# endif // set the output array fluid[DENS] = Dens; diff --git a/src/TestProblem/Hydro/Riemann/Init_TestProb_Hydro_Riemann.cpp b/src/TestProblem/Hydro/Riemann/Init_TestProb_Hydro_Riemann.cpp index 400e950671..1ab21a52c6 100644 --- a/src/TestProblem/Hydro/Riemann/Init_TestProb_Hydro_Riemann.cpp +++ b/src/TestProblem/Hydro/Riemann/Init_TestProb_Hydro_Riemann.cpp @@ -50,6 +50,10 @@ static double Riemann_MagL_T2; // left-state transverse B field 2 static double Riemann_MagR_T1; // right-state transverse B field 1 static double Riemann_MagR_T2; // right-state transverse B field 2 #endif +#ifdef COSMIC_RAY +static double Riemann_PreL_CR; // left-state cosmic ray pressure +static double Riemann_PreR_CR; // right-state cosmic ray pressure +#endif // ======================================================================================= @@ -149,6 +153,10 @@ void SetParameter() ReadPara->Add( "Riemann_MagR_T1", &Riemann_MagR_T1, __DBL_MAX__, -__DBL_MAX__, __DBL_MAX__ ); ReadPara->Add( "Riemann_MagR_T2", &Riemann_MagR_T2, __DBL_MAX__, -__DBL_MAX__, __DBL_MAX__ ); # endif +# ifdef COSMIC_RAY + ReadPara->Add( "Riemann_PreL_CR", &Riemann_PreL_CR, __DBL_MIN__, __DBL_MIN__, __DBL_MAX__ ); + ReadPara->Add( "Riemann_PreR_CR", &Riemann_PreR_CR, __DBL_MIN__, __DBL_MIN__, __DBL_MAX__ ); +# endif ReadPara->Read( FileName ); @@ -408,7 +416,17 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co Prim[ MomIdx[0] ] = (real)(aVel + dVel*Tanh); Prim[ MomIdx[1] ] = (real)(aVT1 + dVT1*Tanh); Prim[ MomIdx[2] ] = (real)(aVT2 + dVT2*Tanh); - Prim[ ENGY ] = (real)(aPre + dPre*Tanh); // pressure + Prim[ ENGY ] = (real)(aPre + dPre*Tanh); // gas pressure +# ifdef COSMIC_RAY + const double dPre_CR = 0.5*( Riemann_PreR_CR - Riemann_PreL_CR ); + const double aPre_CR = 0.5*( Riemann_PreR_CR + Riemann_PreL_CR ); + Prim[ CRAY ] = (real)(aPre_CR + dPre_CR*Tanh); // cosmic ray pressure + Prim[ ENGY ] += Prim[CRAY]; // Note that p_gas >> p_cr in SRHD, so it should be fine. + +// should be replaced by the EoS + const double GAMMA_CR_m1_inv = 1.0 / (GAMMA_CR - 1.0); + fluid[CRAY] = Prim[CRAY] * GAMMA_CR_m1_inv; +# endif # ifdef SRHD Hydro_Pri2Con( Prim, fluid, NULL_BOOL, NULL_INT, NULL, NULL, From 878fd85547b8913439eedeb80ccee39c954be956 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Fri, 12 Apr 2024 16:02:32 +0800 Subject: [PATCH 06/73] Correct the CR part --- src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp | 122 +++++++++++++++----- 1 file changed, 91 insertions(+), 31 deletions(-) diff --git a/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp b/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp index aa2404b441..7d03cc20eb 100644 --- a/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp +++ b/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp @@ -38,14 +38,13 @@ void CR_AdiabaticWork_HalfStep_MHM_RP( real OneCell[NCOMP_TOTAL_PLUS_MAG], const int idx_flux, const int didx_flux[3], const real dt_dh2, const EoS_t *EoS ) { +# ifdef SRHD + real Con_L[NCOMP_FLUID], Con_C[NCOMP_FLUID], Con_R[NCOMP_FLUID]; + real Pri_L[NCOMP_FLUID], Pri_L[NCOMP_FLUID], Pri_L[NCOMP_FLUID]; +# endif -// 1. calculate the cosmic-ray pressure - const real pCR_old = EoS->CREint2CRPres_FuncPtr( g_ConVar_In[CRAY][idx_in], EoS->AuxArrayDevPtr_Flt, - EoS->AuxArrayDevPtr_Int, EoS->Table ); - - -// 2. compute \div V using the upwind data; reference: [2] - real div_V[3]; +// 1. compute \div V using the upwind data; reference: [2] + real div_V[3], LorentzFactor = 1.0; for (int d=0; d<3; d++) { @@ -57,18 +56,46 @@ void CR_AdiabaticWork_HalfStep_MHM_RP( real OneCell[NCOMP_TOTAL_PLUS_MAG], const real DensFlux_R = g_Flux_Half[d][DENS][ idx_flux + didx_flux[d] ]; # endif - div_V[d] = ( DensFlux_R > (real)0.0 ) ? - ( DensFlux_R / g_ConVar_In[DENS][ idx_in ] ) : - ( DensFlux_R / g_ConVar_In[DENS][ idx_in + didx_in[d] ] ); +# ifdef SRHD + for (int v=0; vDensEint2Pres_FuncPtr, EoS->DensPres2Eint_FuncPtr, EoS->GuessHTilde_FuncPtr, + EoS->HTilde2Temp_FuncPtr, EoS->AuxArrayDevPtr_Flt, EoS->AuxArrayDevPtr_Int, + EoS->Table, NULL, NULL ); + Hydro_Con2Pri( Con_C, Pri_C, NULL_REAL, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, + EoS->DensEint2Pres_FuncPtr, EoS->DensPres2Eint_FuncPtr, EoS->GuessHTilde_FuncPtr, + EoS->HTilde2Temp_FuncPtr, EoS->AuxArrayDevPtr_Flt, EoS->AuxArrayDevPtr_Int, + EoS->Table, NULL, &LorentzFactor ); + Hydro_Con2Pri( Con_R, Pri_R, NULL_REAL, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, + EoS->DensEint2Pres_FuncPtr, EoS->DensPres2Eint_FuncPtr, EoS->GuessHTilde_FuncPtr, + EoS->HTilde2Temp_FuncPtr, EoS->AuxArrayDevPtr_Flt, EoS->AuxArrayDevPtr_Int, + EoS->Table, NULL, NULL ); + + const real Rho_L = Pri_L[DENS]; + const real Rho_C = Pri_C[DENS]; + const real Rho_R = Pri_R[DENS]; +# else + const real Rho_L = g_ConVar_In[DENS][ idx_in - didx_in[d] ]; + const real Rho_C = g_ConVar_In[DENS][ idx_in ]; + const real Rho_R = g_ConVar_In[DENS][ idx_in + didx_in[d] ]; +# endif - div_V[d] -= ( DensFlux_L > (real)0.0 ) ? - ( DensFlux_L / g_ConVar_In[DENS][ idx_in - didx_in[d] ] ) : - ( DensFlux_L / g_ConVar_In[DENS][ idx_in ] ); + div_V[d] = ( DensFlux_R > (real)0.0 ) ? DensFlux_R / Rho_C : DensFlux_R / Rho_R; + div_V[d] -= ( DensFlux_L > (real)0.0 ) ? DensFlux_L / Rho_L : DensFlux_L / Rho_C; } // for (int d=0; d<3; d++) +// 2. calculate the cosmic-ray pressure + const real pCR_old = EoS->CREint2CRPres_FuncPtr( g_ConVar_In[CRAY][idx_in]/LorentzFactor, EoS->AuxArrayDevPtr_Flt, + EoS->AuxArrayDevPtr_Int, EoS->Table ); // 3. update the cosmic-ray energy - OneCell[CRAY] -= pCR_old*dt_dh2*( div_V[0] + div_V[1] + div_V[2] ); + OneCell[CRAY] -= pCR_old * dt_dh2 * ( div_V[0] + div_V[1] + div_V[2] ); } // FUMCTION : CR_AdiabaticWork_HalfStep_MHM_RP @@ -110,11 +137,15 @@ void CR_AdiabaticWork_FullStep( const real g_PriVar_Half[][ CUBE(FLU_NXT) ], const real dt, const real dh, const EoS_t *EoS ) { - const int didx_flux[3] = { 1, N_FL_FLUX, SQR(N_FL_FLUX) }; - const int didx_fc[3] = { 1, N_FC_VAR, SQR(N_FC_VAR) }; - const real dt_dh = dt/dh; + const int didx_flux[3] = { 1, N_FL_FLUX, SQR(N_FL_FLUX) }; + const int didx_fc [3] = { 1, N_FC_VAR, SQR(N_FC_VAR) }; + const real dt_dh = dt/dh; real div_V[3]; +# ifdef SRHD + real Con_LR[NCOMP_FLUID], Con_CL[NCOMP_FLUID], Con_CR[NCOMP_FLUID], Con_RL[NCOMP_FLUID]; + real Pri_LR[NCOMP_FLUID], Pri_CL[NCOMP_FLUID], Pri_CR[NCOMP_FLUID], Pri_RL[NCOMP_FLUID]; +# endif const int size_ij = SQR(PS2); CGPU_LOOP( idx_out, CUBE(PS2) ) @@ -149,13 +180,7 @@ void CR_AdiabaticWork_FullStep( const real g_PriVar_Half[][ CUBE(FLU_NXT) ], const int k_fc = k_out + 1; const int idx_fc = IDX321( i_fc, j_fc, k_fc, N_FC_VAR, N_FC_VAR ); - -// 1. calculate the cosmic-ray pressure - const real pCR_half = EoS->CREint2CRPres_FuncPtr( g_PriVar_Half[CRAY][idx_hf], EoS->AuxArrayDevPtr_Flt, - EoS->AuxArrayDevPtr_Int, EoS->Table ); - - -// 2. compute \div V using the upwind data; reference: [2] +// 1. compute \div V using the upwind data; reference: [2] for (int d=0; d<3; d++) { const int faceL = 2*d; @@ -169,18 +194,53 @@ void CR_AdiabaticWork_FullStep( const real g_PriVar_Half[][ CUBE(FLU_NXT) ], const real DensFlux_R = g_Flux[d][DENS][ idx_flux + didx_flux[d] ]; # endif - div_V[d] = ( DensFlux_R > (real)0.0 ) ? - ( DensFlux_R / g_FC_Var[faceR][DENS][ idx_fc ] ) : - ( DensFlux_R / g_FC_Var[faceL][DENS][ idx_fc + didx_fc[d] ] ); +# ifdef SRHD + for (int v=0; vDensEint2Pres_FuncPtr, EoS->DensPres2Eint_FuncPtr, EoS->GuessHTilde_FuncPtr, + EoS->HTilde2Temp_FuncPtr, EoS->AuxArrayDevPtr_Flt, EoS->AuxArrayDevPtr_Int, + EoS->Table, NULL, NULL ); + Hydro_Con2Pri( Con_CL, Pri_CL, NULL_REAL, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, + EoS->DensEint2Pres_FuncPtr, EoS->DensPres2Eint_FuncPtr, EoS->GuessHTilde_FuncPtr, + EoS->HTilde2Temp_FuncPtr, EoS->AuxArrayDevPtr_Flt, EoS->AuxArrayDevPtr_Int, + EoS->Table, NULL, NULL ); + Hydro_Con2Pri( Con_CR, Pri_CR, NULL_REAL, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, + EoS->DensEint2Pres_FuncPtr, EoS->DensPres2Eint_FuncPtr, EoS->GuessHTilde_FuncPtr, + EoS->HTilde2Temp_FuncPtr, EoS->AuxArrayDevPtr_Flt, EoS->AuxArrayDevPtr_Int, + EoS->Table, NULL, NULL ); + Hydro_Con2Pri( Con_RL, Pri_RL, NULL_REAL, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, + EoS->DensEint2Pres_FuncPtr, EoS->DensPres2Eint_FuncPtr, EoS->GuessHTilde_FuncPtr, + EoS->HTilde2Temp_FuncPtr, EoS->AuxArrayDevPtr_Flt, EoS->AuxArrayDevPtr_Int, + EoS->Table, NULL, NULL ); + + const real Rho_LR = Pri_LR[DENS]; + const real Rho_CL = Pri_CL[DENS]; + const real Rho_CR = Pri_CR[DENS]; + const real Rho_RL = Pri_RL[DENS]; +# else + const real Rho_LR = g_FC_Var[faceR][ idx_fc - didx_fc[d] ]; + const real Rho_CL = g_FC_Var[faceL][ idx_fc ]; + const real Rho_CR = g_FC_Var[faceR][ idx_fc ]; + const real Rho_RL = g_FC_Var[faceL][ idx_fc + didx_fc[d] ]; +# endif - div_V[d] -= ( DensFlux_L > (real)0.0 ) ? - ( DensFlux_L / g_FC_Var[faceR][DENS][ idx_fc - didx_fc[d] ] ) : - ( DensFlux_L / g_FC_Var[faceL][DENS][ idx_fc ] ); + div_V[d] = ( DensFlux_R > (real)0.0 ) ? DensFlux_R / Rho_CR : DensFlux_R / Rho_RL; + div_V[d] -= ( DensFlux_L > (real)0.0 ) ? DensFlux_L / Rho_LR : DensFlux_L / Rho_CL; } // for (int d=0; d<3; d++) +// 2. calculate the cosmic-ray pressure + const real pCR_half = EoS->CREint2CRPres_FuncPtr( g_PriVar_Half[CRAY][idx_hf], EoS->AuxArrayDevPtr_Flt, + EoS->AuxArrayDevPtr_Int, EoS->Table ); // 3. update the cosmic-ray energy - g_Output[CRAY][idx_out] -= pCR_half*dt_dh*( div_V[0] + div_V[1] + div_V[2] ); + g_Output[CRAY][idx_out] -= pCR_half * dt_dh * ( div_V[0] + div_V[1] + div_V[2] ); } // CGPU_LOOP( idx_out, CUBE(PS2) ) From 98967603f9f57528e92aee1001058efa87adbd7a Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Fri, 12 Apr 2024 18:53:14 +0800 Subject: [PATCH 07/73] Bug fix --- src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp | 34 +++++++++++++++------ 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp b/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp index 7d03cc20eb..7b8306b7cb 100644 --- a/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp +++ b/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp @@ -2,6 +2,22 @@ #ifdef COSMIC_RAY +// external functions +#ifdef __CUDACC__ + +#include "CUFLU_Shared_FluUtility.cu" + +#else // #ifdef __CUDACC__ + +void Hydro_Con2Pri( const real In[], real Out[], const real MinPres, + const bool FracPassive, const int NFrac, const int FracIdx[], + const bool JeansMinPres, const real JeansMinPres_Coeff, + const EoS_DE2P_t EoS_DensEint2Pres, const EoS_DP2E_t EoS_DensPres2Eint, + const EoS_GUESS_t EoS_GuessHTilde, const EoS_H2TEM_t EoS_HTilde2Temp, + const double EoS_AuxArray_Flt[], const int EoS_AuxArray_Int[], + const real *const EoS_Table[EOS_NTABLE_MAX], real* const EintOut, real* LorentzFactorPtr ); + +#endif // #ifdef __CUDACC__ ... else ... @@ -40,7 +56,7 @@ void CR_AdiabaticWork_HalfStep_MHM_RP( real OneCell[NCOMP_TOTAL_PLUS_MAG], { # ifdef SRHD real Con_L[NCOMP_FLUID], Con_C[NCOMP_FLUID], Con_R[NCOMP_FLUID]; - real Pri_L[NCOMP_FLUID], Pri_L[NCOMP_FLUID], Pri_L[NCOMP_FLUID]; + real Pri_L[NCOMP_FLUID], Pri_C[NCOMP_FLUID], Pri_R[NCOMP_FLUID]; # endif // 1. compute \div V using the upwind data; reference: [2] @@ -197,10 +213,10 @@ void CR_AdiabaticWork_FullStep( const real g_PriVar_Half[][ CUBE(FLU_NXT) ], # ifdef SRHD for (int v=0; v (real)0.0 ) ? DensFlux_R / Rho_CR : DensFlux_R / Rho_RL; From ae731d59102cd80d5747faae0705e648eabbe723 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 15 Apr 2024 09:30:51 +0800 Subject: [PATCH 08/73] Minor update --- src/configure.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configure.py b/src/configure.py index 6d5c093028..bfb230e05f 100644 --- a/src/configure.py +++ b/src/configure.py @@ -721,7 +721,7 @@ def validation( paths, depends, constraints, **kwargs ): if kwargs[check_opt] in check_val: continue # satisify the validation val_str = ', '.join(str(x) for x in check_val) - color_print("ERROR: The option <--%s=%s> requires <--%s> to be set to [%s]. Current: <--%s=%s>."%(opt, str(kwargs[opt]), check_opt, val_str, check_opt, kwargs[check_opt]), BCOLOR.FAIL) + color_print("ERROR: The option <--%s=%s> requires <--%s=%s>. Current: <--%s=%s>."%(opt, str(kwargs[opt]), check_opt, val_str, check_opt, kwargs[check_opt]), BCOLOR.FAIL) success = False # 2. Checking other conditions. From 925e86bef4cd9688acd7f7364a9c425b98f0f52b Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 15 Apr 2024 09:32:10 +0800 Subject: [PATCH 09/73] Update Testproblem --- .../Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp | 526 +++++++++--------- .../Hydro/Jet/Interpolation_UM_IC.cpp | 97 ++-- 2 files changed, 314 insertions(+), 309 deletions(-) diff --git a/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp b/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp index 5b61e991ab..2d6b3e01f2 100644 --- a/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp +++ b/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp @@ -7,15 +7,15 @@ void ***calloc_3d_array (size_t nt, size_t nr, size_t nc, size_t size); void free_3d_array(void ***array); void Mis_Cartesian2Spherical( const double Cartesian[], double Spherical[] ); -void CartesianRotate( double x[], double theta, double phi, bool inverse ); +void CartesianRotate( double x[], const double theta, const double phi, const bool inverse ); void Interpolation_UM_IC( real x, real y, real z, real ****Pri_input, real **XYZ, real *Pri_output, bool disk ); real TrilinearInterpolation(real *FieldAtVertices, real *xyz000, real *dxyz, real *xyz); static void SetArrayDisk(); static void SetArrayHVC(); static real *randXYZ; -static int numClouds = 30; -static real radiusCloud = 1.0; -void randCloud( real **randXYZ, int numClouds ); +static int N_CLOUDS = 30; +static real R_CLOUD = 1.0; +void randCloud( real **randXYZ, const int numClouds ); #if ( MODEL == HYDRO ) @@ -27,7 +27,7 @@ void randCloud( real **randXYZ, int numClouds ); int Jet_Ambient; // [0/1/9]: uniform/Milky-Way/load-from-file static bool Jet_Precession; // flag: precessing jet source static bool Jet_TimeDependentSrc; // flag: time-dependent fluid variables in source -static int Jet_Fire; // [0/1/2/3]: no jet/jet1/jet2/bipolar jet +static int Jet_Fire; // [0/1/2/3]: no jet/upper jet/lower jet/bipolar jet static double Jet_Duration; // a duration of jet injection from the start of simulation // general parameters @@ -58,7 +58,7 @@ static double Amb_CR_Engy; static double CharacteristicSpeed; // the characteristic speed of the simulation problem // the default end-time (END_T) will be estimated from // `CharacteristicSpeed` and `BOX_SIZE` -static real *buffer; +static real *BUFFER; static real *Header_disk; static real ***Rhoo_disk; static real ***VelX_disk; @@ -79,18 +79,18 @@ static real *Y_hvc; static real *Z_hvc; // fermi bubbles - real IsothermalSlab_VelocityDispersion; - real IsothermalSlab_PeakDens; - real IsothermalSlab_Truncation; -static real ambientTemperature; -static real gasDiskTemperature; -static real gasDiskPeakDens; - real interfaceHeight; + real IsothermalSlab_VelocityDispersion; + real IsothermalSlab_PeakDens; + real IsothermalSlab_Truncation; +static real ambientTemperature; +static real gasDiskTemperature; +static real gasDiskPeakDens; + real interfaceHeight; static double criticalTemp; static double gasDisk_highResRadius; static double jetSrc_highResRadius; -static int gasDisk_lowRes_LEVEL; -static int jetSrc_lowRes_LEVEL; +static int gasDisk_lowRes_LEVEL; +static int jetSrc_lowRes_LEVEL; // Dark logarithmic halo potential real v_halo; @@ -170,6 +170,7 @@ void Validate() # endif # ifndef GRAVITY +// TODO: 3 and 4 should also be included if ( Jet_Ambient == 1 || Jet_Ambient == 2 ) Aux_Error( ERROR_INFO, "GRAVITY must be enabled !!\n" ); # endif @@ -288,7 +289,7 @@ void SetParameter() // Read header for the fermi bubbles SetArrayDisk(); // SetArrayHVC(); - randCloud( &randXYZ, numClouds ); + randCloud( &randXYZ, N_CLOUDS ); // replace useless parameters with NaN @@ -390,7 +391,7 @@ void SetParameter() Amb_UniformVel[0] *= Const_c / UNIT_V; Amb_UniformVel[1] *= Const_c / UNIT_V; Amb_UniformVel[2] *= Const_c / UNIT_V; - } else if ( Jet_Ambient == 2 || Jet_Ambient == 3 || Jet_Ambient == 4 ) + } else if ( Jet_Ambient == 2 || Jet_Ambient == 3 || Jet_Ambient == 4 ) { IsothermalSlab_VelocityDispersion = Header_disk[15]; IsothermalSlab_PeakDens = Header_disk[16]; @@ -406,9 +407,9 @@ void SetParameter() IsothermalSlab_Center[2] *= Const_kpc / UNIT_L; distance_h = Header_disk[29]; - v_halo = Header_disk[30]; - distance_h *= Const_kpc / UNIT_L; + + v_halo = Header_disk[30]; v_halo *= 1.0 / UNIT_V; gasDiskPeakDens /= UNIT_D; @@ -420,7 +421,7 @@ void SetParameter() gasDiskTemperature *= Const_kB / (ParticleMass*UNIT_V*UNIT_V); criticalTemp *= Const_kB / (ParticleMass*Const_c*Const_c); - } + } // if ( Jet_Ambient == 0 ) ... else if ... Amb_UniformTemp *= Const_kB / (ParticleMass*Const_c*Const_c); Jet_AngularVelocity *= 1.0; // the unit of Jet_AngularVelocity is UNIT_T @@ -562,7 +563,7 @@ void ReadBinFile( char *FileName, real **buffer ) size_t result; pFile = fopen( FileName, "rb" ); - if ( pFile == NULL ) { fputs ("File error\n", stderr ); exit(1); } + if ( pFile == NULL ) Aux_Error( ERROR_INFO, "File error !!\n" ); // obtain file size fseek( pFile, 0, SEEK_END ); @@ -571,11 +572,11 @@ void ReadBinFile( char *FileName, real **buffer ) // allocate memory to contain the whole file *buffer = (real*) calloc( lSize, sizeof(double) ); - if ( *buffer == NULL ) { fputs( "Memory error\n", stderr ); exit(2); } + if ( *buffer == NULL ) Aux_Error( ERROR_INFO, "Memory error !!\n" ); // copy the file into the *buffer result = fread( *buffer, 1, lSize, pFile ); - if ( result != lSize ) { fputs( "Reading error\n", stderr ); exit(3); } + if ( result != lSize ) Aux_Error( ERROR_INFO, "Reading error !!\n" ); fclose (pFile); @@ -583,35 +584,41 @@ void ReadBinFile( char *FileName, real **buffer ) -void randCloud( real **randXYZ, int numClouds ) +void randCloud( real **randXYZ, const int numClouds ) { + const real Lx = amr->BoxSize[0]; + const real Ly = amr->BoxSize[1]; + const real Lz = amr->BoxSize[2]; + + // TODO: should this be a const from input? how to decided this parameter? + const real z_max = Lz*0.5 + 3.0; + *randXYZ = (real*)malloc( 3*numClouds*sizeof(real) ); - for ( int i=0; i<3*numClouds; i+=3 ) { - (*randXYZ)[i+0] = (real)rand() / (real)RAND_MAX*amr->BoxSize[0]; - (*randXYZ)[i+1] = (real)rand() / (real)RAND_MAX*amr->BoxSize[1]; - (*randXYZ)[i+2] = (real)rand() / (real)RAND_MAX*amr->BoxSize[2]; + for (int i=0; i<3*numClouds; i+=3) + { + (*randXYZ)[i+0] = (real)rand() / (real)RAND_MAX * Lx; + (*randXYZ)[i+1] = (real)rand() / (real)RAND_MAX * Ly; + (*randXYZ)[i+2] = (real)rand() / (real)RAND_MAX * Lz; - if ( (*randXYZ)[i+2] < amr->BoxSize[2]*0.5+3.0 ) { - i-=3; - } - } + if ( (*randXYZ)[i+2] < z_max ) i-=3; + } // for (int i=0; i<3*numClouds; i+=3) } // FUNCTION : randCloud -bool checkInsideClouds( real *randXYZ, int numClouds, real x, real y, real z, real *cloudCenter ) +bool checkInsideClouds( const real *randXYZ, const int numClouds, const real x, const real y, const real z, real *cloudCenter ) { real distance; - for ( int i=0; i<3*numClouds; i+=3 ) { + for (int i=0; i<3*numClouds; i+=3) + { distance = SQRT( SQR( x-randXYZ[i+0] ) + SQR( y-randXYZ[i+1] ) + SQR( z-randXYZ[i+2] ) ); - if ( distance < radiusCloud ) { - cloudCenter[0] = randXYZ[i+0]; - cloudCenter[1] = randXYZ[i+1]; - cloudCenter[2] = randXYZ[i+2]; - return true; - } + + if ( distance >= R_CLOUD ) continue; + + for (int d=0; d<3; d++) cloudCenter[d] = randXYZ[i+d]; + return true; } return false; } // FUNCTION : checkInsideClouds @@ -622,37 +629,39 @@ void SetArrayDisk() { // Reading table for interpolations in SetGridIC() char TableFileName[] = "UM_IC"; - ReadBinFile( TableFileName, &buffer ); + ReadBinFile( TableFileName, &BUFFER ); - int headerSize = (int)buffer[0]; + const int headerSize = (int)BUFFER[0]; Header_disk = (real*)malloc( (size_t)headerSize * sizeof(real) ); - memcpy( Header_disk, buffer, (size_t)headerSize*sizeof(real) ); + memcpy( Header_disk, BUFFER, (size_t)headerSize * sizeof(real) ); ParticleMass = Header_disk[8] * Header_disk[9]; + real Lx = Header_disk[12]; + real Ly = Header_disk[13]; + real Lz = Header_disk[14]; + interfaceHeight = Header_disk[17]; - interfaceHeight *= Const_kpc/UNIT_L; + interfaceHeight *= Const_kpc / UNIT_L; int Nx = (int)Header_disk[22]; int Ny = (int)Header_disk[23]; int Nz = (int)Header_disk[24]; - if ( 5*Nx*Ny*Nz > INT_MAX ) { printf("integer overflow!!\n"); exit(0); } + const int numGhost = (int)Header_disk[25]; - real Lx = Header_disk[12]; - real Ly = Header_disk[13]; - real Lz = Header_disk[14]; - int numGhost = (int)Header_disk[25]; + real dx = Lx / (real)Nx; + real dy = Lx / (real)Nx; + real dz = Lx / (real)Nx; - real dx = Lx/(real)Nx; - real dy = Lx/(real)Nx; - real dz = Lx/(real)Nx; + const int NX = Nx + 2*numGhost; + const int NY = Ny + 2*numGhost; + const int NZ = Nz + 2*numGhost; + const int N_TOT = NX * NY * NZ; - int NX = Nx+2*numGhost; - int NY = Ny+2*numGhost; - int NZ = Nz+2*numGhost; + if ( 5*N_TOT > INT_MAX ) Aux_Error( ERROR_INFO, "Integer overflow (5*N_TOT > INT_MAX), N_TOT=NX*NY*NZ, NX=%d, NY=%d, NZ=%d, INT_MAX=%d!! \n",NX, NY, NZ, INT_MAX); if ( Step == 0 ) { @@ -666,31 +675,27 @@ void SetArrayDisk() Y_disk = (real*)calloc( (size_t)NY, sizeof(real) ); Z_disk = (real*)calloc( (size_t)NZ, sizeof(real) ); - if ( X_disk == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0); } - if ( Y_disk == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0); } - if ( Z_disk == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0); } + if ( X_disk == NULL ) Aux_Error( ERROR_INFO, "X_disk is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); + if ( Y_disk == NULL ) Aux_Error( ERROR_INFO, "Y_disk is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); + if ( Z_disk == NULL ) Aux_Error( ERROR_INFO, "Z_disk is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); real *Ptr; - - Ptr = buffer + headerSize; - - for (int c=0; c<5*NX*NY*NZ; c++) { - int i, j, k, cc; - - cc = c%(NX*NY*NZ); - i = (cc - cc%(NY*NZ)) / (NY*NZ); - j = ((cc - cc%NZ) / NZ) % NY; - k = cc%NZ; - - if ( 0 <= c && c < NX*NY*NZ ) Rhoo_disk[i][j][k] = Ptr[c]; - if ( NX*NY*NZ <= c && c < 2*NX*NY*NZ ) VelX_disk[i][j][k] = Ptr[c]; - if ( 2*NX*NY*NZ <= c && c < 3*NX*NY*NZ ) VelY_disk[i][j][k] = Ptr[c]; - if ( 3*NX*NY*NZ <= c && c < 4*NX*NY*NZ ) VelZ_disk[i][j][k] = Ptr[c]; - if ( 4*NX*NY*NZ <= c && c < 5*NX*NY*NZ ) Pres_disk[i][j][k] = Ptr[c]; - + Ptr = BUFFER + headerSize; + + for (int c=0; c<5*N_TOT; c++) { + const int cc = c%(N_TOT); + const int i = (cc - cc%(NY*NZ)) / (NY*NZ); + const int j = ((cc - cc%NZ) / NZ) % NY; + const int k = cc%NZ; + + if ( 0 <= c && c < N_TOT ) Rhoo_disk[i][j][k] = Ptr[c]; + if ( N_TOT <= c && c < 2*N_TOT ) VelX_disk[i][j][k] = Ptr[c]; + if ( 2*N_TOT <= c && c < 3*N_TOT ) VelY_disk[i][j][k] = Ptr[c]; + if ( 3*N_TOT <= c && c < 4*N_TOT ) VelZ_disk[i][j][k] = Ptr[c]; + if ( 4*N_TOT <= c && c < 5*N_TOT ) Pres_disk[i][j][k] = Ptr[c]; } - Ptr += 5*NX*NY*NZ; + Ptr += 5*N_TOT; for (int c=0; c INT_MAX) {printf("integer overflow!!\n"); exit(0);} + const int numGhost = (int)Header_hvc[25]; - real Lx = Header_hvc[12]; - real Ly = Header_hvc[13]; - real Lz = Header_hvc[14]; - int numGhost = (int)Header_hvc[25]; + real dx = Lx / (real)Nx; + real dy = Lx / (real)Nx; + real dz = Lx / (real)Nx; - real dx = Lx/(real)Nx; - real dy = Lx/(real)Nx; - real dz = Lx/(real)Nx; + const int NX = Nx + 2*numGhost; + const int NY = Ny + 2*numGhost; + const int NZ = Nz + 2*numGhost; + const int N_TOT = NX * NY * NZ; - int NX = Nx+2*numGhost; - int NY = Ny+2*numGhost; - int NZ = Nz+2*numGhost; + if ( 5*N_TOT > INT_MAX ) Aux_Error( ERROR_INFO, "Integer overflow (5*N_TOT > INT_MAX), N_TOT=NX*NY*NZ, NX=%d, NY=%d, NZ=%d, INT_MAX=%d!! \n",NX, NY, NZ, INT_MAX); - if (Step == 0) + if ( Step == 0 ) { Rhoo_hvc = (real***)calloc_3d_array( (size_t)NX, (size_t)NY, (size_t)NZ, sizeof(real) ); VelX_hvc = (real***)calloc_3d_array( (size_t)NX, (size_t)NY, (size_t)NZ, sizeof(real) ); @@ -755,31 +761,28 @@ void SetArrayHVC() Y_hvc = (real*)calloc( (size_t)NY,sizeof(real) ); Z_hvc = (real*)calloc( (size_t)NZ,sizeof(real) ); - if ( X_hvc == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0); } - if ( Y_hvc == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0); } - if ( Z_hvc == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0); } + if ( X_hvc == NULL ) Aux_Error( ERROR_INFO, "X_hvc is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); + if ( Y_hvc == NULL ) Aux_Error( ERROR_INFO, "Y_hvc is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); + if ( Z_hvc == NULL ) Aux_Error( ERROR_INFO, "Z_hvc is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); real *Ptr; - Ptr = buffer + headerSize; - - for ( int c=0; c<5*NX*NY*NZ; c++ ) { - int i, j, k, cc; - - cc = c%(NX*NY*NZ); - i = (cc - cc%(NY*NZ)) / (NY*NZ); - j = ((cc - cc%NZ) / NZ) % NY; - k = cc%NZ; + Ptr = BUFFER + headerSize; - if ( 0 <= c && c < NX*NY*NZ ) Rhoo_hvc[i][j][k] = Ptr[c]; - if ( NX*NY*NZ <= c && c < 2*NX*NY*NZ ) VelX_hvc[i][j][k] = Ptr[c]; - if ( 2*NX*NY*NZ <= c && c < 3*NX*NY*NZ ) VelY_hvc[i][j][k] = Ptr[c]; - if ( 3*NX*NY*NZ <= c && c < 4*NX*NY*NZ ) VelZ_hvc[i][j][k] = Ptr[c]; - if ( 4*NX*NY*NZ <= c && c < 5*NX*NY*NZ ) Pres_hvc[i][j][k] = Ptr[c]; + for ( int c=0; c<5*N_TOT; c++ ) { + const int cc = c%(N_TOT); + const int i = (cc - cc%(NY*NZ)) / (NY*NZ); + const int j = ((cc - cc%NZ) / NZ) % NY; + const int k = cc%NZ; + if ( 0 <= c && c < N_TOT ) Rhoo_hvc[i][j][k] = Ptr[c]; + if ( N_TOT <= c && c < 2*N_TOT ) VelX_hvc[i][j][k] = Ptr[c]; + if ( 2*N_TOT <= c && c < 3*N_TOT ) VelY_hvc[i][j][k] = Ptr[c]; + if ( 3*N_TOT <= c && c < 4*N_TOT ) VelZ_hvc[i][j][k] = Ptr[c]; + if ( 4*N_TOT <= c && c < 5*N_TOT ) Pres_hvc[i][j][k] = Ptr[c]; } - Ptr += 5*NX*NY*NZ; + Ptr += 5*N_TOT; for (int c=0; c NX-2){ printf("x=%e is out of range! XYZ[0][0]=%e, XYZ[0][%d]=%e\n", x, XYZ[0][0], NX-1, XYZ[0][NX-1]); exit(0); } - if (Jdx<0 || Jdx > NY-2){ printf("y=%e is out of range! XYZ[1][1]=%e, XYZ[1][%d]=%e\n", y, XYZ[1][0], NY-1, XYZ[1][NY-1]); exit(0); } - if (Kdx<0 || Kdx > NZ-2){ printf("z=%e is out of range! XYZ[2][2]=%e, XYZ[2][%d]=%e\n", z, XYZ[2][0], NZ-1, XYZ[2][NZ-1]); exit(0); } - - - real Vertex000[5] = { Pri_input[0][Idx ][Jdx ][Kdx ], Pri_input[1][Idx ][Jdx ][Kdx ], Pri_input[2][Idx ][Jdx ][Kdx ], Pri_input[3][Idx ][Jdx ][Kdx ], Pri_input[4][Idx ][Jdx ][Kdx ] }; - real Vertex001[5] = { Pri_input[0][Idx ][Jdx ][Kdx+1], Pri_input[1][Idx ][Jdx ][Kdx+1], Pri_input[2][Idx ][Jdx ][Kdx+1], Pri_input[3][Idx ][Jdx ][Kdx+1], Pri_input[4][Idx ][Jdx ][Kdx+1] }; - real Vertex010[5] = { Pri_input[0][Idx ][Jdx+1][Kdx ], Pri_input[1][Idx ][Jdx+1][Kdx ], Pri_input[2][Idx ][Jdx+1][Kdx ], Pri_input[3][Idx ][Jdx+1][Kdx ], Pri_input[4][Idx ][Jdx+1][Kdx ] }; - real Vertex100[5] = { Pri_input[0][Idx+1][Jdx ][Kdx ], Pri_input[1][Idx+1][Jdx ][Kdx ], Pri_input[2][Idx+1][Jdx ][Kdx ], Pri_input[3][Idx+1][Jdx ][Kdx ], Pri_input[4][Idx+1][Jdx ][Kdx ] }; - real Vertex011[5] = { Pri_input[0][Idx ][Jdx+1][Kdx+1], Pri_input[1][Idx ][Jdx+1][Kdx+1], Pri_input[2][Idx ][Jdx+1][Kdx+1], Pri_input[3][Idx ][Jdx+1][Kdx+1], Pri_input[4][Idx ][Jdx+1][Kdx+1] }; - real Vertex101[5] = { Pri_input[0][Idx+1][Jdx ][Kdx+1], Pri_input[1][Idx+1][Jdx ][Kdx+1], Pri_input[2][Idx+1][Jdx ][Kdx+1], Pri_input[3][Idx+1][Jdx ][Kdx+1], Pri_input[4][Idx+1][Jdx ][Kdx+1] }; - real Vertex110[5] = { Pri_input[0][Idx+1][Jdx+1][Kdx ], Pri_input[1][Idx+1][Jdx+1][Kdx ], Pri_input[2][Idx+1][Jdx+1][Kdx ], Pri_input[3][Idx+1][Jdx+1][Kdx ], Pri_input[4][Idx+1][Jdx+1][Kdx ] }; - real Vertex111[5] = { Pri_input[0][Idx+1][Jdx+1][Kdx+1], Pri_input[1][Idx+1][Jdx+1][Kdx+1], Pri_input[2][Idx+1][Jdx+1][Kdx+1], Pri_input[3][Idx+1][Jdx+1][Kdx+1], Pri_input[4][Idx+1][Jdx+1][Kdx+1] }; - - bool Unphy = false; - - Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex000, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); - Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex001, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); - Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex010, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); - Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex100, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); - Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex011, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); - Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex110, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); - Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex101, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); - Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex111, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); - - if ( Unphy ) { - printf("Idx=%d, Jdx=%d, Kdx=%d\n", Idx, Jdx, Kdx); - printf("x=%e, y=%e, z=%e\n", x, y, z); - exit(0); - } + real *Header = (disk) ? Header_disk : Header_hvc; - real xyz000[3] = {XYZ[0][Idx], XYZ[1][Jdx], XYZ[2][Kdx]}; + real xyz[3] = {x, y, z}; - for ( int v=0; v<5; v++ ) { - real FieldAtVertices[8] = { Vertex000[v], Vertex001[v], Vertex010[v], Vertex100[v], Vertex011[v], Vertex101[v], Vertex110[v], Vertex111[v] }; + const int numGhost = (int)Header[25]; - Pri_output[v] = TrilinearInterpolation( FieldAtVertices, xyz000, dxyz, xyz ); - } +// N{X,Y,Z} = N{x,y,z} + 2*N_ghost + const int NX = (int)Header[22] + 2*numGhost; + const int NY = (int)Header[23] + 2*numGhost; + const int NZ = (int)Header[24] + 2*numGhost; + + real dxyz[3] = { Header[26], Header[27], Header[28] }; // {dx, dy, dz} + + const int Idx = Mis_BinarySearch_Real( XYZ[0], 0, NX-1, x ); + const int Jdx = Mis_BinarySearch_Real( XYZ[1], 0, NY-1, y ); + const int Kdx = Mis_BinarySearch_Real( XYZ[2], 0, NZ-1, z ); - //free_3d_array((void***)Rhoo_disk); - //free_3d_array((void***)VelX_disk); - //free_3d_array((void***)VelY_disk); - //free_3d_array((void***)VelZ_disk); - //free_3d_array((void***)Pres_disk); - //free(X_disk); - //free(Y_disk); - //free(Z_disk); - //free(buffer); + if ( Idx < 0 || Idx > NX-2 ) Aux_Error( ERROR_INFO, "x=%e is out of range! XYZ[0][0]=%e, XYZ[0][%d]=%e\n", x, XYZ[0][0], NX-1, XYZ[0][NX-1] ); + if ( Jdx < 0 || Jdx > NY-2 ) Aux_Error( ERROR_INFO, "y=%e is out of range! XYZ[1][1]=%e, XYZ[1][%d]=%e\n", y, XYZ[1][0], NY-1, XYZ[1][NY-1] ); + if ( Kdx < 0 || Kdx > NZ-2 ) Aux_Error( ERROR_INFO, "z=%e is out of range! XYZ[2][2]=%e, XYZ[2][%d]=%e\n", z, XYZ[2][0], NZ-1, XYZ[2][NZ-1] ); + real Vertices[8][5]; + for (int v=0; v<5; v++) + { + Vertices[0][v] = Pri_input[v][Idx ][Jdx ][Kdx ]; + Vertices[1][v] = Pri_input[v][Idx ][Jdx ][Kdx+1]; + Vertices[2][v] = Pri_input[v][Idx ][Jdx+1][Kdx ]; + Vertices[3][v] = Pri_input[v][Idx+1][Jdx ][Kdx ]; + Vertices[4][v] = Pri_input[v][Idx ][Jdx+1][Kdx+1]; + Vertices[5][v] = Pri_input[v][Idx+1][Jdx ][Kdx+1]; + Vertices[6][v] = Pri_input[v][Idx+1][Jdx+1][Kdx ]; + Vertices[7][v] = Pri_input[v][Idx+1][Jdx+1][Kdx+1]; + } + +// TODO: One the above is confirmed to be correct, remove the original code + // real Vertex000[5] = { Pri_input[0][Idx ][Jdx ][Kdx ], Pri_input[1][Idx ][Jdx ][Kdx ], Pri_input[2][Idx ][Jdx ][Kdx ], Pri_input[3][Idx ][Jdx ][Kdx ], Pri_input[4][Idx ][Jdx ][Kdx ] }; + // real Vertex001[5] = { Pri_input[0][Idx ][Jdx ][Kdx+1], Pri_input[1][Idx ][Jdx ][Kdx+1], Pri_input[2][Idx ][Jdx ][Kdx+1], Pri_input[3][Idx ][Jdx ][Kdx+1], Pri_input[4][Idx ][Jdx ][Kdx+1] }; + // real Vertex010[5] = { Pri_input[0][Idx ][Jdx+1][Kdx ], Pri_input[1][Idx ][Jdx+1][Kdx ], Pri_input[2][Idx ][Jdx+1][Kdx ], Pri_input[3][Idx ][Jdx+1][Kdx ], Pri_input[4][Idx ][Jdx+1][Kdx ] }; + // real Vertex100[5] = { Pri_input[0][Idx+1][Jdx ][Kdx ], Pri_input[1][Idx+1][Jdx ][Kdx ], Pri_input[2][Idx+1][Jdx ][Kdx ], Pri_input[3][Idx+1][Jdx ][Kdx ], Pri_input[4][Idx+1][Jdx ][Kdx ] }; + // real Vertex011[5] = { Pri_input[0][Idx ][Jdx+1][Kdx+1], Pri_input[1][Idx ][Jdx+1][Kdx+1], Pri_input[2][Idx ][Jdx+1][Kdx+1], Pri_input[3][Idx ][Jdx+1][Kdx+1], Pri_input[4][Idx ][Jdx+1][Kdx+1] }; + // real Vertex101[5] = { Pri_input[0][Idx+1][Jdx ][Kdx+1], Pri_input[1][Idx+1][Jdx ][Kdx+1], Pri_input[2][Idx+1][Jdx ][Kdx+1], Pri_input[3][Idx+1][Jdx ][Kdx+1], Pri_input[4][Idx+1][Jdx ][Kdx+1] }; + // real Vertex110[5] = { Pri_input[0][Idx+1][Jdx+1][Kdx ], Pri_input[1][Idx+1][Jdx+1][Kdx ], Pri_input[2][Idx+1][Jdx+1][Kdx ], Pri_input[3][Idx+1][Jdx+1][Kdx ], Pri_input[4][Idx+1][Jdx+1][Kdx ] }; + // real Vertex111[5] = { Pri_input[0][Idx+1][Jdx+1][Kdx+1], Pri_input[1][Idx+1][Jdx+1][Kdx+1], Pri_input[2][Idx+1][Jdx+1][Kdx+1], Pri_input[3][Idx+1][Jdx+1][Kdx+1], Pri_input[4][Idx+1][Jdx+1][Kdx+1] }; + + bool Unphy = false; + for (int i=0; i<8; i++) + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertices[i], NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + + // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex000, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex001, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex010, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex100, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex011, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex110, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex101, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex111, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + + // TODO: should we raise an error? Original exit(0) + if ( Unphy ) Aux_Error( ERROR_INFO, "Unphysical near : Idx=%d, Jdx=%d, Kdx=%d, x=%e, y=%e, z=%e !!\n", Idx, Jdx, Kdx, x, y, z ); + + real xyz000[3] = {XYZ[0][Idx], XYZ[1][Jdx], XYZ[2][Kdx] }; + real FieldAtVertices[8]; + + for ( int v=0; v<5; v++ ) { + for (int i=0; i<8; i++) FieldAtVertices[i] = Vertices[i][v]; + // real FieldAtVertices[8] = { Vertex000[v], Vertex001[v], Vertex010[v], Vertex100[v], Vertex011[v], Vertex101[v], Vertex110[v], Vertex111[v] }; + Pri_output[v] = TrilinearInterpolation( FieldAtVertices, xyz000, dxyz, xyz ); + } + + //free_3d_array((void***)Rhoo_disk); + //free_3d_array((void***)VelX_disk); + //free_3d_array((void***)VelY_disk); + //free_3d_array((void***)VelZ_disk); + //free_3d_array((void***)Pres_disk); + //free(X_disk); + //free(Y_disk); + //free(Z_disk); + //free(BUFFER); } // FUNCTION : Interpolation_UM_IC #ifdef GRAVITY -real IsothermalSlab_Pot( real z ) +real IsothermalSlab_Pot( const real z ) { real Pot, Log; // 1. isothermal slab Pot = 2.0 * M_PI * NEWTON_G * IsothermalSlab_PeakDens; - Pot /= SQR(IsothermalSlab_VelocityDispersion); + Pot /= SQR( IsothermalSlab_VelocityDispersion ); Pot = log( cosh( z*sqrt(Pot) ) ); - Pot *= 2.0 * SQR(IsothermalSlab_VelocityDispersion); + Pot *= 2.0 * SQR( IsothermalSlab_VelocityDispersion ); // 2. log potential Log = SQR(v_halo) * log( z*z + SQR(distance_h) ); @@ -922,6 +931,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co real ***Pri_disk_input[5] = { Rhoo_disk, VelX_disk, VelY_disk, VelZ_disk, Pres_disk }; real *** Pri_hvc_input[5] = { Rhoo_hvc, VelX_hvc, VelY_hvc, VelZ_hvc, Pres_hvc }; +// TODO: Jet_Ambient == 1 is missing if ( Jet_Ambient == 0 ) // uniform ambient { Pri[0] = (real)Amb_UniformDens; @@ -937,7 +947,8 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, - EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) exit(0); + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) + Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); # if (NCOMP_PASSIVE_USER > 0) fluid[Passive_0000] = fluid[DENS]; @@ -945,7 +956,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co fluid[Passive_0002] = 0.0; # endif # ifdef COSMIC_RAY - fluid[CRAY] = (real)0.333333333 * Amb_CR_Engy; + fluid[CRAY] = Amb_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); # endif } else if ( Jet_Ambient == 2 ) // cold disk in stratified ambient @@ -959,7 +970,8 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, - EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) exit(0); + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) + Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); if ( Pri[4]/Pri[0] > criticalTemp ) Pri[0] = Pri[4] / ambientTemperature; @@ -975,21 +987,19 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co # endif # ifdef COSMIC_RAY - fluid[CRAY] = (real)0.333333333 * Amb_CR_Engy; + fluid[CRAY] = Amb_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); # endif } else // if ( fabs(zc) < interfaceHeight ) { real Dens_gDisk_ambient, PotAtZ0, ambientDens; - PotAtZ0 = IsothermalSlab_Pot(interfaceHeight); + PotAtZ0 = IsothermalSlab_Pot( interfaceHeight ); Dens_gDisk_ambient = ambientTemperature / gasDiskTemperature; Dens_gDisk_ambient *= exp( PotAtZ0 * (ambientTemperature-gasDiskTemperature) / (ambientTemperature*gasDiskTemperature) ); - if ( Dens_gDisk_ambient > HUGE_NUMBER || Dens_gDisk_ambient < -HUGE_NUMBER ) { - printf( "Dens_gDisk_ambient=%e! %s: %d\n", Dens_gDisk_ambient, __FUNCTION__, __LINE__ ); - exit(0); - } + if ( Dens_gDisk_ambient > HUGE_NUMBER || Dens_gDisk_ambient < -HUGE_NUMBER ) + Aux_Error( ERROR_INFO, "(Dens_gDisk_ambient = %e) not in [-HUGE_NUMBER, HUGE_NUMBER] !! %s: %d\n", Dens_gDisk_ambient, __FUNCTION__, __LINE__ ); real ambientPeakDens = gasDiskPeakDens / Dens_gDisk_ambient; @@ -1009,7 +1019,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co real cloudCenter[3]; - if ( checkInsideClouds( randXYZ, numClouds, x, y, z, cloudCenter ) ) + if ( checkInsideClouds( randXYZ, N_CLOUDS, x, y, z, cloudCenter ) ) { real Pri_hvc_output[5]; @@ -1020,7 +1030,8 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri_hvc_output, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, - EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) exit(0); + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) + Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); Pri[0] = Pri_hvc_output[0]*0.05*Const_mp/UNIT_D; Pri[1] = 0.0; @@ -1035,7 +1046,8 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, - EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) exit(0); + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) + Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); # if (NCOMP_PASSIVE_USER > 0) fluid[Passive_0000] = 0.0; @@ -1059,7 +1071,8 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, - EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) exit(0); + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) + Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); Hydro_Pri2Con( Pri, fluid, false, PassiveNorm_NVar, PassiveNorm_VarIdx, EoS_DensPres2Eint_CPUPtr, EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, @@ -1084,10 +1097,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co Dens_gDisk_ambient *= exp( PotAtZ0*(ambientTemperature-gasDiskTemperature)/(ambientTemperature*gasDiskTemperature) ); if ( Dens_gDisk_ambient > HUGE_NUMBER || Dens_gDisk_ambient < -HUGE_NUMBER ) - { - printf( "Dens_gDisk_ambient=%e! %s: %d\n", Dens_gDisk_ambient, __FUNCTION__, __LINE__ ); - exit(0); - } + Aux_Error( ERROR_INFO, "(Dens_gDisk_ambient = %e) not in [-HUGE_NUMBER, HUGE_NUMBER] !! %s: %d\n", Dens_gDisk_ambient, __FUNCTION__, __LINE__ ); real ambientPeakDens = gasDiskPeakDens / Dens_gDisk_ambient; @@ -1103,7 +1113,8 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, - EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) exit(0); + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) + Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); Hydro_Pri2Con( Pri, fluid, false, PassiveNorm_NVar, PassiveNorm_VarIdx, EoS_DensPres2Eint_CPUPtr, EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, @@ -1117,7 +1128,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co # endif # ifdef COSMIC_RAY - fluid[CRAY] = (real)0.333333333*Amb_CR_Engy; + fluid[CRAY] = Amb_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); # endif } // if ( fabs(zc) < interfaceHeight ) ... else ... @@ -1163,7 +1174,8 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, - EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) exit(0); + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) + Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); # if (NCOMP_PASSIVE_USER > 0) fluid[Passive_0000] = 0.0; @@ -1172,7 +1184,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co # endif # ifdef COSMIC_RAY - fluid[CRAY] = (real)0.333333333*Amb_CR_Engy; + fluid[CRAY] = Amb_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); # endif # endif // #ifdef GRAVITY @@ -1262,21 +1274,22 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const InsideLowerCone &= -Jet_HalfHeight <= xp[2] && xp[2] <= 0.0; if ( Jet_HalfOpeningAngle != 0.0 ) { - InsideUpperCone &= SQR(xp[0]) + SQR(xp[1]) + SQR(xp[2] + Jet_Radius/tan(Jet_HalfOpeningAngle)) - <= SQR(Jet_HalfHeight+Jet_Radius/tan(Jet_HalfOpeningAngle)); + InsideUpperCone &= SQR(xp[0]) + SQR(xp[1]) + SQR(xp[2] + Jet_Radius/tan(Jet_HalfOpeningAngle)) + <= SQR(Jet_HalfHeight+Jet_Radius/tan(Jet_HalfOpeningAngle)); - InsideUpperCone &= 0.0 <= xp[2]; + InsideUpperCone &= 0.0 <= xp[2]; - InsideLowerCone &= SQR(xp[0]) + SQR(xp[1]) + SQR(xp[2] - Jet_Radius/tan(Jet_HalfOpeningAngle)) - <= SQR(Jet_HalfHeight+Jet_Radius/tan(Jet_HalfOpeningAngle)); + InsideLowerCone &= SQR(xp[0]) + SQR(xp[1]) + SQR(xp[2] - Jet_Radius/tan(Jet_HalfOpeningAngle)) + <= SQR(Jet_HalfHeight+Jet_Radius/tan(Jet_HalfOpeningAngle)); - InsideLowerCone &= xp[2] <= 0.0; + InsideLowerCone &= xp[2] <= 0.0; } else { - InsideUpperCone &= 0.0 <= xp[2] && xp[2] <= Jet_HalfHeight; - InsideLowerCone &= -Jet_HalfHeight <= xp[2] && xp[2] <= 0.0; + InsideUpperCone &= 0.0 <= xp[2] && xp[2] <= Jet_HalfHeight; + InsideLowerCone &= -Jet_HalfHeight <= xp[2] && xp[2] <= 0.0; } // if ( Jet_HalfOpeningAngle != 0.0 ) ... else ... // set fluid variable inside source +// TODO: try to define Jet_upper/lower to avoid the ugly code if ( ( InsideUpperCone && ( Jet_Fire == 1 || Jet_Fire == 3 ) ) || ( InsideLowerCone && ( Jet_Fire == 2 || Jet_Fire == 3 ) ) ) { @@ -1338,11 +1351,11 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const # if (NCOMP_PASSIVE_USER > 0) fluid[Passive_0000] = 0.0; fluid[Passive_0001] = fluid[DENS]; - fluid[Passive_0002] = (real)0.333333333*Jet_Src_CR_Engy; + fluid[Passive_0002] = Jet_Src_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); # endif # ifdef COSMIC_RAY - fluid[CRAY] = (real)0.333333333*Jet_Src_CR_Engy; + fluid[CRAY] = Jet_Src_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); # endif return true; @@ -1385,11 +1398,11 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const # if (NCOMP_PASSIVE_USER > 0) fluid[Passive_0000] = 0.0; fluid[Passive_0001] = fluid[DENS]; - fluid[Passive_0002] = (real)0.333333333*Jet_Src_CR_Engy; + fluid[Passive_0002] = Jet_Src_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); # endif # ifdef COSMIC_RAY - fluid[CRAY] = (real)0.333333333*Jet_Src_CR_Engy; + fluid[CRAY] = Jet_Src_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); # endif return true; @@ -1405,31 +1418,28 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const // (true/false): if the target cell (is/is not) within the region to be refined static bool Flag_Region( const int i, const int j, const int k, const int lv, const int PID ) { - if ( Step > 0 ) - { - const double dh = amr->dh[lv]; // grid size - const double Pos[3] = { amr->patch[0][lv][PID]->EdgeL[0] + (i+0.5)*dh, // x,y,z position - amr->patch[0][lv][PID]->EdgeL[1] + (j+0.5)*dh, - amr->patch[0][lv][PID]->EdgeL[2] + (k+0.5)*dh }; - const double Center[3] = { 0.5*amr->BoxSize[0], - 0.5*amr->BoxSize[1], - 0.5*amr->BoxSize[2] }; - const double dr[3] = { Pos[0]-Center[0]-Jet_CenOffset[0], - Pos[1]-Center[1]-Jet_CenOffset[1], - Pos[2]-Center[2]-Jet_CenOffset[2] }; - const double R = sqrt( SQR(dr[0]) + SQR(dr[1]) ); - //const double r = sqrt( SQR(dr[0]) + SQR(dr[1]) + SQR(dr[2]) ); - //const double ShellThickness = 16*amr->dh[3]; - - bool Flag = false; - Flag = R > gasDisk_highResRadius && lv > gasDisk_lowRes_LEVEL && fabs(dr[2]) < 2.0*interfaceHeight; - - if ( Flag ) return false; - else return true; - } else // if ( Step > 0 ) - { - return true; - } // if ( Step > 0 ) ... else ... + if ( Step == 0 ) return true; // TODO: figure why refine at first, or why the code is like this + + const double dh = amr->dh[lv]; // grid size + const double Pos[3] = { amr->patch[0][lv][PID]->EdgeL[0] + (i+0.5)*dh, // x,y,z position + amr->patch[0][lv][PID]->EdgeL[1] + (j+0.5)*dh, + amr->patch[0][lv][PID]->EdgeL[2] + (k+0.5)*dh }; + const double Center[3] = { 0.5*amr->BoxSize[0], + 0.5*amr->BoxSize[1], + 0.5*amr->BoxSize[2] }; + const double dr[3] = { Pos[0]-Center[0]-Jet_CenOffset[0], + Pos[1]-Center[1]-Jet_CenOffset[1], + Pos[2]-Center[2]-Jet_CenOffset[2] }; + const double R = sqrt( SQR(dr[0]) + SQR(dr[1]) ); + +// TODO the last condition seems weird + bool Flag = R > gasDisk_highResRadius || lv > gasDisk_lowRes_LEVEL || fabs(dr[2]) < 2.0*interfaceHeight; + + return Flag; +// original flag. TODO: once the question up is solved, remove it +// bool Flag = R > gasDisk_highResRadius && lv > gasDisk_lowRes_LEVEL && fabs(dr[2]) < 2.0*interfaceHeight; +// if ( Flag ) return false; +// else return true; } // FUNCTION : Flag_Region @@ -1446,29 +1456,23 @@ bool Flag_User( const int i, const int j, const int k, const int lv, const int P const double dR[3] = { Pos[0]-Center[0], Pos[1]-Center[1], Pos[2]-Center[2] }; const double R = sqrt( SQR(dR[0]) + SQR(dR[1]) + SQR(dR[2]) ); - bool Flag, Src; - + bool Flag, Src = R <= dh*1.8; if ( Jet_Ambient != 4 ) { - bool Disk; - Disk = fabs(dR[2]) <= dh*1.8; - - if ( lv >= jetSrc_lowRes_LEVEL ) Disk = false; - - Src = R <= dh*1.8; - Flag = Src || Disk; - } else // if ( Jet_Ambient != 4 ) + bool Disk = fabs(dR[2]) <= dh*1.8; + if (lv >= jetSrc_lowRes_LEVEL) Disk = false; + Flag = Src || Disk; + } + else { - Src = R <= dh*1.8; - Flag = Src; - } // if ( Jet_Ambient != 4 ) ... else ... - + Flag = Src; + } return Flag; } // FUNCTION : Flag_User -void CartesianRotate( double x[], double theta, double phi, bool inverse ) +void CartesianRotate( double x[], const double theta, const double phi, const bool inverse ) { double xp[3]; @@ -1484,7 +1488,7 @@ void CartesianRotate( double x[], double theta, double phi, bool inverse ) xp[2] = + sin(theta)*cos(phi)*x[0] + sin(theta)*sin(phi)*x[1] + cos(theta)* x[2]; } - for (int i=0;i<3;i++) x[i] = xp[i]; + for (int i=0; i<3; i++) x[i] = xp[i]; } // FUNCTION : CartesianRotate @@ -1510,12 +1514,12 @@ void CartesianRotate( double x[], double theta, double phi, bool inverse ) //------------------------------------------------------------------------------------------------------- double Mis_GetTimeStep_User( const int lv, const double dTime_dt ) { - double Jet_SrcGamma = sqrt(1.0 + SQR(Jet_SrcVel)); - double Jet_Src3Vel = Jet_SrcVel / Jet_SrcGamma; + const double Jet_SrcGamma = sqrt(1.0 + SQR(Jet_SrcVel)); + const double Jet_Src3Vel = Jet_SrcVel / Jet_SrcGamma; - double dh = amr->dh[MAX_LEVEL]; + const double dh = amr->dh[MAX_LEVEL]; - double Cs = 0.182574; // 1.0/sqrt(3); + const double Cs = 0.182574; // 1.0/sqrt(3); // TODO: not enough digit for double double dt_user = DT__FLUID * dh / (Jet_Src3Vel+3.0*Cs); return dt_user; diff --git a/src/TestProblem/Hydro/Jet/Interpolation_UM_IC.cpp b/src/TestProblem/Hydro/Jet/Interpolation_UM_IC.cpp index a30b53dc3e..4d5c84ea01 100644 --- a/src/TestProblem/Hydro/Jet/Interpolation_UM_IC.cpp +++ b/src/TestProblem/Hydro/Jet/Interpolation_UM_IC.cpp @@ -6,7 +6,7 @@ /*----------------------------------------------------------------------------*/ /*! \fn void*** calloc_3d_array(size_t nt, size_t nr, size_t nc, size_t size) * * * \brief Construct 3D array = array[nt][nr][nc] */ -void ***calloc_3d_array (size_t nt, size_t nr, size_t nc, size_t size) +void ***calloc_3d_array( size_t nt, size_t nr, size_t nc, size_t size ) { void ***array; size_t i, j; @@ -51,54 +51,55 @@ for (i = 1; i < nt; i++) } return array; -} +} // FUNCTION : ***calloc_3d_array -void free_3d_array(void ***array){ - free(array[0][0]); - free(array[0]); - free(array); -} -real TrilinearInterpolation(real *FieldAtVertices, real *xyz000, real *dxyz, real *xyz) +void free_3d_array( void ***array ){ + free(array[0][0]); + free(array[0]); + free(array); +} // FUNCTION : free_3d_array + + + +//------------------------------------------------------------------------------------------------------- +// Function : TrilinearInterpolation +// Description : +// +// Note : +// +// Parameter : FieldAtVertices : the field values at near-by coordinates [2*2*2] +// xyz000 : the right coordinates of x/y/z +// dxyz : the width/distance of x/y/z +// xyz : the coordinates of x/y/z need to be interpolation +// +// Return : c +//------------------------------------------------------------------------------------------------------- +real TrilinearInterpolation( real *FieldAtVertices, real *xyz000, real *dxyz, real *xyz ) { - real x1, y1, z1, x0, y0, z0, xd, yd, zd, x, y, z; - real c000, c001, c010, c100, c011, c101, c110, c111, c00, c01, c10, c11, c0, c1, c; - - x0 = xyz000[0]; - y0 = xyz000[1]; - z0 = xyz000[2]; - - x1 = xyz000[0] + dxyz[0]; - y1 = xyz000[1] + dxyz[1]; - z1 = xyz000[2] + dxyz[2]; - - x = xyz[0]; - y = xyz[1]; - z = xyz[2]; - - c000 = FieldAtVertices[0]; - c001 = FieldAtVertices[1]; - c010 = FieldAtVertices[2]; - c100 = FieldAtVertices[3]; - c011 = FieldAtVertices[4]; - c101 = FieldAtVertices[5]; - c110 = FieldAtVertices[6]; - c111 = FieldAtVertices[7]; - - xd = (x-x0)/(x1-x0); - yd = (y-y0)/(y1-y0); - zd = (z-z0)/(z1-z0); - - c00 = c000*(1.0-xd) + c100*xd; - c01 = c001*(1.0-xd) + c101*xd; - c10 = c010*(1.0-xd) + c110*xd; - c11 = c011*(1.0-xd) + c111*xd; - - c0 = c00*(1.0-yd) + c10*yd; - c1 = c01*(1.0-yd) + c11*yd; - - c = c0*(1.0-zd) + c1*zd; - - return c; -} + real c, weight[8]; + +// weight of the left / right + const real w_xL = (xyz[0]-xyz000[0]) / dxyz[0]; + const real w_yL = (xyz[1]-xyz000[1]) / dxyz[1]; + const real w_zL = (xyz[2]-xyz000[2]) / dxyz[2]; + + const real w_xR = 1.0 - w_xR; + const real w_yR = 1.0 - w_yR; + const real w_zR = 1.0 - w_zR; + +// total weight + weight[0] = w_xL * w_yL * w_zL; + weight[1] = w_xL * w_yL * w_zR; + weight[2] = w_xL * w_yR * w_zL; + weight[3] = w_xR * w_yL * w_zL; + weight[4] = w_xL * w_yR * w_zR; + weight[5] = w_xR * w_yL * w_zR; + weight[6] = w_xR * w_yR * w_zL; + weight[7] = w_xR * w_yR * w_zR; + + for (int i=0; i<8; i++) c += FieldAtVertices[i] * weight[i]; + + return c; +} // FUNCTION : TrilinearInterpolation From 7938f7ad8a97eb8358b8dd8d4544585c8c47a647 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 15 Apr 2024 10:17:47 +0800 Subject: [PATCH 10/73] Update the function inputs --- src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cpp b/src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cpp index bb422b64ae..a204522df6 100644 --- a/src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cpp +++ b/src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cpp @@ -78,13 +78,14 @@ void SetExtPotAuxArray_IsothermalSlab( double AuxArray_Flt[], int AuxArray_Int[] // EXT_POT_USAGE_SUB_TINT: like SUB but for temporal interpolation // --> This parameter is useless in most cases // PotTable : 3D potential table used by EXT_POT_TABLE +// GenePtr : Array of pointers for general potential tables // // Return : External potential at (x,y,z,Time) //----------------------------------------------------------------------------------------- GPU_DEVICE_NOINLINE static real ExtPot_IsothermalSlab( const double x, const double y, const double z, const double Time, const double UserArray_Flt[], const int UserArray_Int[], - const ExtPotUsage_t Usage, const real PotTable[] ) + const ExtPotUsage_t Usage, const real PotTable[], void **GenePtr ) { // halo potential From 5c08022c8853bbfb0feb42014e93b2691e06f757 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 15 Apr 2024 10:19:06 +0800 Subject: [PATCH 11/73] Initialize for SRHD with GRAVITY. --- include/CUPOT.h | 1 + src/Auxiliary/Aux_Check_Parameter.cpp | 4 ---- .../CUAPI_Asyn_PoissonGravitySolver.cu | 4 ++-- src/GPU_API/CUAPI_SetCache.cu | 3 ++- .../CPU_HydroGravitySolver.cpp | 23 ++++++++++++++----- .../CPU_Poisson/CPU_PoissonGravitySolver.cpp | 5 ++-- src/configure.py | 4 ++-- 7 files changed, 27 insertions(+), 17 deletions(-) diff --git a/include/CUPOT.h b/include/CUPOT.h index 2cac34c68f..8918a85bfe 100644 --- a/include/CUPOT.h +++ b/include/CUPOT.h @@ -16,6 +16,7 @@ #ifdef __CUDACC__ # include "Macro.h" # include "Typedef.h" +# include "EoS.h" #else # include "GAMER.h" #endif diff --git a/src/Auxiliary/Aux_Check_Parameter.cpp b/src/Auxiliary/Aux_Check_Parameter.cpp index 245e54bead..e0055fa611 100644 --- a/src/Auxiliary/Aux_Check_Parameter.cpp +++ b/src/Auxiliary/Aux_Check_Parameter.cpp @@ -707,10 +707,6 @@ void Aux_Check_Parameter() # error : ERROR : SRHD does not support MHD !! # endif -# ifdef GRAVITY -# error : ERROR : SRHD does not support GRAVITY !! -# endif - # ifdef COMOVING # error : ERROR : SRHD does not support COMOVING !! # endif diff --git a/src/GPU_API/CUAPI_Asyn_PoissonGravitySolver.cu b/src/GPU_API/CUAPI_Asyn_PoissonGravitySolver.cu index d41d97457c..1f0cf8c9d3 100644 --- a/src/GPU_API/CUAPI_Asyn_PoissonGravitySolver.cu +++ b/src/GPU_API/CUAPI_Asyn_PoissonGravitySolver.cu @@ -44,7 +44,7 @@ void CUPOT_HydroGravitySolver( const real g_Emag_Array [][ CUBE(PS1) ], const real dt, const real dh, const bool P5_Gradient, const bool UsePot, const OptExtAcc_t ExtAcc, const ExtAcc_t ExtAcc_Func, - const double TimeNew, const double TimeOld, const real MinEint ); + const double TimeNew, const double TimeOld, const real MinEint, const EoS_t EoS ); #elif ( MODEL == ELBDM ) __global__ @@ -440,7 +440,7 @@ void CUAPI_Asyn_PoissonGravitySolver( const real h_Rho_Array [][RHO_NXT][RHO_ d_Emag_Array_G + UsedPatch[s], dt, dh, P5_Gradient, (SelfGravity || ExtPot), ExtAcc, GPUExtAcc_Ptr, - TimeNew, TimeOld, MinEint ); + TimeNew, TimeOld, MinEint, EoS ); # elif ( MODEL == ELBDM ) CUPOT_ELBDMGravitySolver <<< NPatch_per_Stream[s], Gra_Block_Dim, 0, Stream[s] >>> diff --git a/src/GPU_API/CUAPI_SetCache.cu b/src/GPU_API/CUAPI_SetCache.cu index d8f4a97407..5c1ecf0f1b 100644 --- a/src/GPU_API/CUAPI_SetCache.cu +++ b/src/GPU_API/CUAPI_SetCache.cu @@ -134,7 +134,8 @@ void CUPOT_HydroGravitySolver( const real g_Emag_Array [][ CUBE(PS1) ], const real dt, const real dh, const bool P5_Gradient, const bool UsePot, const OptExtAcc_t ExtAcc, const ExtAcc_t ExtAcc_Func, - const double TimeNew, const double TimeOld, const real MinEint ); + const double TimeNew, const double TimeOld, const real MinEint, + const EoS_t EoS ); #elif ( MODEL == ELBDM ) __global__ diff --git a/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp b/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp index f390e0e5b3..8975e2f3ff 100644 --- a/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp +++ b/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp @@ -2,7 +2,12 @@ #if ( MODEL == HYDRO && defined GRAVITY ) - +// external functions +#ifdef __CUDACC__ +#include "../GPU_Hydro/CUFLU_Shared_FluUtility.cu" +#else +#include "../../../include/Prototype.h" +#endif // #ifdef __CUDACC__ ... else ... // include c_ExtAcc_AuxArray[] #ifdef __CUDACC__ @@ -11,11 +16,14 @@ - //----------------------------------------------------------------------------------------- // Function : CPU/CUPOT_HydroGravitySolver -// Description : Advances the momentum and energy density of a group of patches by gravitational acceleration -// (including external gravity) +// Description : 1. Advances the momentum and energy density of a group of patches by gravitational acceleration +// (including external gravity) +// 2. Note the SRHD still use the Newtonian gravity as a source term in the relativistic Euler equations. +// --> Hence SRHD with the Newtonian gravity can only simulate the low-mass relativistic component +// embedded in giant gas sphere. +// e.g., relativistic AGN jet in gas sphere. // // Note : 1. Currently this function does NOT ensure the consistency between internal energy and // dual-energy variable (e.g., entropy) @@ -46,6 +54,7 @@ // TimeNew : Physical time at the current step (for the external gravity solver) // TimeOld : Physical time at the previous step (for the external gravity solver in UNSPLIT_GRAVITY) // MinEint : Internal energy floor +// EoS : EoS object // // Return : g_Flu_Array_New, g_DE_Array //----------------------------------------------------------------------------------------- @@ -61,7 +70,8 @@ void CUPOT_HydroGravitySolver( const real g_Emag_Array [][ CUBE(PS1) ], const real dt, const real dh, const bool P5_Gradient, const bool UsePot, const OptExtAcc_t ExtAcc, const ExtAcc_t ExtAcc_Func, - const double TimeNew, const double TimeOld, const real MinEint ) + const double TimeNew, const double TimeOld, const real MinEint, + const EoS_t EoS ) #else void CPU_HydroGravitySolver( real g_Flu_Array_New[][GRA_NIN][ CUBE(PS1) ], @@ -75,7 +85,8 @@ void CPU_HydroGravitySolver( const real dt, const real dh, const bool P5_Gradient, const bool UsePot, const OptExtAcc_t ExtAcc, const ExtAcc_t ExtAcc_Func, const double c_ExtAcc_AuxArray[], - const double TimeNew, const double TimeOld, const real MinEint ) + const double TimeNew, const double TimeOld, const real MinEint, + const EoS_t EoS ) #endif { diff --git a/src/SelfGravity/CPU_Poisson/CPU_PoissonGravitySolver.cpp b/src/SelfGravity/CPU_Poisson/CPU_PoissonGravitySolver.cpp index 8cb44a4ff6..5a298ac802 100644 --- a/src/SelfGravity/CPU_Poisson/CPU_PoissonGravitySolver.cpp +++ b/src/SelfGravity/CPU_Poisson/CPU_PoissonGravitySolver.cpp @@ -46,7 +46,8 @@ void CPU_HydroGravitySolver( const real dt, const real dh, const bool P5_Gradient, const bool UsePot, const OptExtAcc_t ExtAcc, const ExtAcc_t ExtAcc_Func, const double c_ExtAcc_AuxArray[], - const double TimeNew, const double TimeOld, const real MinEint ); + const double TimeNew, const double TimeOld, const real MinEint, + const EoS_t EoS ); #elif ( MODEL == ELBDM ) void CPU_ELBDMGravitySolver( real Flu_Array[][GRA_NIN][PATCH_SIZE][PATCH_SIZE][PATCH_SIZE], @@ -210,7 +211,7 @@ void CPU_PoissonGravitySolver( const real h_Rho_Array [][RHO_NXT][RHO_NXT][RH (real(*)[ CUBE(PS1) ]) h_Emag_Array, NPatchGroup, dt, dh, P5_Gradient, (SelfGravity || ExtPot), ExtAcc, CPUExtAcc_Ptr, ExtAcc_AuxArray, - TimeNew, TimeOld, MinEint ); + TimeNew, TimeOld, MinEint, EoS ); # elif ( MODEL == ELBDM ) CPU_ELBDMGravitySolver( h_Flu_Array, h_Pot_Array_Out, h_Corner_Array, NPatchGroup, ELBDM_Eta*dt, dh, ELBDM_Lambda ); diff --git a/src/configure.py b/src/configure.py index bfb230e05f..da7f4f3f56 100644 --- a/src/configure.py +++ b/src/configure.py @@ -353,14 +353,14 @@ def load_arguments(): default=False, depend={"model":"HYDRO"}, constraint={ True:{"flu_scheme":["MHM", "MHM_RP", "CTU"], "flux":["ROE", "HLLE", "HLLD"]}, - False:{"flux":["EXACT", "ROE", "HLLE", "HLLC"]} }, + False:{"flux":["EXACT", "ROE", "HLLE", "HLLC"]} }, help="Magnetohydrodynamics.\n" ) parser.add_argument( "--srhd", type=str2bool, metavar="BOOLEAN", gamer_name="SRHD", default=False, depend={"model":"HYDRO"}, - constraint={ True:{"flu_scheme":["MHM", "MHM_RP"], "flux":["HLLE", "HLLC"], "eos":["TAUBMATHEWS"], "dual":[NONE_STR], "mhd":False, "gravity":False} }, + constraint={ True:{"flu_scheme":["MHM", "MHM_RP"], "flux":["HLLE", "HLLC"], "eos":["TAUBMATHEWS"], "dual":[NONE_STR], "mhd":False} }, help="Special Relativistic Hydrodynamics.\n" ) From 9f846697fb4dedb7f2528fb64e6eed9ed9a500f0 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Fri, 10 May 2024 14:07:35 +0800 Subject: [PATCH 12/73] Update the gravity solver --- .../CPU_HydroGravitySolver.cpp | 57 ++++++++++++++++++- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp b/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp index 8975e2f3ff..9cb99b8bf0 100644 --- a/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp +++ b/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp @@ -117,6 +117,9 @@ void CPU_HydroGravitySolver( # endif # endif // #ifdef GAMER_DEBUG +#if ( defined UNSPLIT_GRAVITY && defined SRHD ) +# error: SRHD does not support UNSPLIT_GRAVITY !! +#endif const real Gra_Const = ( P5_Gradient ) ? -dt/(12.0*dh) : -dt/(2.0*dh); const int PS1_sqr = SQR(PS1); @@ -176,8 +179,14 @@ void CPU_HydroGravitySolver( // _g0: indices for the arrays without any ghost zone CGPU_LOOP( idx_g0, CUBE(PS1) ) { +# if ( defined SRHD && defined UNSPLIT_GRAVITY ) + real Etot_in; +# elif ( !defined SRHD ) // Enki = non-kinetic energy (i.e. Etot - Ekin) - real acc_new[3]={0.0, 0.0, 0.0}, px_new, py_new, pz_new, rho_new, Enki_in, Ekin_out, Etot_in, Etot_out, _rho2; + real Enki_in, Ekin_out, Etot_in, _rho2; +# endif + + real acc_new[3]={0.0, 0.0, 0.0}, px_new, py_new, pz_new, rho_new, Etot_out; # ifdef UNSPLIT_GRAVITY real acc_old[3]={0.0, 0.0, 0.0}, px_old, py_old, pz_old, rho_old, Emag_in=0.0; # endif @@ -282,7 +291,6 @@ void CPU_HydroGravitySolver( } // if ( P5_Gradient ) ... else ... } // if ( UsePot ) - // advance fluid # ifdef UNSPLIT_GRAVITY @@ -367,7 +375,27 @@ void CPU_HydroGravitySolver( # else // #ifdef UNSPLIT_GRAVITY +# ifdef SRHD + real Cons_new[NCOMP_FLUID], Prim_new[NCOMP_FLUID], LorentzFactor_new, Cons_old2[NCOMP_FLUID]; + for (int v=0; v Date: Fri, 10 May 2024 14:07:49 +0800 Subject: [PATCH 13/73] Update the test problem --- .../Hydro/Bondi/Flu_ResetByUser_Bondi.cpp | 4 +-- .../Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp | 30 +++++++++---------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/TestProblem/Hydro/Bondi/Flu_ResetByUser_Bondi.cpp b/src/TestProblem/Hydro/Bondi/Flu_ResetByUser_Bondi.cpp index 9f8fffb30f..aaa77d28e5 100644 --- a/src/TestProblem/Hydro/Bondi/Flu_ResetByUser_Bondi.cpp +++ b/src/TestProblem/Hydro/Bondi/Flu_ResetByUser_Bondi.cpp @@ -155,8 +155,8 @@ void Flu_ResetByUser_API_Bondi( const int lv, const int FluSg, const int MagSg, # if ( MODEL == HYDRO ) fluid[DENS] = FMAX( fluid[DENS], (real)MIN_DENS ); - fluid[ENGY] = Hydro_CheckMinEintInEngy( fluid[DENS], fluid[MOMX], fluid[MOMY], fluid[MOMZ], fluid[ENGY], - (real)MIN_EINT, Emag ); + //fluid[ENGY] = Hydro_CheckMinEintInEngy( fluid[DENS], fluid[MOMX], fluid[MOMY], fluid[MOMZ], fluid[ENGY], + // (real)MIN_EINT, Emag ); // calculate the dual-energy variable # ifdef DUAL_ENERGY diff --git a/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp b/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp index 2d6b3e01f2..af8871921f 100644 --- a/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp +++ b/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp @@ -13,7 +13,7 @@ real TrilinearInterpolation(real *FieldAtVertices, real *xyz000, real *dxyz, rea static void SetArrayDisk(); static void SetArrayHVC(); static real *randXYZ; -static int N_CLOUDS = 30; +static int N_CLOUDS = 0; static real R_CLOUD = 1.0; void randCloud( real **randXYZ, const int numClouds ); @@ -291,7 +291,6 @@ void SetParameter() // SetArrayHVC(); randCloud( &randXYZ, N_CLOUDS ); - // replace useless parameters with NaN if ( Jet_Ambient != 0 ) { @@ -306,7 +305,6 @@ void SetParameter() Amb_FluSphereRadius = NAN; } - if ( !Jet_TimeDependentSrc ) { Jet_BurstDensRatio = NAN; @@ -324,7 +322,7 @@ void SetParameter() if ( !Flag_Burst4Vel && !Flag_BurstDens && !Flag_BurstTemp ) Aux_Error( ERROR_INFO, "One of Flag_Burst4Vel, Flag_BurstDens or Flag_BurstTemp must be enabled !!\n" ); - if ( Jet_BurstEndTime <= Jet_BurstStartTime) + if ( Jet_BurstEndTime <= Jet_BurstStartTime ) Aux_Error( ERROR_INFO, "Jet_BurstEndTime <= Jet_BurstStartTime !!\n" ); if ( Jet_BurstEndTime >= END_T ) @@ -661,7 +659,7 @@ void SetArrayDisk() const int NZ = Nz + 2*numGhost; const int N_TOT = NX * NY * NZ; - if ( 5*N_TOT > INT_MAX ) Aux_Error( ERROR_INFO, "Integer overflow (5*N_TOT > INT_MAX), N_TOT=NX*NY*NZ, NX=%d, NY=%d, NZ=%d, INT_MAX=%d!! \n",NX, NY, NZ, INT_MAX); + if ( 5*N_TOT > INT_MAX ) Aux_Error( ERROR_INFO, "Integer overflow (5*N_TOT > INT_MAX), N_TOT=NX*NY*NZ, NX=%d, NY=%d, NZ=%d, INT_MAX=%d!! \n", NX, NY, NZ, INT_MAX ); if ( Step == 0 ) { @@ -747,7 +745,7 @@ void SetArrayHVC() const int NZ = Nz + 2*numGhost; const int N_TOT = NX * NY * NZ; - if ( 5*N_TOT > INT_MAX ) Aux_Error( ERROR_INFO, "Integer overflow (5*N_TOT > INT_MAX), N_TOT=NX*NY*NZ, NX=%d, NY=%d, NZ=%d, INT_MAX=%d!! \n",NX, NY, NZ, INT_MAX); + if ( 5*N_TOT > INT_MAX ) Aux_Error( ERROR_INFO, "Integer overflow (5*N_TOT > INT_MAX), N_TOT=NX*NY*NZ, NX=%d, NY=%d, NZ=%d, INT_MAX=%d!! \n", NX, NY, NZ, INT_MAX ); if ( Step == 0 ) { @@ -845,7 +843,7 @@ void Interpolation_UM_IC( real x, real y, real z, real ****Pri_input, real **XYZ bool Unphy = false; for (int i=0; i<8; i++) - Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertices[i], NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertices[i], NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ); // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex000, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex001, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); @@ -947,7 +945,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, - EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); # if (NCOMP_PASSIVE_USER > 0) @@ -970,7 +968,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, - EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); if ( Pri[4]/Pri[0] > criticalTemp ) Pri[0] = Pri[4] / ambientTemperature; @@ -1030,7 +1028,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri_hvc_output, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, - EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); Pri[0] = Pri_hvc_output[0]*0.05*Const_mp/UNIT_D; @@ -1046,7 +1044,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, - EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); # if (NCOMP_PASSIVE_USER > 0) @@ -1056,7 +1054,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co # endif # ifdef COSMIC_RAY - fluid[CRAY] = (real)0.333333333*Amb_CR_Engy; + fluid[CRAY] = Amb_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); # endif } // if ( fabs(zc) < interfaceHeight ) ... else ... # endif @@ -1071,7 +1069,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, - EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); Hydro_Pri2Con( Pri, fluid, false, PassiveNorm_NVar, PassiveNorm_VarIdx, EoS_DensPres2Eint_CPUPtr, @@ -1085,7 +1083,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co # endif # ifdef COSMIC_RAY - fluid[CRAY] = (real)0.333333333*Amb_CR_Engy; + fluid[CRAY] = Amb_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); # endif } else // if ( fabs(zc) < interfaceHeight ) { @@ -1113,7 +1111,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, - EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); Hydro_Pri2Con( Pri, fluid, false, PassiveNorm_NVar, PassiveNorm_VarIdx, EoS_DensPres2Eint_CPUPtr, @@ -1174,7 +1172,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, - EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ) ) + EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); # if (NCOMP_PASSIVE_USER > 0) From fd1369cfc29ad7266108c315f0a9be2e6253028f Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Fri, 10 May 2024 18:32:12 +0800 Subject: [PATCH 14/73] Bug fix --- .../Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp | 67 +++++++++++-------- 1 file changed, 40 insertions(+), 27 deletions(-) diff --git a/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp b/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp index af8871921f..86fba27924 100644 --- a/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp +++ b/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp @@ -288,7 +288,7 @@ void SetParameter() // Read header for the fermi bubbles SetArrayDisk(); -// SetArrayHVC(); +// SetArrayHVC(); randCloud( &randXYZ, N_CLOUDS ); // replace useless parameters with NaN @@ -764,7 +764,6 @@ void SetArrayHVC() if ( Z_hvc == NULL ) Aux_Error( ERROR_INFO, "Z_hvc is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); real *Ptr; - Ptr = BUFFER + headerSize; for ( int c=0; c<5*N_TOT; c++ ) { @@ -843,7 +842,18 @@ void Interpolation_UM_IC( real x, real y, real z, real ****Pri_input, real **XYZ bool Unphy = false; for (int i=0; i<8; i++) - Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertices[i], NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ); + { + for (int v=0; v<5; v++) Unphy |= ( Vertices[i][v] != Vertices[i][v] ); + Unphy |= ( (real) TINY_NUMBER >= Vertices[i][0] ); + Unphy |= ( (real)-HUGE_NUMBER >= Vertices[i][1] ); + Unphy |= ( (real)-HUGE_NUMBER >= Vertices[i][2] ); + Unphy |= ( (real)-HUGE_NUMBER >= Vertices[i][3] ); + Unphy |= ( (real) TINY_NUMBER >= Vertices[i][4] ); + for (int v=0; v<5; v++) Unphy |= ( Vertices[i][v] >= (real)HUGE_NUMBER ); + + // TODO : Can not use since the function also check for the passive scalar + // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertices[i], NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ); + } // for (int i=0; i<8; i++) // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex000, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex001, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); @@ -921,7 +931,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co const int lv, double AuxArray[] ) { // variables for jet - real Pri[NCOMP_FLUID]; + real Pri[NCOMP_FLUID] = {0.0}; real xc = x - IsothermalSlab_Center[0]; real yc = y - IsothermalSlab_Center[1]; real zc = z - IsothermalSlab_Center[2]; @@ -1035,7 +1045,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co Pri[1] = 0.0; Pri[2] = 0.0; Pri[3] = 0.0; - Pri[4] = Pri[4]; + Pri[4] = Pri[0]; } Hydro_Pri2Con( Pri, fluid, false, PassiveNorm_NVar, PassiveNorm_VarIdx, EoS_DensPres2Eint_CPUPtr, @@ -1153,8 +1163,8 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co else ambientDens = -IsothermalSlab_Pot(zc)/ambientTemperature; - //printf("IsothermalSlab_Pot(zc)=%e\n", IsothermalSlab_Pot(zc)); - //printf("ambientTemperature=%e\n", ambientTemperature); + //printf("IsothermalSlab_Pot(zc)=%e\n", IsothermalSlab_Pot(zc)); + //printf("ambientTemperature=%e\n", ambientTemperature); ambientDens = exp(ambientDens); ambientDens *= ambientPeakDens; @@ -1189,7 +1199,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co } else { // TODO : Add an error for wrong Jet_Ambient - } // if ( Jet_Ambient == 0 ) ... else if + } // if ( Jet_Ambient == 0 ) ... else if ... else ... } // FUNCTION : SetGridIC @@ -1241,8 +1251,8 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const if ( !Jet_SphericalSrc ) { double xp[3], rp[3]; - double Prim[NCOMP_FLUID], Cons[NCOMP_FLUID], Vel[3]; - real PriReal[NCOMP_FLUID]; + double Prim[NCOMP_FLUID] = {0.0}, Cons[NCOMP_FLUID] = {0.0}, Vel[3]; + real PriReal[NCOMP_FLUID] = {0.0}; double PrecessionAxis_Spherical[3], Omega_t; bool InsideUpperCone, InsideLowerCone; double Jet_SrcVelSmooth; @@ -1254,7 +1264,8 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const xp[1] = y - Jet_Center[1]; xp[2] = z - Jet_Center[2]; - if ( Jet_PrecessionAxis[0] != 0.0 || Jet_PrecessionAxis[1] != 0.0 || Jet_PrecessionAxis[2] == 0.0 ) { + if ( Jet_PrecessionAxis[0] != 0.0 || Jet_PrecessionAxis[1] != 0.0 || Jet_PrecessionAxis[2] == 0.0 ) + { // get theta, phi for the first rotation Mis_Cartesian2Spherical( Jet_PrecessionAxis, PrecessionAxis_Spherical ); // rotate coordinate to align z-axis with fixed precession axis @@ -1271,7 +1282,8 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const InsideLowerCone = SQR(xp[0]) + SQR(xp[1]) <= SQR( -tan(Jet_HalfOpeningAngle)*xp[2] + Jet_Radius ); InsideLowerCone &= -Jet_HalfHeight <= xp[2] && xp[2] <= 0.0; - if ( Jet_HalfOpeningAngle != 0.0 ) { + if ( Jet_HalfOpeningAngle != 0.0 ) + { InsideUpperCone &= SQR(xp[0]) + SQR(xp[1]) + SQR(xp[2] + Jet_Radius/tan(Jet_HalfOpeningAngle)) <= SQR(Jet_HalfHeight+Jet_Radius/tan(Jet_HalfOpeningAngle)); @@ -1281,7 +1293,8 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const <= SQR(Jet_HalfHeight+Jet_Radius/tan(Jet_HalfOpeningAngle)); InsideLowerCone &= xp[2] <= 0.0; - } else { + } else + { InsideUpperCone &= 0.0 <= xp[2] && xp[2] <= Jet_HalfHeight; InsideLowerCone &= -Jet_HalfHeight <= xp[2] && xp[2] <= 0.0; } // if ( Jet_HalfOpeningAngle != 0.0 ) ... else ... @@ -1362,8 +1375,8 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const } else // if ( !Jet_SphericalSrc ) { double xp[3], rp[3]; - double Prim[NCOMP_FLUID], Cons[NCOMP_FLUID], Vel[3]; - real PriReal[NCOMP_FLUID]; + double Prim[NCOMP_FLUID] = {0.0}, Cons[NCOMP_FLUID] = {0.0}, Vel[3]; + real PriReal[NCOMP_FLUID] = {0.0}; // shift the coordinate origin to the source center (the point O) xp[0] = x - Jet_Center[0]; @@ -1457,13 +1470,13 @@ bool Flag_User( const int i, const int j, const int k, const int lv, const int P bool Flag, Src = R <= dh*1.8; if ( Jet_Ambient != 4 ) { - bool Disk = fabs(dR[2]) <= dh*1.8; - if (lv >= jetSrc_lowRes_LEVEL) Disk = false; - Flag = Src || Disk; + bool Disk = fabs(dR[2]) <= dh*1.8; + if (lv >= jetSrc_lowRes_LEVEL) Disk = false; + Flag = Src || Disk; } else { - Flag = Src; + Flag = Src; } return Flag; } // FUNCTION : Flag_User @@ -1517,8 +1530,8 @@ double Mis_GetTimeStep_User( const int lv, const double dTime_dt ) const double dh = amr->dh[MAX_LEVEL]; - const double Cs = 0.182574; // 1.0/sqrt(3); // TODO: not enough digit for double - double dt_user = DT__FLUID * dh / (Jet_Src3Vel+3.0*Cs); + const double Cs = 0.182574; // 1.0/sqrt(3); // TODO: not enough digit for double + double dt_user = DT__FLUID * dh / (Jet_Src3Vel+3.0*Cs); return dt_user; } // FUNCTION : Mis_GetTimeStep_User_Template @@ -1527,17 +1540,17 @@ double Mis_GetTimeStep_User( const int lv, const double dTime_dt ) void AddNewField_Jet() { -#if ( NCOMP_PASSIVE_USER > 0) - if ( Passive_0000 == 5 ) Passive_0000 = AddField( "Passive_0000", NORMALIZE_NO ); - if ( Passive_0001 == 6 ) Passive_0001 = AddField( "Passive_0001", NORMALIZE_NO ); - if ( Passive_0002 == 7 ) Passive_0002 = AddField( "Passive_0002", NORMALIZE_NO ); -#endif +# if ( NCOMP_PASSIVE_USER > 0) + if ( Passive_0000 == 5 ) Passive_0000 = AddField( "Passive_0000", FIXUP_FLUX_YES, FIXUP_REST_YES, NORMALIZE_NO, INTERP_FRAC_NO ); + if ( Passive_0001 == 6 ) Passive_0001 = AddField( "Passive_0001", FIXUP_FLUX_YES, FIXUP_REST_YES, NORMALIZE_NO, INTERP_FRAC_NO ); + if ( Passive_0002 == 7 ) Passive_0002 = AddField( "Passive_0002", FIXUP_FLUX_YES, FIXUP_REST_YES, NORMALIZE_NO, INTERP_FRAC_NO ); +# endif } // FUNCTION : AddNewField_Jet //------------------------------------------------------------------------------------------------------- -// Function : Init_TestProb_Hydro_Jets +// Function : Init_TestProb_Hydro_Jet // Description : Test problem initializer // // Note : None From 9e3a722baea8269030693334319a87b76919c221 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 17 Jun 2024 10:30:20 +0800 Subject: [PATCH 15/73] Bug fix: Wrap Hydro_CheckMinEintInEngy with ifndef SRHD --- src/Fluid/Flu_Close.cpp | 2 ++ src/Fluid/Flu_FixUp_Restrict.cpp | 2 ++ src/LoadBalance/LB_Refine_AllocateNewPatch.cpp | 2 ++ src/Refine/Refine.cpp | 2 ++ src/TestProblem/Hydro/Bondi/Flu_ResetByUser_Bondi.cpp | 6 ++++-- 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Fluid/Flu_Close.cpp b/src/Fluid/Flu_Close.cpp index 152cf713f9..37da9158cf 100644 --- a/src/Fluid/Flu_Close.cpp +++ b/src/Fluid/Flu_Close.cpp @@ -920,10 +920,12 @@ void CorrectUnphysical( const int lv, const int NPG, const int *PID0_List, // --> apply it only when AutoReduceDt_Continue is false // --> otherwise AUTO_REDUCE_DT may not be triggered due to this internal energy floor # else +# ifndef SRHD if ( ! AutoReduceDt_Continue && OPT__LAST_RESORT_FLOOR ) Update[ENGY] = Hydro_CheckMinEintInEngy( Update[DENS], Update[MOMX], Update[MOMY], Update[MOMZ], Update[ENGY], MIN_EINT, Emag_Out ); # endif +# endif // check if the newly updated values are still unphysical diff --git a/src/Fluid/Flu_FixUp_Restrict.cpp b/src/Fluid/Flu_FixUp_Restrict.cpp index a343e4c1fd..a4413cb1d0 100644 --- a/src/Fluid/Flu_FixUp_Restrict.cpp +++ b/src/Fluid/Flu_FixUp_Restrict.cpp @@ -329,6 +329,7 @@ void Flu_FixUp_Restrict( const int FaLv, const int SonFluSg, const int FaFluSg, # else // #ifdef DUAL_ENERGY // actually it might not be necessary to check the minimum internal energy here +# ifndef SRHD amr->patch[FaFluSg][FaLv][FaPID]->fluid[ENGY][k][j][i] = Hydro_CheckMinEintInEngy( amr->patch[FaFluSg][FaLv][FaPID]->fluid[DENS][k][j][i], amr->patch[FaFluSg][FaLv][FaPID]->fluid[MOMX][k][j][i], @@ -336,6 +337,7 @@ void Flu_FixUp_Restrict( const int FaLv, const int SonFluSg, const int FaFluSg, amr->patch[FaFluSg][FaLv][FaPID]->fluid[MOMZ][k][j][i], amr->patch[FaFluSg][FaLv][FaPID]->fluid[ENGY][k][j][i], MIN_EINT, Emag ); +# endif # endif // #ifdef DUAL_ENERGY ... else ... } // i,j,k # endif // #if ( MODEL == HYDRO ) diff --git a/src/LoadBalance/LB_Refine_AllocateNewPatch.cpp b/src/LoadBalance/LB_Refine_AllocateNewPatch.cpp index 949ad57e56..71c3381794 100644 --- a/src/LoadBalance/LB_Refine_AllocateNewPatch.cpp +++ b/src/LoadBalance/LB_Refine_AllocateNewPatch.cpp @@ -1052,9 +1052,11 @@ int AllocateSonPatch( const int FaLv, const int *Cr, const int PScale, const int # else // #ifdef DUAL_ENERGY // apply internal energy floor +# ifndef SRHD FData_Flu[ENGY][k][j][i] = Hydro_CheckMinEintInEngy( FData_Flu[DENS][k][j][i], FData_Flu[MOMX][k][j][i], FData_Flu[MOMY][k][j][i], FData_Flu[MOMZ][k][j][i], FData_Flu[ENGY][k][j][i], MIN_EINT, Emag ); +# endif # endif // #ifdef DUAL_ENERGY ... else ... # endif // #if ( MODEL == HYDRO ) diff --git a/src/Refine/Refine.cpp b/src/Refine/Refine.cpp index 889885d112..f28b17fbdd 100644 --- a/src/Refine/Refine.cpp +++ b/src/Refine/Refine.cpp @@ -858,10 +858,12 @@ void Refine( const int lv, const UseLBFunc_t UseLBFunc ) # else // #ifdef DUAL_ENERGY +# ifndef SRHD // apply internal energy floor Flu_FData[ENGY][k][j][i] = Hydro_CheckMinEintInEngy( Flu_FData[DENS][k][j][i], Flu_FData[MOMX][k][j][i], Flu_FData[MOMY][k][j][i], Flu_FData[MOMZ][k][j][i], Flu_FData[ENGY][k][j][i], MIN_EINT, Emag ); +# endif # endif // #ifdef DUAL_ENERGY ... else ... # endif // #if ( MODEL == HYDRO ) diff --git a/src/TestProblem/Hydro/Bondi/Flu_ResetByUser_Bondi.cpp b/src/TestProblem/Hydro/Bondi/Flu_ResetByUser_Bondi.cpp index aaa77d28e5..3951497481 100644 --- a/src/TestProblem/Hydro/Bondi/Flu_ResetByUser_Bondi.cpp +++ b/src/TestProblem/Hydro/Bondi/Flu_ResetByUser_Bondi.cpp @@ -155,8 +155,10 @@ void Flu_ResetByUser_API_Bondi( const int lv, const int FluSg, const int MagSg, # if ( MODEL == HYDRO ) fluid[DENS] = FMAX( fluid[DENS], (real)MIN_DENS ); - //fluid[ENGY] = Hydro_CheckMinEintInEngy( fluid[DENS], fluid[MOMX], fluid[MOMY], fluid[MOMZ], fluid[ENGY], - // (real)MIN_EINT, Emag ); +# ifndef SRHD + fluid[ENGY] = Hydro_CheckMinEintInEngy( fluid[DENS], fluid[MOMX], fluid[MOMY], fluid[MOMZ], fluid[ENGY], + (real)MIN_EINT, Emag ); +# endif // calculate the dual-energy variable # ifdef DUAL_ENERGY From edbe6d69079ffd9f971f7b1b7c213cf22587e64e Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 17 Jun 2024 10:31:27 +0800 Subject: [PATCH 16/73] Free memory before return --- src/Miscellaneous/Mis_GetTimeStep.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Miscellaneous/Mis_GetTimeStep.cpp b/src/Miscellaneous/Mis_GetTimeStep.cpp index 29ef360aa2..869c84f0d8 100644 --- a/src/Miscellaneous/Mis_GetTimeStep.cpp +++ b/src/Miscellaneous/Mis_GetTimeStep.cpp @@ -40,7 +40,12 @@ double Mis_GetTimeStep( const int lv, const double dTime_SyncFaLv, const double // -1. return immediately if the target level has no patches // ============================================================================================================= - if ( NPatchTotal[lv] == 0 ) return HUGE_NUMBER; + if ( NPatchTotal[lv] == 0 ) + { + delete [] dTime_Name; + delete [] dTime; + return HUGE_NUMBER; + } From b451aaec61b4636a3d0b2799198c6f1fa73ed993 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 17 Jun 2024 10:35:09 +0800 Subject: [PATCH 17/73] Fix static array size --- src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp | 14 ++++++++------ .../CPU_HydroGravity/CPU_HydroGravitySolver.cpp | 5 +++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp b/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp index 7b8306b7cb..6f0a668c6d 100644 --- a/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp +++ b/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp @@ -55,8 +55,10 @@ void CR_AdiabaticWork_HalfStep_MHM_RP( real OneCell[NCOMP_TOTAL_PLUS_MAG], const real dt_dh2, const EoS_t *EoS ) { # ifdef SRHD - real Con_L[NCOMP_FLUID], Con_C[NCOMP_FLUID], Con_R[NCOMP_FLUID]; - real Pri_L[NCOMP_FLUID], Pri_C[NCOMP_FLUID], Pri_R[NCOMP_FLUID]; +// Although SRHD does not support the magnetic field yet, we still declare the size as +// NCOMP_TOTAL_PLUS_MAG in case the magnetic field is supported someday. + real Con_L[NCOMP_TOTAL_PLUS_MAG], Con_C[NCOMP_TOTAL_PLUS_MAG], Con_R[NCOMP_TOTAL_PLUS_MAG]; + real Pri_L[NCOMP_TOTAL_PLUS_MAG], Pri_C[NCOMP_TOTAL_PLUS_MAG], Pri_R[NCOMP_TOTAL_PLUS_MAG]; # endif // 1. compute \div V using the upwind data; reference: [2] @@ -73,7 +75,7 @@ void CR_AdiabaticWork_HalfStep_MHM_RP( real OneCell[NCOMP_TOTAL_PLUS_MAG], # endif # ifdef SRHD - for (int v=0; v Date: Mon, 17 Jun 2024 10:46:05 +0800 Subject: [PATCH 18/73] Bug fix --- .../Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp | 250 +++++++++--------- 1 file changed, 121 insertions(+), 129 deletions(-) diff --git a/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp b/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp index 86fba27924..b3c953999d 100644 --- a/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp +++ b/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp @@ -4,12 +4,12 @@ #include "GAMER.h" #include "TestProb.h" -void ***calloc_3d_array (size_t nt, size_t nr, size_t nc, size_t size); -void free_3d_array(void ***array); +void ***calloc_3d_array( size_t nt, size_t nr, size_t nc, size_t size ); +void free_3d_array( void ***array ); void Mis_Cartesian2Spherical( const double Cartesian[], double Spherical[] ); void CartesianRotate( double x[], const double theta, const double phi, const bool inverse ); void Interpolation_UM_IC( real x, real y, real z, real ****Pri_input, real **XYZ, real *Pri_output, bool disk ); -real TrilinearInterpolation(real *FieldAtVertices, real *xyz000, real *dxyz, real *xyz); +real TrilinearInterpolation( real *FieldAtVertices, real *xyz000, real *dxyz, real *xyz ); static void SetArrayDisk(); static void SetArrayHVC(); static real *randXYZ; @@ -139,7 +139,7 @@ static bool Flag_BurstTemp; // flag: burst temperature static double Amb_FluSphereRadius; // -#if (NCOMP_PASSIVE_USER > 0) +#if ( NCOMP_PASSIVE_USER > 0 ) static FieldIdx_t Passive_0000 = 5; // disk static FieldIdx_t Passive_0001 = 6; // src, the ejected material is Jet_Dens static FieldIdx_t Passive_0002 = 7; // src, the ejected material is CRay @@ -319,33 +319,33 @@ void SetParameter() // check time-dependent source if ( Jet_TimeDependentSrc ) { - if ( !Flag_Burst4Vel && !Flag_BurstDens && !Flag_BurstTemp ) - Aux_Error( ERROR_INFO, "One of Flag_Burst4Vel, Flag_BurstDens or Flag_BurstTemp must be enabled !!\n" ); + if ( !Flag_Burst4Vel && !Flag_BurstDens && !Flag_BurstTemp ) + Aux_Error( ERROR_INFO, "One of Flag_Burst4Vel, Flag_BurstDens or Flag_BurstTemp must be enabled !!\n" ); - if ( Jet_BurstEndTime <= Jet_BurstStartTime ) - Aux_Error( ERROR_INFO, "Jet_BurstEndTime <= Jet_BurstStartTime !!\n" ); + if ( Jet_BurstEndTime <= Jet_BurstStartTime ) + Aux_Error( ERROR_INFO, "Jet_BurstEndTime <= Jet_BurstStartTime !!\n" ); - if ( Jet_BurstEndTime >= END_T ) - Aux_Error( ERROR_INFO, "Jet_BurstEndTime >= END_T !!\n" ); + if ( Jet_BurstEndTime >= END_T ) + Aux_Error( ERROR_INFO, "Jet_BurstEndTime >= END_T !!\n" ); - if ( Flag_Burst4Vel && Jet_Burst4VelRatio <= Eps_double ) - Aux_Error( ERROR_INFO, "Jet_Burst4VelRatio <= Eps_double !!\n" ); + if ( Flag_Burst4Vel && Jet_Burst4VelRatio <= Eps_double ) + Aux_Error( ERROR_INFO, "Jet_Burst4VelRatio <= Eps_double !!\n" ); - if ( Flag_BurstDens && Jet_BurstDensRatio <= Eps_double ) - Aux_Error( ERROR_INFO, "Jet_BurstDensRatio <= Eps_double !!\n" ); + if ( Flag_BurstDens && Jet_BurstDensRatio <= Eps_double ) + Aux_Error( ERROR_INFO, "Jet_BurstDensRatio <= Eps_double !!\n" ); - if ( Flag_BurstTemp && Jet_BurstTempRatio <= Eps_double ) - Aux_Error( ERROR_INFO, "Jet_BurstTempRatio <= Eps_double !!\n" ); + if ( Flag_BurstTemp && Jet_BurstTempRatio <= Eps_double ) + Aux_Error( ERROR_INFO, "Jet_BurstTempRatio <= Eps_double !!\n" ); } if ( IsothermalSlab_Center[0] == -1.0 ) - IsothermalSlab_Center[0] = 0.5*amr->BoxSize[0]; + IsothermalSlab_Center[0] = 0.5*amr->BoxSize[0]; if ( IsothermalSlab_Center[1] == -1.0 ) - IsothermalSlab_Center[1] = 0.5*amr->BoxSize[1]; + IsothermalSlab_Center[1] = 0.5*amr->BoxSize[1]; if ( IsothermalSlab_Center[2] == -1.0 ) - IsothermalSlab_Center[2] = 0.5*amr->BoxSize[2]; + IsothermalSlab_Center[2] = 0.5*amr->BoxSize[2]; if ( Jet_Ambient == 9 && OPT__INIT != 3 ) { @@ -556,28 +556,27 @@ void SetParameter() void ReadBinFile( char *FileName, real **buffer ) { - FILE *pFile; - long lSize; - size_t result; + FILE *pFile; + long lSize; + size_t result; - pFile = fopen( FileName, "rb" ); - if ( pFile == NULL ) Aux_Error( ERROR_INFO, "File error !!\n" ); + pFile = fopen( FileName, "rb" ); + if ( pFile == NULL ) Aux_Error( ERROR_INFO, "File error !!\n" ); - // obtain file size - fseek( pFile, 0, SEEK_END ); - lSize = ftell( pFile ); - rewind( pFile ); + // obtain file size + fseek( pFile, 0, SEEK_END ); + lSize = ftell( pFile ); + rewind( pFile ); - // allocate memory to contain the whole file - *buffer = (real*) calloc( lSize, sizeof(double) ); - if ( *buffer == NULL ) Aux_Error( ERROR_INFO, "Memory error !!\n" ); + // allocate memory to contain the whole file + *buffer = (real*) calloc( lSize, sizeof(double) ); + if ( *buffer == NULL ) Aux_Error( ERROR_INFO, "Memory error !!\n" ); - // copy the file into the *buffer - result = fread( *buffer, 1, lSize, pFile ); - if ( result != lSize ) Aux_Error( ERROR_INFO, "Reading error !!\n" ); - - fclose (pFile); + // copy the file into the *buffer + result = fread( *buffer, 1, lSize, pFile ); + if ( result != lSize ) Aux_Error( ERROR_INFO, "Reading error !!\n" ); + fclose( pFile ); } // FUNCTION : ReadBinFile @@ -617,7 +616,7 @@ bool checkInsideClouds( const real *randXYZ, const int numClouds, const real x, for (int d=0; d<3; d++) cloudCenter[d] = randXYZ[i+d]; return true; - } + } // for (int i=0; i<3*numClouds; i+=3) return false; } // FUNCTION : checkInsideClouds @@ -680,7 +679,8 @@ void SetArrayDisk() real *Ptr; Ptr = BUFFER + headerSize; - for (int c=0; c<5*N_TOT; c++) { + for (int c=0; c<5*N_TOT; c++) + { const int cc = c%(N_TOT); const int i = (cc - cc%(NY*NZ)) / (NY*NZ); const int j = ((cc - cc%NZ) / NZ) % NY; @@ -691,7 +691,7 @@ void SetArrayDisk() if ( 2*N_TOT <= c && c < 3*N_TOT ) VelY_disk[i][j][k] = Ptr[c]; if ( 3*N_TOT <= c && c < 4*N_TOT ) VelZ_disk[i][j][k] = Ptr[c]; if ( 4*N_TOT <= c && c < 5*N_TOT ) Pres_disk[i][j][k] = Ptr[c]; - } + } // for (int c=0; c<5*N_TOT; c++) Ptr += 5*N_TOT; for (int c=0; c 0) +# if ( NCOMP_PASSIVE_USER > 0 ) fluid[Passive_0000] = fluid[DENS]; fluid[Passive_0001] = 0.0; fluid[Passive_0002] = 0.0; # endif + # ifdef COSMIC_RAY fluid[CRAY] = Amb_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); # endif @@ -976,19 +978,18 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co Interpolation_UM_IC( xc, yc, zc, Pri_disk_input, XYZ, Pri, true ); - if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, + if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); if ( Pri[4]/Pri[0] > criticalTemp ) Pri[0] = Pri[4] / ambientTemperature; - Hydro_Pri2Con( Pri, fluid, false, PassiveNorm_NVar, PassiveNorm_VarIdx, EoS_DensPres2Eint_CPUPtr, EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, NULL ); -# if (NCOMP_PASSIVE_USER > 0) +# if ( NCOMP_PASSIVE_USER > 0 ) fluid[Passive_0000] = fluid[DENS]; fluid[Passive_0001] = 0.0; fluid[Passive_0002] = 0.0; @@ -1036,7 +1037,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co Interpolation_UM_IC( x-cloudCenter[0], y-cloudCenter[1], z-cloudCenter[2], Pri_hvc_input, XYZ, Pri_hvc_output, false ); - if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri_hvc_output, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, + if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri_hvc_output, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); @@ -1052,12 +1053,12 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, NULL ); - if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, + if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); -# if (NCOMP_PASSIVE_USER > 0) +# if ( NCOMP_PASSIVE_USER > 0 ) fluid[Passive_0000] = 0.0; fluid[Passive_0001] = 0.0; fluid[Passive_0002] = 0.0; @@ -1077,16 +1078,16 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co Interpolation_UM_IC( xc, yc, zc, Pri_disk_input, XYZ, Pri, true ); - if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, + if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) - Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); + Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e, %e)\n", x, y, z ); Hydro_Pri2Con( Pri, fluid, false, PassiveNorm_NVar, PassiveNorm_VarIdx, EoS_DensPres2Eint_CPUPtr, EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, NULL ); -# if (NCOMP_PASSIVE_USER > 0) +# if ( NCOMP_PASSIVE_USER > 0 ) fluid[Passive_0000] = 0.0; fluid[Passive_0001] = 0.0; fluid[Passive_0002] = 0.0; @@ -1119,17 +1120,16 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co Pri[3] = 0.0; Pri[4] = ambientDens * ambientTemperature; - if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, + if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) - Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); + Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e, %e)\n", x, y, z ); Hydro_Pri2Con( Pri, fluid, false, PassiveNorm_NVar, PassiveNorm_VarIdx, EoS_DensPres2Eint_CPUPtr, EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, NULL ); - -# if (NCOMP_PASSIVE_USER > 0) +# if ( NCOMP_PASSIVE_USER > 0 ) fluid[Passive_0000] = 0.0; fluid[Passive_0001] = 0.0; fluid[Passive_0002] = 0.0; @@ -1144,24 +1144,23 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co else if ( Jet_Ambient == 4 ) { real ambientDens; -// + // PotAtZ0 = IsothermalSlab_Pot(interfaceHeight); // // Dens_gDisk_ambient = ambientTemperature / gasDiskTemperature; // Dens_gDisk_ambient *= exp( PotAtZ0*(ambientTemperature-gasDiskTemperature)/(ambientTemperature*gasDiskTemperature) ); // -// if (Dens_gDisk_ambient > HUGE_NUMBER || Dens_gDisk_ambient < -HUGE_NUMBER){ -// printf("Dens_gDisk_ambient=%e! %s: %d\n", Dens_gDisk_ambient, __FUNCTION__, __LINE__); -// exit(0); +// if ( Dens_gDisk_ambient > HUGE_NUMBER || Dens_gDisk_ambient < -HUGE_NUMBER ) { +// printf( "Dens_gDisk_ambient=%e! %s: %d\n", Dens_gDisk_ambient, __FUNCTION__, __LINE__ ); +// exit(0); // } - real ambientPeakDens = (real)2.842783e-27/UNIT_D; - + real ambientPeakDens = (real)2.842783e-27/UNIT_D; if ( fabs(zc) > IsothermalSlab_Truncation ) - ambientDens = -IsothermalSlab_Pot(IsothermalSlab_Truncation)/ambientTemperature; + ambientDens = -IsothermalSlab_Pot(IsothermalSlab_Truncation)/ambientTemperature; else - ambientDens = -IsothermalSlab_Pot(zc)/ambientTemperature; + ambientDens = -IsothermalSlab_Pot(zc)/ambientTemperature; //printf("IsothermalSlab_Pot(zc)=%e\n", IsothermalSlab_Pot(zc)); //printf("ambientTemperature=%e\n", ambientTemperature); @@ -1180,12 +1179,12 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co h_EoS_Table, NULL ); - if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, + if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) - Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); + Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e, %e)\n", x, y, z ); -# if (NCOMP_PASSIVE_USER > 0) +# if ( NCOMP_PASSIVE_USER > 0 ) fluid[Passive_0000] = 0.0; fluid[Passive_0001] = 0.0; fluid[Passive_0002] = 0.0; @@ -1241,7 +1240,6 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co /* /_____|_____\ */ /* F */ // ======================================================================================= -// int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const double y, const double z, const double Time, const double dt, const int lv, double AuxArray[] ) { @@ -1251,8 +1249,9 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const if ( !Jet_SphericalSrc ) { double xp[3], rp[3]; - double Prim[NCOMP_FLUID] = {0.0}, Cons[NCOMP_FLUID] = {0.0}, Vel[3]; - real PriReal[NCOMP_FLUID] = {0.0}; + // TODO: should be NCOMP_TOTAL_PLUS_MAG + double Prim[NCOMP_TOTAL] = {0.0}, Cons[NCOMP_TOTAL] = {0.0}, Vel[3]; + real PriReal[NCOMP_TOTAL] = {0.0}; double PrecessionAxis_Spherical[3], Omega_t; bool InsideUpperCone, InsideLowerCone; double Jet_SrcVelSmooth; @@ -1349,17 +1348,14 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const Prim[4] = Jet_SrcTemp*Jet_SrcDens; } // if ( Jet_HalfOpeningAngle == 0.0 ) ... else ... - PriReal[0] = (real)Prim[0]; - PriReal[1] = (real)Prim[1]; - PriReal[2] = (real)Prim[2]; - PriReal[3] = (real)Prim[3]; - PriReal[4] = (real)Prim[4]; + // TODO: should be NCOMP_TOTAL + for (int v=0; v<5; v++) PriReal[v] = (real)Prim[v]; Hydro_Pri2Con( PriReal, fluid, NULL_BOOL, NULL_INT, NULL, EoS_DensPres2Eint_CPUPtr, EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, NULL ); -# if (NCOMP_PASSIVE_USER > 0) +# if ( NCOMP_PASSIVE_USER > 0 ) fluid[Passive_0000] = 0.0; fluid[Passive_0001] = fluid[DENS]; fluid[Passive_0002] = Jet_Src_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); @@ -1375,8 +1371,9 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const } else // if ( !Jet_SphericalSrc ) { double xp[3], rp[3]; - double Prim[NCOMP_FLUID] = {0.0}, Cons[NCOMP_FLUID] = {0.0}, Vel[3]; - real PriReal[NCOMP_FLUID] = {0.0}; + // TODO: should be NCOMP_TOTAL_PLUS_MAG + double Prim[NCOMP_TOTAL] = {0.0}, Cons[NCOMP_TOTAL] = {0.0}, Vel[3]; + real PriReal[NCOMP_TOTAL] = {0.0}; // shift the coordinate origin to the source center (the point O) xp[0] = x - Jet_Center[0]; @@ -1396,17 +1393,14 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const Prim[3] = Jet_SrcVel*xp[2]/R; Prim[4] = Jet_SrcTemp*Jet_SrcDens; - PriReal[0] = (real)Prim[0]; - PriReal[1] = (real)Prim[1]; - PriReal[2] = (real)Prim[2]; - PriReal[3] = (real)Prim[3]; - PriReal[4] = (real)Prim[4]; + // TODO: should be NCOMP_TOTAL + for (int v=0; v<5; v++) PriReal[v] = (real)Prim[v]; Hydro_Pri2Con( PriReal, fluid, NULL_BOOL, NULL_INT, NULL, EoS_DensPres2Eint_CPUPtr, EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, NULL ); -# if (NCOMP_PASSIVE_USER > 0) +# if ( NCOMP_PASSIVE_USER > 0 ) fluid[Passive_0000] = 0.0; fluid[Passive_0001] = fluid[DENS]; fluid[Passive_0002] = Jet_Src_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); @@ -1485,21 +1479,21 @@ bool Flag_User( const int i, const int j, const int k, const int lv, const int P void CartesianRotate( double x[], const double theta, const double phi, const bool inverse ) { - double xp[3]; + double xp[3]; - if ( inverse ) - { - xp[0] = - sin(phi)*x[0] - cos(theta)*cos(phi)*x[1] + sin(theta)*cos(phi)*x[2]; - xp[1] = + cos(phi)*x[0] - cos(theta)*sin(phi)*x[1] + sin(theta)*sin(phi)*x[2]; - xp[2] = + sin(theta)* x[1] + cos(theta)* x[2]; - } else - { - xp[0] = - sin(phi)*x[0] + cos(phi)*x[1]; - xp[1] = - cos(theta)*cos(phi)*x[0] - cos(theta)*sin(phi)*x[1] + sin(theta)* x[2]; - xp[2] = + sin(theta)*cos(phi)*x[0] + sin(theta)*sin(phi)*x[1] + cos(theta)* x[2]; - } + if ( inverse ) + { + xp[0] = - sin(phi)*x[0] - cos(theta)*cos(phi)*x[1] + sin(theta)*cos(phi)*x[2]; + xp[1] = + cos(phi)*x[0] - cos(theta)*sin(phi)*x[1] + sin(theta)*sin(phi)*x[2]; + xp[2] = + sin(theta)* x[1] + cos(theta)* x[2]; + } else + { + xp[0] = - sin(phi)*x[0] + cos(phi)*x[1]; + xp[1] = - cos(theta)*cos(phi)*x[0] - cos(theta)*sin(phi)*x[1] + sin(theta)* x[2]; + xp[2] = + sin(theta)*cos(phi)*x[0] + sin(theta)*sin(phi)*x[1] + cos(theta)* x[2]; + } - for (int i=0; i<3; i++) x[i] = xp[i]; + for (int i=0; i<3; i++) x[i] = xp[i]; } // FUNCTION : CartesianRotate @@ -1526,12 +1520,10 @@ void CartesianRotate( double x[], const double theta, const double phi, const bo double Mis_GetTimeStep_User( const int lv, const double dTime_dt ) { const double Jet_SrcGamma = sqrt(1.0 + SQR(Jet_SrcVel)); - const double Jet_Src3Vel = Jet_SrcVel / Jet_SrcGamma; - - const double dh = amr->dh[MAX_LEVEL]; - - const double Cs = 0.182574; // 1.0/sqrt(3); // TODO: not enough digit for double - double dt_user = DT__FLUID * dh / (Jet_Src3Vel+3.0*Cs); + const double Jet_Src3Vel = Jet_SrcVel / Jet_SrcGamma; + const double dh = amr->dh[MAX_LEVEL]; // TODO: why max level + const double Cs = 0.182574; // 1.0/sqrt(3); // TODO: not enough digit for double + double dt_user = DT__FLUID * dh / (Jet_Src3Vel+3.0*Cs); return dt_user; } // FUNCTION : Mis_GetTimeStep_User_Template @@ -1540,7 +1532,7 @@ double Mis_GetTimeStep_User( const int lv, const double dTime_dt ) void AddNewField_Jet() { -# if ( NCOMP_PASSIVE_USER > 0) +# if ( NCOMP_PASSIVE_USER > 0 ) if ( Passive_0000 == 5 ) Passive_0000 = AddField( "Passive_0000", FIXUP_FLUX_YES, FIXUP_REST_YES, NORMALIZE_NO, INTERP_FRAC_NO ); if ( Passive_0001 == 6 ) Passive_0001 = AddField( "Passive_0001", FIXUP_FLUX_YES, FIXUP_REST_YES, NORMALIZE_NO, INTERP_FRAC_NO ); if ( Passive_0002 == 7 ) Passive_0002 = AddField( "Passive_0002", FIXUP_FLUX_YES, FIXUP_REST_YES, NORMALIZE_NO, INTERP_FRAC_NO ); From dfaeb3d88c916bc1a916f06fc81c80c150431fec Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Wed, 19 Jun 2024 19:48:02 +0800 Subject: [PATCH 19/73] Apply CR floor and bug fix --- src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp | 21 ++++++++++++------- .../CPU_HydroGravitySolver.cpp | 5 ++++- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp b/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp index 6f0a668c6d..36da5f9262 100644 --- a/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp +++ b/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp @@ -82,15 +82,17 @@ void CR_AdiabaticWork_HalfStep_MHM_RP( real OneCell[NCOMP_TOTAL_PLUS_MAG], Con_R[v] = g_ConVar_In[v][ idx_in + didx_in[d] ]; } - Hydro_Con2Pri( Con_L, Pri_L, NULL_REAL, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, + const real minPres = TINY_NUMBER; + const real minJeansPres = TINY_NUMBER; + Hydro_Con2Pri( Con_L, Pri_L, minPres, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, EoS->DensEint2Pres_FuncPtr, EoS->DensPres2Eint_FuncPtr, EoS->GuessHTilde_FuncPtr, EoS->HTilde2Temp_FuncPtr, EoS->AuxArrayDevPtr_Flt, EoS->AuxArrayDevPtr_Int, EoS->Table, NULL, NULL ); - Hydro_Con2Pri( Con_C, Pri_C, NULL_REAL, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, + Hydro_Con2Pri( Con_C, Pri_C, minPres, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, EoS->DensEint2Pres_FuncPtr, EoS->DensPres2Eint_FuncPtr, EoS->GuessHTilde_FuncPtr, EoS->HTilde2Temp_FuncPtr, EoS->AuxArrayDevPtr_Flt, EoS->AuxArrayDevPtr_Int, EoS->Table, NULL, &LorentzFactor ); - Hydro_Con2Pri( Con_R, Pri_R, NULL_REAL, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, + Hydro_Con2Pri( Con_R, Pri_R, minPres, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, EoS->DensEint2Pres_FuncPtr, EoS->DensPres2Eint_FuncPtr, EoS->GuessHTilde_FuncPtr, EoS->HTilde2Temp_FuncPtr, EoS->AuxArrayDevPtr_Flt, EoS->AuxArrayDevPtr_Int, EoS->Table, NULL, NULL ); @@ -221,19 +223,21 @@ void CR_AdiabaticWork_FullStep( const real g_PriVar_Half[][ CUBE(FLU_NXT) ], Con_RL[v] = g_FC_Var[faceL][v][ idx_fc + didx_fc[d] ]; } - Hydro_Con2Pri( Con_LR, Pri_LR, NULL_REAL, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, + const real minPres = TINY_NUMBER; + const real minJeansPres = TINY_NUMBER; + Hydro_Con2Pri( Con_LR, Pri_LR, minPres, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, EoS->DensEint2Pres_FuncPtr, EoS->DensPres2Eint_FuncPtr, EoS->GuessHTilde_FuncPtr, EoS->HTilde2Temp_FuncPtr, EoS->AuxArrayDevPtr_Flt, EoS->AuxArrayDevPtr_Int, EoS->Table, NULL, NULL ); - Hydro_Con2Pri( Con_CL, Pri_CL, NULL_REAL, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, + Hydro_Con2Pri( Con_CL, Pri_CL, minPres, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, EoS->DensEint2Pres_FuncPtr, EoS->DensPres2Eint_FuncPtr, EoS->GuessHTilde_FuncPtr, EoS->HTilde2Temp_FuncPtr, EoS->AuxArrayDevPtr_Flt, EoS->AuxArrayDevPtr_Int, EoS->Table, NULL, NULL ); - Hydro_Con2Pri( Con_CR, Pri_CR, NULL_REAL, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, + Hydro_Con2Pri( Con_CR, Pri_CR, minPres, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, EoS->DensEint2Pres_FuncPtr, EoS->DensPres2Eint_FuncPtr, EoS->GuessHTilde_FuncPtr, EoS->HTilde2Temp_FuncPtr, EoS->AuxArrayDevPtr_Flt, EoS->AuxArrayDevPtr_Int, EoS->Table, NULL, NULL ); - Hydro_Con2Pri( Con_RL, Pri_RL, NULL_REAL, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, + Hydro_Con2Pri( Con_RL, Pri_RL, minPres, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, EoS->DensEint2Pres_FuncPtr, EoS->DensPres2Eint_FuncPtr, EoS->GuessHTilde_FuncPtr, EoS->HTilde2Temp_FuncPtr, EoS->AuxArrayDevPtr_Flt, EoS->AuxArrayDevPtr_Int, EoS->Table, NULL, NULL ); @@ -260,6 +264,9 @@ void CR_AdiabaticWork_FullStep( const real g_PriVar_Half[][ CUBE(FLU_NXT) ], // 3. update the cosmic-ray energy g_Output[CRAY][idx_out] -= pCR_half * dt_dh * ( div_V[0] + div_V[1] + div_V[2] ); +// 4. apply floor + g_Output[CRAY][idx_out] = FMAX( g_Output[CRAY][idx_out], TINY_NUMBER ); + } // CGPU_LOOP( idx_out, CUBE(PS2) ) # ifdef __CUDACC__ diff --git a/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp b/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp index ab596bf486..da34a3cd9e 100644 --- a/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp +++ b/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp @@ -384,7 +384,9 @@ void CPU_HydroGravitySolver( Cons_old2[v] = Cons_new[v]; } - Hydro_Con2Pri( Cons_new, Prim_new, NULL_REAL, NULL_BOOL, NULL_INT, NULL, + const real minPres = TINY_NUMBER; + const real minJeansPres = TINY_NUMBER; + Hydro_Con2Pri( Cons_new, Prim_new, minPres, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, EoS.DensEint2Pres_FuncPtr, EoS.DensPres2Eint_FuncPtr, EoS.GuessHTilde_FuncPtr, EoS.HTilde2Temp_FuncPtr, EoS.AuxArrayDevPtr_Flt, EoS.AuxArrayDevPtr_Int, EoS.Table, NULL, &LorentzFactor_new ); @@ -439,6 +441,7 @@ void CPU_HydroGravitySolver( // store the updated total energy density to the output array + if (Etot_out > 1.e+30) Aux_Error( ERROR_INFO, "Too large energy after update gravity solver." ); g_Flu_Array_New[P][ENGY][idx_g0] = Etot_out; # ifdef SRHD From 5f86cdbcb9884792efb6d4358b3dd8a6ebd32004 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Wed, 19 Jun 2024 21:03:28 +0800 Subject: [PATCH 20/73] Remove debug check --- src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp b/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp index da34a3cd9e..e9e886ab4f 100644 --- a/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp +++ b/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp @@ -441,7 +441,6 @@ void CPU_HydroGravitySolver( // store the updated total energy density to the output array - if (Etot_out > 1.e+30) Aux_Error( ERROR_INFO, "Too large energy after update gravity solver." ); g_Flu_Array_New[P][ENGY][idx_g0] = Etot_out; # ifdef SRHD From 9d1b0fadb2b77f20cf4ffe49c450ac9ab6ab07c1 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 15 Jul 2024 16:29:52 +0800 Subject: [PATCH 21/73] Bug fix --- src/Model_Hydro/CPU_Hydro/CPU_Shared_FluUtility.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Model_Hydro/CPU_Hydro/CPU_Shared_FluUtility.cpp b/src/Model_Hydro/CPU_Hydro/CPU_Shared_FluUtility.cpp index 30652c3a76..3ceae6e3f0 100644 --- a/src/Model_Hydro/CPU_Hydro/CPU_Shared_FluUtility.cpp +++ b/src/Model_Hydro/CPU_Hydro/CPU_Shared_FluUtility.cpp @@ -238,7 +238,7 @@ void Hydro_Con2Pri( const real In[], real Out[], const real MinPres, const real _LorentzFactor = real(1.0) / LorentzFactor; Out[0] = In[0]*_LorentzFactor; - EoS_HTilde2Temp( HTilde, &Temp, NULL, NULL, EoS_AuxArray_Flt, EoS_AuxArray_Int, EoS_Table ); + EoS_HTilde2Temp( HTilde, &Temp, NULL, In+NCOMP_FLUID, EoS_AuxArray_Flt, EoS_AuxArray_Int, EoS_Table ); Out[4] = Out[0]*Temp; Out[4] = Hydro_CheckMinPres( Out[4], MinPres ); @@ -1146,6 +1146,9 @@ real Hydro_Con2Pres( const real Dens, const real MomX, const real MomY, const re Cons[2] = MomY; Cons[3] = MomZ; Cons[4] = Engy; +# if ( NCOMP_PASSIVE > 0 ) + for (int v=0; v Date: Mon, 15 Jul 2024 16:31:03 +0800 Subject: [PATCH 22/73] Bug fix --- src/Refine/Flag_Real.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Refine/Flag_Real.cpp b/src/Refine/Flag_Real.cpp index 727d3ebc69..ac8f26515f 100644 --- a/src/Refine/Flag_Real.cpp +++ b/src/Refine/Flag_Real.cpp @@ -320,8 +320,9 @@ void Flag_Real( const int lv, const UseLBFunc_t UseLBFunc ) for (int i=0; i Date: Tue, 16 Jul 2024 13:16:44 +0800 Subject: [PATCH 23/73] Bug fix --- .../Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp b/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp index b3c953999d..d06674d6ae 100644 --- a/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp +++ b/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp @@ -1438,13 +1438,13 @@ static bool Flag_Region( const int i, const int j, const int k, const int lv, co const double R = sqrt( SQR(dr[0]) + SQR(dr[1]) ); // TODO the last condition seems weird - bool Flag = R > gasDisk_highResRadius || lv > gasDisk_lowRes_LEVEL || fabs(dr[2]) < 2.0*interfaceHeight; + // bool Flag = R > gasDisk_highResRadius || lv > gasDisk_lowRes_LEVEL || fabs(dr[2]) < 2.0*interfaceHeight; - return Flag; + // return Flag; // original flag. TODO: once the question up is solved, remove it -// bool Flag = R > gasDisk_highResRadius && lv > gasDisk_lowRes_LEVEL && fabs(dr[2]) < 2.0*interfaceHeight; -// if ( Flag ) return false; -// else return true; + bool Flag = R > gasDisk_highResRadius && lv > gasDisk_lowRes_LEVEL && fabs(dr[2]) < 2.0*interfaceHeight; + if ( Flag ) return false; + else return true; } // FUNCTION : Flag_Region From 5c9abaf0c2a5f27324dbb849bd66c1a82bb576b0 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Tue, 16 Jul 2024 16:06:41 +0800 Subject: [PATCH 24/73] Bug fix --- src/Model_Hydro/CPU_Hydro/CPU_Shared_FluUtility.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Model_Hydro/CPU_Hydro/CPU_Shared_FluUtility.cpp b/src/Model_Hydro/CPU_Hydro/CPU_Shared_FluUtility.cpp index 3ceae6e3f0..f0f52f97f1 100644 --- a/src/Model_Hydro/CPU_Hydro/CPU_Shared_FluUtility.cpp +++ b/src/Model_Hydro/CPU_Hydro/CPU_Shared_FluUtility.cpp @@ -1237,7 +1237,7 @@ real Hydro_Con2Eint( const real Dens, const real MomX, const real MomY, const re real Eint; # ifdef SRHD - real Prim[NCOMP_TOTAL], Cons[NCOMP_TOTAL]; + real Prim[NCOMP_TOTAL], Cons[NCOMP_TOTAL]={(real)0.0}; real HTilde; Cons[0] = Dens; @@ -1385,6 +1385,9 @@ real Hydro_Con2Temp( const real Dens, const real MomX, const real MomY, const re Cons[2] = MomY; Cons[3] = MomZ; Cons[4] = Engy; +# if ( NCOMP_PASSIVE > 0 ) + for (int v=0; v Date: Tue, 16 Jul 2024 16:06:54 +0800 Subject: [PATCH 25/73] Supress message --- src/Fluid/Flu_FixUp_Flux.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Fluid/Flu_FixUp_Flux.cpp b/src/Fluid/Flu_FixUp_Flux.cpp index e3d0e04f45..eb65ac7fa9 100644 --- a/src/Fluid/Flu_FixUp_Flux.cpp +++ b/src/Fluid/Flu_FixUp_Flux.cpp @@ -240,7 +240,7 @@ void Flu_FixUp_Flux( const int lv, const long TVar ) if ( Hydro_IsUnphysical( UNPHY_MODE_CONS, CorrVal, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, - ERROR_INFO, UNPHY_VERBOSE ) ) + ERROR_INFO, UNPHY_SILENCE ) ) # else if ( CorrVal[DENS] <= MIN_DENS # ifndef BAROTROPIC_EOS From 81459b10adaa23cdb88051202a78aa5182b426d4 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Tue, 23 Jul 2024 16:55:27 +0800 Subject: [PATCH 26/73] Print SRHD variable --- src/Model_Hydro/CPU_Hydro/CPU_Shared_FullStepUpdate.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Model_Hydro/CPU_Hydro/CPU_Shared_FullStepUpdate.cpp b/src/Model_Hydro/CPU_Hydro/CPU_Shared_FullStepUpdate.cpp index 489b2695db..b24d0ee315 100644 --- a/src/Model_Hydro/CPU_Hydro/CPU_Shared_FullStepUpdate.cpp +++ b/src/Model_Hydro/CPU_Hydro/CPU_Shared_FullStepUpdate.cpp @@ -219,6 +219,15 @@ void Hydro_FullStepUpdate( const real g_Input[][ CUBE(FLU_NXT) ], real g_Output[ printf( " Pres=%14.7e", Pres ); # ifdef MHD printf( " Emag=%14.7e", Emag ); +# endif +# ifdef SRHD + const real Msqr = SQR(Output_1Cell[MOMX]) + SQR(Output_1Cell[MOMY]) + SQR(Output_1Cell[MOMZ]); + const real Dsqr = SQR(Output_1Cell[DENS]); + const real E_D = Output_1Cell[ENGY] / Output_1Cell[DENS]; + const real M_D = SQRT( Msqr / Dsqr ); + const real Temp = SQRT( E_D*E_D + (real)2.0*E_D ); + const real Discriminant = ( Temp + M_D )*( Temp - M_D ); // replace a^2-b^2 with (a+b)*(a-b) to alleviate a catastrophic cancellation + printf( " E^2+2*E*D-|M|^2=%14.7e", Discriminant ); # endif printf( "\n" ); } From 1435b62206a130bd730eed9a332111ce76b0aca7 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Tue, 23 Jul 2024 16:57:00 +0800 Subject: [PATCH 27/73] Add Unphysical check for SRHD --- src/Auxiliary/Aux_Check_Parameter.cpp | 11 +++++++---- src/Fluid/Flu_Close.cpp | 24 +++++++++++++++++++----- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/Auxiliary/Aux_Check_Parameter.cpp b/src/Auxiliary/Aux_Check_Parameter.cpp index c8678fcccd..f7500947af 100644 --- a/src/Auxiliary/Aux_Check_Parameter.cpp +++ b/src/Auxiliary/Aux_Check_Parameter.cpp @@ -755,16 +755,19 @@ void Aux_Check_Parameter() # endif if ( OPT__OUTPUT_ENTR ) - Aux_Error( ERROR_INFO, "SRHD does not support OPT__OUTPUT_ENTR !!\n" ); + Aux_Error( ERROR_INFO, "SRHD does not support OPT__OUTPUT_ENTR !!\n" ); if ( OPT__FLAG_LOHNER_ENTR ) - Aux_Error( ERROR_INFO, "SRHD does not support OPT__FLAG_LOHNER_ENTR !!\n" ); + Aux_Error( ERROR_INFO, "SRHD does not support OPT__FLAG_LOHNER_ENTR !!\n" ); if ( JEANS_MIN_PRES ) - Aux_Error( ERROR_INFO, "SRHD does not support JEANS_MIN_PRES !!\n" ); + Aux_Error( ERROR_INFO, "SRHD does not support JEANS_MIN_PRES !!\n" ); if ( OPT__FLAG_JEANS ) - Aux_Error( ERROR_INFO, "SRHD does not support OPT__FLAG_JEANS !!\n" ); + Aux_Error( ERROR_INFO, "SRHD does not support OPT__FLAG_JEANS !!\n" ); + + if ( OPT__1ST_FLUX_CORR != FIRST_FLUX_CORR_NONE && ( OPT__1ST_FLUX_CORR_SCHEME != RSOLVER_1ST_HLLC || OPT__1ST_FLUX_CORR_SCHEME != RSOLVER_1ST_HLLE ) ) + Aux_Error( ERROR_INFO, "SRHD only supports OPT__1ST_FLUX_CORR_SCHEME == RSOLVER_1ST_HLLC/HLLE !!\n" ); # endif // #ifdef SRHD # ifdef MHD diff --git a/src/Fluid/Flu_Close.cpp b/src/Fluid/Flu_Close.cpp index 37da9158cf..46018de001 100644 --- a/src/Fluid/Flu_Close.cpp +++ b/src/Fluid/Flu_Close.cpp @@ -15,7 +15,6 @@ static void CorrectFlux( const int SonLv, const real Flux_Array[][9][NFLUX_TOTAL const int NPG, const int *PID0_List, const real dt ); #if ( MODEL == HYDRO ) static bool Unphysical( const real Fluid[], const int CheckMode, const real Emag ); -#ifndef SRHD static void CorrectUnphysical( const int lv, const int NPG, const int *PID0_List, const real h_Flu_Array_F_In[][FLU_NIN][ CUBE(FLU_NXT) ], real h_Flu_Array_F_Out[][FLU_NOUT][ CUBE(PS2) ], @@ -24,7 +23,6 @@ static void CorrectUnphysical( const int lv, const int NPG, const int *PID0_List const real h_Mag_Array_F_In[][NCOMP_MAG][ FLU_NXT_P1*SQR(FLU_NXT) ], const real h_Mag_Array_F_Out[][NCOMP_MAG][ PS2P1*SQR(PS2) ], const real dt ); -#endif #ifdef MHD void StoreElectric( const int lv, const real h_Ele_Array[][9][NCOMP_ELE][ PS2P1*PS2 ], const int NPG, const int *PID0_List, const real dt ); @@ -32,10 +30,12 @@ void CorrectElectric( const int SonLv, const real h_Ele_Array[][9][NCOMP_ELE][ P const int NPG, const int *PID0_List, const real dt ); void ResetLongB( real L[], real R[], const real FC_B, const int d ); #endif +#ifndef SRHD extern void Hydro_RiemannSolver_Roe ( const int XYZ, real Flux_Out[], const real L_In[], const real R_In[], const real MinDens, const real MinPres, const EoS_DE2P_t EoS_DensEint2Pres, const EoS_DP2C_t EoS_DensPres2CSqr, const double EoS_AuxArray_Flt[], const int EoS_AuxArray_Int[], const real* const EoS_Table[EOS_NTABLE_MAX] ); +#endif extern void Hydro_RiemannSolver_HLLC( const int XYZ, real Flux_Out[], const real L_In[], const real R_In[], const real MinDens, const real MinPres, const EoS_DE2P_t EoS_DensEint2Pres, const EoS_DP2C_t EoS_DensPres2CSqr, const EoS_GUESS_t EoS_GuessHTilde, @@ -94,7 +94,7 @@ void Flu_Close( const int lv, const int SaveSg_Flu, const int SaveSg_Mag, // try to correct the unphysical results in h_Flu_Array_F_Out (e.g., negative density) // --> must be done BEFORE invoking both StoreFlux() and CorrectFlux() since CorrectUnphysical() might modify the flux array -# if ( MODEL == HYDRO && !defined SRHD ) +# if ( MODEL == HYDRO ) CorrectUnphysical( lv, NPG, PID0_List, h_Flu_Array_F_In, h_Flu_Array_F_Out, h_DE_Array_F_Out, h_Flux_Array, h_Mag_Array_F_In, h_Mag_Array_F_Out, dt ); # endif @@ -409,6 +409,18 @@ bool Unphysical( const real Fluid[], const int CheckMode, const real Emag ) return true; # endif +# ifdef SRHD + const real Msqr = SQR(Fluid[MOMX]) + SQR(Fluid[MOMY]) + SQR(Fluid[MOMZ]); + const real Dsqr = SQR(Fluid[DENS]); + const real E_D = Fluid[ENGY] / Fluid[DENS]; + const real M_D = SQRT( Msqr / Dsqr ); + const real Temp = SQRT( E_D*E_D + (real)2.0*E_D ); + const real Discriminant = ( Temp + M_D )*( Temp - M_D ); // replace a^2-b^2 with (a+b)*(a-b) to alleviate a catastrophic cancellation + + if ( Discriminant <= (real)0.0 || !Aux_IsFinite(Discriminant) ) + return true; +# endif + # ifndef BAROTROPIC_EOS if ( CheckMode == CheckMinEtot && ( Fluid[ENGY] < (real)MIN_EINT || Fluid[ENGY] != Fluid[ENGY] ) ) return true; @@ -460,7 +472,6 @@ bool Unphysical( const real Fluid[], const int CheckMode, const real Emag ) -#ifndef SRHD //------------------------------------------------------------------------------------------------------- // Function : CorrectUnphysical // Description : Check if any cell in the output array of Fluid solver contains unphysical results @@ -649,6 +660,7 @@ void CorrectUnphysical( const int lv, const int NPG, const int *PID0_List, switch ( OPT__1ST_FLUX_CORR_SCHEME ) { +# ifndef SRHD case RSOLVER_1ST_ROE: # ifdef MHD ResetLongB( VarL[d], VarC, FC_B[0], d ); // reset the longitudinal B field @@ -670,6 +682,7 @@ void CorrectUnphysical( const int lv, const int NPG, const int *PID0_List, VarC[ ENGY ] = CC_Engy; # endif break; +# endif # ifndef MHD case RSOLVER_1ST_HLLC: @@ -798,6 +811,7 @@ void CorrectUnphysical( const int lv, const int NPG, const int *PID0_List, // (note that the recalculated flux does NOT include gravity even for UNSPLIT_GRAVITY --> reduce to 1st-order accuracy) switch ( OPT__1ST_FLUX_CORR_SCHEME ) { +# ifndef SRHD case RSOLVER_1ST_ROE: Hydro_RiemannSolver_Roe ( d, FluxL_1D, Corr1D_InOut_PtrL, Corr1D_InOut_PtrC, MIN_DENS, MIN_PRES, EoS_DensEint2Pres_CPUPtr, EoS_DensPres2CSqr_CPUPtr, @@ -806,6 +820,7 @@ void CorrectUnphysical( const int lv, const int NPG, const int *PID0_List, EoS_DensEint2Pres_CPUPtr, EoS_DensPres2CSqr_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table ); break; +# endif # ifndef MHD case RSOLVER_1ST_HLLC: @@ -1205,7 +1220,6 @@ void CorrectUnphysical( const int lv, const int NPG, const int *PID0_List, } } // FUNCTION : CorrectUnphysical -#endif // #ifndef SRHD From e915562471f1e52c4175b82473863f273f0804a4 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Tue, 13 Aug 2024 17:35:07 +0800 Subject: [PATCH 28/73] Add perspective projection tool --- tool/analysis/PerspectiveProjection/Makefile | 100 ++ tool/analysis/PerspectiveProjection/README | 32 + .../analysis/PerspectiveProjection/bin/.empty | 0 .../analysis/PerspectiveProjection/compile.sh | 37 + .../PerspectiveProjection/include/General.h | 14 + .../PerspectiveProjection/include/Macro.h | 128 +++ .../include/Prototypes.h | 69 ++ .../PerspectiveProjection/src/Array.c | 130 +++ .../PerspectiveProjection/src/BinarySearch.c | 71 ++ .../PerspectiveProjection/src/Cooling.c | 36 + .../PerspectiveProjection/src/Hadronic.c | 272 ++++++ .../PerspectiveProjection/src/HaloDensFun.c | 35 + .../PerspectiveProjection/src/Interpolation.c | 68 ++ .../PerspectiveProjection/src/Leptonic.c | 875 ++++++++++++++++++ .../analysis/PerspectiveProjection/src/Main.c | 743 +++++++++++++++ .../src/Make_Projection.c | 94 ++ .../PerspectiveProjection/src/Make_Slice.c | 35 + .../PerspectiveProjection/src/ReadTable.c | 117 +++ .../PerspectiveProjection/src/Synchrotron.c | 129 +++ .../PerspectiveProjection/src/Utilities.c | 122 +++ .../PerspectiveProjection/src/XRayMap.c | 41 + 21 files changed, 3148 insertions(+) create mode 100644 tool/analysis/PerspectiveProjection/Makefile create mode 100644 tool/analysis/PerspectiveProjection/README create mode 100644 tool/analysis/PerspectiveProjection/bin/.empty create mode 100644 tool/analysis/PerspectiveProjection/compile.sh create mode 100644 tool/analysis/PerspectiveProjection/include/General.h create mode 100644 tool/analysis/PerspectiveProjection/include/Macro.h create mode 100644 tool/analysis/PerspectiveProjection/include/Prototypes.h create mode 100644 tool/analysis/PerspectiveProjection/src/Array.c create mode 100644 tool/analysis/PerspectiveProjection/src/BinarySearch.c create mode 100644 tool/analysis/PerspectiveProjection/src/Cooling.c create mode 100644 tool/analysis/PerspectiveProjection/src/Hadronic.c create mode 100644 tool/analysis/PerspectiveProjection/src/HaloDensFun.c create mode 100644 tool/analysis/PerspectiveProjection/src/Interpolation.c create mode 100644 tool/analysis/PerspectiveProjection/src/Leptonic.c create mode 100644 tool/analysis/PerspectiveProjection/src/Main.c create mode 100644 tool/analysis/PerspectiveProjection/src/Make_Projection.c create mode 100644 tool/analysis/PerspectiveProjection/src/Make_Slice.c create mode 100644 tool/analysis/PerspectiveProjection/src/ReadTable.c create mode 100644 tool/analysis/PerspectiveProjection/src/Synchrotron.c create mode 100644 tool/analysis/PerspectiveProjection/src/Utilities.c create mode 100644 tool/analysis/PerspectiveProjection/src/XRayMap.c diff --git a/tool/analysis/PerspectiveProjection/Makefile b/tool/analysis/PerspectiveProjection/Makefile new file mode 100644 index 0000000000..3fe9bc4115 --- /dev/null +++ b/tool/analysis/PerspectiveProjection/Makefile @@ -0,0 +1,100 @@ +#MACRO += -DXRAY_ROSAT +#MACRO += -DXRAY_EROSITA +#MACRO += -DHADRONIC_GAMMARAY +#MACRO += -DLEPTONIC_GAMMARAY +#MACRO += -DSYNCHROTRON + + +#MACRO += -DNUM_THREADS=16 + +#MACRO += -DDEBUG + +#MACRO += -DFLOAT8 + + +CC := mpic++ + +CFLAGS = -Wall -O3 -std=c++11 +DEBUG_FLAG = -g +OPENMPFLAG = -fopenmp + + +########## +# TW3 +########## +#INC := -I/work/tseng0929/software/hdf5/hdf5-gnu-7.3/include \ +# -I/work/tseng0929/software/cfitsio/include \ +# -I/work/tseng0929/software/CCfits/include \ +# -I/work/tseng0929/software/gsl/2.7.1/include +# +#LIB := -L/work/tseng0929/software/hdf5/hdf5-gnu-7.3/lib -lhdf5 \ +# -L/work/tseng0929/software/cfitsio/lib -lcfitsio \ +# -L/work/tseng0929/software/CCfits/lib -lCCfits \ +# -L/work/tseng0929/software/gsl/2.7.1/lib -lgsl -lgslcblas + +########### +# Eureka +########### +#export PATH=/software/hdf5/default/bin:$PATH +#export PATH=/software/gsl/default/bin:$PATH +#export PATH=/software/gcc/9.3.0/bin:$PATH +#export PATH=/software/openmpi/4.1.1-ucx_mt-gnu-9.3.0/bin:$PATH +# +#export LD_LIBRARY_PATH=/software/hdf5/default/lib:$LD_LIBRARY_PATH +#export LD_LIBRARY_PATH=/projectW/tseng/opt/cfitsio/cfitsio-4.0.0/lib:$LD_LIBRARY_PATH +#export LD_LIBRARY_PATH=/projectW/tseng/opt/CCfits/CCfits-2.6/lib:$LD_LIBRARY_PATH +#export LD_LIBRARY_PATH=/projectW/tseng/opt/HEALPix/HEALPix-3.80/lib:$LD_LIBRARY_PATH +#export LD_LIBRARY_PATH=/software/intel/oneapi/compiler/2021.1.1/linux/compiler/lib/intel64_lin:$LD_LIBRARY_PATH +#export LD_LIBRARY_PATH=/projectW/tseng/opt/openmpi-gcc-9.3.0/lib:$LD_LIBRARY_PATH +#export LD_LIBRARY_PATH=/software/gsl/default/lib:$LD_LIBRARY_PATH + +INC := -I /software/hdf5/default/include \ + -I /projectW/tseng/opt/cfitsio/cfitsio-4.0.0/include \ + -I /projectW/tseng/opt/CCfits/CCfits-2.6/include \ + -I /software/gsl/default/include + +LIB := -L /software/hdf5/default/lib -lhdf5 \ + -L /projectW/tseng/opt/cfitsio/cfitsio-4.0.0/lib -lcfitsio \ + -L /projectW/tseng/opt/CCfits/CCfits-2.6/lib -lCCfits \ + -L /software/gsl/default/lib -lgsl -lgslcblas + +EXECUTABLE := Project + + + +## source files +CC_FILE = Main.c Array.c BinarySearch.c Cooling.c Interpolation.c ReadTable.c \ + Make_Projection.c Make_Slice.c XRayMap.c HaloDensFun.c Leptonic.c Hadronic.c \ + Synchrotron.c Utilities.c +SRC_PATH = src + + +## object files +OBJ_FILE = $(CC_FILE:.c=.o) +OBJ_PATH = objective +OBJ = $(patsubst %,$(OBJ_PATH)/%,$(OBJ_FILE)) + + +# header files +HEADER_FILE = Macro.h Prototypes.h General.h +INC_PATH = include +HEADER = $(patsubst %,$(INC_PATH)/%,$(HEADER_FILE)) + +ALL_FLAG = $(DEBUG_FLAG) $(OPENMPFLAG) $(LIB) $(INC) $(CFLAGS) $(MACRO) + +# Compiling +$(OBJ_PATH)/%.o : $(SRC_PATH)/%.c $(HEADER) + $(CC) $(ALL_FLAG) -o $@ -c $< + +# Linking +$(EXECUTABLE): $(OBJ) + @echo "Linking ..." + $(CC) -o $@ $^ $(LIB) $(OPENMPFLAG) + @echo "Done!" + @mv $(EXECUTABLE) bin/ + +.PHONY: +clean: + @rm -rf ${OBJ_PATH}/*.o + @rm -rf ${EXECUTABLE} + @rm -rf *.o rm ${EXECUTABLE} diff --git a/tool/analysis/PerspectiveProjection/README b/tool/analysis/PerspectiveProjection/README new file mode 100644 index 0000000000..32790534c1 --- /dev/null +++ b/tool/analysis/PerspectiveProjection/README @@ -0,0 +1,32 @@ +# Packages +eureka: +export PATH=/software/hdf5/default/bin:$PATH +export PATH=/software/gsl/default/bin:$PATH +export PATH=/software/gcc/9.3.0/bin:$PATH +export PATH=/software/openmpi/4.1.1-ucx_mt-gnu-9.3.0/bin:$PATH + +export LD_LIBRARY_PATH=/software/hdf5/default/lib:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=/projectW/tseng/opt/cfitsio/cfitsio-4.0.0/lib:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=/projectW/tseng/opt/CCfits/CCfits-2.6/lib:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=/projectW/tseng/opt/HEALPix/HEALPix-3.80/lib:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=/software/intel/oneapi/compiler/2021.1.1/linux/compiler/lib/intel64_lin:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=/projectW/tseng/opt/openmpi-gcc-9.3.0/lib:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=/software/gsl/default/lib:$LD_LIBRARY_PATH + + +Tw3: +module load compiler/intel/2020u4 OpenMPI/4.0.5 + +# Compile +make clean +make + + +# Example +sh compile.sh + # usage + ./Project_XRay FRB_Data_000035.h5 + + ./Project_Synchrotron FRB_Data_000035.h5 $OBSERVED_FREQ_HZ 1.1e6 $CRIndex >& log + + ./Project FRB_Data_000035.h5 $OBSERVED_ENGY_EV 1.1e6 $CRIndex R12/robitaille_DL07_PAHISMMix.dat >& log diff --git a/tool/analysis/PerspectiveProjection/bin/.empty b/tool/analysis/PerspectiveProjection/bin/.empty new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tool/analysis/PerspectiveProjection/compile.sh b/tool/analysis/PerspectiveProjection/compile.sh new file mode 100644 index 0000000000..37206098df --- /dev/null +++ b/tool/analysis/PerspectiveProjection/compile.sh @@ -0,0 +1,37 @@ +NUM_THREADS=32 # number of threads of openMP + + + +#==================================================================================================== +# Paths +#==================================================================================================== +# eureka +export PATH=/software/hdf5/default/bin:$PATH +export PATH=/software/gsl/default/bin:$PATH +export PATH=/software/gcc/9.3.0/bin:$PATH +export PATH=/software/openmpi/4.1.1-ucx_mt-gnu-9.3.0/bin:$PATH + +export LD_LIBRARY_PATH=/software/hdf5/default/lib:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=/projectW/tseng/opt/cfitsio/cfitsio-4.0.0/lib:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=/projectW/tseng/opt/CCfits/CCfits-2.6/lib:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=/projectW/tseng/opt/HEALPix/HEALPix-3.80/lib:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=/software/intel/oneapi/compiler/2021.1.1/linux/compiler/lib/intel64_lin:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=/projectW/tseng/opt/openmpi-gcc-9.3.0/lib:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=/software/gsl/default/lib:$LD_LIBRARY_PATH + +# TW3 +# module load compiler/intel/2020u4 OpenMPI/4.0.5 + + + +#==================================================================================================== +# Compile +#==================================================================================================== +make clean && make CFLAGS+=-DNUM_THREADS=${NUM_THREADS} CFLAGS+=-DXRAY_EROSITA +mv bin/Project bin/Project_XRay + +make clean && make CFLAGS+=-DNUM_THREADS=${NUM_THREADS} CFLAGS+=-DSYNCHROTRON +mv bin/Project bin/Project_Synchrotron + +make clean && make CFLAGS+=-DNUM_THREADS=${NUM_THREADS} CFLAGS+=-DLEPTONIC_GAMMARAY +mv bin/Project bin/Project_GammaRay diff --git a/tool/analysis/PerspectiveProjection/include/General.h b/tool/analysis/PerspectiveProjection/include/General.h new file mode 100644 index 0000000000..710fe5a38e --- /dev/null +++ b/tool/analysis/PerspectiveProjection/include/General.h @@ -0,0 +1,14 @@ +#include +#include +#include +#include +#include +#include +#include + +// parallel header +#include +#include + +#include "Macro.h" +#include "Prototypes.h" diff --git a/tool/analysis/PerspectiveProjection/include/Macro.h b/tool/analysis/PerspectiveProjection/include/Macro.h new file mode 100644 index 0000000000..a5e17c9c8c --- /dev/null +++ b/tool/analysis/PerspectiveProjection/include/Macro.h @@ -0,0 +1,128 @@ +#ifndef __MACRO__ +#define __MACRO__ + +#include + +#ifndef NUM_THREADS +# define NUM_THREADS 1 +#endif + +// single/double precision +#ifdef FLOAT8 +typedef double real; +#else +typedef float real; +#endif + +//#ifdef FLOAT8 +//# error: This code does not support double precision +//#endif + +# define ELECTRON_MASS ( 9.10938356e-28 ) // g +# define ELETRON_CHARGE ( 4.80320425e-10 ) // statcoulombs (cm**1.5 g**0.5 s**-1) +# define SPEED_OF_LIGHT ( 29979245800.0 ) // cm/s +# define MASS_PROTON_GRAM ( 1.6726219e-24 ) // g +# define PROTON_MASS_ENERGY ( 9.3827208816e8 ) // eV +# define BOLTZMANN_CONST_ERG ( 1.38064852e-16 ) // erg/K +# define BOLTZMANN_CONST_EV ( 8.617333262145e-5 ) // eV/K +# define REDUCED_PLANCK_EV ( 6.582119569e-16 ) // eV s +# define PLANCK_EV ( 4.135667696e-15 ) // eV s +# define ELECTRON_MASS_ENERGY ( 510998.95 ) // eV +# define THOMSON_CROSS_SECTION ( 6.652e-25 ) // cm**2 +# define ERG2EV ( 6.2415e11 ) // 1 erg = 6.2415e11 eV +# define EV2ERG ( 1.6021789633902107e-12 ) // 1 / ERG2EV +# define MILLIBARN_2_CM2 ( 1e-27 ) // 1 mb = 1e-27 cm**-2 + +#ifdef FLOAT8 +# define FABS( a ) fabs( a ) +# define SQRT( a ) sqrt( a ) +# define SIN( a ) sin( a ) +# define COS( a ) cos( a ) +# define TAN( a ) tan( a ) +# define POW( a , b ) pow( a , b ) +# define LOG( a ) log( a ) +# define EXP( a ) expf( a ) +# define MPI_MYREAL MPI_DOUBLE +# define EPSILON DBL_EPSILON +#else +# define FABS( a ) fabsf( a ) +# define SQRT( a ) sqrtf( a ) +# define SIN( a ) sinf( a ) +# define COS( a ) cosf( a ) +# define TAN( a ) tanf( a ) +# define POW( a , b ) powf( a , b ) +# define LOG( a ) logf( a ) +# define EXP( a ) exp( a ) +# define MPI_MYREAL MPI_FLOAT +# define EPSILON FLT_EPSILON +#endif // #ifdef FLOAT8 + +#define PERSPECTIVE_PROJECTION +//#define SLICE + + +// distance between the sun and GC +#define R_SUN (-8.0) // kpc + +// beta model +#define PEAK_DENS ( 0.11 ) // cm**-3 // 0.46-0.35 +#define CORE_RADIUS ( 0.08 ) // kpc // 0.35-0.27 +#define BETA ( 0.71 ) + +// Galacic halo +#define HALO_RADIUS ( 250.0 ) // kpc +#define HALO_TEMP ( 1.0e6 ) // Kelvien +#define MU_ELECTRON ( 1.67 ) // molecular weight per electron in the Galactic halo + +// Handy macro +#define STRING_LENGTH 50 +#define MAX(a, b) ( ( (a) > (b) ) ? (a) : (b) ) +#define SQR( x ) ( ( x ) * ( x ) ) +#define CUBE( x ) ( ( x ) * ( x ) * ( x ) ) +#define SIGN( a ) ( ( (a) < (real)0.0 ) ? (real)-1.0 : (real)+1.0 ) + +typedef struct Keys +{ + int UpperBound_ll; + int UpperBound_bb; +# ifdef PERSPECTIVE_PROJECTION + real b_max; + real b_min; + real l_max; + real l_min; + real dt; +# endif + char AMRDataName[STRING_LENGTH]; + char FRBDataName[STRING_LENGTH]; + uint64_t EpochTimeStampInFRBData; + int numAzimuthalAngle; +# if ( defined HADRONIC_GAMMARAY || defined LEPTONIC_GAMMARAY ) + real scatteredEnergy; +# elif ( defined SYNCHROTRON ) + real observedFreq; +# endif +# if ( defined HADRONIC_GAMMARAY || defined LEPTONIC_GAMMARAY || defined SYNCHROTRON ) + real gamma_max; + real gamma_min; + real spectral_index; +# endif +# ifdef SLICE + char CuttingPlane[STRING_LENGTH]; +# endif +} Keys_t; + + +#define STR( x ) #x +#define SHOW_MACRO( x ) STR( x ) + +// print function +#define MASTER_PRINT( fmt, ... ) \ + { \ + if ( MPI_Rank == 0 ) \ + { \ + printf( fmt, ##__VA_ARGS__ ); \ + fflush( stdout ); \ + } \ + } + +#endif diff --git a/tool/analysis/PerspectiveProjection/include/Prototypes.h b/tool/analysis/PerspectiveProjection/include/Prototypes.h new file mode 100644 index 0000000000..d57065f36a --- /dev/null +++ b/tool/analysis/PerspectiveProjection/include/Prototypes.h @@ -0,0 +1,69 @@ +#ifndef __PROTOTYPES__ +#define __PROTOTYPES__ + +#include "Macro.h" + + +// global variables +extern int MPI_Rank, NRank, RootRank; + + + +// utilities +void checkInt32Overflow( int32_t a, int32_t b, int operation, int line ); +bool checkNAN( real input, const char FunctionName[], const int line ); +bool checkMinus ( real input, const char FunctionName[], const int line ); +bool checkmemoryContiguous( real *Ptr, int sizeOf, int Length ); +void OutputBinary( void *Ptr, int size, int count, char Name [] ); + +// x_ray_map.c +void X_ray_3D( real ***Density, real ***Temperature, real ***Emissivity, + int numCellXYZ[], int numRow, real *tempTable, real *lambdaTable ); +real Xray_emissivity( real dens, real lambda ); + +void Synchrotron_3D( real ***CREngy, real spectral_index, real ***Synchrotron, real observedFreq, + int numCellXYZ[], real BoxSize[], real gamma_max, real gamma_min ); +void Leptonic_3D( real scatteredEnergy, real ***CREngy, real gamma_max, real gamma_min, real spectral_index, + real ***Emissivity, int numCellXYZ[], real BoxSize[], char **argv ); +void Hadronic_3D( real scatteredEnergy, real ***Density, real ***CREngy, + real gamma_max, real gamma_min, real spectral_index, + real ***Emissivity, int numCellXYZ[], real BoxSize[] ); +real GammaRay_Hadronic_Emissivity( real number_density, real CREngy, real scatteredEnergy, + real gamma_max, real gamma_min, real spectral_index ); +void Index2Position( const int Index[], double Pos[], const int numCellXYZ[], const real BoxSize[] ); + +// make_projection.c +real PerspectiveProject( real b, real l, real dt, real *XYZ[], int numCellXYZ[], real dxyz[], real azimuthalAngle, + real BoxSize[], real ***TargetQuantity, int numRow, real *tempTable, real *lambdaTable ); +void rotationMatrix( real x, real y, real z, real *xp, real *yp, real *zp, real angle ); + +// make_slice.c +real Slice( int Idx1, int Idx2, int numCellXYZ[], real ***TargetQuantity, char CuttingPlane[] ); + +// Interpolation.c +real TrilinearInterpolation( real *FieldAtVertices, real *xyz000, real *dxyz, real *xyz ); +real LinearInterpolation( real x1, real y1, real x2, real y2, real x ); + +// Array.c +void ***calloc_3d_array( size_t nt, size_t nr, size_t nc, size_t size ); +void free_3d_array( void ***array ); +void **calloc_2d_array( size_t nr, size_t nc, size_t size ); +void free_2d_array( void *array ); + +// BinarySearch.c +int BinarySearch( const real Array[], int Min, int Max, const real Key ); +int double_BinarySearch( const double Array[], int Min, int Max, const real Key ); + +// cooling.c +real Lambda( real Temp, int numRow, real *tempTable, real *lambdaTable ); + +// read_table.c +int CountNumLine( FILE *table ); +void ReadTable( int TargetColumn, int numRow, FILE *table, float *columnArray ); + +// haloFun.c +real haloDensFun( const real x, const real y, const real z ); +real xRayHalo( const real x, const real y, const real z, int numRow, real *tempTable, real *lambdaTable ); + + +#endif // #ifndef __PROTOTYPES__ diff --git a/tool/analysis/PerspectiveProjection/src/Array.c b/tool/analysis/PerspectiveProjection/src/Array.c new file mode 100644 index 0000000000..f0c2bd760c --- /dev/null +++ b/tool/analysis/PerspectiveProjection/src/Array.c @@ -0,0 +1,130 @@ +#include "../include/General.h" + + + +//------------------------------------------------------------------------------------------------------- +// Function : calloc_3d_array +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +void ***calloc_3d_array( size_t nt, size_t nr, size_t nc, size_t size ) +{ + void ***array; + size_t i, j; + + if ( (array = (void ***)calloc( nt, sizeof(void **) )) == NULL ) + { + printf( "[calloc_3d] failed to allocate memory for %d 1st-pointers\n", (int)nt ); + return NULL; + } + + if ( (array[0] = (void **)calloc( nt * nr, sizeof(void *) )) == NULL ) + { + printf( "[calloc_3d] failed to allocate memory for %d 2nd-pointers\n", (int)(nt*nr) ); + free ( (void *)array ); + return NULL; + } + + for (i=1; i return Min-1 +// if Key >= Array[Max] (maximum value) --> return Max +// 4. We must have "Max > Min" in the input parameters +// 5. Overloaded with different types +// 6. Explicit template instantiation is put in the end of this file +// +// Parameter : Array : Sorted look-up array (in ascending numerical order) +// Min : Minimum array index for searching +// Max : Maximum array index for searching +// Key : Target value to search for +// +// Return : Idx : if target is found +// Min-1 : if Key < Array[Min] +// Max : if Key >= Array[Max] +//------------------------------------------------------------------------------------------------------- +int BinarySearch( const real Array[], int Min, int Max, const real Key ) +{ + +// check whether the input key lies outside the target range + if ( Key < Array[Min] ) return Min-1; + if ( Key >= Array[Max] ) return Max; + + +// binary search + int Idx = -2; + + while ( ( Idx=(Min+Max)/2 ) != Min ) + { + if ( Array[Idx] > Key ) Max = Idx; + else Min = Idx; + } + + return Idx; + +} // FUNCTION : Mis_BinarySearch_Real + + + +int double_BinarySearch( const double Array[], int Min, int Max, const real Key ) +{ + +// check whether the input key lies outside the target range + if ( Key < Array[Min] ) return Min-1; + if ( Key >= Array[Max] ) return Max; + + +// binary search + int Idx = -2; + + while ( ( Idx=(Min+Max)/2 ) != Min ) + { + if ( Array[Idx] > Key ) Max = Idx; + else Min = Idx; + } + + return Idx; + +} // FUNCTION : Mis_BinarySearch_Real diff --git a/tool/analysis/PerspectiveProjection/src/Cooling.c b/tool/analysis/PerspectiveProjection/src/Cooling.c new file mode 100644 index 0000000000..26d770c21d --- /dev/null +++ b/tool/analysis/PerspectiveProjection/src/Cooling.c @@ -0,0 +1,36 @@ +#include +#include + +#include "../include/General.h" + + + +//------------------------------------------------------------------------------------------------------- +// Function : Lambda +// Description : +// Note : +// Parameter : +// Return : lambdaAtTemp +//------------------------------------------------------------------------------------------------------- +real Lambda( real Temp, int numRow, real *tempTable, real *lambdaTable ) +{ + real lambdaAtTemp; + const int Idx = BinarySearch( tempTable, 0, numRow-1, Temp ); + +// The target value is not between the sorted array + if ( Idx < 0 || Idx >= numRow-2 ) lambdaAtTemp = 0.0; + else lambdaAtTemp = LinearInterpolation( tempTable[Idx ], lambdaTable[Idx ], + tempTable[Idx+1], lambdaTable[Idx+1], Temp ); + +// gsl_interp_accel *acc = gsl_interp_accel_alloc (); +// gsl_spline *spline = gsl_spline_alloc (gsl_interp_cspline, numRow); +// +// gsl_spline_init (spline, tempTable, lambdaTable, numRow); +// +// lambdaAtTemp = gsl_spline_eval (spline, Temp, acc); +// +// gsl_spline_free (spline); +// gsl_interp_accel_free (acc); + + return lambdaAtTemp; +} // FUNCTION : Lambda diff --git a/tool/analysis/PerspectiveProjection/src/Hadronic.c b/tool/analysis/PerspectiveProjection/src/Hadronic.c new file mode 100644 index 0000000000..3ca92d4b09 --- /dev/null +++ b/tool/analysis/PerspectiveProjection/src/Hadronic.c @@ -0,0 +1,272 @@ +#include +#include + +#include "../include/General.h" + + + +struct Parameters_t +{ + double spectral_index; + double scatteredEnergy; +}; + +real crossSection( real Ep ); +real F_gamma ( real x, real Ep ); +double Integral( double lb, double ub, struct Parameters_t *parameters ); + + +//------------------------------------------------------------------------------------------------------- +// Function : Hadronic_3D +// Description : +// Note : +// Parameter : scatteredEnergy : scattered photon energy (eV) +// Density : gas density (g/cm**3) +// CREngy : CR energy density (eV/cm**3) +// gamma_max : the maximum Lorentz factor of CR +// gamma_min : the minimum Lorentz factor of CR +// spectral_index : the spectral index of CR +// numCellXYZ : number of cells on each side of box +// BoxSize : simulation box size +// +// Return : Emissivity : gamma-ray emissivity (eV/cm**3/s) +//------------------------------------------------------------------------------------------------------- +void Hadronic_3D( real scatteredEnergy, real ***Density, real ***CREngy, + real gamma_max, real gamma_min, real spectral_index, + real ***Emissivity, int numCellXYZ[], real BoxSize[] ) +{ +// 1. define the counts_i + int counts_i[NRank]; + for (int c=0; cspectral_index; + double scatteredEnergy = ((struct Parameters_t*)params)->scatteredEnergy; + double Ep = scatteredEnergy / x; + + return crossSection(Ep) * F_gamma(x, Ep) * pow(x, spectral_index); +} // FUNCTION : gsl_integrand + + + +//------------------------------------------------------------------------------------------------------- +// Function : Integral +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +double Integral( double lb, double ub, struct Parameters_t *parameters ) +{ + gsl_integration_workspace *w = gsl_integration_workspace_alloc(1000); + gsl_function F; + + F.function = &gsl_integrand; + F.params = (void*)parameters; + + double result, error; + int status, key; + key = 1; + + gsl_set_error_handler_off(); + + do + { + //if ( key>1 ) printf("Unstable! status: %d key: %d (%s: %d)\n", status, key, __FUNCTION__, __LINE__); + + status = gsl_integration_qag( &F, lb, ub, 0.0, 1e-7, 1000, key, w, &result, &error ); + + key++; + + } while( status && key<=6 ); + + if ( status ) { printf( "Error! status: %d (%s: %d)\n", status, __FUNCTION__, __LINE__ ); exit(0); } + + gsl_integration_workspace_free( w ); + + return result; +} // FUNCTION : Integral + + + +//------------------------------------------------------------------------------------------------------- +// Function : F_gamma +// Description : +// Note : +// Parameter : x : the ratio of scattered photon energy to proton energy, scatteredEnergy/Ep. +// Ep : the energy of proton (eV) +// +// Return : distribution function : Eq. (58) in Kelner (2006) (dimensionless) +//------------------------------------------------------------------------------------------------------- +real F_gamma( real x, real Ep ) +{ + real L, F_gamma; + real B, beta, k; + real factor; + + L = log( Ep / 1e12 ); // L = ln( Ep/1 TeV ) + B = 1.3 + 0.14*L + 0.011*L*L; + beta = 1.0 / ( 1.79 + 0.11*L + 0.008*L*L ); + k = 1.0 / ( 0.801 + 0.049*L + 0.014*L*L ); + + real pow_x_beta = pow( x, beta ); + real one_minus_pow_x_beta = 1.0 - pow_x_beta; + real k_times_pow_x_beta = k*pow_x_beta; + real ln_x = log(x); + real beta_times_pow_x_beta = beta * pow_x_beta; + + factor = one_minus_pow_x_beta; + factor /= 1.0 + k_times_pow_x_beta * one_minus_pow_x_beta; + factor *= factor; + factor *= factor; + + F_gamma = 1.0/ln_x; + F_gamma -= 4.0*beta_times_pow_x_beta/one_minus_pow_x_beta; + F_gamma -= 4.0*k*beta_times_pow_x_beta*(1.0-2.0*pow_x_beta)/(1.0+k_times_pow_x_beta*one_minus_pow_x_beta); + F_gamma *= B*ln_x*factor/x; + + return F_gamma; +} // FUNCTION : F_gamma + + + +//------------------------------------------------------------------------------------------------------- +// Function : F_gamma +// Description : +// Note : +// Parameter : Ep: the energy of incident proton (eV) +// +// Return : total cross section of pp-collision (cm^-2), Eq.(73) in Kelner (2006) +//------------------------------------------------------------------------------------------------------- +real crossSection( real Ep ) +{ + real Eth, factor, L; + + Eth = 1.22e9; // Eq(79), the threshold energy (eV) of production of neutral \pi meson + + factor = Eth / Ep; + factor *= factor; + factor *= factor; + factor = 1.0 - factor; + factor *= factor; + + L = log( Ep / 1e12 ); // L = ln( Ep/1 TeV ) + + return ( 34.3 + 1.88*L + 0.25*L*L ) * factor * MILLIBARN_2_CM2; +} // FUNCTION : crossSection diff --git a/tool/analysis/PerspectiveProjection/src/HaloDensFun.c b/tool/analysis/PerspectiveProjection/src/HaloDensFun.c new file mode 100644 index 0000000000..71d1d953e6 --- /dev/null +++ b/tool/analysis/PerspectiveProjection/src/HaloDensFun.c @@ -0,0 +1,35 @@ +#include "../include/General.h" + + + +//------------------------------------------------------------------------------------------------------- +// Function : haloDensFun +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +real haloDensFun( const real x, const real y, const real z ) +{ + const real r = SQRT( x*x + y*y + z*z ); + + return PEAK_DENS * POW( (real)1.0 + SQR( r / CORE_RADIUS ), -(real)1.5 * BETA ); +} // FUNCTION : haloDensFun + + + +//------------------------------------------------------------------------------------------------------- +// Function : xRayHalo +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +real xRayHalo( const real x, const real y, const real z, int numRow, real *tempTable, real *lambdaTable ) +{ + real dens = haloDensFun(x, y, z) * MASS_PROTON_GRAM * MU_ELECTRON; + + real lambda = Lambda( HALO_TEMP, numRow, tempTable, lambdaTable ); + + return Xray_emissivity( dens, lambda ); +} // FUNCTION : xRayHalo diff --git a/tool/analysis/PerspectiveProjection/src/Interpolation.c b/tool/analysis/PerspectiveProjection/src/Interpolation.c new file mode 100644 index 0000000000..59ee02e1fb --- /dev/null +++ b/tool/analysis/PerspectiveProjection/src/Interpolation.c @@ -0,0 +1,68 @@ +#include "../include/General.h" + + + +//------------------------------------------------------------------------------------------------------- +// Function : TrilinearInterpolation +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +real TrilinearInterpolation( real *FieldAtVertices, real *xyz000, real *dxyz, real *xyz ) +{ + real x1, y1, z1, x0, y0, z0, xd, yd, zd, x, y, z; + real c000, c001, c010, c100, c011, c101, c110, c111, c00, c01, c10, c11, c0, c1, c; + + x0 = xyz000[0]; + y0 = xyz000[1]; + z0 = xyz000[2]; + + x1 = xyz000[0] + dxyz[0]; + y1 = xyz000[1] + dxyz[1]; + z1 = xyz000[2] + dxyz[2]; + + x = xyz[0]; + y = xyz[1]; + z = xyz[2]; + + c000 = FieldAtVertices[0]; + c001 = FieldAtVertices[1]; + c010 = FieldAtVertices[2]; + c100 = FieldAtVertices[3]; + c011 = FieldAtVertices[4]; + c101 = FieldAtVertices[5]; + c110 = FieldAtVertices[6]; + c111 = FieldAtVertices[7]; + + xd = (x-x0)/(x1-x0); + yd = (y-y0)/(y1-y0); + zd = (z-z0)/(z1-z0); + + c00 = c000*(1.0-xd) + c100*xd; + c01 = c001*(1.0-xd) + c101*xd; + c10 = c010*(1.0-xd) + c110*xd; + c11 = c011*(1.0-xd) + c111*xd; + + c0 = c00*(1.0-yd) + c10*yd; + c1 = c01*(1.0-yd) + c11*yd; + + c = c0*(1.0-zd) + c1*zd; + + return c; +} // FUNCTION : TrilinearInterpolation + + + +//------------------------------------------------------------------------------------------------------- +// Function : LinearInterpolation +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +real LinearInterpolation( real x1, real y1, real x2, real y2, real x ) +{ + real dx = x2 - x1; + return ( y2 * ( x - x1 ) + y1 * ( x2 - x ) ) / dx; +} //FUNCTION : LinearInterpolation diff --git a/tool/analysis/PerspectiveProjection/src/Leptonic.c b/tool/analysis/PerspectiveProjection/src/Leptonic.c new file mode 100644 index 0000000000..5bef43245a --- /dev/null +++ b/tool/analysis/PerspectiveProjection/src/Leptonic.c @@ -0,0 +1,875 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../include/General.h" + + +#define kTwoPi (2.0*M_PI) +#define kSpeedOfLight_SI 299792458.0 // m/s +#define kConvertRadiansToDegrees (180.0/M_PI) + + + +struct Parameters_t +{ + double *energyBins; + double *numDensPerEnergyArray; + int energyBinsSize; + + double p_plus_2; + double scatteredEnergy; + double photonEnergy; + double gamma_max; + double (*fun_ptr)( double, double, double ); +}; + +real GammaRay_Leptonic_Emissivity( double energyBins[], double numDensPerEnergyArray[], + int energyBinsSize, real CREngy, real scatteredEnergy, + real gamma_max, real gamma_min, real spectral_index ); + +void ReadInModel( std::string, std::vector&, std::vector&, std::vector&, + std::vector&, std::vector>>& ); +void Interpolate3DRadiationField( std::array, std::valarray&, const std::vector&, const std::vector&, + const std::vector&, const std::vector>>& ); + +double gsl_integrandInner( double x, void *params ); +double gsl_integrandOuter( double epsilon, void *params ); +double integralInner( double lb, double ub, void *params ); +double integralOuter( double lb, double ub, struct Parameters_t *parameters ); +double cmb_differetial_number_density( double frequency ); +double distributionFun( const double gamma, const double photonEnergy, const double scatteredEnergy ); +double Bisection( double xmin, double xmax, double (*fun_ptr)(double,double,double), double tolerence, void *params ); +void FindLbUb( double xmin, double xmax, double (*fun)(double,double,double), void *params, double *lb, double *ub ); + +// gsl arrays (reuse the memory for better performance) +static gsl_integration_workspace *workspaces_inner[NUM_THREADS]; +static gsl_integration_workspace *workspaces_outer[NUM_THREADS]; +static gsl_interp_accel *accels [NUM_THREADS]; +static gsl_spline *splines [NUM_THREADS]; + + + +//------------------------------------------------------------------------------------------------------- +// Function : initialize_gsl_arrays +// Description : Allocate gsl arrays +// +// Note : Each MPI_Rank and each openMP thread should have their own array. +// +// Parameter : energyBinSize : +// +// Return : none +//------------------------------------------------------------------------------------------------------- +static void initialize_gsl_arrays( const int energyBinsSize ) +{ + for (int w=0; w r, phi, z, frequency; + + std::vector>> numdenlist; + + MASTER_PRINT( "Reading files ...\n" ); + + ReadInModel( indexfile, r, phi, z, frequency, numdenlist ); + + MPI_Barrier( MPI_COMM_WORLD ); + + MASTER_PRINT( "Reading files ... done\n" ); + + int energyBinsSize = frequency.size(); + + double *energyBins = (double*)malloc( energyBinsSize*sizeof(double) ); + + for (int i=0; i nd(0., frequency.size()); + std::array Pos_arr = { Pos[0], Pos[1], Pos[2]}; + Interpolate3DRadiationField( Pos_arr, nd, r, phi, z, numdenlist ); + + //// compute energy difference + //double diff_nd[energyBinsSize]; + + //for (int ndi=2; ndi& rarray, + std::vector& phiarray, + std::vector& zarray, + std::vector& frequency, + std::vector>>& numden) +{ +//const double kPlanck_SI = 6.62606876e-34; // J s +//const double e_SI = 1.602176462e-19; // positron charge in coulomb + const std::string prefix = name.substr( 0, name.find_last_of("/")+1 ); + + std::ifstream rf( name.c_str() ); + + std::string line; + std::getline( rf, line ); + const auto pos = line.find_first_of( "!!3D" ); + + if ( pos > line.size() ) + { + std::cerr << "Error reading 3D header from file" << '\n'; + rf.close(); + exit(-1); + } + + line.clear(); + std::getline( rf, line ); + std::vector totals; + { std::stringstream ss( line ); for (;;) { uint64_t val; ss >> val; if ( ss.fail() ) break; totals.push_back( val ); } } + auto volumeelements( totals[0] ), wlbins( totals[1] ), numfilters( totals[2] ), numrvals( totals[3] ), numphivals( totals[4] ), numzvals( totals[5] ); + + line.clear(); + std::getline(rf, line); + std::vector rdata; + { std::stringstream ss( line ); for (;;) { double val; ss >> val; if ( ss.fail() ) break; rdata.push_back( val ); } } + rarray.resize( rdata.size() ); + std::copy( rdata.begin(), rdata.end(), &rarray[0] ); + + line.clear(); + std::getline(rf, line); + std::vector phidata; + { std::stringstream ss( line ); for (;;) { double val; ss >> val; if ( ss.fail() ) break; phidata.push_back( val ); } } + phiarray.resize(phidata.size()); + std::copy( phidata.begin(), phidata.end(), &phiarray[0] ); + + line.clear(); + std::getline( rf, line ); + std::vector zdata; + { std::stringstream ss( line ); for (;;) { double val; ss >> val; if ( ss.fail() ) break; zdata.push_back( val ); } } + zarray.resize( zdata.size() ); + std::copy( zdata.begin(), zdata.end(), &zarray[0] ); + + double luminosity, dustmass; + rf >> luminosity >> dustmass; + + uint64_t stellarcomponents(0); + rf >> stellarcomponents; + + for (auto ic(0); ic> cname >> lum; + } + + uint64_t geometry; + std::array regiondata = {{ 0. }}; + rf >> geometry; + rf >> regiondata[0] >> regiondata[1] >> regiondata[2] >> regiondata[3] >> regiondata[4] >> regiondata[5]; + + for (auto iv(0); iv> idx; + rf >> x >> y >> z; + rf >> dx >> dy >> dz; + + std::string filterfilename, filtercountfilename, directfilename, scatteredfilename, transientfilename, thermalfilename, totalfilename, opticalfilename, infraredfilename, filterfluxfilename, fluxfilename; + rf >> filterfilename; + rf >> filtercountfilename; + rf >> directfilename; + rf >> scatteredfilename; + rf >> transientfilename; + rf >> thermalfilename; + rf >> totalfilename; + rf >> opticalfilename; + rf >> infraredfilename; + rf >> filterfluxfilename; + rf >> fluxfilename; + + const std::string fullfluxfilename = prefix + fluxfilename; + + CCfits::FITS fluxfile( fullfluxfilename, CCfits::Read ); + CCfits::ExtHDU& table = fluxfile.currentExtension(); + std::vector wl, total, direct, scattered, transient, thermal; + table.column(1).read( wl, 1, wlbins ); + table.column(2).read( total, 1, wlbins ); + table.column(3).read( direct, 1, wlbins ); + table.column(4).read( scattered, 1, wlbins ); + table.column(5).read( transient, 1, wlbins ); + table.column(6).read( thermal, 1, wlbins ); + + if ( frequency.size() == 0 ) + { + frequency.resize( wlbins, 0. ); + for (size_t iwl(0); iwl( 0., wlbins ) ); + std::copy( total.rbegin(), total.rend(), &(*numden.back())[0] ); // Copy is reverse order to make ascending with frequency + //for (auto i(0); i < frequency.size(); ++i) + // (*numden.back())[i] *= std::pow(kPlanck_SI/e_SI*frequency[i], -2.); // Convert to eV^-1 cm^-3 + } // for (auto iv(0); iv coord, + std::valarray& numberdensity, + const std::vector& rarr, + const std::vector& phiarr, + const std::vector& zarr, + const std::vector>>& numdenlist ) +{ + + const auto r2( coord[0]*coord[0] + coord[1]*coord[1] ), z( coord[2] ); + auto phi = std::atan2( coord[1], coord[0] ); + phi = ( phi < 0. ? phi + kTwoPi : (phi >= kTwoPi ? phi - kTwoPi : phi) ) * kConvertRadiansToDegrees; + + const auto r = ( r2 > rarr[0]*rarr[0] ? std::sqrt(r2) : rarr[0] ); + + if ( r >= rarr[rarr.size()-1] || z < zarr[0] || z >= zarr[zarr.size()-1] ) return; + + const auto ridx = std::upper_bound( rarr.begin(), rarr.end(), r ) - rarr.begin(); + const auto dr = (rarr[ridx] - rarr[ridx-1]); + assert( dr > 0. ); + + const auto rcoeff = ( rarr[ridx] - r ) / dr; + const auto phiidx = std::upper_bound( phiarr.begin(), phiarr.end(), phi ) - phiarr.begin(); + const auto dphi = ( phi < phiarr[phiarr.size()-1] ) ? ( phiarr[phiidx] - phiarr[phiidx-1] ) : ( 360. - phiarr[phiarr.size()-1] ); + assert( dphi > 0. ); + + const auto phicoeff = ( phi < phiarr[phiarr.size()-1] && dphi > 0. ) ? ( phiarr[phiidx] - phi ) / dphi : ( 360. - phi ) / dphi; + const auto zidx = std::upper_bound( zarr.begin(), zarr.end(), z ) - zarr.begin(); + const auto dz = ( zarr[zidx] - zarr[zidx-1] ); + assert( dz > 0. ); + + const auto zcoeff = ( zarr[zidx] - z ) / dz; + + size_t idx1, idx2, idx3, idx4, idx5, idx6, idx7, idx8; + + // This deals with the wrap around in phi coordinate between the last bin in the grid and 360./0. deg + if ( phi > phiarr[phiarr.size()-1] ) + { + idx1 = (zidx-1)*rarr.size()*phiarr.size() + (ridx-1)*phiarr.size() + (phiidx-1); + idx2 = (zidx-1)*rarr.size()*phiarr.size() + (ridx-1)*phiarr.size() + (0 ); + idx3 = (zidx-1)*rarr.size()*phiarr.size() + (ridx )*phiarr.size() + (phiidx-1); + idx4 = (zidx-1)*rarr.size()*phiarr.size() + (ridx )*phiarr.size() + (0 ); + idx5 = (zidx )*rarr.size()*phiarr.size() + (ridx-1)*phiarr.size() + (phiidx-1); + idx6 = (zidx )*rarr.size()*phiarr.size() + (ridx-1)*phiarr.size() + (0 ); + idx7 = (zidx )*rarr.size()*phiarr.size() + (ridx )*phiarr.size() + (phiidx-1); + idx8 = (zidx )*rarr.size()*phiarr.size() + (ridx )*phiarr.size() + (0 ); + } + else + { + idx1 = (zidx-1)*rarr.size()*phiarr.size() + (ridx-1)*phiarr.size() + (phiidx-1); + idx2 = (zidx-1)*rarr.size()*phiarr.size() + (ridx-1)*phiarr.size() + (phiidx ); + idx3 = (zidx-1)*rarr.size()*phiarr.size() + (ridx )*phiarr.size() + (phiidx-1); + idx4 = (zidx-1)*rarr.size()*phiarr.size() + (ridx )*phiarr.size() + (phiidx ); + idx5 = (zidx )*rarr.size()*phiarr.size() + (ridx-1)*phiarr.size() + (phiidx-1); + idx6 = (zidx )*rarr.size()*phiarr.size() + (ridx-1)*phiarr.size() + (phiidx ); + idx7 = (zidx )*rarr.size()*phiarr.size() + (ridx )*phiarr.size() + (phiidx-1); + idx8 = (zidx )*rarr.size()*phiarr.size() + (ridx )*phiarr.size() + (phiidx ); + } // if ( phi > phiarr[phiarr.size()-1] ) ... else ... + + const auto& numberdensity1 = *numdenlist[idx1]; + const auto& numberdensity2 = *numdenlist[idx2]; + const auto& numberdensity3 = *numdenlist[idx3]; + const auto& numberdensity4 = *numdenlist[idx4]; + const auto& numberdensity5 = *numdenlist[idx5]; + const auto& numberdensity6 = *numdenlist[idx6]; + const auto& numberdensity7 = *numdenlist[idx7]; + const auto& numberdensity8 = *numdenlist[idx8]; + + numberdensity = numberdensity1 * zcoeff * rcoeff * phicoeff + + numberdensity2 * zcoeff * rcoeff * ( 1. - phicoeff ) + + numberdensity3 * zcoeff * ( 1. - rcoeff ) * phicoeff + + numberdensity4 * zcoeff * ( 1. - rcoeff ) * ( 1. - phicoeff ) + + numberdensity5 * ( 1. - zcoeff )* rcoeff * phicoeff + + numberdensity6 * ( 1. - zcoeff )* rcoeff * ( 1. - phicoeff ) + + numberdensity7 * ( 1. - zcoeff )* ( 1. - rcoeff ) * phicoeff + + numberdensity8 * ( 1. - zcoeff )* ( 1. - rcoeff ) * ( 1. - phicoeff ); +} // FUNCTION : Interpolate3DRadiationField + + + +//------------------------------------------------------------------------------------------------------- +// Function : numDensAtEnergy +// Description : +// Note : +// Parameter : photonEnergy : incident photon energy (eV) +// energyBins : 2.734140e+10*PLANCK_EV - 3.287159e+15*PLANCK_EV (eV) +// numDensPerEnergyArray : differential number density ( 1 eV**-1 cm**-3 ) +// energyBinsSize : 128 +// +// Return : numDensAtEnergy : number density of ISRF at a specific energy ( 1 eV**-1 cm**-3 ) +//------------------------------------------------------------------------------------------------------- +double numDensAtEnergy( double photonEnergy, double energyBins[], double numDensPerEnergyArray[], int energyBinsSize ) +{ + const int tid = omp_get_thread_num(); + double numDensAtEnergy; + + gsl_interp_accel *acc = accels [tid]; + gsl_spline *spline = splines[tid]; + + gsl_spline_init( spline, energyBins, numDensPerEnergyArray, energyBinsSize ); + + numDensAtEnergy = gsl_spline_eval( spline, photonEnergy, acc ); + + return numDensAtEnergy; +} // FUNCTION : numDensAtEnergy + + + +//------------------------------------------------------------------------------------------------------- +// Function : calloc_3d_array +// Description : +// Note : +// Parameter : gamma : the Lorentz factor of CR +// photonEnergy : the energy of incident photon (eV) +// scatteredEnergy : the energy of scattered photon (eV) +// +// Return : f : distribution function (dimensionless) +//------------------------------------------------------------------------------------------------------- +double distributionFun( const double gamma, const double photonEnergy, const double scatteredEnergy ) +{ + const double cr_engy = gamma * ELECTRON_MASS_ENERGY; + const double Gamma = 4.0 * photonEnergy * gamma / ELECTRON_MASS_ENERGY; + const double q = 1.0 / ( cr_engy/scatteredEnergy - 1.0 ) / Gamma; + const double Gamma_q = Gamma * q; + const double one_minus_q = 1.0 - q; + + double f; + + f = 2.0*q*log(q); + f += ( 1.0+2.0*q )*one_minus_q; + f += 0.5 * Gamma_q * Gamma_q * one_minus_q / ( 1.0 + Gamma_q ); + + return f; +} // FUNCTION : distributionFun + + + +//------------------------------------------------------------------------------------------------------- +// Function : gsl_integrandInner +// Description : +// Note : +// Parameter : gamma : the Lorentz factor of CRe +// Return : +//------------------------------------------------------------------------------------------------------- +double gsl_integrandInner( double gamma, void *params ) +{ + const double p_plus_2 = ((struct Parameters_t*)params)->p_plus_2; + const double scatteredEnergy = ((struct Parameters_t*)params)->scatteredEnergy; + const double photonEnergy = ((struct Parameters_t*)params)->photonEnergy; + + return pow( gamma, -p_plus_2 ) * distributionFun( gamma, photonEnergy, scatteredEnergy ); +} // FUNCTION : gsl_integrandInner + + + +//------------------------------------------------------------------------------------------------------- +// Function : integralInner +// Description : +// Note : +// Parameter : ub: gamma_max +// lb: gamma_min +// Return : +//------------------------------------------------------------------------------------------------------- +double integralInner( double lb, double ub, void *params ) +{ + const int tid = omp_get_thread_num(); + gsl_integration_workspace *w = workspaces_inner[tid]; + gsl_function F; + + F.function = &gsl_integrandInner; + F.params = params; + + double result, error; + int status, key; + + key = 1; + gsl_set_error_handler_off(); + + do + { + //if ( key>1 ) printf( "Unstable! status: %d key: %d (%s: %d)\n", status, key, __FUNCTION__, __LINE__ ); + status = gsl_integration_qag( &F, lb, ub, 0.0, 1e-7, 1000, key, w, &result, &error ); + key++; + } while ( status && key <= 6 ); + + if ( status ) + { + printf( "Error! status: %d (%s: %d)\n", status, __FUNCTION__, __LINE__ ); +# ifdef DEBUG + printf( "scatteredEnergy = %20.16e\n", ((struct Parameters_t*)params)->scatteredEnergy ); + printf( "gamma_max = %20.16e\n", ((struct Parameters_t*)params)->gamma_max ); + printf( "photonEnergy = %20.16e\n", ((struct Parameters_t*)params)->photonEnergy ); + printf( "lb=%20.16e, ub=%20.16e\n", lb, ub ); +# endif + exit(0); + } // if ( status ) + return result; +} // FUNCTION : integralInner + + + +//------------------------------------------------------------------------------------------------------- +// Function : gsl_integrandOuter +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +double gsl_integrandOuter( double photonEnergy, void *params ) +{ + double *numDensPerEnergyArray = ((struct Parameters_t*)params)->numDensPerEnergyArray; + double *energyBins = ((struct Parameters_t*)params)->energyBins; + double scatteredEnergy = ((struct Parameters_t*)params)->scatteredEnergy; + int energyBinsSize = ((struct Parameters_t*)params)->energyBinsSize; + double gamma_max = ((struct Parameters_t*)params)->gamma_max; + double (*fun_ptr)(double,double,double) = ((struct Parameters_t*)params)->fun_ptr; + + ((struct Parameters_t*)params)->photonEnergy = photonEnergy; + + double lb, ub; + double reduced_scatteredEnergy = scatteredEnergy / ELECTRON_MASS_ENERGY; + + lb = reduced_scatteredEnergy; + lb += sqrt( SQR( reduced_scatteredEnergy ) + scatteredEnergy/photonEnergy ); + lb *= 0.5; + + ub = gamma_max; + + if ( ub <= lb ) return 0.0; + + return numDensAtEnergy( photonEnergy, energyBins, numDensPerEnergyArray, energyBinsSize ) * + ( scatteredEnergy / photonEnergy ) * + integralInner( lb, gamma_max, params ); +} // FUNCTION : gsl_integrandOuter + + + +//------------------------------------------------------------------------------------------------------- +// Function : integralOuter +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +double integralOuter( double lb, double ub, struct Parameters_t *parameters ) +{ + const int tid = omp_get_thread_num(); + gsl_integration_workspace *w = workspaces_outer[tid]; + gsl_function F; + + F.function = &gsl_integrandOuter; + F.params = (void*)parameters; + + double result, error; + int status, key; + int key_ini = 6; + key = key_ini; + + gsl_set_error_handler_off(); + + do + { + //if ( key>key_ini ) printf("Unstable! status: %d key: %d (%s: %d)\n", status, key, __FUNCTION__, __LINE__); + status = gsl_integration_qag( &F, lb, ub, 0.0, 1e-7, 1000, key, w, &result, &error ); + key++; + } while ( status && key <= 6 ); + + if ( status ) + { + printf( "Error! status: %d (%s: %d)\n", status, __FUNCTION__, __LINE__ ); +# ifdef DEBUG + printf( "scatteredEnergy = %20.16e\n", ((struct Parameters_t*)parameters)->scatteredEnergy ); + printf( "gamma_max = %20.16e\n", ((struct Parameters_t*)parameters)->gamma_max ); + printf( "photonEnergy = %20.16e\n", ((struct Parameters_t*)parameters)->photonEnergy ); + printf( "lb=%20.16e, ub=%20.16e\n", lb, ub ); +# endif + exit(0); + } // if ( status ) + return result; +} // FUNCTION : integralOuter + + + +//------------------------------------------------------------------------------------------------------- +// Function : cmb_differential_number_density +// Description : +// Note : +// Parameter : frequency: the frequency of emitted photon (Hz) +// Return : n : differential number density ( 1 eV**-1 cm**-3 ) +//------------------------------------------------------------------------------------------------------- +double cmb_differetial_number_density( double frequency ) +{ + const double temperature = 2.72548; // in unit K + const double energy = REDUCED_PLANCK_EV * 2.0 * M_PI * frequency; // photon energy + const double kT = BOLTZMANN_CONST_EV * temperature; + double n; + + n = SQR(energy); + n /= ( EXP( energy/kT ) - 1.0 ); + n /= M_PI* M_PI * pow( REDUCED_PLANCK_EV*SPEED_OF_LIGHT, 3.0 ); + + return n; +} // FUNCTION : cmb_differetial_number_density + + + +// Belows are useless +//------------------------------------------------------------------------------------------------------- + + + +//------------------------------------------------------------------------------------------------------- +// Function : Bisection +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +double Bisection( double xmin, double xmax, double (*fun)(double,double,double), double tolerance, void *params ) +{ + double scatteredEnergy = ((struct Parameters_t*)params)->scatteredEnergy; + double photonEnergy = ((struct Parameters_t*)params)->photonEnergy; + + double x, fun_x; + + const int itrMax = 100; + int itr = 1; + + while ( itr <= itrMax ) + { + x = 0.5*( xmin + xmax ); + + fun_x = fun( x, photonEnergy, scatteredEnergy ); + + if ( fun_x == 0.0 || ( 1.0-xmin/xmax < tolerance && fun_x > 0.0 ) ) return x; + + itr++; + + if ( SIGN(fun_x) == SIGN(fun(xmin, photonEnergy, scatteredEnergy)) ) + xmin = x; + else + xmax = x; + } // while ( itr <= itrMax ) + + return x; +} // FUNCTION : Bisection + + + +//------------------------------------------------------------------------------------------------------- +// Function : FindLbUb +// Description : +// Note : +// Parameter : +// Return : none +//------------------------------------------------------------------------------------------------------- +void FindLbUb( double xmin, double xmax, double (*fun)(double,double,double), void *params, double *lb, double *ub ) +{ + double scatteredEnergy = ((struct Parameters_t*)params)->scatteredEnergy; + double photonEnergy = ((struct Parameters_t*)params)->photonEnergy; + + *lb = xmax; + + do + { + *ub = *lb; + *lb = 0.5*( *lb+xmin ); + } while ( fun( *lb, photonEnergy, scatteredEnergy ) >= 0.0 ); +} // FUNCTION : FindLbUb diff --git a/tool/analysis/PerspectiveProjection/src/Main.c b/tool/analysis/PerspectiveProjection/src/Main.c new file mode 100644 index 0000000000..838379b346 --- /dev/null +++ b/tool/analysis/PerspectiveProjection/src/Main.c @@ -0,0 +1,743 @@ +#include + +#include "../include/General.h" +#include "hdf5.h" + +#define GCC_VERSION ( __GNUC__ * 10000 \ + + __GNUC_MINOR__ * 100 \ + + __GNUC_PATCHLEVEL__ ) + +#ifdef XRAY_ROSAT +# warning: XRAY_ROSAT defined! +#endif + +#ifdef XRAY_EROSITA +# warning: XRAY_EROSITA defined! +#endif + +#ifdef HADRONIC_GAMMARAY +# warning: HADRONIC_GAMMARAY defined! +#endif + +#ifdef LEPTONIC_GAMMARAY +# warning: LEPTONIC_GAMMARAY defined! +#endif + +#ifdef SYNCHROTRON +# warning: SYNCHROTRON defined! +#endif + + +herr_t LoadCompoundData( const char *FieldName, void *FieldPtr, const hid_t H5_SetID_Target, const hid_t H5_TypeID_Target ); +herr_t checkH5Status( const herr_t status1, const herr_t status2 ); + +int MPI_Rank, NRank, RootRank; + + + +//------------------------------------------------------------------------------------------------------- +// Function : main +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +int main( int argc, char **argv ) +{ +// 1. initialize + MPI_Init( &argc, &argv ); + MPI_Comm_rank( MPI_COMM_WORLD, &MPI_Rank ); + MPI_Comm_size( MPI_COMM_WORLD, &NRank ); + RootRank = 0; + + MASTER_PRINT( "NRank = %d, NTHREAD = %d\n", NRank, NUM_THREADS ); + +// there is run-time error on tw3 with compiler/gcc/7.5.0 +# if ( GCC_VERSION == 70500 ) +# error : We recommand use gcc 9.4.0 +# endif + +// 2. parameters +# if ( defined XRAY_ROSAT || defined XRAY_EROSITA ) + FILE *table_08_keV = fopen( "cf_0.8keV.dat", "r" ); + FILE *table_15_keV = fopen( "cf_1.5keV.dat", "r" ); + + if ( MPI_Rank == RootRank ) + { + if ( table_15_keV == NULL ) { printf( "ERROR: Could not open file table_15_keV!\n" ); exit(-1); } + if ( table_08_keV == NULL ) { printf( "Error! Could not open file table_08_keV!\n" ); exit(-1); } + } // if ( MPI_Rank == RootRank ) +# endif // #if ( defined XRAY_ROSAT || defined XRAY_EROSITA ) + + +# ifdef PERSPECTIVE_PROJECTION +// numAngle should be a factor of 360 + const int numAzimuthalAngle = 1; + const int numCellB = 360, numCellL = 360; + + if ( numCellB != numCellL ) + { + MASTER_PRINT( "numCellB != numCellL\n" ); + exit(0); + } + + const real b_max = +90.0, b_min = -90.0; + const real l_max = +180.0, l_min = -180.0; +# endif // #ifdef PERSPECTIVE_PROJECTION + +# ifdef SLICE + const char CuttingPlane[1] = "x"; +# endif + +// 3. Load data + hid_t FRB_file; + hid_t FRB_group1, FRB_group2; + hid_t FRB_dset1G1, FRB_dset2G1, FRB_dset3G1, FRB_dset4G1, FRB_dset5G1; + hid_t H5_SetID_KeyInfo, H5_TypeID_KeyInfo; + herr_t H5_Status; + +// 3-1. Open FRB_file using the default properties. + FRB_file = H5Fopen( argv[1], H5F_ACC_RDONLY, H5P_DEFAULT ); + FRB_group2 = H5Gopen( FRB_file, "Info", H5P_DEFAULT ); + H5_SetID_KeyInfo = H5Dopen( FRB_group2, "Keys", H5P_DEFAULT ); + H5_TypeID_KeyInfo = H5Dget_type( H5_SetID_KeyInfo ); + + int numCellX, numCellY, numCellZ; + real BoxSizeX, BoxSizeY, BoxSizeZ; + real Unit_L, Unit_M, Unit_T, Unit_V, Unit_D, Unit_E, Unit_P; + + LoadCompoundData( "numCellX", &numCellX, H5_SetID_KeyInfo, H5_TypeID_KeyInfo ); + LoadCompoundData( "numCellY", &numCellY, H5_SetID_KeyInfo, H5_TypeID_KeyInfo ); + LoadCompoundData( "numCellZ", &numCellZ, H5_SetID_KeyInfo, H5_TypeID_KeyInfo ); + LoadCompoundData( "BoxSizeX", &BoxSizeX, H5_SetID_KeyInfo, H5_TypeID_KeyInfo ); + LoadCompoundData( "BoxSizeY", &BoxSizeY, H5_SetID_KeyInfo, H5_TypeID_KeyInfo ); + LoadCompoundData( "BoxSizeZ", &BoxSizeZ, H5_SetID_KeyInfo, H5_TypeID_KeyInfo ); + LoadCompoundData( "Unit_L", &Unit_L, H5_SetID_KeyInfo, H5_TypeID_KeyInfo ); + LoadCompoundData( "Unit_M", &Unit_M, H5_SetID_KeyInfo, H5_TypeID_KeyInfo ); + LoadCompoundData( "Unit_T", &Unit_T, H5_SetID_KeyInfo, H5_TypeID_KeyInfo ); + LoadCompoundData( "Unit_V", &Unit_V, H5_SetID_KeyInfo, H5_TypeID_KeyInfo ); + LoadCompoundData( "Unit_D", &Unit_D, H5_SetID_KeyInfo, H5_TypeID_KeyInfo ); + LoadCompoundData( "Unit_E", &Unit_E, H5_SetID_KeyInfo, H5_TypeID_KeyInfo ); + LoadCompoundData( "Unit_P", &Unit_P, H5_SetID_KeyInfo, H5_TypeID_KeyInfo ); + + MASTER_PRINT( "numCellX=%d\nnumCellY=%d\nnumCellZ=%d\n", numCellX, numCellY, numCellZ ); + MASTER_PRINT( "BoxSizeX=%e\nBoxSizeY=%e\nBoxSizeZ=%e\n", BoxSizeX, BoxSizeY, BoxSizeZ ); + MASTER_PRINT( "Unit_L=%e\nUnit_M=%e\nUnit_T=%e\nUnit_V=%e\nUnit_D=%e\nUnit_E=%e\nUnit_P=%e\n", + Unit_L, Unit_M, Unit_T, Unit_V, Unit_D, Unit_E, Unit_P ); + + if ( numCellX%NRank != 0 ) + { + MASTER_PRINT( "numCellX(%d) %% NRank(%d) != 0\n", numCellX, NRank ); + exit(0); + } + +// 3D array to store the field to be projected + real*** Density = (real***)calloc_3d_array( (size_t)numCellX, (size_t)numCellY, (size_t)numCellZ, sizeof(real) ); + real*** Temperature = (real***)calloc_3d_array( (size_t)numCellX, (size_t)numCellY, (size_t)numCellZ, sizeof(real) ); + real*** Pressure = (real***)calloc_3d_array( (size_t)numCellX, (size_t)numCellY, (size_t)numCellZ, sizeof(real) ); + real*** Xray_08_keV = (real***)calloc_3d_array( (size_t)numCellX, (size_t)numCellY, (size_t)numCellZ, sizeof(real) ); + real*** Xray_15_keV = (real***)calloc_3d_array( (size_t)numCellX, (size_t)numCellY, (size_t)numCellZ, sizeof(real) ); + real*** CREngy = (real***)calloc_3d_array( (size_t)numCellX, (size_t)numCellY, (size_t)numCellZ, sizeof(real) ); + real*** Passive_0001 = (real***)calloc_3d_array( (size_t)numCellX, (size_t)numCellY, (size_t)numCellZ, sizeof(real) ); + real*** HadronicGammaRay = (real***)calloc_3d_array( (size_t)numCellX, (size_t)numCellY, (size_t)numCellZ, sizeof(real) ); + real*** LeptonicGammaRay = (real***)calloc_3d_array( (size_t)numCellX, (size_t)numCellY, (size_t)numCellZ, sizeof(real) ); + real*** Synchrotron = (real***)calloc_3d_array( (size_t)numCellX, (size_t)numCellY, (size_t)numCellZ, sizeof(real) ); + + real deltaX = (real)BoxSizeX / (real)numCellX; + real deltaY = (real)BoxSizeY / (real)numCellY; + real deltaZ = (real)BoxSizeZ / (real)numCellZ; + + + real *X = (real*)calloc( (size_t)numCellX, sizeof(real) ); + real *Y = (real*)calloc( (size_t)numCellY, sizeof(real) ); + real *Z = (real*)calloc( (size_t)numCellZ, sizeof(real) ); + +# ifdef PERSPECTIVE_PROJECTION + real dxyz[3] = { deltaX, deltaY, deltaZ }; + real *XYZ[3] = { X, Y, Z }; + int numCellXYZ[3] = { numCellX, numCellY, numCellZ }; +# endif + + for ( int x=0; x Dens * UNIT_D +// Pres --> Pres * UNIT_P +// =========================================================== + for (int i=0; iFRBDataName, argv[1] ); + + Keys->UpperBound_ll = UpperBound_ll; + Keys->UpperBound_bb = UpperBound_bb; + Keys->numAzimuthalAngle = numAzimuthalAngle; +# if ( defined HADRONIC_GAMMARAY || defined LEPTONIC_GAMMARAY ) + Keys->scatteredEnergy = scatteredEnergy; +# elif ( defined SYNCHROTRON ) + Keys->observedFreq = observedFreq; +# endif +# if ( defined HADRONIC_GAMMARAY || defined LEPTONIC_GAMMARAY || defined SYNCHROTRON ) + Keys->gamma_max = gamma_max; + Keys->gamma_min = gamma_min; + Keys->spectral_index = spectral_index; +# endif +# ifdef PERSPECTIVE_PROJECTION + Keys->b_max = b_max; + Keys->b_min = b_min; + Keys->l_max = l_max; + Keys->l_min = l_min; + Keys->dt = dt; +# endif + + LoadCompoundData( "AMRDataName", &(Keys->AMRDataName), H5_SetID_KeyInfo, H5_TypeID_KeyInfo ); + LoadCompoundData( "EpochTimeStamp", &(Keys->EpochTimeStampInFRBData), H5_SetID_KeyInfo, H5_TypeID_KeyInfo ); + +// Create a new file using the default properties. +# ifdef PERSPECTIVE_PROJECTION + char MapName[STRING_LENGTH] = "Projected_FRB_"; +# endif +# ifdef SLICE + char MapName[STRING_LENGTH] = "Slice_FRB_"; +# endif + + strcat( MapName, Keys->AMRDataName ); + +# if ( defined SYNCHROTRON ) + strcat( MapName, "_Synchrotron" ); +# endif + +# if ( defined LEPTONIC_GAMMARAY || defined HADRONIC_GAMMARAY || SYNCHROTRON ) + strcat( MapName, "_" ); + strcat( MapName, argv[2] ); + strcat( MapName, "_" ); + strcat( MapName, argv[3] ); + strcat( MapName, "_" ); + strcat( MapName, argv[4] ); +# endif + +# if ( defined XRAY_ROSAT || defined XRAY_EROSITA ) + strcat( MapName, "_XRay" ); +# endif + + pp_file = H5Fcreate( strcat(MapName, ".h5"), H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT ); + +// Create groups in the file. + pp_group1 = H5Gcreate( pp_file, "/Map", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + pp_group2 = H5Gcreate( pp_file, "/Info", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + + const hsize_t dims[3] = { numAzimuthalAngle, UpperBound_ll, UpperBound_bb }; + +// Create dataspace. Setting maximum size to NULL sets the maximum size to be the current size. + pp_spaceDS1G1 = H5Screate_simple( 3, dims, NULL ); + pp_spaceDS2G1 = H5Screate_simple( 3, dims, NULL ); + pp_spaceDS3G1 = H5Screate_simple( 3, dims, NULL ); + pp_spaceDS4G1 = H5Screate_simple( 3, dims, NULL ); + pp_spaceDS5G1 = H5Screate_simple( 3, dims, NULL ); + pp_spaceDS6G1 = H5Screate_simple( 3, dims, NULL ); + pp_spaceDS7G1 = H5Screate_simple( 3, dims, NULL ); + pp_spaceDS8G1 = H5Screate_simple( 3, dims, NULL ); + pp_spaceDS9G1 = H5Screate_simple( 3, dims, NULL ); + pp_spaceDS10G1 = H5Screate_simple( 3, dims, NULL ); + pp_spaceKey = H5Screate( H5S_SCALAR ); + + typeID = H5Tcreate( H5T_COMPOUND, sizeof(Keys_t) ); + + H5Tinsert( typeID, "UpperBound_bb", HOFFSET(Keys_t, UpperBound_bb ), H5T_NATIVE_INT ); + H5Tinsert( typeID, "UpperBound_ll", HOFFSET(Keys_t, UpperBound_ll ), H5T_NATIVE_INT ); + H5Tinsert( typeID, "numAzimuthalAngle", HOFFSET(Keys_t, numAzimuthalAngle), H5T_NATIVE_INT ); +# if ( defined HADRONIC_GAMMARAY || defined LEPTONIC_GAMMARAY ) + H5Tinsert( typeID, "scatteredEnergy", HOFFSET(Keys_t, scatteredEnergy), H5T_IEEE_F32LE ); +# elif ( defined SYNCHROTRON ) + H5Tinsert( typeID, "observedFreq", HOFFSET(Keys_t, observedFreq), H5T_IEEE_F32LE ); +# endif +# if ( defined HADRONIC_GAMMARAY || defined LEPTONIC_GAMMARAY || defined SYNCHROTRON ) + H5Tinsert( typeID, "gamma_max", HOFFSET(Keys_t, gamma_max), H5T_IEEE_F32LE ); + H5Tinsert( typeID, "gamma_min", HOFFSET(Keys_t, gamma_min), H5T_IEEE_F32LE ); + H5Tinsert( typeID, "spectral_index", HOFFSET(Keys_t, spectral_index), H5T_IEEE_F32LE ); +# endif +# ifdef PERSPECTIVE_PROJECTION + H5Tinsert( typeID, "b_max", HOFFSET(Keys_t, b_max ), H5T_IEEE_F32LE ); + H5Tinsert( typeID, "b_min", HOFFSET(Keys_t, b_min ), H5T_IEEE_F32LE ); + H5Tinsert( typeID, "l_max", HOFFSET(Keys_t, l_max ), H5T_IEEE_F32LE ); + H5Tinsert( typeID, "l_min", HOFFSET(Keys_t, l_min ), H5T_IEEE_F32LE ); + H5Tinsert( typeID, "dt", HOFFSET(Keys_t, dt ), H5T_IEEE_F32LE ); +# endif + H5Tinsert( typeID, "EpochTimeStampInFRBData", HOFFSET(Keys_t, EpochTimeStampInFRBData ), H5T_NATIVE_UINT64 ); + +// create the "variable-length string" datatype + hid_t H5_TypeID_VarStr; + + H5_TypeID_VarStr = H5Tcopy( H5T_C_S1 ); + H5_Status = H5Tset_size( H5_TypeID_VarStr, STRING_LENGTH ); + if ( H5_Status < 0 ) { printf( "H5Tset_size() fails!: %d\n", __LINE__ ); exit(0); } + + H5Tinsert( typeID, "AMRDataName", HOFFSET(Keys_t, AMRDataName ), H5_TypeID_VarStr ); + H5Tinsert( typeID, "FRBDataName", HOFFSET(Keys_t, FRBDataName ), H5_TypeID_VarStr ); +# ifdef SLICE + H5Tinsert( typeID, "CuttingPlane", HOFFSET(Keys_t, CuttingPlane ), H5_TypeID_VarStr ); +# endif + H5Tclose( H5_TypeID_VarStr ); + + +// Create the dataset. We will use all default properties for this example. +# ifdef PERSPECTIVE_PROJECTION + pp_DS1G1 = H5Dcreate( pp_group1, "ProjectedDensity" , H5T_IEEE_F32LE, pp_spaceDS1G1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + pp_DS2G1 = H5Dcreate( pp_group1, "ProjectedPressure", H5T_IEEE_F32LE, pp_spaceDS2G1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + pp_DS3G1 = H5Dcreate( pp_group1, "ProjectedTemperature", H5T_IEEE_F32LE, pp_spaceDS3G1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + pp_DS4G1 = H5Dcreate( pp_group1, "ProjectedXray_08_keV", H5T_IEEE_F32LE, pp_spaceDS4G1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + pp_DS5G1 = H5Dcreate( pp_group1, "ProjectedXray_15_keV", H5T_IEEE_F32LE, pp_spaceDS5G1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + pp_DS6G1 = H5Dcreate( pp_group1, "ProjectedCRay", H5T_IEEE_F32LE, pp_spaceDS6G1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + pp_DS7G1 = H5Dcreate( pp_group1, "ProjectedPassive_0001", H5T_IEEE_F32LE, pp_spaceDS7G1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + pp_DS8G1 = H5Dcreate( pp_group1, "ProjectedHadronicGammaRay", H5T_IEEE_F32LE, pp_spaceDS8G1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + pp_DS9G1 = H5Dcreate( pp_group1, "ProjectedLeptonicGammaRay", H5T_IEEE_F32LE, pp_spaceDS9G1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + pp_DS10G1 = H5Dcreate( pp_group1, "ProjectedSynchrotron", H5T_IEEE_F32LE, pp_spaceDS10G1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); +# endif +# ifdef SLICE + pp_DS1G1 = H5Dcreate( pp_group1, "SliceDensity" , H5T_IEEE_F32LE, pp_spaceDS1G1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + pp_DS2G1 = H5Dcreate( pp_group1, "SlicePressure", H5T_IEEE_F32LE, pp_spaceDS2G1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + pp_DS3G1 = H5Dcreate( pp_group1, "SliceTemperature", H5T_IEEE_F32LE, pp_spaceDS3G1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + pp_DS4G1 = H5Dcreate( pp_group1, "SliceXray_08_keV", H5T_IEEE_F32LE, pp_spaceDS4G1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + pp_DS5G1 = H5Dcreate( pp_group1, "SliceXray_15_keV", H5T_IEEE_F32LE, pp_spaceDS5G1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + pp_DS6G1 = H5Dcreate( pp_group1, "SliceGammaRay", H5T_IEEE_F32LE, pp_spaceDS5G1, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); +# endif + pp_dsetKey = H5Dcreate( pp_group2, "Keys", typeID, pp_spaceKey, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT ); + +// Write the data to the dataset. + H5_Status = H5Dwrite( pp_DS1G1, H5T_IEEE_F32LE, H5S_ALL, pp_spaceDS1G1, H5P_DEFAULT, ProjectedSliceDensity [0][0] ); + H5_Status = checkH5Status( H5Dwrite( pp_DS2G1, H5T_IEEE_F32LE, H5S_ALL, pp_spaceDS2G1, H5P_DEFAULT, ProjectedSlicePressure [0][0] ), H5_Status ); + H5_Status = checkH5Status( H5Dwrite( pp_DS3G1, H5T_IEEE_F32LE, H5S_ALL, pp_spaceDS3G1, H5P_DEFAULT, ProjectedSliceTemperature [0][0] ), H5_Status ); + H5_Status = checkH5Status( H5Dwrite( pp_DS4G1, H5T_IEEE_F32LE, H5S_ALL, pp_spaceDS4G1, H5P_DEFAULT, ProjectedSliceXray_08_keV [0][0] ), H5_Status ); + H5_Status = checkH5Status( H5Dwrite( pp_DS5G1, H5T_IEEE_F32LE, H5S_ALL, pp_spaceDS5G1, H5P_DEFAULT, ProjectedSliceXray_15_keV [0][0] ), H5_Status ); + H5_Status = checkH5Status( H5Dwrite( pp_DS6G1, H5T_IEEE_F32LE, H5S_ALL, pp_spaceDS6G1, H5P_DEFAULT, ProjectedSliceCRay [0][0] ), H5_Status ); + H5_Status = checkH5Status( H5Dwrite( pp_DS7G1, H5T_IEEE_F32LE, H5S_ALL, pp_spaceDS7G1, H5P_DEFAULT, ProjectedSlicePassive_0001 [0][0] ), H5_Status ); + H5_Status = checkH5Status( H5Dwrite( pp_DS8G1, H5T_IEEE_F32LE, H5S_ALL, pp_spaceDS8G1, H5P_DEFAULT, ProjectedSliceHadronicGammaRay[0][0] ), H5_Status ); + H5_Status = checkH5Status( H5Dwrite( pp_DS9G1, H5T_IEEE_F32LE, H5S_ALL, pp_spaceDS9G1, H5P_DEFAULT, ProjectedSliceLeptonicGammaRay[0][0] ), H5_Status ); + H5_Status = checkH5Status( H5Dwrite( pp_DS10G1, H5T_IEEE_F32LE, H5S_ALL, pp_spaceDS10G1, H5P_DEFAULT, ProjectedSliceSynchrotron [0][0] ), H5_Status ); + H5_Status = checkH5Status( H5Dwrite( pp_dsetKey, typeID, H5S_ALL, H5S_ALL, H5P_DEFAULT, Keys ), H5_Status ); + + if ( H5_Status < 0 ) { printf( "One of the H5Dwrite() fails!: %d\n", __LINE__ ); exit(0); } + +// Close dataset + H5_Status = H5Dclose( pp_dsetKey ); + H5_Status = checkH5Status( H5Dclose( pp_DS1G1 ), H5_Status ); + H5_Status = checkH5Status( H5Dclose( pp_DS2G1 ), H5_Status ); + H5_Status = checkH5Status( H5Dclose( pp_DS3G1 ), H5_Status ); + H5_Status = checkH5Status( H5Dclose( pp_DS4G1 ), H5_Status ); + H5_Status = checkH5Status( H5Dclose( pp_DS5G1 ), H5_Status ); + H5_Status = checkH5Status( H5Dclose( pp_DS6G1 ), H5_Status ); + H5_Status = checkH5Status( H5Dclose( pp_DS7G1 ), H5_Status ); + H5_Status = checkH5Status( H5Dclose( pp_DS8G1 ), H5_Status ); + H5_Status = checkH5Status( H5Dclose( pp_DS9G1 ), H5_Status ); + H5_Status = checkH5Status( H5Dclose( pp_DS10G1 ), H5_Status ); + + if ( H5_Status < 0 ) { printf( "One of the H5Dclose() fails!: %d\n", __LINE__ ); exit(0); } + +// Close space + H5_Status = H5Sclose( pp_spaceKey ); + H5_Status = checkH5Status( H5Sclose( pp_spaceDS1G1 ), H5_Status ); + H5_Status = checkH5Status( H5Sclose( pp_spaceDS2G1 ), H5_Status ); + H5_Status = checkH5Status( H5Sclose( pp_spaceDS3G1 ), H5_Status ); + H5_Status = checkH5Status( H5Sclose( pp_spaceDS4G1 ), H5_Status ); + H5_Status = checkH5Status( H5Sclose( pp_spaceDS5G1 ), H5_Status ); + H5_Status = checkH5Status( H5Sclose( pp_spaceDS6G1 ), H5_Status ); + H5_Status = checkH5Status( H5Sclose( pp_spaceDS7G1 ), H5_Status ); + H5_Status = checkH5Status( H5Sclose( pp_spaceDS8G1 ), H5_Status ); + H5_Status = checkH5Status( H5Sclose( pp_spaceDS9G1 ), H5_Status ); + H5_Status = checkH5Status( H5Sclose( pp_spaceDS10G1 ), H5_Status ); + + if ( H5_Status < 0 ) { printf( "One of the H5Sclose() fails!: %d\n", __LINE__ ); exit(0); } + +// Close group + H5_Status = H5Gclose( pp_group1 ); + H5_Status = checkH5Status( H5Gclose( pp_group2 ), H5_Status ); + if ( H5_Status < 0 ) { printf( "One of the H5Gclose() fails!: %d\n", __LINE__ ); exit(0); } + +// Close file + H5_Status = H5Fclose( pp_file ); + if ( H5_Status < 0 ) { printf( "H5Fclose() fails!: %d\n", __LINE__ ); exit(0); } + + free(Keys); + } // if ( MPI_Rank == RootRank ) + + MPI_Barrier( MPI_COMM_WORLD ); + + free_3d_array( (void***)ProjectedSliceDensity ); + free_3d_array( (void***)ProjectedSlicePressure ); + free_3d_array( (void***)ProjectedSliceTemperature ); + free_3d_array( (void***)ProjectedSliceXray_08_keV ); + free_3d_array( (void***)ProjectedSliceXray_15_keV ); + free_3d_array( (void***)ProjectedSliceCRay ); + free_3d_array( (void***)ProjectedSlicePassive_0001 ); + free_3d_array( (void***)ProjectedSliceHadronicGammaRay ); + free_3d_array( (void***)ProjectedSliceLeptonicGammaRay ); + free_3d_array( (void***)ProjectedSliceSynchrotron ); + +# if ( defined XRAY_ROSAT || defined XRAY_EROSITA ) + free( tempTable_08_keV ); + free( tempTable_15_keV ); + free( lambdaTable_08_keV ); + free( lambdaTable_15_keV ); + fclose( table_08_keV ); + fclose( table_15_keV ); +# endif + + free( X ); + free( Y ); + free( Z ); + + MASTER_PRINT( "Done!!\n" ); + + MPI_Finalize(); + + return 0; +} // FUNCTION : main + + + +//------------------------------------------------------------------------------------------------------- +// Function : LoadCompoundData +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +herr_t LoadCompoundData( const char *FieldName, void *FieldPtr, const hid_t H5_SetID_Target, const hid_t H5_TypeID_Target ) +{ + int H5_FieldIdx; + size_t H5_FieldSize; + hid_t H5_TypeID_Field; // datatype ID of the target field in the compound variable + hid_t H5_TypeID_Load; // datatype ID for loading the target field + herr_t H5_Status; + +// load + H5_FieldIdx = H5Tget_member_index( H5_TypeID_Target, FieldName ); + + if ( H5_FieldIdx < 0 ) return -1; + + H5_TypeID_Field = H5Tget_member_type( H5_TypeID_Target, H5_FieldIdx ); + H5_FieldSize = H5Tget_size( H5_TypeID_Field ); + H5_TypeID_Load = H5Tcreate( H5T_COMPOUND, H5_FieldSize ); + H5_Status = H5Tinsert( H5_TypeID_Load, FieldName, 0, H5_TypeID_Field ); + + H5_Status = H5Dread( H5_SetID_Target, H5_TypeID_Load, H5S_ALL, H5S_ALL, H5P_DEFAULT, FieldPtr ); + if ( H5_Status < 0 ) printf( "failed to load the field!!\n" ); + + H5_Status = H5Tclose( H5_TypeID_Field ); + H5_Status = H5Tclose( H5_TypeID_Load ); + + return 0; +} // FUNCTION : LoadCompoundData + + + +//------------------------------------------------------------------------------------------------------- +// Function : checkH5Status +// Description : check if any of the H5_Status is fail +// Parameter : status1/2 : HDF5 function returned status +// +// Return : status1 +//------------------------------------------------------------------------------------------------------- +herr_t checkH5Status( const herr_t status1, const herr_t status2 ) +{ + if ( status1 < 0 ) return status1; + if ( status2 < 0 ) return status2; + return status1; +} // FUNCTION : checkH5Status diff --git a/tool/analysis/PerspectiveProjection/src/Make_Projection.c b/tool/analysis/PerspectiveProjection/src/Make_Projection.c new file mode 100644 index 0000000000..1b170f4b1f --- /dev/null +++ b/tool/analysis/PerspectiveProjection/src/Make_Projection.c @@ -0,0 +1,94 @@ +#include "../include/General.h" + + + +//------------------------------------------------------------------------------------------------------- +// Function : PerspectiveProject +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +real PerspectiveProject( real b, real l, real dt, real *XYZ[], int numCellXYZ[], real dxyz[], real azimuthalAngle, + real BoxSize[], real ***TargetQuantity, int numRow, real *tempTable, real *lambdaTable ) +{ + if ( FABS(COS(l)) < EPSILON ) + { + printf("l=%e, COS(l)=%e\n", l, COS(l)); + fflush(stdout); + exit(0); + } + + real x, y, z, r2, xp, yp, zp; + real t = 0.0; + double ProjectedValue = 0.0; + + b *= M_PI/180.0; + l *= M_PI/180.0; + + do + { + if ( -0.5*M_PI < l && l < +0.5*M_PI ) t += dt; + else t -= dt; + + x = (real)R_SUN - t; + y = TAN(l) * t; + z = TAN(b) / COS(l) * t; + + r2 = x*x + y*y + z*z; + + if( r2 > (real)SQR(HALO_RADIUS) ) break; + + rotationMatrix( x, y, z, &xp, &yp, &zp, azimuthalAngle ); + + real xyz[3] = { xp, yp, zp }; + +# if ( defined XRAY_ROSAT || defined XRAY_EROSITA ) +// project the X-ray from the Galactic halo + if ( numRow > 0 ) ProjectedValue += xRayHalo( x, y, z, numRow, tempTable, lambdaTable ); +# endif + + const int Idx = BinarySearch( XYZ[0], 0, numCellXYZ[0]-1, xp ); + const int Jdx = BinarySearch( XYZ[1], 0, numCellXYZ[1]-1, yp ); + const int Kdx = BinarySearch( XYZ[2], 0, numCellXYZ[2]-1, zp ); + + if ( (Idx < 0 || Idx > numCellXYZ[0]-2) || + (Jdx < 0 || Jdx > numCellXYZ[1]-2) || + (Kdx < 0 || Kdx > numCellXYZ[2]-2) ) + continue; + + real xyz000[3] = { XYZ[0][Idx], XYZ[1][Jdx], XYZ[2][Kdx] }; + + real Vertex000[1] = { TargetQuantity[Idx ][Jdx ][Kdx ] }; + real Vertex001[1] = { TargetQuantity[Idx ][Jdx ][Kdx+1] }; + real Vertex010[1] = { TargetQuantity[Idx ][Jdx+1][Kdx ] }; + real Vertex100[1] = { TargetQuantity[Idx+1][Jdx ][Kdx ] }; + real Vertex011[1] = { TargetQuantity[Idx ][Jdx+1][Kdx+1] }; + real Vertex101[1] = { TargetQuantity[Idx+1][Jdx ][Kdx+1] }; + real Vertex110[1] = { TargetQuantity[Idx+1][Jdx+1][Kdx ] }; + real Vertex111[1] = { TargetQuantity[Idx+1][Jdx+1][Kdx+1] }; + + real FieldAtVertices[8] = { Vertex000[0], Vertex001[0], Vertex010[0], Vertex100[0], + Vertex011[0], Vertex101[0], Vertex110[0], Vertex111[0] }; + + ProjectedValue += TrilinearInterpolation( FieldAtVertices, xyz000, dxyz, xyz ); + } while( 1 ); + + return (real)ProjectedValue; +} // FUNCTION : PerspectiveProject + + + +//------------------------------------------------------------------------------------------------------- +// Function : rotationMatrix +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +void rotationMatrix( real x, real y, real z, real *xp, real *yp, real *zp, real angle ) +{ + *xp = x * COS(angle) - y * SIN(angle); + *yp = x * SIN(angle) + y * COS(angle); + *zp = z; +} // FUNCTION : rotationMatrix diff --git a/tool/analysis/PerspectiveProjection/src/Make_Slice.c b/tool/analysis/PerspectiveProjection/src/Make_Slice.c new file mode 100644 index 0000000000..98753c90b2 --- /dev/null +++ b/tool/analysis/PerspectiveProjection/src/Make_Slice.c @@ -0,0 +1,35 @@ +#include "../include/General.h" + + + +//------------------------------------------------------------------------------------------------------- +// Function : Slice +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +real Slice( int Idx1, int Idx2, int numCellXYZ[], real ***TargetQuantity, char CuttingPlane[] ) +{ + if ( atoi(CuttingPlane) == atoi("x") ) + { + int CenterIdx = 0.5 * numCellXYZ[0]; + return TargetQuantity[CenterIdx][Idx1][Idx2]; + } + else if ( atoi(CuttingPlane) == atoi("y") ) + { + int CenterIdy = 0.5 * numCellXYZ[1]; + return TargetQuantity[Idx1][CenterIdy][Idx2]; + } + else if ( atoi(CuttingPlane) == atoi("z") ) + { + int CenterIdz = 0.5 * numCellXYZ[2]; + return TargetQuantity[Idx1][Idx2][CenterIdz]; + } + else + { + printf("Something wrong!\n"); + exit(0); + return 0.0; + } +} // FUNCTION : Slice diff --git a/tool/analysis/PerspectiveProjection/src/ReadTable.c b/tool/analysis/PerspectiveProjection/src/ReadTable.c new file mode 100644 index 0000000000..25dcbd5b08 --- /dev/null +++ b/tool/analysis/PerspectiveProjection/src/ReadTable.c @@ -0,0 +1,117 @@ +#include "../include/General.h" + + +#define COMMENT_SYMBOL '#' +#define MAX_STRING 100 +#define DELIMITER " " + + + +//------------------------------------------------------------------------------------------------------- +// Function : ConntNumLine +// Description : Count the number of rows in file +// --> excluding the line beginning with comment symbol (#) +// --> excluding the line composed with comment symbols and white spaces +// Note : +// Parameter : table : File stream +// Return : The number of rows in table +//------------------------------------------------------------------------------------------------------- +int CountNumLine( FILE *table ) +{ + uint64_t numLine = 0; + char line[MAX_STRING]; + + rewind(table); + +// Get the number of charactors in each line + while( fgets(line, MAX_STRING, table) ) + { +// Skip the line beginning with comment symbol + if ( line[0] == COMMENT_SYMBOL || line[0] == '\n' ) continue; + +// Check the line beginning with white space + if ( line[0] == ' ' ) + { + bool skip = true; + for (int i=0; line[i] != '\0'; i++) + { +// Keep the line when it has any meaningful characters + if ( !(line[i] == COMMENT_SYMBOL || line[i] == ' ' || line[i] == '\n') ) + { + skip &= false; + break; + } + +// Break the loop immediately when encounter comment symbol + if ( line[i] == COMMENT_SYMBOL ) break; + } // for (int i=0; line[i] != '\0'; i++) + + if (skip) continue; + } // if ( line[0] == ' ' ) + + numLine++; + } // while( fgets(line, MAX_STRING, table) ) + + return numLine; +} // FUNCTION : CountNumLine + + + +//------------------------------------------------------------------------------------------------------- +// Function : ReadTable +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +void ReadTable( int TargetColumn, int numRow, FILE *table, float *columnArray ) +{ + rewind(table); + + char line[MAX_STRING]; + + int r = 0; + + while( fgets(line, MAX_STRING, table) ) + { + +// Step 1: Skip the line beginning with comment symbol or newline + if ( line[0] == COMMENT_SYMBOL || line[0] == '\n' ) continue; + +// Step 2: Check the line beginning with white space + if ( line[0] == ' ' ) + { + bool skip = true; + + for (int i=0; line[i] != '\0'; i++) + { + +// Step 2-1: Kepp the line when it has any meaningful characters + if ( !(line[i] == COMMENT_SYMBOL || line[i] == ' ' || line[i] == '\n') ){ + skip &= false; + break; + } + +// Step 2-2: Break the loop immediately when encounter comment symbol + if ( line[i] == COMMENT_SYMBOL ) break; + + } // for (int i=0; line[i] != '\0'; i++) + + if (skip) continue; + } // if ( line[0] == ' ' ) + + // Step 3: parse a string into tokens + char *token = strtok( line, DELIMITER ); + int c = 1; + + while( token != NULL ) + { + if ( c++ == TargetColumn ) columnArray[r] = atof(token); + token = strtok( NULL, DELIMITER ); + } + + if ( r == numRow-1 ) break; + + r++; + } // while( fgets(line, MAX_STRING, table) ) +} // FUNCTION : ReadTable diff --git a/tool/analysis/PerspectiveProjection/src/Synchrotron.c b/tool/analysis/PerspectiveProjection/src/Synchrotron.c new file mode 100644 index 0000000000..da09f6b77c --- /dev/null +++ b/tool/analysis/PerspectiveProjection/src/Synchrotron.c @@ -0,0 +1,129 @@ +#include "../include/General.h" + + + +void ijk2xyz( int i, int j, int k, real *x, real *y, real *z, int numCellXYZ[], real BoxSize[] ); +double Synchrotron_emissivity( real CREngy, real B, real spectral_index, real observedFreq, real gamma_max, real gamma_min ); +double BField( real x, real y, real z); + + + +//------------------------------------------------------------------------------------------------------- +// Function : Synchrotron_3D +// Description : +// Note : +// Parameter : CREngy : CR energy density (eV/cm**3) +// numCellXYZ : number of cells on each side of box +// BoxSize : simulation box size (kpc) +// +// Return : Synchrotron : synchrotron emissivity (erg/cm**3/s) +//------------------------------------------------------------------------------------------------------- +void Synchrotron_3D( real ***CREngy, real spectral_index, real ***Synchrotron, real observedFreq, + int numCellXYZ[], real BoxSize[], real gamma_max, real gamma_min ) +{ + for (int i=0; i __DBL_MAX__ || input < __DBL_MIN__ ) + { + printf( "input is -inf/inf %s:%d\n", FunctionName, line ); + return true; + } + + return false; +} // FUNCTION : checkNAN + + + +//------------------------------------------------------------------------------------------------------- +// Function : checkMinus +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +bool checkMinus( real input, const char FunctionName[], const int line ) +{ + if ( input >= 0.0 ) return false; + + printf( "minus is at %s:%d\n", FunctionName, line ); + return true; +} // FUNCTION : checkMinus + + + +//------------------------------------------------------------------------------------------------------- +// Function : checkInt32Overflow +// Description : +// Note : +// Parameter : +// Return : none +//------------------------------------------------------------------------------------------------------- +void checkInt32Overflow( int32_t a, int32_t b, int operation, int line ) +{ + bool overflow = false; + + if ( operation == '+' ) + { + if ( ( b > 0 ) && ( a > INT32_MAX-b ) ) overflow = true; + if ( ( b < 0 ) && ( a < INT32_MIN-b ) ) overflow = true; + } + else if ( operation == '*' ) + { + if ( b != 0 && a > INT32_MAX / b ) overflow = true; + if ( b != 0 && a < INT32_MIN / b ) overflow = true; + } + else + { + printf( "something wrong!\n" ); + exit(0); + } + + if ( overflow ) + { + printf( "Integer overflow!! a=%d, b=%d, line=%d\n", a, b, line ); + exit(0); + } +} // FUNCTION : checkInt32Overflow + + + +//------------------------------------------------------------------------------------------------------- +// Function : checkmemoryContiguous +// Description : +// Note : +// Parameter : +// Return : +//------------------------------------------------------------------------------------------------------- +bool checkmemoryContiguous( real *Ptr, int sizeOf, int Length ) +{ + long d = (Ptr+1)-(Ptr); + + for (int i=2; i Date: Tue, 13 Aug 2024 17:36:27 +0800 Subject: [PATCH 29/73] Ignore perspective projection tool --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index e7137efb0e..1393d2b65c 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,9 @@ gamer GAMER_CompareData GAMER_ExtractUniform GAMER_ExtractProfile +Project .vscode *~ src/Makefile src/Makefile.log + From 46e0e26d2dbcea23f027067dae58a44412972957 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Tue, 13 Aug 2024 17:39:55 +0800 Subject: [PATCH 30/73] Change to silence mode --- src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp b/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp index e9e886ab4f..5e6543d21c 100644 --- a/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp +++ b/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp @@ -449,7 +449,7 @@ void CPU_HydroGravitySolver( if ( Hydro_IsUnphysical( UNPHY_MODE_CONS, Cons, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS.DensEint2Pres_FuncPtr, EoS.GuessHTilde_FuncPtr, EoS.HTilde2Temp_FuncPtr, - EoS.AuxArrayDevPtr_Flt, EoS.AuxArrayDevPtr_Int, EoS.Table, ERROR_INFO, UNPHY_VERBOSE ) ) + EoS.AuxArrayDevPtr_Flt, EoS.AuxArrayDevPtr_Int, EoS.Table, ERROR_INFO, UNPHY_SILENCE ) ) for (int v=0; v Date: Tue, 13 Aug 2024 17:41:52 +0800 Subject: [PATCH 31/73] Align --- .../Hydro/Jet/ExtPot_IsothermalSlab.cpp | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cpp b/src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cpp index a204522df6..9a1757b239 100644 --- a/src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cpp +++ b/src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cpp @@ -113,27 +113,27 @@ static real ExtPot_IsothermalSlab( const double x, const double y, const double if ( Jet_Ambient == 2 ) { - if ( fabs(dz) > IsothermalSlab_Truncation ) - { - stellarDiskPot = 2.0*IsothermalSlab_VelocityDispersion_Sqr*log(cosh(IsothermalSlab_Truncation*stellarDiskPot)); - LogPot = SQR(v_halo) * log(SQR(IsothermalSlab_Truncation) + SQR(distance_h)); - } else - { - stellarDiskPot = 2.0*IsothermalSlab_VelocityDispersion_Sqr*log(cosh(dz*stellarDiskPot)); - LogPot = SQR(v_halo) * log(dz*dz + SQR(distance_h)); - } + if ( fabs(dz) > IsothermalSlab_Truncation ) + { + stellarDiskPot = 2.0*IsothermalSlab_VelocityDispersion_Sqr*log(cosh(IsothermalSlab_Truncation*stellarDiskPot)); + LogPot = SQR(v_halo) * log(SQR(IsothermalSlab_Truncation) + SQR(distance_h)); + } else + { + stellarDiskPot = 2.0*IsothermalSlab_VelocityDispersion_Sqr*log(cosh(dz*stellarDiskPot)); + LogPot = SQR(v_halo) * log(dz*dz + SQR(distance_h)); + } } else if ( Jet_Ambient == 3 ) { - if ( fabs(dz) > interfaceHeight ) - { - stellarDiskPot = 2.0*IsothermalSlab_VelocityDispersion_Sqr*log(cosh(interfaceHeight*stellarDiskPot)); - LogPot = SQR(v_halo) * log(SQR(interfaceHeight) + SQR(distance_h)); - } else - { - stellarDiskPot = 2.0*IsothermalSlab_VelocityDispersion_Sqr*log(cosh(dz*stellarDiskPot)); - LogPot = SQR(v_halo) * log(dz*dz + SQR(distance_h)); - } + if ( fabs(dz) > interfaceHeight ) + { + stellarDiskPot = 2.0*IsothermalSlab_VelocityDispersion_Sqr*log(cosh(interfaceHeight*stellarDiskPot)); + LogPot = SQR(v_halo) * log(SQR(interfaceHeight) + SQR(distance_h)); + } else + { + stellarDiskPot = 2.0*IsothermalSlab_VelocityDispersion_Sqr*log(cosh(dz*stellarDiskPot)); + LogPot = SQR(v_halo) * log(dz*dz + SQR(distance_h)); + } } real TotPot = stellarDiskPot + LogPot; From d688590a334f5f26dd89276d5eb51770ab38c43e Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Tue, 13 Aug 2024 18:07:59 +0800 Subject: [PATCH 32/73] Rename test problem --- .../Hydro/{Jet => FermiBubble}/ExtAcc_Jet.cpp | 0 .../Hydro/{Jet => FermiBubble}/ExtAcc_Jet.cu | 0 .../ExtPot_IsothermalSlab.cpp | 0 .../ExtPot_IsothermalSlab.cu | 0 .../Init_TestProb_Hydro_Jet.cpp | 0 .../Init_TestProb_SRHydro_Jets.cpp | 360 +++++++++--------- .../Hydro/FermiBubble/Interpolation_UM_IC.cpp | 110 ++++++ .../Hydro/Jet/Interpolation_UM_IC.cpp | 105 ----- 8 files changed, 282 insertions(+), 293 deletions(-) rename src/TestProblem/Hydro/{Jet => FermiBubble}/ExtAcc_Jet.cpp (100%) rename src/TestProblem/Hydro/{Jet => FermiBubble}/ExtAcc_Jet.cu (100%) rename src/TestProblem/Hydro/{Jet => FermiBubble}/ExtPot_IsothermalSlab.cpp (100%) rename src/TestProblem/Hydro/{Jet => FermiBubble}/ExtPot_IsothermalSlab.cu (100%) rename src/TestProblem/Hydro/{Jet => FermiBubble}/Init_TestProb_Hydro_Jet.cpp (100%) rename src/TestProblem/Hydro/{Jet => FermiBubble}/Init_TestProb_SRHydro_Jets.cpp (83%) create mode 100644 src/TestProblem/Hydro/FermiBubble/Interpolation_UM_IC.cpp delete mode 100644 src/TestProblem/Hydro/Jet/Interpolation_UM_IC.cpp diff --git a/src/TestProblem/Hydro/Jet/ExtAcc_Jet.cpp b/src/TestProblem/Hydro/FermiBubble/ExtAcc_Jet.cpp similarity index 100% rename from src/TestProblem/Hydro/Jet/ExtAcc_Jet.cpp rename to src/TestProblem/Hydro/FermiBubble/ExtAcc_Jet.cpp diff --git a/src/TestProblem/Hydro/Jet/ExtAcc_Jet.cu b/src/TestProblem/Hydro/FermiBubble/ExtAcc_Jet.cu similarity index 100% rename from src/TestProblem/Hydro/Jet/ExtAcc_Jet.cu rename to src/TestProblem/Hydro/FermiBubble/ExtAcc_Jet.cu diff --git a/src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cpp b/src/TestProblem/Hydro/FermiBubble/ExtPot_IsothermalSlab.cpp similarity index 100% rename from src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cpp rename to src/TestProblem/Hydro/FermiBubble/ExtPot_IsothermalSlab.cpp diff --git a/src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cu b/src/TestProblem/Hydro/FermiBubble/ExtPot_IsothermalSlab.cu similarity index 100% rename from src/TestProblem/Hydro/Jet/ExtPot_IsothermalSlab.cu rename to src/TestProblem/Hydro/FermiBubble/ExtPot_IsothermalSlab.cu diff --git a/src/TestProblem/Hydro/Jet/Init_TestProb_Hydro_Jet.cpp b/src/TestProblem/Hydro/FermiBubble/Init_TestProb_Hydro_Jet.cpp similarity index 100% rename from src/TestProblem/Hydro/Jet/Init_TestProb_Hydro_Jet.cpp rename to src/TestProblem/Hydro/FermiBubble/Init_TestProb_Hydro_Jet.cpp diff --git a/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp b/src/TestProblem/Hydro/FermiBubble/Init_TestProb_SRHydro_Jets.cpp similarity index 83% rename from src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp rename to src/TestProblem/Hydro/FermiBubble/Init_TestProb_SRHydro_Jets.cpp index d06674d6ae..d03cc3c44b 100644 --- a/src/TestProblem/Hydro/Jet/Init_TestProb_SRHydro_Jets.cpp +++ b/src/TestProblem/Hydro/FermiBubble/Init_TestProb_SRHydro_Jets.cpp @@ -7,15 +7,15 @@ void ***calloc_3d_array( size_t nt, size_t nr, size_t nc, size_t size ); void free_3d_array( void ***array ); void Mis_Cartesian2Spherical( const double Cartesian[], double Spherical[] ); -void CartesianRotate( double x[], const double theta, const double phi, const bool inverse ); +void CartesianRotate( double x[], double theta, double phi, bool inverse ); void Interpolation_UM_IC( real x, real y, real z, real ****Pri_input, real **XYZ, real *Pri_output, bool disk ); real TrilinearInterpolation( real *FieldAtVertices, real *xyz000, real *dxyz, real *xyz ); static void SetArrayDisk(); static void SetArrayHVC(); static real *randXYZ; -static int N_CLOUDS = 0; -static real R_CLOUD = 1.0; -void randCloud( real **randXYZ, const int numClouds ); +static int numClouds = 0; +static real radiusCloud = 1.0; +void randCloud( real **randXYZ, int numClouds ); #if ( MODEL == HYDRO ) @@ -58,7 +58,7 @@ static double Amb_CR_Engy; static double CharacteristicSpeed; // the characteristic speed of the simulation problem // the default end-time (END_T) will be estimated from // `CharacteristicSpeed` and `BOX_SIZE` -static real *BUFFER; +static real *buffer; static real *Header_disk; static real ***Rhoo_disk; static real ***VelX_disk; @@ -170,7 +170,6 @@ void Validate() # endif # ifndef GRAVITY -// TODO: 3 and 4 should also be included if ( Jet_Ambient == 1 || Jet_Ambient == 2 ) Aux_Error( ERROR_INFO, "GRAVITY must be enabled !!\n" ); # endif @@ -289,7 +288,7 @@ void SetParameter() // Read header for the fermi bubbles SetArrayDisk(); // SetArrayHVC(); - randCloud( &randXYZ, N_CLOUDS ); + randCloud( &randXYZ, numClouds ); // replace useless parameters with NaN if ( Jet_Ambient != 0 ) @@ -440,8 +439,8 @@ void SetParameter() } // (2) set the problem-specific derived parameters - const double SecAngle = 1.0 / cos(0.5*Jet_HalfOpeningAngle); - const double TanAngle = sin(0.5*Jet_HalfOpeningAngle) * SecAngle; + double SecAngle = 1.0 / cos(0.5*Jet_HalfOpeningAngle); + double TanAngle = sin(0.5*Jet_HalfOpeningAngle) * SecAngle; Jet_MaxDis = sqrt( SQR( Jet_Radius ) + SQR( Jet_HalfHeight * SecAngle ) + 2.0 * Jet_Radius * Jet_HalfHeight * TanAngle ); @@ -581,41 +580,36 @@ void ReadBinFile( char *FileName, real **buffer ) -void randCloud( real **randXYZ, const int numClouds ) +void randCloud( real **randXYZ, int numClouds ) { - const real Lx = amr->BoxSize[0]; - const real Ly = amr->BoxSize[1]; - const real Lz = amr->BoxSize[2]; - - // TODO: should this be a const from input? how to decided this parameter? - const real z_max = Lz*0.5 + 3.0; - *randXYZ = (real*)malloc( 3*numClouds*sizeof(real) ); for (int i=0; i<3*numClouds; i+=3) { - (*randXYZ)[i+0] = (real)rand() / (real)RAND_MAX * Lx; - (*randXYZ)[i+1] = (real)rand() / (real)RAND_MAX * Ly; - (*randXYZ)[i+2] = (real)rand() / (real)RAND_MAX * Lz; + (*randXYZ)[i+0] = (real)rand() / (real)RAND_MAX * amr->BoxSize[0]; + (*randXYZ)[i+1] = (real)rand() / (real)RAND_MAX * amr->BoxSize[1]; + (*randXYZ)[i+2] = (real)rand() / (real)RAND_MAX * amr->BoxSize[2]; - if ( (*randXYZ)[i+2] < z_max ) i-=3; + if ( (*randXYZ)[i+2] < amr->BoxSize[2]*0.5+3.0 ) i-=3; } // for (int i=0; i<3*numClouds; i+=3) } // FUNCTION : randCloud -bool checkInsideClouds( const real *randXYZ, const int numClouds, const real x, const real y, const real z, real *cloudCenter ) +bool checkInsideClouds( real *randXYZ, int numClouds, real x, real y, real z, real *cloudCenter ) { real distance; - for (int i=0; i<3*numClouds; i+=3) { distance = SQRT( SQR( x-randXYZ[i+0] ) + SQR( y-randXYZ[i+1] ) + SQR( z-randXYZ[i+2] ) ); - if ( distance >= R_CLOUD ) continue; - - for (int d=0; d<3; d++) cloudCenter[d] = randXYZ[i+d]; - return true; + if ( distance < radiusCloud ) + { + cloudCenter[0] = randXYZ[i+0]; + cloudCenter[1] = randXYZ[i+1]; + cloudCenter[2] = randXYZ[i+2]; + return true; + } // if ( distance < radiusCloud ) } // for (int i=0; i<3*numClouds; i+=3) return false; } // FUNCTION : checkInsideClouds @@ -626,19 +620,16 @@ void SetArrayDisk() { // Reading table for interpolations in SetGridIC() char TableFileName[] = "UM_IC"; - ReadBinFile( TableFileName, &BUFFER ); + ReadBinFile( TableFileName, &buffer ); - const int headerSize = (int)BUFFER[0]; + int headerSize = (int)buffer[0]; Header_disk = (real*)malloc( (size_t)headerSize * sizeof(real) ); - memcpy( Header_disk, BUFFER, (size_t)headerSize * sizeof(real) ); + memcpy( Header_disk, buffer, (size_t)headerSize * sizeof(real) ); - ParticleMass = Header_disk[8] * Header_disk[9]; - real Lx = Header_disk[12]; - real Ly = Header_disk[13]; - real Lz = Header_disk[14]; + ParticleMass = Header_disk[8] * Header_disk[9]; interfaceHeight = Header_disk[17]; interfaceHeight *= Const_kpc / UNIT_L; @@ -647,18 +638,20 @@ void SetArrayDisk() int Ny = (int)Header_disk[23]; int Nz = (int)Header_disk[24]; - const int numGhost = (int)Header_disk[25]; + if (5*Nx*Ny*Nz > INT_MAX) {printf("integer overflow!!\n"); exit(0);} - real dx = Lx / (real)Nx; - real dy = Lx / (real)Nx; - real dz = Lx / (real)Nx; + real Lx = Header_disk[12]; + real Ly = Header_disk[13]; + real Lz = Header_disk[14]; + int numGhost = (int)Header_disk[25]; - const int NX = Nx + 2*numGhost; - const int NY = Ny + 2*numGhost; - const int NZ = Nz + 2*numGhost; - const int N_TOT = NX * NY * NZ; + real dx = Lx/(real)Nx; + real dy = Lx/(real)Nx; + real dz = Lx/(real)Nx; - if ( 5*N_TOT > INT_MAX ) Aux_Error( ERROR_INFO, "Integer overflow (5*N_TOT > INT_MAX), N_TOT=NX*NY*NZ, NX=%d, NY=%d, NZ=%d, INT_MAX=%d!! \n", NX, NY, NZ, INT_MAX ); + int NX = Nx+2*numGhost; + int NY = Ny+2*numGhost; + int NZ = Nz+2*numGhost; if ( Step == 0 ) { @@ -672,28 +665,30 @@ void SetArrayDisk() Y_disk = (real*)calloc( (size_t)NY, sizeof(real) ); Z_disk = (real*)calloc( (size_t)NZ, sizeof(real) ); - if ( X_disk == NULL ) Aux_Error( ERROR_INFO, "X_disk is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); - if ( Y_disk == NULL ) Aux_Error( ERROR_INFO, "Y_disk is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); - if ( Z_disk == NULL ) Aux_Error( ERROR_INFO, "Z_disk is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); + if ( X_disk == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0);} + if ( Y_disk == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0);} + if ( Z_disk == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0);} real *Ptr; - Ptr = BUFFER + headerSize; + Ptr = buffer + headerSize; - for (int c=0; c<5*N_TOT; c++) + for (int c=0; c<5*NX*NY*NZ; c++) { - const int cc = c%(N_TOT); - const int i = (cc - cc%(NY*NZ)) / (NY*NZ); - const int j = ((cc - cc%NZ) / NZ) % NY; - const int k = cc%NZ; - - if ( 0 <= c && c < N_TOT ) Rhoo_disk[i][j][k] = Ptr[c]; - if ( N_TOT <= c && c < 2*N_TOT ) VelX_disk[i][j][k] = Ptr[c]; - if ( 2*N_TOT <= c && c < 3*N_TOT ) VelY_disk[i][j][k] = Ptr[c]; - if ( 3*N_TOT <= c && c < 4*N_TOT ) VelZ_disk[i][j][k] = Ptr[c]; - if ( 4*N_TOT <= c && c < 5*N_TOT ) Pres_disk[i][j][k] = Ptr[c]; - } // for (int c=0; c<5*N_TOT; c++) - - Ptr += 5*N_TOT; + int i, j, k, cc; + + cc = c%(NX*NY*NZ); + i = (cc - cc%(NY*NZ)) / (NY*NZ); + j = ((cc - cc%NZ) / NZ) % NY; + k = cc%NZ; + + if ( 0 <= c && c < NX*NY*NZ ) Rhoo_disk[i][j][k] = Ptr[c]; + if ( NX*NY*NZ <= c && c < 2*NX*NY*NZ ) VelX_disk[i][j][k] = Ptr[c]; + if ( 2*NX*NY*NZ <= c && c < 3*NX*NY*NZ ) VelY_disk[i][j][k] = Ptr[c]; + if ( 3*NX*NY*NZ <= c && c < 4*NX*NY*NZ ) VelZ_disk[i][j][k] = Ptr[c]; + if ( 4*NX*NY*NZ <= c && c < 5*NX*NY*NZ ) Pres_disk[i][j][k] = Ptr[c]; + } // for (int c=0; c<5*NX*NY*NZ; c++) + + Ptr += 5*NX*NY*NZ; for (int c=0; c INT_MAX) {printf("integer overflow!!\n"); exit(0);} + + real Lx = Header_hvc[12]; + real Ly = Header_hvc[13]; + real Lz = Header_hvc[14]; + int numGhost = (int)Header_hvc[25]; real dx = Lx / (real)Nx; real dy = Lx / (real)Nx; real dz = Lx / (real)Nx; - const int NX = Nx + 2*numGhost; - const int NY = Ny + 2*numGhost; - const int NZ = Nz + 2*numGhost; - const int N_TOT = NX * NY * NZ; - - if ( 5*N_TOT > INT_MAX ) Aux_Error( ERROR_INFO, "Integer overflow (5*N_TOT > INT_MAX), N_TOT=NX*NY*NZ, NX=%d, NY=%d, NZ=%d, INT_MAX=%d!! \n", NX, NY, NZ, INT_MAX ); + int NX = Nx+2*numGhost; + int NY = Ny+2*numGhost; + int NZ = Nz+2*numGhost; if ( Step == 0 ) { @@ -764,23 +758,23 @@ void SetArrayHVC() if ( Z_hvc == NULL ) Aux_Error( ERROR_INFO, "Z_hvc is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); real *Ptr; - Ptr = BUFFER + headerSize; + Ptr = buffer + headerSize; - for (int c=0; c<5*N_TOT; c++) + for (int c=0; c<5*NX*NY*NZ; c++) { - const int cc = c%(N_TOT); - const int i = (cc - cc%(NY*NZ)) / (NY*NZ); - const int j = ((cc - cc%NZ) / NZ) % NY; - const int k = cc%NZ; - - if ( 0 <= c && c < N_TOT ) Rhoo_hvc[i][j][k] = Ptr[c]; - if ( N_TOT <= c && c < 2*N_TOT ) VelX_hvc[i][j][k] = Ptr[c]; - if ( 2*N_TOT <= c && c < 3*N_TOT ) VelY_hvc[i][j][k] = Ptr[c]; - if ( 3*N_TOT <= c && c < 4*N_TOT ) VelZ_hvc[i][j][k] = Ptr[c]; - if ( 4*N_TOT <= c && c < 5*N_TOT ) Pres_hvc[i][j][k] = Ptr[c]; - } // for ( int c=0; c<5*N_TOT; c++ ) - - Ptr += 5*N_TOT; + int cc = c%(NX*NY*NZ); + int i = (cc - cc%(NY*NZ)) / (NY*NZ); + int j = ((cc - cc%NZ) / NZ) % NY; + int k = cc%NZ; + + if ( 0 <= c && c < NX*NY*NZ ) Rhoo_hvc[i][j][k] = Ptr[c]; + if ( NX*NY*NZ <= c && c < 2*NX*NY*NZ ) VelX_hvc[i][j][k] = Ptr[c]; + if ( 2*NX*NY*NZ <= c && c < 3*NX*NY*NZ ) VelY_hvc[i][j][k] = Ptr[c]; + if ( 3*NX*NY*NZ <= c && c < 4*NX*NY*NZ ) VelZ_hvc[i][j][k] = Ptr[c]; + if ( 4*NX*NY*NZ <= c && c < 5*NX*NY*NZ ) Pres_hvc[i][j][k] = Ptr[c]; + } // for (int c=0; c<5*NX*NY*NZ; c++) + + Ptr += 5*NX*NY*NZ; for (int c=0; c NX-2 ) Aux_Error( ERROR_INFO, "x=%e is out of range! XYZ[0][0]=%e, XYZ[0][%d]=%e\n", x, XYZ[0][0], NX-1, XYZ[0][NX-1] ); if ( Jdx < 0 || Jdx > NY-2 ) Aux_Error( ERROR_INFO, "y=%e is out of range! XYZ[1][1]=%e, XYZ[1][%d]=%e\n", y, XYZ[1][0], NY-1, XYZ[1][NY-1] ); if ( Kdx < 0 || Kdx > NZ-2 ) Aux_Error( ERROR_INFO, "z=%e is out of range! XYZ[2][2]=%e, XYZ[2][%d]=%e\n", z, XYZ[2][0], NZ-1, XYZ[2][NZ-1] ); - real Vertices[8][5]; + // TODO: NCOMP_TOTAL to NCOMP_TOTAL_PLUS_MAG + real Vertex000[NCOMP_TOTAL]={0.0}, Vertex001[NCOMP_TOTAL]={0.0}, Vertex010[NCOMP_TOTAL]={0.0}, Vertex100[NCOMP_TOTAL]={0.0}, + Vertex011[NCOMP_TOTAL]={0.0}, Vertex101[NCOMP_TOTAL]={0.0}, Vertex110[NCOMP_TOTAL]={0.0}, Vertex111[NCOMP_TOTAL]={0.0}; + for (int v=0; v<5; v++) { - Vertices[0][v] = Pri_input[v][Idx ][Jdx ][Kdx ]; - Vertices[1][v] = Pri_input[v][Idx ][Jdx ][Kdx+1]; - Vertices[2][v] = Pri_input[v][Idx ][Jdx+1][Kdx ]; - Vertices[3][v] = Pri_input[v][Idx+1][Jdx ][Kdx ]; - Vertices[4][v] = Pri_input[v][Idx ][Jdx+1][Kdx+1]; - Vertices[5][v] = Pri_input[v][Idx+1][Jdx ][Kdx+1]; - Vertices[6][v] = Pri_input[v][Idx+1][Jdx+1][Kdx ]; - Vertices[7][v] = Pri_input[v][Idx+1][Jdx+1][Kdx+1]; + Vertex000[v] = Pri_input[v][Idx ][Jdx ][Kdx ]; + Vertex001[v] = Pri_input[v][Idx ][Jdx ][Kdx+1]; + Vertex010[v] = Pri_input[v][Idx ][Jdx+1][Kdx ]; + Vertex100[v] = Pri_input[v][Idx+1][Jdx ][Kdx ]; + Vertex011[v] = Pri_input[v][Idx ][Jdx+1][Kdx+1]; + Vertex101[v] = Pri_input[v][Idx+1][Jdx ][Kdx+1]; + Vertex110[v] = Pri_input[v][Idx+1][Jdx+1][Kdx ]; + Vertex111[v] = Pri_input[v][Idx+1][Jdx+1][Kdx+1]; } -// TODO: One the above is confirmed to be correct, remove the original code - // real Vertex000[5] = { Pri_input[0][Idx ][Jdx ][Kdx ], Pri_input[1][Idx ][Jdx ][Kdx ], Pri_input[2][Idx ][Jdx ][Kdx ], Pri_input[3][Idx ][Jdx ][Kdx ], Pri_input[4][Idx ][Jdx ][Kdx ] }; - // real Vertex001[5] = { Pri_input[0][Idx ][Jdx ][Kdx+1], Pri_input[1][Idx ][Jdx ][Kdx+1], Pri_input[2][Idx ][Jdx ][Kdx+1], Pri_input[3][Idx ][Jdx ][Kdx+1], Pri_input[4][Idx ][Jdx ][Kdx+1] }; - // real Vertex010[5] = { Pri_input[0][Idx ][Jdx+1][Kdx ], Pri_input[1][Idx ][Jdx+1][Kdx ], Pri_input[2][Idx ][Jdx+1][Kdx ], Pri_input[3][Idx ][Jdx+1][Kdx ], Pri_input[4][Idx ][Jdx+1][Kdx ] }; - // real Vertex100[5] = { Pri_input[0][Idx+1][Jdx ][Kdx ], Pri_input[1][Idx+1][Jdx ][Kdx ], Pri_input[2][Idx+1][Jdx ][Kdx ], Pri_input[3][Idx+1][Jdx ][Kdx ], Pri_input[4][Idx+1][Jdx ][Kdx ] }; - // real Vertex011[5] = { Pri_input[0][Idx ][Jdx+1][Kdx+1], Pri_input[1][Idx ][Jdx+1][Kdx+1], Pri_input[2][Idx ][Jdx+1][Kdx+1], Pri_input[3][Idx ][Jdx+1][Kdx+1], Pri_input[4][Idx ][Jdx+1][Kdx+1] }; - // real Vertex101[5] = { Pri_input[0][Idx+1][Jdx ][Kdx+1], Pri_input[1][Idx+1][Jdx ][Kdx+1], Pri_input[2][Idx+1][Jdx ][Kdx+1], Pri_input[3][Idx+1][Jdx ][Kdx+1], Pri_input[4][Idx+1][Jdx ][Kdx+1] }; - // real Vertex110[5] = { Pri_input[0][Idx+1][Jdx+1][Kdx ], Pri_input[1][Idx+1][Jdx+1][Kdx ], Pri_input[2][Idx+1][Jdx+1][Kdx ], Pri_input[3][Idx+1][Jdx+1][Kdx ], Pri_input[4][Idx+1][Jdx+1][Kdx ] }; - // real Vertex111[5] = { Pri_input[0][Idx+1][Jdx+1][Kdx+1], Pri_input[1][Idx+1][Jdx+1][Kdx+1], Pri_input[2][Idx+1][Jdx+1][Kdx+1], Pri_input[3][Idx+1][Jdx+1][Kdx+1], Pri_input[4][Idx+1][Jdx+1][Kdx+1] }; - bool Unphy = false; - for (int i=0; i<8; i++) + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex000, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ); + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex001, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ); + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex010, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ); + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex100, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ); + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex011, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ); + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex110, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ); + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex101, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ); + Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex111, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ); + + if ( Unphy ) { - for (int v=0; v<5; v++) Unphy |= ( Vertices[i][v] != Vertices[i][v] ); - Unphy |= ( (real) TINY_NUMBER >= Vertices[i][0] ); - Unphy |= ( (real)-HUGE_NUMBER >= Vertices[i][1] ); - Unphy |= ( (real)-HUGE_NUMBER >= Vertices[i][2] ); - Unphy |= ( (real)-HUGE_NUMBER >= Vertices[i][3] ); - Unphy |= ( (real) TINY_NUMBER >= Vertices[i][4] ); - for (int v=0; v<5; v++) Unphy |= ( Vertices[i][v] >= (real)HUGE_NUMBER ); - - // TODO : Can not use since the function also check for the passive scalar - // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertices[i], NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ); - } // for (int i=0; i<8; i++) - - // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex000, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); - // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex001, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); - // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex010, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); - // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex100, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); - // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex011, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); - // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex110, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); - // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex101, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); - // Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex111, NULL, NULL, NULL, NULL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, true ); - - // TODO: should we raise an error? Original exit(0) - if ( Unphy ) Aux_Error( ERROR_INFO, "Unphysical near : Idx=%d, Jdx=%d, Kdx=%d, x=%e, y=%e, z=%e !!\n", Idx, Jdx, Kdx, x, y, z ); - - real xyz000[3] = {XYZ[0][Idx], XYZ[1][Jdx], XYZ[2][Kdx] }; - real FieldAtVertices[8]; - - for ( int v=0; v<5; v++ ) { - for (int i=0; i<8; i++) FieldAtVertices[i] = Vertices[i][v]; - // real FieldAtVertices[8] = { Vertex000[v], Vertex001[v], Vertex010[v], Vertex100[v], Vertex011[v], Vertex101[v], Vertex110[v], Vertex111[v] }; - Pri_output[v] = TrilinearInterpolation( FieldAtVertices, xyz000, dxyz, xyz ); + printf("Idx=%d, Jdx=%d, Kdx=%d\n", Idx, Jdx, Kdx); + printf("x=%e, y=%e, z=%e\n", x, y, z); + exit(0); + } + + real xyz000[3] = {XYZ[0][Idx], XYZ[1][Jdx], XYZ[2][Kdx]}; + + for (int v=0; v<5; v++) + { + real FieldAtVertices[8] = { Vertex000[v], Vertex001[v], Vertex010[v], Vertex100[v], Vertex011[v], Vertex101[v], Vertex110[v], Vertex111[v] }; + + Pri_output[v] = TrilinearInterpolation( FieldAtVertices, xyz000, dxyz, xyz ); } //free_3d_array((void***)Rhoo_disk); @@ -885,13 +868,13 @@ void Interpolation_UM_IC( real x, real y, real z, real ****Pri_input, real **XYZ //free(X_disk); //free(Y_disk); //free(Z_disk); - //free(BUFFER); + //free(buffer); } // FUNCTION : Interpolation_UM_IC #ifdef GRAVITY -real IsothermalSlab_Pot( const real z ) +real IsothermalSlab_Pot( real z ) { real Pot, Log; @@ -932,7 +915,6 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co const int lv, double AuxArray[] ) { // variables for jet - // TODO: should be NCOMP_TOTAL_PLUS_MAG real Pri[NCOMP_TOTAL] = {0.0}; real xc = x - IsothermalSlab_Center[0]; real yc = y - IsothermalSlab_Center[1]; @@ -941,7 +923,6 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co real ***Pri_disk_input[5] = { Rhoo_disk, VelX_disk, VelY_disk, VelZ_disk, Pres_disk }; real *** Pri_hvc_input[5] = { Rhoo_hvc, VelX_hvc, VelY_hvc, VelZ_hvc, Pres_hvc }; -// TODO: Jet_Ambient == 1 is missing if ( Jet_Ambient == 0 ) // uniform ambient { Pri[0] = (real)Amb_UniformDens; @@ -1028,7 +1009,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co real cloudCenter[3]; - if ( checkInsideClouds( randXYZ, N_CLOUDS, x, y, z, cloudCenter ) ) + if ( checkInsideClouds( randXYZ, numClouds, x, y, z, cloudCenter ) ) { real Pri_hvc_output[5]; @@ -1195,10 +1176,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co # endif # endif // #ifdef GRAVITY - } else - { - // TODO : Add an error for wrong Jet_Ambient - } // if ( Jet_Ambient == 0 ) ... else if ... else ... + } // if ( Jet_Ambient == 0 ) ... else if } // FUNCTION : SetGridIC @@ -1249,7 +1227,6 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const if ( !Jet_SphericalSrc ) { double xp[3], rp[3]; - // TODO: should be NCOMP_TOTAL_PLUS_MAG double Prim[NCOMP_TOTAL] = {0.0}, Cons[NCOMP_TOTAL] = {0.0}, Vel[3]; real PriReal[NCOMP_TOTAL] = {0.0}; double PrecessionAxis_Spherical[3], Omega_t; @@ -1299,7 +1276,6 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const } // if ( Jet_HalfOpeningAngle != 0.0 ) ... else ... // set fluid variable inside source -// TODO: try to define Jet_upper/lower to avoid the ugly code if ( ( InsideUpperCone && ( Jet_Fire == 1 || Jet_Fire == 3 ) ) || ( InsideLowerCone && ( Jet_Fire == 2 || Jet_Fire == 3 ) ) ) { @@ -1348,8 +1324,11 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const Prim[4] = Jet_SrcTemp*Jet_SrcDens; } // if ( Jet_HalfOpeningAngle == 0.0 ) ... else ... - // TODO: should be NCOMP_TOTAL - for (int v=0; v<5; v++) PriReal[v] = (real)Prim[v]; + PriReal[0] = (real)Prim[0]; + PriReal[1] = (real)Prim[1]; + PriReal[2] = (real)Prim[2]; + PriReal[3] = (real)Prim[3]; + PriReal[4] = (real)Prim[4]; Hydro_Pri2Con( PriReal, fluid, NULL_BOOL, NULL_INT, NULL, EoS_DensPres2Eint_CPUPtr, EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, @@ -1371,7 +1350,6 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const } else // if ( !Jet_SphericalSrc ) { double xp[3], rp[3]; - // TODO: should be NCOMP_TOTAL_PLUS_MAG double Prim[NCOMP_TOTAL] = {0.0}, Cons[NCOMP_TOTAL] = {0.0}, Vel[3]; real PriReal[NCOMP_TOTAL] = {0.0}; @@ -1384,7 +1362,6 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const double R = SQRT( SQR(xp[0]) + SQR(xp[1]) + SQR(xp[2]) ); -// For quick test, we temporarily use Jet_HalfHeight to represent the radius of spherical source if ( R < Jet_HalfHeight ) { Prim[0] = Jet_SrcDens; @@ -1393,8 +1370,11 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const Prim[3] = Jet_SrcVel*xp[2]/R; Prim[4] = Jet_SrcTemp*Jet_SrcDens; - // TODO: should be NCOMP_TOTAL - for (int v=0; v<5; v++) PriReal[v] = (real)Prim[v]; + PriReal[0] = (real)Prim[0]; + PriReal[1] = (real)Prim[1]; + PriReal[2] = (real)Prim[2]; + PriReal[3] = (real)Prim[3]; + PriReal[4] = (real)Prim[4]; Hydro_Pri2Con( PriReal, fluid, NULL_BOOL, NULL_INT, NULL, EoS_DensPres2Eint_CPUPtr, EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, @@ -1423,8 +1403,8 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const // (true/false): if the target cell (is/is not) within the region to be refined static bool Flag_Region( const int i, const int j, const int k, const int lv, const int PID ) { - if ( Step == 0 ) return true; // TODO: figure why refine at first, or why the code is like this - + if ( Step > 0 ) + { const double dh = amr->dh[lv]; // grid size const double Pos[3] = { amr->patch[0][lv][PID]->EdgeL[0] + (i+0.5)*dh, // x,y,z position amr->patch[0][lv][PID]->EdgeL[1] + (j+0.5)*dh, @@ -1437,14 +1417,15 @@ static bool Flag_Region( const int i, const int j, const int k, const int lv, co Pos[2]-Center[2]-Jet_CenOffset[2] }; const double R = sqrt( SQR(dr[0]) + SQR(dr[1]) ); -// TODO the last condition seems weird - // bool Flag = R > gasDisk_highResRadius || lv > gasDisk_lowRes_LEVEL || fabs(dr[2]) < 2.0*interfaceHeight; + //const double ShellThickness = 16*amr->dh[3]; + bool Flag = false; + Flag = R > gasDisk_highResRadius && lv > gasDisk_lowRes_LEVEL && fabs(dr[2]) < 2.0*interfaceHeight; + - // return Flag; -// original flag. TODO: once the question up is solved, remove it - bool Flag = R > gasDisk_highResRadius && lv > gasDisk_lowRes_LEVEL && fabs(dr[2]) < 2.0*interfaceHeight; - if ( Flag ) return false; - else return true; + if (Flag) return false; + else return true; + } // if (Step > 0) + else return true; } // FUNCTION : Flag_Region @@ -1461,23 +1442,26 @@ bool Flag_User( const int i, const int j, const int k, const int lv, const int P const double dR[3] = { Pos[0]-Center[0], Pos[1]-Center[1], Pos[2]-Center[2] }; const double R = sqrt( SQR(dR[0]) + SQR(dR[1]) + SQR(dR[2]) ); - bool Flag, Src = R <= dh*1.8; + bool Flag, Src; if ( Jet_Ambient != 4 ) { - bool Disk = fabs(dR[2]) <= dh*1.8; + bool Disk; + Disk = fabs(dR[2]) <= dh*1.8; if (lv >= jetSrc_lowRes_LEVEL) Disk = false; - Flag = Src || Disk; + Src = R <= dh*1.8; + Flag = Src||Disk; } else { - Flag = Src; + Src = R <= dh*1.8; + Flag = Src; } return Flag; } // FUNCTION : Flag_User -void CartesianRotate( double x[], const double theta, const double phi, const bool inverse ) +void CartesianRotate( double x[], double theta, double phi, bool inverse ) { double xp[3]; @@ -1519,11 +1503,11 @@ void CartesianRotate( double x[], const double theta, const double phi, const bo //------------------------------------------------------------------------------------------------------- double Mis_GetTimeStep_User( const int lv, const double dTime_dt ) { - const double Jet_SrcGamma = sqrt(1.0 + SQR(Jet_SrcVel)); - const double Jet_Src3Vel = Jet_SrcVel / Jet_SrcGamma; - const double dh = amr->dh[MAX_LEVEL]; // TODO: why max level - const double Cs = 0.182574; // 1.0/sqrt(3); // TODO: not enough digit for double - double dt_user = DT__FLUID * dh / (Jet_Src3Vel+3.0*Cs); + double Jet_SrcGamma = sqrt(1.0 + SQR(Jet_SrcVel)); + double Jet_Src3Vel = Jet_SrcVel / Jet_SrcGamma; + double dh = amr->dh[MAX_LEVEL]; + double Cs = 0.182574; // 1.0/sqrt(3); + double dt_user = DT__FLUID * dh /(Jet_Src3Vel+3.0*Cs); return dt_user; } // FUNCTION : Mis_GetTimeStep_User_Template diff --git a/src/TestProblem/Hydro/FermiBubble/Interpolation_UM_IC.cpp b/src/TestProblem/Hydro/FermiBubble/Interpolation_UM_IC.cpp new file mode 100644 index 0000000000..c2841598bb --- /dev/null +++ b/src/TestProblem/Hydro/FermiBubble/Interpolation_UM_IC.cpp @@ -0,0 +1,110 @@ +#include +#include +#include +#include"Typedef.h" + +/*----------------------------------------------------------------------------*/ +/*! \fn void*** calloc_3d_array(size_t nt, size_t nr, size_t nc, size_t size) + * * * \brief Construct 3D array = array[nt][nr][nc] */ +void ***calloc_3d_array( size_t nt, size_t nr, size_t nc, size_t size ) +{ + void ***array; + size_t i, j; + + if ( (array = (void ***)calloc( nt, sizeof(void **) )) == NULL ) + { + printf( "[calloc_3d] failed to allocate memory for %d 1st-pointers\n", (int)nt ); + return NULL; + } + + if ( (array[0] = (void **)calloc( nt*nr, sizeof(void *) )) == NULL ) + { + printf( "[calloc_3d] failed to allocate memory for %d 2nd-pointers\n", (int)(nt*nr) ); + free( (void *) array ); + return NULL; + } + + for (i=1; i -#include -#include -#include"Typedef.h" - -/*----------------------------------------------------------------------------*/ -/*! \fn void*** calloc_3d_array(size_t nt, size_t nr, size_t nc, size_t size) - * * * \brief Construct 3D array = array[nt][nr][nc] */ -void ***calloc_3d_array( size_t nt, size_t nr, size_t nc, size_t size ) -{ - void ***array; - size_t i, j; - - if ((array = (void ***) calloc (nt, sizeof (void **))) == NULL) - { - printf ("[calloc_3d] failed to allocate memory for %d 1st-pointers\n", (int) nt); - return NULL; - } - - if ((array[0] = (void **) calloc (nt * nr, sizeof (void *))) == NULL) - { - printf ("[calloc_3d] failed to allocate memory for %d 2nd-pointers\n", (int) (nt * nr)); - free ((void *) array); - return NULL; - } - - for (i = 1; i < nt; i++) - { - array[i] = (void **) ((unsigned char *) array[0] + i * nr * sizeof (void *)); - } - - if ((array[0][0] = (void *) calloc (nt * nr * nc, size)) == NULL) - { - printf ("[calloc_3d] failed to alloc. memory (%d X %d X %d of size %d)\n", - (int) nt, (int) nr, (int) nc, (int) size); - free ((void *) array[0]); - free ((void *) array); - return NULL; - } - for (j = 1; j < nr; j++) - { - array[0][j] = (void **) ((unsigned char *) array[0][j - 1] + nc * size); - } -for (i = 1; i < nt; i++) - { - array[i][0] = (void **) ((unsigned char *) array[i - 1][0] + nr * nc * size); - for (j = 1; j < nr; j++) - { - array[i][j] = (void **) ((unsigned char *) array[i][j - 1] + nc * size); - } - } - - return array; -} // FUNCTION : ***calloc_3d_array - - - -void free_3d_array( void ***array ){ - free(array[0][0]); - free(array[0]); - free(array); -} // FUNCTION : free_3d_array - - - -//------------------------------------------------------------------------------------------------------- -// Function : TrilinearInterpolation -// Description : -// -// Note : -// -// Parameter : FieldAtVertices : the field values at near-by coordinates [2*2*2] -// xyz000 : the right coordinates of x/y/z -// dxyz : the width/distance of x/y/z -// xyz : the coordinates of x/y/z need to be interpolation -// -// Return : c -//------------------------------------------------------------------------------------------------------- -real TrilinearInterpolation( real *FieldAtVertices, real *xyz000, real *dxyz, real *xyz ) -{ - real c, weight[8]; - -// weight of the left / right - const real w_xL = (xyz[0]-xyz000[0]) / dxyz[0]; - const real w_yL = (xyz[1]-xyz000[1]) / dxyz[1]; - const real w_zL = (xyz[2]-xyz000[2]) / dxyz[2]; - - const real w_xR = 1.0 - w_xR; - const real w_yR = 1.0 - w_yR; - const real w_zR = 1.0 - w_zR; - -// total weight - weight[0] = w_xL * w_yL * w_zL; - weight[1] = w_xL * w_yL * w_zR; - weight[2] = w_xL * w_yR * w_zL; - weight[3] = w_xR * w_yL * w_zL; - weight[4] = w_xL * w_yR * w_zR; - weight[5] = w_xR * w_yL * w_zR; - weight[6] = w_xR * w_yR * w_zL; - weight[7] = w_xR * w_yR * w_zR; - - for (int i=0; i<8; i++) c += FieldAtVertices[i] * weight[i]; - - return c; -} // FUNCTION : TrilinearInterpolation From e6197a0fd07e895d2e3bcfc85462003e583b23d5 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Tue, 13 Aug 2024 18:16:41 +0800 Subject: [PATCH 33/73] Restore old Jet test --- src/TestProblem/Hydro/{FermiBubble => Jet}/ExtAcc_Jet.cpp | 0 src/TestProblem/Hydro/{FermiBubble => Jet}/ExtAcc_Jet.cu | 0 .../Hydro/{FermiBubble => Jet}/Init_TestProb_Hydro_Jet.cpp | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename src/TestProblem/Hydro/{FermiBubble => Jet}/ExtAcc_Jet.cpp (100%) rename src/TestProblem/Hydro/{FermiBubble => Jet}/ExtAcc_Jet.cu (100%) rename src/TestProblem/Hydro/{FermiBubble => Jet}/Init_TestProb_Hydro_Jet.cpp (100%) diff --git a/src/TestProblem/Hydro/FermiBubble/ExtAcc_Jet.cpp b/src/TestProblem/Hydro/Jet/ExtAcc_Jet.cpp similarity index 100% rename from src/TestProblem/Hydro/FermiBubble/ExtAcc_Jet.cpp rename to src/TestProblem/Hydro/Jet/ExtAcc_Jet.cpp diff --git a/src/TestProblem/Hydro/FermiBubble/ExtAcc_Jet.cu b/src/TestProblem/Hydro/Jet/ExtAcc_Jet.cu similarity index 100% rename from src/TestProblem/Hydro/FermiBubble/ExtAcc_Jet.cu rename to src/TestProblem/Hydro/Jet/ExtAcc_Jet.cu diff --git a/src/TestProblem/Hydro/FermiBubble/Init_TestProb_Hydro_Jet.cpp b/src/TestProblem/Hydro/Jet/Init_TestProb_Hydro_Jet.cpp similarity index 100% rename from src/TestProblem/Hydro/FermiBubble/Init_TestProb_Hydro_Jet.cpp rename to src/TestProblem/Hydro/Jet/Init_TestProb_Hydro_Jet.cpp From 1f37d56f3dc17f323ae71d90a570d947de4b4f88 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Tue, 13 Aug 2024 18:17:46 +0800 Subject: [PATCH 34/73] Rename test problem --- include/Typedef.h | 1 + src/Init/Init_TestProb.cpp | 2 ++ ...ydro_Jets.cpp => Init_TestProb_FermiBubble.cpp} | 14 +++++++------- 3 files changed, 10 insertions(+), 7 deletions(-) rename src/TestProblem/Hydro/FermiBubble/{Init_TestProb_SRHydro_Jets.cpp => Init_TestProb_FermiBubble.cpp} (99%) diff --git a/include/Typedef.h b/include/Typedef.h index 80caa5ce35..ad155569df 100644 --- a/include/Typedef.h +++ b/include/Typedef.h @@ -61,6 +61,7 @@ const TestProbID_t TESTPROB_HYDRO_CR_SOUNDWAVE = 20, TESTPROB_HYDRO_CR_SHOCKTUBE = 21, TESTPROB_HYDRO_CR_DIFFUSION = 23, + TESTPROB_HYDRO_FERMI_BUBBLE = 24, TESTPROB_HYDRO_BARRED_POT = 51, TESTPROB_HYDRO_JET_ICM_WALL = 52, TESTPROB_HYDRO_CDM_LSS = 100, diff --git a/src/Init/Init_TestProb.cpp b/src/Init/Init_TestProb.cpp index 2a711bebc1..64457c487d 100644 --- a/src/Init/Init_TestProb.cpp +++ b/src/Init/Init_TestProb.cpp @@ -30,6 +30,7 @@ void Init_TestProb_Hydro_EnergyPowerSpectrum(); void Init_TestProb_Hydro_CR_SoundWave(); void Init_TestProb_Hydro_CR_ShockTube(); void Init_TestProb_Hydro_CR_Diffusion(); +void Init_TestProb_Hydro_FermiBubble(); void Init_TestProb_ELBDM_ExtPot(); @@ -83,6 +84,7 @@ void Init_TestProb() case TESTPROB_HYDRO_CR_SOUNDWAVE : Init_TestProb_Hydro_CR_SoundWave(); break; case TESTPROB_HYDRO_CR_SHOCKTUBE : Init_TestProb_Hydro_CR_ShockTube(); break; case TESTPROB_HYDRO_CR_DIFFUSION : Init_TestProb_Hydro_CR_Diffusion(); break; + case TESTPROB_HYDRO_FERMI_BUBBLE : Init_TestProb_Hydro_FermiBubble(); break; case TESTPROB_ELBDM_EXTPOT : Init_TestProb_ELBDM_ExtPot(); break; diff --git a/src/TestProblem/Hydro/FermiBubble/Init_TestProb_SRHydro_Jets.cpp b/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp similarity index 99% rename from src/TestProblem/Hydro/FermiBubble/Init_TestProb_SRHydro_Jets.cpp rename to src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp index d03cc3c44b..d180585140 100644 --- a/src/TestProblem/Hydro/FermiBubble/Init_TestProb_SRHydro_Jets.cpp +++ b/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp @@ -1182,7 +1182,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co //------------------------------------------------------------------------------------------------------- -// Function : Flu_ResetByUser_Jets +// Function : Flu_ResetByUser_FermiBubble // Description : Function to reset the fluid field // // Note : 1. Invoked by "Flu_ResetByUser_API()" and "Model_Init_ByFunction_AssignData()" using the @@ -1218,7 +1218,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co /* /_____|_____\ */ /* F */ // ======================================================================================= -int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const double y, const double z, +int Flu_ResetByUser_FermiBubble( real fluid[], const double Emag, const double x, const double y, const double z, const double Time, const double dt, const int lv, double AuxArray[] ) { if ( Jet_Fire == 0 ) return false; @@ -1396,7 +1396,7 @@ int Flu_ResetByUser_Jets( real fluid[], const double Emag, const double x, const return false; -} // FUNCTION : Flu_ResetByUser_Jets +} // FUNCTION : Flu_ResetByUser_FermiBubble @@ -1526,7 +1526,7 @@ void AddNewField_Jet() //------------------------------------------------------------------------------------------------------- -// Function : Init_TestProb_Hydro_Jet +// Function : Init_TestProb_Hydro_FermiBubble // Description : Test problem initializer // // Note : None @@ -1535,7 +1535,7 @@ void AddNewField_Jet() // // Return : None //------------------------------------------------------------------------------------------------------- -void Init_TestProb_Hydro_Jet() +void Init_TestProb_Hydro_FermiBubble() { if ( MPI_Rank == 0 ) Aux_Message( stdout, "%s ...\n", __FUNCTION__ ); @@ -1566,7 +1566,7 @@ void Init_TestProb_Hydro_Jet() //} BC_User_Ptr = NULL; - Flu_ResetByUser_Func_Ptr = Flu_ResetByUser_Jets; + Flu_ResetByUser_Func_Ptr = Flu_ResetByUser_FermiBubble; Output_User_Ptr = NULL; Aux_Record_User_Ptr = NULL; End_User_Ptr = NULL; @@ -1581,6 +1581,6 @@ void Init_TestProb_Hydro_Jet() if ( MPI_Rank == 0 ) Aux_Message( stdout, "%s ... done\n", __FUNCTION__ ); -} // FUNCTION : Init_TestProb_Hydro_Jets +} // FUNCTION : Init_TestProb_Hydro_FermiBubble #endif // #if ( MODEL == HYDRO ) From 957522b6ef1e216ad9670eeecb504dfcebc5cd0a Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Tue, 13 Aug 2024 18:23:02 +0800 Subject: [PATCH 35/73] Update name --- src/TestProblem/Hydro/Jet/Init_TestProb_Hydro_Jet.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TestProblem/Hydro/Jet/Init_TestProb_Hydro_Jet.cpp b/src/TestProblem/Hydro/Jet/Init_TestProb_Hydro_Jet.cpp index 1d542645e2..54a40107d8 100644 --- a/src/TestProblem/Hydro/Jet/Init_TestProb_Hydro_Jet.cpp +++ b/src/TestProblem/Hydro/Jet/Init_TestProb_Hydro_Jet.cpp @@ -572,7 +572,7 @@ int Flu_ResetByUser_Jet( real fluid[], const double Emag, const double x, const // // Return : None //------------------------------------------------------------------------------------------------------- -void Init_TestProb_Hydro_Jet_old() +void Init_TestProb_Hydro_Jet() { if ( MPI_Rank == 0 ) Aux_Message( stdout, "%s ...\n", __FUNCTION__ ); From 6d9c6ea2d86e04dc2aa991b57e6c6306227c1f86 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 15 Aug 2024 13:40:29 +0800 Subject: [PATCH 36/73] Add comment --- .../FermiBubble/ExtPot_IsothermalSlab.cpp | 6 +- .../Hydro/FermiBubble/Interpolation_UM_IC.cpp | 103 ++++++++++-------- 2 files changed, 61 insertions(+), 48 deletions(-) diff --git a/src/TestProblem/Hydro/FermiBubble/ExtPot_IsothermalSlab.cpp b/src/TestProblem/Hydro/FermiBubble/ExtPot_IsothermalSlab.cpp index 9a1757b239..877e8a26d2 100644 --- a/src/TestProblem/Hydro/FermiBubble/ExtPot_IsothermalSlab.cpp +++ b/src/TestProblem/Hydro/FermiBubble/ExtPot_IsothermalSlab.cpp @@ -99,14 +99,14 @@ static real ExtPot_IsothermalSlab( const double x, const double y, const double const real distance_h = (real)UserArray_Flt[ 8]; const real v_halo = (real)UserArray_Flt[ 9]; const real interfaceHeight = (real)UserArray_Flt[10]; - const int Jet_Ambient = UserArray_Int[ 0]; + const int Jet_Ambient = UserArray_Int[ 0]; const double IsothermalSlab_VelocityDispersion_Sqr = SQR(IsothermalSlab_VelocityDispersion); real stellarDiskPot = sqrt( ( 2.0*M_PI*NewtonG*IsothermalSlab_PeakDens ) / IsothermalSlab_VelocityDispersion_Sqr ); # ifndef __CUDACC__ - if ( cz != 0.5*BoxSize_Z ) Aux_Error( ERROR_INFO, "We expect the z-position of stellar disk is at box-center!\n" ); + if ( cz != 0.5*BoxSize_Z ) Aux_Error( ERROR_INFO, "We expect the z-position of stellar disk is at box-center!\n" ); # endif real LogPot; @@ -134,7 +134,7 @@ static real ExtPot_IsothermalSlab( const double x, const double y, const double stellarDiskPot = 2.0*IsothermalSlab_VelocityDispersion_Sqr*log(cosh(dz*stellarDiskPot)); LogPot = SQR(v_halo) * log(dz*dz + SQR(distance_h)); } - } + } // if ( Jet_Ambient == 2 ) ... else if ... else ... real TotPot = stellarDiskPot + LogPot; diff --git a/src/TestProblem/Hydro/FermiBubble/Interpolation_UM_IC.cpp b/src/TestProblem/Hydro/FermiBubble/Interpolation_UM_IC.cpp index c2841598bb..bd69e410f9 100644 --- a/src/TestProblem/Hydro/FermiBubble/Interpolation_UM_IC.cpp +++ b/src/TestProblem/Hydro/FermiBubble/Interpolation_UM_IC.cpp @@ -1,11 +1,19 @@ -#include -#include -#include -#include"Typedef.h" - -/*----------------------------------------------------------------------------*/ -/*! \fn void*** calloc_3d_array(size_t nt, size_t nr, size_t nc, size_t size) - * * * \brief Construct 3D array = array[nt][nr][nc] */ +#include +#include +#include +#include "Typedef.h" + + + +//------------------------------------------------------------------------------------------------------- +// Function : calloc_3d_array +// Description : Allocate 3D array with size nt*nr*nc +// +// Parameter : nt/r/c : size of array +// size : size of allocated type +// +// Return : c +//------------------------------------------------------------------------------------------------------- void ***calloc_3d_array( size_t nt, size_t nr, size_t nc, size_t size ) { void ***array; @@ -57,6 +65,14 @@ void ***calloc_3d_array( size_t nt, size_t nr, size_t nc, size_t size ) +//------------------------------------------------------------------------------------------------------- +// Function : free_3d_array +// Description : Free the allocated 3D array by calloc_3d_array +// +// Parameter : array : pointer of the array +// +// Return : none +//------------------------------------------------------------------------------------------------------- void free_3d_array( void ***array ) { free( array[0][0] ); @@ -66,45 +82,42 @@ void free_3d_array( void ***array ) +//------------------------------------------------------------------------------------------------------- +// Function : TrilinearInterpolation +// Description : Linear interpolation in 3-D spaces +// +// Parameter : FieldAtVertices : the pointer of the field values at near-by coordinates [2*2*2] +// --> Coordinate order: [ (0,0,0), (0,0,1), (0,1,0), (1,0,0), (0,1,1), (1,0,1), (1,1,0), (1,1,1) ] +// xyz000 : the left coordinates of x/y/z (0,0,0) +// dxyz : the width/distance of x/y/z (dx,dy,dz) +// xyz : the coordinates of x/y/z need to be interpolation +// +// Return : c +//------------------------------------------------------------------------------------------------------- real TrilinearInterpolation( real *FieldAtVertices, real *xyz000, real *dxyz, real *xyz ) { - real x1, y1, z1, x0, y0, z0, xd, yd, zd, x, y, z; - real c000, c001, c010, c100, c011, c101, c110, c111, c00, c01, c10, c11, c0, c1, c; - - x0 = xyz000[0]; - y0 = xyz000[1]; - z0 = xyz000[2]; - - x1 = xyz000[0] + dxyz[0]; - y1 = xyz000[1] + dxyz[1]; - z1 = xyz000[2] + dxyz[2]; - - x = xyz[0]; - y = xyz[1]; - z = xyz[2]; - - c000 = FieldAtVertices[0]; - c001 = FieldAtVertices[1]; - c010 = FieldAtVertices[2]; - c100 = FieldAtVertices[3]; - c011 = FieldAtVertices[4]; - c101 = FieldAtVertices[5]; - c110 = FieldAtVertices[6]; - c111 = FieldAtVertices[7]; - - xd = (x-x0) / (x1-x0); - yd = (y-y0) / (y1-y0); - zd = (z-z0) / (z1-z0); - - c00 = c000*(1.0-xd) + c100*xd; - c01 = c001*(1.0-xd) + c101*xd; - c10 = c010*(1.0-xd) + c110*xd; - c11 = c011*(1.0-xd) + c111*xd; - - c0 = c00*(1.0-yd) + c10*yd; - c1 = c01*(1.0-yd) + c11*yd; - - c = c0*(1.0-zd) + c1*zd; + real c = 0.0, weight[8]; + +// weight of the left / right + const real w_xR = (xyz[0]-xyz000[0]) / dxyz[0]; + const real w_yR = (xyz[1]-xyz000[1]) / dxyz[1]; + const real w_zR = (xyz[2]-xyz000[2]) / dxyz[2]; + + const real w_xL = 1.0 - w_xR; + const real w_yL = 1.0 - w_yR; + const real w_zL = 1.0 - w_zR; + +// total weight + weight[0] = w_xL * w_yL * w_zL; + weight[1] = w_xL * w_yL * w_zR; + weight[2] = w_xL * w_yR * w_zL; + weight[3] = w_xR * w_yL * w_zL; + weight[4] = w_xL * w_yR * w_zR; + weight[5] = w_xR * w_yL * w_zR; + weight[6] = w_xR * w_yR * w_zL; + weight[7] = w_xR * w_yR * w_zR; + + for (int i=0; i<8; i++) c += FieldAtVertices[i] * weight[i]; return c; } // FUNCTION : TrilinearInterpolation From f4782a96249a57213367932d210c9a519f55448b Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 15 Aug 2024 13:59:02 +0800 Subject: [PATCH 37/73] Align --- src/Miscellaneous/Mis_CoordinateTransform.cpp | 100 ++++++++---------- 1 file changed, 45 insertions(+), 55 deletions(-) diff --git a/src/Miscellaneous/Mis_CoordinateTransform.cpp b/src/Miscellaneous/Mis_CoordinateTransform.cpp index 9d9a616813..9e8f9934d1 100644 --- a/src/Miscellaneous/Mis_CoordinateTransform.cpp +++ b/src/Miscellaneous/Mis_CoordinateTransform.cpp @@ -98,19 +98,16 @@ int Mis_Cell2Scale( const int NCell, const int lv ) void Mis_Cartesian2Spherical( const double Cartesian[], double Spherical[] ) { - Spherical[0] = SQRT( SQR(Cartesian[0]) + SQR(Cartesian[1]) + SQR(Cartesian[2]) ); + if ( SQR(Cartesian[0]) + SQR(Cartesian[1]) == 0.0 && Cartesian[2] == 0.0 ) + Aux_Error( ERROR_INFO, "Both arguments in atan2 can not be zero !! (%s)\n", __FUNCTION__ ); + if ( Cartesian[0] == 0.0 && Cartesian[1] == 0.0 ) + Aux_Error( ERROR_INFO, "Both arguments in atan2 can not be zero !! (%s)\n", __FUNCTION__ ); - if ( SQR(Cartesian[0]) + SQR(Cartesian[1]) == 0.0 && Cartesian[2] == 0.0 ) - Aux_Error( ERROR_INFO, "Both arguments in atan2 can not be zero !! (%s)\n", __FUNCTION__ ); + Spherical[0] = SQRT( SQR(Cartesian[0]) + SQR(Cartesian[1]) + SQR(Cartesian[2]) ); + Spherical[1] = ATAN2( SQRT( SQR(Cartesian[0]) + SQR(Cartesian[1]) ), Cartesian[2] ); + Spherical[2] = ATAN2( Cartesian[1], Cartesian[0] ); - Spherical[1] = ATAN2( SQRT( SQR(Cartesian[0]) + SQR(Cartesian[1]) ), Cartesian[2] ); - - if ( Cartesian[0] == 0.0 && Cartesian[1] == 0.0 ) - Aux_Error( ERROR_INFO, "Both arguments in atan2 can not be zero !! (%s)\n", __FUNCTION__ ); - - Spherical[2] = ATAN2( Cartesian[1], Cartesian[0] ); - -} +} // FUNCTION : Mis_Cartesian2Spherical @@ -131,16 +128,14 @@ void Mis_Cartesian2Spherical( const double Cartesian[], double Spherical[] ) void Mis_Cartesian2Cylindrical( const double Cartesian[], double Cylindrical[] ) { - Cylindrical[0] = SQRT( SQR(Cartesian[0]) + SQR(Cartesian[1]) ); - - if ( Cartesian[1] == 0.0 && Cartesian[0] == 0.0 ) - Aux_Error( ERROR_INFO, "Both arguments in atan2 can not be zero !! (%s)\n", __FUNCTION__ ); - - Cylindrical[1] = ATAN2( Cartesian[1], Cartesian[0] ); + if ( Cartesian[1] == 0.0 && Cartesian[0] == 0.0 ) + Aux_Error( ERROR_INFO, "Both arguments in atan2 can not be zero !! (%s)\n", __FUNCTION__ ); - Cylindrical[2] = Cartesian[2]; + Cylindrical[0] = SQRT( SQR(Cartesian[0]) + SQR(Cartesian[1]) ); + Cylindrical[1] = ATAN2( Cartesian[1], Cartesian[0] ); + Cylindrical[2] = Cartesian[2]; -} +} // FUNCTION : Mis_Cartesian2Cylindrical @@ -164,13 +159,11 @@ void Mis_Cartesian2Cylindrical( const double Cartesian[], double Cylindrical[] ) void Mis_Spherical2Cartesian( const double Spherical[], double Cartesian[] ) { - Cartesian[0] = Spherical[0]*SIN(Spherical[1])*COS(Spherical[2]); + Cartesian[0] = Spherical[0]*SIN(Spherical[1])*COS(Spherical[2]); + Cartesian[1] = Spherical[0]*SIN(Spherical[1])*SIN(Spherical[2]); + Cartesian[2] = Spherical[0]*COS(Spherical[1]); - Cartesian[1] = Spherical[0]*SIN(Spherical[1])*SIN(Spherical[2]); - - Cartesian[2] = Spherical[0]*COS(Spherical[1]); - -} +} // FUNCTION : Mis_Spherical2Cartesian @@ -202,31 +195,29 @@ void Mis_Spherical2Cartesian( const double Spherical[], double Cartesian[] ) void Mis_RotateRigidBody( double Cartesian[], const double EulerAngle[] ) { - double CartesianRot[3], Phi, Theta, Psi; - - Phi = EulerAngle[0]; - Theta = EulerAngle[1]; - Psi = EulerAngle[2]; + double CartesianRot[3]; - CartesianRot[0] = ( COS(Phi)*COS(Psi) - COS(Theta)*SIN(Phi)*SIN(Psi) )*Cartesian[0] - - ( COS(Phi)*SIN(Psi) + COS(Theta)*SIN(Phi)*COS(Psi) )*Cartesian[1] - + ( SIN(Theta)*SIN(Phi) )*Cartesian[2]; + const double Phi = EulerAngle[0]; + const double Theta = EulerAngle[1]; + const double Psi = EulerAngle[2]; - CartesianRot[1] = - ( SIN(Phi)*COS(Psi) + COS(Theta)*COS(Phi)*SIN(Psi) )*Cartesian[0] - - ( SIN(Phi)*SIN(Psi) - COS(Theta)*COS(Phi)*COS(Psi) )*Cartesian[1] - - ( SIN(Theta)*COS(Phi) )*Cartesian[2]; + CartesianRot[0] = ( COS(Phi)*COS(Psi) - COS(Theta)*SIN(Phi)*SIN(Psi) )*Cartesian[0] + - ( COS(Phi)*SIN(Psi) + COS(Theta)*SIN(Phi)*COS(Psi) )*Cartesian[1] + + ( SIN(Theta)*SIN(Phi) )*Cartesian[2]; + CartesianRot[1] = - ( SIN(Phi)*COS(Psi) + COS(Theta)*COS(Phi)*SIN(Psi) )*Cartesian[0] + - ( SIN(Phi)*SIN(Psi) - COS(Theta)*COS(Phi)*COS(Psi) )*Cartesian[1] + - ( SIN(Theta)*COS(Phi) )*Cartesian[2]; + CartesianRot[2] = SIN(Theta)*SIN(Psi)*Cartesian[0] + SIN(Theta)*COS(Psi)*Cartesian[1] + COS(Theta)*Cartesian[2]; - CartesianRot[2] = SIN(Theta)*SIN(Psi)*Cartesian[0] + SIN(Theta)*COS(Psi)*Cartesian[1] + COS(Theta)*Cartesian[2]; + for (int idx=0; idx<3; idx++) Cartesian[idx] = CartesianRot[idx]; - for (int idx=0; idx<3; idx++) Cartesian[idx] = CartesianRot[idx]; - -} +} // FUNCTION : Mis_RotateRigidBody //------------------------------------------------------------------------------------------------------- // Function : Mis_GetEulerAngles -// Description : Get Euler angles by +// Description : Get Euler angles // Note : See https://en.wikipedia.org/wiki/Euler_angles#Proper_Euler_angles_2 // // Parameter : EulerAngle[0/1/2] : φ/θ/ψ, Euler angles, described in the function `RotateRigidBody` @@ -236,25 +227,24 @@ void Mis_RotateRigidBody( double Cartesian[], const double EulerAngle[] ) // // Return : EulerAngle[0/1/2] : φ/θ/ψ //------------------------------------------------------------------------------------------------------- - void Mis_GetEulerAngles( double EulerAngle[], const double Unit[] ) { - double Argument0 = -Unit[1] / SQRT( (double)1.0 - Unit[2]*Unit[2] ); - double Argument1 = +Unit[2]; - double Argument2 = +Unit[0] / SQRT( (double)1.0 - Unit[2]*Unit[2] ); + const double Argument0 = -Unit[1] / SQRT( (double)1.0 - Unit[2]*Unit[2] ); + const double Argument1 = +Unit[2]; + const double Argument2 = +Unit[0] / SQRT( (double)1.0 - Unit[2]*Unit[2] ); - bool Fail = false; + bool Fail = false; - Fail |= Argument0 < (double)-1.0 || Argument0 > (double)1.0; - Fail |= Argument1 < (double)-1.0 || Argument1 > (double)1.0; - Fail |= Argument2 < (double)-1.0 || Argument2 > (double)1.0; + Fail |= Argument0 < (double)-1.0 || Argument0 > (double)1.0; + Fail |= Argument1 < (double)-1.0 || Argument1 > (double)1.0; + Fail |= Argument2 < (double)-1.0 || Argument2 > (double)1.0; - if ( Fail ) - Aux_Error( ERROR_INFO, "Argument should be lie between -1 and 1 !! (%s)\n", Argument2, __FUNCTION__ ); + if ( Fail ) + Aux_Error( ERROR_INFO, "Argument should be lie between -1 and 1 !! (%s)\n", Argument2, __FUNCTION__ ); - EulerAngle[0] = acos( Argument0 ); - EulerAngle[1] = acos( Argument1 ); - EulerAngle[2] = acos( Argument2 ); + EulerAngle[0] = acos( Argument0 ); + EulerAngle[1] = acos( Argument1 ); + EulerAngle[2] = acos( Argument2 ); -} +} // FUNCTION : Mis_GetEulerAngles From 9019d9b5d69d9acf31c23040132398b8b879f0b2 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 15 Aug 2024 17:26:17 +0800 Subject: [PATCH 38/73] Remove useless --- src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp b/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp index 36da5f9262..b29d03ad4e 100644 --- a/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp +++ b/src/Model_Hydro/CPU_Hydro/CPU_CosmicRay.cpp @@ -55,7 +55,7 @@ void CR_AdiabaticWork_HalfStep_MHM_RP( real OneCell[NCOMP_TOTAL_PLUS_MAG], const real dt_dh2, const EoS_t *EoS ) { # ifdef SRHD -// Although SRHD does not support the magnetic field yet, we still declare the size as +// Although SRHD does not support the magnetic field yet, we still declare the size as // NCOMP_TOTAL_PLUS_MAG in case the magnetic field is supported someday. real Con_L[NCOMP_TOTAL_PLUS_MAG], Con_C[NCOMP_TOTAL_PLUS_MAG], Con_R[NCOMP_TOTAL_PLUS_MAG]; real Pri_L[NCOMP_TOTAL_PLUS_MAG], Pri_C[NCOMP_TOTAL_PLUS_MAG], Pri_R[NCOMP_TOTAL_PLUS_MAG]; @@ -83,7 +83,6 @@ void CR_AdiabaticWork_HalfStep_MHM_RP( real OneCell[NCOMP_TOTAL_PLUS_MAG], } const real minPres = TINY_NUMBER; - const real minJeansPres = TINY_NUMBER; Hydro_Con2Pri( Con_L, Pri_L, minPres, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, EoS->DensEint2Pres_FuncPtr, EoS->DensPres2Eint_FuncPtr, EoS->GuessHTilde_FuncPtr, EoS->HTilde2Temp_FuncPtr, EoS->AuxArrayDevPtr_Flt, EoS->AuxArrayDevPtr_Int, @@ -163,6 +162,8 @@ void CR_AdiabaticWork_FullStep( const real g_PriVar_Half[][ CUBE(FLU_NXT) ], real div_V[3]; # ifdef SRHD +// Although SRHD does not support the magnetic field yet, we still declare the size as +// NCOMP_TOTAL_PLUS_MAG in case the magnetic field is supported someday. real Con_LR[NCOMP_TOTAL_PLUS_MAG], Con_CL[NCOMP_TOTAL_PLUS_MAG], Con_CR[NCOMP_TOTAL_PLUS_MAG], Con_RL[NCOMP_TOTAL_PLUS_MAG]; real Pri_LR[NCOMP_TOTAL_PLUS_MAG], Pri_CL[NCOMP_TOTAL_PLUS_MAG], Pri_CR[NCOMP_TOTAL_PLUS_MAG], Pri_RL[NCOMP_TOTAL_PLUS_MAG]; # endif @@ -224,7 +225,6 @@ void CR_AdiabaticWork_FullStep( const real g_PriVar_Half[][ CUBE(FLU_NXT) ], } const real minPres = TINY_NUMBER; - const real minJeansPres = TINY_NUMBER; Hydro_Con2Pri( Con_LR, Pri_LR, minPres, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, EoS->DensEint2Pres_FuncPtr, EoS->DensPres2Eint_FuncPtr, EoS->GuessHTilde_FuncPtr, EoS->HTilde2Temp_FuncPtr, EoS->AuxArrayDevPtr_Flt, EoS->AuxArrayDevPtr_Int, From 27b95be04ea698653f2e9b1e9a8eac9c4ae2c7d9 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 15 Aug 2024 17:26:33 +0800 Subject: [PATCH 39/73] Update to GAMER style --- .../FermiBubble/Init_TestProb_FermiBubble.cpp | 938 +++++++++--------- 1 file changed, 467 insertions(+), 471 deletions(-) diff --git a/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp b/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp index d180585140..b2be0cccd0 100644 --- a/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp +++ b/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp @@ -4,6 +4,8 @@ #include "GAMER.h" #include "TestProb.h" + + void ***calloc_3d_array( size_t nt, size_t nr, size_t nc, size_t size ); void free_3d_array( void ***array ); void Mis_Cartesian2Spherical( const double Cartesian[], double Spherical[] ); @@ -13,13 +15,11 @@ real TrilinearInterpolation( real *FieldAtVertices, real *xyz000, real *dxyz, re static void SetArrayDisk(); static void SetArrayHVC(); static real *randXYZ; -static int numClouds = 0; +static int numClouds = 0; static real radiusCloud = 1.0; void randCloud( real **randXYZ, int numClouds ); -#if ( MODEL == HYDRO ) - // problem-specific global variables // ======================================================================================= @@ -43,6 +43,7 @@ static double Amb_UniformTemp; // uniform ambient temperature // jet fluid parameters static double Jet_SrcVel; // jet 4-velocity +static double Jet_SrcGamma; // jet lorentz factor static double Jet_SrcDens; // jet density static double Jet_SrcTemp; // jet temperature static bool Jet_SmoothVel; // smooth radial component of 4-velocity on cross section @@ -50,8 +51,8 @@ static bool Jet_SmoothVel; // smooth radial component of 4-velocit static bool Jet_SphericalSrc; #ifdef COSMIC_RAY -static double Jet_Src_CR_Engy; -static double Amb_CR_Engy; +static double Jet_Src_CR_Engy; +static double Amb_CR_Engy; #endif // sound speed @@ -111,7 +112,6 @@ void Init_ExtPot_IsothermalSlab(); /* /_____|_____\ */ /* F */ // ======================================================================================= -// // jet geometry parameters static double Jet_Radius; // length of OB static double Jet_HalfHeight; // length of OA @@ -165,15 +165,24 @@ void Validate() // errors +# if ( MODEL != HYDRO ) + Aux_Error( ERROR_INFO, "MODEL != HYDRO !!\n" ); +# endif + +# ifndef SRHD + Aux_Error( ERROR_INFO, "SRHD must be enabled !!\n" ); +# endif + # ifdef PARTICLE Aux_Error( ERROR_INFO, "PARTICLE must be disabled !!\n" ); # endif # ifndef GRAVITY - if ( Jet_Ambient == 1 || Jet_Ambient == 2 ) - Aux_Error( ERROR_INFO, "GRAVITY must be enabled !!\n" ); + if ( Jet_Ambient == 1 || Jet_Ambient == 2 ) + Aux_Error( ERROR_INFO, "GRAVITY must be enabled !!\n" ); # endif + // warnings if ( MPI_Rank == 0 ) { @@ -190,6 +199,7 @@ void Validate() +#if ( MODEL == HYDRO ) //------------------------------------------------------------------------------------------------------- // Function : SetParameter // Description : Load and set the problem-specific runtime parameters @@ -219,73 +229,72 @@ void SetParameter() // --> note that VARIABLE, DEFAULT, MIN, and MAX must have the same data type // --> some handy constants (e.g., Useless_bool, Eps_double, NoMin_int, ...) are defined in "include/ReadPara.h" // ************************************************************************************************************************ -// ReadPara->Add( "KEY_IN_THE_FILE", &VARIABLE, DEFAULT, MIN, MAX ); +// ReadPara->Add( "KEY_IN_THE_FILE", &VARIABLE, DEFAULT, MIN, MAX ); // ************************************************************************************************************************ // load options - ReadPara->Add( "Jet_Ambient", &Jet_Ambient, 1, 0, 9 ); - ReadPara->Add( "Jet_Fire", &Jet_Fire, 3, 0, 3 ); - ReadPara->Add( "Jet_Precession", &Jet_Precession, false, Useless_bool, Useless_bool ); - ReadPara->Add( "Jet_SphericalSrc", &Jet_SphericalSrc, false, Useless_bool, Useless_bool ); - ReadPara->Add( "Jet_TimeDependentSrc", &Jet_TimeDependentSrc, false, Useless_bool, Useless_bool ); - ReadPara->Add( "Jet_Duration", &Jet_Duration , NoMax_double, 0.0, NoMax_double ); + ReadPara->Add( "Jet_Ambient", &Jet_Ambient, 1, 0, 9 ); + ReadPara->Add( "Jet_Fire", &Jet_Fire, 3, 0, 3 ); + ReadPara->Add( "Jet_Precession", &Jet_Precession, false, Useless_bool, Useless_bool ); + ReadPara->Add( "Jet_SphericalSrc", &Jet_SphericalSrc, false, Useless_bool, Useless_bool ); + ReadPara->Add( "Jet_TimeDependentSrc", &Jet_TimeDependentSrc, false, Useless_bool, Useless_bool ); + ReadPara->Add( "Jet_Duration", &Jet_Duration, NoMax_double, 0.0, NoMax_double ); // load jet fluid parameters - ReadPara->Add( "Jet_SrcVel", &Jet_SrcVel , -1.0, NoMin_double, NoMax_double ); - ReadPara->Add( "Jet_SmoothVel", &Jet_SmoothVel , false, Useless_bool, Useless_bool ); - ReadPara->Add( "Jet_SrcDens", &Jet_SrcDens , -1.0, Eps_double, NoMax_double ); - ReadPara->Add( "Jet_SrcTemp", &Jet_SrcTemp , -1.0, Eps_double, NoMax_double ); - ReadPara->Add( "gasDisk_highResRadius", &gasDisk_highResRadius, -1.0, NoMin_double, NoMax_double ); - ReadPara->Add( "gasDisk_lowRes_LEVEL", &gasDisk_lowRes_LEVEL, -1, 0, NoMax_int ); - ReadPara->Add( "jetSrc_highResRadius", &jetSrc_highResRadius, -1.0, NoMin_double, NoMax_double ); - ReadPara->Add( "jetSrc_lowRes_LEVEL", &jetSrc_lowRes_LEVEL, -1, 0, NoMax_int ); + ReadPara->Add( "Jet_SrcVel", &Jet_SrcVel, -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "Jet_SmoothVel", &Jet_SmoothVel, false, Useless_bool, Useless_bool ); + ReadPara->Add( "Jet_SrcDens", &Jet_SrcDens, -1.0, Eps_double, NoMax_double ); + ReadPara->Add( "Jet_SrcTemp", &Jet_SrcTemp, -1.0, Eps_double, NoMax_double ); + ReadPara->Add( "gasDisk_highResRadius", &gasDisk_highResRadius, -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "gasDisk_lowRes_LEVEL", &gasDisk_lowRes_LEVEL, -1, 0, NoMax_int ); + ReadPara->Add( "jetSrc_highResRadius", &jetSrc_highResRadius, -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "jetSrc_lowRes_LEVEL", &jetSrc_lowRes_LEVEL, -1, 0, NoMax_int ); # ifdef COSMIC_RAY - ReadPara->Add( "Jet_Src_CR_Engy", &Jet_Src_CR_Engy , -1.0, 0.0, NoMax_double ); - ReadPara->Add( "Amb_CR_Engy", &Amb_CR_Engy , -1.0, 0.0, NoMax_double ); + ReadPara->Add( "Jet_Src_CR_Engy", &Jet_Src_CR_Engy, -1.0, 0.0, NoMax_double ); + ReadPara->Add( "Amb_CR_Engy", &Amb_CR_Engy, -1.0, 0.0, NoMax_double ); # endif - // load source geometry parameters - ReadPara->Add( "Jet_Radius", &Jet_Radius, -1.0, Eps_double, NoMax_double ); - ReadPara->Add( "Jet_HalfHeight", &Jet_HalfHeight, -1.0, Eps_double, NoMax_double ); - ReadPara->Add( "Jet_HalfOpeningAngle", &Jet_HalfOpeningAngle, -1.0, 0.0, 90.0 ); - ReadPara->Add( "Jet_CenOffset_x", &Jet_CenOffset [0], NoDef_double, NoMin_double, NoMax_double ); - ReadPara->Add( "Jet_CenOffset_y", &Jet_CenOffset [1], NoDef_double, NoMin_double, NoMax_double ); - ReadPara->Add( "Jet_CenOffset_z", &Jet_CenOffset [2], NoDef_double, NoMin_double, NoMax_double ); + ReadPara->Add( "Jet_Radius", &Jet_Radius, -1.0, Eps_double, NoMax_double ); + ReadPara->Add( "Jet_HalfHeight", &Jet_HalfHeight, -1.0, Eps_double, NoMax_double ); + ReadPara->Add( "Jet_HalfOpeningAngle", &Jet_HalfOpeningAngle, -1.0, 0.0, 90.0 ); + ReadPara->Add( "Jet_CenOffset_x", &Jet_CenOffset[0], NoDef_double, NoMin_double, NoMax_double ); + ReadPara->Add( "Jet_CenOffset_y", &Jet_CenOffset[1], NoDef_double, NoMin_double, NoMax_double ); + ReadPara->Add( "Jet_CenOffset_z", &Jet_CenOffset[2], NoDef_double, NoMin_double, NoMax_double ); // load precission parameters - ReadPara->Add( "Jet_AngularVelocity", &Jet_AngularVelocity, NoDef_double, 0.0, NoMax_double ); - ReadPara->Add( "Jet_PrecessionAngle", &Jet_PrecessionAngle, NoDef_double, NoMin_double, 90.0 ); - ReadPara->Add( "Jet_PrecessionAxis_x", &Jet_PrecessionAxis[0], NoDef_double, NoMin_double, NoMax_double ); - ReadPara->Add( "Jet_PrecessionAxis_y", &Jet_PrecessionAxis[1], NoDef_double, NoMin_double, NoMax_double ); - ReadPara->Add( "Jet_PrecessionAxis_z", &Jet_PrecessionAxis[2], NoDef_double, NoMin_double, NoMax_double ); + ReadPara->Add( "Jet_AngularVelocity", &Jet_AngularVelocity, NoDef_double, 0.0, NoMax_double ); + ReadPara->Add( "Jet_PrecessionAngle", &Jet_PrecessionAngle, NoDef_double, NoMin_double, 90.0 ); + ReadPara->Add( "Jet_PrecessionAxis_x", &Jet_PrecessionAxis[0], NoDef_double, NoMin_double, NoMax_double ); + ReadPara->Add( "Jet_PrecessionAxis_y", &Jet_PrecessionAxis[1], NoDef_double, NoMin_double, NoMax_double ); + ReadPara->Add( "Jet_PrecessionAxis_z", &Jet_PrecessionAxis[2], NoDef_double, NoMin_double, NoMax_double ); // load uniform background parameters - ReadPara->Add( "Amb_UniformDens", &Amb_UniformDens, -1.0, Eps_double, NoMax_double ); - ReadPara->Add( "Amb_UniformVel_x", &Amb_UniformVel[0], 0.0, NoMin_double, NoMax_double ); - ReadPara->Add( "Amb_UniformVel_y", &Amb_UniformVel[1], 0.0, NoMin_double, NoMax_double ); - ReadPara->Add( "Amb_UniformVel_z", &Amb_UniformVel[2], 0.0, NoMin_double, NoMax_double ); - ReadPara->Add( "Amb_UniformTemp", &Amb_UniformTemp, -1.0, Eps_double, NoMax_double ); + ReadPara->Add( "Amb_UniformDens", &Amb_UniformDens, -1.0, Eps_double, NoMax_double ); + ReadPara->Add( "Amb_UniformVel_x", &Amb_UniformVel[0], 0.0, NoMin_double, NoMax_double ); + ReadPara->Add( "Amb_UniformVel_y", &Amb_UniformVel[1], 0.0, NoMin_double, NoMax_double ); + ReadPara->Add( "Amb_UniformVel_z", &Amb_UniformVel[2], 0.0, NoMin_double, NoMax_double ); + ReadPara->Add( "Amb_UniformTemp", &Amb_UniformTemp, -1.0, Eps_double, NoMax_double ); - ReadPara->Add( "Amb_FluSphereRadius", &Amb_FluSphereRadius, -1.0, NoMin_double, NoMax_double ); - ReadPara->Add( "CharacteristicSpeed", &CharacteristicSpeed, -1.0, NoMin_double, NoMax_double ); - ReadPara->Add( "criticalTemp", &criticalTemp, -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "Amb_FluSphereRadius", &Amb_FluSphereRadius, -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "CharacteristicSpeed", &CharacteristicSpeed, -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "criticalTemp", &criticalTemp, -1.0, NoMin_double, NoMax_double ); // load Milky Way parameters - ReadPara->Add( "IsothermalSlab_Center_x", &IsothermalSlab_Center[0], -1.0, NoMin_double, NoMax_double ); - ReadPara->Add( "IsothermalSlab_Center_y", &IsothermalSlab_Center[1], -1.0, NoMin_double, NoMax_double ); - ReadPara->Add( "IsothermalSlab_Center_z", &IsothermalSlab_Center[2], -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "IsothermalSlab_Center_x", &IsothermalSlab_Center[0], -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "IsothermalSlab_Center_y", &IsothermalSlab_Center[1], -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "IsothermalSlab_Center_z", &IsothermalSlab_Center[2], -1.0, NoMin_double, NoMax_double ); // load time-dependent source varibles - ReadPara->Add( "Jet_BurstStartTime", &Jet_BurstStartTime, -1.0, NoMin_double, NoMax_double ); - ReadPara->Add( "Jet_BurstEndTime", &Jet_BurstEndTime, -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "Jet_BurstStartTime", &Jet_BurstStartTime, -1.0, NoMin_double, NoMax_double ); + ReadPara->Add( "Jet_BurstEndTime", &Jet_BurstEndTime, -1.0, NoMin_double, NoMax_double ); ReadPara->Read( FileName ); delete ReadPara; -// Read header for the fermi bubbles +// Read header for the Fermi bubbles SetArrayDisk(); // SetArrayHVC(); randCloud( &randXYZ, numClouds ); @@ -293,10 +302,10 @@ void SetParameter() // replace useless parameters with NaN if ( Jet_Ambient != 0 ) { - Amb_UniformDens = NAN; - Amb_UniformVel[0] = NAN; - Amb_UniformVel[1] = NAN; - Amb_UniformVel[2] = NAN; + Amb_UniformDens = NAN; + Amb_UniformVel[0] = NAN; + Amb_UniformVel[1] = NAN; + Amb_UniformVel[2] = NAN; } if ( Amb_FluSphereRadius < 0.0 ) @@ -306,11 +315,11 @@ void SetParameter() if ( !Jet_TimeDependentSrc ) { - Jet_BurstDensRatio = NAN; - Jet_Burst4VelRatio = NAN; - Jet_BurstTempRatio = NAN; - Jet_BurstStartTime = NAN; - Jet_BurstEndTime = NAN; + Jet_BurstDensRatio = NAN; + Jet_Burst4VelRatio = NAN; + Jet_BurstTempRatio = NAN; + Jet_BurstStartTime = NAN; + Jet_BurstEndTime = NAN; } // (1-2) check runtime parameters @@ -318,7 +327,7 @@ void SetParameter() // check time-dependent source if ( Jet_TimeDependentSrc ) { - if ( !Flag_Burst4Vel && !Flag_BurstDens && !Flag_BurstTemp ) + if ( !Flag_Burst4Vel && !Flag_BurstDens && !Flag_BurstTemp ) Aux_Error( ERROR_INFO, "One of Flag_Burst4Vel, Flag_BurstDens or Flag_BurstTemp must be enabled !!\n" ); if ( Jet_BurstEndTime <= Jet_BurstStartTime ) @@ -327,15 +336,15 @@ void SetParameter() if ( Jet_BurstEndTime >= END_T ) Aux_Error( ERROR_INFO, "Jet_BurstEndTime >= END_T !!\n" ); - if ( Flag_Burst4Vel && Jet_Burst4VelRatio <= Eps_double ) + if ( Flag_Burst4Vel && Jet_Burst4VelRatio <= Eps_double ) Aux_Error( ERROR_INFO, "Jet_Burst4VelRatio <= Eps_double !!\n" ); - if ( Flag_BurstDens && Jet_BurstDensRatio <= Eps_double ) + if ( Flag_BurstDens && Jet_BurstDensRatio <= Eps_double ) Aux_Error( ERROR_INFO, "Jet_BurstDensRatio <= Eps_double !!\n" ); - if ( Flag_BurstTemp && Jet_BurstTempRatio <= Eps_double ) + if ( Flag_BurstTemp && Jet_BurstTempRatio <= Eps_double ) Aux_Error( ERROR_INFO, "Jet_BurstTempRatio <= Eps_double !!\n" ); - } + } // if ( Jet_TimeDependentSrc ) if ( IsothermalSlab_Center[0] == -1.0 ) IsothermalSlab_Center[0] = 0.5*amr->BoxSize[0]; @@ -346,10 +355,8 @@ void SetParameter() if ( IsothermalSlab_Center[2] == -1.0 ) IsothermalSlab_Center[2] = 0.5*amr->BoxSize[2]; - if ( Jet_Ambient == 9 && OPT__INIT != 3 ) - { + if ( Jet_Ambient == 9 && OPT__INIT != 3 ) Aux_Error( ERROR_INFO, "OPT__INIT must be 3 !!\n" ); - } // check UNIT_L is in reasonable range @@ -388,7 +395,8 @@ void SetParameter() Amb_UniformVel[0] *= Const_c / UNIT_V; Amb_UniformVel[1] *= Const_c / UNIT_V; Amb_UniformVel[2] *= Const_c / UNIT_V; - } else if ( Jet_Ambient == 2 || Jet_Ambient == 3 || Jet_Ambient == 4 ) + } + else if ( Jet_Ambient == 2 || Jet_Ambient == 3 || Jet_Ambient == 4 ) { IsothermalSlab_VelocityDispersion = Header_disk[15]; IsothermalSlab_PeakDens = Header_disk[16]; @@ -412,7 +420,7 @@ void SetParameter() gasDiskPeakDens /= UNIT_D; ambientTemperature = Header_disk[20]; - ambientTemperature *= Const_kB/(ParticleMass*UNIT_V*UNIT_V); + ambientTemperature *= Const_kB / (ParticleMass*UNIT_V*UNIT_V); gasDiskTemperature = Header_disk[18]; gasDiskTemperature *= Const_kB / (ParticleMass*UNIT_V*UNIT_V); @@ -432,17 +440,18 @@ void SetParameter() if ( Jet_TimeDependentSrc ) { - Jet_BurstStartTime *= 1e3*Const_yr / UNIT_T; - Jet_BurstEndTime *= 1e3*Const_yr / UNIT_T; - Jet_Burst4VelRatio *= Const_c / UNIT_V; - Jet_BurstDensRatio *= 1.0 / UNIT_D; + Jet_BurstStartTime *= 1e3 * Const_yr / UNIT_T; + Jet_BurstEndTime *= 1e3 * Const_yr / UNIT_T; + Jet_Burst4VelRatio *= Const_c / UNIT_V; + Jet_BurstDensRatio *= 1.0 / UNIT_D; } // (2) set the problem-specific derived parameters - double SecAngle = 1.0 / cos(0.5*Jet_HalfOpeningAngle); - double TanAngle = sin(0.5*Jet_HalfOpeningAngle) * SecAngle; + const double SecAngle = 1.0 / cos( 0.5*Jet_HalfOpeningAngle ); + const double TanAngle = sin( 0.5*Jet_HalfOpeningAngle ) * SecAngle; Jet_MaxDis = sqrt( SQR( Jet_Radius ) + SQR( Jet_HalfHeight * SecAngle ) + 2.0 * Jet_Radius * Jet_HalfHeight * TanAngle ); + Jet_SrcGamma = sqrt(1.0 + SQR(Jet_SrcVel)); for (int d=0; d<3; d++) Jet_Center[d] = 0.5*amr->BoxSize[d] + Jet_CenOffset[d]; @@ -450,16 +459,18 @@ void SetParameter() // (4) reset other general-purpose parameters // --> a helper macro PRINT_RESET_PARA is defined in Macro.h const long End_Step_Default = __INT_MAX__; - const double End_T_Default = 0.5*BOX_SIZE * UNIT_L / (CharacteristicSpeed *UNIT_V) / UNIT_T; + const double End_T_Default = 0.5 * BOX_SIZE * UNIT_L / CharacteristicSpeed / UNIT_V / UNIT_T; - if ( END_STEP < 0 ) { + if ( END_STEP < 0 ) + { END_STEP = End_Step_Default; PRINT_RESET_PARA( END_STEP, FORMAT_LONG, "" ); } - if ( END_T < 0.0 ) { - if ( CharacteristicSpeed == -1.0 ) Aux_Error( ERROR_INFO, "CharacteristicSpeed must be provided !!\n" ); - else END_T = End_T_Default; + if ( END_T < 0.0 ) + { + if ( CharacteristicSpeed == -1.0 ) Aux_Error( ERROR_INFO, "CharacteristicSpeed must be provided !!\n" ); + else END_T = End_T_Default; PRINT_RESET_PARA( END_T, FORMAT_REAL, "" ); } @@ -492,9 +503,9 @@ void SetParameter() Aux_Message( stdout, " Amb_CR_Engy = %14.7e \n", Amb_CR_Engy*UNIT_P ); # endif Aux_Message( stdout, " Jet_NumDensSrc = %14.7e per cc\n", Jet_SrcDens*UNIT_D/ParticleMass ); - Aux_Message( stdout, " Jet_CenOffset[x] = %14.7e kpc\n", Jet_CenOffset [0]*UNIT_L/Const_kpc ); - Aux_Message( stdout, " Jet_CenOffset[y] = %14.7e kpc\n", Jet_CenOffset [1]*UNIT_L/Const_kpc ); - Aux_Message( stdout, " Jet_CenOffset[z] = %14.7e kpc\n", Jet_CenOffset [2]*UNIT_L/Const_kpc ); + Aux_Message( stdout, " Jet_CenOffset[x] = %14.7e kpc\n", Jet_CenOffset[0]*UNIT_L/Const_kpc ); + Aux_Message( stdout, " Jet_CenOffset[y] = %14.7e kpc\n", Jet_CenOffset[1]*UNIT_L/Const_kpc ); + Aux_Message( stdout, " Jet_CenOffset[z] = %14.7e kpc\n", Jet_CenOffset[2]*UNIT_L/Const_kpc ); Aux_Message( stdout, " Jet_AngularVelocity = %14.7e degree/kyr\n", Jet_AngularVelocity ); Aux_Message( stdout, " Jet_PrecessionAngle = %14.7e degree\n", Jet_PrecessionAngle*180.0/M_PI ); Aux_Message( stdout, " Jet_HalfOpeningAngle = %14.7e degree\n", Jet_HalfOpeningAngle*180.0/M_PI ); @@ -519,7 +530,7 @@ void SetParameter() Aux_Message( stdout, " IsothermalSlab_Center[0] = %14.7e kpc\n", IsothermalSlab_Center[0]*UNIT_L/Const_kpc ); Aux_Message( stdout, " IsothermalSlab_Center[1] = %14.7e kpc\n", IsothermalSlab_Center[1]*UNIT_L/Const_kpc ); Aux_Message( stdout, " IsothermalSlab_Center[2] = %14.7e kpc\n", IsothermalSlab_Center[2]*UNIT_L/Const_kpc ); - Aux_Message( stdout, " criticalTemp = %14.7e K\n", criticalTemp / ( Const_kB /( ParticleMass * Const_c * Const_c ) ) ); + Aux_Message( stdout, " criticalTemp = %14.7e K\n", criticalTemp / ( Const_kB / (ParticleMass*Const_c*Const_c) ) ); } // if ( Jet_Ambient == 0 ) ... else if ... Aux_Message( stdout, " CharacteristicSpeed = %14.7e c\n", CharacteristicSpeed / UNIT_V ); @@ -547,7 +558,7 @@ void SetParameter() Aux_Message( stdout, "=============================================================================\n" ); } // if ( MPI_Rank == 0 ) - if ( MPI_Rank == 0 ) Aux_Message( stdout, " Setting runtime parameters ... done\n" ); + if ( MPI_Rank == 0 ) Aux_Message( stdout, " Setting runtime parameters ... done\n" ); } // FUNCTION : SetParameter @@ -555,12 +566,13 @@ void SetParameter() void ReadBinFile( char *FileName, real **buffer ) { - FILE *pFile; - long lSize; - size_t result; + + FILE *pFile; + long lSize; + size_t result; pFile = fopen( FileName, "rb" ); - if ( pFile == NULL ) Aux_Error( ERROR_INFO, "File error !!\n" ); + if ( pFile == NULL ) Aux_Error( ERROR_INFO, "File error !!\n" ); // obtain file size fseek( pFile, 0, SEEK_END ); @@ -568,20 +580,22 @@ void ReadBinFile( char *FileName, real **buffer ) rewind( pFile ); // allocate memory to contain the whole file - *buffer = (real*) calloc( lSize, sizeof(double) ); - if ( *buffer == NULL ) Aux_Error( ERROR_INFO, "Memory error !!\n" ); + *buffer = (real*)calloc( lSize, sizeof(double) ); + if ( *buffer == NULL ) Aux_Error( ERROR_INFO, "Memory error !!\n" ); // copy the file into the *buffer result = fread( *buffer, 1, lSize, pFile ); - if ( result != lSize ) Aux_Error( ERROR_INFO, "Reading error !!\n" ); + if ( result != lSize ) Aux_Error( ERROR_INFO, "Reading error !!\n" ); fclose( pFile ); + } // FUNCTION : ReadBinFile void randCloud( real **randXYZ, int numClouds ) { + *randXYZ = (real*)malloc( 3*numClouds*sizeof(real) ); for (int i=0; i<3*numClouds; i+=3) @@ -592,16 +606,17 @@ void randCloud( real **randXYZ, int numClouds ) if ( (*randXYZ)[i+2] < amr->BoxSize[2]*0.5+3.0 ) i-=3; } // for (int i=0; i<3*numClouds; i+=3) + } // FUNCTION : randCloud bool checkInsideClouds( real *randXYZ, int numClouds, real x, real y, real z, real *cloudCenter ) { - real distance; + for (int i=0; i<3*numClouds; i+=3) { - distance = SQRT( SQR( x-randXYZ[i+0] ) + SQR( y-randXYZ[i+1] ) + SQR( z-randXYZ[i+2] ) ); + const real distance = SQRT( SQR( x-randXYZ[i+0] ) + SQR( y-randXYZ[i+1] ) + SQR( z-randXYZ[i+2] ) ); if ( distance < radiusCloud ) { @@ -611,15 +626,18 @@ bool checkInsideClouds( real *randXYZ, int numClouds, real x, real y, real z, re return true; } // if ( distance < radiusCloud ) } // for (int i=0; i<3*numClouds; i+=3) + return false; + } // FUNCTION : checkInsideClouds +// Reading table for interpolations in SetGridIC() void SetArrayDisk() { -// Reading table for interpolations in SetGridIC() - char TableFileName[] = "UM_IC"; + + char TableFileName[] = "FermiBubble_IC"; ReadBinFile( TableFileName, &buffer ); int headerSize = (int)buffer[0]; @@ -628,30 +646,25 @@ void SetArrayDisk() memcpy( Header_disk, buffer, (size_t)headerSize * sizeof(real) ); - ParticleMass = Header_disk[8] * Header_disk[9]; interfaceHeight = Header_disk[17]; interfaceHeight *= Const_kpc / UNIT_L; - int Nx = (int)Header_disk[22]; - int Ny = (int)Header_disk[23]; - int Nz = (int)Header_disk[24]; + const int Nx = (int)Header_disk[22]; + const int Ny = (int)Header_disk[23]; + const int Nz = (int)Header_disk[24]; - if (5*Nx*Ny*Nz > INT_MAX) {printf("integer overflow!!\n"); exit(0);} + if ( 5*Nx*Ny*Nz > INT_MAX ) Aux_Error( ERROR_INFO, "integer overflow !!\n" ); real Lx = Header_disk[12]; real Ly = Header_disk[13]; real Lz = Header_disk[14]; - int numGhost = (int)Header_disk[25]; - - real dx = Lx/(real)Nx; - real dy = Lx/(real)Nx; - real dz = Lx/(real)Nx; + const int numGhost = (int)Header_disk[25]; - int NX = Nx+2*numGhost; - int NY = Ny+2*numGhost; - int NZ = Nz+2*numGhost; + const int NX = Nx + 2*numGhost; + const int NY = Ny + 2*numGhost; + const int NZ = Nz + 2*numGhost; if ( Step == 0 ) { @@ -665,37 +678,35 @@ void SetArrayDisk() Y_disk = (real*)calloc( (size_t)NY, sizeof(real) ); Z_disk = (real*)calloc( (size_t)NZ, sizeof(real) ); - if ( X_disk == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0);} - if ( Y_disk == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0);} - if ( Z_disk == NULL ) { printf("%d, %s: NULL!\n", __LINE__, __FUNCTION__); exit(0);} + if ( X_disk == NULL ) Aux_Error( ERROR_INFO, "X_disk is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); + if ( Y_disk == NULL ) Aux_Error( ERROR_INFO, "Y_disk is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); + if ( Z_disk == NULL ) Aux_Error( ERROR_INFO, "Z_disk is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); real *Ptr; Ptr = buffer + headerSize; for (int c=0; c<5*NX*NY*NZ; c++) { - int i, j, k, cc; - - cc = c%(NX*NY*NZ); - i = (cc - cc%(NY*NZ)) / (NY*NZ); - j = ((cc - cc%NZ) / NZ) % NY; - k = cc%NZ; - - if ( 0 <= c && c < NX*NY*NZ ) Rhoo_disk[i][j][k] = Ptr[c]; - if ( NX*NY*NZ <= c && c < 2*NX*NY*NZ ) VelX_disk[i][j][k] = Ptr[c]; - if ( 2*NX*NY*NZ <= c && c < 3*NX*NY*NZ ) VelY_disk[i][j][k] = Ptr[c]; - if ( 3*NX*NY*NZ <= c && c < 4*NX*NY*NZ ) VelZ_disk[i][j][k] = Ptr[c]; - if ( 4*NX*NY*NZ <= c && c < 5*NX*NY*NZ ) Pres_disk[i][j][k] = Ptr[c]; + const int cc = c%(NX*NY*NZ); + const int i = (cc - cc%(NY*NZ)) / (NY*NZ); + const int j = ((cc - cc%NZ) / NZ) % NY; + const int k = cc%NZ; + + if ( 0 <= c && c < NX*NY*NZ ) Rhoo_disk[i][j][k] = Ptr[c]; + if ( NX*NY*NZ <= c && c < 2*NX*NY*NZ ) VelX_disk[i][j][k] = Ptr[c]; + if ( 2*NX*NY*NZ <= c && c < 3*NX*NY*NZ ) VelY_disk[i][j][k] = Ptr[c]; + if ( 3*NX*NY*NZ <= c && c < 4*NX*NY*NZ ) VelZ_disk[i][j][k] = Ptr[c]; + if ( 4*NX*NY*NZ <= c && c < 5*NX*NY*NZ ) Pres_disk[i][j][k] = Ptr[c]; } // for (int c=0; c<5*NX*NY*NZ; c++) Ptr += 5*NX*NY*NZ; - for (int c=0; c INT_MAX) {printf("integer overflow!!\n"); exit(0);} + if ( 5*Nx*Ny*Nz > INT_MAX ) Aux_Error( ERROR_INFO, "integer overflow !!\n" ); real Lx = Header_hvc[12]; real Ly = Header_hvc[13]; real Lz = Header_hvc[14]; int numGhost = (int)Header_hvc[25]; - real dx = Lx / (real)Nx; - real dy = Lx / (real)Nx; - real dz = Lx / (real)Nx; - - int NX = Nx+2*numGhost; - int NY = Ny+2*numGhost; - int NZ = Nz+2*numGhost; + const int NX = Nx+2*numGhost; + const int NY = Ny+2*numGhost; + const int NZ = Nz+2*numGhost; if ( Step == 0 ) { @@ -753,50 +761,52 @@ void SetArrayHVC() Y_hvc = (real*)calloc( (size_t)NY, sizeof(real) ); Z_hvc = (real*)calloc( (size_t)NZ, sizeof(real) ); - if ( X_hvc == NULL ) Aux_Error( ERROR_INFO, "X_hvc is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); - if ( Y_hvc == NULL ) Aux_Error( ERROR_INFO, "Y_hvc is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); - if ( Z_hvc == NULL ) Aux_Error( ERROR_INFO, "Z_hvc is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); + if ( X_hvc == NULL ) Aux_Error( ERROR_INFO, "X_hvc is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); + if ( Y_hvc == NULL ) Aux_Error( ERROR_INFO, "Y_hvc is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); + if ( Z_hvc == NULL ) Aux_Error( ERROR_INFO, "Z_hvc is NULL at %d, %s !!\n", __LINE__, __FUNCTION__ ); real *Ptr; Ptr = buffer + headerSize; for (int c=0; c<5*NX*NY*NZ; c++) { - int cc = c%(NX*NY*NZ); - int i = (cc - cc%(NY*NZ)) / (NY*NZ); - int j = ((cc - cc%NZ) / NZ) % NY; - int k = cc%NZ; - - if ( 0 <= c && c < NX*NY*NZ ) Rhoo_hvc[i][j][k] = Ptr[c]; - if ( NX*NY*NZ <= c && c < 2*NX*NY*NZ ) VelX_hvc[i][j][k] = Ptr[c]; - if ( 2*NX*NY*NZ <= c && c < 3*NX*NY*NZ ) VelY_hvc[i][j][k] = Ptr[c]; - if ( 3*NX*NY*NZ <= c && c < 4*NX*NY*NZ ) VelZ_hvc[i][j][k] = Ptr[c]; - if ( 4*NX*NY*NZ <= c && c < 5*NX*NY*NZ ) Pres_hvc[i][j][k] = Ptr[c]; + const int cc = c%(NX*NY*NZ); + const int i = (cc - cc%(NY*NZ)) / (NY*NZ); + const int j = ((cc - cc%NZ) / NZ) % NY; + const int k = cc%NZ; + + if ( 0 <= c && c < NX*NY*NZ ) Rhoo_hvc[i][j][k] = Ptr[c]; + if ( NX*NY*NZ <= c && c < 2*NX*NY*NZ ) VelX_hvc[i][j][k] = Ptr[c]; + if ( 2*NX*NY*NZ <= c && c < 3*NX*NY*NZ ) VelY_hvc[i][j][k] = Ptr[c]; + if ( 3*NX*NY*NZ <= c && c < 4*NX*NY*NZ ) VelZ_hvc[i][j][k] = Ptr[c]; + if ( 4*NX*NY*NZ <= c && c < 5*NX*NY*NZ ) Pres_hvc[i][j][k] = Ptr[c]; } // for (int c=0; c<5*NX*NY*NZ; c++) Ptr += 5*NX*NY*NZ; - for (int c=0; c NX-2 ) Aux_Error( ERROR_INFO, "x=%e is out of range! XYZ[0][0]=%e, XYZ[0][%d]=%e\n", x, XYZ[0][0], NX-1, XYZ[0][NX-1] ); - if ( Jdx < 0 || Jdx > NY-2 ) Aux_Error( ERROR_INFO, "y=%e is out of range! XYZ[1][1]=%e, XYZ[1][%d]=%e\n", y, XYZ[1][0], NY-1, XYZ[1][NY-1] ); - if ( Kdx < 0 || Kdx > NZ-2 ) Aux_Error( ERROR_INFO, "z=%e is out of range! XYZ[2][2]=%e, XYZ[2][%d]=%e\n", z, XYZ[2][0], NZ-1, XYZ[2][NZ-1] ); + if ( Idx < 0 || Idx > NX-2 ) Aux_Error( ERROR_INFO, "x=%e is out of range! XYZ[0][0]=%e, XYZ[0][%d]=%e\n", x, XYZ[0][0], NX-1, XYZ[0][NX-1] ); + if ( Jdx < 0 || Jdx > NY-2 ) Aux_Error( ERROR_INFO, "y=%e is out of range! XYZ[1][1]=%e, XYZ[1][%d]=%e\n", y, XYZ[1][0], NY-1, XYZ[1][NY-1] ); + if ( Kdx < 0 || Kdx > NZ-2 ) Aux_Error( ERROR_INFO, "z=%e is out of range! XYZ[2][2]=%e, XYZ[2][%d]=%e\n", z, XYZ[2][0], NZ-1, XYZ[2][NZ-1] ); // TODO: NCOMP_TOTAL to NCOMP_TOTAL_PLUS_MAG real Vertex000[NCOMP_TOTAL]={0.0}, Vertex001[NCOMP_TOTAL]={0.0}, Vertex010[NCOMP_TOTAL]={0.0}, Vertex100[NCOMP_TOTAL]={0.0}, @@ -844,14 +854,9 @@ void Interpolation_UM_IC( real x, real y, real z, real ****Pri_input, real **XYZ Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex101, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ); Unphy |= Hydro_IsUnphysical( UNPHY_MODE_PRIM, Vertex111, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ); - if ( Unphy ) - { - printf("Idx=%d, Jdx=%d, Kdx=%d\n", Idx, Jdx, Kdx); - printf("x=%e, y=%e, z=%e\n", x, y, z); - exit(0); - } + if ( Unphy ) Aux_Error( ERROR_INFO, "Idx=%d, Jdx=%d, Kdx=%d, x=%e, y=%e, z=%e is unphysical !!\n", Idx, Jdx, Kdx, x, y, z ); - real xyz000[3] = {XYZ[0][Idx], XYZ[1][Jdx], XYZ[2][Kdx]}; + real xyz000[3] = { XYZ[0][Idx], XYZ[1][Jdx], XYZ[2][Kdx] }; for (int v=0; v<5; v++) { @@ -860,21 +865,22 @@ void Interpolation_UM_IC( real x, real y, real z, real ****Pri_input, real **XYZ Pri_output[v] = TrilinearInterpolation( FieldAtVertices, xyz000, dxyz, xyz ); } - //free_3d_array((void***)Rhoo_disk); - //free_3d_array((void***)VelX_disk); - //free_3d_array((void***)VelY_disk); - //free_3d_array((void***)VelZ_disk); - //free_3d_array((void***)Pres_disk); - //free(X_disk); - //free(Y_disk); - //free(Z_disk); - //free(buffer); } // FUNCTION : Interpolation_UM_IC #ifdef GRAVITY -real IsothermalSlab_Pot( real z ) +//------------------------------------------------------------------------------------------------------- +// Function : IsothermalSlab_Pot +// Description : +// +// Note : +// +// Parameter : +// +// Return : +//------------------------------------------------------------------------------------------------------- +real IsothermalSlab_Pot( const real z ) { real Pot, Log; @@ -915,10 +921,10 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co const int lv, double AuxArray[] ) { // variables for jet + const real xc = x - IsothermalSlab_Center[0]; + const real yc = y - IsothermalSlab_Center[1]; + const real zc = z - IsothermalSlab_Center[2]; real Pri[NCOMP_TOTAL] = {0.0}; - real xc = x - IsothermalSlab_Center[0]; - real yc = y - IsothermalSlab_Center[1]; - real zc = z - IsothermalSlab_Center[2]; real ***Pri_disk_input[5] = { Rhoo_disk, VelX_disk, VelY_disk, VelZ_disk, Pres_disk }; real *** Pri_hvc_input[5] = { Rhoo_hvc, VelX_hvc, VelY_hvc, VelZ_hvc, Pres_hvc }; @@ -947,7 +953,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co # endif # ifdef COSMIC_RAY - fluid[CRAY] = Amb_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); + fluid[CRAY] = Amb_CR_Engy * Jet_SrcGamma; # endif } else if ( Jet_Ambient == 2 ) // cold disk in stratified ambient @@ -962,9 +968,9 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) - Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); + Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z ); - if ( Pri[4]/Pri[0] > criticalTemp ) Pri[0] = Pri[4] / ambientTemperature; + if ( Pri[4]/Pri[0] > criticalTemp ) Pri[0] = Pri[4] / ambientTemperature; Hydro_Pri2Con( Pri, fluid, false, PassiveNorm_NVar, PassiveNorm_VarIdx, EoS_DensPres2Eint_CPUPtr, EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, @@ -977,9 +983,10 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co # endif # ifdef COSMIC_RAY - fluid[CRAY] = Amb_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); + fluid[CRAY] = Amb_CR_Engy * Jet_SrcGamma; # endif - } else // if ( fabs(zc) < interfaceHeight ) + } + else // if ( fabs(zc) < interfaceHeight ) { real Dens_gDisk_ambient, PotAtZ0, ambientDens; @@ -1021,7 +1028,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri_hvc_output, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) - Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); + Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z ); Pri[0] = Pri_hvc_output[0]*0.05*Const_mp/UNIT_D; Pri[1] = 0.0; @@ -1037,7 +1044,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) - Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z); + Aux_Error( ERROR_INFO, "Unphysical cell at (%e, %e %e)\n", x, y, z ); # if ( NCOMP_PASSIVE_USER > 0 ) fluid[Passive_0000] = 0.0; @@ -1046,11 +1053,12 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co # endif # ifdef COSMIC_RAY - fluid[CRAY] = Amb_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); + fluid[CRAY] = Amb_CR_Engy * Jet_SrcGamma; # endif } // if ( fabs(zc) < interfaceHeight ) ... else ... # endif - } else if ( Jet_Ambient == 3 ) // cold disk in uniform ambient + } + else if ( Jet_Ambient == 3 ) // cold disk in uniform ambient { # ifdef GRAVITY if ( fabs(zc) < interfaceHeight ) @@ -1075,9 +1083,10 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co # endif # ifdef COSMIC_RAY - fluid[CRAY] = Amb_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); + fluid[CRAY] = Amb_CR_Engy * Jet_SrcGamma; # endif - } else // if ( fabs(zc) < interfaceHeight ) + } + else // if ( fabs(zc) < interfaceHeight ) { real Dens_gDisk_ambient, PotAtZ0, ambientDens; @@ -1117,37 +1126,22 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co # endif # ifdef COSMIC_RAY - fluid[CRAY] = Amb_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); + fluid[CRAY] = Amb_CR_Engy * Jet_SrcGamma; # endif } // if ( fabs(zc) < interfaceHeight ) ... else ... } // else if ( Jet_Ambient == 3 ) else if ( Jet_Ambient == 4 ) { + real ambientPeakDens = (real)2.842783e-27 / UNIT_D; real ambientDens; -// PotAtZ0 = IsothermalSlab_Pot(interfaceHeight); -// -// Dens_gDisk_ambient = ambientTemperature / gasDiskTemperature; -// Dens_gDisk_ambient *= exp( PotAtZ0*(ambientTemperature-gasDiskTemperature)/(ambientTemperature*gasDiskTemperature) ); -// -// if ( Dens_gDisk_ambient > HUGE_NUMBER || Dens_gDisk_ambient < -HUGE_NUMBER ) { -// printf( "Dens_gDisk_ambient=%e! %s: %d\n", Dens_gDisk_ambient, __FUNCTION__, __LINE__ ); -// exit(0); -// } - - real ambientPeakDens = (real)2.842783e-27/UNIT_D; - if ( fabs(zc) > IsothermalSlab_Truncation ) ambientDens = -IsothermalSlab_Pot(IsothermalSlab_Truncation)/ambientTemperature; else ambientDens = -IsothermalSlab_Pot(zc)/ambientTemperature; - //printf("IsothermalSlab_Pot(zc)=%e\n", IsothermalSlab_Pot(zc)); - //printf("ambientTemperature=%e\n", ambientTemperature); - - ambientDens = exp(ambientDens); - ambientDens *= ambientPeakDens; + ambientDens = ambientPeakDens * exp(ambientDens); Pri[0] = ambientDens; Pri[1] = 0.0; @@ -1159,7 +1153,6 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, NULL ); - if ( Hydro_IsUnphysical( UNPHY_MODE_PRIM, Pri, NULL, NULL_REAL, NULL_REAL, NULL_REAL, EoS_DensEint2Pres_CPUPtr, EoS_GuessHTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, __FILE__, __LINE__, __FUNCTION__, UNPHY_VERBOSE ) ) @@ -1172,7 +1165,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co # endif # ifdef COSMIC_RAY - fluid[CRAY] = Amb_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); + fluid[CRAY] = Amb_CR_Engy * Jet_SrcGamma; # endif # endif // #ifdef GRAVITY @@ -1219,192 +1212,209 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co /* F */ // ======================================================================================= int Flu_ResetByUser_FermiBubble( real fluid[], const double Emag, const double x, const double y, const double z, - const double Time, const double dt, const int lv, double AuxArray[] ) + const double Time, const double dt, const int lv, double AuxArray[] ) { - if ( Jet_Fire == 0 ) return false; - - if ( Jet_Duration < Time ) return false; - - if ( !Jet_SphericalSrc ) { - double xp[3], rp[3]; - double Prim[NCOMP_TOTAL] = {0.0}, Cons[NCOMP_TOTAL] = {0.0}, Vel[3]; - real PriReal[NCOMP_TOTAL] = {0.0}; - double PrecessionAxis_Spherical[3], Omega_t; - bool InsideUpperCone, InsideLowerCone; - double Jet_SrcVelSmooth; - - Omega_t = Jet_AngularVelocity * Time * M_PI / 180.0; - -// shift the coordinate origin to the source center (the point O) - xp[0] = x - Jet_Center[0]; - xp[1] = y - Jet_Center[1]; - xp[2] = z - Jet_Center[2]; - - if ( Jet_PrecessionAxis[0] != 0.0 || Jet_PrecessionAxis[1] != 0.0 || Jet_PrecessionAxis[2] == 0.0 ) - { -// get theta, phi for the first rotation - Mis_Cartesian2Spherical( Jet_PrecessionAxis, PrecessionAxis_Spherical ); -// rotate coordinate to align z-axis with fixed precession axis - CartesianRotate( xp, PrecessionAxis_Spherical[1], PrecessionAxis_Spherical[2], false ); - } - -// rotate coordinate to align z-axis with rotating symmetric axis - CartesianRotate( xp, Jet_PrecessionAngle, Omega_t, false ); - -// determine whether or not the point is inside of source - InsideUpperCone = SQR(xp[0]) + SQR(xp[1]) <= SQR( +tan(Jet_HalfOpeningAngle)*xp[2] + Jet_Radius ); - InsideUpperCone &= 0.0 <= xp[2] && xp[2] <= Jet_HalfHeight; - - InsideLowerCone = SQR(xp[0]) + SQR(xp[1]) <= SQR( -tan(Jet_HalfOpeningAngle)*xp[2] + Jet_Radius ); - InsideLowerCone &= -Jet_HalfHeight <= xp[2] && xp[2] <= 0.0; - - if ( Jet_HalfOpeningAngle != 0.0 ) - { - InsideUpperCone &= SQR(xp[0]) + SQR(xp[1]) + SQR(xp[2] + Jet_Radius/tan(Jet_HalfOpeningAngle)) - <= SQR(Jet_HalfHeight+Jet_Radius/tan(Jet_HalfOpeningAngle)); - - InsideUpperCone &= 0.0 <= xp[2]; - - InsideLowerCone &= SQR(xp[0]) + SQR(xp[1]) + SQR(xp[2] - Jet_Radius/tan(Jet_HalfOpeningAngle)) - <= SQR(Jet_HalfHeight+Jet_Radius/tan(Jet_HalfOpeningAngle)); - - InsideLowerCone &= xp[2] <= 0.0; - } else - { - InsideUpperCone &= 0.0 <= xp[2] && xp[2] <= Jet_HalfHeight; - InsideLowerCone &= -Jet_HalfHeight <= xp[2] && xp[2] <= 0.0; - } // if ( Jet_HalfOpeningAngle != 0.0 ) ... else ... - -// set fluid variable inside source - if ( ( InsideUpperCone && ( Jet_Fire == 1 || Jet_Fire == 3 ) ) || - ( InsideLowerCone && ( Jet_Fire == 2 || Jet_Fire == 3 ) ) ) - { - if ( Jet_HalfOpeningAngle == 0.0 ) - { - Vel[0] = 0.0; - Vel[1] = 0.0; - if ( InsideUpperCone == true ) Vel[2] = +Jet_SrcVel; - else Vel[2] = -Jet_SrcVel; - - CartesianRotate( Vel, Jet_PrecessionAngle, Omega_t, true ); - - if ( Jet_PrecessionAxis[0] != 0.0 || Jet_PrecessionAxis[1] != 0.0 || Jet_PrecessionAxis[2] == 0.0 ) - CartesianRotate( Vel, PrecessionAxis_Spherical[1], PrecessionAxis_Spherical[2], true ); - - Prim[0] = Jet_SrcDens; - Prim[1] = Vel[0]; - Prim[2] = Vel[1]; - Prim[3] = Vel[2]; - Prim[4] = Jet_SrcTemp*Jet_SrcDens; - } else // if ( Jet_HalfOpeningAngle == 0.0 ) - { -// shift origin to the point D/E - if ( InsideUpperCone == true ) xp[2] += Jet_Radius/tan(Jet_HalfOpeningAngle); - else xp[2] -= Jet_Radius/tan(Jet_HalfOpeningAngle); - - CartesianRotate( xp, Jet_PrecessionAngle, Omega_t, true ); - - Mis_Cartesian2Spherical( xp, rp ); - - if ( InsideLowerCone == true ) rp[1] -= M_PI; - -// smooth velocity on cross section - if ( Jet_SmoothVel ) Jet_SrcVelSmooth = Jet_SrcVel*SQR(cos( 0.5 * M_PI * rp[1] / Jet_HalfOpeningAngle )); - else Jet_SrcVelSmooth = Jet_SrcVel; - - if ( Jet_PrecessionAxis[0] != 0.0 || Jet_PrecessionAxis[1] != 0.0 || Jet_PrecessionAxis[2] == 0.0 ) - CartesianRotate( xp, PrecessionAxis_Spherical[1], PrecessionAxis_Spherical[2], true ); - - Mis_Cartesian2Spherical( xp, rp ); - - Prim[0] = Jet_SrcDens; - Prim[1] = Jet_SrcVelSmooth*sin(rp[1])*cos(rp[2]); - Prim[2] = Jet_SrcVelSmooth*sin(rp[1])*sin(rp[2]); - Prim[3] = Jet_SrcVelSmooth*cos(rp[1]); - Prim[4] = Jet_SrcTemp*Jet_SrcDens; - } // if ( Jet_HalfOpeningAngle == 0.0 ) ... else ... - - PriReal[0] = (real)Prim[0]; - PriReal[1] = (real)Prim[1]; - PriReal[2] = (real)Prim[2]; - PriReal[3] = (real)Prim[3]; - PriReal[4] = (real)Prim[4]; - - Hydro_Pri2Con( PriReal, fluid, NULL_BOOL, NULL_INT, NULL, EoS_DensPres2Eint_CPUPtr, - EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, - EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, NULL ); - -# if ( NCOMP_PASSIVE_USER > 0 ) - fluid[Passive_0000] = 0.0; - fluid[Passive_0001] = fluid[DENS]; - fluid[Passive_0002] = Jet_Src_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); -# endif - -# ifdef COSMIC_RAY - fluid[CRAY] = Jet_Src_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); -# endif - - return true; - } // if ( ( InsideUpperCone && ( Jet_Fire == 1 || Jet_Fire == 3 ) ) || -// ( InsideLowerCone && ( Jet_Fire == 2 || Jet_Fire == 3 ) ) ) - } else // if ( !Jet_SphericalSrc ) - { - double xp[3], rp[3]; - double Prim[NCOMP_TOTAL] = {0.0}, Cons[NCOMP_TOTAL] = {0.0}, Vel[3]; - real PriReal[NCOMP_TOTAL] = {0.0}; - -// shift the coordinate origin to the source center (the point O) - xp[0] = x - Jet_Center[0]; - xp[1] = y - Jet_Center[1]; - xp[2] = z - Jet_Center[2]; - - //Mis_Cartesian2Spherical(xp, rp); - - double R = SQRT( SQR(xp[0]) + SQR(xp[1]) + SQR(xp[2]) ); - - if ( R < Jet_HalfHeight ) - { - Prim[0] = Jet_SrcDens; - Prim[1] = Jet_SrcVel*xp[0]/R; - Prim[2] = Jet_SrcVel*xp[1]/R; - Prim[3] = Jet_SrcVel*xp[2]/R; - Prim[4] = Jet_SrcTemp*Jet_SrcDens; - - PriReal[0] = (real)Prim[0]; - PriReal[1] = (real)Prim[1]; - PriReal[2] = (real)Prim[2]; - PriReal[3] = (real)Prim[3]; - PriReal[4] = (real)Prim[4]; - - Hydro_Pri2Con( PriReal, fluid, NULL_BOOL, NULL_INT, NULL, EoS_DensPres2Eint_CPUPtr, - EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, - EoS_AuxArray_Int, h_EoS_Table, NULL ); - -# if ( NCOMP_PASSIVE_USER > 0 ) - fluid[Passive_0000] = 0.0; - fluid[Passive_0001] = fluid[DENS]; - fluid[Passive_0002] = Jet_Src_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); -# endif - -# ifdef COSMIC_RAY - fluid[CRAY] = Jet_Src_CR_Engy * SQRT((real)1.0+SQR(Jet_SrcVel)); -# endif - - return true; - } // if ( R < Jet_HalfHeight ) - } // if ( !Jet_SphericalSrc ) ... else ... - - return false; + + if ( Jet_Fire == 0 ) return false; + + if ( Jet_Duration < Time ) return false; + + if ( !Jet_SphericalSrc ) + { + double xp[3], rp[3]; + double Prim[NCOMP_TOTAL] = {0.0}, Cons[NCOMP_TOTAL] = {0.0}, Vel[3]; + real PriReal[NCOMP_TOTAL] = {0.0}; + double PrecessionAxis_Spherical[3], Omega_t; + bool InsideUpperCone, InsideLowerCone; + double Jet_SrcVelSmooth; + + Omega_t = Jet_AngularVelocity * Time * M_PI / 180.0; + +// shift the coordinate origin to the source center (the point O) + xp[0] = x - Jet_Center[0]; + xp[1] = y - Jet_Center[1]; + xp[2] = z - Jet_Center[2]; + + if ( Jet_PrecessionAxis[0] != 0.0 || Jet_PrecessionAxis[1] != 0.0 || Jet_PrecessionAxis[2] == 0.0 ) + { +// get theta, phi for the first rotation + Mis_Cartesian2Spherical( Jet_PrecessionAxis, PrecessionAxis_Spherical ); +// rotate coordinate to align z-axis with fixed precession axis + CartesianRotate( xp, PrecessionAxis_Spherical[1], PrecessionAxis_Spherical[2], false ); + } + +// rotate coordinate to align z-axis with rotating symmetric axis + CartesianRotate( xp, Jet_PrecessionAngle, Omega_t, false ); + +// determine whether or not the point is inside of source + InsideUpperCone = SQR(xp[0]) + SQR(xp[1]) <= SQR( +tan(Jet_HalfOpeningAngle)*xp[2] + Jet_Radius ); + InsideUpperCone &= 0.0 <= xp[2] && xp[2] <= Jet_HalfHeight; + + InsideLowerCone = SQR(xp[0]) + SQR(xp[1]) <= SQR( -tan(Jet_HalfOpeningAngle)*xp[2] + Jet_Radius ); + InsideLowerCone &= -Jet_HalfHeight <= xp[2] && xp[2] <= 0.0; + + if ( Jet_HalfOpeningAngle != 0.0 ) + { + InsideUpperCone &= SQR(xp[0]) + SQR(xp[1]) + SQR(xp[2] + Jet_Radius/tan(Jet_HalfOpeningAngle)) + <= SQR(Jet_HalfHeight+Jet_Radius/tan(Jet_HalfOpeningAngle)); + + InsideUpperCone &= 0.0 <= xp[2]; + + InsideLowerCone &= SQR(xp[0]) + SQR(xp[1]) + SQR(xp[2] - Jet_Radius/tan(Jet_HalfOpeningAngle)) + <= SQR(Jet_HalfHeight+Jet_Radius/tan(Jet_HalfOpeningAngle)); + + InsideLowerCone &= xp[2] <= 0.0; + } + else + { + InsideUpperCone &= 0.0 <= xp[2] && xp[2] <= Jet_HalfHeight; + InsideLowerCone &= -Jet_HalfHeight <= xp[2] && xp[2] <= 0.0; + } // if ( Jet_HalfOpeningAngle != 0.0 ) ... else ... + +// set fluid variable inside source + if ( ( InsideUpperCone && ( Jet_Fire == 1 || Jet_Fire == 3 ) ) || + ( InsideLowerCone && ( Jet_Fire == 2 || Jet_Fire == 3 ) ) ) + { + if ( Jet_HalfOpeningAngle == 0.0 ) + { + Vel[0] = 0.0; + Vel[1] = 0.0; + if ( InsideUpperCone == true ) Vel[2] = +Jet_SrcVel; + else Vel[2] = -Jet_SrcVel; + + CartesianRotate( Vel, Jet_PrecessionAngle, Omega_t, true ); + + if ( Jet_PrecessionAxis[0] != 0.0 || Jet_PrecessionAxis[1] != 0.0 || Jet_PrecessionAxis[2] == 0.0 ) + CartesianRotate( Vel, PrecessionAxis_Spherical[1], PrecessionAxis_Spherical[2], true ); + + Prim[0] = Jet_SrcDens; + Prim[1] = Vel[0]; + Prim[2] = Vel[1]; + Prim[3] = Vel[2]; + Prim[4] = Jet_SrcTemp*Jet_SrcDens; + } + else // if ( Jet_HalfOpeningAngle == 0.0 ) + { +// shift origin to the point D/E + if ( InsideUpperCone == true ) xp[2] += Jet_Radius/tan(Jet_HalfOpeningAngle); + else xp[2] -= Jet_Radius/tan(Jet_HalfOpeningAngle); + + CartesianRotate( xp, Jet_PrecessionAngle, Omega_t, true ); + + Mis_Cartesian2Spherical( xp, rp ); + + if ( InsideLowerCone == true ) rp[1] -= M_PI; + +// smooth velocity on cross section + if ( Jet_SmoothVel ) Jet_SrcVelSmooth = Jet_SrcVel*SQR(cos( 0.5 * M_PI * rp[1] / Jet_HalfOpeningAngle )); + else Jet_SrcVelSmooth = Jet_SrcVel; + + if ( Jet_PrecessionAxis[0] != 0.0 || Jet_PrecessionAxis[1] != 0.0 || Jet_PrecessionAxis[2] == 0.0 ) + CartesianRotate( xp, PrecessionAxis_Spherical[1], PrecessionAxis_Spherical[2], true ); + + Mis_Cartesian2Spherical( xp, rp ); + + Prim[0] = Jet_SrcDens; + Prim[1] = Jet_SrcVelSmooth*sin(rp[1])*cos(rp[2]); + Prim[2] = Jet_SrcVelSmooth*sin(rp[1])*sin(rp[2]); + Prim[3] = Jet_SrcVelSmooth*cos(rp[1]); + Prim[4] = Jet_SrcTemp*Jet_SrcDens; + } // if ( Jet_HalfOpeningAngle == 0.0 ) ... else ... + + PriReal[0] = (real)Prim[0]; + PriReal[1] = (real)Prim[1]; + PriReal[2] = (real)Prim[2]; + PriReal[3] = (real)Prim[3]; + PriReal[4] = (real)Prim[4]; + + Hydro_Pri2Con( PriReal, fluid, NULL_BOOL, NULL_INT, NULL, EoS_DensPres2Eint_CPUPtr, + EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, + EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table, NULL ); + +# if ( NCOMP_PASSIVE_USER > 0 ) + fluid[Passive_0000] = 0.0; + fluid[Passive_0001] = fluid[DENS]; + fluid[Passive_0002] = Jet_Src_CR_Engy * Jet_SrcGamma; +# endif + +# ifdef COSMIC_RAY + fluid[CRAY] = Jet_Src_CR_Engy * Jet_SrcGamma; +# endif + + return true; + } // if ( ( InsideUpperCone && ( Jet_Fire == 1 || Jet_Fire == 3 ) ) || +// ( InsideLowerCone && ( Jet_Fire == 2 || Jet_Fire == 3 ) ) ) + } + else // if ( !Jet_SphericalSrc ) + { + double xp[3], rp[3]; + double Prim[NCOMP_TOTAL] = {0.0}, Cons[NCOMP_TOTAL] = {0.0}, Vel[3]; + real PriReal[NCOMP_TOTAL] = {0.0}; + +// shift the coordinate origin to the source center (the point O) + xp[0] = x - Jet_Center[0]; + xp[1] = y - Jet_Center[1]; + xp[2] = z - Jet_Center[2]; + + //Mis_Cartesian2Spherical(xp, rp); + + const double R = SQRT( SQR(xp[0]) + SQR(xp[1]) + SQR(xp[2]) ); + + if ( R < Jet_HalfHeight ) + { + Prim[0] = Jet_SrcDens; + Prim[1] = Jet_SrcVel*xp[0]/R; + Prim[2] = Jet_SrcVel*xp[1]/R; + Prim[3] = Jet_SrcVel*xp[2]/R; + Prim[4] = Jet_SrcTemp*Jet_SrcDens; + + PriReal[0] = (real)Prim[0]; + PriReal[1] = (real)Prim[1]; + PriReal[2] = (real)Prim[2]; + PriReal[3] = (real)Prim[3]; + PriReal[4] = (real)Prim[4]; + + Hydro_Pri2Con( PriReal, fluid, NULL_BOOL, NULL_INT, NULL, EoS_DensPres2Eint_CPUPtr, + EoS_Temp2HTilde_CPUPtr, EoS_HTilde2Temp_CPUPtr, EoS_AuxArray_Flt, + EoS_AuxArray_Int, h_EoS_Table, NULL ); + +# if ( NCOMP_PASSIVE_USER > 0 ) + fluid[Passive_0000] = 0.0; + fluid[Passive_0001] = fluid[DENS]; + fluid[Passive_0002] = Jet_Src_CR_Engy * Jet_SrcGamma; +# endif + +# ifdef COSMIC_RAY + fluid[CRAY] = Jet_Src_CR_Engy * Jet_SrcGamma; +# endif + + return true; + } // if ( R < Jet_HalfHeight ) + } // if ( !Jet_SphericalSrc ) ... else ... + + return false; } // FUNCTION : Flu_ResetByUser_FermiBubble -// (true/false): if the target cell (is/is not) within the region to be refined -static bool Flag_Region( const int i, const int j, const int k, const int lv, const int PID ) +//------------------------------------------------------------------------------------------------------- +// Function : Flag_Region_FermiBubble +// Description : +// +// Note : 1. Invoked by Flag_Check() using the function pointer "Flag_Region_Ptr", +// which must be set by a test problem initializer +// 2. Enabled by the runtime option "OPT__FLAG_REGION" +// +// Parameter : i,j,k : Indices of the target element in the patch ptr[0][lv][PID] +// lv : Refinement level of the target patch +// PID : ID of the target patch +// +// Return : "true/false" if the input cell "is/is not" within the region allowed for refinement +//------------------------------------------------------------------------------------------------------- +static bool Flag_Region_FermiBubble( const int i, const int j, const int k, const int lv, const int PID ) { - if ( Step > 0 ) - { + if ( Step <= 0 ) return true; const double dh = amr->dh[lv]; // grid size const double Pos[3] = { amr->patch[0][lv][PID]->EdgeL[0] + (i+0.5)*dh, // x,y,z position amr->patch[0][lv][PID]->EdgeL[1] + (j+0.5)*dh, @@ -1417,20 +1427,33 @@ static bool Flag_Region( const int i, const int j, const int k, const int lv, co Pos[2]-Center[2]-Jet_CenOffset[2] }; const double R = sqrt( SQR(dr[0]) + SQR(dr[1]) ); - //const double ShellThickness = 16*amr->dh[3]; - bool Flag = false; - Flag = R > gasDisk_highResRadius && lv > gasDisk_lowRes_LEVEL && fabs(dr[2]) < 2.0*interfaceHeight; + const bool Flag = R > gasDisk_highResRadius && lv > gasDisk_lowRes_LEVEL && fabs(dr[2]) < 2.0*interfaceHeight; + if ( Flag ) return false; - if (Flag) return false; - else return true; - } // if (Step > 0) - else return true; -} // FUNCTION : Flag_Region + return true; +} // FUNCTION : Flag_Region_FermiBubble -bool Flag_User( const int i, const int j, const int k, const int lv, const int PID, const double *Threshold ) +//------------------------------------------------------------------------------------------------------- +// Function : Flag_FermiBubble +// Description : Refine the area near the jet source or the disk +// +// Note : 1. Invoked by Flag_Check() using the function pointer "Flag_User_Ptr", +// which must be set by a test problem initializer +// 2. Enabled by the runtime option "OPT__FLAG_USER" +// +// Parameter : i,j,k : Indices of the target element in the patch ptr[ amr->FluSg[lv] ][lv][PID] +// lv : Refinement level of the target patch +// PID : ID of the target patch +// Threshold : User-provided threshold for the flag operation, which is loaded from the +// file "Input__Flag_User" +// +// Return : "true" if the flag criteria are satisfied +// "false" if the flag criteria are not satisfied +//------------------------------------------------------------------------------------------------------- +bool Flag_FermiBubble( const int i, const int j, const int k, const int lv, const int PID, const double *Threshold ) { const double dh = amr->dh[lv]; // grid size const double Pos[3] = { amr->patch[0][lv][PID]->EdgeL[0] + (i+0.5)*dh, // x,y,z position @@ -1442,25 +1465,32 @@ bool Flag_User( const int i, const int j, const int k, const int lv, const int P const double dR[3] = { Pos[0]-Center[0], Pos[1]-Center[1], Pos[2]-Center[2] }; const double R = sqrt( SQR(dR[0]) + SQR(dR[1]) + SQR(dR[2]) ); - bool Flag, Src; + bool Flag, Src = R <= dh*1.8; if ( Jet_Ambient != 4 ) { - bool Disk; - Disk = fabs(dR[2]) <= dh*1.8; - if (lv >= jetSrc_lowRes_LEVEL) Disk = false; - Src = R <= dh*1.8; - Flag = Src||Disk; + bool Disk = fabs(dR[2]) <= dh*1.8; + if ( lv >= jetSrc_lowRes_LEVEL ) Disk = false; + Flag = Src || Disk; } else { - Src = R <= dh*1.8; - Flag = Src; + Flag = Src; } return Flag; -} // FUNCTION : Flag_User +} // FUNCTION : Flag_FermiBubble +//------------------------------------------------------------------------------------------------------- +// Function : CartesianRotate +// Description : +// +// Note : +// +// Parameter : +// +// Return : +//------------------------------------------------------------------------------------------------------- void CartesianRotate( double x[], double theta, double phi, bool inverse ) { double xp[3]; @@ -1483,45 +1513,28 @@ void CartesianRotate( double x[], double theta, double phi, bool inverse ) //------------------------------------------------------------------------------------------------------- -// Function : Mis_GetTimeStep_User_Template -// Description : Template of user-defined criteria to estimate the evolution time-step +// Function : AddNewField_FermiBubble +// Description : Add the problem-specific fields // -// Note : 1. This function should be applied to both physical and comoving coordinates and always -// return the evolution time-step (dt) actually used in various solvers -// --> Physical coordinates : dt = physical time interval -// Comoving coordinates : dt = delta(scale_factor) / ( Hubble_parameter*scale_factor^3 ) -// --> We convert dt back to the physical time interval, which equals "delta(scale_factor)" -// in the comoving coordinates, in Mis_GetTimeStep() -// 2. Invoked by Mis_GetTimeStep() using the function pointer "Mis_GetTimeStep_User_Ptr", -// which must be set by a test problem initializer -// 3. Enabled by the runtime option "OPT__DT_USER" +// Note : 1. Ref: https://github.com/gamer-project/gamer/wiki/Adding-New-Simulations#v-add-problem-specific-grid-fields-and-particle-attributes +// 2. Invoke AddField() for each of the problem-specific field: +// --> Field label sent to AddField() will be used as the output name of the field +// --> Field index returned by AddField() can be used to access the field data +// 3. Pre-declared field indices are put in Field.h // -// Parameter : lv : Target refinement level -// dTime_dt : dTime/dt (== 1.0 if COMOVING is off) +// Parameter : None // -// Return : dt +// Return : None //------------------------------------------------------------------------------------------------------- -double Mis_GetTimeStep_User( const int lv, const double dTime_dt ) -{ - double Jet_SrcGamma = sqrt(1.0 + SQR(Jet_SrcVel)); - double Jet_Src3Vel = Jet_SrcVel / Jet_SrcGamma; - double dh = amr->dh[MAX_LEVEL]; - double Cs = 0.182574; // 1.0/sqrt(3); - double dt_user = DT__FLUID * dh /(Jet_Src3Vel+3.0*Cs); - - return dt_user; -} // FUNCTION : Mis_GetTimeStep_User_Template - - - -void AddNewField_Jet() +void AddNewField_FermiBubble() { # if ( NCOMP_PASSIVE_USER > 0 ) - if ( Passive_0000 == 5 ) Passive_0000 = AddField( "Passive_0000", FIXUP_FLUX_YES, FIXUP_REST_YES, NORMALIZE_NO, INTERP_FRAC_NO ); - if ( Passive_0001 == 6 ) Passive_0001 = AddField( "Passive_0001", FIXUP_FLUX_YES, FIXUP_REST_YES, NORMALIZE_NO, INTERP_FRAC_NO ); - if ( Passive_0002 == 7 ) Passive_0002 = AddField( "Passive_0002", FIXUP_FLUX_YES, FIXUP_REST_YES, NORMALIZE_NO, INTERP_FRAC_NO ); + if ( Passive_0000 == 5 ) Passive_0000 = AddField( "Passive_0000", FIXUP_FLUX_YES, FIXUP_REST_YES, NORMALIZE_NO, INTERP_FRAC_NO ); + if ( Passive_0001 == 6 ) Passive_0001 = AddField( "Passive_0001", FIXUP_FLUX_YES, FIXUP_REST_YES, NORMALIZE_NO, INTERP_FRAC_NO ); + if ( Passive_0002 == 7 ) Passive_0002 = AddField( "Passive_0002", FIXUP_FLUX_YES, FIXUP_REST_YES, NORMALIZE_NO, INTERP_FRAC_NO ); # endif } // FUNCTION : AddNewField_Jet +#endif // #if ( MODEL == HYDRO ) @@ -1545,42 +1558,25 @@ void Init_TestProb_Hydro_FermiBubble() Validate(); +# if ( MODEL == HYDRO ) // set the problem-specific runtime parameters SetParameter(); -// get enclosed mass Init_Function_User_Ptr = SetGridIC; - Flag_User_Ptr = Flag_User; - Flag_Region_Ptr = Flag_Region; - - //if (Jet_Fire > 0) - //{ - // OPT__DT_USER = 1; - // Mis_GetTimeStep_User_Ptr = Mis_GetTimeStep_User; - //} - //else - //{ - // OPT__DT_USER = 0; - // Mis_GetTimeStep_User_Ptr = NULL; - //} - - BC_User_Ptr = NULL; + Flag_User_Ptr = Flag_FermiBubble; + Flag_Region_Ptr = Flag_Region_FermiBubble; Flu_ResetByUser_Func_Ptr = Flu_ResetByUser_FermiBubble; - Output_User_Ptr = NULL; - Aux_Record_User_Ptr = NULL; - End_User_Ptr = NULL; # ifdef GRAVITY Init_ExtPot_Ptr = Init_ExtPot_IsothermalSlab; # endif # if ( NCOMP_PASSIVE_USER > 0 ) - Init_Field_User_Ptr = AddNewField_Jet; + Init_Field_User_Ptr = AddNewField_FermiBubble; # endif +# endif // #if ( MODEL == HYDRO ) if ( MPI_Rank == 0 ) Aux_Message( stdout, "%s ... done\n", __FUNCTION__ ); } // FUNCTION : Init_TestProb_Hydro_FermiBubble - -#endif // #if ( MODEL == HYDRO ) From 3dec0660146cf8659887c00d7f21e923871e75b8 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Fri, 16 Aug 2024 15:08:33 +0800 Subject: [PATCH 40/73] Add init files for Fermi bubble test problem --- .../FermiBubble/Input__Flag_PresGradient | 13 + .../Hydro/FermiBubble/Input__Flag_RhoGradient | 16 + .../Hydro/FermiBubble/Input__Flag_User | 16 + .../Hydro/FermiBubble/Input__Parameter | 297 ++++++++++++++++++ .../Hydro/FermiBubble/Input__TestProb | 72 +++++ example/test_problem/Hydro/FermiBubble/manual | 48 +++ 6 files changed, 462 insertions(+) create mode 100644 example/test_problem/Hydro/FermiBubble/Input__Flag_PresGradient create mode 100644 example/test_problem/Hydro/FermiBubble/Input__Flag_RhoGradient create mode 100644 example/test_problem/Hydro/FermiBubble/Input__Flag_User create mode 100644 example/test_problem/Hydro/FermiBubble/Input__Parameter create mode 100644 example/test_problem/Hydro/FermiBubble/Input__TestProb create mode 100644 example/test_problem/Hydro/FermiBubble/manual diff --git a/example/test_problem/Hydro/FermiBubble/Input__Flag_PresGradient b/example/test_problem/Hydro/FermiBubble/Input__Flag_PresGradient new file mode 100644 index 0000000000..e410856aac --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/Input__Flag_PresGradient @@ -0,0 +1,13 @@ +# Level Threshold + 0 0.3 + 1 0.3 + 2 0.3 + 3 0.3 + 4 0.3 + 5 0.3 + 6 1e99 + 7 1e99 + 8 1e99 + 9 1e99 + 10 1e99 + 11 1e99 diff --git a/example/test_problem/Hydro/FermiBubble/Input__Flag_RhoGradient b/example/test_problem/Hydro/FermiBubble/Input__Flag_RhoGradient new file mode 100644 index 0000000000..6faade9335 --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/Input__Flag_RhoGradient @@ -0,0 +1,16 @@ +# Level Threshold + 0 0.3 + 1 0.3 + 2 0.3 + 3 0.3 + 4 0.3 + 5 0.3 + 6 1e99 + 7 1e99 + 8 1e99 + 9 1e99 + 10 1e99 + 11 1e99 + 12 1e99 + 13 1e99 + 14 1e99 diff --git a/example/test_problem/Hydro/FermiBubble/Input__Flag_User b/example/test_problem/Hydro/FermiBubble/Input__Flag_User new file mode 100644 index 0000000000..7c5122dfb2 --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/Input__Flag_User @@ -0,0 +1,16 @@ +# Level Threshold + 0 0.01 + 1 0.01 + 2 0.01 + 3 0.01 + 4 0.01 + 5 1e99 + 6 1e99 + 7 1e99 + 8 1e99 + 9 1e99 + 10 1e99 + 11 1e99 + 11 1e99 + 11 1e99 + 11 1e99 diff --git a/example/test_problem/Hydro/FermiBubble/Input__Parameter b/example/test_problem/Hydro/FermiBubble/Input__Parameter new file mode 100644 index 0000000000..3df9d1ce84 --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/Input__Parameter @@ -0,0 +1,297 @@ + + +# ================================================================================================================= +# NOTE: +# 1. Comment symbol: # +# 2. [*]: defaults +# 3. Parameters set to "auto" (usually by setting to a negative value) do not have deterministic default values +# and will be set according to the adopted compilation options and/or other runtime parameters +# 4. To add new parameters, please edit "Init/Init_Load_Parameter.cpp" +# 5. All dimensional variables should be set consistently with the code units (set by UNIT_L/M/T/V/D) unless +# otherwise specified (e.g., SF_CREATE_STAR_MIN_GAS_DENS & SF_CREATE_STAR_MIN_STAR_MASS) +# 6. For boolean options: 0/1 -> off/on +# ================================================================================================================= + + +# simulation scale +BOX_SIZE 28.0 # box size along the longest side +NX0_TOT_X 16 # number of base-level cells along x +NX0_TOT_Y 16 # number of base-level cells along y +NX0_TOT_Z 32 # number of base-level cells along z +OMP_NTHREAD -1 # number of OpenMP threads (<=0=auto) [-1] ##OPENMP ONLY## +END_T 3.8e3 # end physical time (<0=auto -> must be set by test problems or restart) [-1.0] +# END_T 3.14872516940871e+01 +END_STEP -1 # end step (<0=auto -> must be set by test problems or restart) [-1] + + +# test problems +TESTPROB_ID 24 # test problem ID [0] + # 0: none + # 1: HYDRO blast wave [+MHD] + # 2: HYDRO acoustic wave + # 3: HYDRO Bondi accretion (+GRAVITY) + # 4: HYDRO cluster merger vs. Flash (+GRAVITY & PARTICLE) + # 5: HYDRO AGORA isolated galaxy (+GRAVITY & PARTICLE & STAR_FORMATION & GRACKLE) + # 6: HYDRO caustic wave + # 7: HYDRO spherical collapse (+GRAVITY & COMOVING) + # 8: HYDRO Kelvin Helmholtz instability + # 9: HYDRO Riemann problems [+MHD] + # 10: HYDRO jet(s) + # 11: HYDRO Plummer cloud(s) (+GRAVITY & PARTICLE) + # 12: HYDRO gravity (+GRAVITY) + # 13: HYDRO MHD Arnold-Beltrami-Childress (ABC) flow (+MHD) + # 14: HYDRO MHD Orszag-Tang vortex (+MHD) + # 15: HYDRO MHD linear wave (+MHD) + # 16: HYDRO Jeans instability (+GRAVITY) [+MHD] + # 17: HYDRO particle in equilibrium (+GRAVITY & PARTICLE) + # 19: HYDRO energy power spectrum + # 20: HYDRO MHD Cosmic Ray Soundwave + # 21: HYDRO MHD Cosmic Ray Shocktube + # 23: HYDRO MHD Cosmic Ray Diffusion + # 24: HYDRO SRHD Fermi Bubble + # 100: HYDRO CDM cosmological simulation (+GRAVITY & COMOVING & PARTICLE) + # 101: HYDRO Zeldovich pancake collapse (+GRAVITY & COMOVING & PARTICLE) + # 1000: ELBDM external potential (+GRAVITY) + + +# code units (in cgs) +OPT__UNIT 1 # specify code units -> must set exactly 3 basic units below [0] ##USELESS FOR COMOVING## +UNIT_L 3.08567758149e21 # length unit (<=0 -> set to UNIT_V*UNIT_T or (UNIT_M/UNIT_D)^(1/3)) [-1.0] +UNIT_M 0 # mass unit (<=0 -> set to UNIT_D*UNIT_L^3) [-1.0] +UNIT_T 0 # time unit (<=0 -> set to UNIT_L/UNIT_V) [-1.0] +UNIT_V 0 # velocity unit (<=0 -> set to UNIT_L/UNIT_T) [-1.0] +UNIT_D 1e-24 # mass density unit (<=0 -> set to UNIT_M/UNIT_L^3) [-1.0] + + +# boundary conditions +OPT__BC_FLU_XM 2 # fluid boundary condition at the -x face: (1=periodic, 2=outflow, 3=reflecting, 4=user, 5=diode) ##2/3/5 for HYDRO ONLY## +OPT__BC_FLU_XP 2 # fluid boundary condition at the +x face: (1=periodic, 2=outflow, 3=reflecting, 4=user, 5=diode) ##2/3/5 for HYDRO ONLY## +OPT__BC_FLU_YM 2 # fluid boundary condition at the -y face: (1=periodic, 2=outflow, 3=reflecting, 4=user, 5=diode) ##2/3/5 for HYDRO ONLY## +OPT__BC_FLU_YP 2 # fluid boundary condition at the +y face: (1=periodic, 2=outflow, 3=reflecting, 4=user, 5=diode) ##2/3/5 for HYDRO ONLY## +OPT__BC_FLU_ZM 2 # fluid boundary condition at the -z face: (1=periodic, 2=outflow, 3=reflecting, 4=user, 5=diode) ##2/3/5 for HYDRO ONLY## +OPT__BC_FLU_ZP 2 # fluid boundary condition at the +z face: (1=periodic, 2=outflow, 3=reflecting, 4=user, 5=diode) ##2/3/5 for HYDRO ONLY## +OPT__BC_POT 1 # gravity boundary condition: (1=periodic, 2=isolated) + + +# time-step +DT__MAX -1.0 # dt criterion: maximum allowed dt (<0=off) [-1.0] +DT__FLUID 0.4 # dt criterion: fluid solver CFL factor (<0=auto) [-1.0] +DT__FLUID_INIT 0.4 # dt criterion: DT__FLUID at the first step (<0=auto) [-1.0] +DT__SPEED_OF_LIGHT 0 # dt criterion: speed of light [0] ##SRHD ONLY## +DT__GRAVITY 0.1 # dt criterion: gravity solver safety factor (<0=auto) [-1.0] +DT__SYNC_PARENT_LV 0.1 # dt criterion: allow dt to adjust by (1.0+DT__SYNC_PARENT) in order to synchronize + # with the parent level (for OPT__DT_LEVEL==3 only) [0.1] +DT__SYNC_CHILDREN_LV 0.1 # dt criterion: allow dt to adjust by (1.0-DT__SYNC_CHILDREN) in order to synchronize + # with the children level (for OPT__DT_LEVEL==3 only; 0=off) [0.1] +OPT__DT_USER 0 # dt criterion: user-defined -> edit "Mis_GetTimeStep_UserCriteria.cpp" [0] +OPT__DT_LEVEL 3 # dt at different AMR levels (1=shared, 2=differ by two, 3=flexible) [3] +OPT__RECORD_DT 1 # record info of the dt determination [1] +AUTO_REDUCE_DT 1 # reduce dt automatically when the program fails (for OPT__DT_LEVEL==3 only) [1] +AUTO_REDUCE_DT_FACTOR 0.8 # reduce dt by a factor of AUTO_REDUCE_DT_FACTOR when the program fails [0.8] +AUTO_REDUCE_DT_FACTOR_MIN 0.1 # minimum allowed AUTO_REDUCE_DT_FACTOR after consecutive failures [0.1] +AUTO_REDUCE_MINMOD_FACTOR 0.8 # reduce MINMOD_COEFF by this factor together with AUTO_REDUCE_DT (1.0=off) [0.8] ##HYDRO ONLY## +AUTO_REDUCE_MINMOD_MIN 1.0e-2 # minimum allowed MINMOD_COEFF after consecutive failures [1.0e-2] ##HYDRO ONLY## +AUTO_REDUCE_INT_MONO_FACTOR 0.8 # reduce INT_MONO_COEFF(_B) by this factor together with AUTO_REDUCE_DT (1.0=off) [0.8] +AUTO_REDUCE_INT_MONO_MIN 1.0e-2 # minimum allowed INT_MONO_COEFF(_B) after consecutive failures [1.0e-2] + + +# grid refinement (examples of Input__Flag_XXX tables are put at "example/input/") +REGRID_COUNT 4 # refine every REGRID_COUNT sub-step [4] +REFINE_NLEVEL 1 # number of new AMR levels to be created at once during refinement [1] +FLAG_BUFFER_SIZE 8 # number of buffer cells for the flag operation (0~PATCH_SIZE) [PATCH_SIZE] +FLAG_BUFFER_SIZE_MAXM1_LV -1 # FLAG_BUFFER_SIZE at the level MAX_LEVEL-1 (<0=auto -> FLAG_BUFFER_SIZE) [-1] +FLAG_BUFFER_SIZE_MAXM2_LV -1 # FLAG_BUFFER_SIZE at the level MAX_LEVEL-2 (<0=auto) [-1] +MAX_LEVEL 10 # maximum refinement level (0~NLEVEL-1) [NLEVEL-1] +OPT__FLAG_RHO 0 # flag: density (Input__Flag_Rho) [0] +OPT__FLAG_RHO_GRADIENT 1 # flag: density gradient (Input__Flag_RhoGradient) [0] +OPT__FLAG_PRES_GRADIENT 1 # flag: pressure gradient (Input__Flag_PresGradient) [0] ##HYDRO/SRHD## +OPT__FLAG_LRTZ_GRADIENT 0 # flag: Lorentz factor gradient (Input__Flag_LrtzGradient) [0] ##SRHD ONLY## +OPT__FLAG_VORTICITY 0 # flag: vorticity (Input__Flag_Vorticity) [0] ##HYDRO ONLY## +OPT__FLAG_JEANS 0 # flag: Jeans length (Input__Flag_Jeans) [0] ##HYDRO ONLY## +OPT__FLAG_CURRENT 0 # flag: current density in MHD (Input__Flag_Current) [0] ##MHD ONLY## +OPT__FLAG_CRAY 0 # flag: cosmic-ray energy (Input__Flag_CRay) [0] ##COSMIC_RAY ONLY## +OPT__FLAG_ENGY_DENSITY 0 # flag: energy density (Input_Flag_EngyDensity) [0] ##ELBDM ONLY## +OPT__FLAG_LOHNER_DENS 0 # flag: Lohner for mass density (Input__Flag_Lohner) [0] ##HYDRO/SRHD/ELBDM## +OPT__FLAG_LOHNER_ENGY 0 # flag: Lohner for energy density (Input__Flag_Lohner) [0] ##HYDRO/SRHD## +OPT__FLAG_LOHNER_PRES 0 # flag: Lohner for pressure (Input__Flag_Lohner) [0] ##HYDRO/SRHD## +OPT__FLAG_LOHNER_TEMP 0 # flag: Lohner for temperature (Input__Flag_Lohner) [0] ##HYDRO/SRHD## +OPT__FLAG_LOHNER_ENTR 0 # flag: Lohner for entropy (Input__Flag_Lohner) [0] ##HYDRO ONLY## +OPT__FLAG_LOHNER_CRAY 0 # flag: Lohner for cosmic-ray energy (Input__Flag_Lohner) [0] ##COSMIC_RAY ONLY## +OPT__FLAG_LOHNER_FORM 2 # form of Lohner: (1=FLASH-1, 2=FLASH-2, 3=form-invariant-1, 4=form-invariant-2) [2] +OPT__FLAG_USER 1 # flag: user-defined (Input__Flag_User) -> edit "Flag_User.cpp" [0] +OPT__FLAG_USER_NUM 1 # number of threshold values in user-defined table (Input__Flag_User) [1] +OPT__FLAG_REGION 1 # flag: specify the regions **allowed** to be refined -> edit "Flag_Region.cpp" [0] +OPT__NO_FLAG_NEAR_BOUNDARY 0 # flag: disallow refinement near the boundaries [0] +OPT__PATCH_COUNT 1 # record the # of patches at each level: (0=off, 1=every step, 2=every sub-step) [1] +OPT__REUSE_MEMORY 2 # reuse patch memory to reduce memory fragmentation: (0=off, 1=on, 2=aggressive) [2] +OPT__MEMORY_POOL 0 # preallocate patches for OPT__REUSE_MEMORY=1/2 (Input__MemoryPool) [0] + + +# load balance (LOAD_BALANCE only) +LB_INPUT__WLI_MAX 0.1 # weighted-load-imbalance (WLI) threshold for redistributing all patches [0.1] +OPT__RECORD_LOAD_BALANCE 1 # record the load-balance info [1] +OPT__MINIMIZE_MPI_BARRIER 1 # minimize MPI barriers to improve load balance, especially with particles [1] + # (STORE_POT_GHOST, PAR_IMPROVE_ACC=1, OPT__TIMING_BARRIER=0 only; recommend AUTO_REDUCE_DT=0) + + +# fluid solver in HYDRO/SRHD (MODEL==HYDRO only) +GAMMA 1.333333333333333333 # ratio of specific heats (i.e., adiabatic index) +MOLECULAR_WEIGHT 1.0 # mean molecular weight -> currently only for post-processing [0.6] +MU_NORM -1.0 # normalization of MOLECULAR_WEIGHT (<0=m_H, 0=amu, >0=input manually) [-1.0] +ISO_TEMP 1.0e4 # isothermal temperature in kelvin ##EOS_ISOTHERMAL ONLY## +MINMOD_COEFF 1.5 # coefficient of the generalized MinMod limiter (1.0~2.0) [1.5] +MINMOD_MAX_ITER 0 # maximum number of iterations to reduce MINMOD_COEFF when data reconstruction fails (0=off) [0] +OPT__LR_LIMITER 4 # slope limiter of data reconstruction in the MHM/MHM_RP/CTU schemes: + # (-1=auto, 0=none, 1=vanLeer, 2=generalized MinMod, 3=vanAlbada, 4=vanLeer+generalized MinMod, 6=central, 7=Athena) [-1] +OPT__1ST_FLUX_CORR -1 # correct unphysical results (defined by MIN_DENS/PRES) by the 1st-order fluxes: + # (<0=auto, 0=off, 1=3D, 2=3D+1D) [-1] ##MHM/MHM_RP/CTU ONLY## +OPT__1ST_FLUX_CORR_SCHEME -1 # Riemann solver for OPT__1ST_FLUX_CORR (-1=auto, 0=none, 1=Roe, 2=HLLC, 3=HLLE, 4=HLLD) [-1] +DUAL_ENERGY_SWITCH 2.0e-2 # apply dual-energy if E_int/E_kin < DUAL_ENERGY_SWITCH [2.0e-2] ##DUAL_ENERGY ONLY## + + +# fluid solvers in all models +FLU_GPU_NPGROUP -1 # number of patch groups sent into the CPU/GPU fluid solver (<=0=auto) [-1] +GPU_NSTREAM -1 # number of CUDA streams for the asynchronous memory copy in GPU (<=0=auto) [-1] +OPT__FIXUP_FLUX 1 # correct coarse grids by the fine-grid boundary fluxes [1] ##HYDRO and ELBDM ONLY## +OPT__FIXUP_ELECTRIC 1 # correct coarse grids by the fine-grid boundary electric field [1] ##MHD ONLY## +OPT__FIXUP_RESTRICT 1 # correct coarse grids by averaging the fine-grid data [1] +OPT__CORR_AFTER_ALL_SYNC -1 # apply various corrections after all levels are synchronized (see "Flu_CorrAfterAllSync"): + # (-1=auto, 0=off, 1=every step, 2=before dump) [-1] +OPT__NORMALIZE_PASSIVE 0 # ensure "sum(passive_scalar_density) == gas_density" [1] +OPT__OVERLAP_MPI 0 # overlap MPI communication with CPU/GPU computations [0] ##NOT SUPPORTED YET## +OPT__RESET_FLUID 1 # reset fluid variables after each update -> edit "Flu_ResetByUser.cpp" [0] +MIN_DENS 0.0 # minimum mass density (must >= 0.0) [0.0] ##HYDRO/SRHD/MHD/ELBDM ONLY## +MIN_PRES 0.0 # minimum pressure (must >= 0.0) [0.0] ##HYDRO and MHD ONLY## +MIN_EINT 0.0 # minimum internal energy (must >= 0.0) [0.0] ##HYDRO and MHD ONLY## + + +# gravity solvers in all models +NEWTON_G 1.0 # gravitational constant (will be overwritten if OPT__UNIT or COMOVING is on) +SOR_OMEGA -1.0 # over-relaxation parameter in SOR: (<0=auto) [-1.0] +SOR_MAX_ITER -1 # maximum number of iterations in SOR: (<0=auto) [-1] +SOR_MIN_ITER -1 # minimum number of iterations in SOR: (<0=auto) [-1] +MG_MAX_ITER -1 # maximum number of iterations in multigrid: (<0=auto) [-1] +MG_NPRE_SMOOTH -1 # number of pre-smoothing steps in multigrid: (<0=auto) [-1] +MG_NPOST_SMOOTH -1 # number of post-smoothing steps in multigrid: (<0=auto) [-1] +MG_TOLERATED_ERROR -1.0 # maximum tolerated error in multigrid (<0=auto) [-1.0] +POT_GPU_NPGROUP -1 # number of patch groups sent into the CPU/GPU Poisson solver (<=0=auto) [-1] +OPT__GRA_P5_GRADIENT 0 # 5-points gradient in the Gravity solver (must have GRA/USG_GHOST_SIZE_G>=2) [0] +OPT__SELF_GRAVITY 0 # add self-gravity [1] +OPT__EXT_ACC 0 # add external acceleration (0=off, 1=function, 2=table) [0] ##HYDRO ONLY## + # --> 2 (table) is not supported yet +OPT__EXT_POT 1 # add external potential (0=off, 1=function, 2=table) [0] +EXT_POT_TABLE_NAME ExtPotTable # external potential table: filename +EXT_POT_TABLE_NPOINT_X 129 # ... : table size (i.e., number of data points) along x/y/z +EXT_POT_TABLE_NPOINT_Y 129 # +EXT_POT_TABLE_NPOINT_Z 129 # +EXT_POT_TABLE_DH_X 0.0078125 # ... : spatial interval between adjacent data points +EXT_POT_TABLE_DH_Y 0.0078125 # +EXT_POT_TABLE_DH_Z 0.0078125 # +EXT_POT_TABLE_EDGEL_X 0.0 # ... : starting x/y/z coordinates +EXT_POT_TABLE_EDGEL_Y 0.0 # +EXT_POT_TABLE_EDGEL_Z 0.0 # +EXT_POT_TABLE_FLOAT8 -1 # ... : double precision (<0=auto -> FLOAT8, 0=off, 1=on) [-1] + # --> not supported yet; use -1 for now +OPT__GRAVITY_EXTRA_MASS 0 # add extra mass source when computing gravity [0] + + +# initialization +OPT__INIT 2 # initialization option: (1=FUNCTION, 2=RESTART, 3=FILE->"UM_IC") +RESTART_LOAD_NRANK 1 # number of parallel I/O (i.e., number of MPI ranks) for restart [1] +OPT__RESTART_RESET 0 # reset some simulation status parameters (e.g., current step and time) during restart [0] +OPT__INIT_RESTRICT 1 # restrict all data during the initialization [1] +OPT__INIT_GRID_WITH_OMP 1 # enable OpenMP when assigning the initial condition of each grid patch [1] +OPT__GPUID_SELECT -1 # GPU ID selection mode: (-3=Laohu, -2=CUDA, -1=MPI rank, >=0=input) [-1] +INIT_SUBSAMPLING_NCELL 0 # perform sub-sampling during initialization: (0=off, >0=# of sub-sampling cells) [0] +OPT__FFTW_STARTUP -1 # initialise fftw plans: (-1=auto, 0=ESTIMATE, 1=MEASURE, 2=PATIENT (only FFTW3)) [-1] + +# interpolation schemes: (-1=auto, 1=MinMod-3D, 2=MinMod-1D, 3=vanLeer, 4=CQuad, 5=Quad, 6=CQuar, 7=Quar) +OPT__INT_TIME 1 # perform "temporal" interpolation for OPT__DT_LEVEL == 2/3 [1] +OPT__INT_PRIM 1 # switch to primitive variables when the interpolation on conserved variables fails [1] ##HYDRO ONLY## +OPT__INT_PHASE 1 # interpolation on phase (does not support MinMod-1D) [1] ##ELBDM ONLY## +OPT__FLU_INT_SCHEME -1 # ghost-zone fluid variables for the fluid solver [-1] +OPT__REF_FLU_INT_SCHEME -1 # newly allocated fluid variables during grid refinement [-1] +OPT__MAG_INT_SCHEME 4 # ghost-zone magnetic field for the MHD solver (2,3,4,6 only) [4] +OPT__REF_MAG_INT_SCHEME 4 # newly allocated magnetic field during grid refinement (2,3,4,6 only) [4] +OPT__POT_INT_SCHEME 4 # ghost-zone potential for the Poisson solver (only supports 4 & 5) [4] +OPT__RHO_INT_SCHEME 4 # ghost-zone mass density for the Poisson solver [4] +OPT__GRA_INT_SCHEME 4 # ghost-zone potential for the gravity solver (for UNSPLIT_GRAVITY as well) [4] +OPT__REF_POT_INT_SCHEME 4 # newly allocated potential during grid refinement [4] +INT_MONO_COEFF 2.0 # coefficient for ensuring the interpolation monotonicity (1.0~4.0) [2.0] +INT_MONO_COEFF_B 2.0 # coefficient for ensuring the interpolation monotonicity of B field (1.0~4.0) [2.0] ##MHD ONLY## +MONO_MAX_ITER 10 # maximum number of iterations to reduce INT_MONO_COEFF when interpolation fails (0=off) [10] +INT_OPP_SIGN_0TH_ORDER 1 # switch to 0th-order interpolation if adjacent values change signs [HYDRO:1; ELBDM:0] + + +# data dump +OPT__OUTPUT_TOTAL 1 # output the simulation snapshot: (0=off, 1=HDF5, 2=C-binary) [1] +OPT__OUTPUT_PART 0 # output a single line or slice: (0=off, 1=xy, 2=yz, 3=xz, 4=x, 5=y, 6=z, 7=diag) [0] +OPT__OUTPUT_TEXT_FORMAT_FLT %24.16e # string format of output text files [%24.16e] +OPT__OUTPUT_USER 0 # output the user-specified data -> edit "Output_User.cpp" [0] +OPT__OUTPUT_PAR_MODE 0 # output the particle data: (0=off, 1=text-file, 2=C-binary) [0] ##PARTICLE ONLY## +OPT__OUTPUT_BASEPS 0 # output the base-level power spectrum [0] +OPT__OUTPUT_BASE 0 # only output the base-level data [0] ##OPT__OUTPUT_PART ONLY## +OPT__OUTPUT_POT 1 # output gravitational potential [1] ##OPT__OUTPUT_TOTAL ONLY## +OPT__OUTPUT_CC_MAG 1 # output **cell-centered** magnetic field (necessary for yt analysis) [1] ##MHD ONLY## +OPT__OUTPUT_MODE 2 # (1=const step, 2=const dt, 3=dump table) -> edit "Input__DumpTable" for 3 +OPT__OUTPUT_RESTART 0 # output data immediately after restart [0] +OUTPUT_STEP 5 # output data every OUTPUT_STEP step ##OPT__OUTPUT_MODE==1 ONLY## +OUTPUT_DT 200 +# OUTPUT_DT 2 +OUTPUT_WALLTIME -1.0 # output data every OUTPUT_WALLTIME walltime (<=0.0=off) [-1.0] +OUTPUT_WALLTIME_UNIT 0 # unit of OUTPUT_WALLTIME (0=second, 1=minute, 2=hour, 3=day) [0] +OUTPUT_PART_X -1.0 # x coordinate for OPT__OUTPUT_PART [-1.0] +OUTPUT_PART_Y -1.0 # y coordinate for OPT__OUTPUT_PART [-1.0] +OUTPUT_PART_Z -1.0 # z coordinate for OPT__OUTPUT_PART [-1.0] +INIT_DUMPID -1 # set the first dump ID (<0=auto) [-1] + + +# yt inline analysis (SUPPORT_LIBYT only) +YT_SCRIPT yt_inline # yt inline analysis script (do not include the ".py" file extension) +YT_VERBOSE 1 # verbose level of yt (0=off, 1=info, 2=warning, 3=debug) [1] +YT_FIG_BASENAME Fig # figure basename [Fig] +YT_JUPYTER_USE_CONNECTION_FILE 0 # use user-provided connection file when using libyt Jupyter UI [0] + + +# miscellaneous +OPT__VERBOSE 0 # output the simulation progress in detail [0] +OPT__TIMING_BARRIER -1 # synchronize before timing -> more accurate, but may slow down the run (<0=auto) [-1] +OPT__TIMING_BALANCE 0 # record the max/min elapsed time in various code sections for checking load balance [0] +OPT__TIMING_MPI 0 # record the MPI bandwidth achieved in various code sections [0] ##LOAD_BALANCE ONLY## +OPT__RECORD_NOTE 1 # take notes for the general simulation info [1] +OPT__RECORD_UNPHY 1 # record the number of cells with unphysical results being corrected [1] +OPT__RECORD_MEMORY 1 # record the memory consumption [1] +OPT__RECORD_PERFORMANCE 1 # record the code performance [1] +OPT__MANUAL_CONTROL 1 # support manually dump data, stop run, or pause run during the runtime + # (by generating the file DUMP_GAMER_DUMP, STOP_GAMER_STOP, PAUSE_GAMER_PAUSE, respectively) [1] +OPT__RECORD_CENTER 0 # record the position of maximum density, minimum potential, and center of mass [0] +COM_CEN_X -1.0 # x coordinate as an initial guess for determining center of mass (if one of COM_CEN_X/Y/Z < 0 -> peak density position x) [-1.0] +COM_CEN_Y -1.0 # y coordinate as an initial guess for determining center of mass (if one of COM_CEN_X/Y/Z < 0 -> peak density position y) [-1.0] +COM_CEN_Z -1.0 # z coordinate as an initial guess for determining center of mass (if one of COM_CEN_X/Y/Z < 0 -> peak density position z) [-1.0] +COM_MAX_R -1.0 # maximum radius for determining center of mass (<0=auto -> __FLT_MAX__) [-1.0] +COM_MIN_RHO 0.0 # minimum density for determining center of mass (must >= 0.0) [0.0] +COM_TOLERR_R -1.0 # maximum tolerated error of deviation in radius during the iterations of determining the center of mass (<0=auto -> amr->dh[MAX_LEVEL]) [-1.0] +COM_MAX_ITER 10 # maximum number of iterations for determining the center of mass (must >= 1) [10] +OPT__RECORD_USER 0 # record the user-specified info -> edit "Aux_Record_User.cpp" [0] +OPT__OPTIMIZE_AGGRESSIVE 0 # apply aggressive optimizations (experimental) [0] +OPT__SORT_PATCH_BY_LBIDX 1 # sort patches to improve bitwise reproducibility [SERIAL:0, LOAD_BALACNE:1] + + +# checks +OPT__CK_REFINE 0 # check the grid refinement [0] +OPT__CK_PROPER_NESTING 0 # check the proper-nesting condition [0] +OPT__CK_CONSERVATION 0 # check the conservation law [0] +ANGMOM_ORIGIN_X -1.0 # x coordinate of the origin for angular momentum (<0=auto -> BoxCenter) [-1.0] +ANGMOM_ORIGIN_Y -1.0 # y coordinate of the origin for angular momentum (<0=auto -> BoxCenter) [-1.0] +ANGMOM_ORIGIN_Z -1.0 # z coordinate of the origin for angular momentum (<0=auto -> BoxCenter) [-1.0] +OPT__CK_NORMALIZE_PASSIVE 0 # check the normalization of passive scalars [0] ##OPT__NORMALIZE_PASSIVE ONLY## +OPT__CK_RESTRICT 0 # check the data restriction [0] +OPT__CK_FINITE 0 # check if all variables are finite [0] +OPT__CK_PATCH_ALLOCATE 0 # check if all patches are properly allocated [0] +OPT__CK_FLUX_ALLOCATE 0 # check if all flux arrays are properly allocated [0] ##HYDRO and ELBDM ONLY## +OPT__CK_NEGATIVE 0 # check the negative values: (0=off, 1=density, 2=pressure and entropy, 3=both) [0] ##HYDRO ONLY## +OPT__CK_MEMFREE 1.0 # check the free memory in GB (0=off, >0=threshold) [1.0] +OPT__CK_PARTICLE 0 # check the particle allocation [0] +OPT__CK_INTERFACE_B 0 # check the consistency of patch interface B field [0] ##MHD ONLY## +OPT__CK_DIVERGENCE_B 0 # check the divergence-free constraint on B field (0=off, 1=on, 2=on+verbose) [0] ##MHD ONLY## +OPT__CK_INPUT_FLUID 0 # check the input data of the fluid solver [0] diff --git a/example/test_problem/Hydro/FermiBubble/Input__TestProb b/example/test_problem/Hydro/FermiBubble/Input__TestProb new file mode 100644 index 0000000000..8bf7e3699d --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/Input__TestProb @@ -0,0 +1,72 @@ +# proton mass = 1.672621898e-24 [g] +# electron mass = 9.109383560e-28 [g] + +# problem-specific runtime parameters +Jet_Ambient 2 # [0/1]: uniform/Milky-Way/from-file +Jet_Fire 0 +Jet_Precession 0 # [0/1]: precession +Jet_TimeDependentSrc 0 # [0/1]: time-dependent source + + +# jet fluid parameters +Jet_SrcVel 0.6 # jet: jet 4-velocity ( in unit of speed of light ) +Jet_SmoothVel 0 # [0/1]: smooth velocity +Jet_SrcDens 1e-26 # jet: jet density (in cgs units) +Jet_SrcTemp 2e10 # jet: jet temperature (in K) +#Jet_Duration 0.6 +gasDisk_highResRadius 0.5 +gasDisk_lowRes_LEVEL 3 +jetSrc_lowRes_LEVEL 6 +Jet_Src_CR_Engy 3e-10 +Amb_CR_Engy 0.0 +criticalTemp 1e99 # K + + +# source geometry parameters +Jet_Radius 0.002 # jet: radius of the cylinder-shape jet source (in kpc) +Jet_HalfHeight 0.002 # jet: half height of the cylinder-shape jet source (in kpc) +Jet_HalfOpeningAngle 0.0 # jet: half-opening angle +Jet_CenOffset_x +0.0 # jet: jet central coordinates offset x (in pc) +Jet_CenOffset_y +0.0 # jet: jet central coordinates offset y (in pc) +Jet_CenOffset_z +0.0 # jet: jet central coordinates offset z (in pc) + + +# precission parameters +Jet_AngularVelocity +0.0 # precession angular velocity at Schwarzschild radius (degree per code_time) +Jet_PrecessionAngle 0.0 # precession angle +Jet_PrecessionAxis_x 0.0 # x-corrdinate of precession vector +Jet_PrecessionAxis_y 1.0 # y-corrdinate of precession vector +Jet_PrecessionAxis_z 1.0 # z-corrdinate of precession vector + + +# Jet_Ambient == 0 +Amb_UniformDens 5.0e-29 # ambient density (in cgs units) +Amb_UniformTemp 1e10 # ambient temperature (in K) +Amb_UniformVel_x +0.0 # ambient velocity x [0.0] +Amb_UniformVel_y +0.0 # ambient velocity y [0.0] +Amb_UniformVel_z +0.0 # ambient velocity z [0.0] + +# estimate default evolution time (i.e. END_T) +Amb_FluSphereRadius -1 # radius of sphere +CharacteristicSpeed 5e-6 # the characteristic speed of the simulation problem + # the default end-time (END_T) will be estimated from + # `CharacteristicSpeed` and `BOX_SIZE` + # The unit of `CharacteristicSpeed` is UNIT_V + + +# Milky Way +IsothermalSlab_Center_x -1 # +IsothermalSlab_Center_y -1 # +IsothermalSlab_Center_z -1 # + +# time-dependent source varibles +Flag_BurstDens 0 # [0/1]: off/on +Flag_Burst4Vel 0 # [0/1]: off/on +Flag_BurstTemp 0 # [0/1]: off/on + +Jet_BurstDens 0 # magnitude of density pulse +Jet_Burst4Vel 0 # magnitude of 4-velocity pulse +Jet_BurstTemp 0 # magnitude of temperature pulse + +Jet_BurstStartTime 0 # start time of pulse +Jet_BurstEndTime 0 # end time of pulse diff --git a/example/test_problem/Hydro/FermiBubble/manual b/example/test_problem/Hydro/FermiBubble/manual new file mode 100644 index 0000000000..72c04d6e57 --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/manual @@ -0,0 +1,48 @@ +# 1. Generate makefile (double precision) +python3 configure.py --flu_scheme=MHM_RP --gravity=true --pot_scheme=SOR --store_pot_ghost=true --unsplit_gravity=false --slope=PLM --flux=HLLC --srhd=true --cosmic_ray=true --double=true --hdf5=true --nlevel=14 --fftw=FFTW2 --passive=3 --mpi=true --gpu=true + +# 2. Compile GAMER +make clean +make -j +mv ../bin/gamer ../bin/gamer_double + +# 3. Generate makefile (single precision) +python3 configure.py --flu_scheme=MHM_RP --gravity=true --pot_scheme=SOR --store_pot_ghost=true --unsplit_gravity=false --slope=PLM --flux=HLLC --srhd=true --cosmic_ray=true --double=false --hdf5=true --nlevel=14 --fftw=FFTW2 --passive=3 --mpi=true --gpu=true + +# 4. Compile GAMER +make clean +make -j +mv ../bin/gamer ../bin/gamer_single + +# 5. Copy simulation files +cd ../bin +cp -r ../example/test_problem/Hydro/FermiBubble ./ +cd FermiBubble +cp ../gamer_* ./ +sh download_ic.sh => TODO + + +# 6. Run the simulation (stage 1) +1. Change the parameters to below as follows: + Input__Parameter: + END_T 3.14872516940871e+01 + OUTPUT_DT 2 + OPT__INIT 1 + + Input__TestProb: + Jet_Fire 3 + +mpirun -map-by ppr:2:socket:pe=8 --report-bindings ./gamer_double 1>>log 2>&1 + +# 7. Run the sumulation (stage 2) +1. Change the parameters to below as follows: + Input__Parameter: + END_T 3.8e3 + OUTPUT_DT 200 + OPT__INIT 2 + + Input__TestProb: + Jet_Fire 0 + +ln -fs Data_000016 RESTART +mpirun -map-by ppr:2:socket:pe=8 --report-bindings ./gamer_single 1>>log 2>&1 From 61a0ca329d9d63766739b2cb61dad00788c2920a Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 19 Aug 2024 11:08:34 +0800 Subject: [PATCH 41/73] Add machine check --- tool/analysis/PerspectiveProjection/compile.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tool/analysis/PerspectiveProjection/compile.sh b/tool/analysis/PerspectiveProjection/compile.sh index 37206098df..d7dc8b497e 100644 --- a/tool/analysis/PerspectiveProjection/compile.sh +++ b/tool/analysis/PerspectiveProjection/compile.sh @@ -1,4 +1,7 @@ +set -e NUM_THREADS=32 # number of threads of openMP +MY_HOST=`hostname` +MY_CLUSTER=${MY_HOST::(-2)} @@ -6,6 +9,7 @@ NUM_THREADS=32 # number of threads of openMP # Paths #==================================================================================================== # eureka +if [[ ${MY_CLUSTER} != "eureka" ]]; then echo "ERROR : These paths are for eureka only!!"; exit 1; fi export PATH=/software/hdf5/default/bin:$PATH export PATH=/software/gsl/default/bin:$PATH export PATH=/software/gcc/9.3.0/bin:$PATH From 0920764f5895af6c02ff8b5932d63efd6ada13a1 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 19 Aug 2024 11:10:19 +0800 Subject: [PATCH 42/73] Add global exit function --- .../PerspectiveProjection/include/Macro.h | 9 ++++- .../PerspectiveProjection/src/Hadronic.c | 2 +- .../PerspectiveProjection/src/Leptonic.c | 33 ++++------------- .../analysis/PerspectiveProjection/src/Main.c | 36 ++++++++----------- .../src/Make_Projection.c | 23 +++++------- .../PerspectiveProjection/src/Make_Slice.c | 3 +- .../PerspectiveProjection/src/Utilities.c | 25 ++++++------- 7 files changed, 50 insertions(+), 81 deletions(-) diff --git a/tool/analysis/PerspectiveProjection/include/Macro.h b/tool/analysis/PerspectiveProjection/include/Macro.h index a5e17c9c8c..ba38bf5d2b 100644 --- a/tool/analysis/PerspectiveProjection/include/Macro.h +++ b/tool/analysis/PerspectiveProjection/include/Macro.h @@ -125,4 +125,11 @@ typedef struct Keys } \ } -#endif +#define ERROR_EXIT( code, fmt, ... ) \ + { \ + printf( fmt, ##__VA_ARGS__ ); \ + exit( code ); \ + } + + +#endif // #ifndef __MACRO__ diff --git a/tool/analysis/PerspectiveProjection/src/Hadronic.c b/tool/analysis/PerspectiveProjection/src/Hadronic.c index 3ca92d4b09..0ea413682c 100644 --- a/tool/analysis/PerspectiveProjection/src/Hadronic.c +++ b/tool/analysis/PerspectiveProjection/src/Hadronic.c @@ -196,7 +196,7 @@ double Integral( double lb, double ub, struct Parameters_t *parameters ) } while( status && key<=6 ); - if ( status ) { printf( "Error! status: %d (%s: %d)\n", status, __FUNCTION__, __LINE__ ); exit(0); } + if ( status ) ERROR_EXIT( 0, "ERROR : status: %d (%s: %d) !!\n", status, __FUNCTION__, __LINE__ ); gsl_integration_workspace_free( w ); diff --git a/tool/analysis/PerspectiveProjection/src/Leptonic.c b/tool/analysis/PerspectiveProjection/src/Leptonic.c index 5bef43245a..23150250d9 100644 --- a/tool/analysis/PerspectiveProjection/src/Leptonic.c +++ b/tool/analysis/PerspectiveProjection/src/Leptonic.c @@ -78,32 +78,16 @@ static void initialize_gsl_arrays( const int energyBinsSize ) for (int w=0; w line.size() ) { - std::cerr << "Error reading 3D header from file" << '\n'; rf.close(); - exit(-1); + ERROR_EXIT( -1, "ERROR : Reading 3D header from file !!\n" ); } line.clear(); @@ -691,14 +674,13 @@ double integralInner( double lb, double ub, void *params ) if ( status ) { - printf( "Error! status: %d (%s: %d)\n", status, __FUNCTION__, __LINE__ ); # ifdef DEBUG printf( "scatteredEnergy = %20.16e\n", ((struct Parameters_t*)params)->scatteredEnergy ); printf( "gamma_max = %20.16e\n", ((struct Parameters_t*)params)->gamma_max ); printf( "photonEnergy = %20.16e\n", ((struct Parameters_t*)params)->photonEnergy ); printf( "lb=%20.16e, ub=%20.16e\n", lb, ub ); # endif - exit(0); + ERROR_EXIT( 0, "ERROR : status: %d (%s: %d) !!\n", status, __FUNCTION__, __LINE__ ); } // if ( status ) return result; } // FUNCTION : integralInner @@ -773,14 +755,13 @@ double integralOuter( double lb, double ub, struct Parameters_t *parameters ) if ( status ) { - printf( "Error! status: %d (%s: %d)\n", status, __FUNCTION__, __LINE__ ); # ifdef DEBUG printf( "scatteredEnergy = %20.16e\n", ((struct Parameters_t*)parameters)->scatteredEnergy ); printf( "gamma_max = %20.16e\n", ((struct Parameters_t*)parameters)->gamma_max ); printf( "photonEnergy = %20.16e\n", ((struct Parameters_t*)parameters)->photonEnergy ); printf( "lb=%20.16e, ub=%20.16e\n", lb, ub ); # endif - exit(0); + ERROR_EXIT( 0, "ERROR : status: %d (%s: %d) !!\n", status, __FUNCTION__, __LINE__ ); } // if ( status ) return result; } // FUNCTION : integralOuter diff --git a/tool/analysis/PerspectiveProjection/src/Main.c b/tool/analysis/PerspectiveProjection/src/Main.c index 838379b346..6ee7424e32 100644 --- a/tool/analysis/PerspectiveProjection/src/Main.c +++ b/tool/analysis/PerspectiveProjection/src/Main.c @@ -64,8 +64,8 @@ int main( int argc, char **argv ) if ( MPI_Rank == RootRank ) { - if ( table_15_keV == NULL ) { printf( "ERROR: Could not open file table_15_keV!\n" ); exit(-1); } - if ( table_08_keV == NULL ) { printf( "Error! Could not open file table_08_keV!\n" ); exit(-1); } + if ( table_15_keV == NULL ) ERROR_EXIT( -1, "ERROR : Could not open file table_15_keV !!\n" ); + if ( table_08_keV == NULL ) ERROR_EXIT( -1, "ERROR : Could not open file table_08_keV !!\n" ); } // if ( MPI_Rank == RootRank ) # endif // #if ( defined XRAY_ROSAT || defined XRAY_EROSITA ) @@ -75,11 +75,7 @@ int main( int argc, char **argv ) const int numAzimuthalAngle = 1; const int numCellB = 360, numCellL = 360; - if ( numCellB != numCellL ) - { - MASTER_PRINT( "numCellB != numCellL\n" ); - exit(0); - } + if ( numCellB != numCellL ) ERROR_EXIT( 0, "ERROR : numCellB != numCellL !!\n" ); const real b_max = +90.0, b_min = -90.0; const real l_max = +180.0, l_min = -180.0; @@ -125,11 +121,7 @@ int main( int argc, char **argv ) MASTER_PRINT( "Unit_L=%e\nUnit_M=%e\nUnit_T=%e\nUnit_V=%e\nUnit_D=%e\nUnit_E=%e\nUnit_P=%e\n", Unit_L, Unit_M, Unit_T, Unit_V, Unit_D, Unit_E, Unit_P ); - if ( numCellX%NRank != 0 ) - { - MASTER_PRINT( "numCellX(%d) %% NRank(%d) != 0\n", numCellX, NRank ); - exit(0); - } + if ( numCellX%NRank != 0 ) ERROR_EXIT( 0, "numCellX(%d) %% NRank(%d) != 0 !!\n", numCellX, NRank ); // 3D array to store the field to be projected real*** Density = (real***)calloc_3d_array( (size_t)numCellX, (size_t)numCellY, (size_t)numCellZ, sizeof(real) ); @@ -194,7 +186,7 @@ int main( int argc, char **argv ) H5_Status = checkH5Status( H5Dread( FRB_dset5G1, H5T_IEEE_F32LE, H5S_ALL, H5S_ALL, H5P_DEFAULT, &Passive_0001[0][0][0] ), H5_Status ); MASTER_PRINT( "Loading Passive_0001 ... done\n" ); - if ( H5_Status < 0 ) { printf( "One of the H5Dread() fails!\n" ); exit(0); } + if ( H5_Status < 0 ) ERROR_EXIT( 0, "ERROR : One of the H5Dread() fails !!\n" ); // 3-2. Load the table # if ( defined XRAY_ROSAT || defined XRAY_EROSITA ) @@ -439,17 +431,17 @@ int main( int argc, char **argv ) H5_Status = checkH5Status( H5Dclose( FRB_dset4G1 ), H5_Status ); H5_Status = checkH5Status( H5Dclose( FRB_dset5G1 ), H5_Status ); - if ( H5_Status < 0 ) { printf( "One of the H5Dclose() fails!\n" ); exit(0); } + if ( H5_Status < 0 ) ERROR_EXIT( 0, "ERROR : One of the H5Dclose() fails !!\n" ); // Close group H5_Status = H5Gclose( FRB_group1 ); H5_Status = checkH5Status( H5Gclose( FRB_group2 ), H5_Status ); - if ( H5_Status < 0 ) { printf( "One of the H5Gclose() fails!\n" ); exit(0); } + if ( H5_Status < 0 ) ERROR_EXIT( 0, "ERROR : One of the H5Gclose() fails !!\n" ); // Close file H5_Status = H5Fclose( FRB_file ); - if ( H5_Status < 0 ) { printf( "H5Fclose() fails!\n" ); exit(0); } + if ( H5_Status < 0 ) ERROR_EXIT( 0, "ERROR : H5Fclose() fails !!\n" ); // 6. Storing perspective projection (pp) map on disk @@ -567,7 +559,7 @@ int main( int argc, char **argv ) H5_TypeID_VarStr = H5Tcopy( H5T_C_S1 ); H5_Status = H5Tset_size( H5_TypeID_VarStr, STRING_LENGTH ); - if ( H5_Status < 0 ) { printf( "H5Tset_size() fails!: %d\n", __LINE__ ); exit(0); } + if ( H5_Status < 0 ) ERROR_EXIT( 0, "ERROR : H5Tset_size() fails: %d !!\n", __LINE__ ); H5Tinsert( typeID, "AMRDataName", HOFFSET(Keys_t, AMRDataName ), H5_TypeID_VarStr ); H5Tinsert( typeID, "FRBDataName", HOFFSET(Keys_t, FRBDataName ), H5_TypeID_VarStr ); @@ -613,7 +605,7 @@ int main( int argc, char **argv ) H5_Status = checkH5Status( H5Dwrite( pp_DS10G1, H5T_IEEE_F32LE, H5S_ALL, pp_spaceDS10G1, H5P_DEFAULT, ProjectedSliceSynchrotron [0][0] ), H5_Status ); H5_Status = checkH5Status( H5Dwrite( pp_dsetKey, typeID, H5S_ALL, H5S_ALL, H5P_DEFAULT, Keys ), H5_Status ); - if ( H5_Status < 0 ) { printf( "One of the H5Dwrite() fails!: %d\n", __LINE__ ); exit(0); } + if ( H5_Status < 0 ) ERROR_EXIT( 0, "ERROR : One of the H5Dwrite() fails: %d !!\n", __LINE__ ); // Close dataset H5_Status = H5Dclose( pp_dsetKey ); @@ -628,7 +620,7 @@ int main( int argc, char **argv ) H5_Status = checkH5Status( H5Dclose( pp_DS9G1 ), H5_Status ); H5_Status = checkH5Status( H5Dclose( pp_DS10G1 ), H5_Status ); - if ( H5_Status < 0 ) { printf( "One of the H5Dclose() fails!: %d\n", __LINE__ ); exit(0); } + if ( H5_Status < 0 ) ERROR_EXIT( 0, "ERROR : One of the H5Dclose() fails: %d !!\n", __LINE__ ); // Close space H5_Status = H5Sclose( pp_spaceKey ); @@ -643,16 +635,16 @@ int main( int argc, char **argv ) H5_Status = checkH5Status( H5Sclose( pp_spaceDS9G1 ), H5_Status ); H5_Status = checkH5Status( H5Sclose( pp_spaceDS10G1 ), H5_Status ); - if ( H5_Status < 0 ) { printf( "One of the H5Sclose() fails!: %d\n", __LINE__ ); exit(0); } + if ( H5_Status < 0 ) ERROR_EXIT( 0, "ERROR : One of the H5Sclose() fails: %d !!\n", __LINE__ ); // Close group H5_Status = H5Gclose( pp_group1 ); H5_Status = checkH5Status( H5Gclose( pp_group2 ), H5_Status ); - if ( H5_Status < 0 ) { printf( "One of the H5Gclose() fails!: %d\n", __LINE__ ); exit(0); } + if ( H5_Status < 0 ) ERROR_EXIT( 0, "ERROR : One of the H5Gclose() fails: %d !!\n", __LINE__ ); // Close file H5_Status = H5Fclose( pp_file ); - if ( H5_Status < 0 ) { printf( "H5Fclose() fails!: %d\n", __LINE__ ); exit(0); } + if ( H5_Status < 0 ) ERROR_EXIT( 0, "ERROR : H5Fclose() fails: %d !!\n", __LINE__ ); free(Keys); } // if ( MPI_Rank == RootRank ) diff --git a/tool/analysis/PerspectiveProjection/src/Make_Projection.c b/tool/analysis/PerspectiveProjection/src/Make_Projection.c index 1b170f4b1f..a4dd67843d 100644 --- a/tool/analysis/PerspectiveProjection/src/Make_Projection.c +++ b/tool/analysis/PerspectiveProjection/src/Make_Projection.c @@ -12,28 +12,23 @@ real PerspectiveProject( real b, real l, real dt, real *XYZ[], int numCellXYZ[], real dxyz[], real azimuthalAngle, real BoxSize[], real ***TargetQuantity, int numRow, real *tempTable, real *lambdaTable ) { - if ( FABS(COS(l)) < EPSILON ) - { - printf("l=%e, COS(l)=%e\n", l, COS(l)); - fflush(stdout); - exit(0); - } + if ( FABS(COS(l)) < EPSILON ) ERROR_EXIT( 0, "ERROR : FABS(COS(l)) < EPSILON !! l=%e, COS(l)=%e\n", l, COS(l) ); real x, y, z, r2, xp, yp, zp; - real t = 0.0; - double ProjectedValue = 0.0; + real t = 0.0; + double ProjectedValue = 0.0; b *= M_PI/180.0; l *= M_PI/180.0; do { - if ( -0.5*M_PI < l && l < +0.5*M_PI ) t += dt; - else t -= dt; + if ( -0.5*M_PI < l && l < +0.5*M_PI ) t += dt; + else t -= dt; x = (real)R_SUN - t; y = TAN(l) * t; - z = TAN(b) / COS(l) * t; + z = TAN(b) / COS(l) * t; r2 = x*x + y*y + z*z; @@ -52,9 +47,9 @@ real PerspectiveProject( real b, real l, real dt, real *XYZ[], int numCellXYZ[], const int Jdx = BinarySearch( XYZ[1], 0, numCellXYZ[1]-1, yp ); const int Kdx = BinarySearch( XYZ[2], 0, numCellXYZ[2]-1, zp ); - if ( (Idx < 0 || Idx > numCellXYZ[0]-2) || - (Jdx < 0 || Jdx > numCellXYZ[1]-2) || - (Kdx < 0 || Kdx > numCellXYZ[2]-2) ) + if ( ( Idx < 0 || Idx > numCellXYZ[0]-2 ) || + ( Jdx < 0 || Jdx > numCellXYZ[1]-2 ) || + ( Kdx < 0 || Kdx > numCellXYZ[2]-2 ) ) continue; real xyz000[3] = { XYZ[0][Idx], XYZ[1][Jdx], XYZ[2][Kdx] }; diff --git a/tool/analysis/PerspectiveProjection/src/Make_Slice.c b/tool/analysis/PerspectiveProjection/src/Make_Slice.c index 98753c90b2..22495d9c32 100644 --- a/tool/analysis/PerspectiveProjection/src/Make_Slice.c +++ b/tool/analysis/PerspectiveProjection/src/Make_Slice.c @@ -28,8 +28,7 @@ real Slice( int Idx1, int Idx2, int numCellXYZ[], real ***TargetQuantity, char C } else { - printf("Something wrong!\n"); - exit(0); + ERROR_EXIT( 0, "ERROR : Something wrong !!\n" ); return 0.0; } } // FUNCTION : Slice diff --git a/tool/analysis/PerspectiveProjection/src/Utilities.c b/tool/analysis/PerspectiveProjection/src/Utilities.c index 9dc6654b52..1b1625a3c4 100644 --- a/tool/analysis/PerspectiveProjection/src/Utilities.c +++ b/tool/analysis/PerspectiveProjection/src/Utilities.c @@ -59,25 +59,20 @@ void checkInt32Overflow( int32_t a, int32_t b, int operation, int line ) if ( operation == '+' ) { - if ( ( b > 0 ) && ( a > INT32_MAX-b ) ) overflow = true; - if ( ( b < 0 ) && ( a < INT32_MIN-b ) ) overflow = true; + if ( ( b > 0 ) && ( a > INT32_MAX-b ) ) overflow = true; + if ( ( b < 0 ) && ( a < INT32_MIN-b ) ) overflow = true; } else if ( operation == '*' ) { - if ( b != 0 && a > INT32_MAX / b ) overflow = true; - if ( b != 0 && a < INT32_MIN / b ) overflow = true; + if ( b != 0 && a > INT32_MAX / b ) overflow = true; + if ( b != 0 && a < INT32_MIN / b ) overflow = true; } else { - printf( "something wrong!\n" ); - exit(0); + ERROR_EXIT( 0, "ERROR : something wrong !!\n" ); } - if ( overflow ) - { - printf( "Integer overflow!! a=%d, b=%d, line=%d\n", a, b, line ); - exit(0); - } + if ( overflow ) ERROR_EXIT( 0, "ERROR : Integer overflow !! a=%d, b=%d, line=%d\n", a, b, line ); } // FUNCTION : checkInt32Overflow @@ -112,11 +107,11 @@ bool checkmemoryContiguous( real *Ptr, int sizeOf, int Length ) //------------------------------------------------------------------------------------------------------- void OutputBinary( void *Ptr, int size, int count, char Name [] ) { - FILE *pFile; + FILE *pFile; - pFile = fopen( Name, "wb" ); + pFile = fopen( Name, "wb" ); - fwrite( Ptr, size, count, pFile ); + fwrite( Ptr, size, count, pFile ); - fclose( pFile ); + fclose( pFile ); } // FUNCTION : OutputBinary From e637ee27edfc055e57f471658a0c490092fc8edb Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 19 Aug 2024 11:10:48 +0800 Subject: [PATCH 43/73] Add new test problem comment --- example/test_problem/Template/Input__Parameter | 1 + 1 file changed, 1 insertion(+) diff --git a/example/test_problem/Template/Input__Parameter b/example/test_problem/Template/Input__Parameter index f02ade2378..a77770aa54 100644 --- a/example/test_problem/Template/Input__Parameter +++ b/example/test_problem/Template/Input__Parameter @@ -47,6 +47,7 @@ TESTPROB_ID 0 # test problem ID [0] # 20: HYDRO MHD Cosmic Ray Soundwave # 21: HYDRO MHD Cosmic Ray Shocktube # 23: HYDRO MHD Cosmic Ray Diffusion + # 24: HYDRO SRHD Fermi Bubble # 100: HYDRO CDM cosmological simulation (+GRAVITY & COMOVING & PARTICLE) # 101: HYDRO Zeldovich pancake collapse (+GRAVITY & COMOVING & PARTICLE) # 1000: ELBDM external potential (+GRAVITY) From 2ba85fb63d53fcc589d57f1449dde80f8ee7070d Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 19 Aug 2024 12:11:22 +0800 Subject: [PATCH 44/73] Remove useless parameters --- .../Hydro/FermiBubble/Input__TestProb | 40 +++--- .../FermiBubble/Init_TestProb_FermiBubble.cpp | 115 ++---------------- 2 files changed, 29 insertions(+), 126 deletions(-) diff --git a/example/test_problem/Hydro/FermiBubble/Input__TestProb b/example/test_problem/Hydro/FermiBubble/Input__TestProb index 8bf7e3699d..58df8328de 100644 --- a/example/test_problem/Hydro/FermiBubble/Input__TestProb +++ b/example/test_problem/Hydro/FermiBubble/Input__TestProb @@ -2,18 +2,26 @@ # electron mass = 9.109383560e-28 [g] # problem-specific runtime parameters -Jet_Ambient 2 # [0/1]: uniform/Milky-Way/from-file -Jet_Fire 0 -Jet_Precession 0 # [0/1]: precession -Jet_TimeDependentSrc 0 # [0/1]: time-dependent source +Jet_Ambient 2 # [1] + # 0 : uniform + # 1 : Milky-Way + # 2 : cold disk in stratifed ambient + # 3 : cold disk in uniform ambient + # 4 : + # 9 : load from UM_IC +Jet_Fire 0 # [3] + # 0 : off + # 1 : upper jet + # 2 : lower jet + # 3 : bipoler jet # jet fluid parameters Jet_SrcVel 0.6 # jet: jet 4-velocity ( in unit of speed of light ) -Jet_SmoothVel 0 # [0/1]: smooth velocity +Jet_SmoothVel 0 # smooth radial componennt of 4-velocity on cross section (0/1) [0] Jet_SrcDens 1e-26 # jet: jet density (in cgs units) Jet_SrcTemp 2e10 # jet: jet temperature (in K) -#Jet_Duration 0.6 +#Jet_Duration 0.6 # duration time of jet injection from the start of te simulation gasDisk_highResRadius 0.5 gasDisk_lowRes_LEVEL 3 jetSrc_lowRes_LEVEL 6 @@ -23,6 +31,7 @@ criticalTemp 1e99 # K # source geometry parameters +Jet_SphericalSrc 0 # (0/1) [0] Jet_Radius 0.002 # jet: radius of the cylinder-shape jet source (in kpc) Jet_HalfHeight 0.002 # jet: half height of the cylinder-shape jet source (in kpc) Jet_HalfOpeningAngle 0.0 # jet: half-opening angle @@ -47,7 +56,6 @@ Amb_UniformVel_y +0.0 # ambient velocity y Amb_UniformVel_z +0.0 # ambient velocity z [0.0] # estimate default evolution time (i.e. END_T) -Amb_FluSphereRadius -1 # radius of sphere CharacteristicSpeed 5e-6 # the characteristic speed of the simulation problem # the default end-time (END_T) will be estimated from # `CharacteristicSpeed` and `BOX_SIZE` @@ -55,18 +63,6 @@ CharacteristicSpeed 5e-6 # the characteristic # Milky Way -IsothermalSlab_Center_x -1 # -IsothermalSlab_Center_y -1 # -IsothermalSlab_Center_z -1 # - -# time-dependent source varibles -Flag_BurstDens 0 # [0/1]: off/on -Flag_Burst4Vel 0 # [0/1]: off/on -Flag_BurstTemp 0 # [0/1]: off/on - -Jet_BurstDens 0 # magnitude of density pulse -Jet_Burst4Vel 0 # magnitude of 4-velocity pulse -Jet_BurstTemp 0 # magnitude of temperature pulse - -Jet_BurstStartTime 0 # start time of pulse -Jet_BurstEndTime 0 # end time of pulse +IsothermalSlab_Center_x -1 # [box center] +IsothermalSlab_Center_y -1 # [box center] +IsothermalSlab_Center_z -1 # [box center] diff --git a/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp b/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp index b2be0cccd0..488cb15a7b 100644 --- a/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp +++ b/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp @@ -25,8 +25,6 @@ void randCloud( real **randXYZ, int numClouds ); // options int Jet_Ambient; // [0/1/9]: uniform/Milky-Way/load-from-file -static bool Jet_Precession; // flag: precessing jet source -static bool Jet_TimeDependentSrc; // flag: time-dependent fluid variables in source static int Jet_Fire; // [0/1/2/3]: no jet/upper jet/lower jet/bipolar jet static double Jet_Duration; // a duration of jet injection from the start of simulation @@ -89,7 +87,6 @@ static real gasDiskPeakDens; real interfaceHeight; static double criticalTemp; static double gasDisk_highResRadius; -static double jetSrc_highResRadius; static int gasDisk_lowRes_LEVEL; static int jetSrc_lowRes_LEVEL; @@ -125,19 +122,7 @@ static double Jet_MaxDis; // maximum distance between the jet sou static double Jet_AngularVelocity; // precession angular velocity (degree per code_time) static double Jet_PrecessionAngle; // precession angle in degree static double Jet_PrecessionAxis[3]; // cone orientation vector (x,y,z). i.e. vector OA - // --> NOT necessary to be a unit vector -// time-depent source -static double Jet_BurstStartTime; // start burst time in jet source -static double Jet_BurstEndTime; // end burst time in jet source -static double Jet_Burst4VelRatio; // increase 4-velocity by a factor of `Jet_Burst4VelRatio` during `Jet_BurstStartTime` and `Jet_BurstEndTime` -static double Jet_BurstDensRatio; // increase proper density by a factor of `Jet_BurstDensRatio` during `Jet_BurstStartTime` and `Jet_BurstEndTime` -static double Jet_BurstTempRatio; // increase temperature by a factor of `Jet_BurstTempRatio` during `Jet_BurstStartTime` and `Jet_BurstEndTime` -static bool Flag_Burst4Vel; // flag: burst 4-velocity -static bool Flag_BurstDens; // flag: burst proper density -static bool Flag_BurstTemp; // flag: burst temperature - -static double Amb_FluSphereRadius; // #if ( NCOMP_PASSIVE_USER > 0 ) static FieldIdx_t Passive_0000 = 5; // disk @@ -235,9 +220,7 @@ void SetParameter() // load options ReadPara->Add( "Jet_Ambient", &Jet_Ambient, 1, 0, 9 ); ReadPara->Add( "Jet_Fire", &Jet_Fire, 3, 0, 3 ); - ReadPara->Add( "Jet_Precession", &Jet_Precession, false, Useless_bool, Useless_bool ); ReadPara->Add( "Jet_SphericalSrc", &Jet_SphericalSrc, false, Useless_bool, Useless_bool ); - ReadPara->Add( "Jet_TimeDependentSrc", &Jet_TimeDependentSrc, false, Useless_bool, Useless_bool ); ReadPara->Add( "Jet_Duration", &Jet_Duration, NoMax_double, 0.0, NoMax_double ); // load jet fluid parameters @@ -247,7 +230,6 @@ void SetParameter() ReadPara->Add( "Jet_SrcTemp", &Jet_SrcTemp, -1.0, Eps_double, NoMax_double ); ReadPara->Add( "gasDisk_highResRadius", &gasDisk_highResRadius, -1.0, NoMin_double, NoMax_double ); ReadPara->Add( "gasDisk_lowRes_LEVEL", &gasDisk_lowRes_LEVEL, -1, 0, NoMax_int ); - ReadPara->Add( "jetSrc_highResRadius", &jetSrc_highResRadius, -1.0, NoMin_double, NoMax_double ); ReadPara->Add( "jetSrc_lowRes_LEVEL", &jetSrc_lowRes_LEVEL, -1, 0, NoMax_int ); # ifdef COSMIC_RAY ReadPara->Add( "Jet_Src_CR_Engy", &Jet_Src_CR_Engy, -1.0, 0.0, NoMax_double ); @@ -262,7 +244,7 @@ void SetParameter() ReadPara->Add( "Jet_CenOffset_y", &Jet_CenOffset[1], NoDef_double, NoMin_double, NoMax_double ); ReadPara->Add( "Jet_CenOffset_z", &Jet_CenOffset[2], NoDef_double, NoMin_double, NoMax_double ); -// load precission parameters +// load precession parameters ReadPara->Add( "Jet_AngularVelocity", &Jet_AngularVelocity, NoDef_double, 0.0, NoMax_double ); ReadPara->Add( "Jet_PrecessionAngle", &Jet_PrecessionAngle, NoDef_double, NoMin_double, 90.0 ); ReadPara->Add( "Jet_PrecessionAxis_x", &Jet_PrecessionAxis[0], NoDef_double, NoMin_double, NoMax_double ); @@ -277,7 +259,6 @@ void SetParameter() ReadPara->Add( "Amb_UniformTemp", &Amb_UniformTemp, -1.0, Eps_double, NoMax_double ); - ReadPara->Add( "Amb_FluSphereRadius", &Amb_FluSphereRadius, -1.0, NoMin_double, NoMax_double ); ReadPara->Add( "CharacteristicSpeed", &CharacteristicSpeed, -1.0, NoMin_double, NoMax_double ); ReadPara->Add( "criticalTemp", &criticalTemp, -1.0, NoMin_double, NoMax_double ); @@ -286,10 +267,6 @@ void SetParameter() ReadPara->Add( "IsothermalSlab_Center_y", &IsothermalSlab_Center[1], -1.0, NoMin_double, NoMax_double ); ReadPara->Add( "IsothermalSlab_Center_z", &IsothermalSlab_Center[2], -1.0, NoMin_double, NoMax_double ); -// load time-dependent source varibles - ReadPara->Add( "Jet_BurstStartTime", &Jet_BurstStartTime, -1.0, NoMin_double, NoMax_double ); - ReadPara->Add( "Jet_BurstEndTime", &Jet_BurstEndTime, -1.0, NoMin_double, NoMax_double ); - ReadPara->Read( FileName ); delete ReadPara; @@ -308,44 +285,9 @@ void SetParameter() Amb_UniformVel[2] = NAN; } - if ( Amb_FluSphereRadius < 0.0 ) - { - Amb_FluSphereRadius = NAN; - } - - if ( !Jet_TimeDependentSrc ) - { - Jet_BurstDensRatio = NAN; - Jet_Burst4VelRatio = NAN; - Jet_BurstTempRatio = NAN; - Jet_BurstStartTime = NAN; - Jet_BurstEndTime = NAN; - } - // (1-2) check runtime parameters // check time-dependent source - if ( Jet_TimeDependentSrc ) - { - if ( !Flag_Burst4Vel && !Flag_BurstDens && !Flag_BurstTemp ) - Aux_Error( ERROR_INFO, "One of Flag_Burst4Vel, Flag_BurstDens or Flag_BurstTemp must be enabled !!\n" ); - - if ( Jet_BurstEndTime <= Jet_BurstStartTime ) - Aux_Error( ERROR_INFO, "Jet_BurstEndTime <= Jet_BurstStartTime !!\n" ); - - if ( Jet_BurstEndTime >= END_T ) - Aux_Error( ERROR_INFO, "Jet_BurstEndTime >= END_T !!\n" ); - - if ( Flag_Burst4Vel && Jet_Burst4VelRatio <= Eps_double ) - Aux_Error( ERROR_INFO, "Jet_Burst4VelRatio <= Eps_double !!\n" ); - - if ( Flag_BurstDens && Jet_BurstDensRatio <= Eps_double ) - Aux_Error( ERROR_INFO, "Jet_BurstDensRatio <= Eps_double !!\n" ); - - if ( Flag_BurstTemp && Jet_BurstTempRatio <= Eps_double ) - Aux_Error( ERROR_INFO, "Jet_BurstTempRatio <= Eps_double !!\n" ); - } // if ( Jet_TimeDependentSrc ) - if ( IsothermalSlab_Center[0] == -1.0 ) IsothermalSlab_Center[0] = 0.5*amr->BoxSize[0]; @@ -387,7 +329,6 @@ void SetParameter() Jet_Duration *= Const_Myr / UNIT_T; gasDisk_highResRadius *= Const_kpc / UNIT_L; - jetSrc_highResRadius *= Const_kpc / UNIT_L; if ( Jet_Ambient == 0 ) { @@ -432,20 +373,6 @@ void SetParameter() Jet_AngularVelocity *= 1.0; // the unit of Jet_AngularVelocity is UNIT_T - if ( Amb_FluSphereRadius > 0.0 ) - { - Amb_FluSphereRadius *= Const_kpc / UNIT_L; - } - - - if ( Jet_TimeDependentSrc ) - { - Jet_BurstStartTime *= 1e3 * Const_yr / UNIT_T; - Jet_BurstEndTime *= 1e3 * Const_yr / UNIT_T; - Jet_Burst4VelRatio *= Const_c / UNIT_V; - Jet_BurstDensRatio *= 1.0 / UNIT_D; - } - // (2) set the problem-specific derived parameters const double SecAngle = 1.0 / cos( 0.5*Jet_HalfOpeningAngle ); const double TanAngle = sin( 0.5*Jet_HalfOpeningAngle ) * SecAngle; @@ -490,9 +417,7 @@ void SetParameter() Aux_Message( stdout, " Jet_Ambient = %d\n", Jet_Ambient ); Aux_Message( stdout, " Jet_Fire = %d\n", Jet_Fire ); Aux_Message( stdout, " Jet_SmoothVel = %d\n", Jet_SmoothVel ); - Aux_Message( stdout, " Jet_Precession = %d\n", Jet_Precession ); Aux_Message( stdout, " Jet_SphericalSrc = %d\n", Jet_SphericalSrc ); - Aux_Message( stdout, " Jet_TimeDependentSrc = %d\n", Jet_TimeDependentSrc ); Aux_Message( stdout, " Jet_Duration = %14.7e Myr \n", Jet_Duration*UNIT_T/Const_Myr ); Aux_Message( stdout, " ParticleMass = %14.7e g\n", ParticleMass ); Aux_Message( stdout, " Jet_SrcVel = %14.7e c\n", Jet_SrcVel ); @@ -514,7 +439,6 @@ void SetParameter() Aux_Message( stdout, " Jet_MaxDis = %14.7e kpc\n", Jet_MaxDis*UNIT_L/Const_kpc ); Aux_Message( stdout, " gasDisk_highResRadius = %14.7e kpc\n", gasDisk_highResRadius*UNIT_L/Const_kpc ); Aux_Message( stdout, " gasDisk_lowRes_LEVEL = %d\n", gasDisk_lowRes_LEVEL ); - Aux_Message( stdout, " jetSrc_highResRadius = %14.7e kpc\n", jetSrc_highResRadius*UNIT_L/Const_kpc ); Aux_Message( stdout, " jetSrc_lowRes_LEVEL = %d\n", jetSrc_lowRes_LEVEL ); if ( Jet_Ambient == 0 ) @@ -538,23 +462,6 @@ void SetParameter() Aux_Message( stdout, " Jet_PrecessionAxis[y] = %14.7e\n", Jet_PrecessionAxis[1] ); Aux_Message( stdout, " Jet_PrecessionAxis[z] = %14.7e\n", Jet_PrecessionAxis[2] ); - if ( Amb_FluSphereRadius > 0.0 ) - { - Aux_Message( stdout, " Amb_FluSphereRadius = %14.7e kpc\n", Amb_FluSphereRadius*UNIT_L/Const_kpc ); - } // if ( Amb_FluSphereRadius > 0.0 ) - - if ( Jet_TimeDependentSrc ) - { - Aux_Message( stdout, " Jet_BurstStartTime = %14.7e kyr \n", Jet_BurstStartTime*UNIT_T/(1e3*Const_yr) ); - Aux_Message( stdout, " Jet_BurstEndTime = %14.7e kyr \n", Jet_BurstEndTime*UNIT_T/(1e3*Const_yr) ); - Aux_Message( stdout, " Jet_Burst4VelRatio = %14.7e c \n", Jet_Burst4VelRatio ); - Aux_Message( stdout, " Jet_BurstDensRatio = %14.7e g/cm^3\n", Jet_BurstDensRatio*UNIT_D ); - Aux_Message( stdout, " Jet_BurstTempRatio = %14.7e\n", Jet_BurstTempRatio ); - Aux_Message( stdout, " Flag_Burst4Vel = %d\n", Flag_Burst4Vel ); - Aux_Message( stdout, " Flag_BurstDens = %d\n", Flag_BurstDens ); - Aux_Message( stdout, " Flag_BurstTemp = %d\n", Flag_BurstTemp ); - } // if ( Jet_TimeDependentSrc ) - Aux_Message( stdout, "=============================================================================\n" ); } // if ( MPI_Rank == 0 ) @@ -687,16 +594,16 @@ void SetArrayDisk() for (int c=0; c<5*NX*NY*NZ; c++) { - const int cc = c%(NX*NY*NZ); - const int i = (cc - cc%(NY*NZ)) / (NY*NZ); - const int j = ((cc - cc%NZ) / NZ) % NY; - const int k = cc%NZ; - - if ( 0 <= c && c < NX*NY*NZ ) Rhoo_disk[i][j][k] = Ptr[c]; - if ( NX*NY*NZ <= c && c < 2*NX*NY*NZ ) VelX_disk[i][j][k] = Ptr[c]; - if ( 2*NX*NY*NZ <= c && c < 3*NX*NY*NZ ) VelY_disk[i][j][k] = Ptr[c]; - if ( 3*NX*NY*NZ <= c && c < 4*NX*NY*NZ ) VelZ_disk[i][j][k] = Ptr[c]; - if ( 4*NX*NY*NZ <= c && c < 5*NX*NY*NZ ) Pres_disk[i][j][k] = Ptr[c]; + const int cc = c%(NX*NY*NZ); + const int i = (cc - cc%(NY*NZ)) / (NY*NZ); + const int j = ((cc - cc%NZ) / NZ) % NY; + const int k = cc%NZ; + + if ( 0 <= c && c < NX*NY*NZ ) Rhoo_disk[i][j][k] = Ptr[c]; + if ( NX*NY*NZ <= c && c < 2*NX*NY*NZ ) VelX_disk[i][j][k] = Ptr[c]; + if ( 2*NX*NY*NZ <= c && c < 3*NX*NY*NZ ) VelY_disk[i][j][k] = Ptr[c]; + if ( 3*NX*NY*NZ <= c && c < 4*NX*NY*NZ ) VelZ_disk[i][j][k] = Ptr[c]; + if ( 4*NX*NY*NZ <= c && c < 5*NX*NY*NZ ) Pres_disk[i][j][k] = Ptr[c]; } // for (int c=0; c<5*NX*NY*NZ; c++) Ptr += 5*NX*NY*NZ; From ed59b4a178c8548762124ac972a3fcd44ef053a2 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 19 Aug 2024 13:40:27 +0800 Subject: [PATCH 45/73] Minor --- .../Hydro/FermiBubble/ExtPot_IsothermalSlab.cpp | 2 +- .../Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp | 12 ++++++++++++ .../Hydro/FermiBubble/Interpolation_UM_IC.cpp | 4 ++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/TestProblem/Hydro/FermiBubble/ExtPot_IsothermalSlab.cpp b/src/TestProblem/Hydro/FermiBubble/ExtPot_IsothermalSlab.cpp index 877e8a26d2..23120d3baf 100644 --- a/src/TestProblem/Hydro/FermiBubble/ExtPot_IsothermalSlab.cpp +++ b/src/TestProblem/Hydro/FermiBubble/ExtPot_IsothermalSlab.cpp @@ -94,7 +94,6 @@ static real ExtPot_IsothermalSlab( const double x, const double y, const double const real IsothermalSlab_PeakDens = (real)UserArray_Flt[ 4]; // const real NewtonG = UserArray_Flt[ 5]; const real BoxSize_Z = UserArray_Flt[ 6]; - const double dz = z - cz; const real IsothermalSlab_Truncation = (real)UserArray_Flt[ 7]; // const real distance_h = (real)UserArray_Flt[ 8]; const real v_halo = (real)UserArray_Flt[ 9]; @@ -102,6 +101,7 @@ static real ExtPot_IsothermalSlab( const double x, const double y, const double const int Jet_Ambient = UserArray_Int[ 0]; const double IsothermalSlab_VelocityDispersion_Sqr = SQR(IsothermalSlab_VelocityDispersion); + const double dz = z - cz; real stellarDiskPot = sqrt( ( 2.0*M_PI*NewtonG*IsothermalSlab_PeakDens ) / IsothermalSlab_VelocityDispersion_Sqr ); diff --git a/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp b/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp index 488cb15a7b..1611af72bb 100644 --- a/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp +++ b/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp @@ -789,6 +789,7 @@ void Interpolation_UM_IC( real x, real y, real z, real ****Pri_input, real **XYZ //------------------------------------------------------------------------------------------------------- real IsothermalSlab_Pot( const real z ) { + real Pot, Log; // 1. isothermal slab @@ -802,6 +803,7 @@ real IsothermalSlab_Pot( const real z ) Log -= SQR(v_halo) * log( SQR(distance_h) ); return Pot + Log; + } // FUNCTION : IsothermalSlab_Pot #endif @@ -827,6 +829,7 @@ real IsothermalSlab_Pot( const real z ) void SetGridIC( real fluid[], const double x, const double y, const double z, const double Time, const int lv, double AuxArray[] ) { + // variables for jet const real xc = x - IsothermalSlab_Center[0]; const real yc = y - IsothermalSlab_Center[1]; @@ -1077,6 +1080,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co # endif // #ifdef GRAVITY } // if ( Jet_Ambient == 0 ) ... else if + } // FUNCTION : SetGridIC @@ -1321,6 +1325,7 @@ int Flu_ResetByUser_FermiBubble( real fluid[], const double Emag, const double x //------------------------------------------------------------------------------------------------------- static bool Flag_Region_FermiBubble( const int i, const int j, const int k, const int lv, const int PID ) { + if ( Step <= 0 ) return true; const double dh = amr->dh[lv]; // grid size const double Pos[3] = { amr->patch[0][lv][PID]->EdgeL[0] + (i+0.5)*dh, // x,y,z position @@ -1339,6 +1344,7 @@ static bool Flag_Region_FermiBubble( const int i, const int j, const int k, cons if ( Flag ) return false; return true; + } // FUNCTION : Flag_Region_FermiBubble @@ -1362,6 +1368,7 @@ static bool Flag_Region_FermiBubble( const int i, const int j, const int k, cons //------------------------------------------------------------------------------------------------------- bool Flag_FermiBubble( const int i, const int j, const int k, const int lv, const int PID, const double *Threshold ) { + const double dh = amr->dh[lv]; // grid size const double Pos[3] = { amr->patch[0][lv][PID]->EdgeL[0] + (i+0.5)*dh, // x,y,z position amr->patch[0][lv][PID]->EdgeL[1] + (j+0.5)*dh, @@ -1384,6 +1391,7 @@ bool Flag_FermiBubble( const int i, const int j, const int k, const int lv, cons Flag = Src; } return Flag; + } // FUNCTION : Flag_FermiBubble @@ -1400,6 +1408,7 @@ bool Flag_FermiBubble( const int i, const int j, const int k, const int lv, cons //------------------------------------------------------------------------------------------------------- void CartesianRotate( double x[], double theta, double phi, bool inverse ) { + double xp[3]; if ( inverse ) @@ -1415,6 +1424,7 @@ void CartesianRotate( double x[], double theta, double phi, bool inverse ) } for (int i=0; i<3; i++) x[i] = xp[i]; + } // FUNCTION : CartesianRotate @@ -1435,11 +1445,13 @@ void CartesianRotate( double x[], double theta, double phi, bool inverse ) //------------------------------------------------------------------------------------------------------- void AddNewField_FermiBubble() { + # if ( NCOMP_PASSIVE_USER > 0 ) if ( Passive_0000 == 5 ) Passive_0000 = AddField( "Passive_0000", FIXUP_FLUX_YES, FIXUP_REST_YES, NORMALIZE_NO, INTERP_FRAC_NO ); if ( Passive_0001 == 6 ) Passive_0001 = AddField( "Passive_0001", FIXUP_FLUX_YES, FIXUP_REST_YES, NORMALIZE_NO, INTERP_FRAC_NO ); if ( Passive_0002 == 7 ) Passive_0002 = AddField( "Passive_0002", FIXUP_FLUX_YES, FIXUP_REST_YES, NORMALIZE_NO, INTERP_FRAC_NO ); # endif + } // FUNCTION : AddNewField_Jet #endif // #if ( MODEL == HYDRO ) diff --git a/src/TestProblem/Hydro/FermiBubble/Interpolation_UM_IC.cpp b/src/TestProblem/Hydro/FermiBubble/Interpolation_UM_IC.cpp index bd69e410f9..4027cb17ba 100644 --- a/src/TestProblem/Hydro/FermiBubble/Interpolation_UM_IC.cpp +++ b/src/TestProblem/Hydro/FermiBubble/Interpolation_UM_IC.cpp @@ -16,6 +16,7 @@ //------------------------------------------------------------------------------------------------------- void ***calloc_3d_array( size_t nt, size_t nr, size_t nc, size_t size ) { + void ***array; size_t i, j; @@ -61,6 +62,7 @@ void ***calloc_3d_array( size_t nt, size_t nr, size_t nc, size_t size ) } return array; + } // FUNCTION : ***calloc_3d_array @@ -96,6 +98,7 @@ void free_3d_array( void ***array ) //------------------------------------------------------------------------------------------------------- real TrilinearInterpolation( real *FieldAtVertices, real *xyz000, real *dxyz, real *xyz ) { + real c = 0.0, weight[8]; // weight of the left / right @@ -120,4 +123,5 @@ real TrilinearInterpolation( real *FieldAtVertices, real *xyz000, real *dxyz, re for (int i=0; i<8; i++) c += FieldAtVertices[i] * weight[i]; return c; + } // FUNCTION : TrilinearInterpolation From fe5f85394303958b3682d6a6409370864408809a Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 19 Aug 2024 14:47:02 +0800 Subject: [PATCH 46/73] Add plot script --- .../Hydro/FermiBubble/plot_slice.py | 175 ++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 example/test_problem/Hydro/FermiBubble/plot_slice.py diff --git a/example/test_problem/Hydro/FermiBubble/plot_slice.py b/example/test_problem/Hydro/FermiBubble/plot_slice.py new file mode 100644 index 0000000000..79e9bb7327 --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/plot_slice.py @@ -0,0 +1,175 @@ +""" +Please edit the section of `Parameters` and `Plot`. +""" +#==================================================================================================== +# Imports +#==================================================================================================== +import yt +import matplotlib as mpl +import matplotlib.pylab as plt +from matplotlib.colors import LogNorm +import numpy as np +import argparse +import sys + + +#==================================================================================================== +# Constants +#==================================================================================================== +WIDTH_RES = 800 +PARTICLE_MASS = 1.6726231e-24 # proton mass in gram +AX_LABEL = ["x", "y", "z"] +AX_IDX = {"x":0, "y":1, "z":2} +CM2INCH = 1/2.54 + + + +#==================================================================================================== +# Derived fields +#==================================================================================================== +def number_density( field, data ): + return data["Dens"] / PARTICLE_MASS / yt.YTQuantity(1.0, "g") + +def pressure_sr( field, data ): + from yt.units import speed_of_light_cgs, boltzmann_constant_cgs + unit_v = speed_of_light_cgs + + pres = data["frame_density"] * data["Temp"] * yt.YTQuantity(1.0, "K") + pres /= PARTICLE_MASS * yt.YTQuantity(1.0, "g") + pres /= speed_of_light_cgs**2 + pres *= unit_v**2 + pres *= boltzmann_constant_cgs + return pres + +def pressure_cr( field, data ): + from yt.units import speed_of_light_cgs + unit_v = speed_of_light_cgs + unit_d = data.ds.mass_unit / data.ds.length_unit**3 + + NormalizedConst_CRPres = 7 + + p_cr = data["CRay"] / 3 / data["lorentz_factor"] + p_cr *= unit_d + p_cr *= unit_v**2 + return p_cr * NormalizedConst_CRPres + +def temperature_keV( field, data ): + from yt.units import boltzmann_constant_cgs + erg2eV = 6.242e+11 + + temp = data["Temp"] * boltzmann_constant_cgs * yt.YTQuantity(1.0, "K") + temp *= erg2eV + temp /= 1e3 + return temp + + + +#==================================================================================================== +# Functions +#==================================================================================================== +def get_slice_frb_data( ds, slice_axis, plot_var, center, width, height ): + field = plot_var["field"] + field_unit = plot_var["var_unit"] + field_min = plot_var["var_min"] + + ax_0_idx = (AX_IDX[slice_axis]+0) % 3 + ax_1_idx = (AX_IDX[slice_axis]+1) % 3 + ax_2_idx = (AX_IDX[slice_axis]+2) % 3 + + sli = yt.SlicePlot( ds, slice_axis, field, center=center ) + frb_arr = sli.data_source.to_frb( width, (WIDTH_RES, height/width*WIDTH_RES), height=height ) + plot_arr = np.array( frb_arr[field].to( field_unit ) ) + if field_min != None: plot_arr = np.clip( plot_arr, field_min, None ) # apply the minimum allowed value + + plot_center = center - ds.domain_width/2 + plot_extend = np.array( [plot_center[ax_1_idx] - plot_width /2, + plot_center[ax_1_idx] + plot_width /2, + plot_center[ax_2_idx] - plot_height/2, + plot_center[ax_2_idx] + plot_height/2] ) + return plot_arr, plot_center, plot_extend + + + +#==================================================================================================== +# Main +#==================================================================================================== +parser = argparse.ArgumentParser( description='Plot gas pressure, number density, temperature, and cosmic rays pressure slice for Fermi bubble' ) + +parser.add_argument( '-s', action='store', required=True, type=int, dest='idx_start', + help='first data index' ) +parser.add_argument( '-e', action='store', required=True, type=int, dest='idx_end', + help='last data index' ) +parser.add_argument( '-d', action='store', required=False, type=int, dest='didx', + help='delta data index [%(default)d]', default=1 ) +parser.add_argument( '-i', action='store', required=False, type=str, dest='prefix', + help='data path prefix [%(default)s]', default='./' ) + +args=parser.parse_args() + +# take note +print( '\nCommand-line arguments:' ) +print( '-------------------------------------------------------------------' ) +print( ' '.join(map(str, sys.argv)) ) +print( '-------------------------------------------------------------------\n' ) + +idx_start = args.idx_start +idx_end = args.idx_end +didx = args.didx +prefix = args.prefix + +for i in range(idx_start, idx_end+1, didx): + ds = yt.load( prefix + "Data_%06d"%i ) + ds.add_field( name=("gamer", "Pres_SR"), function=pressure_sr, sampling_type="local", units="dyne/cm**2" ) + ds.add_field( name=("gamer", "P_CR"), function=pressure_cr, sampling_type="local", units="dyne/cm**2" ) + ds.add_field( name=("gamer", "num_dens"), function=number_density, sampling_type="local", units="1/cm**3" ) + ds.add_field( name=("gamer", "Temp_keV"), function=temperature_keV, sampling_type="local", units="keV" ) + + slice_axis = "x" + fig_width = 28.0 * CM2INCH + fig_height = 11.0 * CM2INCH + fig_dpi = 400 + + ax_0_idx = (AX_IDX[slice_axis]+0) % 3 + ax_1_idx = (AX_IDX[slice_axis]+1) % 3 + ax_2_idx = (AX_IDX[slice_axis]+2) % 3 + + plot_vars = [ { "field":("gamer", "Pres_SR"), "cmap":"plasma", "log_scale":True, "var_unit":"erg/cm**3", "title":"P" , "var_min":None }, + { "field":("gamer", "Temp_keV"), "cmap":"afmhot", "log_scale":True, "var_unit":"keV", "title":"k_BT" , "var_min":None }, + { "field":("gamer", "num_dens"), "cmap":"gist_earth", "log_scale":True, "var_unit":"1/cm**3", "title":"n" , "var_min":None }, + { "field":("gamer", "P_CR"), "cmap":"nipy_spectral", "log_scale":True, "var_unit":"erg/cm**3", "title":"P_{CR}", "var_min":1.111e-18 } ] + plot_savename = "Fermi_Bubble_Slice_%06d.png"%(i) + plot_axis_unit = "kpc" + plot_time_unit = "Myr" + plot_width = ds.domain_width[ax_1_idx] # yt.YTQuantity(2, 'kpc') + plot_height = ds.domain_width[ax_2_idx] # yt.YTQuantity(4, 'kpc') + + N_vars = len( plot_vars ) + fig, ax = plt.subplots( 1, N_vars, figsize=(fig_width, fig_height), sharey=True ) + + for v, var in enumerate(plot_vars): + plot_cmap = plot_vars[v]["cmap"] + plot_log_scale = plot_vars[v]["log_scale"] + plot_var_unit = plot_vars[v]["var_unit"] + plot_title = plot_vars[v]["title"] + + plot_arr, plot_center, plot_extend = get_slice_frb_data( ds, slice_axis, var, ds.domain_center, plot_width, plot_height ) + + norm_func = mpl.colors.LogNorm if plot_log_scale else mpl.colors.Normalize + plot_extend = plot_extend * ds.length_unit.to( plot_axis_unit ) + plot_norm = norm_func( vmin=plot_arr.min(), vmax=plot_arr.max() ) + plot_time = ds.current_time * ds.time_unit.to( plot_time_unit ) + + im1 = ax[v].imshow( plot_arr, extent=plot_extend, norm=plot_norm, cmap=mpl.colormaps[plot_cmap] ) + cbar = fig.colorbar( im1, ax=ax[v], pad=0.0 ) + + ax[v].tick_params( which="both", direction="in", color="w" ) + cbar.ax.tick_params( which="both", direction="in" ) + + ax[v].set( title="$%s$ (%s)"%(plot_title, plot_var_unit) ) + ax[v].set( xlabel="$%s$ (%s)"%(AX_LABEL[ax_1_idx], plot_axis_unit) ) + + ax[0].set( ylabel="$%s$ (%s)"%(AX_LABEL[ax_2_idx], plot_axis_unit) ) + plt.suptitle( "%.2f (%s)"%(plot_time, plot_time_unit) ) + plt.tight_layout() + plt.savefig( plot_savename, dpi=fig_dpi ) + plt.close() From 62235aacb7a63881f1e4a63eac3c702601fdc2bf Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 19 Aug 2024 16:49:22 +0800 Subject: [PATCH 47/73] Unit fix --- example/test_problem/Hydro/FermiBubble/plot_slice.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/example/test_problem/Hydro/FermiBubble/plot_slice.py b/example/test_problem/Hydro/FermiBubble/plot_slice.py index 79e9bb7327..f58b523f92 100644 --- a/example/test_problem/Hydro/FermiBubble/plot_slice.py +++ b/example/test_problem/Hydro/FermiBubble/plot_slice.py @@ -53,13 +53,10 @@ def pressure_cr( field, data ): p_cr *= unit_v**2 return p_cr * NormalizedConst_CRPres -def temperature_keV( field, data ): +def temperature_erg( field, data ): from yt.units import boltzmann_constant_cgs - erg2eV = 6.242e+11 temp = data["Temp"] * boltzmann_constant_cgs * yt.YTQuantity(1.0, "K") - temp *= erg2eV - temp /= 1e3 return temp @@ -122,7 +119,7 @@ def get_slice_frb_data( ds, slice_axis, plot_var, center, width, height ): ds.add_field( name=("gamer", "Pres_SR"), function=pressure_sr, sampling_type="local", units="dyne/cm**2" ) ds.add_field( name=("gamer", "P_CR"), function=pressure_cr, sampling_type="local", units="dyne/cm**2" ) ds.add_field( name=("gamer", "num_dens"), function=number_density, sampling_type="local", units="1/cm**3" ) - ds.add_field( name=("gamer", "Temp_keV"), function=temperature_keV, sampling_type="local", units="keV" ) + ds.add_field( name=("gamer", "Temp_erg"), function=temperature_erg, sampling_type="local", units="erg" ) slice_axis = "x" fig_width = 28.0 * CM2INCH @@ -134,7 +131,7 @@ def get_slice_frb_data( ds, slice_axis, plot_var, center, width, height ): ax_2_idx = (AX_IDX[slice_axis]+2) % 3 plot_vars = [ { "field":("gamer", "Pres_SR"), "cmap":"plasma", "log_scale":True, "var_unit":"erg/cm**3", "title":"P" , "var_min":None }, - { "field":("gamer", "Temp_keV"), "cmap":"afmhot", "log_scale":True, "var_unit":"keV", "title":"k_BT" , "var_min":None }, + { "field":("gamer", "Temp_erg"), "cmap":"afmhot", "log_scale":True, "var_unit":"keV", "title":"k_BT" , "var_min":None }, { "field":("gamer", "num_dens"), "cmap":"gist_earth", "log_scale":True, "var_unit":"1/cm**3", "title":"n" , "var_min":None }, { "field":("gamer", "P_CR"), "cmap":"nipy_spectral", "log_scale":True, "var_unit":"erg/cm**3", "title":"P_{CR}", "var_min":1.111e-18 } ] plot_savename = "Fermi_Bubble_Slice_%06d.png"%(i) From 407e1dd92958e0b0d819e5089ba37749037115f4 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 19 Aug 2024 18:55:15 +0800 Subject: [PATCH 48/73] Add profile script --- .../Hydro/FermiBubble/plot_profile.py | 166 ++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 example/test_problem/Hydro/FermiBubble/plot_profile.py diff --git a/example/test_problem/Hydro/FermiBubble/plot_profile.py b/example/test_problem/Hydro/FermiBubble/plot_profile.py new file mode 100644 index 0000000000..ae3a1e190d --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/plot_profile.py @@ -0,0 +1,166 @@ +#==================================================================================================== +# Imports +#==================================================================================================== +import yt +import matplotlib as mpl +import matplotlib.pylab as plt +from matplotlib.colors import LogNorm +import numpy as np +import argparse +import sys + + + +#==================================================================================================== +# Constants +#==================================================================================================== +LINE_RES = 8192 +PARTICLE_MASS = 1.6726231e-24 # proton mass in gram +AX_LABEL = ["x", "y", "z"] +AX_IDX = {"x":0, "y":1, "z":2} +CM2INCH = 1/2.54 + + + +#==================================================================================================== +# Derived fields +#==================================================================================================== +def number_density( field, data ): + return data["Dens"] / PARTICLE_MASS / yt.YTQuantity(1.0, "g") + +def pressure_sr( field, data ): + from yt.units import speed_of_light_cgs, boltzmann_constant_cgs + unit_v = speed_of_light_cgs + + pres = data["frame_density"] * data["Temp"] * yt.YTQuantity(1.0, "K") + pres /= PARTICLE_MASS * yt.YTQuantity(1.0, "g") + pres /= speed_of_light_cgs**2 + pres *= unit_v**2 + pres *= boltzmann_constant_cgs + return pres + +def pressure_cr( field, data ): + from yt.units import speed_of_light_cgs + unit_v = speed_of_light_cgs + unit_d = data.ds.mass_unit / data.ds.length_unit**3 + + NormalizedConst_CRPres = 7 + + p_cr = data["CRay"] / 3 / data["lorentz_factor"] + p_cr *= unit_d + p_cr *= unit_v**2 + return p_cr * NormalizedConst_CRPres + +def temperature_erg( field, data ): + from yt.units import boltzmann_constant_cgs + erg2eV = 6.242e+11 + + temp = data["Temp"] * yt.YTQuantity(1.0, "K") + temp *= boltzmann_constant_cgs + return temp + + + +#==================================================================================================== +# Functions +#==================================================================================================== +def get_line_data( ds, start, end, plot_var ): + field = plot_var["field"] + field_unit = plot_var["var_unit"] + + line = yt.LineBuffer( ds, start, end, LINE_RES ) + plot_arr = np.array( line[field].to( field_unit ) ) + plot_r = np.sqrt( (line[("index", "x")]-ds.domain_center[0])**2 + + (line[("index", "y")]-ds.domain_center[1])**2 + + (line[("index", "z")]-ds.domain_center[2])**2 ) + return plot_arr, plot_r + + + +#==================================================================================================== +# Main +#==================================================================================================== +parser = argparse.ArgumentParser( description='Plot gas pressure, number density, temperature, and cosmic rays pressure slice for Fermi bubble' ) + +parser.add_argument( '-s', action='store', required=True, type=int, dest='idx_start', + help='first data index' ) +parser.add_argument( '-e', action='store', required=True, type=int, dest='idx_end', + help='last data index' ) +parser.add_argument( '-d', action='store', required=False, type=int, dest='didx', + help='delta data index [%(default)d]', default=1 ) +parser.add_argument( '-i', action='store', required=False, type=str, dest='prefix', + help='data path prefix [%(default)s]', default='./' ) + +args=parser.parse_args() + +# take note +print( '\nCommand-line arguments:' ) +print( '-------------------------------------------------------------------' ) +print( ' '.join(map(str, sys.argv)) ) +print( '-------------------------------------------------------------------\n' ) + +idx_start = args.idx_start +idx_end = args.idx_end +didx = args.didx +prefix = args.prefix + +for i in range(idx_start, idx_end+1, didx): + ds = yt.load( prefix + "Data_%06d"%i ) + ds.add_field( name=("gamer", "Pres_SR"), function=pressure_sr, sampling_type="local", units="dyne/cm**2" ) + ds.add_field( name=("gamer", "P_CR"), function=pressure_cr, sampling_type="local", units="dyne/cm**2" ) + ds.add_field( name=("gamer", "num_dens"), function=number_density, sampling_type="local", units="1/cm**3" ) + ds.add_field( name=("gamer", "Temp_erg"), function=temperature_erg, sampling_type="local", units="erg" ) + + fig_width = 22.0 * CM2INCH + fig_height = 28.0 * CM2INCH + fig_dpi = 400 + + start = [7, 7, 0] + end = [7, 7, 14] + start_zoom = [7, 7, 9.833333] + end_zoom = [7, 7, 10.66666] + + plot_vars = [ { "field":("gamer", "Pres_SR"), "cmap":"plasma", "log_scale":True, "var_unit":"erg/cm**3", "title":"P" , "var_min":None }, + { "field":("gamer", "Temp_erg"), "cmap":"afmhot", "log_scale":True, "var_unit":"keV", "title":"k_BT" , "var_min":None }, + { "field":("gamer", "num_dens"), "cmap":"gist_earth", "log_scale":True, "var_unit":"1/cm**3", "title":"n" , "var_min":None } ] + plot_savename = "Fermi_Bubble_Profile_%06d.png"%(i) + plot_axis_unit = "kpc" + plot_time_unit = "Myr" + + N_vars = len( plot_vars ) + fig, ax = plt.subplots( N_vars, 2, figsize=(fig_width, fig_height), sharex="col" ) + + for v, var in enumerate(plot_vars): + plot_log_scale = plot_vars[v]["log_scale"] + plot_var_unit = plot_vars[v]["var_unit"] + plot_title = plot_vars[v]["title"] + plot_arr, plot_r = get_line_data( ds, start, end, var ) + plot_time = ds.current_time * ds.time_unit.to( plot_time_unit ) + + ax[v, 0].scatter( plot_r, plot_arr, s=5 ) + + ax[v, 0].tick_params( which="both", direction="in", top=True, right=True ) + + ax[v, 0].set( ylabel="$%s$ (%s)"%(plot_title, plot_var_unit) ) + if plot_log_scale: ax[v, 0].set( yscale="log" ) + + # zoom-in + for v, var in enumerate(plot_vars): + plot_log_scale = plot_vars[v]["log_scale"] + plot_var_unit = plot_vars[v]["var_unit"] + plot_title = plot_vars[v]["title"] + plot_arr, plot_r = get_line_data( ds, start_zoom, end_zoom, var ) + plot_time = ds.current_time * ds.time_unit.to( plot_time_unit ) + + ax[v, 1].scatter( plot_r, plot_arr, s=5 ) + + ax[v, 1].tick_params( which="both", direction="in", top=True, right=True, labelleft=False, labelright=True ) + + if plot_log_scale: ax[v, 1].set( yscale="log" ) + + ax[N_vars-1, 0].set( xlabel="$%s$ (%s)"%("r", plot_axis_unit) ) + ax[N_vars-1, 1].set( xlabel="$%s$ (%s)"%("r", plot_axis_unit) ) + plt.suptitle( "%.2f (%s)"%(plot_time, plot_time_unit) ) + plt.tight_layout() + plt.savefig( plot_savename, dpi=fig_dpi ) + plt.close() From 7ed73c97b2c2e6f19996d2df404148f3dbe10e61 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Mon, 19 Aug 2024 19:05:56 +0800 Subject: [PATCH 49/73] Add AMR to FRB data script --- .../test_problem/Hydro/FermiBubble/AMR2FR.py | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 example/test_problem/Hydro/FermiBubble/AMR2FR.py diff --git a/example/test_problem/Hydro/FermiBubble/AMR2FR.py b/example/test_problem/Hydro/FermiBubble/AMR2FR.py new file mode 100644 index 0000000000..78e6372a07 --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/AMR2FR.py @@ -0,0 +1,106 @@ +#==================================================================================================== +# Imports +#==================================================================================================== +import numpy as np +import h5py +import yt +import time + + + +#==================================================================================================== +# Constants +#==================================================================================================== +PARTICLE_MASS = 1.6726231e-24 # proton mass in gram + + + +#==================================================================================================== +# Derived fields +#==================================================================================================== +def pressure_sr( field, data ): + from yt.units import speed_of_light_cgs, boltzmann_constant_cgs + unit_v = speed_of_light_cgs + + pres = data["frame_density"] * data["Temp"] * yt.YTQuantity(1.0, "K") + pres /= PARTICLE_MASS * yt.YTQuantity(1.0, "g") + pres /= speed_of_light_cgs**2 + pres *= unit_v**2 + pres *= boltzmann_constant_cgs + return pres + + + +#==================================================================================================== +# Main +#==================================================================================================== +Data = 'Data_000035' +Path = './'+Data +level = 4 +Field = [ "Dens", "Temp", "Pres", "CRay", "Passive_0001" ] + +ds = yt.load(Path) +dims = ds.domain_dimensions * ds.refine_by**level + +ds.add_field( name=("gamer", "Pres"), function=_pressure, sampling_type="local", units="dyne/cm**2" ) +ds.add_field( name=("gamer", "CRay_new"), function=_cray, sampling_type="local", units="dyne/cm**2" ) + + +# Note that we open with 'w' (write), which will overwrite existing files! +f = h5py.File( "FRB_%s.h5"%Data, mode="w" ) + +for i in range(len(Field)): + cube = ds.covering_grid( level, left_edge=ds.domain_left_edge, dims=dims, fields=Field[i] ) + if Field[i] == "CRay": + f.create_dataset( "Fields/"+Field[i], shape=cube[("gamer", "CRay_new")].shape, data=cube[("gamer", "CRay_new")].astype(' Date: Mon, 19 Aug 2024 19:06:27 +0800 Subject: [PATCH 50/73] Remove useless --- example/test_problem/Hydro/FermiBubble/plot_profile.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/example/test_problem/Hydro/FermiBubble/plot_profile.py b/example/test_problem/Hydro/FermiBubble/plot_profile.py index ae3a1e190d..136d92296d 100644 --- a/example/test_problem/Hydro/FermiBubble/plot_profile.py +++ b/example/test_problem/Hydro/FermiBubble/plot_profile.py @@ -16,8 +16,6 @@ #==================================================================================================== LINE_RES = 8192 PARTICLE_MASS = 1.6726231e-24 # proton mass in gram -AX_LABEL = ["x", "y", "z"] -AX_IDX = {"x":0, "y":1, "z":2} CM2INCH = 1/2.54 From 7face77ecc995876999cb16ddcf6c6da0c7ea421 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Tue, 20 Aug 2024 14:02:37 +0800 Subject: [PATCH 51/73] Add X-ray map plot script --- .../Hydro/FermiBubble/cubehelix.png | Bin 0 -> 1647 bytes .../Hydro/FermiBubble/plot_xray_map.py | 91 ++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 example/test_problem/Hydro/FermiBubble/cubehelix.png create mode 100644 example/test_problem/Hydro/FermiBubble/plot_xray_map.py diff --git a/example/test_problem/Hydro/FermiBubble/cubehelix.png b/example/test_problem/Hydro/FermiBubble/cubehelix.png new file mode 100644 index 0000000000000000000000000000000000000000..958d9b2511f9c4d9d349636403352331386f18d2 GIT binary patch literal 1647 zcmeAS@N?(olHy`uVBq!ia0y~yVD|#DYdM&J$Us& zqh9a*AN_uBL{5A2{jaY-W;iEyYx^>u{Hm;8!>U!`(>lm z-mquyZuuDfUHH}9$**%CKYH%IT`ot=I>+veLEZn|H;*kZp1sFs#@TK1KQ{mRrI+~2 zCZv0@*2ArFHb=H474Ax$ULcV(6NrDW$TvGPZ-eKd*Y7mbHm?18f5OStZ;pL9EOGsY z^P#tMH!ojw>(1&MW_!1|8}HG}HWylT^j}KbzB@Z*bIjiUn|t@2x=8nB$y-_vKm2}q zGhzCfpD*ja#mAri`{{qlgIA|Bo%U}`x0rGCoS1my;pw%r>(vtltJNRw$~B6RwASO> zzbmf&>~~?m*V8w4U!KbO`o`0Q_bumD-|+V_&(AMB$m;<#AkOt;Fz74h0eFL3D>#zi$<$W$)8eu==Xyf@$hpWCP(S;0Zj^Zvb|xsGbZNT z2j4@Pd***FezUr(b}HxOgKgDUF7G^+yZT@m=hKAAjp4>~gzQd#{pyz#e^s-O^X;z0 zSq1eQ;_~W>GTT?{q)V9lEVHex({Xy$c>Iacf{M52h2F&<)!7zm{6_dz-r>#OtMf8m z@BYQU@oBtRKilf}Ti)Aq`U|C%e|@a}qw2HL!nk|A8>^ST7rv%!Q 3 and i < 11 else "white" + ax.get_xticklabels()[i].set_color( color ) + +ax = fig.add_subplot( gs[0, 1] ) +cbar = fig.colorbar( im, cax=ax, use_gridspec=True ) + +plt.suptitle( "Count rate (photons s$^{-1}$deg$^{-2}$)" ) + +plt.savefig( plot_savename, dpi=fig_dpi ) +plt.show() From dfa6d6e6a2244df489bde7ada61c7ccab08d97ff Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Tue, 20 Aug 2024 14:38:04 +0800 Subject: [PATCH 52/73] Add xray profile plot script --- .../observed_data/xray_profile/m40.dat | 677 ++++++++++++++++++ .../observed_data/xray_profile/m50.dat | 563 +++++++++++++++ .../observed_data/xray_profile/m60.dat | 476 ++++++++++++ .../observed_data/xray_profile/p40.dat | 676 +++++++++++++++++ .../observed_data/xray_profile/p50.dat | 584 +++++++++++++++ .../observed_data/xray_profile/p60.dat | 555 ++++++++++++++ .../Hydro/FermiBubble/plot_xray_profile.py | 140 ++++ 7 files changed, 3671 insertions(+) create mode 100644 example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m40.dat create mode 100644 example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m50.dat create mode 100644 example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m60.dat create mode 100644 example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p40.dat create mode 100644 example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p50.dat create mode 100644 example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p60.dat create mode 100644 example/test_problem/Hydro/FermiBubble/plot_xray_profile.py diff --git a/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m40.dat b/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m40.dat new file mode 100644 index 0000000000..221879d863 --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m40.dat @@ -0,0 +1,677 @@ +118.98045 5.22510 +118.30030 5.32002 +118.14880 5.42129 +117.92494 5.50746 +118.28333 5.22327 +117.80125 5.59593 +117.56757 5.68569 +117.32144 5.77185 +117.11209 5.85844 +116.68434 5.93353 +116.45858 6.01389 +115.73377 5.89424 +115.50801 5.81513 +115.23947 5.72479 +114.94691 5.63333 +114.75830 5.55580 +114.51453 5.47608 +114.37222 5.40044 +114.21880 5.32708 +114.05769 5.25262 +113.89693 5.18128 +113.75115 5.10824 +113.58241 5.04195 +113.47485 4.94836 +113.41466 4.87985 +113.28240 4.79848 +113.13456 4.71290 +113.05237 4.63947 +112.95830 4.56208 +112.79988 4.47444 +112.71571 4.39833 +112.57426 4.32871 +112.43429 4.26270 +112.29093 4.19953 +112.10270 4.13320 +111.91664 4.06688 +111.76844 4.00806 +111.60671 3.95340 +111.30862 3.90129 +110.94825 3.84742 +110.32868 3.80091 +109.31292 3.87589 +109.43765 3.80084 +109.68577 3.77211 +109.08318 3.95383 +108.93720 4.01435 +108.77031 4.08034 +108.55385 4.14622 +108.43815 4.20750 +108.34904 4.26046 +108.23022 4.31569 +108.11139 4.37130 +107.99257 4.42730 +107.74305 4.48788 +107.53462 4.53508 +107.51135 4.59350 +106.64646 4.49329 +106.44790 4.42614 +106.17105 4.36012 +105.88350 4.29542 +105.61615 4.24038 +105.37851 4.18557 +105.24130 4.12935 +105.01423 4.07388 +104.77120 4.02144 +104.51989 3.96769 +104.22350 3.91726 +103.93945 3.86733 +103.64210 3.81764 +102.85176 3.78513 +102.11605 3.85362 +101.90002 3.92228 +102.20995 3.77872 +101.69506 3.98163 +101.45411 4.03736 +101.10802 4.09739 +100.80930 4.15790 +100.51958 4.22046 +100.29297 4.28298 +100.06127 4.34382 +99.72371 4.40600 +99.42842 4.44827 +98.38292 4.41478 +97.62814 4.47667 +97.46701 4.54638 +97.33464 4.61937 +97.23927 4.68545 +97.10064 4.74740 +96.98182 4.81488 +96.86960 4.88462 +96.74826 4.95324 +96.60555 5.01979 +96.51554 5.09969 +96.39672 5.18707 +96.26674 5.28154 +96.18176 5.37200 +96.08389 5.45884 +95.87919 5.56036 +95.58638 5.65031 +95.57673 5.75072 +95.42725 5.80990 +94.67801 5.60636 +94.62149 5.51827 +94.57239 5.44315 +94.83314 5.70741 +94.43887 5.35683 +94.39225 5.27126 +94.34465 5.19189 +94.26874 5.12076 +94.23243 5.05142 +94.14992 4.98465 +94.08680 4.92013 +94.03817 4.84501 +93.93118 4.76428 +93.82613 4.68625 +93.79346 4.61786 +93.75676 4.55568 +93.64493 4.49698 +93.63794 4.43810 +93.51912 4.37867 +93.40030 4.31989 +93.28148 4.26205 +93.16266 4.20498 +92.85833 4.15053 +92.72635 4.09225 +92.62069 4.03431 +92.57554 3.97699 +91.63716 4.21596 +91.59824 4.14192 +91.37923 4.09332 +91.59527 4.29092 +91.17783 4.02548 +90.62023 3.97242 +90.50437 3.90607 +90.10010 4.19720 +90.59123 3.86766 +90.07680 4.12816 +90.16472 4.07047 +90.07573 4.02961 +89.50600 4.28159 +89.88226 3.97779 +89.33226 4.36743 +89.52580 4.19720 +89.17216 4.44068 +89.51590 4.14652 +89.60501 4.10506 +88.93664 4.52617 +88.56731 4.59819 +88.47621 4.66459 +87.59920 4.55789 +87.22199 4.52509 +86.05696 4.57950 +85.48871 4.53257 +85.58490 4.65682 +84.89061 4.54612 +84.83819 4.47339 +84.64423 4.41901 +85.00070 4.62835 +84.50196 4.35804 +84.40659 4.29905 +84.30456 4.23331 +84.14490 4.16085 +84.05013 4.10160 +83.94293 4.03958 +83.75732 3.97024 +83.71638 3.91360 +83.50733 3.86146 +83.02827 3.80763 +82.52741 3.76783 +81.28754 3.78366 +80.01445 3.79833 +79.06272 3.73890 +79.20817 3.81470 +78.76259 3.67642 +78.52495 3.62976 +78.32031 3.58118 +78.15528 3.53623 +77.76330 3.49376 +77.48712 3.45271 +76.57034 3.53932 +76.83175 3.47623 +75.30346 3.53170 +74.63739 3.50112 +74.18798 3.60313 +74.25333 3.54205 +73.97014 3.67766 +73.82727 3.73955 +73.65470 3.80311 +73.43941 3.86453 +73.26712 3.92106 +73.08888 3.97640 +72.91065 4.03092 +72.73242 4.08469 +72.43537 4.14164 +71.15933 4.18119 +70.28779 4.23321 +69.89635 4.29981 +69.60868 4.35714 +69.26582 4.41975 +69.04897 4.47782 +68.80507 4.53806 +68.17266 4.59349 +67.42948 4.64995 +67.32919 4.73657 +67.22374 4.80710 +67.10492 4.87608 +67.50429 4.58620 +66.99149 4.94689 +66.87058 5.01970 +66.75836 5.09284 +66.61314 5.16471 +66.31311 5.23402 +65.83000 5.28299 +65.51404 5.33725 +65.09817 5.20194 +64.74856 5.12693 +64.41495 5.24136 +64.52717 5.05824 +64.54291 5.01508 +63.52379 5.19068 +63.28615 5.09353 +62.67604 5.01178 +62.47816 4.95661 +61.48898 5.05675 +61.76127 4.97979 +61.04976 5.15170 +60.79970 5.22044 +60.58609 5.31991 +60.10132 5.05867 +59.96246 4.96562 +59.90305 4.89456 +60.03554 5.20004 +60.01857 5.14437 +59.75904 4.82426 +59.64144 4.74558 +59.52520 4.65912 +59.44525 4.57830 +59.31855 4.49991 +59.28866 4.42056 +59.13011 4.34569 +59.06283 4.26707 +58.98482 4.19393 +58.86501 4.11997 +58.81847 4.04911 +58.70011 3.97481 +58.54518 3.89832 +57.97484 3.83685 +57.47932 3.79649 +56.89089 3.89186 +56.58839 3.96732 +56.42423 4.02293 +56.15418 4.08029 +55.90439 4.14633 +55.74101 4.20483 +55.47210 4.25995 +54.79786 4.31453 +54.33213 4.37420 +53.93323 4.43428 +53.50887 4.49685 +53.27547 4.56069 +53.04080 4.62724 +52.81669 4.69211 +52.53284 4.75671 +51.88965 4.81547 +51.36542 4.87720 +51.06634 4.94392 +50.72789 5.01377 +50.44753 5.08836 +50.27524 5.16196 +50.09701 5.23359 +49.91877 5.30449 +49.74054 5.37354 +49.41649 5.44044 +48.34890 5.47644 +48.01104 5.57599 +47.67994 5.65266 +47.36082 5.72084 +46.68569 5.77884 +46.51409 5.82681 +45.63726 5.68429 +45.33921 5.78468 +45.58638 5.61446 +44.81205 5.85058 +44.60153 5.95368 +44.85700 5.73235 +44.36389 6.04681 +43.96953 6.15031 +43.67218 6.24162 +43.48353 6.32410 +42.73175 6.09578 +42.46583 5.99858 +42.32611 6.19692 +42.43305 5.96261 +41.66368 6.13533 +41.23493 6.26302 +40.57706 6.35283 +39.41453 6.36201 +38.84046 6.27869 +38.46205 6.18852 +38.03354 6.09851 +37.42159 6.02533 +36.34521 6.10338 +35.44637 6.14982 +34.63046 6.05998 +34.30318 6.17115 +34.13448 6.27103 +33.99972 6.37518 +33.69178 6.49254 +33.38437 6.58529 +32.50692 6.52186 +32.29831 6.44026 +31.93546 6.36715 +31.41664 6.32497 +30.60216 6.43354 +29.64493 6.46457 +29.30002 6.34816 +29.21420 6.25985 +29.09538 6.18230 +28.77896 6.10364 +28.66014 6.02676 +28.59251 5.94367 +28.52558 5.88227 +27.72894 6.18590 +27.82346 6.05874 +27.42892 6.30350 +27.90717 5.98052 +26.99441 6.38814 +26.49617 6.48275 +25.26340 6.48141 +24.55048 6.39942 +24.37537 6.30477 +24.19401 6.20888 +23.94223 6.11436 +23.65932 6.03103 +23.56335 5.94558 +23.58670 5.89435 +22.77226 6.16929 +22.84985 6.05021 +22.48191 6.28833 +22.91669 5.98321 +21.91519 6.36526 +21.51140 6.44170 +20.99814 6.25449 +20.80761 6.14878 +20.94624 6.35695 +20.49166 6.06237 +19.96236 5.98273 +19.24313 5.95642 +18.44010 6.00677 +18.17791 5.92036 +17.84840 5.83960 +17.52872 5.75892 +17.26971 5.67861 +16.83744 5.60128 +16.46524 5.53363 +15.65119 5.65691 +15.84683 5.56012 +14.49524 5.68358 +13.57351 5.63682 +13.18574 5.74951 +13.04133 5.84077 +12.84035 5.92550 +12.68487 6.01160 +12.31191 6.09596 +11.06428 6.13764 +9.92360 6.08901 +9.12602 6.07249 +8.35516 6.15844 +8.15629 6.27647 +8.42052 6.06953 +7.98432 6.36729 +7.80609 6.45820 +7.65525 6.55575 +6.80653 6.62553 +5.78925 6.59128 +5.42240 6.53663 +4.34693 6.56999 +3.71388 6.47983 +3.47954 6.39370 +3.32309 6.30047 +3.23992 6.20324 +3.01545 6.09942 +2.67140 6.00812 +2.51765 5.90806 +2.53887 5.84410 +1.65488 6.11339 +1.81321 6.00556 +1.88536 5.94030 +1.29549 6.22789 +1.03641 6.31593 +0.72119 6.40708 +0.27047 6.49874 +-0.49849 6.57816 +-1.05547 6.66137 +-1.57353 6.70928 +-2.26859 6.57604 +-3.00413 6.47907 +-4.04400 6.49862 +-4.63560 6.61326 +-4.86906 6.71890 +-5.05786 6.81959 +-5.36003 6.92428 +-5.53222 7.02531 +-6.10932 7.12642 +-6.50143 7.21587 +-7.13600 7.05333 +-7.41498 6.94028 +-7.08563 7.17375 +-7.98583 6.84643 +-8.68584 6.75367 +-9.37036 6.67417 +-10.02646 6.58682 +-10.57541 6.53371 +-11.26913 6.63438 +-11.66181 6.73507 +-11.88799 6.82519 +-12.12563 6.91379 +-12.34347 7.00316 +-12.57841 7.10512 +-12.74237 7.22176 +-12.89301 7.33597 +-13.12293 7.46401 +-13.28466 7.59266 +-13.66238 7.69895 +-14.60503 7.56346 +-14.57136 7.71345 +-14.74299 7.41921 +-14.79328 7.31666 +-14.94433 7.21571 +-15.01694 7.11184 +-15.10977 7.01574 +-15.20216 6.92330 +-15.42984 6.82397 +-15.56803 6.74508 +-16.64145 6.85017 +-17.20800 6.96226 +-17.55674 7.03699 +-18.26032 6.87843 +-18.82180 6.76698 +-19.47273 6.69024 +-19.86220 6.58275 +-20.45863 6.47470 +-21.51126 6.58603 +-21.21261 6.48794 +-21.64122 6.71631 +-21.78974 6.81773 +-21.88546 6.92197 +-22.02113 7.02192 +-22.13683 7.12690 +-22.26173 7.23304 +-22.39948 7.33927 +-22.56208 7.44383 +-23.11962 7.52243 +-23.52179 7.60357 +-24.09135 7.41628 +-24.37410 7.29704 +-24.10675 7.54224 +-24.59689 7.19325 +-24.74377 7.09563 +-24.98141 7.00272 +-25.38738 6.90822 +-25.58745 6.82554 +-26.43196 6.98882 +-26.70299 7.11802 +-26.30494 6.88493 +-26.92406 7.22580 +-27.16640 7.33751 +-27.40404 7.45676 +-27.64168 7.57966 +-27.93873 7.69858 +-28.08027 7.80323 +-28.26549 7.90857 +-28.54904 8.02144 +-28.82989 8.13281 +-29.21606 8.24027 +-29.60451 8.31116 +-30.73244 8.28127 +-31.51199 8.43909 +-32.71080 8.42855 +-33.75766 8.56127 +-33.46391 8.44395 +-34.11743 8.73448 +-34.47389 8.85805 +-34.89967 8.98364 +-35.23633 9.10962 +-35.55551 9.23600 +-35.82383 9.35864 +-36.05817 9.47618 +-36.28591 9.60326 +-36.64238 9.73451 +-37.04934 9.86600 +-37.53894 9.98226 +-38.68016 10.00568 +-39.16263 10.16103 +-39.82313 10.25850 +-40.65047 10.07176 +-40.76481 9.88687 +-40.65259 10.27494 +-40.84402 9.74684 +-40.96537 9.61683 +-41.03876 9.49307 +-41.13381 9.35811 +-41.25041 9.22898 +-41.37076 9.10912 +-41.47245 8.97381 +-41.58760 8.82517 +-41.70359 8.67420 +-41.84080 8.52821 +-41.87710 8.40129 +-42.01363 8.27403 +-42.12435 8.13488 +-42.26092 8.00032 +-42.36469 7.86646 +-42.49701 7.73627 +-42.81365 7.60756 +-43.14783 7.47346 +-43.40669 7.35227 +-43.52740 7.24052 +-43.67262 7.13043 +-43.79747 7.00667 +-43.93736 6.88971 +-44.01627 6.79094 +-44.14543 6.68440 +-44.27393 6.56446 +-44.39545 6.46802 +-44.54398 6.37977 +-44.69250 6.29374 +-44.87074 6.21612 +-45.01926 6.13816 +-45.16779 6.06111 +-45.52029 5.97963 +-46.23946 5.95725 +-46.99565 5.85978 +-46.86099 5.98629 +-47.40711 5.75666 +-47.79670 5.72384 +-48.57498 5.78677 +-48.85906 5.70105 +-49.09670 5.62497 +-49.39485 5.55038 +-50.03113 5.47673 +-50.79269 5.44874 +-51.91088 5.51425 +-52.83670 5.52756 +-52.99159 5.44907 +-53.59778 5.38806 +-54.62269 5.45887 +-55.11905 5.54649 +-55.59434 5.61459 +-56.71757 5.66316 +-57.34520 5.76049 +-57.62618 5.78347 +-57.94105 5.64873 +-58.05831 5.55499 +-58.22238 5.48156 +-58.43416 5.40919 +-58.90647 5.33507 +-59.54610 5.28814 +-60.33418 5.38304 +-61.54467 5.41274 +-61.80743 5.50958 +-62.01662 5.59089 +-62.37350 5.67810 +-62.55725 5.75364 +-63.44714 5.62350 +-63.19889 5.71998 +-63.90191 5.53641 +-64.62474 5.46311 +-65.42876 5.41685 +-66.43874 5.48070 +-67.23880 5.57007 +-68.02434 5.63352 +-68.70179 5.71120 +-68.94920 5.79835 +-69.37511 5.87775 +-69.72216 5.92411 +-70.61086 5.86945 +-70.99581 5.97135 +-71.29357 6.05661 +-71.63002 6.14493 +-71.90253 6.23119 +-72.28870 6.31108 +-72.65704 6.36397 +-73.57876 6.26661 +-73.83337 6.16105 +-74.10496 6.07831 +-74.39777 5.99287 +-74.51190 5.91597 +-74.76774 5.82830 +-74.97615 5.73980 +-75.10080 5.65774 +-75.35428 5.57340 +-75.60381 5.49670 +-76.13688 5.42437 +-76.62338 5.38960 +-77.71334 5.46144 +-78.66629 5.54654 +-79.29631 5.63218 +-79.95266 5.70535 +-80.53026 5.77457 +-80.90917 5.85249 +-81.28158 5.93214 +-81.79438 6.00959 +-83.14102 6.02838 +-84.12673 6.10255 +-83.81434 6.00695 +-84.70808 6.21878 +-85.45940 6.29713 +-86.39021 6.36785 +-86.73837 6.47281 +-86.92349 6.57150 +-87.12153 6.66280 +-87.45740 6.73735 +-87.57881 6.82325 +-88.43648 6.65045 +-88.58501 6.52913 +-88.27013 6.75537 +-88.73461 6.42088 +-88.84548 6.31733 +-88.94741 6.22122 +-89.07217 6.11951 +-89.18675 6.01922 +-89.50377 5.90154 +-89.59813 5.83599 +-90.69111 5.92600 +-92.10440 5.95416 +-92.93980 5.91540 +-93.34973 5.84301 +-93.79743 5.75138 +-94.23307 5.66865 +-94.66667 5.59761 +-95.15928 5.52714 +-96.06641 5.50453 +-96.99300 5.57097 +-97.58273 5.64293 +-98.46621 5.53886 +-98.16199 5.62639 +-98.78580 5.44849 +-99.15287 5.36252 +-99.56474 5.29967 +-100.57405 5.38822 +-101.64560 5.39781 +-102.05055 5.32253 +-102.41297 5.25555 +-102.85272 5.19067 +-103.41091 5.12589 +-104.01392 5.05858 +-104.65969 5.00362 +-105.85565 4.95887 +-106.57600 4.93525 +-107.39184 5.00504 +-107.76669 5.09004 +-108.01093 5.15774 +-108.26334 5.22775 +-108.55883 5.29966 +-109.30889 5.35973 +-109.75892 5.42967 +-110.10350 5.50934 +-110.54333 5.57076 +-111.38083 5.46807 +-111.14319 5.55985 +-111.58877 5.36617 +-111.77769 5.26697 +-111.92873 5.17962 +-112.12016 5.10558 +-112.22446 5.03129 +-112.37101 4.95678 +-112.66586 4.88413 +-113.49801 4.82742 +-114.55119 4.86380 +-115.13501 4.79640 +-115.64547 4.74397 +-116.87726 4.75090 +-117.76476 4.80158 +-118.81329 4.82560 +-119.22727 4.90493 +-119.52007 4.94111 diff --git a/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m50.dat b/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m50.dat new file mode 100644 index 0000000000..ac475f192e --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m50.dat @@ -0,0 +1,563 @@ +119.11982 3.95830 +119.52124 3.90814 +118.44049 4.04137 +118.07912 4.09977 +117.77105 4.15873 +117.44289 4.21636 +116.83423 4.26936 +115.85384 4.31643 +115.07423 4.37108 +114.71447 4.43636 +114.17961 4.49938 +113.47774 4.53336 +112.75175 4.45682 +112.92990 4.52889 +112.42515 4.38641 +112.27670 4.33321 +112.06887 4.27835 +111.92041 4.22656 +111.71258 4.17311 +111.59225 4.12035 +111.16394 4.06597 +110.64965 4.00626 +109.75044 3.97226 +108.94074 4.04372 +109.11761 3.96760 +108.60022 4.11671 +108.33208 4.17610 +107.94725 4.23900 +107.47868 4.30003 +106.55827 4.27910 +106.19884 4.22834 +105.71403 4.16733 +105.02368 4.13345 +103.81256 4.11402 +102.74004 4.15661 +101.40990 4.16771 +100.26779 4.18203 +99.78231 4.24443 +99.39093 4.30276 +98.84236 4.35650 +98.45645 4.41278 +98.29237 4.47688 +98.11423 4.54022 +97.86601 4.61348 +97.62645 4.69128 +97.35369 4.74353 +96.43458 4.63866 +96.65938 4.71612 +96.35438 4.54446 +96.22957 4.46786 +96.17734 4.40172 +96.07807 4.33942 +95.99920 4.27767 +95.88445 4.21528 +95.79835 4.15533 +95.76167 4.10071 +95.63293 4.03950 +95.57270 3.97439 +95.36536 3.90775 +95.12896 3.84060 +94.93732 3.77837 +94.56915 3.72346 +94.37050 3.68634 +93.50504 3.75177 +93.21526 3.81295 +92.93398 3.86249 +92.74719 3.90979 +92.50268 3.96112 +92.09511 4.01239 +91.70572 4.06722 +91.04688 4.12064 +90.16371 4.12285 +89.63804 4.06770 +89.31305 4.04679 +88.43175 4.11561 +87.84124 4.16164 +87.41963 4.20900 +87.03045 4.08723 +86.85832 4.01553 +86.73608 3.95750 +86.92082 4.14950 +86.49526 3.89815 +86.14590 3.84248 +85.62262 3.78538 +84.59381 3.76737 +83.49203 3.77409 +83.24907 3.83653 +83.09072 3.89405 +82.88586 3.95372 +82.75281 4.01783 +82.52660 4.08519 +82.27918 4.15026 +82.03505 4.20589 +81.77964 4.26191 +81.43966 4.32005 +80.44825 4.29826 +80.18572 4.24106 +79.93031 4.18585 +79.67035 4.13262 +79.32283 4.07690 +78.96965 4.02375 +78.55794 3.96772 +78.28676 3.91072 +78.01361 3.85861 +77.61031 3.80720 +77.13908 3.79087 +76.30639 3.80804 +75.98333 3.75551 +75.60866 3.70780 +75.35286 3.65125 +75.05773 3.59538 +74.80388 3.54423 +74.46392 3.49811 +73.38995 3.48799 +73.05526 3.43890 +72.69303 3.39060 +72.37237 3.34704 +71.77196 3.31124 +71.42610 3.26944 +70.92962 3.37569 +70.69320 3.43719 +70.85221 3.32093 +70.53155 3.48464 +70.25726 3.53430 +70.02212 3.58509 +69.78459 3.63376 +69.35620 3.67565 +68.36682 3.67201 +68.13979 3.74011 +67.96966 3.79467 +67.80938 3.85227 +67.61889 3.90913 +67.34474 3.96673 +66.59574 4.01438 +66.26174 4.08074 +66.02138 4.14594 +65.79517 4.21099 +65.54890 4.27850 +65.02198 4.34347 +64.45682 4.39844 +64.20148 4.46082 +63.99365 4.52666 +63.73378 4.59548 +63.39768 4.66302 +62.34723 4.63369 +61.67099 4.57855 +61.38055 4.54578 +60.61670 4.65443 +60.76330 4.58144 +59.47175 4.68661 +58.50148 4.63520 +57.84676 4.71796 +57.50563 4.77648 +57.36668 4.83112 +57.17072 4.65733 +56.57691 4.70420 +56.69567 4.77127 +56.11599 4.62119 +55.55520 4.57285 +54.66442 4.65244 +54.89443 4.57710 +54.39855 4.73455 +54.21784 4.81003 +54.05461 4.88932 +53.86085 4.97256 +53.67496 5.06000 +53.51452 5.14879 +53.36041 5.22506 +53.27655 5.30257 +53.10849 5.38796 +53.03590 5.47369 +52.91835 5.55440 +52.79959 5.63242 +52.70314 5.71198 +52.39200 5.81426 +51.28206 5.77024 +50.69358 5.72692 +49.72165 5.70704 +49.37038 5.66007 +48.53072 5.78014 +48.79794 5.69388 +48.24701 5.87372 +47.95175 5.95358 +47.65485 6.03810 +47.35794 6.12337 +47.08525 6.20666 +46.75635 6.29732 +46.42268 6.38962 +45.67231 6.46526 +44.86049 6.45077 +44.52247 6.37802 +44.26515 6.29283 +44.04742 6.20333 +43.73732 6.12239 +43.58368 6.03828 +43.15670 5.95599 +42.63865 5.88449 +42.15093 5.86092 +41.61278 5.98437 +40.89546 6.07858 +40.13300 6.15659 +39.41825 6.22705 +38.11776 6.20426 +37.32601 6.18592 +37.04041 6.27613 +36.74351 6.35102 +36.32784 6.42483 +35.29290 6.38718 +34.74501 6.31710 +34.41003 6.25566 +33.82788 6.44206 +33.37064 6.55140 +33.24000 6.36907 +32.58141 6.50601 +32.31435 6.42556 +32.08206 6.34431 +31.76536 6.26049 +31.53443 6.18446 +31.31010 6.10605 +31.13691 6.01323 +30.89618 5.92067 +30.76860 5.83768 +30.52735 5.74788 +30.03598 5.67411 +29.28053 5.64010 +28.58084 5.73185 +27.89805 5.62436 +27.65116 5.53644 +27.92536 5.73670 +27.44761 5.45715 +27.28788 5.37585 +27.12937 5.29851 +26.99098 5.22167 +26.69265 5.15108 +26.45389 5.08211 +26.38373 5.01696 +25.58329 5.23951 +25.71835 5.12923 +24.45946 5.30887 +23.82557 5.38558 +23.32072 5.47451 +22.60597 5.54100 +21.35831 5.52070 +20.51618 5.45681 +19.47538 5.42703 +18.26973 5.46551 +17.60854 5.54635 +17.23201 5.61736 +16.72047 5.68338 +16.46246 5.76453 +15.84454 5.62905 +15.73237 5.54313 +15.51464 5.46612 +15.87093 5.72468 +15.27711 5.38863 +15.03959 5.31312 +14.78651 5.23852 +14.51788 5.16512 +14.11918 5.09409 +13.72538 5.02876 +13.37361 4.96013 +13.22845 4.89607 +12.83708 4.83564 +12.73791 4.77867 +12.43237 4.70997 +12.57526 4.66402 +11.74583 4.91597 +11.85728 4.81960 +11.57827 5.00850 +11.43711 5.08333 +11.80330 4.77127 +11.14740 5.16219 +10.84803 5.24900 +10.49462 5.31165 +10.31876 5.37833 +9.60619 5.26557 +9.44992 5.18850 +9.24660 5.11908 +9.08825 5.04884 +8.92330 4.98621 +8.76087 4.92264 +8.35219 4.86018 +7.30830 4.92305 +6.93402 5.00805 +6.60899 5.07529 +6.36660 5.14368 +6.01091 5.22094 +5.71811 5.29881 +5.45542 5.37621 +5.20065 5.45764 +4.96849 5.54140 +4.74285 5.62462 +4.48751 5.70789 +3.75537 5.78651 +2.93719 5.78023 +2.63668 5.70476 +2.00819 5.63633 +1.32517 5.59053 +0.27216 5.64140 +0.49113 5.57988 +0.02928 5.75142 +-0.12539 5.82462 +-0.31052 5.90275 +-0.48167 5.97592 +-0.83647 6.06150 +-1.16061 6.14656 +-1.64789 6.22121 +-2.68053 6.25802 +-2.92660 6.38063 +-2.50763 6.18477 +-3.31093 6.47716 +-3.46515 6.58298 +-3.59809 6.66330 +-4.18351 6.35220 +-4.12577 6.46811 +-4.30304 6.24182 +-4.54781 6.14420 +-4.22969 6.52749 +-5.35254 6.08296 +-5.81567 6.20232 +-5.87049 6.30899 +-5.98926 6.40432 +-6.09864 6.50058 +-6.21897 6.59309 +-6.30210 6.69156 +-5.93691 6.08049 +-6.63014 6.81245 +-7.61443 6.81341 +-7.65732 6.72010 +-7.81237 6.62745 +-7.91833 6.53705 +-8.03709 6.45029 +-8.15585 6.36593 +-8.27461 6.28310 +-8.39687 6.20377 +-8.82905 6.15418 +-9.87885 6.20042 +-10.43505 6.30787 +-11.01267 6.38809 +-11.63618 6.47111 +-11.79093 6.56312 +-11.96907 6.65132 +-12.12044 6.73849 +-12.31546 6.82687 +-12.62055 6.91924 +-13.91760 6.92945 +-14.93434 6.93924 +-15.54186 6.85489 +-16.03340 6.76736 +-16.55421 6.70073 +-17.55313 6.73499 +-17.96462 6.64222 +-18.22183 6.55193 +-18.52577 6.46453 +-18.82268 6.37413 +-19.11959 6.28189 +-19.59329 6.18718 +-20.57740 6.17526 +-21.73493 6.17538 +-21.51485 6.08432 +-22.64907 6.28942 +-22.40041 6.17958 +-23.23175 6.38854 +-23.71490 6.43358 +-24.62481 6.36268 +-25.02733 6.48812 +-25.27900 6.58803 +-25.61511 6.68448 +-26.87291 6.67111 +-27.75323 6.59793 +-27.98852 6.47694 +-28.17089 6.39156 +-28.38144 6.30955 +-28.62296 6.22253 +-28.90692 6.13765 +-29.26321 6.06185 +-29.65423 5.98756 +-30.13100 6.17469 +-30.28068 6.28100 +-30.49278 6.36758 +-30.20907 6.07094 +-30.77320 6.45079 +-31.02062 6.53119 +-31.30763 6.61948 +-31.63720 6.70842 +-32.04848 6.79859 +-32.56889 6.90077 +-33.68077 6.95930 +-34.16604 7.06768 +-34.48454 7.16606 +-35.14763 7.25742 +-36.25828 7.31491 +-37.21443 7.40581 +-37.79640 7.30113 +-37.60444 7.51297 +-38.41497 7.19734 +-38.27307 7.37098 +-38.19588 7.30152 +-38.63655 7.07706 +-38.95299 6.98377 +-39.23505 6.88675 +-39.61190 6.79905 +-40.66021 6.77214 +-41.00165 6.67904 +-41.33649 6.59411 +-41.97649 6.53777 +-42.94215 6.63318 +-42.71546 6.52271 +-43.35432 6.76443 +-43.61373 6.86438 +-43.83381 6.96195 +-44.21147 7.05174 +-44.51169 7.12756 +-44.61845 7.21272 +-45.31452 6.96951 +-45.46542 6.85636 +-45.23852 7.08600 +-45.71060 6.75805 +-45.86307 6.65927 +-45.99360 6.56962 +-46.19588 6.47490 +-46.31551 6.38395 +-46.60471 6.29157 +-47.67118 6.22505 +-47.95093 6.11190 +-48.21056 6.03105 +-48.52250 5.95361 +-48.62542 5.90539 +-49.41692 6.07539 +-49.27052 5.98066 +-50.04841 6.17766 +-50.96289 6.22967 +-52.20990 6.19024 +-52.73245 6.10669 +-53.07687 6.01950 +-53.38268 5.92700 +-53.81320 5.84235 +-54.29365 5.75650 +-54.73091 5.67932 +-55.17659 5.60492 +-55.84963 5.55971 +-56.78821 5.59383 +-57.22763 5.69141 +-57.67299 5.76451 +-58.74702 5.72975 +-59.33567 5.65630 +-59.74086 5.58269 +-60.09214 5.51553 +-60.64476 5.46154 +-61.88907 5.47051 +-63.21684 5.48326 +-64.38458 5.51564 +-65.43711 5.41918 +-65.12536 5.51258 +-65.89025 5.33035 +-66.39432 5.25263 +-66.84544 5.22701 +-67.87947 5.21477 +-68.53697 5.14453 +-69.29128 5.09138 +-69.75555 5.05181 +-70.13885 5.18589 +-69.84619 5.10555 +-70.39249 5.28414 +-70.70722 5.35949 +-71.42841 5.42054 +-72.22993 5.40036 +-72.74813 5.34791 +-73.65759 5.28495 +-73.82474 5.19853 +-74.00289 5.13197 +-74.25823 5.05789 +-74.37897 4.98079 +-74.87471 4.92497 +-75.85070 4.95410 +-76.20000 5.05102 +-76.47190 5.12386 +-76.84132 5.20066 +-77.05113 5.26899 +-77.28536 5.33634 +-77.53608 5.41193 +-77.79764 5.49750 +-78.04352 5.58406 +-78.25163 5.67285 +-78.52153 5.76089 +-79.09936 5.83073 +-79.64412 5.87502 +-80.13725 5.74822 +-80.40289 5.66090 +-80.68330 5.58256 +-81.00990 5.50796 +-81.52377 5.43168 +-82.19753 5.41304 +-83.29151 5.44910 +-83.92206 5.52016 +-84.17361 5.60483 +-84.58569 5.68136 +-85.81979 5.66859 +-86.95794 5.59425 +-88.16626 5.60204 +-88.80866 5.68836 +-89.37793 5.74860 +-89.70928 5.80569 +-90.28924 5.70607 +-90.54843 5.63369 +-90.91670 5.56078 +-91.26726 5.48656 +-91.81732 5.43852 +-92.93982 5.47668 +-93.58689 5.56102 +-93.92395 5.63835 +-94.37814 5.70826 +-94.66021 5.77017 +-95.41108 5.63928 +-95.65822 5.53673 +-95.26144 5.72811 +-95.81775 5.44948 +-96.01031 5.37306 +-96.13966 5.29739 +-96.28655 5.22035 +-96.47452 5.14321 +-96.73113 5.06859 +-97.01476 4.99864 +-97.30713 4.92960 +-97.72082 4.85904 +-98.42529 4.79633 +-99.54723 4.75508 +-100.07134 4.69514 +-100.77852 4.64743 +-101.94928 4.66547 +-102.76330 4.73157 +-103.61196 4.78708 +-104.90823 4.81711 +-106.00757 4.84535 +-106.81443 4.87927 +-107.59582 4.81298 +-107.97145 4.73527 +-108.44412 4.66012 +-109.06763 4.62575 +-110.17212 4.64205 +-111.57946 4.65245 +-112.52957 4.71038 +-112.78462 4.79810 +-112.95399 4.87355 +-113.11546 4.94405 +-113.28371 5.03303 +-113.47279 5.09477 +-113.68532 5.17045 +-113.86659 5.24279 +-114.02598 5.31754 +-114.20412 5.38894 +-114.50103 5.46162 +-114.74598 5.51265 +-115.61655 5.46232 +-115.98557 5.39851 +-116.52000 5.33122 +-117.08256 5.26466 +-117.61856 5.19817 +-118.12330 5.13217 +-118.74293 5.06099 +-119.16247 5.01183 +-119.31093 4.95336 +-119.57814 4.90462 diff --git a/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m60.dat b/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m60.dat new file mode 100644 index 0000000000..4dc1610de6 --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m60.dat @@ -0,0 +1,476 @@ +119.09394 4.56194 +118.59737 4.52354 +117.38204 4.59096 +117.87226 4.51663 +116.99140 4.67825 +116.53458 4.73822 +115.86543 4.79838 +114.85632 4.79812 +114.74402 4.72603 +114.17514 4.66445 +113.50189 4.60658 +113.07114 4.53669 +112.81446 4.47287 +112.28956 4.41142 +111.92058 4.34278 +111.46089 4.29105 +110.25415 4.36326 +110.46991 4.28822 +109.96114 4.45320 +109.68407 4.52729 +109.50077 4.60464 +109.17072 4.67943 +108.97251 4.75739 +108.69609 4.83597 +108.36784 4.91279 +107.98895 4.98370 +107.53035 5.04137 +106.52944 4.94942 +106.80311 5.03812 +106.06873 4.86220 +105.84932 4.79497 +105.31981 4.73350 +104.79248 4.66369 +103.55455 4.66591 +103.05032 4.74981 +102.78760 4.82367 +102.44731 4.89845 +102.02992 4.96617 +101.62680 5.02880 +100.74788 4.92704 +100.86747 5.02856 +100.36399 4.84415 +99.84077 4.78083 +99.46742 4.73126 +98.85558 4.86890 +98.62155 4.96042 +98.83545 4.78300 +98.35418 5.03864 +98.15703 5.11518 +97.96452 5.18645 +97.77201 5.25877 +97.55474 5.32612 +96.36783 5.21526 +96.53606 5.31104 +96.04492 5.11932 +95.72539 5.03508 +95.43634 4.94897 +94.92520 4.87167 +94.61337 4.79027 +94.07967 4.72141 +93.71262 4.64907 +93.32248 4.58273 +92.87843 4.51741 +92.42924 4.45165 +91.88113 4.39528 +91.26274 4.33708 +90.64286 4.27370 +89.44699 4.25254 +88.17434 4.29573 +87.01709 4.36111 +87.26364 4.29885 +85.98667 4.41700 +84.84767 4.40547 +84.56395 4.35529 +83.36336 4.36266 +82.56326 4.30553 +82.36951 4.23414 +82.25262 4.17203 +82.09803 4.11691 +81.94344 4.06257 +81.74391 4.00183 +81.56405 3.93371 +81.34597 3.86997 +81.19966 3.81305 +81.01429 3.75385 +80.77925 3.69240 +80.58621 3.64422 +79.59873 3.76589 +79.44377 3.83798 +79.79436 3.69143 +79.23716 3.89209 +79.88420 3.64519 +79.05119 3.95371 +78.85108 4.01847 +78.68044 4.08520 +78.32008 4.14614 +77.74781 4.19660 +76.60746 4.12294 +76.90034 4.20251 +75.85151 4.05780 +75.27778 4.00213 +74.63609 3.94922 +74.10899 3.89304 +73.76207 3.82927 +73.26492 3.77248 +72.81491 3.71950 +72.61775 3.67533 +71.62287 3.77821 +71.79598 3.70664 +71.34478 3.85403 +71.95932 3.66830 +71.12988 3.91701 +70.94213 3.98247 +70.73755 4.04759 +70.55748 4.11162 +69.91875 4.17227 +68.80055 4.16760 +68.00491 4.15042 +66.64512 4.16551 +65.84722 4.23655 +65.99160 4.16381 +64.64406 4.26442 +63.58787 4.34916 +63.43600 4.43028 +63.36067 4.49861 +63.82412 4.26240 +63.17292 4.57017 +63.08090 4.64698 +62.94229 4.71988 +62.80112 4.79518 +62.69677 4.87395 +62.56440 4.94851 +62.31344 5.01883 +62.07729 5.09275 +61.75398 5.15498 +61.49977 5.22146 +60.47800 5.08836 +60.19072 5.18756 +59.65551 5.03441 +59.08274 5.12568 +58.83594 5.24884 +58.60415 5.35172 +58.39924 5.42697 +58.96510 5.02923 +58.06920 5.50158 +57.65565 5.59345 +56.41790 5.62395 +55.14028 5.64822 +53.91981 5.60038 +53.10724 5.69773 +52.83474 5.80631 +52.59015 5.90163 +53.10165 5.58122 +52.36735 5.98581 +52.04718 6.06962 +51.72944 6.16484 +50.95614 6.24226 +50.19281 6.32353 +49.91308 6.43744 +49.52978 6.53048 +49.25537 6.63183 +48.92758 6.73397 +48.56725 6.82148 +47.61543 6.69073 +47.83177 6.81975 +46.92195 6.57844 +46.35588 6.47531 +45.71225 6.37744 +44.52953 6.33866 +44.18697 6.24827 +43.82762 6.15949 +43.44421 6.07536 +42.99343 5.98524 +42.78519 5.89202 +41.66152 5.87097 +40.42239 5.87939 +39.14700 5.97003 +38.21135 6.07512 +37.99081 6.19585 +37.67094 6.26987 +38.33475 5.97400 +36.82678 6.28091 +36.60219 6.19256 +36.52686 6.10753 +36.37177 6.02286 +36.21718 5.94247 +36.06259 5.86536 +35.86178 5.77992 +35.68632 5.69418 +35.56712 5.61705 +35.24127 5.54105 +35.05655 5.46229 +34.76696 5.37638 +34.22994 5.29461 +33.50181 5.25357 +33.02223 5.39062 +33.10141 5.29939 +32.74464 5.49740 +32.15725 5.57189 +31.29816 5.64607 +31.06226 5.75105 +30.76034 5.82330 +31.36172 5.55514 +30.50613 5.90169 +29.61297 5.70909 +29.37084 5.59562 +29.70110 5.83469 +29.26067 5.51083 +29.09247 5.41574 +28.86885 5.30797 +28.65264 5.22263 +28.48670 5.17651 +27.65222 5.40751 +27.30432 5.29256 +26.99517 5.21771 +26.65599 5.41308 +26.36081 5.34234 +25.96494 5.14790 +26.08204 5.25929 +25.62740 5.03593 +25.13257 4.95201 +24.62397 4.89493 +23.77405 4.97761 +23.44014 5.06531 +23.96089 4.89352 +23.31207 5.15103 +23.10958 5.24259 +22.91427 5.33919 +22.65184 5.43700 +22.52876 5.52676 +21.34971 5.54296 +20.08113 5.55080 +19.32575 5.63600 +19.06095 5.72022 +18.80427 5.79305 +18.54759 5.87030 +17.80444 5.63906 +17.65559 5.54120 +17.86484 5.74870 +17.45065 5.46492 +17.83275 5.84381 +17.22828 5.38731 +16.93011 5.30514 +16.66762 5.21230 +15.74379 5.40087 +15.86276 5.28975 +15.90768 5.20288 +15.11884 5.48836 +14.09669 5.48300 +13.87031 5.40173 +13.31151 5.33181 +12.62781 5.27420 +11.38376 5.29938 +10.11519 5.21510 +10.29289 5.31846 +9.67687 5.12274 +8.41157 5.18375 +8.73144 5.10830 +8.21886 5.29772 +7.98968 5.39274 +7.88013 5.48348 +7.66196 5.58052 +7.43056 5.69169 +7.22194 5.80303 +7.09560 5.89640 +6.96726 5.98074 +6.84839 6.07826 +6.55420 6.20236 +5.38396 6.24519 +5.35188 6.15304 +5.08237 6.06254 +4.88595 5.97628 +4.56996 5.90366 +3.39661 5.96871 +2.41760 6.05349 +1.76792 6.14829 +1.35118 6.23749 +1.19763 6.33121 +0.98036 6.41250 +0.78785 6.50072 +0.59535 6.59033 +-0.16666 6.28414 +-0.35917 6.16511 +-0.20677 6.42949 +-0.57221 6.07568 +-0.13458 6.56901 +-0.03832 6.51390 +-0.70626 5.98731 +-0.85455 5.89921 +-0.97794 5.80471 +-1.18148 5.70692 +-1.38825 5.60987 +-1.92645 5.52315 +-3.07031 5.48400 +-3.83346 5.44416 +-5.03338 5.42886 +-5.75338 5.40929 +-6.40049 5.50960 +-6.90212 5.60313 +-7.39342 5.68796 +-7.65134 5.77745 +-7.90801 5.86467 +-8.21000 5.95549 +-8.39425 6.04640 +-9.06753 6.12251 +-9.63753 6.20358 +-10.47454 6.29463 +-11.66896 6.36543 +-12.34550 6.46835 +-13.30527 6.44866 +-13.75569 6.38226 +-14.76078 6.31963 +-15.09933 6.20434 +-15.46563 6.12296 +-15.96888 6.03953 +-16.44832 5.98578 +-17.54989 6.09003 +-17.75700 6.20828 +-17.17145 5.98304 +-17.94950 6.29956 +-18.14201 6.39270 +-18.33452 6.48599 +-19.38528 6.46732 +-19.52164 6.38157 +-19.95540 6.30156 +-20.75871 6.24310 +-21.88599 6.22908 +-22.84488 6.20173 +-23.91440 6.29042 +-25.00007 6.31274 +-25.09522 6.21276 +-25.83427 6.13738 +-26.88551 6.06973 +-27.47914 5.96962 +-28.17858 5.89369 +-28.79318 5.81107 +-29.36168 5.73751 +-30.13003 5.86663 +-30.47278 5.98168 +-30.09795 5.74306 +-30.88223 6.07421 +-31.26725 6.16617 +-32.39555 6.15236 +-33.04972 6.09166 +-34.11883 6.02419 +-34.76981 5.92567 +-35.98863 5.86421 +-37.06813 5.83573 +-37.32823 5.75555 +-38.00585 5.69219 +-39.13415 5.70130 +-39.96215 5.79490 +-40.41051 5.88466 +-39.88729 5.70164 +-40.67603 5.96820 +-41.01254 6.06183 +-41.35842 6.16158 +-41.99203 6.25484 +-43.25447 6.29787 +-44.50746 6.38491 +-44.05827 6.28987 +-44.97718 6.51212 +-45.28665 6.60644 +-45.60071 6.71383 +-45.85501 6.81713 +-46.11168 6.91559 +-46.39146 7.01166 +-47.49132 6.98617 +-47.56447 6.88967 +-47.92883 6.79717 +-48.20694 6.71007 +-48.60650 6.59914 +-48.95384 6.49326 +-49.26547 6.39530 +-48.87095 6.70232 +-49.80942 6.32009 +-50.78074 6.29512 +-51.18844 6.20632 +-51.67835 6.12742 +-52.21777 6.03860 +-52.45858 5.99428 +-53.54854 6.08039 +-54.67825 6.09450 +-54.73544 6.00311 +-54.94391 5.91698 +-55.23356 5.82795 +-55.53286 5.74845 +-55.99601 5.66960 +-56.56207 5.59374 +-57.62742 5.52488 +-58.00605 5.42290 +-58.34007 5.34912 +-58.64527 5.27039 +-58.96420 5.19445 +-59.37450 5.12236 +-60.57167 5.21852 +-60.20320 5.12125 +-61.03345 5.31813 +-61.29184 5.39058 +-61.81705 5.46562 +-62.30795 5.53927 +-63.23898 5.61155 +-64.41466 5.64785 +-65.58698 5.54908 +-65.26614 5.64466 +-66.29778 5.45937 +-66.60681 5.37044 +-66.89218 5.28495 +-67.10565 5.20723 +-67.35364 5.12315 +-68.11275 5.05242 +-69.35652 5.12535 +-68.99329 5.03277 +-70.57457 5.11837 +-71.44396 5.07692 +-72.54932 5.05382 +-72.98567 4.99181 +-73.49458 4.93095 +-73.98819 4.86048 +-74.26264 4.78615 +-75.31088 4.76519 +-76.04757 4.82584 +-76.66499 4.90340 +-77.28500 4.97168 +-78.27546 4.96118 +-78.59725 4.89366 +-79.11061 4.82989 +-80.28943 4.81280 +-80.98858 4.74764 +-81.49021 4.67996 +-82.11280 4.61485 +-82.80032 4.55632 +-83.97141 4.50209 +-85.18111 4.48094 +-85.70654 4.53481 +-86.31468 4.59050 +-86.92318 4.65554 +-87.55418 4.71880 +-87.84027 4.79509 +-88.16111 4.86401 +-88.56196 4.92045 +-89.65037 4.90928 +-89.72352 4.83524 +-90.01100 4.76475 +-90.30275 4.69692 +-90.58640 4.63629 +-90.98247 4.57198 +-91.37090 4.50270 +-92.67536 4.49794 +-94.00432 4.53299 +-95.23390 4.60408 +-94.88014 4.52521 +-95.86674 4.67869 +-96.53570 4.73197 +-97.66961 4.71397 +-98.70009 4.67950 +-99.94950 4.70203 +-101.19891 4.69353 +-102.28782 4.68283 +-103.38094 4.73234 +-104.66752 4.75405 +-105.94770 4.71062 +-107.14970 4.68435 +-107.81020 4.62699 +-108.28041 4.56549 +-109.13087 4.50695 +-110.40905 4.49424 +-111.80102 4.46651 +-113.08440 4.48234 +-113.99862 4.54581 +-114.59608 4.62485 +-115.74241 4.65740 +-116.92488 4.64608 +-117.44358 4.59189 +-118.78150 4.60023 +-119.45688 4.61576 diff --git a/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p40.dat b/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p40.dat new file mode 100644 index 0000000000..58ab061fd6 --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p40.dat @@ -0,0 +1,676 @@ +119.44646 4.94669 +119.66181 4.86218 +119.10683 5.04779 +118.55215 5.08468 +117.95108 4.95476 +117.53970 4.88780 +117.94299 5.04422 +116.45138 4.83701 +115.76544 4.78191 +114.94989 4.72077 +114.00899 4.70857 +112.76877 4.69885 +111.80663 4.76291 +112.13459 4.69758 +111.36409 4.84916 +110.99577 4.91261 +110.55856 4.98124 +109.49171 4.96717 +108.80450 4.90872 +108.46318 4.88825 +107.70799 4.99898 +107.26372 4.91805 +106.99001 4.84052 +106.72837 4.76912 +106.50400 4.69899 +106.26692 4.63214 +106.02984 4.56726 +105.77724 4.50241 +105.50421 4.44223 +105.12302 4.37928 +104.87409 4.31904 +104.60270 4.25788 +104.45073 4.19270 +104.33369 4.13072 +104.20818 4.07635 +104.03246 4.01797 +103.91880 3.96068 +103.70253 3.89893 +102.97747 3.88372 +102.40094 3.93764 +101.98682 3.99346 +101.61427 4.05054 +101.41953 4.11572 +101.25865 4.18104 +101.14011 4.24891 +100.92674 4.31446 +100.71234 4.38536 +100.52766 4.45044 +100.39925 4.50668 +100.15749 4.56683 +100.04363 4.62620 +99.81972 4.68604 +99.65838 4.74744 +99.32910 4.80832 +98.72340 4.87004 +97.90664 4.78223 +98.08774 4.87802 +97.65968 4.70563 +97.45356 4.63713 +97.29384 4.56985 +97.15512 4.50562 +96.95694 4.44391 +96.66104 4.37991 +96.50599 4.34802 +95.59573 4.43666 +95.30987 4.52432 +95.18354 4.58281 +95.00573 4.63806 +94.82792 4.69460 +94.32413 4.74256 +93.09923 4.70935 +92.20689 4.70821 +91.54505 4.76304 +90.76796 4.82361 +89.55294 4.86594 +88.86146 4.94481 +87.80449 4.99289 +86.67382 5.03257 +86.38203 5.11036 +86.15119 5.18587 +85.93283 5.25913 +85.59918 5.34215 +85.03365 5.39351 +84.61078 5.45521 +84.29164 5.29457 +84.21869 5.20439 +84.10674 5.13429 +84.00428 5.06619 +83.88959 4.99577 +83.62600 4.91582 +84.07052 5.38091 +83.46301 4.88203 +82.21513 4.93834 +81.09519 4.92253 +80.38100 4.90032 +79.61790 4.96983 +79.35860 5.04535 +79.12152 5.11840 +78.89762 5.19178 +78.55038 5.26103 +77.48964 5.28445 +77.05697 5.38118 +76.59359 5.44455 +75.75456 5.34045 +75.98024 5.43348 +75.27324 5.25546 +74.79909 5.19950 +74.55185 5.14919 +74.06311 5.30664 +73.90425 5.39610 +73.63102 5.47211 +74.11326 5.22233 +72.72701 5.45519 +72.36481 5.39004 +71.87795 5.31180 +71.18170 5.28994 +70.07755 5.29130 +69.41809 5.22213 +69.20637 5.14018 +68.91626 5.07018 +68.59738 5.01249 +67.51280 5.07803 +66.70458 5.15064 +65.44140 5.15843 +64.67346 5.23575 +64.27171 5.31153 +63.88505 5.38528 +62.91403 5.40151 +62.47867 5.32463 +62.31864 5.24606 +62.14083 5.17079 +61.94656 5.09740 +61.81485 5.03103 +61.65971 4.96418 +61.55083 4.89130 +61.33800 4.81005 +61.15019 4.72732 +61.03368 4.64237 +60.90605 4.56778 +60.59983 4.48470 +59.32458 4.48881 +58.46613 4.51715 +57.59957 4.45271 +56.54465 4.49154 +56.27645 4.56961 +56.03608 4.62963 +55.82708 4.69248 +55.38412 4.75162 +54.13946 4.74479 +52.78853 4.73455 +51.67830 4.77872 +51.20266 4.69351 +51.05745 4.62687 +50.87964 4.56773 +50.60609 4.50927 +49.48681 4.53754 +49.01375 4.61617 +48.78242 4.68059 +48.56814 4.73981 +48.05357 4.57877 +47.98532 4.50281 +48.03471 4.65190 +47.84296 4.44256 +47.58470 4.37370 +46.89988 4.31623 +46.37754 4.40929 +46.28626 4.49396 +46.14303 4.57679 +46.05342 4.65820 +45.91905 4.73999 +46.26980 4.31010 +45.81803 4.82173 +45.69486 4.90627 +45.52564 4.98381 +45.26465 5.05161 +45.07124 5.11672 +44.84114 5.18105 +44.60754 5.24738 +44.49740 5.32631 +44.37887 5.41961 +44.26033 5.51326 +44.14833 5.60649 +44.00954 5.70361 +43.92087 5.80459 +43.79102 5.90403 +43.69996 6.00399 +43.36654 6.09909 +42.98693 6.17923 +42.52265 6.25830 +42.26911 6.33762 +41.95960 6.42021 +41.70334 6.49901 +41.49012 6.58976 +41.20179 6.68964 +41.04092 6.78556 +40.82459 6.87947 +40.49021 6.99026 +40.00499 7.09188 +39.58289 7.18658 +39.39183 7.28243 +39.18710 7.38105 +39.02576 7.47642 +38.83149 7.57315 +38.67014 7.67409 +38.31749 7.76854 +37.84295 7.87548 +37.43579 7.99832 +37.30695 8.11760 +37.07923 8.23136 +36.90252 8.34440 +36.66576 8.46943 +36.48666 8.62549 +36.40661 8.78816 +36.23713 8.93299 +36.15389 9.08019 +35.98685 9.23132 +35.90944 9.38475 +35.78852 9.53515 +35.66626 9.69655 +35.51015 9.84764 +35.40045 9.98646 +35.29876 10.12326 +35.18022 10.26009 +35.06168 10.40024 +34.94314 10.53970 +34.80775 10.68211 +34.72873 10.82355 +34.51536 10.97073 +33.75078 11.10877 +33.37645 11.26166 +33.08010 11.41985 +32.76098 11.57418 +32.51860 11.73665 +32.27794 11.91227 +32.01850 12.09486 +31.81984 12.28205 +31.53626 12.46501 +31.38889 12.66280 +31.25159 12.84738 +30.97358 13.03229 +30.67813 13.24777 +30.52868 13.46513 +29.86017 12.97958 +29.63156 12.75270 +29.88345 13.22651 +29.39448 12.57748 +29.08409 12.41288 +28.82813 12.24126 +28.33356 12.09044 +27.43118 12.06301 +27.16002 12.22179 +26.77674 12.39724 +26.54531 12.59105 +26.43101 12.79348 +26.31247 12.98217 +26.19393 13.17321 +26.04279 13.37312 +25.94368 13.57593 +25.82739 13.77277 +25.69638 13.97570 +25.56536 14.17983 +25.42811 14.38332 +25.33123 14.59298 +25.22296 14.79782 +24.95197 14.99412 +24.79399 15.18743 +24.69287 15.39171 +24.57433 15.59807 +24.62329 15.80889 +23.92962 14.84764 +23.94910 15.13464 +23.81945 14.58844 +23.70461 14.40279 +23.95947 15.35995 +23.58607 14.21765 +23.46754 14.03699 +23.30542 13.85703 +23.06817 13.70885 +22.93950 13.53526 +22.79624 13.38007 +22.72409 13.20271 +22.60239 13.00547 +22.03178 14.05147 +22.06359 13.77184 +21.95101 14.33846 +21.78064 14.62419 +22.01543 13.57554 +22.07470 13.41740 +21.72755 14.90231 +22.04507 13.24037 +21.59208 15.19523 +21.45238 15.54965 +21.33384 15.92880 +21.21530 16.31997 +21.09369 16.71025 +20.98946 17.09891 +20.85968 17.50555 +20.73603 17.92703 +20.61954 18.34892 +20.43162 18.69636 +20.05717 18.94214 +19.76159 19.28037 +19.54673 19.58786 +19.02389 18.91590 +19.00916 18.60338 +18.86718 18.35587 +19.05196 19.20176 +18.76303 18.11654 +18.58320 17.85775 +18.40000 17.55957 +18.18832 17.27578 +18.03592 16.99557 +17.84772 16.71786 +17.53664 16.43920 +16.17512 16.41191 +15.35398 16.13587 +15.25872 15.85514 +15.37726 16.45417 +15.14018 15.65140 +15.02164 15.45000 +14.90310 15.25120 +14.81420 15.06012 +14.66915 14.86144 +14.59978 14.66278 +14.47475 14.43733 +14.34784 14.20262 +14.31700 14.00143 +14.16647 13.78503 +14.08031 13.57418 +13.99431 13.37248 +13.87057 13.15911 +13.81255 12.95882 +13.70078 12.75242 +13.56825 12.53275 +13.40726 12.32153 +13.22663 12.12686 +13.04882 11.93594 +12.87986 11.74112 +12.48952 11.55579 +12.16486 11.52029 +11.44177 11.62293 +11.13950 11.45929 +10.82339 11.30796 +10.59290 11.17346 +10.33936 11.03271 +10.15458 10.88788 +10.00021 10.75514 +9.59256 10.61878 +9.37993 10.54609 +8.38127 10.69472 +7.40129 10.68465 +7.31662 10.53945 +7.08942 10.39853 +6.89127 10.26334 +6.66465 10.13663 +6.52307 9.99626 +6.45721 9.86074 +6.35349 9.70182 +6.22843 9.51210 +6.11147 9.32631 +5.99610 9.14491 +5.86946 8.96690 +5.75092 8.79697 +5.63013 8.63701 +5.42564 8.50478 +4.81714 8.38640 +4.39847 8.31714 +3.68101 8.55699 +3.27822 8.40336 +2.61458 8.24397 +2.98995 8.56191 +2.27872 8.42447 +1.92310 8.31787 +1.46034 8.25314 +1.11377 8.50203 +1.28299 8.37680 +0.93810 8.66349 +0.76212 8.79627 +0.53733 8.92529 +0.30871 9.06044 +0.07587 9.19049 +-0.17955 9.32161 +-0.51503 9.46082 +-1.78430 9.42985 +-2.54680 9.39187 +-2.84809 9.56935 +-3.14288 9.72729 +-3.36966 9.85981 +-3.69564 10.00675 +-4.15695 10.13430 +-4.53964 10.23627 +-5.25508 10.02954 +-5.63704 9.85981 +-5.85531 9.72361 +-6.23992 9.59725 +-6.58593 9.52261 +-7.66031 9.68060 +-8.60146 9.73338 +-8.71420 9.59889 +-8.90137 9.46800 +-9.14468 9.33641 +-9.37958 9.20645 +-9.91656 9.08297 +-10.74786 9.02807 +-11.77911 9.03676 +-12.47196 8.95875 +-13.21112 9.13021 +-13.07206 8.97719 +-13.55699 9.28874 +-13.79219 9.43507 +-14.03519 9.57009 +-14.24185 9.70725 +-14.46193 9.85583 +-14.64270 10.00823 +-14.83767 10.15626 +-15.05166 10.30768 +-15.21465 10.45691 +-15.36797 10.61233 +-15.53174 10.76120 +-15.80654 10.91496 +-16.02142 11.08518 +-16.28390 11.26281 +-16.49721 11.42471 +-16.88224 11.59160 +-17.19597 11.74996 +-17.98915 11.82720 +-18.79551 11.60457 +-18.73229 11.81415 +-19.06763 11.39632 +-19.31511 11.23509 +-19.51597 11.07989 +-19.71320 10.92243 +-19.98163 10.75598 +-20.14488 10.57828 +-20.47439 10.39405 +-21.13540 10.25763 +-21.81007 10.13183 +-22.49116 10.00295 +-23.51743 10.00250 +-23.67141 9.86785 +-23.84922 9.73251 +-24.02703 9.59870 +-24.21142 9.46579 +-24.36289 9.34540 +-24.53602 9.22666 +-24.79124 9.09440 +-25.17714 8.95203 +-25.48308 8.84612 +-25.70139 8.79226 +-26.44720 9.01946 +-26.17061 8.89433 +-27.07494 9.19036 +-27.45478 9.31324 +-28.05583 9.08797 +-28.25898 8.94313 +-28.03759 9.26641 +-28.51767 8.83017 +-28.87922 8.70455 +-29.28940 8.58044 +-30.01400 8.55931 +-30.79362 8.59238 +-30.88252 8.46724 +-31.37785 8.34903 +-31.61916 8.29267 +-32.52090 8.43132 +-32.97851 8.56544 +-33.47556 8.68422 +-34.70540 8.65720 +-35.95932 8.66025 +-36.96537 8.64625 +-37.57997 8.53823 +-38.27297 8.42953 +-39.32584 8.38892 +-39.98038 8.36778 +-40.12855 8.25157 +-40.61338 8.14394 +-41.49768 8.07080 +-42.16820 8.19545 +-42.74801 8.30317 +-43.63752 8.38997 +-43.77362 8.53974 +-43.59582 8.28261 +-43.86253 8.64674 +-44.00373 8.76012 +-44.14570 8.88015 +-44.21814 8.99617 +-44.36632 9.11295 +-44.51449 9.23274 +-45.29981 9.32868 +-46.07373 9.16009 +-45.96659 9.34267 +-46.30904 9.01217 +-46.60539 8.88738 +-46.76286 8.75089 +-47.03344 8.61943 +-47.22113 8.49755 +-47.49143 8.36824 +-47.94915 8.25380 +-48.36108 8.14879 +-48.60079 8.03592 +-48.75226 7.93178 +-48.89620 7.81776 +-49.13751 7.67812 +-49.48160 7.53336 +-50.05618 7.51123 +-50.75424 7.56384 +-51.56527 7.46909 +-51.79683 7.34401 +-51.95280 7.24370 +-52.13061 7.15264 +-52.33934 7.04619 +-52.54550 6.94734 +-52.79652 6.85782 +-53.05198 6.75915 +-53.39305 6.64955 +-54.26431 6.64413 +-54.68908 6.73152 +-54.88960 6.84570 +-55.15335 6.95165 +-55.37696 7.06387 +-55.86189 7.16974 +-56.53086 7.22086 +-57.21508 7.08933 +-57.61633 6.96721 +-57.83459 6.87258 +-58.13242 6.78303 +-58.41317 6.69672 +-58.58769 6.60593 +-58.75990 6.51436 +-58.98495 6.42058 +-59.10070 6.33013 +-59.31469 6.23626 +-59.51837 6.14728 +-59.67759 6.06256 +-59.85539 5.97742 +-60.03320 5.89426 +-60.22869 5.81082 +-60.38035 5.72643 +-61.04925 5.66566 +-62.00151 5.60673 +-63.17628 5.62490 +-63.90152 5.70507 +-64.71004 5.73741 +-65.59112 5.65915 +-65.77304 5.56004 +-66.01744 5.48525 +-66.17747 5.41006 +-66.41701 5.32805 +-66.78794 5.24848 +-67.16858 5.18230 +-67.53078 5.11845 +-67.88640 5.05471 +-68.23630 4.98964 +-68.76708 4.92364 +-69.57644 4.88018 +-70.62267 4.93383 +-70.35596 4.86927 +-70.85663 5.03375 +-70.99921 5.10216 +-71.17868 5.17877 +-71.52949 5.26878 +-72.53058 5.25023 +-73.02437 5.18322 +-73.50202 5.13295 +-74.23606 5.22696 +-74.53445 5.31357 +-74.08993 5.13865 +-74.81520 5.38362 +-75.14493 5.45775 +-75.58225 5.51506 +-76.43563 5.47269 +-76.59110 5.39961 +-76.80316 5.32389 +-77.02377 5.25505 +-77.19269 5.18505 +-77.48176 5.10584 +-77.97208 5.03166 +-78.52403 4.98166 +-79.26503 5.06820 +-79.57235 5.15504 +-79.89834 5.23071 +-80.17987 5.30920 +-80.59282 5.38021 +-81.81037 5.34376 +-82.55311 5.32327 +-83.44735 5.39892 +-83.90749 5.47945 +-84.47833 5.54661 +-85.59314 5.51598 +-85.79252 5.47983 +-86.76690 5.41309 +-86.68469 5.52084 +-86.94481 5.31329 +-87.12921 5.24085 +-87.29220 5.16431 +-87.43543 5.09155 +-87.59913 5.01913 +-87.77694 4.94202 +-87.95474 4.86608 +-88.13255 4.79159 +-88.40350 4.71279 +-88.68856 4.67062 +-89.59074 4.73798 +-89.83189 4.83343 +-90.02748 4.90648 +-90.19094 4.97811 +-90.35939 5.04688 +-90.70470 5.10328 +-91.63792 5.08578 +-91.72259 5.01605 +-91.90039 4.94914 +-92.14933 4.87868 +-92.47423 4.80946 +-92.82985 4.77869 +-93.74583 4.79275 +-94.16745 4.72839 +-94.67195 4.68682 +-95.71699 4.73211 +-95.56522 4.67049 +-95.96191 4.82585 +-96.07889 4.88989 +-96.29292 4.95285 +-96.52059 5.02400 +-97.26983 5.07563 +-98.06441 5.06943 +-98.20073 4.99990 +-98.74898 4.96428 +-99.75195 5.02164 +-99.51652 4.95449 +-100.02031 5.12580 +-100.36561 5.20362 +-100.69361 5.25492 +-101.58003 5.20345 +-102.19488 5.14708 +-103.20200 5.10230 +-103.72464 5.02997 +-103.86294 4.95350 +-104.06109 4.89040 +-104.28770 4.82849 +-104.49515 4.76140 +-104.69836 4.69979 +-104.85076 4.64310 +-105.03450 4.58522 +-105.25380 4.52071 +-105.61411 4.44633 +-106.89556 4.41458 +-108.20404 4.41994 +-108.94584 4.47829 +-109.46694 4.55704 +-110.50111 4.54922 +-110.69926 4.49114 +-110.90612 4.43272 +-111.10369 4.37607 +-111.26832 4.31978 +-111.70077 4.26139 +-112.67103 4.24746 +-112.78101 4.31040 +-112.97067 4.37018 +-113.22751 4.42588 +-113.56218 4.47049 +-113.63153 4.52517 +-114.45241 4.42888 +-114.70924 4.36293 +-115.07989 4.29985 +-115.42612 4.24778 +-115.68324 4.22076 +-116.41702 4.32821 +-116.70621 4.40393 +-116.26013 4.26493 +-117.07444 4.46879 +-117.60554 4.53249 +-118.51236 4.50678 +-118.80871 4.45039 +-119.07542 4.39809 +-119.31520 4.34205 +-119.49031 4.29437 diff --git a/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p50.dat b/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p50.dat new file mode 100644 index 0000000000..98172a9879 --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p50.dat @@ -0,0 +1,584 @@ +119.20780 4.16795 +119.47347 4.08816 +119.53890 4.06028 +118.83648 4.24762 +118.50260 4.29131 +117.60160 4.25673 +117.46706 4.20056 +117.21924 4.14700 +117.01106 4.09612 +116.57984 4.04139 +115.61992 4.03814 +114.88998 4.08995 +113.65052 4.09613 +112.29925 4.08059 +111.26940 4.14238 +110.68849 4.20716 +110.30981 4.25910 +109.86472 4.31043 +109.38790 4.34109 +108.20452 4.32979 +107.33192 4.39372 +107.02650 4.47142 +106.69451 4.53301 +105.99453 4.57596 +105.19771 4.49976 +105.26405 4.58704 +104.97327 4.42324 +104.80144 4.36624 +104.49083 4.30422 +104.17758 4.24759 +103.92579 4.19587 +103.42022 4.14568 +102.24366 4.14377 +101.54240 4.20672 +101.16317 4.27141 +100.75450 4.33205 +100.38398 4.38887 +99.92991 4.45035 +98.95695 4.46760 +97.84665 4.41906 +96.79431 4.48602 +97.13532 4.40720 +96.37984 4.56722 +96.12941 4.62786 +95.89149 4.69145 +95.48727 4.76155 +94.32882 4.76189 +93.63601 4.70073 +92.87931 4.64644 +92.40270 4.61586 +91.82191 4.72202 +91.28660 4.80953 +90.64424 4.85773 +89.85371 4.83418 +89.44547 4.78987 +88.20033 4.76094 +87.25772 4.73800 +86.32865 4.79986 +86.50189 4.73518 +86.14171 4.88171 +85.96328 4.94169 +85.78484 5.00306 +85.45771 5.06425 +84.40445 5.02976 +83.66996 4.97632 +83.16779 4.95373 +82.81687 5.07522 +83.13805 4.99303 +82.39228 5.13816 +81.50064 5.10066 +81.21987 5.03117 +80.85595 4.96911 +80.50534 4.89835 +80.29158 4.82757 +80.02951 4.75457 +79.87417 4.69650 +79.66153 4.63606 +79.12077 4.57471 +78.59466 4.53246 +77.77224 4.62109 +78.02290 4.54670 +77.45316 4.69279 +77.19020 4.75271 +76.70694 4.80191 +76.46023 4.85374 +75.67042 4.74589 +75.40981 4.66624 +75.17643 4.60596 +74.93993 4.53867 +74.70697 4.47422 +73.95924 4.42098 +72.93279 4.46644 +71.93281 4.48343 +71.51661 4.42251 +71.28304 4.36285 +71.12669 4.30300 +70.72191 4.24479 +70.52266 4.18257 +69.64410 4.31051 +69.88921 4.24184 +69.13627 4.38622 +68.57771 4.43630 +67.38082 4.40957 +67.44233 4.37607 +66.40873 4.41501 +66.24615 4.35555 +66.03015 4.29638 +65.78911 4.23580 +65.37466 4.18399 +64.16440 4.17461 +63.09379 4.15521 +62.31207 4.12208 +61.30403 4.16599 +61.45218 4.10932 +60.99952 4.24739 +60.75761 4.30479 +60.40915 4.36455 +59.21618 4.40228 +58.51097 4.46308 +58.39499 4.52868 +58.30577 4.58593 +58.16407 4.64586 +58.04512 4.70903 +57.90264 4.77379 +57.82994 4.83623 +57.69524 4.89873 +57.44333 4.96798 +56.68684 5.00457 +56.31324 4.91473 +56.19428 4.84694 +56.07533 4.78454 +55.95637 4.72335 +55.79280 4.65496 +56.10507 5.00804 +55.49857 4.58687 +55.13854 4.57236 +54.38019 4.65542 +53.87462 4.73000 +53.31552 4.78723 +52.49472 4.80728 +52.08340 4.72057 +51.83357 4.64492 +51.32739 4.59753 +50.28212 4.63576 +49.94904 4.72264 +49.65165 4.79333 +49.27991 4.85720 +48.68512 4.93119 +47.43565 4.95155 +47.63479 4.87138 +47.16545 5.05874 +47.04159 5.14162 +46.91894 5.21243 +46.80368 5.28436 +46.70921 5.35621 +46.57276 5.42933 +46.46294 5.50654 +46.32398 5.58634 +46.21842 5.66675 +46.12142 5.74743 +46.00247 5.82630 +45.88184 5.91600 +45.67650 6.01436 +45.38406 6.10384 +44.50501 6.06411 +44.11474 5.98377 +43.67592 5.91359 +43.29736 5.88770 +42.80441 6.04195 +42.44285 6.12512 +42.02467 5.95054 +41.57822 6.00444 +41.85996 6.09051 +41.27707 5.88264 +41.01593 5.80005 +40.85917 5.73245 +40.61320 5.66546 +40.57324 5.58276 +39.98639 5.91374 +39.86568 6.02654 +39.97152 5.79827 +39.70882 6.10851 +39.63127 6.19450 +39.95665 5.71391 +39.51481 6.29125 +39.41285 6.40191 +39.27911 6.51966 +39.16451 6.64065 +39.02827 6.76343 +38.92118 6.88719 +38.79682 7.01565 +38.65847 7.14688 +38.54809 7.27525 +38.42913 7.40017 +38.31018 7.53115 +38.20628 7.66245 +38.09016 7.79255 +37.96142 7.92527 +37.83976 8.06532 +37.70187 8.20840 +37.61806 8.35254 +37.01357 8.44425 +36.47716 8.51649 +36.13516 8.26332 +35.93590 8.11004 +35.76672 7.99181 +36.00133 8.40077 +35.66370 7.88714 +35.45521 7.77364 +35.30246 7.65579 +35.07002 7.54689 +34.89048 7.43918 +34.70376 7.33417 +34.33822 7.23188 +33.54487 7.19303 +33.23817 7.32696 +33.07367 7.44408 +32.87276 7.55127 +32.72340 7.66028 +32.53600 7.77542 +32.43262 7.90718 +32.31366 8.03794 +32.19471 8.17099 +32.07575 8.30712 +31.95679 8.44551 +31.83783 8.58634 +31.71888 8.73017 +31.58583 8.87319 +31.46157 9.01779 +31.32288 9.16349 +31.22624 9.31282 +31.10851 9.47362 +30.99973 9.63499 +30.85957 9.79345 +30.76864 9.95188 +30.66667 10.12302 +30.53356 10.29843 +30.42116 10.48126 +30.28493 10.66883 +30.16597 10.86127 +30.03365 11.06342 +29.94099 11.27472 +29.81556 11.48318 +29.69931 11.68993 +29.55567 11.90415 +29.29348 12.08220 +28.99695 12.24313 +28.74320 12.41045 +28.36375 12.58448 +28.19040 12.76061 +27.91069 12.92765 +27.71457 13.09658 +27.45767 13.28192 +27.32216 13.47859 +27.08788 13.70796 +26.93086 13.93827 +26.74251 14.13804 +26.34838 14.30468 +25.48751 14.22250 +25.27438 14.02651 +24.94615 13.83211 +24.55352 13.66916 +23.50688 13.88813 +23.86771 13.67217 +23.18371 14.12055 +22.74033 14.28392 +22.39697 14.42255 +21.64686 14.12305 +21.23083 13.89823 +20.86405 13.72144 +20.52283 13.53748 +19.91431 13.38563 +19.44608 13.26374 +19.03084 13.62200 +18.87152 13.86874 +18.64352 14.04757 +18.45814 14.24350 +18.90126 13.41910 +18.32134 14.45604 +18.11671 14.67943 +17.97152 14.90826 +17.83065 15.13193 +17.60264 15.38803 +16.65429 15.57535 +15.96248 15.77839 +15.45150 15.98486 +14.41063 16.12422 +14.23045 16.41059 +14.05201 16.62933 +13.87532 16.84111 +13.53392 17.08173 +13.27897 17.22058 +12.43183 16.92685 +12.35162 16.63461 +12.23267 16.41030 +12.11371 16.19130 +11.99845 15.97017 +11.87949 15.74831 +11.75758 15.52496 +11.60703 15.28891 +11.33333 15.05745 +10.97980 14.83827 +10.30571 14.67968 +9.38470 14.76092 +9.33513 14.55229 +9.19227 14.35887 +9.03774 14.16612 +8.89896 13.97165 +8.70813 13.79066 +8.58032 13.60060 +8.26877 13.39687 +7.97704 13.21615 +7.67604 13.03407 +7.16700 12.87172 +6.55947 12.71932 +6.41777 12.54771 +6.30834 12.37911 +6.17583 12.20142 +6.03580 11.99710 +5.86886 11.80500 +5.76351 11.64540 +5.66357 11.49298 +5.50372 11.33607 +5.34866 11.15623 +5.09658 10.98158 +4.88760 10.79810 +4.67697 10.62369 +4.42419 10.47158 +4.01747 10.32776 +3.40339 10.22930 +2.46735 10.30014 +2.24728 10.16405 +1.93907 10.02013 +1.62961 9.90532 +1.42688 9.78203 +0.58559 10.10344 +0.12092 9.93110 +-0.40784 10.18245 +-0.80340 9.75136 +-0.75936 9.99785 +-0.89256 9.55643 +-1.00655 9.42438 +-1.03804 9.29762 +-1.17646 9.17728 +-1.23593 9.05994 +-1.35117 8.94326 +-1.37794 8.81746 +-1.57827 8.67860 +-1.79726 8.54238 +-1.95692 8.41597 +-2.14521 8.29168 +-2.32067 8.16744 +-2.71918 8.07468 +-3.87134 8.08404 +-4.62108 8.14906 +-5.03884 8.02409 +-5.41554 7.92295 +-5.78232 7.81550 +-6.09021 7.70723 +-6.35818 7.60974 +-7.01472 7.50919 +-7.62616 7.41256 +-8.03149 7.30506 +-8.56047 7.19963 +-9.44743 7.13989 +-10.42590 7.17277 +-10.77623 7.04541 +-10.93946 6.92620 +-11.02693 6.83401 +-11.19487 6.73694 +-11.50217 6.62512 +-12.38161 6.58105 +-13.17109 6.47356 +-12.91974 6.59430 +-13.70590 6.36698 +-14.55991 6.31587 +-15.58928 6.41379 +-16.13158 6.52541 +-16.65202 6.57451 +-17.78177 6.56022 +-18.45125 6.69477 +-19.13168 6.77063 +-19.78681 6.85990 +-20.16047 6.96242 +-20.60058 7.05426 +-20.84691 7.15052 +-21.17239 7.24740 +-21.46681 7.35124 +-22.58212 7.38388 +-23.63947 7.32370 +-24.60370 7.40979 +-25.81270 7.46683 +-26.46854 7.55481 +-27.10894 7.40952 +-27.38867 7.29512 +-27.04589 7.54380 +-27.65789 7.20670 +-28.23794 7.11460 +-28.62207 7.05340 +-29.58902 7.14608 +-30.72612 7.13533 +-31.45635 7.26735 +-31.72817 7.37367 +-31.98436 7.46971 +-32.41835 7.55296 +-32.66661 7.63283 +-33.43745 7.48695 +-34.28046 7.40953 +-35.36477 7.48196 +-36.54758 7.49944 +-36.85515 7.39922 +-37.12750 7.30680 +-37.37136 7.21571 +-37.82637 7.12244 +-38.24272 7.02320 +-38.61446 6.92797 +-38.92235 6.83208 +-39.14166 6.74143 +-39.62301 6.66660 +-40.94156 6.69617 +-41.98293 6.76395 +-42.54004 6.86831 +-42.62926 6.95933 +-42.77096 7.05044 +-42.88992 7.14618 +-43.00887 7.24399 +-43.12783 7.34327 +-43.27031 7.44359 +-43.38926 7.54606 +-43.48470 7.64826 +-44.57421 7.67235 +-45.66343 7.60009 +-46.84034 7.69364 +-47.98130 7.79717 +-48.65260 7.86408 +-49.44496 7.72066 +-50.57162 7.72611 +-50.71834 7.86222 +-50.83729 7.96315 +-50.99260 8.06948 +-51.12477 8.17906 +-51.19417 8.28511 +-51.31312 8.39446 +-51.41886 8.50974 +-51.65318 8.64560 +-51.76516 8.78735 +-52.02805 8.93993 +-52.16617 9.08810 +-52.46002 9.22465 +-52.65139 9.33559 +-53.56425 9.16645 +-53.97726 9.01941 +-54.48571 8.89860 +-55.31365 8.79780 +-55.85384 8.67815 +-56.12619 8.56822 +-56.52688 8.44647 +-56.64834 8.31785 +-56.77523 8.19804 +-56.94871 8.06255 +-57.12850 7.92062 +-57.21471 7.80026 +-57.37993 7.69775 +-57.47964 7.59632 +-57.67732 7.48363 +-57.88863 7.37029 +-58.15018 7.26286 +-58.36699 7.15074 +-58.64220 7.04637 +-58.93959 6.96007 +-59.26289 6.87249 +-59.63137 6.78316 +-59.99698 6.69251 +-60.35386 6.60064 +-60.73734 6.50983 +-61.08742 6.42387 +-61.45421 6.34448 +-61.64586 6.25966 +-61.88708 6.17713 +-62.07378 6.07924 +-62.31665 5.98787 +-62.70584 5.92881 +-63.96374 5.93024 +-64.66605 5.84844 +-64.81474 5.75464 +-64.99318 5.67734 +-65.18153 5.60118 +-65.37129 5.51816 +-65.78362 5.46407 +-66.98571 5.45925 +-68.18123 5.47676 +-69.58294 5.51680 +-70.69981 5.48598 +-71.71850 5.48153 +-71.83164 5.40484 +-72.00173 5.33287 +-72.27304 5.26005 +-72.50156 5.18735 +-72.66591 5.11773 +-72.82160 5.04995 +-72.97520 4.98076 +-73.14174 4.91267 +-73.29743 4.84806 +-73.55501 4.77333 +-74.45770 4.74387 +-75.28494 4.78586 +-76.08051 4.86388 +-76.68071 4.89635 +-77.63236 4.83798 +-78.94089 4.87054 +-80.02752 4.84317 +-80.66577 4.78471 +-81.07928 4.71951 +-81.47413 4.66005 +-82.00899 4.60167 +-82.78496 4.57499 +-83.43692 4.64444 +-83.74116 4.71119 +-84.00978 4.77594 +-84.25100 4.83878 +-84.53187 4.90135 +-84.79170 4.96621 +-85.11179 5.03449 +-85.56680 5.10572 +-86.56813 5.08331 +-86.72266 5.01473 +-86.90110 4.94646 +-87.07953 4.87962 +-87.26788 4.81199 +-87.49228 4.73962 +-87.75770 4.67334 +-88.02128 4.60780 +-88.31300 4.53969 +-88.67837 4.47546 +-89.42398 4.43251 +-90.33966 4.50813 +-90.06337 4.42872 +-90.81677 4.58737 +-91.30161 4.64602 +-91.76594 4.67932 +-92.72801 4.64310 +-93.21573 4.71285 +-93.69156 4.77330 +-94.94061 4.78847 +-96.18966 4.78054 +-97.46947 4.79939 +-97.99186 4.86763 +-98.30115 4.93518 +-98.75467 4.98255 +-99.67340 4.95805 +-99.75837 4.89037 +-99.98141 4.82154 +-100.16220 4.75322 +-100.38289 4.69095 +-100.70485 4.62805 +-101.39522 4.57254 +-102.62478 4.54251 +-103.43460 4.48695 +-104.07213 4.42518 +-104.74916 4.38718 +-105.89609 4.37974 +-106.53892 4.32566 +-107.28469 4.28334 +-107.71814 4.24282 +-108.23406 4.36538 +-108.14484 4.29812 +-108.50484 4.44866 +-108.92617 4.50939 +-109.51104 4.56830 +-110.25633 4.55797 +-110.43320 4.49869 +-111.02955 4.44477 +-111.62433 4.39008 +-112.17686 4.32969 +-112.64710 4.27974 +-113.73384 4.27753 +-114.12712 4.34930 +-114.42139 4.40461 +-114.86591 4.46549 +-115.56622 4.50590 +-116.35828 4.48008 +-116.76922 4.43013 +-118.01827 4.42711 +-119.14836 4.45210 diff --git a/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p60.dat b/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p60.dat new file mode 100644 index 0000000000..b127e9a24d --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p60.dat @@ -0,0 +1,555 @@ +118.92935 4.17051 +119.25200 4.09619 +118.54597 4.24753 +118.25968 4.31179 +118.11310 4.37998 +117.92184 4.44913 +117.72505 4.51607 +117.49624 4.58629 +117.37549 4.65604 +117.11387 4.71585 +116.87041 4.77950 +116.62575 4.84709 +115.79906 4.87658 +114.73102 4.82093 +114.16540 4.73864 +113.59431 4.67380 +113.29303 4.60268 +112.83805 4.54084 +112.33254 4.47721 +111.16373 4.50132 +111.54709 4.44432 +110.67557 4.59186 +110.24680 4.65374 +109.88356 4.72449 +109.38319 4.78728 +108.67060 4.85483 +107.55428 4.85582 +107.18065 4.78945 +106.80996 4.72576 +106.47817 4.66484 +106.23060 4.59777 +105.89242 4.53242 +105.65467 4.46354 +105.43407 4.40141 +104.78637 4.34154 +103.89541 4.31523 +103.00651 4.37007 +103.21059 4.30801 +102.51525 4.45002 +102.07483 4.52017 +101.62193 4.58682 +100.61701 4.57669 +100.36045 4.51598 +99.88228 4.46036 +98.99122 4.45183 +98.57046 4.50937 +98.16936 4.57591 +97.72632 4.63635 +97.36047 4.70071 +97.06360 4.76788 +96.74901 4.83423 +96.42039 4.90210 +96.10097 4.97292 +95.78228 5.03853 +95.40646 5.09382 +94.35502 4.99529 +94.62242 5.08416 +94.07248 4.90283 +93.78420 4.82159 +93.49516 4.73240 +92.81812 4.65830 +92.18801 4.60016 +91.03615 4.60735 +89.82500 4.61775 +89.29545 4.55305 +89.02281 4.48845 +88.73444 4.42998 +88.42401 4.36806 +87.75070 4.30591 +87.19821 4.25282 +86.14435 4.26701 +85.04331 4.31902 +83.80070 4.32137 +82.47372 4.37810 +82.91986 4.30508 +81.78525 4.45819 +80.69439 4.49004 +79.48993 4.51804 +78.92840 4.58506 +78.40556 4.63366 +77.36569 4.55311 +77.66629 4.63035 +76.91478 4.47419 +76.68834 4.41128 +75.98163 4.36203 +74.81143 4.38151 +73.94561 4.44732 +73.44359 4.50929 +72.56816 4.55555 +71.52818 4.54381 +71.32803 4.48240 +71.01057 4.42593 +70.68026 4.36844 +70.13647 4.31163 +69.34748 4.26208 +68.21301 4.25437 +67.16898 4.20498 +66.06473 4.17410 +64.79977 4.21289 +63.58665 4.22961 +62.77594 4.17335 +62.14781 4.14388 +61.68013 4.24788 +61.37805 4.32426 +61.68537 4.18518 +61.05435 4.40087 +60.79970 4.47534 +60.56168 4.54253 +59.51474 4.53031 +59.42036 4.47332 +58.83663 4.42502 +57.94007 4.52530 +57.72044 4.60881 +58.00024 4.42760 +57.43174 4.68507 +57.13700 4.75388 +56.77543 4.81821 +56.52880 4.89081 +55.94299 4.95386 +55.31188 5.02715 +54.77376 5.09011 +53.77199 5.00242 +53.91513 5.11532 +53.41682 4.90818 +53.13653 4.83933 +52.83044 4.77109 +52.44774 4.70048 +51.25798 4.73429 +51.58720 4.67323 +50.85736 4.83165 +50.47333 4.89516 +50.18205 4.97148 +49.85156 5.05027 +49.63677 5.12375 +49.35015 5.20083 +49.03906 5.28063 +48.74195 5.36129 +48.20541 5.41960 +46.98325 5.40718 +46.29073 5.36745 +45.98929 5.51569 +45.83440 5.62337 +45.60222 5.70346 +45.89321 5.41935 +45.48151 5.78153 +45.19570 5.87202 +44.93822 5.96876 +44.68264 6.06558 +44.42724 6.15780 +43.50866 6.19416 +43.03498 6.07913 +42.80902 5.98399 +42.57842 5.89341 +42.84174 6.21046 +42.26542 5.81153 +41.86789 5.73894 +41.46880 5.66429 +41.01040 5.58467 +40.53944 5.50753 +40.20174 5.42645 +40.06129 5.34343 +39.76887 5.26597 +39.51163 5.19956 +38.35066 5.28308 +38.68921 5.20096 +38.04795 5.38474 +37.80139 5.46568 +37.55923 5.54700 +37.42885 5.64677 +37.27987 5.76422 +37.15252 5.88683 +37.02747 6.00870 +36.89608 6.13425 +36.78073 6.26363 +36.64918 6.39100 +36.53153 6.52480 +36.40188 6.65623 +36.24560 6.78336 +36.92754 5.56070 +36.14108 6.91025 +36.00934 7.04162 +35.88102 7.17475 +35.77334 7.30919 +35.66514 7.44350 +36.23545 6.16587 +35.48654 7.58589 +35.17373 7.70570 +34.78081 7.80963 +34.43558 7.92381 +34.23110 8.05615 +34.07530 8.18870 +33.85135 8.32569 +33.70013 8.46274 +33.41767 8.60416 +33.17914 8.73543 +32.98839 8.85844 +32.59928 8.98700 +31.69424 8.78733 +31.38635 8.99080 +30.87492 8.74250 +30.29429 8.87971 +30.07443 9.13392 +30.09475 8.99774 +29.83961 9.32221 +30.38417 8.76485 +29.62917 9.48256 +29.45877 9.63518 +28.53296 9.69845 +28.01982 9.52096 +27.68294 9.35145 +27.42258 9.28560 +27.05363 9.68547 +26.75596 9.51210 +26.50298 9.86454 +26.36647 10.04312 +26.84509 9.38554 +26.21429 10.22027 +26.04739 10.39966 +25.83449 10.59084 +26.35749 9.67405 +25.60682 10.78797 +25.40618 10.96072 +24.42863 11.08200 +23.90605 11.26280 +23.43301 11.41377 +22.22031 11.47076 +21.52546 11.65356 +20.88588 11.80923 +20.22308 11.97842 +19.69877 12.13260 +18.89515 11.91576 +18.56364 11.72198 +18.90182 12.16484 +18.34081 11.55963 +17.95323 11.39109 +17.78042 11.19503 +17.27778 11.12273 +16.45401 11.33398 +16.24426 11.53477 +16.68924 11.15578 +16.05551 11.69529 +15.88865 11.86051 +15.70163 12.02617 +15.48926 12.18516 +15.29377 12.36600 +15.10502 12.56150 +14.94773 12.76274 +14.74930 12.95079 +14.54773 13.14586 +14.07899 13.33162 +13.41079 13.50603 +12.84251 13.71227 +11.82366 13.70522 +11.35528 13.47852 +10.59468 13.29529 +10.02004 13.09781 +9.54001 12.92761 +8.52838 13.04098 +8.08235 12.85896 +7.78532 12.65908 +7.46477 12.47597 +7.17042 12.30534 +6.83487 12.14585 +6.55073 11.98130 +6.08656 11.81588 +5.54648 11.64881 +5.35328 11.46796 +5.20917 11.30436 +5.02212 11.13139 +4.75431 10.95543 +4.62539 10.79874 +4.45563 10.64139 +4.16967 10.48679 +4.02195 10.33583 +3.82565 10.18475 +3.63659 10.03875 +3.42550 9.89977 +3.02227 9.76629 +2.65642 9.62362 +2.25021 9.49238 +1.63111 9.37241 +1.25990 9.22147 +1.03582 9.07175 +0.80225 8.94270 +0.60812 8.81323 +0.20163 8.68658 +-0.00473 8.56186 +-0.26647 8.44686 +-0.58409 8.33928 +-1.31131 8.24296 +-1.87772 8.12464 +-2.28323 7.99974 +-2.61055 7.88670 +-2.90447 7.75526 +-3.25377 7.63108 +-3.68654 7.53978 +-4.88080 7.52608 +-6.02071 7.45929 +-6.82134 7.31937 +-7.18401 7.19175 +-6.86269 7.44156 +-7.59599 7.09543 +-8.85667 7.09927 +-10.11902 7.19262 +-11.36550 7.28712 +-12.05238 7.39748 +-12.42400 7.52119 +-12.94802 7.60948 +-13.51887 7.70607 +-14.71657 7.71720 +-15.88123 7.84528 +-16.25829 7.71033 +-16.27926 8.00851 +-17.07995 7.84291 +-17.26444 7.63116 +-17.02378 7.72696 +-17.08670 8.01401 +-17.44242 7.47990 +-17.63790 7.37360 +-17.86384 7.26666 +-18.08550 7.16292 +-18.34178 7.06036 +-19.01825 7.02863 +-19.59412 7.13662 +-20.48606 7.20507 +-20.96911 7.06849 +-21.16581 6.95814 +-21.39651 6.85285 +-21.14484 7.22495 +-21.79236 6.76244 +-22.25799 6.67446 +-22.66384 6.57955 +-23.05413 6.48575 +-23.54355 6.39194 +-24.73650 6.35052 +-25.89857 6.34381 +-26.10444 6.25333 +-26.68485 6.21611 +-27.46530 6.30403 +-28.10840 6.40895 +-28.74521 6.50802 +-29.25065 6.60780 +-30.37099 6.60963 +-30.64531 6.51677 +-30.94731 6.42625 +-31.25938 6.33877 +-31.64848 6.30127 +-32.67167 6.33120 +-33.23141 6.24422 +-33.81381 6.16180 +-34.37510 6.07203 +-35.45982 6.07016 +-35.69869 6.14524 +-36.13210 6.22495 +-36.52479 6.32946 +-37.19630 6.40956 +-38.27741 6.29412 +-38.20986 6.42852 +-39.48846 6.32151 +-39.71322 6.47568 +-39.93539 6.61690 +-40.11939 6.74237 +-40.30205 6.86966 +-40.50375 6.99343 +-40.99515 7.08827 +-41.64320 7.16358 +-42.70649 7.14531 +-42.91160 7.04742 +-43.38463 6.95980 +-43.67416 6.86427 +-43.87740 6.75787 +-44.19424 6.65214 +-44.37053 6.55020 +-44.82583 6.46414 +-45.51259 6.38399 +-46.58847 6.30455 +-47.06916 6.20283 +-47.58745 6.10121 +-47.97265 5.99686 +-48.13120 5.91019 +-47.69581 6.19731 +-48.61073 5.85594 +-49.44453 5.95239 +-49.74481 6.06525 +-50.05615 6.17812 +-49.33165 5.86013 +-50.29172 6.28305 +-50.54973 6.37927 +-51.74737 6.43166 +-52.26516 6.55182 +-52.67835 6.63582 +-53.04609 6.73641 +-53.41901 6.83505 +-53.72011 6.94227 +-54.00149 7.05133 +-54.23918 7.16081 +-54.48581 7.27087 +-54.58522 7.37431 +-54.72516 7.49892 +-54.83689 7.62769 +-54.94820 7.75848 +-55.10743 7.88977 +-55.20229 8.02975 +-55.33914 8.16637 +-55.46955 8.30775 +-55.67054 8.44545 +-55.86104 8.58607 +-56.02263 8.72732 +-56.21757 8.86129 +-56.41223 9.00203 +-56.65004 9.13172 +-57.09222 9.24699 +-57.48989 9.37227 +-58.70463 9.35650 +-59.87287 9.34115 +-60.30656 9.21980 +-60.68575 9.09362 +-60.86834 8.96699 +-61.12533 8.83686 +-61.47221 8.70005 +-61.57687 8.56619 +-61.74989 8.44129 +-61.84710 8.31822 +-62.08928 8.19297 +-62.14575 8.06234 +-62.40580 7.94080 +-62.54422 7.81897 +-62.61028 7.71199 +-62.77791 7.59969 +-62.88616 7.48407 +-62.99408 7.39264 +-63.13621 7.29958 +-63.26205 7.20309 +-63.36488 7.10470 +-63.53516 6.99940 +-63.95501 6.89854 +-64.31938 6.79513 +-64.72990 6.70229 +-65.20022 6.61317 +-65.67639 6.52705 +-66.37086 6.44441 +-67.39053 6.56292 +-67.12572 6.42600 +-67.81666 6.67415 +-68.22853 6.76549 +-68.69436 6.86125 +-69.78299 6.87350 +-69.89292 6.77444 +-70.23771 6.68103 +-70.50846 6.59011 +-70.74631 6.50287 +-70.93388 6.40540 +-71.20488 6.31324 +-71.38406 6.22388 +-71.54135 6.14389 +-71.82573 6.06241 +-72.04019 5.96734 +-72.29635 5.86752 +-72.55252 5.76949 +-72.80418 5.67543 +-73.05353 5.58023 +-73.31651 5.48658 +-73.56679 5.40076 +-73.82649 5.32489 +-74.21774 5.25005 +-74.55382 5.18347 +-75.77776 5.17003 +-76.94495 5.14823 +-77.43093 5.08070 +-77.93068 5.01920 +-78.62710 4.95590 +-79.04195 4.87547 +-79.33781 4.80968 +-79.81009 4.74548 +-80.19244 4.67366 +-80.43129 4.61087 +-81.63204 4.62180 +-82.02113 4.70680 +-82.33572 4.77237 +-82.66601 4.83792 +-82.96078 4.91296 +-83.25789 4.98824 +-83.79443 5.04890 +-84.84829 5.05071 +-84.90879 4.97650 +-85.26424 4.90618 +-85.76059 4.84309 +-86.56332 4.80595 +-87.25981 4.87769 +-87.70017 4.96362 +-87.17622 4.79511 +-88.22044 5.03284 +-89.15811 5.04320 +-89.33899 4.96798 +-89.54655 4.90002 +-89.68241 4.83564 +-89.87593 4.77451 +-90.07390 4.70702 +-90.30634 4.63734 +-90.44219 4.57317 +-90.80847 4.51083 +-91.04804 4.44421 +-91.53547 4.38777 +-92.69220 4.40781 +-93.33883 4.48636 +-93.73007 4.55037 +-93.96884 4.62045 +-94.33977 4.68922 +-94.70878 4.76052 +-95.31139 4.81982 +-96.32402 4.74397 +-96.37640 4.82137 +-97.60893 4.77923 +-97.14856 4.71351 +-98.01004 4.87151 +-98.38425 4.93961 +-99.31291 4.97653 +-100.32063 4.89258 +-100.10566 4.98540 +-100.74607 4.80754 +-100.99945 4.71867 +-101.26721 4.63834 +-101.50494 4.57086 +-101.89064 4.50469 +-102.13998 4.44014 +-102.45719 4.38457 +-103.09422 4.33342 +-103.80770 4.28240 +-104.76337 4.22505 +-105.29856 4.16565 +-106.43511 4.18017 +-107.43448 4.24626 +-108.48102 4.28816 +-109.68325 4.28027 +-110.53568 4.22619 +-111.70557 4.23445 +-112.45258 4.30089 +-112.77528 4.36478 +-112.98176 4.43401 +-113.25531 4.49440 +-113.44954 4.55576 +-113.84853 4.62121 +-114.22004 4.69175 +-114.98553 4.72680 +-115.89273 4.66905 +-116.23758 4.58564 +-116.59243 4.52984 +-117.49592 4.49509 +-117.95545 4.56926 +-118.25092 4.64255 +-118.62348 4.71024 +-118.09992 4.49404 +-118.93415 4.78400 +-118.99926 4.85856 +-119.16951 4.92473 diff --git a/example/test_problem/Hydro/FermiBubble/plot_xray_profile.py b/example/test_problem/Hydro/FermiBubble/plot_xray_profile.py new file mode 100644 index 0000000000..6b2c31b700 --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/plot_xray_profile.py @@ -0,0 +1,140 @@ +#==================================================================================================== +# Imports +#==================================================================================================== +import numpy as np +import matplotlib.pyplot as plt +import h5py + + + +#==================================================================================================== +# Constants +#==================================================================================================== +fontSize = 16 +lineWidth = 2.0 +NormalizedConst = 26e26 +backGround = 4.5 + + + +#==================================================================================================== +# Main +#==================================================================================================== +# hf = h5py.File( "./Projected_FRB_Data_000035_XRay.h5", 'r' ) + +group1 = hf.get('Map') +group2 = hf.get('Info') + +UpperBound_bb = np.array(group2.get('Keys')).tolist()[0] +UpperBound_ll = np.array(group2.get('Keys')).tolist()[1] +numAzimuthalAngle = np.array(group2.get('Keys')).tolist()[2] +b_max = np.array(group2.get('Keys')).tolist()[3] +b_min = np.array(group2.get('Keys')).tolist()[4] +l_max = np.array(group2.get('Keys')).tolist()[5] +l_min = np.array(group2.get('Keys')).tolist()[6] + +print("UpperBound_bb = %e" % UpperBound_bb ) +print("UpperBound_ll = %e" % UpperBound_ll ) +print("numAzimuthalAngle = %e" % numAzimuthalAngle) +print("b_max = %e" % b_max ) +print("b_min = %e" % b_min ) +print("l_max = %e" % l_max ) +print("l_min = %e" % l_min ) + +observ_p60 = np.loadtxt( './observed_data/xray_profile/p60.dat' , usecols=(0,1), unpack=True ) +observ_p50 = np.loadtxt( './observed_data/xray_profile/p50.dat' , usecols=(0,1), unpack=True ) +observ_p40 = np.loadtxt( './observed_data/xray_profile/p40.dat' , usecols=(0,1), unpack=True ) +observ_m60 = np.loadtxt( './observed_data/xray_profile/m60.dat' , usecols=(0,1), unpack=True ) +observ_m50 = np.loadtxt( './observed_data/xray_profile/m50.dat' , usecols=(0,1), unpack=True ) +observ_m40 = np.loadtxt( './observed_data/xray_profile/m40.dat' , usecols=(0,1), unpack=True ) + +b_p60_idx = int ( ( +60 - b_min ) / ( b_max - b_min ) * UpperBound_bb ) +b_p50_idx = int ( ( +50 - b_min ) / ( b_max - b_min ) * UpperBound_bb ) +b_p40_idx = int ( ( +40 - b_min ) / ( b_max - b_min ) * UpperBound_bb ) +b_m60_idx = int ( ( -60 - b_min ) / ( b_max - b_min ) * UpperBound_bb ) +b_m50_idx = int ( ( -50 - b_min ) / ( b_max - b_min ) * UpperBound_bb ) +b_m40_idx = int ( ( -40 - b_min ) / ( b_max - b_min ) * UpperBound_bb ) + +ray = np.linspace( l_min, l_max, num=UpperBound_ll ) + +for angleIdx in range(numAzimuthalAngle): + NumRow = 2 + NumCol = 3 + + fig, ax = plt.subplots( NumRow, NumCol, sharex="col", sharey="row" ) + fig.subplots_adjust( hspace=0.08, wspace=0.08 ) + fig.set_size_inches( 12.0, 6.0 ) + + frb = [None]*2 + frb[0] = np.array( group1.get("ProjectedXray_08_keV") )[angleIdx] + frb[1] = np.array( group1.get("ProjectedXray_15_keV") )[angleIdx] + + profile_p60 = frb[0][b_p60_idx,:]*NormalizedConst+backGround + profile_p50 = frb[0][b_p50_idx,:]*NormalizedConst+backGround + profile_p40 = frb[0][b_p40_idx,:]*NormalizedConst+backGround + profile_m40 = frb[0][b_m40_idx,:]*NormalizedConst+backGround + profile_m50 = frb[0][b_m50_idx,:]*NormalizedConst+backGround + profile_m60 = frb[0][b_m60_idx,:]*NormalizedConst+backGround + + profile_p60 = np.roll( profile_p60, int(profile_p60.size/2) ) + profile_p50 = np.roll( profile_p50, int(profile_p50.size/2) ) + profile_p40 = np.roll( profile_p40, int(profile_p40.size/2) ) + profile_m40 = np.roll( profile_m40, int(profile_m40.size/2) ) + profile_m50 = np.roll( profile_m50, int(profile_m50.size/2) ) + profile_m60 = np.roll( profile_m60, int(profile_m60.size/2) ) + + profile_p60 = np.flip( profile_p60 ) + profile_p50 = np.flip( profile_p50 ) + profile_p40 = np.flip( profile_p40 ) + profile_m40 = np.flip( profile_m40 ) + profile_m50 = np.flip( profile_m50 ) + profile_m60 = np.flip( profile_m60 ) + + ax[0][0].plot( ray, profile_p60, '-' , linewidth=lineWidth, label=r'$+10^{\circ}$', color='r' ) + ax[0][1].plot( ray, profile_p50, '-' , linewidth=lineWidth, label=r'$+20^{\circ}$', color='r' ) + ax[0][2].plot( ray, profile_p40, '-' , linewidth=lineWidth, label=r'$+30^{\circ}$', color='r' ) + + ax[1][0].plot( ray, profile_m60, '-' , linewidth=lineWidth, label=r'$-10^{\circ}$', color='r' ) + ax[1][1].plot( ray, profile_m50, '-' , linewidth=lineWidth, label=r'$-20^{\circ}$', color='r' ) + ax[1][2].plot( ray, profile_m40, '-' , linewidth=lineWidth, label=r'$-30^{\circ}$', color='r' ) + + ax[0][0].plot( observ_p60[0], observ_p60[1], '-' , linewidth=lineWidth, label=r'$+40^{\circ}$', color='black' ) + ax[0][1].plot( observ_p50[0], observ_p50[1], '-' , linewidth=lineWidth, label=r'$+50^{\circ}$', color='black' ) + ax[0][2].plot( observ_p40[0], observ_p40[1], '-' , linewidth=lineWidth, label=r'$+60^{\circ}$', color='black' ) + + ax[1][0].plot( observ_m60[0], observ_m60[1], '-' , linewidth=lineWidth, label=r'$-40^{\circ}$', color='black' ) + ax[1][1].plot( observ_m50[0], observ_m50[1], '-' , linewidth=lineWidth, label=r'$-50^{\circ}$', color='black' ) + ax[1][2].plot( observ_m40[0], observ_m40[1], '-' , linewidth=lineWidth, label=r'$-60^{\circ}$', color='black' ) + + observ_l_max = np.amax( observ_p60[0] ) + observ_l_min = np.amin( observ_p60[0] ) + + b = [ +60, +50, +40, -60, -50, -40 ] + + for i in range(NumRow): + for j in range(NumCol): + ax[i][j].invert_xaxis() + + ax[i][j].set_xlim( observ_l_min, observ_l_max ) + + ax[i][j].tick_params( which='both', direction='in' ) + ax[i][j].tick_params( labelsize=fontSize ) + ax[i][j].tick_params( bottom=True, top=True, left=True, right=True ) + + ax[i][j].text( 0.78, 0.95, format(b[i*NumCol+j], '+d')+"$^{\circ}$", + horizontalalignment='left', verticalalignment='top', + bbox=dict(facecolor='blue', alpha=0.2, boxstyle="round", edgecolor='none'), + transform=ax[i][j].transAxes, fontsize=fontSize ) + + if i == NumRow-1: + ax[i][j].set_xlabel( r"Galactic longitude ($^{\circ}$)", fontsize=fontSize ) + + if j == 0: + ax[i][j].set_ylabel(r"Photons s$^{-1}$ deg$^{-2}$", fontsize=fontSize) + + if i == 0: ax[i][j].set_ylim( 3, 21 ) + if i == 1: ax[i][j].set_ylim( 3, 11 ) + + plt.savefig( "XRay_profile_0.8keV_%03d.png"%angleIdx, bbox_inches='tight', format="png" ) + plt.show() + plt.close() From de17b22cd8d30366e91be3226b99e8ac539c2437 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Tue, 20 Aug 2024 16:37:25 +0800 Subject: [PATCH 53/73] Add gamma ray map script --- .../Hydro/FermiBubble/plot_map.py | 149 ++++++++++++++++++ .../Hydro/FermiBubble/plot_xray_map.py | 91 ----------- 2 files changed, 149 insertions(+), 91 deletions(-) create mode 100644 example/test_problem/Hydro/FermiBubble/plot_map.py delete mode 100644 example/test_problem/Hydro/FermiBubble/plot_xray_map.py diff --git a/example/test_problem/Hydro/FermiBubble/plot_map.py b/example/test_problem/Hydro/FermiBubble/plot_map.py new file mode 100644 index 0000000000..12856be3ca --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/plot_map.py @@ -0,0 +1,149 @@ +#==================================================================================================== +# Imports +#==================================================================================================== +import h5py +import matplotlib as mpl +import matplotlib.pylab as plt +from matplotlib.colors import LogNorm, ListedColormap +import numpy as np +import argparse +import sys + + + +#==================================================================================================== +# Constants +#==================================================================================================== +CM2INCH = 1/2.54 +PROJECT_METHOD = "hammer" + + + +#==================================================================================================== +# Parser +#==================================================================================================== +parser = argparse.ArgumentParser( description='Plot perspective projection map' ) + +parser.add_argument( '-t', action='store', required=True, type=str, dest='plot_type', + choices=["x_ray", "gamma_ray"], help='Plot map type.' ) + +args=parser.parse_args() + +# take note +print( '\nCommand-line arguments:' ) +print( '-------------------------------------------------------------------' ) +print( ' '.join(map(str, sys.argv)) ) +print( '-------------------------------------------------------------------\n' ) + + +#==================================================================================================== +# Parameters +#==================================================================================================== +plot_type = args.plot_type +plot_args = {} +if plot_type == "x_ray": + plot_args["normal_const"] = 26e26 + plot_args["observed_energy"] = 1 + plot_args["scale_cr_engy"] = 1 + plot_args["offset"] = 4.5 + plot_args["lower_limit"] = 0.0 + plot_args["filename"] = "./my_figure/fig__x-ray-map-paper/Projected_FRB_Data_000035_XRay.h5" + plot_args["b_max_idx"] = 3 + plot_args["b_min_idx"] = 4 + plot_args["l_max_idx"] = 5 + plot_args["l_min_idx"] = 6 + plot_args["field"] = "ProjectedXray_08_keV" + img = plt.imread("cubehelix.png") + img = img[0,:,:] + plot_args["cmap"] = ListedColormap( img ) + plot_args["log_scale"] = True + plot_args["savename"] = "XRay_map_0.8keV.png" + plot_args["title"] = "Count rate (photons s$^{-1}$deg$^{-2}$)" + plot_args["cbar_max"] = None + plot_args["cbar_min"] = None + plot_args["xtick_label_dark_range"] = [3, 11] +elif plot_type == "gamma_ray": + plot_args["normal_const"] = 1.687e29 + plot_args["observed_energy"] = 108.61e9 + plot_args["scale_cr_engy"] = 250 + plot_args["offset"] = 0.0 + plot_args["lower_limit"] = 1.e-13 + plot_args["filename"] = "./my_figure/fig__gamma-ray-map-paper/Projected_FRB_Data_000035_100e9_1e6_2.4.h5" + plot_args["b_max_idx"] = 7 + plot_args["b_min_idx"] = 8 + plot_args["l_max_idx"] = 9 + plot_args["l_min_idx"] = 10 + plot_args["field"] = "ProjectedLeptonicGammaRay" + plot_args["cmap"] = mpl.colormaps["nipy_spectral"] + plot_args["log_scale"] = True + plot_args["savename"] = "GammaRay_100e9_1e6.png" + plot_args["title"] = "Photon flux (GeV$^{-1}$cm$^{-2}$s$^{-1}$sr$^{-1}$)" + plot_args["cbar_max"] = 1.e-11 + plot_args["cbar_min"] = 1.e-9 + plot_args["xtick_label_dark_range"] = [5, 9] + +fig_width = 20.0 * CM2INCH +fig_height = 11.0 * CM2INCH +fig_dpi = 400 + + + +#==================================================================================================== +# Load data +#==================================================================================================== +hf = h5py.File( plot_args["filename"], 'r') +group1 = hf.get("Map") +group2 = hf.get("Info") + +b_max = np.array(group2.get('Keys')).tolist()[plot_args["b_max_idx"]] +b_min = np.array(group2.get('Keys')).tolist()[plot_args["b_min_idx"]] +l_max = np.array(group2.get('Keys')).tolist()[plot_args["l_max_idx"]] +l_min = np.array(group2.get('Keys')).tolist()[plot_args["l_min_idx"]] + +image = group1.get( plot_args["field"] ) +image = np.array(image[0]) * plot_args["normal_const"] / plot_args["observed_energy"] * plot_args["scale_cr_engy"] + plot_args["offset"] +plot_arr = image +plot_arr = np.where( plot_arr > plot_args["lower_limit"], plot_arr, plot_args["lower_limit"] ) +plot_arr = np.roll( plot_arr, int(plot_arr.shape[1]/2), axis=1 ) + +# meshgrid +x = np.linspace( l_min, l_max, plot_arr.shape[1] ) * np.pi/180.0 +y = np.linspace( b_min, b_max, plot_arr.shape[0] ) * np.pi/180.0 +X, Y = np.meshgrid( x, y ) + + + +#==================================================================================================== +# Plot +#==================================================================================================== +norm_func = mpl.colors.LogNorm if plot_args["log_scale"] else mpl.colors.Normalize +if plot_args["cbar_min"] is None: plot_args["cbar_min"] = plot_arr.min() +if plot_args["cbar_max"] is None: plot_args["cbar_max"] = plot_arr.max() +plot_norm = norm_func( vmin=plot_args["cbar_min"], vmax=plot_args["cbar_max"] ) +plot_x_tick = np.array( [ -150, -120, -90, -60, -45, -30, -15, 0, 15, 30, 45, 60, 90, 120, 150 ] ) +plot_x_tick_label = np.array( [ "10h", "8h", "6h", "4h", "3h", "2h", "1h", "0h", "23h", "22h", "21h", "20h", "18h", "16h", "14h" ] ) +plot_y_tick = np.array( [ -70+10*i for i in range(15) ] ) +plot_y_tick_label = np.array( [ "%d$^{\circ}$"%i for i in plot_y_tick ] ) + +fig = plt.figure( figsize=(fig_width, fig_height) ) + +gs = fig.add_gridspec( 1, 2, width_ratios=(20, 1), wspace=0.1 ) +ax = fig.add_subplot( gs[0, 0], projection=PROJECT_METHOD ) +im = ax.pcolormesh( X, Y, plot_arr, norm=plot_norm, cmap=plot_args["cmap"], shading="auto" ) +ax.grid(color='silver', linestyle='-', linewidth=0.5, axis='x') +ax.grid(color='silver', linestyle='-', linewidth=0.5, axis='y') +ax.get_xaxis().set_ticks( plot_x_tick*np.pi/180 ) +ax.get_yaxis().set_ticks( plot_y_tick*np.pi/180 ) +ax.set_xticklabels( plot_x_tick_label, rotation=90 ) +ax.set_yticklabels( plot_y_tick_label ) +for i in range(len(plot_x_tick)): + color = "black" if i > plot_args["xtick_label_dark_range"][0] and i < plot_args["xtick_label_dark_range"][1] else "white" + ax.get_xticklabels()[i].set_color( color ) + +ax = fig.add_subplot( gs[0, 1] ) +cbar = fig.colorbar( im, cax=ax, use_gridspec=True ) + +plt.suptitle( plot_args["title"] ) + +plt.savefig( plot_args["savename"], dpi=fig_dpi ) +plt.show() diff --git a/example/test_problem/Hydro/FermiBubble/plot_xray_map.py b/example/test_problem/Hydro/FermiBubble/plot_xray_map.py deleted file mode 100644 index 7a46e9213d..0000000000 --- a/example/test_problem/Hydro/FermiBubble/plot_xray_map.py +++ /dev/null @@ -1,91 +0,0 @@ -#==================================================================================================== -# Imports -#==================================================================================================== -import yt -import h5py -import matplotlib as mpl -import matplotlib.pylab as plt -from matplotlib.colors import LogNorm, ListedColormap -import numpy as np -import argparse -import sys - - - -#==================================================================================================== -# Constants -#==================================================================================================== -CM2INCH = 1/2.54 -PROJECT_METHOD = "hammer" -NORMAL_CONST = 26e26 -OBSERVED_ENERGY = 1 -SCALE_CR_ENGY = 1 -OFFSET = 4.5 - - - -#==================================================================================================== -# Load data -#==================================================================================================== -hf = h5py.File("./Projected_FRB_Data_000035_XRay.h5", 'r') -group1 = hf.get("Map") -group2 = hf.get("Info") - -b_max = np.array(group2.get('Keys')).tolist()[3] -b_min = np.array(group2.get('Keys')).tolist()[4] -l_max = np.array(group2.get('Keys')).tolist()[5] -l_min = np.array(group2.get('Keys')).tolist()[6] - -image = group1.get("ProjectedXray_08_keV") -image = np.array(image[0]) * NORMAL_CONST / OBSERVED_ENERGY * SCALE_CR_ENGY + OFFSET -plot_arr = image -plot_arr = np.roll( plot_arr, int(plot_arr.shape[1]/2), axis=1 ) - -# meshgrid -x = np.linspace( l_min, l_max, plot_arr.shape[1] ) * np.pi/180.0 -y = np.linspace( b_min, b_max, plot_arr.shape[0] ) * np.pi/180.0 -X, Y = np.meshgrid( x, y ) - - - -#==================================================================================================== -# Plot -#==================================================================================================== -img = plt.imread("cubehelix.png") -img = img[0,:,:] -plot_cmap = ListedColormap( img ) -plot_log_scale = True -norm_func = mpl.colors.LogNorm if plot_log_scale else mpl.colors.Normalize -plot_norm = norm_func( vmin=plot_arr.min(), vmax=plot_arr.max() ) -plot_savename = "XRay_map_0.8keV.png" -plot_x_tick = np.array( [ -150, -120, -90, -60, -45, -30, -15, 0, 15, 30, 45, 60, 90, 120, 150 ] ) -plot_x_tick_label = np.array( [ "10h", "8h", "6h", "4h", "3h", "2h", "1h", "0h", "23h", "22h", "21h", "20h", "18h", "16h", "14h" ] ) -plot_y_tick = np.array( [ -70+10*i for i in range(15) ] ) -plot_y_tick_label = np.array( [ "%d$^{\circ}$"%i for i in plot_y_tick ] ) - -fig_width = 16.0 * CM2INCH -fig_height = 11.0 * CM2INCH -fig_dpi = 400 - -fig = plt.figure( figsize=(fig_width, fig_height) ) - -gs = fig.add_gridspec( 1, 2, width_ratios=(20, 1), wspace=0.1 ) -ax = fig.add_subplot( gs[0, 0], projection=PROJECT_METHOD ) -im = ax.pcolormesh( X, Y, plot_arr, norm=plot_norm, cmap=plot_cmap, shading="auto" ) -ax.grid(color='silver', linestyle='-', linewidth=0.5, axis='x') -ax.grid(color='silver', linestyle='-', linewidth=0.5, axis='y') -ax.get_xaxis().set_ticks( plot_x_tick*np.pi/180 ) -ax.get_yaxis().set_ticks( plot_y_tick*np.pi/180 ) -ax.set_xticklabels( plot_x_tick_label ) -ax.set_yticklabels( plot_y_tick_label ) -for i in range(len(plot_x_tick)): - color = "blue" if i > 3 and i < 11 else "white" - ax.get_xticklabels()[i].set_color( color ) - -ax = fig.add_subplot( gs[0, 1] ) -cbar = fig.colorbar( im, cax=ax, use_gridspec=True ) - -plt.suptitle( "Count rate (photons s$^{-1}$deg$^{-2}$)" ) - -plt.savefig( plot_savename, dpi=fig_dpi ) -plt.show() From 8f3f419b149855a636a6b111934764c4ff2a99fa Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Wed, 21 Aug 2024 11:02:02 +0800 Subject: [PATCH 54/73] Add plot spectrum script --- .../test_problem/Hydro/FermiBubble/WMAPData-1 | 4 + .../test_problem/Hydro/FermiBubble/WMAPData-2 | 6 + .../Hydro/FermiBubble/energyBinsTable | 26 +++ .../gamma_ray_spectrum/energyBinsTable | 26 +++ .../gamma_ray_spectrum/get_spectrum.sh | 26 +++ .../FermiBubble/observedEnergySpectrum-Lower | 25 +++ .../FermiBubble/observedEnergySpectrum-Upper | 25 +++ .../Hydro/FermiBubble/plot_spectrum.py | 202 ++++++++++++++++++ .../synchrotron_spectrum/energyBinsTable | 22 ++ .../synchrotron_spectrum/get_spectrum.sh | 27 +++ 10 files changed, 389 insertions(+) create mode 100644 example/test_problem/Hydro/FermiBubble/WMAPData-1 create mode 100644 example/test_problem/Hydro/FermiBubble/WMAPData-2 create mode 100644 example/test_problem/Hydro/FermiBubble/energyBinsTable create mode 100644 example/test_problem/Hydro/FermiBubble/gamma_ray_spectrum/energyBinsTable create mode 100755 example/test_problem/Hydro/FermiBubble/gamma_ray_spectrum/get_spectrum.sh create mode 100644 example/test_problem/Hydro/FermiBubble/observedEnergySpectrum-Lower create mode 100644 example/test_problem/Hydro/FermiBubble/observedEnergySpectrum-Upper create mode 100644 example/test_problem/Hydro/FermiBubble/plot_spectrum.py create mode 100644 example/test_problem/Hydro/FermiBubble/synchrotron_spectrum/energyBinsTable create mode 100755 example/test_problem/Hydro/FermiBubble/synchrotron_spectrum/get_spectrum.sh diff --git a/example/test_problem/Hydro/FermiBubble/WMAPData-1 b/example/test_problem/Hydro/FermiBubble/WMAPData-1 new file mode 100644 index 0000000000..9e21eba4c4 --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/WMAPData-1 @@ -0,0 +1,4 @@ +# WMAP data (the vertical line in Fig. 8) +# Photon frequency (GHz) I_nu (kJy/sr) +22.86, 0.8956991243733344 +22.86, 1.3980298281692871 diff --git a/example/test_problem/Hydro/FermiBubble/WMAPData-2 b/example/test_problem/Hydro/FermiBubble/WMAPData-2 new file mode 100644 index 0000000000..b4b16234ea --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/WMAPData-2 @@ -0,0 +1,6 @@ +# WMAP data (the shadowed region in Fig. 8) +# Photon frequency (GHz) I_nu (kJy/sr) +5.28209730603778, 3.206224529736121 +203.22712392822737, 0.2679604552383966 +202.88087440183702, 0.494234266470856 +5.4612172705756326, 2.025705392982815 diff --git a/example/test_problem/Hydro/FermiBubble/energyBinsTable b/example/test_problem/Hydro/FermiBubble/energyBinsTable new file mode 100644 index 0000000000..32fafc6fa3 --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/energyBinsTable @@ -0,0 +1,26 @@ +# Emin (eV) Emid (eV) Emax (eV) + 0.10e9 0.12e9 0.14e9 + 0.14e9 0.17e9 0.20e9 + 0.20e9 0.24e9 0.28e9 + 0.28e9 0.34e9 0.40e9 + 0.40e9 0.48e9 0.57e9 + 0.57e9 0.67e9 0.80e9 + 0.80e9 0.95e9 1.13e9 + 1.13e9 1.35e9 1.60e9 + 1.60e9 1.90e9 2.26e9 + 2.26e9 2.69e9 3.20e9 + 3.20e9 3.81e9 4.53e9 + 4.53e9 5.38e9 6.40e9 + 6.40e9 7.61e9 9.05e9 + 9.05e9 10.76e9 12.80e9 + 12.80e9 15.22e9 18.10e9 + 18.10e9 21.53e9 25.60e9 + 25.60e9 30.44e9 36.20e9 + 36.20e9 43.05e9 51.20e9 + 51.20e9 60.89e9 72.41e9 + 72.41e9 86.11e9 102.40e9 + 102.40e9 121.77e9 144.82e9 + 144.82e9 172.22e9 204.80e9 + 204.80e9 243.55e9 289.63e9 + 289.63e9 344.43e9 409.60e9 + 409.60e9 487.10e9 579.26e9 diff --git a/example/test_problem/Hydro/FermiBubble/gamma_ray_spectrum/energyBinsTable b/example/test_problem/Hydro/FermiBubble/gamma_ray_spectrum/energyBinsTable new file mode 100644 index 0000000000..32fafc6fa3 --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/gamma_ray_spectrum/energyBinsTable @@ -0,0 +1,26 @@ +# Emin (eV) Emid (eV) Emax (eV) + 0.10e9 0.12e9 0.14e9 + 0.14e9 0.17e9 0.20e9 + 0.20e9 0.24e9 0.28e9 + 0.28e9 0.34e9 0.40e9 + 0.40e9 0.48e9 0.57e9 + 0.57e9 0.67e9 0.80e9 + 0.80e9 0.95e9 1.13e9 + 1.13e9 1.35e9 1.60e9 + 1.60e9 1.90e9 2.26e9 + 2.26e9 2.69e9 3.20e9 + 3.20e9 3.81e9 4.53e9 + 4.53e9 5.38e9 6.40e9 + 6.40e9 7.61e9 9.05e9 + 9.05e9 10.76e9 12.80e9 + 12.80e9 15.22e9 18.10e9 + 18.10e9 21.53e9 25.60e9 + 25.60e9 30.44e9 36.20e9 + 36.20e9 43.05e9 51.20e9 + 51.20e9 60.89e9 72.41e9 + 72.41e9 86.11e9 102.40e9 + 102.40e9 121.77e9 144.82e9 + 144.82e9 172.22e9 204.80e9 + 204.80e9 243.55e9 289.63e9 + 289.63e9 344.43e9 409.60e9 + 409.60e9 487.10e9 579.26e9 diff --git a/example/test_problem/Hydro/FermiBubble/gamma_ray_spectrum/get_spectrum.sh b/example/test_problem/Hydro/FermiBubble/gamma_ray_spectrum/get_spectrum.sh new file mode 100755 index 0000000000..6219fb8df5 --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/gamma_ray_spectrum/get_spectrum.sh @@ -0,0 +1,26 @@ +ENGY_BINS_TABLE="energyBinsTable" +CRindexs=(2.2 2.4 2.6) + + +# Extract the data from ENGY_BINS_TABLE to the temporary file +temp_file=$(mktemp) +tail -n +2 "$ENGY_BINS_TABLE" > "$temp_file" + +for CRindex in "${CRindexs[@]}" +do + while IFS=$' \t' read -ra line; do + Emin=${line[0]} + ObservedEngyEv=$(printf "%9.4e" ${line[1]}) + Emax=${line[2]} + FileName="Projected_FRB_Data_000035_${ObservedEngyEv}_1.1e6_${CRindex}.h5" + + if [ -f "$FileName" ]; then + echo "${FileName} exist !!" + else + echo "Running with (ObservedEngyEv=${ObservedEngyEv}, CRindex=${CRindex})" + ./Project FRB_Data_000035.h5 $ObservedEngyEv 1.1e6 $CRindex R12/robitaille_DL07_PAHISMMix.dat >& log-$CRindex-$ObservedEngyEv + fi + done < "${temp_file}" +done + +rm "${temp_file}" diff --git a/example/test_problem/Hydro/FermiBubble/observedEnergySpectrum-Lower b/example/test_problem/Hydro/FermiBubble/observedEnergySpectrum-Lower new file mode 100644 index 0000000000..a05541edff --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/observedEnergySpectrum-Lower @@ -0,0 +1,25 @@ +# The observational Gamma-ray data (lower bound) of Ackermann et al. (2014) + +# Photon energy (GeV) E^2dN/dE (GeV/cm**2/s/sr) +0.11941154224126872, 8.397814043397254e-8 +0.16547580826826042, 1.884326764643684e-7 +0.33980178840778125, 2.708393179140353e-7 +0.6484625035311103, 3.43145631862909e-7 +0.9178256992489282, 3.3991087582589945e-7 +1.5167071028286105, 4.03174274518117e-7 +2.6066930188579227, 4.626344808850217e-7 +3.63425698710994, 4.2382890843792e-7 +5.14304320579965, 4.300521448683542e-7 +7.103101042939144, 5.010922517966781e-7 +10.411983136995458, 5.038622616988608e-7 +14.861855585284927, 4.5469864497476903e-7 +20.554719885372215, 4.3056735898035103e-7 +28.55861196023107, 3.692113237293533e-7 +57.45453698566577, 3.4526937432093356e-7 +82.69419821184174, 2.890201326431414e-7 +115.67959096492962, 2.8716189751802696e-7 +161.08856661505408, 1.7638060376541146e-7 +204.0904248554562, 1.2293023525340635e-7 +239.14173998792367, 8.646241035054578e-8 +349.43711720019356, 8.047383975197925e-8 +369.51618904619505, 2.053807535521798e-8 diff --git a/example/test_problem/Hydro/FermiBubble/observedEnergySpectrum-Upper b/example/test_problem/Hydro/FermiBubble/observedEnergySpectrum-Upper new file mode 100644 index 0000000000..9479d65dda --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/observedEnergySpectrum-Upper @@ -0,0 +1,25 @@ +# The observational Gamma-ray data (uppber bound) of Ackermann et al. (2014) + +# Photon energy (GeV) E^2dN/dE (GeV/cm**2/s/sr) +0.11824912023155316, 3.5547057247463444e-7 +0.16199226009435475, 4.346028418011872e-7 +0.3201248126068375, 5.67406565477987e-7 +0.6408165165232559, 6.24131816563235e-7 +0.9285686706988457, 6.108402601946626e-7 +1.3337116835193075, 6.947973273676947e-7 +2.6487575075206027, 7.758397076388866e-7 +5.185298631056162, 7.233775775147767e-7 +7.478186462622065, 8.008365105236716e-7 +10.543088543699023, 7.956794791778269e-7 +15.587609186640089, 7.137055637495445e-7 +21.38911279180427, 6.840107532495574e-7 +29.374394011368665, 5.795374403014595e-7 +42.393689125419016, 5.775213042909137e-7 +59.785612958731384, 5.501553979309034e-7 +86.79431716728308, 4.083487288017067e-7 +121.38796631535577, 4.1936324753506673e-7 +172.92984964977677, 2.835808681412845e-7 +242.62965789133756, 1.8166590928466074e-7 +348.3988832264666, 2.1486978647897313e-7 +487.38452310945524, 1.1951318730760447e-7 +487.49876337663784, 2.053064724576593e-8 diff --git a/example/test_problem/Hydro/FermiBubble/plot_spectrum.py b/example/test_problem/Hydro/FermiBubble/plot_spectrum.py new file mode 100644 index 0000000000..3cf9a717cb --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/plot_spectrum.py @@ -0,0 +1,202 @@ +#==================================================================================================== +# Imports +#==================================================================================================== +import matplotlib.pyplot as plt +from matplotlib.colors import LogNorm +import numpy as np +import h5py +import matplotlib.font_manager as font_manager +import os.path + + + +#==================================================================================================== +# Constants +#==================================================================================================== +Hz2GHz = 1e9 +CGS2JANSKY = 1e-23 +DeltaL = 1.687e21 +eV2GeV = 1e9 +CRIndex = 2.6 +CRIndices = [ 2.2, 2.4, 2.6 ] + +TickLabelSize = 35 +LabelSize = 35 +LegendSize = 24 +Pad = 10 +MajorTickLength = 16 +MinorTickLength = 8 + +linestyle = [ "-", "--", "-.", ":" ] +linecolor = [ "red", "orange", "green", "blue" ] + +font = font_manager.FontProperties( family='monospace', style='normal', size=LegendSize ) + +path_gamma_ray = "gamma_ray_spectrum/" +path_synchrotron = "synchrotron_spectrum/" + + + +#==================================================================================================== +# Functions +#==================================================================================================== +def trans_b( b, inverse=False ): + if inverse: + # transform from [0, 360] to [+90, -90] + b = ( 180 - b ) * 0.5 + else: + # transrorm from [+90, -90] to [0, 360] + b = 180 - 2*b + return b + +def trans_l( l, inverse=False ): + if inverse: + # transform from [0, 360] to [-180, +180] + l = l - 180 + else: + # transform from [-180, +180] to [0, 360] + l = 180 + l + return l + +def CRIndex2ScaleCREngy( CRIndex ): + if CRIndex == 2.8: ScaleCREngy = 8000 + elif CRIndex == 2.6: ScaleCREngy = 58 + elif CRIndex == 2.4: ScaleCREngy = 7 + elif CRIndex == 2.2: ScaleCREngy = 1.18 + elif CRIndex == 2.0: ScaleCREngy = 1 + else: raise ValueError("Please assign a ScaleCREngy !!") + return ScaleCREngy + + +gammaray_B_max = np.array( [50, 30, -10, -30] ) +gammaray_B_min = np.array( [30, 10, -30, -50] ) + +synchrotron_B_max = np.array( [+30, -20] ) +synchrotron_B_min = np.array( [+20, -30] ) + +L_max = +10 +L_min = -10 + +gammaray_B_max = trans_b( gammaray_B_max ) +gammaray_B_min = trans_b( gammaray_B_min ) + +synchrotron_B_max = trans_b( synchrotron_B_max ) +synchrotron_B_min = trans_b( synchrotron_B_min ) + +L_max = trans_l( L_max ) +L_min = trans_l( L_min ) + + +fig, ax = plt.subplots( 3, 2 ) + +fig.set_size_inches( 28, 20 ) +fig.subplots_adjust( wspace=0.3, hspace=0.05 ) + +Emin, Emid, Emax = np.loadtxt( "energyBinsTable", comments='#', usecols=(0,1,2), unpack=True ) + +################################### +########### Gamma-ray ############# +################################### +EngyUpper, spectrumUpper = np.loadtxt( "observedEnergySpectrum-Upper", comments='#', usecols=(0,1), unpack=True, delimiter=',' ) +EngyLower, spectrumLower = np.loadtxt( "observedEnergySpectrum-Lower", comments='#', usecols=(0,1), unpack=True, delimiter=',' ) + +Engy = np.concatenate( (EngyLower[::-1], EngyUpper ) ) +ObservedSpectrum = np.concatenate( (spectrumLower[::-1], spectrumUpper) ) + +for i in range(len(CRIndices)): + spectrumMultipleB = [] + EmidMultiple = [] + + for b_min, b_max in zip(gammaray_B_max, gammaray_B_min): + spectrumOneB = np.array([]) + EmidOneB = np.array([]) + + for binIdx in range(len(Emid)): + binWidth = Emax[binIdx] - Emin[binIdx] + filename = path_gamma_ray + "Projected_FRB_Data_000035_%9.4e_1.1e6_"%Emid[binIdx] + str(CRIndices[i]) + ".h5" + if not os.path.isfile( filename ): continue + fs = h5py.File( filename, "r" ) + group = fs.get('Map') + gmap = np.array( group.get('ProjectedLeptonicGammaRay') ) + gmap = gmap[0,:,:] + gmap = np.roll( gmap, int(gmap.shape[1]/2), axis=1 ) + spectrumOneB = np.append( spectrumOneB, CRIndex2ScaleCREngy(CRIndices[i]) * DeltaL * np.average( gmap[b_min:b_max,L_min:L_max] * binWidth / eV2GeV ) ) + EmidOneB = np.append( EmidOneB, Emid[binIdx] ) + + spectrumMultipleB.append( spectrumOneB ) + EmidMultiple.append( EmidOneB ) + + for b_idx in range(len(gammaray_B_max)): + label = r"$%+d^{\circ} "$temp_file" + +for CRindex in "${CRindexs[@]}" +do + while IFS=$' \t' read -ra line; do + Fmin=${line[0]} + ObservedFreqHz=$(printf "%9.4e" ${line[1]}) + Fmax=${line[2]} + + FileName=Projected_FRB_Data_000035_Synchrotron_${ObservedFreqHz}_1.1e6_${CRindex}.h5 + + if [ -f "$FileName" ] + then + echo "${FileName} exist !!" + else + echo "Running with (ObservedFreqHz=${ObservedFreqHz}, CRindex=${CRindex})" + ./Project FRB_Data_000035.h5 $ObservedFreqHz 1.1e6 $CRindex >& log-$CRindex-$ObservedFreqHz + fi + done < "${temp_file}" +done + +rm "${temp_file}" From 215c4f6b7522673c83e4a618acb208648852e359 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Wed, 21 Aug 2024 14:28:50 +0800 Subject: [PATCH 55/73] Update manual --- .../gamma_ray_spectrum/get_spectrum.sh | 2 +- example/test_problem/Hydro/FermiBubble/manual | 130 ++++++++++++++++-- 2 files changed, 119 insertions(+), 13 deletions(-) diff --git a/example/test_problem/Hydro/FermiBubble/gamma_ray_spectrum/get_spectrum.sh b/example/test_problem/Hydro/FermiBubble/gamma_ray_spectrum/get_spectrum.sh index 6219fb8df5..4960ebab86 100755 --- a/example/test_problem/Hydro/FermiBubble/gamma_ray_spectrum/get_spectrum.sh +++ b/example/test_problem/Hydro/FermiBubble/gamma_ray_spectrum/get_spectrum.sh @@ -18,7 +18,7 @@ do echo "${FileName} exist !!" else echo "Running with (ObservedEngyEv=${ObservedEngyEv}, CRindex=${CRindex})" - ./Project FRB_Data_000035.h5 $ObservedEngyEv 1.1e6 $CRindex R12/robitaille_DL07_PAHISMMix.dat >& log-$CRindex-$ObservedEngyEv + ./Project FRB_Data_000035.h5 $ObservedEngyEv 1.1e6 $CRindex robitaille_DL07_PAHISMMix.dat >& log-$CRindex-$ObservedEngyEv fi done < "${temp_file}" done diff --git a/example/test_problem/Hydro/FermiBubble/manual b/example/test_problem/Hydro/FermiBubble/manual index 72c04d6e57..46a3e31b0f 100644 --- a/example/test_problem/Hydro/FermiBubble/manual +++ b/example/test_problem/Hydro/FermiBubble/manual @@ -1,3 +1,5 @@ +# Simulation +#---------------------------------------------------------------------------------------------------- # 1. Generate makefile (double precision) python3 configure.py --flu_scheme=MHM_RP --gravity=true --pot_scheme=SOR --store_pot_ghost=true --unsplit_gravity=false --slope=PLM --flux=HLLC --srhd=true --cosmic_ray=true --double=true --hdf5=true --nlevel=14 --fftw=FFTW2 --passive=3 --mpi=true --gpu=true @@ -19,30 +21,134 @@ cd ../bin cp -r ../example/test_problem/Hydro/FermiBubble ./ cd FermiBubble cp ../gamer_* ./ -sh download_ic.sh => TODO - +sh download_ic.sh # 6. Run the simulation (stage 1) -1. Change the parameters to below as follows: +# 6-1. Change the parameters to below as follows: Input__Parameter: - END_T 3.14872516940871e+01 - OUTPUT_DT 2 - OPT__INIT 1 + END_T 3.14872516940871e+01 + OUTPUT_DT 2 + OPT__INIT 1 Input__TestProb: - Jet_Fire 3 + Jet_Fire 3 +# 6-2. Execute gamer mpirun -map-by ppr:2:socket:pe=8 --report-bindings ./gamer_double 1>>log 2>&1 # 7. Run the sumulation (stage 2) -1. Change the parameters to below as follows: +# 7-1. Change the parameters to below as follows: Input__Parameter: - END_T 3.8e3 - OUTPUT_DT 200 - OPT__INIT 2 + END_T 3.8e3 + OUTPUT_DT 200 + OPT__INIT 2 Input__TestProb: - Jet_Fire 0 + Jet_Fire 0 +# 7-2. Link the last file from stage 1 ln -fs Data_000016 RESTART + +# 7-3. Execute gamer mpirun -map-by ppr:2:socket:pe=8 --report-bindings ./gamer_single 1>>log 2>&1 + + + +# Analysis +#---------------------------------------------------------------------------------------------------- +## Slice plot +python plot_slice.py -s 0 -e 35 + + +## Profile plot along z axis of the lower jet +python plot_profile.py -s 0 -e 35 + + +## Generate the fixed resolution data (Data_000035) +python AMR2FRB.py + + +## Generate x-ray perspective projection map (Data_000035) +# 1. If you do not have FRB_Data_000035.h5, please execute the following command +python AMR2FRB.py + +# 2. Compile the projection tool +ln -s ../../tool/analysis/PerspectiveProjection +cd PerspectiveProjection +make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DXRAY_EROSITA +cd ../ +cp PerspectiveProjection/bin/Project ./ + +# 3. Execute the projection tool +./Project FRB_Data_000035.h5 + +# 4. Plot the map +python plot_map.py -t x_ray + + +## Generate x-ray profile (Data_000035) +# 1. If you do not have FRB_Data_000035.h5, please execute the following command +python AMR2FRB.py + +# 2. Plot the x-ray profile +python plot_xray_profile.py + +## Generate gamma ray perspective projection map (Data_000035) +# 1. If you do not have FRB_Data_000035.h5, please execute the following command +python AMR2FRB.py + +# 2. Compile the projection tool +ln -s ../../tool/analysis/PerspectiveProjection +cd PerspectiveProjection +make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DLEPTONIC_GAMMARAY +cd ../ +cp PerspectiveProjection/bin/Project ./ + +# 3. Execute the projection tool +./Project FRB_Data_000035.h5 100e9 1e6 2.4 robitaille_DL07_PAHISMMix.dat +# NOTE : arg1: name of fixed resolution data in Step1 +# arg2: observed photon energy (eV) +# arg3: the cut-off Lorentz factor of CR +# arg4: spectral index of CR +# arg5: the path of ISRF data + +# 4. Plot the map +python plot_map.py -t gamma_ray + + +## Generate spectrum +# 1. If you do not have FRB_Data_000035.h5, please execute the following command +python AMR2FRB.py + +# 2. Compile the projection tool +# 2.1 synchrotron emissivities +ln -s ../../tool/analysis/PerspectiveProjection +cd PerspectiveProjection +make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DSYNCHROTRON +cd ../ +cp PerspectiveProjection/bin/Project synchrotron_spectrum/ + +# 2.2 gamma ray emissivities +ln -s ../../tool/analysis/PerspectiveProjection +cd PerspectiveProjection +make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DLEPTONIC_GAMMARAY +cd ../ +cp PerspectiveProjection/bin/Project gamma_ray_spectrum/ + +# 3. Calculate spectrums +# 3-1. synchrotron emissivities +cd synchrotron_spectrum +ln -s ../FRB_Data_000035.h5 +ln -s ../robitaille_DL07_PAHISMMix.dat +sh get_spectrum.sh +cd ../ + +# 3-2. gamma ray emissivities +cd gamma_ray_spectrum +ln -s ../FRB_Data_000035.h5 +ln -s ../robitaille_DL07_PAHISMMix.dat +sh get_spectrum.sh +cd ../ + +# 4. Plot the spectrum +python plot_spectrum.py From 3cb485ed133a36f838cfc0facc008133e17f8587 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Wed, 21 Aug 2024 15:05:09 +0800 Subject: [PATCH 56/73] Orgnize files --- example/test_problem/Hydro/FermiBubble/manual | 9 +++++---- .../Hydro/FermiBubble/{ => plot_scripts}/AMR2FR.py | 2 +- .../Hydro/FermiBubble/{ => plot_scripts}/WMAPData-1 | 0 .../Hydro/FermiBubble/{ => plot_scripts}/WMAPData-2 | 0 .../FermiBubble/{ => plot_scripts}/cubehelix.png | Bin .../FermiBubble/{ => plot_scripts}/energyBinsTable | 0 .../gamma_ray_spectrum/energyBinsTable | 0 .../gamma_ray_spectrum/get_spectrum.sh | 0 .../{ => plot_scripts}/observedEnergySpectrum-Lower | 0 .../{ => plot_scripts}/observedEnergySpectrum-Upper | 0 .../observed_data/xray_profile/m40.dat | 0 .../observed_data/xray_profile/m50.dat | 0 .../observed_data/xray_profile/m60.dat | 0 .../observed_data/xray_profile/p40.dat | 0 .../observed_data/xray_profile/p50.dat | 0 .../observed_data/xray_profile/p60.dat | 0 .../FermiBubble/{ => plot_scripts}/plot_map.py | 4 ++-- .../FermiBubble/{ => plot_scripts}/plot_profile.py | 2 +- .../FermiBubble/{ => plot_scripts}/plot_slice.py | 2 +- .../FermiBubble/{ => plot_scripts}/plot_spectrum.py | 0 .../{ => plot_scripts}/plot_xray_profile.py | 2 +- .../synchrotron_spectrum/energyBinsTable | 0 .../synchrotron_spectrum/get_spectrum.sh | 0 23 files changed, 11 insertions(+), 10 deletions(-) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/AMR2FR.py (99%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/WMAPData-1 (100%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/WMAPData-2 (100%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/cubehelix.png (100%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/energyBinsTable (100%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/gamma_ray_spectrum/energyBinsTable (100%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/gamma_ray_spectrum/get_spectrum.sh (100%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/observedEnergySpectrum-Lower (100%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/observedEnergySpectrum-Upper (100%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/observed_data/xray_profile/m40.dat (100%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/observed_data/xray_profile/m50.dat (100%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/observed_data/xray_profile/m60.dat (100%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/observed_data/xray_profile/p40.dat (100%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/observed_data/xray_profile/p50.dat (100%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/observed_data/xray_profile/p60.dat (100%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/plot_map.py (96%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/plot_profile.py (99%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/plot_slice.py (99%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/plot_spectrum.py (100%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/plot_xray_profile.py (99%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/synchrotron_spectrum/energyBinsTable (100%) rename example/test_problem/Hydro/FermiBubble/{ => plot_scripts}/synchrotron_spectrum/get_spectrum.sh (100%) diff --git a/example/test_problem/Hydro/FermiBubble/manual b/example/test_problem/Hydro/FermiBubble/manual index 46a3e31b0f..2889f20c20 100644 --- a/example/test_problem/Hydro/FermiBubble/manual +++ b/example/test_problem/Hydro/FermiBubble/manual @@ -56,6 +56,11 @@ mpirun -map-by ppr:2:socket:pe=8 --report-bindings ./gamer_single 1>>log 2>&1 # Analysis #---------------------------------------------------------------------------------------------------- +# Please execute the following commands before analysis +cd plot_scripts +mv ../robitaille_DL07_PAHISMMix.dat ./ +ln -s ../../../tool/analysis/PerspectiveProjection + ## Slice plot python plot_slice.py -s 0 -e 35 @@ -73,7 +78,6 @@ python AMR2FRB.py python AMR2FRB.py # 2. Compile the projection tool -ln -s ../../tool/analysis/PerspectiveProjection cd PerspectiveProjection make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DXRAY_EROSITA cd ../ @@ -98,7 +102,6 @@ python plot_xray_profile.py python AMR2FRB.py # 2. Compile the projection tool -ln -s ../../tool/analysis/PerspectiveProjection cd PerspectiveProjection make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DLEPTONIC_GAMMARAY cd ../ @@ -122,14 +125,12 @@ python AMR2FRB.py # 2. Compile the projection tool # 2.1 synchrotron emissivities -ln -s ../../tool/analysis/PerspectiveProjection cd PerspectiveProjection make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DSYNCHROTRON cd ../ cp PerspectiveProjection/bin/Project synchrotron_spectrum/ # 2.2 gamma ray emissivities -ln -s ../../tool/analysis/PerspectiveProjection cd PerspectiveProjection make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DLEPTONIC_GAMMARAY cd ../ diff --git a/example/test_problem/Hydro/FermiBubble/AMR2FR.py b/example/test_problem/Hydro/FermiBubble/plot_scripts/AMR2FR.py similarity index 99% rename from example/test_problem/Hydro/FermiBubble/AMR2FR.py rename to example/test_problem/Hydro/FermiBubble/plot_scripts/AMR2FR.py index 78e6372a07..00d7d3459a 100644 --- a/example/test_problem/Hydro/FermiBubble/AMR2FR.py +++ b/example/test_problem/Hydro/FermiBubble/plot_scripts/AMR2FR.py @@ -35,7 +35,7 @@ def pressure_sr( field, data ): # Main #==================================================================================================== Data = 'Data_000035' -Path = './'+Data +Path = '../'+Data level = 4 Field = [ "Dens", "Temp", "Pres", "CRay", "Passive_0001" ] diff --git a/example/test_problem/Hydro/FermiBubble/WMAPData-1 b/example/test_problem/Hydro/FermiBubble/plot_scripts/WMAPData-1 similarity index 100% rename from example/test_problem/Hydro/FermiBubble/WMAPData-1 rename to example/test_problem/Hydro/FermiBubble/plot_scripts/WMAPData-1 diff --git a/example/test_problem/Hydro/FermiBubble/WMAPData-2 b/example/test_problem/Hydro/FermiBubble/plot_scripts/WMAPData-2 similarity index 100% rename from example/test_problem/Hydro/FermiBubble/WMAPData-2 rename to example/test_problem/Hydro/FermiBubble/plot_scripts/WMAPData-2 diff --git a/example/test_problem/Hydro/FermiBubble/cubehelix.png b/example/test_problem/Hydro/FermiBubble/plot_scripts/cubehelix.png similarity index 100% rename from example/test_problem/Hydro/FermiBubble/cubehelix.png rename to example/test_problem/Hydro/FermiBubble/plot_scripts/cubehelix.png diff --git a/example/test_problem/Hydro/FermiBubble/energyBinsTable b/example/test_problem/Hydro/FermiBubble/plot_scripts/energyBinsTable similarity index 100% rename from example/test_problem/Hydro/FermiBubble/energyBinsTable rename to example/test_problem/Hydro/FermiBubble/plot_scripts/energyBinsTable diff --git a/example/test_problem/Hydro/FermiBubble/gamma_ray_spectrum/energyBinsTable b/example/test_problem/Hydro/FermiBubble/plot_scripts/gamma_ray_spectrum/energyBinsTable similarity index 100% rename from example/test_problem/Hydro/FermiBubble/gamma_ray_spectrum/energyBinsTable rename to example/test_problem/Hydro/FermiBubble/plot_scripts/gamma_ray_spectrum/energyBinsTable diff --git a/example/test_problem/Hydro/FermiBubble/gamma_ray_spectrum/get_spectrum.sh b/example/test_problem/Hydro/FermiBubble/plot_scripts/gamma_ray_spectrum/get_spectrum.sh similarity index 100% rename from example/test_problem/Hydro/FermiBubble/gamma_ray_spectrum/get_spectrum.sh rename to example/test_problem/Hydro/FermiBubble/plot_scripts/gamma_ray_spectrum/get_spectrum.sh diff --git a/example/test_problem/Hydro/FermiBubble/observedEnergySpectrum-Lower b/example/test_problem/Hydro/FermiBubble/plot_scripts/observedEnergySpectrum-Lower similarity index 100% rename from example/test_problem/Hydro/FermiBubble/observedEnergySpectrum-Lower rename to example/test_problem/Hydro/FermiBubble/plot_scripts/observedEnergySpectrum-Lower diff --git a/example/test_problem/Hydro/FermiBubble/observedEnergySpectrum-Upper b/example/test_problem/Hydro/FermiBubble/plot_scripts/observedEnergySpectrum-Upper similarity index 100% rename from example/test_problem/Hydro/FermiBubble/observedEnergySpectrum-Upper rename to example/test_problem/Hydro/FermiBubble/plot_scripts/observedEnergySpectrum-Upper diff --git a/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m40.dat b/example/test_problem/Hydro/FermiBubble/plot_scripts/observed_data/xray_profile/m40.dat similarity index 100% rename from example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m40.dat rename to example/test_problem/Hydro/FermiBubble/plot_scripts/observed_data/xray_profile/m40.dat diff --git a/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m50.dat b/example/test_problem/Hydro/FermiBubble/plot_scripts/observed_data/xray_profile/m50.dat similarity index 100% rename from example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m50.dat rename to example/test_problem/Hydro/FermiBubble/plot_scripts/observed_data/xray_profile/m50.dat diff --git a/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m60.dat b/example/test_problem/Hydro/FermiBubble/plot_scripts/observed_data/xray_profile/m60.dat similarity index 100% rename from example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/m60.dat rename to example/test_problem/Hydro/FermiBubble/plot_scripts/observed_data/xray_profile/m60.dat diff --git a/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p40.dat b/example/test_problem/Hydro/FermiBubble/plot_scripts/observed_data/xray_profile/p40.dat similarity index 100% rename from example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p40.dat rename to example/test_problem/Hydro/FermiBubble/plot_scripts/observed_data/xray_profile/p40.dat diff --git a/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p50.dat b/example/test_problem/Hydro/FermiBubble/plot_scripts/observed_data/xray_profile/p50.dat similarity index 100% rename from example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p50.dat rename to example/test_problem/Hydro/FermiBubble/plot_scripts/observed_data/xray_profile/p50.dat diff --git a/example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p60.dat b/example/test_problem/Hydro/FermiBubble/plot_scripts/observed_data/xray_profile/p60.dat similarity index 100% rename from example/test_problem/Hydro/FermiBubble/observed_data/xray_profile/p60.dat rename to example/test_problem/Hydro/FermiBubble/plot_scripts/observed_data/xray_profile/p60.dat diff --git a/example/test_problem/Hydro/FermiBubble/plot_map.py b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_map.py similarity index 96% rename from example/test_problem/Hydro/FermiBubble/plot_map.py rename to example/test_problem/Hydro/FermiBubble/plot_scripts/plot_map.py index 12856be3ca..625b505dfb 100644 --- a/example/test_problem/Hydro/FermiBubble/plot_map.py +++ b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_map.py @@ -47,7 +47,7 @@ plot_args["scale_cr_engy"] = 1 plot_args["offset"] = 4.5 plot_args["lower_limit"] = 0.0 - plot_args["filename"] = "./my_figure/fig__x-ray-map-paper/Projected_FRB_Data_000035_XRay.h5" + plot_args["filename"] = "./Projected_FRB_Data_000035_XRay.h5" plot_args["b_max_idx"] = 3 plot_args["b_min_idx"] = 4 plot_args["l_max_idx"] = 5 @@ -68,7 +68,7 @@ plot_args["scale_cr_engy"] = 250 plot_args["offset"] = 0.0 plot_args["lower_limit"] = 1.e-13 - plot_args["filename"] = "./my_figure/fig__gamma-ray-map-paper/Projected_FRB_Data_000035_100e9_1e6_2.4.h5" + plot_args["filename"] = "./Projected_FRB_Data_000035_100e9_1e6_2.4.h5" plot_args["b_max_idx"] = 7 plot_args["b_min_idx"] = 8 plot_args["l_max_idx"] = 9 diff --git a/example/test_problem/Hydro/FermiBubble/plot_profile.py b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_profile.py similarity index 99% rename from example/test_problem/Hydro/FermiBubble/plot_profile.py rename to example/test_problem/Hydro/FermiBubble/plot_scripts/plot_profile.py index 136d92296d..bfa51715bd 100644 --- a/example/test_problem/Hydro/FermiBubble/plot_profile.py +++ b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_profile.py @@ -87,7 +87,7 @@ def get_line_data( ds, start, end, plot_var ): parser.add_argument( '-d', action='store', required=False, type=int, dest='didx', help='delta data index [%(default)d]', default=1 ) parser.add_argument( '-i', action='store', required=False, type=str, dest='prefix', - help='data path prefix [%(default)s]', default='./' ) + help='data path prefix [%(default)s]', default='../' ) args=parser.parse_args() diff --git a/example/test_problem/Hydro/FermiBubble/plot_slice.py b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_slice.py similarity index 99% rename from example/test_problem/Hydro/FermiBubble/plot_slice.py rename to example/test_problem/Hydro/FermiBubble/plot_scripts/plot_slice.py index f58b523f92..3a8dce07bb 100644 --- a/example/test_problem/Hydro/FermiBubble/plot_slice.py +++ b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_slice.py @@ -99,7 +99,7 @@ def get_slice_frb_data( ds, slice_axis, plot_var, center, width, height ): parser.add_argument( '-d', action='store', required=False, type=int, dest='didx', help='delta data index [%(default)d]', default=1 ) parser.add_argument( '-i', action='store', required=False, type=str, dest='prefix', - help='data path prefix [%(default)s]', default='./' ) + help='data path prefix [%(default)s]', default='../' ) args=parser.parse_args() diff --git a/example/test_problem/Hydro/FermiBubble/plot_spectrum.py b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_spectrum.py similarity index 100% rename from example/test_problem/Hydro/FermiBubble/plot_spectrum.py rename to example/test_problem/Hydro/FermiBubble/plot_scripts/plot_spectrum.py diff --git a/example/test_problem/Hydro/FermiBubble/plot_xray_profile.py b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_xray_profile.py similarity index 99% rename from example/test_problem/Hydro/FermiBubble/plot_xray_profile.py rename to example/test_problem/Hydro/FermiBubble/plot_scripts/plot_xray_profile.py index 6b2c31b700..49ceec859c 100644 --- a/example/test_problem/Hydro/FermiBubble/plot_xray_profile.py +++ b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_xray_profile.py @@ -20,7 +20,7 @@ #==================================================================================================== # Main #==================================================================================================== -# hf = h5py.File( "./Projected_FRB_Data_000035_XRay.h5", 'r' ) +hf = h5py.File( "./Projected_FRB_Data_000035_XRay.h5", 'r' ) group1 = hf.get('Map') group2 = hf.get('Info') diff --git a/example/test_problem/Hydro/FermiBubble/synchrotron_spectrum/energyBinsTable b/example/test_problem/Hydro/FermiBubble/plot_scripts/synchrotron_spectrum/energyBinsTable similarity index 100% rename from example/test_problem/Hydro/FermiBubble/synchrotron_spectrum/energyBinsTable rename to example/test_problem/Hydro/FermiBubble/plot_scripts/synchrotron_spectrum/energyBinsTable diff --git a/example/test_problem/Hydro/FermiBubble/synchrotron_spectrum/get_spectrum.sh b/example/test_problem/Hydro/FermiBubble/plot_scripts/synchrotron_spectrum/get_spectrum.sh similarity index 100% rename from example/test_problem/Hydro/FermiBubble/synchrotron_spectrum/get_spectrum.sh rename to example/test_problem/Hydro/FermiBubble/plot_scripts/synchrotron_spectrum/get_spectrum.sh From cc50da4e7b5213db67a7b798981c81f98d915433 Mon Sep 17 00:00:00 2001 From: Chun-Yen Chen <70311975+ChunYen-Chen@users.noreply.github.com> Date: Wed, 21 Aug 2024 15:54:58 +0800 Subject: [PATCH 57/73] Fix typo --- example/test_problem/Hydro/FermiBubble/manual | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/example/test_problem/Hydro/FermiBubble/manual b/example/test_problem/Hydro/FermiBubble/manual index 2889f20c20..7746ad8fab 100644 --- a/example/test_problem/Hydro/FermiBubble/manual +++ b/example/test_problem/Hydro/FermiBubble/manual @@ -36,7 +36,7 @@ sh download_ic.sh # 6-2. Execute gamer mpirun -map-by ppr:2:socket:pe=8 --report-bindings ./gamer_double 1>>log 2>&1 -# 7. Run the sumulation (stage 2) +# 7. Run the simulation (stage 2) # 7-1. Change the parameters to below as follows: Input__Parameter: END_T 3.8e3 @@ -56,11 +56,12 @@ mpirun -map-by ppr:2:socket:pe=8 --report-bindings ./gamer_single 1>>log 2>&1 # Analysis #---------------------------------------------------------------------------------------------------- -# Please execute the following commands before analysis +# Please execute the following commands before the analysis cd plot_scripts mv ../robitaille_DL07_PAHISMMix.dat ./ ln -s ../../../tool/analysis/PerspectiveProjection + ## Slice plot python plot_slice.py -s 0 -e 35 @@ -70,12 +71,12 @@ python plot_profile.py -s 0 -e 35 ## Generate the fixed resolution data (Data_000035) -python AMR2FRB.py +python AMR2FR.py ## Generate x-ray perspective projection map (Data_000035) # 1. If you do not have FRB_Data_000035.h5, please execute the following command -python AMR2FRB.py +python AMR2FR.py # 2. Compile the projection tool cd PerspectiveProjection @@ -92,7 +93,7 @@ python plot_map.py -t x_ray ## Generate x-ray profile (Data_000035) # 1. If you do not have FRB_Data_000035.h5, please execute the following command -python AMR2FRB.py +python AMR2FR.py # 2. Plot the x-ray profile python plot_xray_profile.py @@ -121,7 +122,7 @@ python plot_map.py -t gamma_ray ## Generate spectrum # 1. If you do not have FRB_Data_000035.h5, please execute the following command -python AMR2FRB.py +python AMR2FR.py # 2. Compile the projection tool # 2.1 synchrotron emissivities @@ -130,7 +131,7 @@ make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DSYNCHROTRON cd ../ cp PerspectiveProjection/bin/Project synchrotron_spectrum/ -# 2.2 gamma ray emissivities +# 2.2 gamma-ray emissivities cd PerspectiveProjection make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DLEPTONIC_GAMMARAY cd ../ From da4f526b4aec4bf1ffaaab92a145e3c5e38ce1fc Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 22 Aug 2024 11:25:22 +0800 Subject: [PATCH 58/73] Use raw string --- .../Hydro/FermiBubble/plot_scripts/plot_map.py | 6 +++--- .../FermiBubble/plot_scripts/plot_profile.py | 6 +++--- .../FermiBubble/plot_scripts/plot_slice.py | 8 ++++---- .../FermiBubble/plot_scripts/plot_spectrum.py | 2 +- .../plot_scripts/plot_xray_profile.py | 17 ++++++++--------- 5 files changed, 19 insertions(+), 20 deletions(-) diff --git a/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_map.py b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_map.py index 625b505dfb..1d4d9411f8 100644 --- a/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_map.py +++ b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_map.py @@ -58,7 +58,7 @@ plot_args["cmap"] = ListedColormap( img ) plot_args["log_scale"] = True plot_args["savename"] = "XRay_map_0.8keV.png" - plot_args["title"] = "Count rate (photons s$^{-1}$deg$^{-2}$)" + plot_args["title"] = r"Count rate (photons s$^{-1}$deg$^{-2}$)" plot_args["cbar_max"] = None plot_args["cbar_min"] = None plot_args["xtick_label_dark_range"] = [3, 11] @@ -77,7 +77,7 @@ plot_args["cmap"] = mpl.colormaps["nipy_spectral"] plot_args["log_scale"] = True plot_args["savename"] = "GammaRay_100e9_1e6.png" - plot_args["title"] = "Photon flux (GeV$^{-1}$cm$^{-2}$s$^{-1}$sr$^{-1}$)" + plot_args["title"] = r"Photon flux (GeV$^{-1}$cm$^{-2}$s$^{-1}$sr$^{-1}$)" plot_args["cbar_max"] = 1.e-11 plot_args["cbar_min"] = 1.e-9 plot_args["xtick_label_dark_range"] = [5, 9] @@ -123,7 +123,7 @@ plot_x_tick = np.array( [ -150, -120, -90, -60, -45, -30, -15, 0, 15, 30, 45, 60, 90, 120, 150 ] ) plot_x_tick_label = np.array( [ "10h", "8h", "6h", "4h", "3h", "2h", "1h", "0h", "23h", "22h", "21h", "20h", "18h", "16h", "14h" ] ) plot_y_tick = np.array( [ -70+10*i for i in range(15) ] ) -plot_y_tick_label = np.array( [ "%d$^{\circ}$"%i for i in plot_y_tick ] ) +plot_y_tick_label = np.array( [ r"%d$^{\circ}$"%i for i in plot_y_tick ] ) fig = plt.figure( figsize=(fig_width, fig_height) ) diff --git a/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_profile.py b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_profile.py index bfa51715bd..a8306fdf4b 100644 --- a/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_profile.py +++ b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_profile.py @@ -139,7 +139,7 @@ def get_line_data( ds, start, end, plot_var ): ax[v, 0].tick_params( which="both", direction="in", top=True, right=True ) - ax[v, 0].set( ylabel="$%s$ (%s)"%(plot_title, plot_var_unit) ) + ax[v, 0].set( ylabel=r"$%s$ (%s)"%(plot_title, plot_var_unit) ) if plot_log_scale: ax[v, 0].set( yscale="log" ) # zoom-in @@ -156,8 +156,8 @@ def get_line_data( ds, start, end, plot_var ): if plot_log_scale: ax[v, 1].set( yscale="log" ) - ax[N_vars-1, 0].set( xlabel="$%s$ (%s)"%("r", plot_axis_unit) ) - ax[N_vars-1, 1].set( xlabel="$%s$ (%s)"%("r", plot_axis_unit) ) + ax[N_vars-1, 0].set( xlabel=r"$%s$ (%s)"%("r", plot_axis_unit) ) + ax[N_vars-1, 1].set( xlabel=r"$%s$ (%s)"%("r", plot_axis_unit) ) plt.suptitle( "%.2f (%s)"%(plot_time, plot_time_unit) ) plt.tight_layout() plt.savefig( plot_savename, dpi=fig_dpi ) diff --git a/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_slice.py b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_slice.py index 3a8dce07bb..a86a586b32 100644 --- a/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_slice.py +++ b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_slice.py @@ -162,11 +162,11 @@ def get_slice_frb_data( ds, slice_axis, plot_var, center, width, height ): ax[v].tick_params( which="both", direction="in", color="w" ) cbar.ax.tick_params( which="both", direction="in" ) - ax[v].set( title="$%s$ (%s)"%(plot_title, plot_var_unit) ) - ax[v].set( xlabel="$%s$ (%s)"%(AX_LABEL[ax_1_idx], plot_axis_unit) ) + ax[v].set( title=r"$%s$ (%s)"%(plot_title, plot_var_unit) ) + ax[v].set( xlabel=r"$%s$ (%s)"%(AX_LABEL[ax_1_idx], plot_axis_unit) ) - ax[0].set( ylabel="$%s$ (%s)"%(AX_LABEL[ax_2_idx], plot_axis_unit) ) - plt.suptitle( "%.2f (%s)"%(plot_time, plot_time_unit) ) + ax[0].set( ylabel=r"$%s$ (%s)"%(AX_LABEL[ax_2_idx], plot_axis_unit) ) + plt.suptitle( r"%.2f (%s)"%(plot_time, plot_time_unit) ) plt.tight_layout() plt.savefig( plot_savename, dpi=fig_dpi ) plt.close() diff --git a/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_spectrum.py b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_spectrum.py index 3cf9a717cb..1ea3ad76f7 100644 --- a/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_spectrum.py +++ b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_spectrum.py @@ -135,7 +135,7 @@ def CRIndex2ScaleCREngy( CRIndex ): for i in range(3): ax[i][1].set_ylim( [2e-8, 2.5e-6] ) ax[i][1].set_xlim( [0.1, 700.0] ) - ax[i][1].set_ylabel( "$E^{2}dN/dE$\n(GeV cm$^{-2}$s$^{-1}$sr$^{-1}$)", fontsize=LabelSize ) + ax[i][1].set_ylabel( r"$E^{2}dN/dE$\n(GeV cm$^{-2}$s$^{-1}$sr$^{-1}$)", fontsize=LabelSize ) ax[2][1].set_xlabel( "Photon energy (GeV)", fontsize=LabelSize ) diff --git a/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_xray_profile.py b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_xray_profile.py index 49ceec859c..370d04dd5f 100644 --- a/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_xray_profile.py +++ b/example/test_problem/Hydro/FermiBubble/plot_scripts/plot_xray_profile.py @@ -33,13 +33,13 @@ l_max = np.array(group2.get('Keys')).tolist()[5] l_min = np.array(group2.get('Keys')).tolist()[6] -print("UpperBound_bb = %e" % UpperBound_bb ) -print("UpperBound_ll = %e" % UpperBound_ll ) -print("numAzimuthalAngle = %e" % numAzimuthalAngle) -print("b_max = %e" % b_max ) -print("b_min = %e" % b_min ) -print("l_max = %e" % l_max ) -print("l_min = %e" % l_min ) +print("UpperBound_bb = % e" % UpperBound_bb ) +print("UpperBound_ll = % e" % UpperBound_ll ) +print("numAzimuthalAngle = % e" % numAzimuthalAngle) +print("b_max = % e" % b_max ) +print("b_min = % e" % b_min ) +print("l_max = % e" % l_max ) +print("l_min = % e" % l_min ) observ_p60 = np.loadtxt( './observed_data/xray_profile/p60.dat' , usecols=(0,1), unpack=True ) observ_p50 = np.loadtxt( './observed_data/xray_profile/p50.dat' , usecols=(0,1), unpack=True ) @@ -121,7 +121,7 @@ ax[i][j].tick_params( labelsize=fontSize ) ax[i][j].tick_params( bottom=True, top=True, left=True, right=True ) - ax[i][j].text( 0.78, 0.95, format(b[i*NumCol+j], '+d')+"$^{\circ}$", + ax[i][j].text( 0.78, 0.95, format(b[i*NumCol+j], '+d')+r"$^{\circ}$", horizontalalignment='left', verticalalignment='top', bbox=dict(facecolor='blue', alpha=0.2, boxstyle="round", edgecolor='none'), transform=ax[i][j].transAxes, fontsize=fontSize ) @@ -136,5 +136,4 @@ if i == 1: ax[i][j].set_ylim( 3, 11 ) plt.savefig( "XRay_profile_0.8keV_%03d.png"%angleIdx, bbox_inches='tight', format="png" ) - plt.show() plt.close() From d9f6895eb1aa5b26addceaffb0e61e6ca0f129f1 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 22 Aug 2024 11:26:30 +0800 Subject: [PATCH 59/73] Add cooling function table --- .../FermiBubble/plot_scripts/cf_0.8keV.dat | 10000 ++++++++++++++++ .../FermiBubble/plot_scripts/cf_1.5keV.dat | 10000 ++++++++++++++++ 2 files changed, 20000 insertions(+) create mode 100644 example/test_problem/Hydro/FermiBubble/plot_scripts/cf_0.8keV.dat create mode 100644 example/test_problem/Hydro/FermiBubble/plot_scripts/cf_1.5keV.dat diff --git a/example/test_problem/Hydro/FermiBubble/plot_scripts/cf_0.8keV.dat b/example/test_problem/Hydro/FermiBubble/plot_scripts/cf_0.8keV.dat new file mode 100644 index 0000000000..6aab1961dd --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/plot_scripts/cf_0.8keV.dat @@ -0,0 +1,10000 @@ + 200000.0 1.8813303E-36 + 300000.0 6.3299291E-33 + 400000.0 7.4221247E-30 + 500000.0 1.3097460E-28 + 600000.0 7.3437235E-28 + 700000.0 4.8599802E-27 + 800000.0 1.3543306E-26 + 900000.0 3.6068073E-26 + 1000000. 6.6707890E-26 + 1100000. 1.4269626E-25 + 1200000. 2.1868457E-25 + 1300000. 3.7060360E-25 + 1400000. 5.9028642E-25 + 1500000. 8.0996910E-25 + 1600000. 1.1050755E-24 + 1700000. 1.6904729E-24 + 1800000. 2.2758702E-24 + 1900000. 2.8612687E-24 + 2000000. 3.4466658E-24 + 2100000. 4.3588647E-24 + 2200000. 5.2713626E-24 + 2300000. 6.1838593E-24 + 2400000. 7.0963560E-24 + 2500000. 8.0088543E-24 + 2600000. 8.7414229E-24 + 2700000. 9.3858663E-24 + 2800000. 1.0030311E-23 + 2900000. 1.0674755E-23 + 3000000. 1.1319199E-23 + 3100000. 1.1963644E-23 + 3200000. 1.2608089E-23 + 3300000. 1.2988413E-23 + 3400000. 1.3347064E-23 + 3500000. 1.3705715E-23 + 3600000. 1.4064366E-23 + 3700000. 1.4423017E-23 + 3800000. 1.4781669E-23 + 3900000. 1.5140320E-23 + 4000000. 1.5498971E-23 + 4100000. 1.5803509E-23 + 4200000. 1.6019686E-23 + 4300000. 1.6235862E-23 + 4400000. 1.6452038E-23 + 4500000. 1.6668214E-23 + 4600000. 1.6884389E-23 + 4700000. 1.7100565E-23 + 4800000. 1.7316742E-23 + 4900000. 1.7532918E-23 + 5000000. 1.7749094E-23 + 5100000. 1.7965269E-23 + 5200000. 1.8094388E-23 + 5300000. 1.8154935E-23 + 5400000. 1.8215480E-23 + 5500000. 1.8276027E-23 + 5600000. 1.8336572E-23 + 5700000. 1.8397117E-23 + 5800000. 1.8457663E-23 + 5900000. 1.8518208E-23 + 6000000. 1.8578755E-23 + 6100000. 1.8639300E-23 + 6200000. 1.8699845E-23 + 6300000. 1.8760392E-23 + 6400000. 1.8820937E-23 + 6500000. 1.8881484E-23 + 6600000. 1.8770462E-23 + 6700000. 1.8630724E-23 + 6800000. 1.8490986E-23 + 6900000. 1.8351249E-23 + 7000000. 1.8211510E-23 + 7100000. 1.8071773E-23 + 7200000. 1.7932036E-23 + 7300000. 1.7792299E-23 + 7400000. 1.7652560E-23 + 7500000. 1.7512821E-23 + 7600000. 1.7373084E-23 + 7700000. 1.7233346E-23 + 7800000. 1.7093609E-23 + 7900000. 1.6953870E-23 + 8000000. 1.6814133E-23 + 8100000. 1.6674396E-23 + 8200000. 1.6534657E-23 + 8300000. 1.6341549E-23 + 8400000. 1.6095858E-23 + 8500000. 1.5850167E-23 + 8600000. 1.5604475E-23 + 8700000. 1.5358783E-23 + 8800000. 1.5113092E-23 + 8900000. 1.4867401E-23 + 9000000. 1.4621709E-23 + 9100000. 1.4376018E-23 + 9200000. 1.4130327E-23 + 9300000. 1.3884637E-23 + 9400000. 1.3638944E-23 + 9500000. 1.3393254E-23 + 9600000. 1.3147563E-23 + 9700000. 1.2901871E-23 + 9800000. 1.2656178E-23 + 9900000. 1.2410488E-23 + 1.0000000E+07 1.2164797E-23 + 1.0100000E+07 1.1919105E-23 + 1.0200000E+07 1.1673414E-23 + 1.0300000E+07 1.1427723E-23 + 1.0400000E+07 1.1182032E-23 + 1.0500000E+07 1.0966299E-23 + 1.0600000E+07 1.0777309E-23 + 1.0700000E+07 1.0588319E-23 + 1.0800000E+07 1.0399330E-23 + 1.0900000E+07 1.0210339E-23 + 1.1000000E+07 1.0021350E-23 + 1.1100000E+07 9.8323600E-24 + 1.1200000E+07 9.6433702E-24 + 1.1300000E+07 9.4543812E-24 + 1.1400000E+07 9.2653914E-24 + 1.1500000E+07 9.0764017E-24 + 1.1600000E+07 8.8874127E-24 + 1.1700000E+07 8.6984213E-24 + 1.1800000E+07 8.5094331E-24 + 1.1900000E+07 8.3204426E-24 + 1.2000000E+07 8.1314544E-24 + 1.2100000E+07 7.9424638E-24 + 1.2200000E+07 7.7534756E-24 + 1.2300000E+07 7.5644850E-24 + 1.2400000E+07 7.3754961E-24 + 1.2500000E+07 7.1865055E-24 + 1.2600000E+07 6.9975173E-24 + 1.2700000E+07 6.8085259E-24 + 1.2800000E+07 6.6195354E-24 + 1.2900000E+07 6.4305472E-24 + 1.3000000E+07 6.2415562E-24 + 1.3100000E+07 6.0525684E-24 + 1.3200000E+07 5.8635775E-24 + 1.3300000E+07 5.7567977E-24 + 1.3400000E+07 5.6853884E-24 + 1.3500000E+07 5.6139803E-24 + 1.3600000E+07 5.5425710E-24 + 1.3700000E+07 5.4711630E-24 + 1.3800000E+07 5.3997537E-24 + 1.3900000E+07 5.3283444E-24 + 1.4000000E+07 5.2569363E-24 + 1.4100000E+07 5.1855271E-24 + 1.4200000E+07 5.1141190E-24 + 1.4300000E+07 5.0427097E-24 + 1.4400000E+07 4.9713012E-24 + 1.4500000E+07 4.8998924E-24 + 1.4600000E+07 4.8284843E-24 + 1.4700000E+07 4.7570750E-24 + 1.4800000E+07 4.6856665E-24 + 1.4900000E+07 4.6142573E-24 + 1.5000000E+07 4.5428484E-24 + 1.5100000E+07 4.4714399E-24 + 1.5200000E+07 4.4000310E-24 + 1.5300000E+07 4.3286226E-24 + 1.5400000E+07 4.2572133E-24 + 1.5500000E+07 4.1858052E-24 + 1.5600000E+07 4.1143963E-24 + 1.5700000E+07 4.0429879E-24 + 1.5800000E+07 3.9715786E-24 + 1.5900000E+07 3.9001705E-24 + 1.6000000E+07 3.8287613E-24 + 1.6100000E+07 3.7573524E-24 + 1.6200000E+07 3.6859439E-24 + 1.6300000E+07 3.6145346E-24 + 1.6400000E+07 3.5431266E-24 + 1.6500000E+07 3.4717173E-24 + 1.6600000E+07 3.4003092E-24 + 1.6700000E+07 3.3288999E-24 + 1.6800000E+07 3.2827944E-24 + 1.6900000E+07 3.2667716E-24 + 1.7000000E+07 3.2507489E-24 + 1.7100000E+07 3.2347261E-24 + 1.7200000E+07 3.2187032E-24 + 1.7300000E+07 3.2026806E-24 + 1.7400000E+07 3.1866579E-24 + 1.7500000E+07 3.1706351E-24 + 1.7600000E+07 3.1546124E-24 + 1.7700000E+07 3.1385898E-24 + 1.7800000E+07 3.1225669E-24 + 1.7900000E+07 3.1065443E-24 + 1.8000000E+07 3.0905216E-24 + 1.8100000E+07 3.0744988E-24 + 1.8200000E+07 3.0584760E-24 + 1.8300000E+07 3.0424535E-24 + 1.8400000E+07 3.0264305E-24 + 1.8500000E+07 3.0104078E-24 + 1.8600000E+07 2.9943852E-24 + 1.8700000E+07 2.9783623E-24 + 1.8800000E+07 2.9623397E-24 + 1.8900000E+07 2.9463170E-24 + 1.9000000E+07 2.9302942E-24 + 1.9100000E+07 2.9142715E-24 + 1.9200000E+07 2.8982489E-24 + 1.9300000E+07 2.8822260E-24 + 1.9400000E+07 2.8662034E-24 + 1.9500000E+07 2.8501805E-24 + 1.9600000E+07 2.8341577E-24 + 1.9700000E+07 2.8181352E-24 + 1.9800000E+07 2.8021124E-24 + 1.9900000E+07 2.7860897E-24 + 2.0000000E+07 2.7700669E-24 + 2.0100000E+07 2.7540444E-24 + 2.0200000E+07 2.7380214E-24 + 2.0300000E+07 2.7219989E-24 + 2.0400000E+07 2.7059759E-24 + 2.0500000E+07 2.6899534E-24 + 2.0600000E+07 2.6739306E-24 + 2.0700000E+07 2.6579077E-24 + 2.0800000E+07 2.6418851E-24 + 2.0900000E+07 2.6258624E-24 + 2.1000000E+07 2.6098396E-24 + 2.1100000E+07 2.5938169E-24 + 2.1200000E+07 2.5777943E-24 + 2.1300000E+07 2.5717814E-24 + 2.1400000E+07 2.5678677E-24 + 2.1500000E+07 2.5639537E-24 + 2.1600000E+07 2.5600400E-24 + 2.1700000E+07 2.5561261E-24 + 2.1800000E+07 2.5522123E-24 + 2.1900000E+07 2.5482984E-24 + 2.2000000E+07 2.5443847E-24 + 2.2100000E+07 2.5404707E-24 + 2.2200000E+07 2.5365570E-24 + 2.2300000E+07 2.5326431E-24 + 2.2400000E+07 2.5287293E-24 + 2.2500000E+07 2.5248156E-24 + 2.2600000E+07 2.5209017E-24 + 2.2700000E+07 2.5169879E-24 + 2.2800000E+07 2.5130740E-24 + 2.2900000E+07 2.5091603E-24 + 2.3000000E+07 2.5052463E-24 + 2.3100000E+07 2.5013324E-24 + 2.3200000E+07 2.4974186E-24 + 2.3300000E+07 2.4935047E-24 + 2.3400000E+07 2.4895910E-24 + 2.3500000E+07 2.4856772E-24 + 2.3600000E+07 2.4817633E-24 + 2.3700000E+07 2.4778494E-24 + 2.3800000E+07 2.4739356E-24 + 2.3900000E+07 2.4700219E-24 + 2.4000000E+07 2.4661080E-24 + 2.4100000E+07 2.4621942E-24 + 2.4200000E+07 2.4582803E-24 + 2.4300000E+07 2.4543664E-24 + 2.4400000E+07 2.4504526E-24 + 2.4500000E+07 2.4465389E-24 + 2.4600000E+07 2.4426250E-24 + 2.4700000E+07 2.4387110E-24 + 2.4800000E+07 2.4347973E-24 + 2.4900000E+07 2.4308836E-24 + 2.5000000E+07 2.4269696E-24 + 2.5100000E+07 2.4230557E-24 + 2.5200000E+07 2.4191420E-24 + 2.5300000E+07 2.4152282E-24 + 2.5400000E+07 2.4113143E-24 + 2.5500000E+07 2.4074004E-24 + 2.5600000E+07 2.4034866E-24 + 2.5700000E+07 2.3995729E-24 + 2.5800000E+07 2.3956589E-24 + 2.5900000E+07 2.3917450E-24 + 2.6000000E+07 2.3878313E-24 + 2.6100000E+07 2.3839175E-24 + 2.6200000E+07 2.3800036E-24 + 2.6300000E+07 2.3760899E-24 + 2.6400000E+07 2.3721759E-24 + 2.6500000E+07 2.3682620E-24 + 2.6600000E+07 2.3643483E-24 + 2.6700000E+07 2.3604345E-24 + 2.6800000E+07 2.3565206E-24 + 2.6900000E+07 2.3533174E-24 + 2.7000000E+07 2.3517121E-24 + 2.7100000E+07 2.3501068E-24 + 2.7200000E+07 2.3485012E-24 + 2.7300000E+07 2.3468959E-24 + 2.7400000E+07 2.3452906E-24 + 2.7500000E+07 2.3436850E-24 + 2.7600000E+07 2.3420797E-24 + 2.7700000E+07 2.3404742E-24 + 2.7800000E+07 2.3388688E-24 + 2.7900000E+07 2.3372635E-24 + 2.8000000E+07 2.3356580E-24 + 2.8100000E+07 2.3340527E-24 + 2.8200000E+07 2.3324471E-24 + 2.8300000E+07 2.3308418E-24 + 2.8400000E+07 2.3292363E-24 + 2.8500000E+07 2.3276309E-24 + 2.8600000E+07 2.3260254E-24 + 2.8700000E+07 2.3244201E-24 + 2.8800000E+07 2.3228147E-24 + 2.8900000E+07 2.3212092E-24 + 2.9000000E+07 2.3196039E-24 + 2.9100000E+07 2.3179984E-24 + 2.9200000E+07 2.3163930E-24 + 2.9300000E+07 2.3147877E-24 + 2.9400000E+07 2.3131822E-24 + 2.9500000E+07 2.3115768E-24 + 2.9600000E+07 2.3099713E-24 + 2.9700000E+07 2.3083660E-24 + 2.9800000E+07 2.3067606E-24 + 2.9900000E+07 2.3051551E-24 + 3.0000000E+07 2.3035498E-24 + 3.0100000E+07 2.3019442E-24 + 3.0200000E+07 2.3003389E-24 + 3.0300000E+07 2.2987334E-24 + 3.0400000E+07 2.2971280E-24 + 3.0500000E+07 2.2955227E-24 + 3.0600000E+07 2.2939172E-24 + 3.0700000E+07 2.2923119E-24 + 3.0800000E+07 2.2907063E-24 + 3.0900000E+07 2.2891010E-24 + 3.1000000E+07 2.2874957E-24 + 3.1100000E+07 2.2858901E-24 + 3.1200000E+07 2.2842848E-24 + 3.1300000E+07 2.2826793E-24 + 3.1400000E+07 2.2810739E-24 + 3.1500000E+07 2.2794686E-24 + 3.1600000E+07 2.2778631E-24 + 3.1700000E+07 2.2762577E-24 + 3.1800000E+07 2.2746522E-24 + 3.1900000E+07 2.2730469E-24 + 3.2000000E+07 2.2714414E-24 + 3.2100000E+07 2.2698360E-24 + 3.2200000E+07 2.2682307E-24 + 3.2300000E+07 2.2666252E-24 + 3.2400000E+07 2.2650198E-24 + 3.2500000E+07 2.2634143E-24 + 3.2600000E+07 2.2618090E-24 + 3.2700000E+07 2.2602036E-24 + 3.2800000E+07 2.2585981E-24 + 3.2900000E+07 2.2569928E-24 + 3.3000000E+07 2.2553872E-24 + 3.3100000E+07 2.2537819E-24 + 3.3200000E+07 2.2521766E-24 + 3.3300000E+07 2.2505711E-24 + 3.3400000E+07 2.2489657E-24 + 3.3500000E+07 2.2473602E-24 + 3.3600000E+07 2.2457549E-24 + 3.3700000E+07 2.2441493E-24 + 3.3800000E+07 2.2425440E-24 + 3.3900000E+07 2.2409385E-24 + 3.4000000E+07 2.2393331E-24 + 3.4100000E+07 2.2381895E-24 + 3.4200000E+07 2.2372135E-24 + 3.4300000E+07 2.2362377E-24 + 3.4400000E+07 2.2352616E-24 + 3.4500000E+07 2.2342856E-24 + 3.4600000E+07 2.2333096E-24 + 3.4700000E+07 2.2323336E-24 + 3.4800000E+07 2.2313578E-24 + 3.4900000E+07 2.2303817E-24 + 3.5000000E+07 2.2294057E-24 + 3.5100000E+07 2.2284297E-24 + 3.5200000E+07 2.2274537E-24 + 3.5300000E+07 2.2264779E-24 + 3.5400000E+07 2.2255018E-24 + 3.5500000E+07 2.2245258E-24 + 3.5600000E+07 2.2235498E-24 + 3.5700000E+07 2.2225738E-24 + 3.5800000E+07 2.2215980E-24 + 3.5900000E+07 2.2206220E-24 + 3.6000000E+07 2.2196459E-24 + 3.6100000E+07 2.2186699E-24 + 3.6200000E+07 2.2176939E-24 + 3.6300000E+07 2.2167181E-24 + 3.6400000E+07 2.2157421E-24 + 3.6500000E+07 2.2147660E-24 + 3.6600000E+07 2.2137900E-24 + 3.6700000E+07 2.2128140E-24 + 3.6800000E+07 2.2118380E-24 + 3.6900000E+07 2.2108622E-24 + 3.7000000E+07 2.2098861E-24 + 3.7100000E+07 2.2089101E-24 + 3.7200000E+07 2.2079341E-24 + 3.7300000E+07 2.2069581E-24 + 3.7400000E+07 2.2059823E-24 + 3.7500000E+07 2.2050063E-24 + 3.7600000E+07 2.2040302E-24 + 3.7700000E+07 2.2030542E-24 + 3.7800000E+07 2.2020782E-24 + 3.7900000E+07 2.2011022E-24 + 3.8000000E+07 2.2001264E-24 + 3.8100000E+07 2.1991503E-24 + 3.8200000E+07 2.1981743E-24 + 3.8300000E+07 2.1971983E-24 + 3.8400000E+07 2.1962225E-24 + 3.8500000E+07 2.1952465E-24 + 3.8600000E+07 2.1942704E-24 + 3.8700000E+07 2.1932944E-24 + 3.8800000E+07 2.1923184E-24 + 3.8900000E+07 2.1913424E-24 + 3.9000000E+07 2.1903666E-24 + 3.9100000E+07 2.1893906E-24 + 3.9200000E+07 2.1884145E-24 + 3.9300000E+07 2.1874385E-24 + 3.9400000E+07 2.1864625E-24 + 3.9500000E+07 2.1854867E-24 + 3.9600000E+07 2.1845107E-24 + 3.9700000E+07 2.1835346E-24 + 3.9800000E+07 2.1825586E-24 + 3.9900000E+07 2.1815826E-24 + 4.0000000E+07 2.1806068E-24 + 4.0100000E+07 2.1796308E-24 + 4.0200000E+07 2.1786547E-24 + 4.0300000E+07 2.1776787E-24 + 4.0400000E+07 2.1767027E-24 + 4.0500000E+07 2.1757267E-24 + 4.0600000E+07 2.1747509E-24 + 4.0700000E+07 2.1737749E-24 + 4.0800000E+07 2.1727988E-24 + 4.0900000E+07 2.1718228E-24 + 4.1000000E+07 2.1708470E-24 + 4.1100000E+07 2.1698710E-24 + 4.1200000E+07 2.1688950E-24 + 4.1300000E+07 2.1679189E-24 + 4.1400000E+07 2.1669429E-24 + 4.1500000E+07 2.1659671E-24 + 4.1600000E+07 2.1649911E-24 + 4.1700000E+07 2.1640151E-24 + 4.1800000E+07 2.1630390E-24 + 4.1900000E+07 2.1620630E-24 + 4.2000000E+07 2.1610870E-24 + 4.2100000E+07 2.1601112E-24 + 4.2200000E+07 2.1591352E-24 + 4.2300000E+07 2.1581592E-24 + 4.2400000E+07 2.1571831E-24 + 4.2500000E+07 2.1562071E-24 + 4.2600000E+07 2.1552313E-24 + 4.2700000E+07 2.1542553E-24 + 4.2800000E+07 2.1532793E-24 + 4.2900000E+07 2.1523032E-24 + 4.3000000E+07 2.1513272E-24 + 4.3100000E+07 2.1503739E-24 + 4.3200000E+07 2.1496391E-24 + 4.3300000E+07 2.1489044E-24 + 4.3400000E+07 2.1481696E-24 + 4.3500000E+07 2.1474350E-24 + 4.3600000E+07 2.1467002E-24 + 4.3700000E+07 2.1459653E-24 + 4.3800000E+07 2.1452307E-24 + 4.3900000E+07 2.1444959E-24 + 4.4000000E+07 2.1437613E-24 + 4.4100000E+07 2.1430264E-24 + 4.4200000E+07 2.1422918E-24 + 4.4300000E+07 2.1415570E-24 + 4.4400000E+07 2.1408222E-24 + 4.4500000E+07 2.1400875E-24 + 4.4600000E+07 2.1393527E-24 + 4.4700000E+07 2.1386181E-24 + 4.4800000E+07 2.1378833E-24 + 4.4900000E+07 2.1371486E-24 + 4.5000000E+07 2.1364138E-24 + 4.5100000E+07 2.1356792E-24 + 4.5200000E+07 2.1349444E-24 + 4.5300000E+07 2.1342095E-24 + 4.5400000E+07 2.1334749E-24 + 4.5500000E+07 2.1327401E-24 + 4.5600000E+07 2.1320055E-24 + 4.5700000E+07 2.1312706E-24 + 4.5800000E+07 2.1305360E-24 + 4.5900000E+07 2.1298012E-24 + 4.6000000E+07 2.1290664E-24 + 4.6100000E+07 2.1283317E-24 + 4.6200000E+07 2.1275969E-24 + 4.6300000E+07 2.1268623E-24 + 4.6400000E+07 2.1261275E-24 + 4.6500000E+07 2.1253928E-24 + 4.6600000E+07 2.1246580E-24 + 4.6700000E+07 2.1239232E-24 + 4.6800000E+07 2.1231886E-24 + 4.6900000E+07 2.1224537E-24 + 4.7000000E+07 2.1217191E-24 + 4.7100000E+07 2.1209843E-24 + 4.7200000E+07 2.1202497E-24 + 4.7300000E+07 2.1195148E-24 + 4.7400000E+07 2.1187800E-24 + 4.7500000E+07 2.1180454E-24 + 4.7600000E+07 2.1173106E-24 + 4.7700000E+07 2.1165759E-24 + 4.7800000E+07 2.1158411E-24 + 4.7900000E+07 2.1151065E-24 + 4.8000000E+07 2.1143717E-24 + 4.8100000E+07 2.1136370E-24 + 4.8200000E+07 2.1129022E-24 + 4.8300000E+07 2.1121674E-24 + 4.8400000E+07 2.1114328E-24 + 4.8500000E+07 2.1106979E-24 + 4.8600000E+07 2.1099633E-24 + 4.8700000E+07 2.1092285E-24 + 4.8800000E+07 2.1084939E-24 + 4.8900000E+07 2.1077590E-24 + 4.9000000E+07 2.1070242E-24 + 4.9100000E+07 2.1062896E-24 + 4.9200000E+07 2.1055548E-24 + 4.9300000E+07 2.1048201E-24 + 4.9400000E+07 2.1040853E-24 + 4.9500000E+07 2.1033507E-24 + 4.9600000E+07 2.1026159E-24 + 4.9700000E+07 2.1018812E-24 + 4.9800000E+07 2.1011464E-24 + 4.9900000E+07 2.1004116E-24 + 5.0000000E+07 2.0996770E-24 + 5.0100000E+07 2.0989421E-24 + 5.0200000E+07 2.0982075E-24 + 5.0300000E+07 2.0974727E-24 + 5.0400000E+07 2.0967381E-24 + 5.0500000E+07 2.0960032E-24 + 5.0600000E+07 2.0952684E-24 + 5.0700000E+07 2.0945338E-24 + 5.0800000E+07 2.0937990E-24 + 5.0900000E+07 2.0930643E-24 + 5.1000000E+07 2.0923295E-24 + 5.1100000E+07 2.0915949E-24 + 5.1200000E+07 2.0908601E-24 + 5.1300000E+07 2.0901254E-24 + 5.1400000E+07 2.0893906E-24 + 5.1500000E+07 2.0886558E-24 + 5.1600000E+07 2.0879212E-24 + 5.1700000E+07 2.0871863E-24 + 5.1800000E+07 2.0864517E-24 + 5.1900000E+07 2.0857169E-24 + 5.2000000E+07 2.0849821E-24 + 5.2100000E+07 2.0842474E-24 + 5.2200000E+07 2.0835126E-24 + 5.2300000E+07 2.0827780E-24 + 5.2400000E+07 2.0820432E-24 + 5.2500000E+07 2.0813085E-24 + 5.2600000E+07 2.0805737E-24 + 5.2700000E+07 2.0798389E-24 + 5.2800000E+07 2.0791042E-24 + 5.2900000E+07 2.0783694E-24 + 5.3000000E+07 2.0776348E-24 + 5.3100000E+07 2.0769000E-24 + 5.3200000E+07 2.0761653E-24 + 5.3300000E+07 2.0754305E-24 + 5.3400000E+07 2.0746959E-24 + 5.3500000E+07 2.0739611E-24 + 5.3600000E+07 2.0732262E-24 + 5.3700000E+07 2.0724916E-24 + 5.3800000E+07 2.0717568E-24 + 5.3900000E+07 2.0710222E-24 + 5.4000000E+07 2.0702873E-24 + 5.4100000E+07 2.0695527E-24 + 5.4200000E+07 2.0688179E-24 + 5.4300000E+07 2.0680831E-24 + 5.4400000E+07 2.0673484E-24 + 5.4500000E+07 2.0666136E-24 + 5.4600000E+07 2.0659230E-24 + 5.4700000E+07 2.0653307E-24 + 5.4800000E+07 2.0647385E-24 + 5.4900000E+07 2.0641463E-24 + 5.5000000E+07 2.0635540E-24 + 5.5100000E+07 2.0629618E-24 + 5.5200000E+07 2.0623696E-24 + 5.5300000E+07 2.0617773E-24 + 5.5400000E+07 2.0611853E-24 + 5.5500000E+07 2.0605930E-24 + 5.5600000E+07 2.0600008E-24 + 5.5700000E+07 2.0594086E-24 + 5.5800000E+07 2.0588163E-24 + 5.5900000E+07 2.0582241E-24 + 5.6000000E+07 2.0576319E-24 + 5.6100000E+07 2.0570396E-24 + 5.6200000E+07 2.0564474E-24 + 5.6300000E+07 2.0558553E-24 + 5.6400000E+07 2.0552631E-24 + 5.6500000E+07 2.0546709E-24 + 5.6600000E+07 2.0540786E-24 + 5.6700000E+07 2.0534864E-24 + 5.6800000E+07 2.0528941E-24 + 5.6900000E+07 2.0523019E-24 + 5.7000000E+07 2.0517097E-24 + 5.7100000E+07 2.0511174E-24 + 5.7200000E+07 2.0505254E-24 + 5.7300000E+07 2.0499332E-24 + 5.7400000E+07 2.0493409E-24 + 5.7500000E+07 2.0487487E-24 + 5.7600000E+07 2.0481564E-24 + 5.7700000E+07 2.0475642E-24 + 5.7800000E+07 2.0469720E-24 + 5.7900000E+07 2.0463797E-24 + 5.8000000E+07 2.0457875E-24 + 5.8100000E+07 2.0451955E-24 + 5.8200000E+07 2.0446032E-24 + 5.8300000E+07 2.0440110E-24 + 5.8400000E+07 2.0434187E-24 + 5.8500000E+07 2.0428265E-24 + 5.8600000E+07 2.0422343E-24 + 5.8700000E+07 2.0416420E-24 + 5.8800000E+07 2.0410498E-24 + 5.8900000E+07 2.0404576E-24 + 5.9000000E+07 2.0398655E-24 + 5.9100000E+07 2.0392733E-24 + 5.9200000E+07 2.0386810E-24 + 5.9300000E+07 2.0380888E-24 + 5.9400000E+07 2.0374966E-24 + 5.9500000E+07 2.0369043E-24 + 5.9600000E+07 2.0363121E-24 + 5.9700000E+07 2.0357199E-24 + 5.9800000E+07 2.0351276E-24 + 5.9900000E+07 2.0345356E-24 + 6.0000000E+07 2.0339433E-24 + 6.0100000E+07 2.0333511E-24 + 6.0200000E+07 2.0327589E-24 + 6.0300000E+07 2.0321666E-24 + 6.0400000E+07 2.0315744E-24 + 6.0500000E+07 2.0309822E-24 + 6.0600000E+07 2.0303899E-24 + 6.0700000E+07 2.0297977E-24 + 6.0800000E+07 2.0292056E-24 + 6.0900000E+07 2.0286134E-24 + 6.1000000E+07 2.0280212E-24 + 6.1100000E+07 2.0274289E-24 + 6.1200000E+07 2.0268367E-24 + 6.1300000E+07 2.0262445E-24 + 6.1400000E+07 2.0256522E-24 + 6.1500000E+07 2.0250600E-24 + 6.1600000E+07 2.0244677E-24 + 6.1700000E+07 2.0238757E-24 + 6.1800000E+07 2.0232835E-24 + 6.1900000E+07 2.0226912E-24 + 6.2000000E+07 2.0220990E-24 + 6.2100000E+07 2.0215068E-24 + 6.2200000E+07 2.0209145E-24 + 6.2300000E+07 2.0203223E-24 + 6.2400000E+07 2.0197300E-24 + 6.2500000E+07 2.0191378E-24 + 6.2600000E+07 2.0185458E-24 + 6.2700000E+07 2.0179535E-24 + 6.2800000E+07 2.0173613E-24 + 6.2900000E+07 2.0167691E-24 + 6.3000000E+07 2.0161768E-24 + 6.3100000E+07 2.0155846E-24 + 6.3200000E+07 2.0149923E-24 + 6.3300000E+07 2.0144001E-24 + 6.3400000E+07 2.0138079E-24 + 6.3500000E+07 2.0132156E-24 + 6.3600000E+07 2.0126236E-24 + 6.3700000E+07 2.0120314E-24 + 6.3800000E+07 2.0114391E-24 + 6.3900000E+07 2.0108469E-24 + 6.4000000E+07 2.0102546E-24 + 6.4100000E+07 2.0096624E-24 + 6.4200000E+07 2.0090702E-24 + 6.4300000E+07 2.0084779E-24 + 6.4400000E+07 2.0078859E-24 + 6.4500000E+07 2.0072936E-24 + 6.4600000E+07 2.0067014E-24 + 6.4700000E+07 2.0061092E-24 + 6.4800000E+07 2.0055169E-24 + 6.4900000E+07 2.0049247E-24 + 6.5000000E+07 2.0043325E-24 + 6.5100000E+07 2.0037402E-24 + 6.5200000E+07 2.0031480E-24 + 6.5300000E+07 2.0025559E-24 + 6.5400000E+07 2.0019637E-24 + 6.5500000E+07 2.0013715E-24 + 6.5600000E+07 2.0007792E-24 + 6.5700000E+07 2.0001870E-24 + 6.5800000E+07 1.9995948E-24 + 6.5900000E+07 1.9990025E-24 + 6.6000000E+07 1.9984103E-24 + 6.6100000E+07 1.9978180E-24 + 6.6200000E+07 1.9972260E-24 + 6.6300000E+07 1.9966338E-24 + 6.6400000E+07 1.9960415E-24 + 6.6500000E+07 1.9954493E-24 + 6.6600000E+07 1.9948571E-24 + 6.6700000E+07 1.9942648E-24 + 6.6800000E+07 1.9936726E-24 + 6.6900000E+07 1.9930803E-24 + 6.7000000E+07 1.9924881E-24 + 6.7100000E+07 1.9918961E-24 + 6.7200000E+07 1.9913038E-24 + 6.7300000E+07 1.9907116E-24 + 6.7400000E+07 1.9901194E-24 + 6.7500000E+07 1.9895271E-24 + 6.7600000E+07 1.9889349E-24 + 6.7700000E+07 1.9883426E-24 + 6.7800000E+07 1.9877504E-24 + 6.7900000E+07 1.9871582E-24 + 6.8000000E+07 1.9865661E-24 + 6.8100000E+07 1.9859739E-24 + 6.8200000E+07 1.9853817E-24 + 6.8300000E+07 1.9847894E-24 + 6.8400000E+07 1.9841972E-24 + 6.8500000E+07 1.9836049E-24 + 6.8600000E+07 1.9830127E-24 + 6.8700000E+07 1.9824205E-24 + 6.8800000E+07 1.9818282E-24 + 6.8900000E+07 1.9812362E-24 + 6.9000000E+07 1.9806440E-24 + 6.9100000E+07 1.9800517E-24 + 6.9200000E+07 1.9795609E-24 + 6.9300000E+07 1.9790757E-24 + 6.9400000E+07 1.9785906E-24 + 6.9500000E+07 1.9781052E-24 + 6.9600000E+07 1.9776201E-24 + 6.9700000E+07 1.9771349E-24 + 6.9800000E+07 1.9766498E-24 + 6.9900000E+07 1.9761646E-24 + 7.0000000E+07 1.9756793E-24 + 7.0100000E+07 1.9751941E-24 + 7.0200000E+07 1.9747090E-24 + 7.0300000E+07 1.9742238E-24 + 7.0400000E+07 1.9737387E-24 + 7.0500000E+07 1.9732533E-24 + 7.0600000E+07 1.9727682E-24 + 7.0700000E+07 1.9722830E-24 + 7.0800000E+07 1.9717979E-24 + 7.0900000E+07 1.9713127E-24 + 7.1000000E+07 1.9708276E-24 + 7.1100000E+07 1.9703422E-24 + 7.1200000E+07 1.9698571E-24 + 7.1300000E+07 1.9693719E-24 + 7.1400000E+07 1.9688868E-24 + 7.1500000E+07 1.9684016E-24 + 7.1600000E+07 1.9679165E-24 + 7.1700000E+07 1.9674311E-24 + 7.1800000E+07 1.9669460E-24 + 7.1900000E+07 1.9664608E-24 + 7.2000000E+07 1.9659757E-24 + 7.2100000E+07 1.9654905E-24 + 7.2200000E+07 1.9650052E-24 + 7.2300000E+07 1.9645200E-24 + 7.2400000E+07 1.9640349E-24 + 7.2500000E+07 1.9635497E-24 + 7.2600000E+07 1.9630646E-24 + 7.2700000E+07 1.9625792E-24 + 7.2800000E+07 1.9620941E-24 + 7.2900000E+07 1.9616089E-24 + 7.3000000E+07 1.9611238E-24 + 7.3100000E+07 1.9606386E-24 + 7.3200000E+07 1.9601535E-24 + 7.3300000E+07 1.9596681E-24 + 7.3400000E+07 1.9591830E-24 + 7.3500000E+07 1.9586978E-24 + 7.3600000E+07 1.9582127E-24 + 7.3700000E+07 1.9577275E-24 + 7.3800000E+07 1.9572422E-24 + 7.3900000E+07 1.9567571E-24 + 7.4000000E+07 1.9562719E-24 + 7.4100000E+07 1.9557868E-24 + 7.4200000E+07 1.9553016E-24 + 7.4300000E+07 1.9548163E-24 + 7.4400000E+07 1.9543311E-24 + 7.4500000E+07 1.9538460E-24 + 7.4600000E+07 1.9533608E-24 + 7.4700000E+07 1.9528757E-24 + 7.4800000E+07 1.9523903E-24 + 7.4900000E+07 1.9519052E-24 + 7.5000000E+07 1.9514200E-24 + 7.5100000E+07 1.9509349E-24 + 7.5200000E+07 1.9504497E-24 + 7.5300000E+07 1.9499646E-24 + 7.5400000E+07 1.9494792E-24 + 7.5500000E+07 1.9489941E-24 + 7.5600000E+07 1.9485089E-24 + 7.5700000E+07 1.9480238E-24 + 7.5800000E+07 1.9475386E-24 + 7.5900000E+07 1.9470535E-24 + 7.6000000E+07 1.9465681E-24 + 7.6100000E+07 1.9460830E-24 + 7.6200000E+07 1.9455978E-24 + 7.6300000E+07 1.9451127E-24 + 7.6400000E+07 1.9446275E-24 + 7.6500000E+07 1.9441422E-24 + 7.6600000E+07 1.9436570E-24 + 7.6700000E+07 1.9431719E-24 + 7.6800000E+07 1.9426867E-24 + 7.6900000E+07 1.9422016E-24 + 7.7000000E+07 1.9417162E-24 + 7.7100000E+07 1.9412311E-24 + 7.7200000E+07 1.9407459E-24 + 7.7300000E+07 1.9402608E-24 + 7.7400000E+07 1.9397756E-24 + 7.7500000E+07 1.9392903E-24 + 7.7600000E+07 1.9388051E-24 + 7.7700000E+07 1.9383200E-24 + 7.7800000E+07 1.9378348E-24 + 7.7900000E+07 1.9373497E-24 + 7.8000000E+07 1.9368645E-24 + 7.8100000E+07 1.9363792E-24 + 7.8200000E+07 1.9358940E-24 + 7.8300000E+07 1.9354089E-24 + 7.8400000E+07 1.9349237E-24 + 7.8500000E+07 1.9344386E-24 + 7.8600000E+07 1.9339533E-24 + 7.8700000E+07 1.9334681E-24 + 7.8800000E+07 1.9329830E-24 + 7.8900000E+07 1.9324978E-24 + 7.9000000E+07 1.9320127E-24 + 7.9100000E+07 1.9315275E-24 + 7.9200000E+07 1.9310422E-24 + 7.9300000E+07 1.9305570E-24 + 7.9400000E+07 1.9300719E-24 + 7.9500000E+07 1.9295867E-24 + 7.9600000E+07 1.9291016E-24 + 7.9700000E+07 1.9286162E-24 + 7.9800000E+07 1.9281311E-24 + 7.9900000E+07 1.9276459E-24 + 8.0000000E+07 1.9271608E-24 + 8.0100000E+07 1.9266756E-24 + 8.0200000E+07 1.9261905E-24 + 8.0300000E+07 1.9257051E-24 + 8.0400000E+07 1.9252200E-24 + 8.0500000E+07 1.9247348E-24 + 8.0600000E+07 1.9242497E-24 + 8.0700000E+07 1.9237645E-24 + 8.0800000E+07 1.9232792E-24 + 8.0900000E+07 1.9227940E-24 + 8.1000000E+07 1.9223089E-24 + 8.1100000E+07 1.9218237E-24 + 8.1200000E+07 1.9213386E-24 + 8.1300000E+07 1.9208532E-24 + 8.1400000E+07 1.9203681E-24 + 8.1500000E+07 1.9198829E-24 + 8.1600000E+07 1.9193978E-24 + 8.1700000E+07 1.9189126E-24 + 8.1800000E+07 1.9184273E-24 + 8.1900000E+07 1.9179421E-24 + 8.2000000E+07 1.9174570E-24 + 8.2100000E+07 1.9169718E-24 + 8.2200000E+07 1.9164867E-24 + 8.2300000E+07 1.9160015E-24 + 8.2400000E+07 1.9155162E-24 + 8.2500000E+07 1.9150310E-24 + 8.2600000E+07 1.9145459E-24 + 8.2700000E+07 1.9140607E-24 + 8.2800000E+07 1.9135756E-24 + 8.2900000E+07 1.9130904E-24 + 8.3000000E+07 1.9126051E-24 + 8.3100000E+07 1.9121199E-24 + 8.3200000E+07 1.9116348E-24 + 8.3300000E+07 1.9111496E-24 + 8.3400000E+07 1.9106645E-24 + 8.3500000E+07 1.9101792E-24 + 8.3600000E+07 1.9096940E-24 + 8.3700000E+07 1.9092089E-24 + 8.3800000E+07 1.9087237E-24 + 8.3900000E+07 1.9082386E-24 + 8.4000000E+07 1.9077532E-24 + 8.4100000E+07 1.9072681E-24 + 8.4200000E+07 1.9067829E-24 + 8.4300000E+07 1.9062978E-24 + 8.4400000E+07 1.9058126E-24 + 8.4500000E+07 1.9053273E-24 + 8.4600000E+07 1.9048421E-24 + 8.4700000E+07 1.9043570E-24 + 8.4800000E+07 1.9038718E-24 + 8.4900000E+07 1.9033867E-24 + 8.5000000E+07 1.9029015E-24 + 8.5100000E+07 1.9024162E-24 + 8.5200000E+07 1.9019310E-24 + 8.5300000E+07 1.9014459E-24 + 8.5400000E+07 1.9009607E-24 + 8.5500000E+07 1.9004756E-24 + 8.5600000E+07 1.8999904E-24 + 8.5700000E+07 1.8995051E-24 + 8.5800000E+07 1.8990199E-24 + 8.5900000E+07 1.8985348E-24 + 8.6000000E+07 1.8980496E-24 + 8.6100000E+07 1.8975643E-24 + 8.6200000E+07 1.8970791E-24 + 8.6300000E+07 1.8965940E-24 + 8.6400000E+07 1.8961088E-24 + 8.6500000E+07 1.8956237E-24 + 8.6600000E+07 1.8951385E-24 + 8.6700000E+07 1.8946532E-24 + 8.6800000E+07 1.8941680E-24 + 8.6900000E+07 1.8936829E-24 + 8.7000000E+07 1.8931977E-24 + 8.7100000E+07 1.8927126E-24 + 8.7200000E+07 1.8922272E-24 + 8.7300000E+07 1.8917421E-24 + 8.7400000E+07 1.8912569E-24 + 8.7500000E+07 1.8907718E-24 + 8.7600000E+07 1.8903693E-24 + 8.7700000E+07 1.8899800E-24 + 8.7800000E+07 1.8895905E-24 + 8.7900000E+07 1.8892012E-24 + 8.8000000E+07 1.8888117E-24 + 8.8100000E+07 1.8884224E-24 + 8.8200000E+07 1.8880329E-24 + 8.8300000E+07 1.8876436E-24 + 8.8400000E+07 1.8872541E-24 + 8.8500000E+07 1.8868646E-24 + 8.8600000E+07 1.8864753E-24 + 8.8700000E+07 1.8860858E-24 + 8.8800000E+07 1.8856965E-24 + 8.8900000E+07 1.8853070E-24 + 8.9000000E+07 1.8849177E-24 + 8.9100000E+07 1.8845282E-24 + 8.9200000E+07 1.8841389E-24 + 8.9300000E+07 1.8837494E-24 + 8.9400000E+07 1.8833601E-24 + 8.9500000E+07 1.8829706E-24 + 8.9600000E+07 1.8825811E-24 + 8.9700000E+07 1.8821917E-24 + 8.9800000E+07 1.8818022E-24 + 8.9900000E+07 1.8814129E-24 + 9.0000000E+07 1.8810234E-24 + 9.0100000E+07 1.8806341E-24 + 9.0200000E+07 1.8802446E-24 + 9.0300000E+07 1.8798553E-24 + 9.0400000E+07 1.8794658E-24 + 9.0500000E+07 1.8790763E-24 + 9.0600000E+07 1.8786870E-24 + 9.0700000E+07 1.8782975E-24 + 9.0800000E+07 1.8779082E-24 + 9.0900000E+07 1.8775187E-24 + 9.1000000E+07 1.8771294E-24 + 9.1100000E+07 1.8767399E-24 + 9.1200000E+07 1.8763506E-24 + 9.1300000E+07 1.8759611E-24 + 9.1400000E+07 1.8755716E-24 + 9.1500000E+07 1.8751823E-24 + 9.1600000E+07 1.8747928E-24 + 9.1700000E+07 1.8744035E-24 + 9.1800000E+07 1.8740140E-24 + 9.1900000E+07 1.8736247E-24 + 9.2000000E+07 1.8732352E-24 + 9.2100000E+07 1.8728459E-24 + 9.2200000E+07 1.8724564E-24 + 9.2300000E+07 1.8720671E-24 + 9.2400000E+07 1.8716776E-24 + 9.2500000E+07 1.8712883E-24 + 9.2600000E+07 1.8708988E-24 + 9.2700000E+07 1.8705093E-24 + 9.2800000E+07 1.8701200E-24 + 9.2900000E+07 1.8697305E-24 + 9.3000000E+07 1.8693412E-24 + 9.3100000E+07 1.8689517E-24 + 9.3200000E+07 1.8685624E-24 + 9.3300000E+07 1.8681729E-24 + 9.3400000E+07 1.8677834E-24 + 9.3500000E+07 1.8673941E-24 + 9.3600000E+07 1.8670046E-24 + 9.3700000E+07 1.8666153E-24 + 9.3800000E+07 1.8662258E-24 + 9.3900000E+07 1.8658365E-24 + 9.4000000E+07 1.8654470E-24 + 9.4100000E+07 1.8650577E-24 + 9.4200000E+07 1.8646682E-24 + 9.4300000E+07 1.8642789E-24 + 9.4400000E+07 1.8638894E-24 + 9.4500000E+07 1.8634999E-24 + 9.4600000E+07 1.8631106E-24 + 9.4700000E+07 1.8627211E-24 + 9.4800000E+07 1.8623318E-24 + 9.4900000E+07 1.8619423E-24 + 9.5000000E+07 1.8615530E-24 + 9.5100000E+07 1.8611635E-24 + 9.5200000E+07 1.8607742E-24 + 9.5300000E+07 1.8603847E-24 + 9.5400000E+07 1.8599952E-24 + 9.5500000E+07 1.8596059E-24 + 9.5600000E+07 1.8592164E-24 + 9.5700000E+07 1.8588271E-24 + 9.5800000E+07 1.8584376E-24 + 9.5900000E+07 1.8580483E-24 + 9.6000000E+07 1.8576588E-24 + 9.6100000E+07 1.8572695E-24 + 9.6200000E+07 1.8568800E-24 + 9.6300000E+07 1.8564907E-24 + 9.6400000E+07 1.8561012E-24 + 9.6500000E+07 1.8557117E-24 + 9.6600000E+07 1.8553224E-24 + 9.6700000E+07 1.8549329E-24 + 9.6800000E+07 1.8545436E-24 + 9.6900000E+07 1.8541541E-24 + 9.7000000E+07 1.8537648E-24 + 9.7100000E+07 1.8533753E-24 + 9.7200000E+07 1.8529858E-24 + 9.7300000E+07 1.8525964E-24 + 9.7400000E+07 1.8522071E-24 + 9.7500000E+07 1.8518176E-24 + 9.7600000E+07 1.8514281E-24 + 9.7700000E+07 1.8510388E-24 + 9.7800000E+07 1.8506493E-24 + 9.7900000E+07 1.8502600E-24 + 9.8000000E+07 1.8498705E-24 + 9.8100000E+07 1.8494812E-24 + 9.8200000E+07 1.8490917E-24 + 9.8300000E+07 1.8487022E-24 + 9.8400000E+07 1.8483129E-24 + 9.8500000E+07 1.8479234E-24 + 9.8600000E+07 1.8475341E-24 + 9.8700000E+07 1.8471446E-24 + 9.8800000E+07 1.8467553E-24 + 9.8900000E+07 1.8463658E-24 + 9.9000000E+07 1.8459765E-24 + 9.9100000E+07 1.8455870E-24 + 9.9200000E+07 1.8451977E-24 + 9.9300000E+07 1.8448082E-24 + 9.9400000E+07 1.8444187E-24 + 9.9500000E+07 1.8440294E-24 + 9.9600000E+07 1.8436399E-24 + 9.9700000E+07 1.8432506E-24 + 9.9800000E+07 1.8428611E-24 + 9.9900000E+07 1.8424718E-24 + 1.0000000E+08 1.8420823E-24 + 1.0010000E+08 1.8416930E-24 + 1.0020000E+08 1.8413035E-24 + 1.0030000E+08 1.8409140E-24 + 1.0040000E+08 1.8405247E-24 + 1.0050000E+08 1.8401352E-24 + 1.0060000E+08 1.8397459E-24 + 1.0070000E+08 1.8393564E-24 + 1.0080000E+08 1.8389671E-24 + 1.0090000E+08 1.8385776E-24 + 1.0100000E+08 1.8381883E-24 + 1.0110000E+08 1.8377988E-24 + 1.0120000E+08 1.8374095E-24 + 1.0130000E+08 1.8370200E-24 + 1.0140000E+08 1.8366305E-24 + 1.0150000E+08 1.8362412E-24 + 1.0160000E+08 1.8358517E-24 + 1.0170000E+08 1.8354624E-24 + 1.0180000E+08 1.8350729E-24 + 1.0190000E+08 1.8346836E-24 + 1.0200000E+08 1.8342941E-24 + 1.0210000E+08 1.8339048E-24 + 1.0220000E+08 1.8335153E-24 + 1.0230000E+08 1.8331258E-24 + 1.0240000E+08 1.8327365E-24 + 1.0250000E+08 1.8323470E-24 + 1.0260000E+08 1.8319577E-24 + 1.0270000E+08 1.8315682E-24 + 1.0280000E+08 1.8311789E-24 + 1.0290000E+08 1.8307894E-24 + 1.0300000E+08 1.8304001E-24 + 1.0310000E+08 1.8300106E-24 + 1.0320000E+08 1.8296213E-24 + 1.0330000E+08 1.8292318E-24 + 1.0340000E+08 1.8288423E-24 + 1.0350000E+08 1.8284530E-24 + 1.0360000E+08 1.8280635E-24 + 1.0370000E+08 1.8276742E-24 + 1.0380000E+08 1.8272847E-24 + 1.0390000E+08 1.8268954E-24 + 1.0400000E+08 1.8265059E-24 + 1.0410000E+08 1.8261164E-24 + 1.0420000E+08 1.8257271E-24 + 1.0430000E+08 1.8253376E-24 + 1.0440000E+08 1.8249483E-24 + 1.0450000E+08 1.8245588E-24 + 1.0460000E+08 1.8241695E-24 + 1.0470000E+08 1.8237800E-24 + 1.0480000E+08 1.8233906E-24 + 1.0490000E+08 1.8230011E-24 + 1.0500000E+08 1.8226118E-24 + 1.0510000E+08 1.8222223E-24 + 1.0520000E+08 1.8218328E-24 + 1.0530000E+08 1.8214435E-24 + 1.0540000E+08 1.8210540E-24 + 1.0550000E+08 1.8206647E-24 + 1.0560000E+08 1.8202752E-24 + 1.0570000E+08 1.8198859E-24 + 1.0580000E+08 1.8194964E-24 + 1.0590000E+08 1.8191071E-24 + 1.0600000E+08 1.8187176E-24 + 1.0610000E+08 1.8183283E-24 + 1.0620000E+08 1.8179388E-24 + 1.0630000E+08 1.8175493E-24 + 1.0640000E+08 1.8171600E-24 + 1.0650000E+08 1.8167705E-24 + 1.0660000E+08 1.8163812E-24 + 1.0670000E+08 1.8159917E-24 + 1.0680000E+08 1.8156024E-24 + 1.0690000E+08 1.8152129E-24 + 1.0700000E+08 1.8148236E-24 + 1.0710000E+08 1.8144341E-24 + 1.0720000E+08 1.8140446E-24 + 1.0730000E+08 1.8136553E-24 + 1.0740000E+08 1.8132658E-24 + 1.0750000E+08 1.8128765E-24 + 1.0760000E+08 1.8124870E-24 + 1.0770000E+08 1.8120977E-24 + 1.0780000E+08 1.8117082E-24 + 1.0790000E+08 1.8113189E-24 + 1.0800000E+08 1.8109294E-24 + 1.0810000E+08 1.8105401E-24 + 1.0820000E+08 1.8101506E-24 + 1.0830000E+08 1.8097611E-24 + 1.0840000E+08 1.8093718E-24 + 1.0850000E+08 1.8089823E-24 + 1.0860000E+08 1.8085930E-24 + 1.0870000E+08 1.8082035E-24 + 1.0880000E+08 1.8078142E-24 + 1.0890000E+08 1.8074247E-24 + 1.0900000E+08 1.8070354E-24 + 1.0910000E+08 1.8066459E-24 + 1.0920000E+08 1.8062564E-24 + 1.0930000E+08 1.8058671E-24 + 1.0940000E+08 1.8054776E-24 + 1.0950000E+08 1.8050883E-24 + 1.0960000E+08 1.8046988E-24 + 1.0970000E+08 1.8043095E-24 + 1.0980000E+08 1.8039200E-24 + 1.0990000E+08 1.8035307E-24 + 1.1000000E+08 1.8031412E-24 + 1.1010000E+08 1.8027519E-24 + 1.1020000E+08 1.8023624E-24 + 1.1030000E+08 1.8019729E-24 + 1.1040000E+08 1.8015836E-24 + 1.1050000E+08 1.8011941E-24 + 1.1060000E+08 1.8008048E-24 + 1.1070000E+08 1.8004153E-24 + 1.1080000E+08 1.8000260E-24 + 1.1090000E+08 1.7996943E-24 + 1.1100000E+08 1.7993823E-24 + 1.1110000E+08 1.7990703E-24 + 1.1120000E+08 1.7987583E-24 + 1.1130000E+08 1.7984463E-24 + 1.1140000E+08 1.7981343E-24 + 1.1150000E+08 1.7978223E-24 + 1.1160000E+08 1.7975105E-24 + 1.1170000E+08 1.7971985E-24 + 1.1180000E+08 1.7968865E-24 + 1.1190000E+08 1.7965745E-24 + 1.1200000E+08 1.7962625E-24 + 1.1210000E+08 1.7959505E-24 + 1.1220000E+08 1.7956385E-24 + 1.1230000E+08 1.7953265E-24 + 1.1240000E+08 1.7950145E-24 + 1.1250000E+08 1.7947025E-24 + 1.1260000E+08 1.7943905E-24 + 1.1270000E+08 1.7940787E-24 + 1.1280000E+08 1.7937668E-24 + 1.1290000E+08 1.7934548E-24 + 1.1300000E+08 1.7931428E-24 + 1.1310000E+08 1.7928308E-24 + 1.1320000E+08 1.7925188E-24 + 1.1330000E+08 1.7922068E-24 + 1.1340000E+08 1.7918948E-24 + 1.1350000E+08 1.7915828E-24 + 1.1360000E+08 1.7912710E-24 + 1.1370000E+08 1.7909590E-24 + 1.1380000E+08 1.7906470E-24 + 1.1390000E+08 1.7903350E-24 + 1.1400000E+08 1.7900230E-24 + 1.1410000E+08 1.7897110E-24 + 1.1420000E+08 1.7893990E-24 + 1.1430000E+08 1.7890870E-24 + 1.1440000E+08 1.7887750E-24 + 1.1450000E+08 1.7884630E-24 + 1.1460000E+08 1.7881510E-24 + 1.1470000E+08 1.7878391E-24 + 1.1480000E+08 1.7875273E-24 + 1.1490000E+08 1.7872153E-24 + 1.1500000E+08 1.7869033E-24 + 1.1510000E+08 1.7865913E-24 + 1.1520000E+08 1.7862793E-24 + 1.1530000E+08 1.7859673E-24 + 1.1540000E+08 1.7856553E-24 + 1.1550000E+08 1.7853433E-24 + 1.1560000E+08 1.7850313E-24 + 1.1570000E+08 1.7847195E-24 + 1.1580000E+08 1.7844075E-24 + 1.1590000E+08 1.7840955E-24 + 1.1600000E+08 1.7837835E-24 + 1.1610000E+08 1.7834715E-24 + 1.1620000E+08 1.7831595E-24 + 1.1630000E+08 1.7828475E-24 + 1.1640000E+08 1.7825355E-24 + 1.1650000E+08 1.7822235E-24 + 1.1660000E+08 1.7819118E-24 + 1.1670000E+08 1.7815998E-24 + 1.1680000E+08 1.7812878E-24 + 1.1690000E+08 1.7809758E-24 + 1.1700000E+08 1.7806638E-24 + 1.1710000E+08 1.7803518E-24 + 1.1720000E+08 1.7800398E-24 + 1.1730000E+08 1.7797278E-24 + 1.1740000E+08 1.7794158E-24 + 1.1750000E+08 1.7791038E-24 + 1.1760000E+08 1.7787918E-24 + 1.1770000E+08 1.7784800E-24 + 1.1780000E+08 1.7781680E-24 + 1.1790000E+08 1.7778560E-24 + 1.1800000E+08 1.7775440E-24 + 1.1810000E+08 1.7772320E-24 + 1.1820000E+08 1.7769200E-24 + 1.1830000E+08 1.7766080E-24 + 1.1840000E+08 1.7762960E-24 + 1.1850000E+08 1.7759841E-24 + 1.1860000E+08 1.7756721E-24 + 1.1870000E+08 1.7753603E-24 + 1.1880000E+08 1.7750483E-24 + 1.1890000E+08 1.7747363E-24 + 1.1900000E+08 1.7744243E-24 + 1.1910000E+08 1.7741123E-24 + 1.1920000E+08 1.7738003E-24 + 1.1930000E+08 1.7734883E-24 + 1.1940000E+08 1.7731763E-24 + 1.1950000E+08 1.7728643E-24 + 1.1960000E+08 1.7725523E-24 + 1.1970000E+08 1.7722403E-24 + 1.1980000E+08 1.7719285E-24 + 1.1990000E+08 1.7716165E-24 + 1.2000000E+08 1.7713045E-24 + 1.2010000E+08 1.7709925E-24 + 1.2020000E+08 1.7706805E-24 + 1.2030000E+08 1.7703685E-24 + 1.2040000E+08 1.7700566E-24 + 1.2050000E+08 1.7697446E-24 + 1.2060000E+08 1.7694326E-24 + 1.2070000E+08 1.7691208E-24 + 1.2080000E+08 1.7688088E-24 + 1.2090000E+08 1.7684968E-24 + 1.2100000E+08 1.7681848E-24 + 1.2110000E+08 1.7678728E-24 + 1.2120000E+08 1.7675608E-24 + 1.2130000E+08 1.7672488E-24 + 1.2140000E+08 1.7669368E-24 + 1.2150000E+08 1.7666248E-24 + 1.2160000E+08 1.7663128E-24 + 1.2170000E+08 1.7660008E-24 + 1.2180000E+08 1.7656890E-24 + 1.2190000E+08 1.7653770E-24 + 1.2200000E+08 1.7650650E-24 + 1.2210000E+08 1.7647530E-24 + 1.2220000E+08 1.7644410E-24 + 1.2230000E+08 1.7641291E-24 + 1.2240000E+08 1.7638171E-24 + 1.2250000E+08 1.7635051E-24 + 1.2260000E+08 1.7631931E-24 + 1.2270000E+08 1.7628813E-24 + 1.2280000E+08 1.7625693E-24 + 1.2290000E+08 1.7622573E-24 + 1.2300000E+08 1.7619453E-24 + 1.2310000E+08 1.7616333E-24 + 1.2320000E+08 1.7613213E-24 + 1.2330000E+08 1.7610093E-24 + 1.2340000E+08 1.7606973E-24 + 1.2350000E+08 1.7603853E-24 + 1.2360000E+08 1.7600733E-24 + 1.2370000E+08 1.7597615E-24 + 1.2380000E+08 1.7594495E-24 + 1.2390000E+08 1.7591375E-24 + 1.2400000E+08 1.7588255E-24 + 1.2410000E+08 1.7585135E-24 + 1.2420000E+08 1.7582015E-24 + 1.2430000E+08 1.7578896E-24 + 1.2440000E+08 1.7575776E-24 + 1.2450000E+08 1.7572656E-24 + 1.2460000E+08 1.7569536E-24 + 1.2470000E+08 1.7566416E-24 + 1.2480000E+08 1.7563298E-24 + 1.2490000E+08 1.7560178E-24 + 1.2500000E+08 1.7557058E-24 + 1.2510000E+08 1.7553938E-24 + 1.2520000E+08 1.7550818E-24 + 1.2530000E+08 1.7547698E-24 + 1.2540000E+08 1.7544578E-24 + 1.2550000E+08 1.7541458E-24 + 1.2560000E+08 1.7538338E-24 + 1.2570000E+08 1.7535220E-24 + 1.2580000E+08 1.7532100E-24 + 1.2590000E+08 1.7528980E-24 + 1.2600000E+08 1.7525860E-24 + 1.2610000E+08 1.7522740E-24 + 1.2620000E+08 1.7519621E-24 + 1.2630000E+08 1.7516501E-24 + 1.2640000E+08 1.7513381E-24 + 1.2650000E+08 1.7510261E-24 + 1.2660000E+08 1.7507141E-24 + 1.2670000E+08 1.7504021E-24 + 1.2680000E+08 1.7500903E-24 + 1.2690000E+08 1.7497783E-24 + 1.2700000E+08 1.7494663E-24 + 1.2710000E+08 1.7491543E-24 + 1.2720000E+08 1.7488423E-24 + 1.2730000E+08 1.7485303E-24 + 1.2740000E+08 1.7482183E-24 + 1.2750000E+08 1.7479063E-24 + 1.2760000E+08 1.7475943E-24 + 1.2770000E+08 1.7472823E-24 + 1.2780000E+08 1.7469705E-24 + 1.2790000E+08 1.7466585E-24 + 1.2800000E+08 1.7463465E-24 + 1.2810000E+08 1.7460346E-24 + 1.2820000E+08 1.7457226E-24 + 1.2830000E+08 1.7454106E-24 + 1.2840000E+08 1.7450986E-24 + 1.2850000E+08 1.7447866E-24 + 1.2860000E+08 1.7444746E-24 + 1.2870000E+08 1.7441626E-24 + 1.2880000E+08 1.7438506E-24 + 1.2890000E+08 1.7435388E-24 + 1.2900000E+08 1.7432268E-24 + 1.2910000E+08 1.7429148E-24 + 1.2920000E+08 1.7426028E-24 + 1.2930000E+08 1.7422908E-24 + 1.2940000E+08 1.7419788E-24 + 1.2950000E+08 1.7416668E-24 + 1.2960000E+08 1.7413548E-24 + 1.2970000E+08 1.7410428E-24 + 1.2980000E+08 1.7407310E-24 + 1.2990000E+08 1.7404190E-24 + 1.3000000E+08 1.7401071E-24 + 1.3010000E+08 1.7397951E-24 + 1.3020000E+08 1.7394831E-24 + 1.3030000E+08 1.7391711E-24 + 1.3040000E+08 1.7388591E-24 + 1.3050000E+08 1.7385471E-24 + 1.3060000E+08 1.7382351E-24 + 1.3070000E+08 1.7379233E-24 + 1.3080000E+08 1.7376113E-24 + 1.3090000E+08 1.7372993E-24 + 1.3100000E+08 1.7369873E-24 + 1.3110000E+08 1.7366753E-24 + 1.3120000E+08 1.7363633E-24 + 1.3130000E+08 1.7360513E-24 + 1.3140000E+08 1.7357393E-24 + 1.3150000E+08 1.7354273E-24 + 1.3160000E+08 1.7351153E-24 + 1.3170000E+08 1.7348033E-24 + 1.3180000E+08 1.7344913E-24 + 1.3190000E+08 1.7341796E-24 + 1.3200000E+08 1.7338676E-24 + 1.3210000E+08 1.7335556E-24 + 1.3220000E+08 1.7332436E-24 + 1.3230000E+08 1.7329316E-24 + 1.3240000E+08 1.7326196E-24 + 1.3250000E+08 1.7323076E-24 + 1.3260000E+08 1.7319956E-24 + 1.3270000E+08 1.7316838E-24 + 1.3280000E+08 1.7313718E-24 + 1.3290000E+08 1.7310598E-24 + 1.3300000E+08 1.7307478E-24 + 1.3310000E+08 1.7304358E-24 + 1.3320000E+08 1.7301238E-24 + 1.3330000E+08 1.7298118E-24 + 1.3340000E+08 1.7294998E-24 + 1.3350000E+08 1.7291878E-24 + 1.3360000E+08 1.7288758E-24 + 1.3370000E+08 1.7285638E-24 + 1.3380000E+08 1.7282519E-24 + 1.3390000E+08 1.7279401E-24 + 1.3400000E+08 1.7276281E-24 + 1.3410000E+08 1.7273161E-24 + 1.3420000E+08 1.7270041E-24 + 1.3430000E+08 1.7266921E-24 + 1.3440000E+08 1.7263801E-24 + 1.3450000E+08 1.7260681E-24 + 1.3460000E+08 1.7257561E-24 + 1.3470000E+08 1.7254441E-24 + 1.3480000E+08 1.7251323E-24 + 1.3490000E+08 1.7248203E-24 + 1.3500000E+08 1.7245083E-24 + 1.3510000E+08 1.7241963E-24 + 1.3520000E+08 1.7238843E-24 + 1.3530000E+08 1.7235723E-24 + 1.3540000E+08 1.7232603E-24 + 1.3550000E+08 1.7229483E-24 + 1.3560000E+08 1.7226363E-24 + 1.3570000E+08 1.7223244E-24 + 1.3580000E+08 1.7220124E-24 + 1.3590000E+08 1.7217006E-24 + 1.3600000E+08 1.7213886E-24 + 1.3610000E+08 1.7210766E-24 + 1.3620000E+08 1.7207646E-24 + 1.3630000E+08 1.7204526E-24 + 1.3640000E+08 1.7201406E-24 + 1.3650000E+08 1.7198286E-24 + 1.3660000E+08 1.7195166E-24 + 1.3670000E+08 1.7192046E-24 + 1.3680000E+08 1.7188928E-24 + 1.3690000E+08 1.7185808E-24 + 1.3700000E+08 1.7182688E-24 + 1.3710000E+08 1.7179568E-24 + 1.3720000E+08 1.7176448E-24 + 1.3730000E+08 1.7173328E-24 + 1.3740000E+08 1.7170208E-24 + 1.3750000E+08 1.7167088E-24 + 1.3760000E+08 1.7163969E-24 + 1.3770000E+08 1.7160849E-24 + 1.3780000E+08 1.7157731E-24 + 1.3790000E+08 1.7154611E-24 + 1.3800000E+08 1.7151491E-24 + 1.3810000E+08 1.7148371E-24 + 1.3820000E+08 1.7145251E-24 + 1.3830000E+08 1.7142131E-24 + 1.3840000E+08 1.7139011E-24 + 1.3850000E+08 1.7135891E-24 + 1.3860000E+08 1.7132771E-24 + 1.3870000E+08 1.7129651E-24 + 1.3880000E+08 1.7126531E-24 + 1.3890000E+08 1.7123413E-24 + 1.3900000E+08 1.7120293E-24 + 1.3910000E+08 1.7117173E-24 + 1.3920000E+08 1.7114053E-24 + 1.3930000E+08 1.7110933E-24 + 1.3940000E+08 1.7107813E-24 + 1.3950000E+08 1.7104694E-24 + 1.3960000E+08 1.7101574E-24 + 1.3970000E+08 1.7098454E-24 + 1.3980000E+08 1.7095334E-24 + 1.3990000E+08 1.7092216E-24 + 1.4000000E+08 1.7089096E-24 + 1.4010000E+08 1.7085976E-24 + 1.4020000E+08 1.7082856E-24 + 1.4030000E+08 1.7079736E-24 + 1.4040000E+08 1.7076979E-24 + 1.4050000E+08 1.7074547E-24 + 1.4060000E+08 1.7072116E-24 + 1.4070000E+08 1.7069682E-24 + 1.4080000E+08 1.7067250E-24 + 1.4090000E+08 1.7064819E-24 + 1.4100000E+08 1.7062385E-24 + 1.4110000E+08 1.7059953E-24 + 1.4120000E+08 1.7057522E-24 + 1.4130000E+08 1.7055090E-24 + 1.4140000E+08 1.7052656E-24 + 1.4150000E+08 1.7050225E-24 + 1.4160000E+08 1.7047793E-24 + 1.4170000E+08 1.7045359E-24 + 1.4180000E+08 1.7042928E-24 + 1.4190000E+08 1.7040496E-24 + 1.4200000E+08 1.7038062E-24 + 1.4210000E+08 1.7035631E-24 + 1.4220000E+08 1.7033199E-24 + 1.4230000E+08 1.7030765E-24 + 1.4240000E+08 1.7028334E-24 + 1.4250000E+08 1.7025902E-24 + 1.4260000E+08 1.7023468E-24 + 1.4270000E+08 1.7021037E-24 + 1.4280000E+08 1.7018605E-24 + 1.4290000E+08 1.7016171E-24 + 1.4300000E+08 1.7013740E-24 + 1.4310000E+08 1.7011308E-24 + 1.4320000E+08 1.7008876E-24 + 1.4330000E+08 1.7006443E-24 + 1.4340000E+08 1.7004011E-24 + 1.4350000E+08 1.7001580E-24 + 1.4360000E+08 1.6999146E-24 + 1.4370000E+08 1.6996714E-24 + 1.4380000E+08 1.6994283E-24 + 1.4390000E+08 1.6991849E-24 + 1.4400000E+08 1.6989417E-24 + 1.4410000E+08 1.6986986E-24 + 1.4420000E+08 1.6984552E-24 + 1.4430000E+08 1.6982120E-24 + 1.4440000E+08 1.6979689E-24 + 1.4450000E+08 1.6977255E-24 + 1.4460000E+08 1.6974823E-24 + 1.4470000E+08 1.6972392E-24 + 1.4480000E+08 1.6969960E-24 + 1.4490000E+08 1.6967526E-24 + 1.4500000E+08 1.6965095E-24 + 1.4510000E+08 1.6962663E-24 + 1.4520000E+08 1.6960229E-24 + 1.4530000E+08 1.6957798E-24 + 1.4540000E+08 1.6955366E-24 + 1.4550000E+08 1.6952932E-24 + 1.4560000E+08 1.6950501E-24 + 1.4570000E+08 1.6948069E-24 + 1.4580000E+08 1.6945635E-24 + 1.4590000E+08 1.6943204E-24 + 1.4600000E+08 1.6940772E-24 + 1.4610000E+08 1.6938339E-24 + 1.4620000E+08 1.6935907E-24 + 1.4630000E+08 1.6933475E-24 + 1.4640000E+08 1.6931042E-24 + 1.4650000E+08 1.6928610E-24 + 1.4660000E+08 1.6926178E-24 + 1.4670000E+08 1.6923747E-24 + 1.4680000E+08 1.6921313E-24 + 1.4690000E+08 1.6918881E-24 + 1.4700000E+08 1.6916450E-24 + 1.4710000E+08 1.6914016E-24 + 1.4720000E+08 1.6911584E-24 + 1.4730000E+08 1.6909153E-24 + 1.4740000E+08 1.6906719E-24 + 1.4750000E+08 1.6904287E-24 + 1.4760000E+08 1.6901856E-24 + 1.4770000E+08 1.6899422E-24 + 1.4780000E+08 1.6896990E-24 + 1.4790000E+08 1.6894559E-24 + 1.4800000E+08 1.6892125E-24 + 1.4810000E+08 1.6889693E-24 + 1.4820000E+08 1.6887262E-24 + 1.4830000E+08 1.6884830E-24 + 1.4840000E+08 1.6882396E-24 + 1.4850000E+08 1.6879965E-24 + 1.4860000E+08 1.6877533E-24 + 1.4870000E+08 1.6875099E-24 + 1.4880000E+08 1.6872668E-24 + 1.4890000E+08 1.6870236E-24 + 1.4900000E+08 1.6867803E-24 + 1.4910000E+08 1.6865371E-24 + 1.4920000E+08 1.6862939E-24 + 1.4930000E+08 1.6860506E-24 + 1.4940000E+08 1.6858074E-24 + 1.4950000E+08 1.6855642E-24 + 1.4960000E+08 1.6853209E-24 + 1.4970000E+08 1.6850777E-24 + 1.4980000E+08 1.6848345E-24 + 1.4990000E+08 1.6845914E-24 + 1.5000000E+08 1.6843480E-24 + 1.5010000E+08 1.6841048E-24 + 1.5020000E+08 1.6838617E-24 + 1.5030000E+08 1.6836183E-24 + 1.5040000E+08 1.6833751E-24 + 1.5050000E+08 1.6831320E-24 + 1.5060000E+08 1.6828886E-24 + 1.5070000E+08 1.6826454E-24 + 1.5080000E+08 1.6824023E-24 + 1.5090000E+08 1.6821589E-24 + 1.5100000E+08 1.6819157E-24 + 1.5110000E+08 1.6816726E-24 + 1.5120000E+08 1.6814292E-24 + 1.5130000E+08 1.6811860E-24 + 1.5140000E+08 1.6809429E-24 + 1.5150000E+08 1.6806995E-24 + 1.5160000E+08 1.6804563E-24 + 1.5170000E+08 1.6802132E-24 + 1.5180000E+08 1.6799700E-24 + 1.5190000E+08 1.6797267E-24 + 1.5200000E+08 1.6794835E-24 + 1.5210000E+08 1.6792403E-24 + 1.5220000E+08 1.6789970E-24 + 1.5230000E+08 1.6787538E-24 + 1.5240000E+08 1.6785106E-24 + 1.5250000E+08 1.6782673E-24 + 1.5260000E+08 1.6780241E-24 + 1.5270000E+08 1.6777809E-24 + 1.5280000E+08 1.6775376E-24 + 1.5290000E+08 1.6772944E-24 + 1.5300000E+08 1.6770512E-24 + 1.5310000E+08 1.6768079E-24 + 1.5320000E+08 1.6765647E-24 + 1.5330000E+08 1.6763215E-24 + 1.5340000E+08 1.6760784E-24 + 1.5350000E+08 1.6758350E-24 + 1.5360000E+08 1.6755918E-24 + 1.5370000E+08 1.6753487E-24 + 1.5380000E+08 1.6751053E-24 + 1.5390000E+08 1.6748621E-24 + 1.5400000E+08 1.6746190E-24 + 1.5410000E+08 1.6743756E-24 + 1.5420000E+08 1.6741324E-24 + 1.5430000E+08 1.6738893E-24 + 1.5440000E+08 1.6736459E-24 + 1.5450000E+08 1.6734027E-24 + 1.5460000E+08 1.6731596E-24 + 1.5470000E+08 1.6729162E-24 + 1.5480000E+08 1.6726731E-24 + 1.5490000E+08 1.6724299E-24 + 1.5500000E+08 1.6721865E-24 + 1.5510000E+08 1.6719434E-24 + 1.5520000E+08 1.6717002E-24 + 1.5530000E+08 1.6714570E-24 + 1.5540000E+08 1.6712137E-24 + 1.5550000E+08 1.6709705E-24 + 1.5560000E+08 1.6707273E-24 + 1.5570000E+08 1.6704840E-24 + 1.5580000E+08 1.6702408E-24 + 1.5590000E+08 1.6699976E-24 + 1.5600000E+08 1.6697543E-24 + 1.5610000E+08 1.6695111E-24 + 1.5620000E+08 1.6692679E-24 + 1.5630000E+08 1.6690246E-24 + 1.5640000E+08 1.6687814E-24 + 1.5650000E+08 1.6685382E-24 + 1.5660000E+08 1.6682949E-24 + 1.5670000E+08 1.6680517E-24 + 1.5680000E+08 1.6678085E-24 + 1.5690000E+08 1.6675654E-24 + 1.5700000E+08 1.6673220E-24 + 1.5710000E+08 1.6670788E-24 + 1.5720000E+08 1.6668357E-24 + 1.5730000E+08 1.6665923E-24 + 1.5740000E+08 1.6663491E-24 + 1.5750000E+08 1.6661060E-24 + 1.5760000E+08 1.6658626E-24 + 1.5770000E+08 1.6656195E-24 + 1.5780000E+08 1.6653763E-24 + 1.5790000E+08 1.6651329E-24 + 1.5800000E+08 1.6648898E-24 + 1.5810000E+08 1.6646466E-24 + 1.5820000E+08 1.6644032E-24 + 1.5830000E+08 1.6641601E-24 + 1.5840000E+08 1.6639169E-24 + 1.5850000E+08 1.6636735E-24 + 1.5860000E+08 1.6634304E-24 + 1.5870000E+08 1.6631872E-24 + 1.5880000E+08 1.6629440E-24 + 1.5890000E+08 1.6627007E-24 + 1.5900000E+08 1.6624575E-24 + 1.5910000E+08 1.6622143E-24 + 1.5920000E+08 1.6619710E-24 + 1.5930000E+08 1.6617278E-24 + 1.5940000E+08 1.6614846E-24 + 1.5950000E+08 1.6612413E-24 + 1.5960000E+08 1.6609981E-24 + 1.5970000E+08 1.6607549E-24 + 1.5980000E+08 1.6605116E-24 + 1.5990000E+08 1.6602684E-24 + 1.6000000E+08 1.6600252E-24 + 1.6010000E+08 1.6597819E-24 + 1.6020000E+08 1.6595387E-24 + 1.6030000E+08 1.6592956E-24 + 1.6040000E+08 1.6590524E-24 + 1.6050000E+08 1.6588090E-24 + 1.6060000E+08 1.6585659E-24 + 1.6070000E+08 1.6583227E-24 + 1.6080000E+08 1.6580793E-24 + 1.6090000E+08 1.6578362E-24 + 1.6100000E+08 1.6575930E-24 + 1.6110000E+08 1.6573496E-24 + 1.6120000E+08 1.6571065E-24 + 1.6130000E+08 1.6568633E-24 + 1.6140000E+08 1.6566199E-24 + 1.6150000E+08 1.6563768E-24 + 1.6160000E+08 1.6561336E-24 + 1.6170000E+08 1.6558902E-24 + 1.6180000E+08 1.6556471E-24 + 1.6190000E+08 1.6554039E-24 + 1.6200000E+08 1.6551605E-24 + 1.6210000E+08 1.6549174E-24 + 1.6220000E+08 1.6546742E-24 + 1.6230000E+08 1.6544310E-24 + 1.6240000E+08 1.6541877E-24 + 1.6250000E+08 1.6539445E-24 + 1.6260000E+08 1.6537012E-24 + 1.6270000E+08 1.6534581E-24 + 1.6280000E+08 1.6532148E-24 + 1.6290000E+08 1.6529715E-24 + 1.6300000E+08 1.6527284E-24 + 1.6310000E+08 1.6524851E-24 + 1.6320000E+08 1.6522419E-24 + 1.6330000E+08 1.6519987E-24 + 1.6340000E+08 1.6517554E-24 + 1.6350000E+08 1.6515122E-24 + 1.6360000E+08 1.6512690E-24 + 1.6370000E+08 1.6510257E-24 + 1.6380000E+08 1.6507825E-24 + 1.6390000E+08 1.6505393E-24 + 1.6400000E+08 1.6502960E-24 + 1.6410000E+08 1.6500529E-24 + 1.6420000E+08 1.6498096E-24 + 1.6430000E+08 1.6495664E-24 + 1.6440000E+08 1.6493232E-24 + 1.6450000E+08 1.6490799E-24 + 1.6460000E+08 1.6488367E-24 + 1.6470000E+08 1.6485935E-24 + 1.6480000E+08 1.6483502E-24 + 1.6490000E+08 1.6481070E-24 + 1.6500000E+08 1.6478638E-24 + 1.6510000E+08 1.6476205E-24 + 1.6520000E+08 1.6473773E-24 + 1.6530000E+08 1.6471341E-24 + 1.6540000E+08 1.6468908E-24 + 1.6550000E+08 1.6466476E-24 + 1.6560000E+08 1.6464044E-24 + 1.6570000E+08 1.6461612E-24 + 1.6580000E+08 1.6459179E-24 + 1.6590000E+08 1.6456747E-24 + 1.6600000E+08 1.6454315E-24 + 1.6610000E+08 1.6451883E-24 + 1.6620000E+08 1.6449451E-24 + 1.6630000E+08 1.6447018E-24 + 1.6640000E+08 1.6444586E-24 + 1.6650000E+08 1.6442154E-24 + 1.6660000E+08 1.6439721E-24 + 1.6670000E+08 1.6437289E-24 + 1.6680000E+08 1.6434857E-24 + 1.6690000E+08 1.6432424E-24 + 1.6700000E+08 1.6429992E-24 + 1.6710000E+08 1.6427560E-24 + 1.6720000E+08 1.6425127E-24 + 1.6730000E+08 1.6422696E-24 + 1.6740000E+08 1.6420263E-24 + 1.6750000E+08 1.6417830E-24 + 1.6760000E+08 1.6415399E-24 + 1.6770000E+08 1.6412966E-24 + 1.6780000E+08 1.6410534E-24 + 1.6790000E+08 1.6408102E-24 + 1.6800000E+08 1.6405669E-24 + 1.6810000E+08 1.6403237E-24 + 1.6820000E+08 1.6400805E-24 + 1.6830000E+08 1.6398372E-24 + 1.6840000E+08 1.6395940E-24 + 1.6850000E+08 1.6393508E-24 + 1.6860000E+08 1.6391075E-24 + 1.6870000E+08 1.6388643E-24 + 1.6880000E+08 1.6386211E-24 + 1.6890000E+08 1.6383778E-24 + 1.6900000E+08 1.6381347E-24 + 1.6910000E+08 1.6378914E-24 + 1.6920000E+08 1.6376482E-24 + 1.6930000E+08 1.6374050E-24 + 1.6940000E+08 1.6371618E-24 + 1.6950000E+08 1.6369185E-24 + 1.6960000E+08 1.6366753E-24 + 1.6970000E+08 1.6364321E-24 + 1.6980000E+08 1.6361888E-24 + 1.6990000E+08 1.6359456E-24 + 1.7000000E+08 1.6357024E-24 + 1.7010000E+08 1.6354591E-24 + 1.7020000E+08 1.6352159E-24 + 1.7030000E+08 1.6349727E-24 + 1.7040000E+08 1.6347294E-24 + 1.7050000E+08 1.6344862E-24 + 1.7060000E+08 1.6342430E-24 + 1.7070000E+08 1.6339997E-24 + 1.7080000E+08 1.6337566E-24 + 1.7090000E+08 1.6335133E-24 + 1.7100000E+08 1.6332700E-24 + 1.7110000E+08 1.6330269E-24 + 1.7120000E+08 1.6327836E-24 + 1.7130000E+08 1.6325404E-24 + 1.7140000E+08 1.6322972E-24 + 1.7150000E+08 1.6320539E-24 + 1.7160000E+08 1.6318107E-24 + 1.7170000E+08 1.6315675E-24 + 1.7180000E+08 1.6313242E-24 + 1.7190000E+08 1.6310811E-24 + 1.7200000E+08 1.6308378E-24 + 1.7210000E+08 1.6305945E-24 + 1.7220000E+08 1.6303514E-24 + 1.7230000E+08 1.6301081E-24 + 1.7240000E+08 1.6298649E-24 + 1.7250000E+08 1.6296217E-24 + 1.7260000E+08 1.6293784E-24 + 1.7270000E+08 1.6291352E-24 + 1.7280000E+08 1.6288920E-24 + 1.7290000E+08 1.6286487E-24 + 1.7300000E+08 1.6284055E-24 + 1.7310000E+08 1.6281623E-24 + 1.7320000E+08 1.6279191E-24 + 1.7330000E+08 1.6276758E-24 + 1.7340000E+08 1.6274326E-24 + 1.7350000E+08 1.6271894E-24 + 1.7360000E+08 1.6269461E-24 + 1.7370000E+08 1.6267029E-24 + 1.7380000E+08 1.6264597E-24 + 1.7390000E+08 1.6262164E-24 + 1.7400000E+08 1.6259733E-24 + 1.7410000E+08 1.6257300E-24 + 1.7420000E+08 1.6254867E-24 + 1.7430000E+08 1.6252436E-24 + 1.7440000E+08 1.6250003E-24 + 1.7450000E+08 1.6247571E-24 + 1.7460000E+08 1.6245139E-24 + 1.7470000E+08 1.6242706E-24 + 1.7480000E+08 1.6240275E-24 + 1.7490000E+08 1.6237842E-24 + 1.7500000E+08 1.6235409E-24 + 1.7510000E+08 1.6232978E-24 + 1.7520000E+08 1.6230545E-24 + 1.7530000E+08 1.6228112E-24 + 1.7540000E+08 1.6225681E-24 + 1.7550000E+08 1.6223248E-24 + 1.7560000E+08 1.6220815E-24 + 1.7570000E+08 1.6218384E-24 + 1.7580000E+08 1.6215951E-24 + 1.7590000E+08 1.6213519E-24 + 1.7600000E+08 1.6211087E-24 + 1.7610000E+08 1.6208654E-24 + 1.7620000E+08 1.6206222E-24 + 1.7630000E+08 1.6203790E-24 + 1.7640000E+08 1.6201358E-24 + 1.7650000E+08 1.6198925E-24 + 1.7660000E+08 1.6196493E-24 + 1.7670000E+08 1.6194061E-24 + 1.7680000E+08 1.6191628E-24 + 1.7690000E+08 1.6189196E-24 + 1.7700000E+08 1.6186764E-24 + 1.7710000E+08 1.6184331E-24 + 1.7720000E+08 1.6181899E-24 + 1.7730000E+08 1.6179467E-24 + 1.7740000E+08 1.6177035E-24 + 1.7750000E+08 1.6174603E-24 + 1.7760000E+08 1.6172170E-24 + 1.7770000E+08 1.6169738E-24 + 1.7780000E+08 1.6167643E-24 + 1.7790000E+08 1.6165712E-24 + 1.7800000E+08 1.6163783E-24 + 1.7810000E+08 1.6161853E-24 + 1.7820000E+08 1.6159922E-24 + 1.7830000E+08 1.6157992E-24 + 1.7840000E+08 1.6156063E-24 + 1.7850000E+08 1.6154132E-24 + 1.7860000E+08 1.6152202E-24 + 1.7870000E+08 1.6150272E-24 + 1.7880000E+08 1.6148342E-24 + 1.7890000E+08 1.6146412E-24 + 1.7900000E+08 1.6144482E-24 + 1.7910000E+08 1.6142551E-24 + 1.7920000E+08 1.6140622E-24 + 1.7930000E+08 1.6138692E-24 + 1.7940000E+08 1.6136761E-24 + 1.7950000E+08 1.6134831E-24 + 1.7960000E+08 1.6132902E-24 + 1.7970000E+08 1.6130971E-24 + 1.7980000E+08 1.6129041E-24 + 1.7990000E+08 1.6127111E-24 + 1.8000000E+08 1.6125181E-24 + 1.8010000E+08 1.6123251E-24 + 1.8020000E+08 1.6121321E-24 + 1.8030000E+08 1.6119390E-24 + 1.8040000E+08 1.6117461E-24 + 1.8050000E+08 1.6115531E-24 + 1.8060000E+08 1.6113600E-24 + 1.8070000E+08 1.6111670E-24 + 1.8080000E+08 1.6109741E-24 + 1.8090000E+08 1.6107810E-24 + 1.8100000E+08 1.6105880E-24 + 1.8110000E+08 1.6103950E-24 + 1.8120000E+08 1.6102020E-24 + 1.8130000E+08 1.6100090E-24 + 1.8140000E+08 1.6098160E-24 + 1.8150000E+08 1.6096230E-24 + 1.8160000E+08 1.6094300E-24 + 1.8170000E+08 1.6092370E-24 + 1.8180000E+08 1.6090439E-24 + 1.8190000E+08 1.6088510E-24 + 1.8200000E+08 1.6086580E-24 + 1.8210000E+08 1.6084649E-24 + 1.8220000E+08 1.6082719E-24 + 1.8230000E+08 1.6080790E-24 + 1.8240000E+08 1.6078859E-24 + 1.8250000E+08 1.6076929E-24 + 1.8260000E+08 1.6074999E-24 + 1.8270000E+08 1.6073069E-24 + 1.8280000E+08 1.6071139E-24 + 1.8290000E+08 1.6069209E-24 + 1.8300000E+08 1.6067278E-24 + 1.8310000E+08 1.6065349E-24 + 1.8320000E+08 1.6063419E-24 + 1.8330000E+08 1.6061488E-24 + 1.8340000E+08 1.6059558E-24 + 1.8350000E+08 1.6057629E-24 + 1.8360000E+08 1.6055698E-24 + 1.8370000E+08 1.6053768E-24 + 1.8380000E+08 1.6051838E-24 + 1.8390000E+08 1.6049908E-24 + 1.8400000E+08 1.6047978E-24 + 1.8410000E+08 1.6046048E-24 + 1.8420000E+08 1.6044117E-24 + 1.8430000E+08 1.6042188E-24 + 1.8440000E+08 1.6040258E-24 + 1.8450000E+08 1.6038327E-24 + 1.8460000E+08 1.6036397E-24 + 1.8470000E+08 1.6034468E-24 + 1.8480000E+08 1.6032537E-24 + 1.8490000E+08 1.6030607E-24 + 1.8500000E+08 1.6028677E-24 + 1.8510000E+08 1.6026747E-24 + 1.8520000E+08 1.6024817E-24 + 1.8530000E+08 1.6022887E-24 + 1.8540000E+08 1.6020956E-24 + 1.8550000E+08 1.6019027E-24 + 1.8560000E+08 1.6017097E-24 + 1.8570000E+08 1.6015166E-24 + 1.8580000E+08 1.6013236E-24 + 1.8590000E+08 1.6011307E-24 + 1.8600000E+08 1.6009376E-24 + 1.8610000E+08 1.6007446E-24 + 1.8620000E+08 1.6005516E-24 + 1.8630000E+08 1.6003586E-24 + 1.8640000E+08 1.6001656E-24 + 1.8650000E+08 1.5999726E-24 + 1.8660000E+08 1.5997795E-24 + 1.8670000E+08 1.5995866E-24 + 1.8680000E+08 1.5993936E-24 + 1.8690000E+08 1.5992005E-24 + 1.8700000E+08 1.5990075E-24 + 1.8710000E+08 1.5988145E-24 + 1.8720000E+08 1.5986215E-24 + 1.8730000E+08 1.5984285E-24 + 1.8740000E+08 1.5982354E-24 + 1.8750000E+08 1.5980425E-24 + 1.8760000E+08 1.5978495E-24 + 1.8770000E+08 1.5976565E-24 + 1.8780000E+08 1.5974634E-24 + 1.8790000E+08 1.5972705E-24 + 1.8800000E+08 1.5970775E-24 + 1.8810000E+08 1.5968844E-24 + 1.8820000E+08 1.5966915E-24 + 1.8830000E+08 1.5964985E-24 + 1.8840000E+08 1.5963054E-24 + 1.8850000E+08 1.5961124E-24 + 1.8860000E+08 1.5959195E-24 + 1.8870000E+08 1.5957264E-24 + 1.8880000E+08 1.5955334E-24 + 1.8890000E+08 1.5953404E-24 + 1.8900000E+08 1.5951474E-24 + 1.8910000E+08 1.5949544E-24 + 1.8920000E+08 1.5947614E-24 + 1.8930000E+08 1.5945683E-24 + 1.8940000E+08 1.5943754E-24 + 1.8950000E+08 1.5941824E-24 + 1.8960000E+08 1.5939893E-24 + 1.8970000E+08 1.5937963E-24 + 1.8980000E+08 1.5936034E-24 + 1.8990000E+08 1.5934103E-24 + 1.9000000E+08 1.5932173E-24 + 1.9010000E+08 1.5930243E-24 + 1.9020000E+08 1.5928313E-24 + 1.9030000E+08 1.5926383E-24 + 1.9040000E+08 1.5924453E-24 + 1.9050000E+08 1.5922522E-24 + 1.9060000E+08 1.5920593E-24 + 1.9070000E+08 1.5918662E-24 + 1.9080000E+08 1.5916732E-24 + 1.9090000E+08 1.5914802E-24 + 1.9100000E+08 1.5912872E-24 + 1.9110000E+08 1.5910943E-24 + 1.9120000E+08 1.5909012E-24 + 1.9130000E+08 1.5907082E-24 + 1.9140000E+08 1.5905152E-24 + 1.9150000E+08 1.5903222E-24 + 1.9160000E+08 1.5901292E-24 + 1.9170000E+08 1.5899361E-24 + 1.9180000E+08 1.5897432E-24 + 1.9190000E+08 1.5895502E-24 + 1.9200000E+08 1.5893571E-24 + 1.9210000E+08 1.5891641E-24 + 1.9220000E+08 1.5889712E-24 + 1.9230000E+08 1.5887781E-24 + 1.9240000E+08 1.5885851E-24 + 1.9250000E+08 1.5883921E-24 + 1.9260000E+08 1.5881991E-24 + 1.9270000E+08 1.5880061E-24 + 1.9280000E+08 1.5878131E-24 + 1.9290000E+08 1.5876200E-24 + 1.9300000E+08 1.5874271E-24 + 1.9310000E+08 1.5872341E-24 + 1.9320000E+08 1.5870410E-24 + 1.9330000E+08 1.5868480E-24 + 1.9340000E+08 1.5866551E-24 + 1.9350000E+08 1.5864620E-24 + 1.9360000E+08 1.5862690E-24 + 1.9370000E+08 1.5860760E-24 + 1.9380000E+08 1.5858830E-24 + 1.9390000E+08 1.5856900E-24 + 1.9400000E+08 1.5854970E-24 + 1.9410000E+08 1.5853039E-24 + 1.9420000E+08 1.5851110E-24 + 1.9430000E+08 1.5849179E-24 + 1.9440000E+08 1.5847249E-24 + 1.9450000E+08 1.5845319E-24 + 1.9460000E+08 1.5843390E-24 + 1.9470000E+08 1.5841459E-24 + 1.9480000E+08 1.5839529E-24 + 1.9490000E+08 1.5837599E-24 + 1.9500000E+08 1.5835669E-24 + 1.9510000E+08 1.5833739E-24 + 1.9520000E+08 1.5831809E-24 + 1.9530000E+08 1.5829879E-24 + 1.9540000E+08 1.5827949E-24 + 1.9550000E+08 1.5826019E-24 + 1.9560000E+08 1.5824088E-24 + 1.9570000E+08 1.5822159E-24 + 1.9580000E+08 1.5820229E-24 + 1.9590000E+08 1.5818298E-24 + 1.9600000E+08 1.5816368E-24 + 1.9610000E+08 1.5814439E-24 + 1.9620000E+08 1.5812508E-24 + 1.9630000E+08 1.5810578E-24 + 1.9640000E+08 1.5808648E-24 + 1.9650000E+08 1.5806718E-24 + 1.9660000E+08 1.5804788E-24 + 1.9670000E+08 1.5802858E-24 + 1.9680000E+08 1.5800927E-24 + 1.9690000E+08 1.5798998E-24 + 1.9700000E+08 1.5797068E-24 + 1.9710000E+08 1.5795137E-24 + 1.9720000E+08 1.5793207E-24 + 1.9730000E+08 1.5791278E-24 + 1.9740000E+08 1.5789347E-24 + 1.9750000E+08 1.5787417E-24 + 1.9760000E+08 1.5785486E-24 + 1.9770000E+08 1.5783557E-24 + 1.9780000E+08 1.5781627E-24 + 1.9790000E+08 1.5779696E-24 + 1.9800000E+08 1.5777766E-24 + 1.9810000E+08 1.5775837E-24 + 1.9820000E+08 1.5773907E-24 + 1.9830000E+08 1.5771976E-24 + 1.9840000E+08 1.5770046E-24 + 1.9850000E+08 1.5768117E-24 + 1.9860000E+08 1.5766186E-24 + 1.9870000E+08 1.5764256E-24 + 1.9880000E+08 1.5762326E-24 + 1.9890000E+08 1.5760396E-24 + 1.9900000E+08 1.5758466E-24 + 1.9910000E+08 1.5756536E-24 + 1.9920000E+08 1.5754605E-24 + 1.9930000E+08 1.5752676E-24 + 1.9940000E+08 1.5750746E-24 + 1.9950000E+08 1.5748815E-24 + 1.9960000E+08 1.5746885E-24 + 1.9970000E+08 1.5744956E-24 + 1.9980000E+08 1.5743025E-24 + 1.9990000E+08 1.5741095E-24 + 2.0000000E+08 1.5739165E-24 + 2.0010000E+08 1.5737235E-24 + 2.0020000E+08 1.5735305E-24 + 2.0030000E+08 1.5733375E-24 + 2.0040000E+08 1.5731444E-24 + 2.0050000E+08 1.5729515E-24 + 2.0060000E+08 1.5727585E-24 + 2.0070000E+08 1.5725654E-24 + 2.0080000E+08 1.5723724E-24 + 2.0090000E+08 1.5721795E-24 + 2.0100000E+08 1.5719864E-24 + 2.0110000E+08 1.5717934E-24 + 2.0120000E+08 1.5716003E-24 + 2.0130000E+08 1.5714074E-24 + 2.0140000E+08 1.5712144E-24 + 2.0150000E+08 1.5710213E-24 + 2.0160000E+08 1.5708283E-24 + 2.0170000E+08 1.5706354E-24 + 2.0180000E+08 1.5704424E-24 + 2.0190000E+08 1.5702493E-24 + 2.0200000E+08 1.5700564E-24 + 2.0210000E+08 1.5698634E-24 + 2.0220000E+08 1.5696703E-24 + 2.0230000E+08 1.5694773E-24 + 2.0240000E+08 1.5692844E-24 + 2.0250000E+08 1.5690913E-24 + 2.0260000E+08 1.5688983E-24 + 2.0270000E+08 1.5687053E-24 + 2.0280000E+08 1.5685123E-24 + 2.0290000E+08 1.5683193E-24 + 2.0300000E+08 1.5681263E-24 + 2.0310000E+08 1.5679332E-24 + 2.0320000E+08 1.5677403E-24 + 2.0330000E+08 1.5675473E-24 + 2.0340000E+08 1.5673542E-24 + 2.0350000E+08 1.5671612E-24 + 2.0360000E+08 1.5669683E-24 + 2.0370000E+08 1.5667752E-24 + 2.0380000E+08 1.5665822E-24 + 2.0390000E+08 1.5663892E-24 + 2.0400000E+08 1.5661962E-24 + 2.0410000E+08 1.5660032E-24 + 2.0420000E+08 1.5658102E-24 + 2.0430000E+08 1.5656171E-24 + 2.0440000E+08 1.5654242E-24 + 2.0450000E+08 1.5652311E-24 + 2.0460000E+08 1.5650381E-24 + 2.0470000E+08 1.5648451E-24 + 2.0480000E+08 1.5646521E-24 + 2.0490000E+08 1.5644591E-24 + 2.0500000E+08 1.5642661E-24 + 2.0510000E+08 1.5640731E-24 + 2.0520000E+08 1.5638801E-24 + 2.0530000E+08 1.5636871E-24 + 2.0540000E+08 1.5634941E-24 + 2.0550000E+08 1.5633010E-24 + 2.0560000E+08 1.5631081E-24 + 2.0570000E+08 1.5629151E-24 + 2.0580000E+08 1.5627220E-24 + 2.0590000E+08 1.5625290E-24 + 2.0600000E+08 1.5623361E-24 + 2.0610000E+08 1.5621430E-24 + 2.0620000E+08 1.5619500E-24 + 2.0630000E+08 1.5617570E-24 + 2.0640000E+08 1.5615640E-24 + 2.0650000E+08 1.5613710E-24 + 2.0660000E+08 1.5611780E-24 + 2.0670000E+08 1.5609849E-24 + 2.0680000E+08 1.5607920E-24 + 2.0690000E+08 1.5605990E-24 + 2.0700000E+08 1.5604059E-24 + 2.0710000E+08 1.5602129E-24 + 2.0720000E+08 1.5600200E-24 + 2.0730000E+08 1.5598269E-24 + 2.0740000E+08 1.5596339E-24 + 2.0750000E+08 1.5594409E-24 + 2.0760000E+08 1.5592479E-24 + 2.0770000E+08 1.5590549E-24 + 2.0780000E+08 1.5588618E-24 + 2.0790000E+08 1.5586688E-24 + 2.0800000E+08 1.5584759E-24 + 2.0810000E+08 1.5582828E-24 + 2.0820000E+08 1.5580898E-24 + 2.0830000E+08 1.5578968E-24 + 2.0840000E+08 1.5577038E-24 + 2.0850000E+08 1.5575108E-24 + 2.0860000E+08 1.5573178E-24 + 2.0870000E+08 1.5571248E-24 + 2.0880000E+08 1.5569318E-24 + 2.0890000E+08 1.5567388E-24 + 2.0900000E+08 1.5565458E-24 + 2.0910000E+08 1.5563528E-24 + 2.0920000E+08 1.5561598E-24 + 2.0930000E+08 1.5559668E-24 + 2.0940000E+08 1.5557737E-24 + 2.0950000E+08 1.5555808E-24 + 2.0960000E+08 1.5553878E-24 + 2.0970000E+08 1.5551947E-24 + 2.0980000E+08 1.5550017E-24 + 2.0990000E+08 1.5548088E-24 + 2.1000000E+08 1.5546157E-24 + 2.1010000E+08 1.5544227E-24 + 2.1020000E+08 1.5542297E-24 + 2.1030000E+08 1.5540367E-24 + 2.1040000E+08 1.5538437E-24 + 2.1050000E+08 1.5536507E-24 + 2.1060000E+08 1.5534576E-24 + 2.1070000E+08 1.5532647E-24 + 2.1080000E+08 1.5530717E-24 + 2.1090000E+08 1.5528786E-24 + 2.1100000E+08 1.5526856E-24 + 2.1110000E+08 1.5524927E-24 + 2.1120000E+08 1.5522996E-24 + 2.1130000E+08 1.5521066E-24 + 2.1140000E+08 1.5519136E-24 + 2.1150000E+08 1.5517206E-24 + 2.1160000E+08 1.5515276E-24 + 2.1170000E+08 1.5513345E-24 + 2.1180000E+08 1.5511415E-24 + 2.1190000E+08 1.5509486E-24 + 2.1200000E+08 1.5507555E-24 + 2.1210000E+08 1.5505625E-24 + 2.1220000E+08 1.5503695E-24 + 2.1230000E+08 1.5501766E-24 + 2.1240000E+08 1.5499835E-24 + 2.1250000E+08 1.5497905E-24 + 2.1260000E+08 1.5495975E-24 + 2.1270000E+08 1.5494045E-24 + 2.1280000E+08 1.5492115E-24 + 2.1290000E+08 1.5490185E-24 + 2.1300000E+08 1.5488254E-24 + 2.1310000E+08 1.5486325E-24 + 2.1320000E+08 1.5484395E-24 + 2.1330000E+08 1.5482464E-24 + 2.1340000E+08 1.5480534E-24 + 2.1350000E+08 1.5478605E-24 + 2.1360000E+08 1.5476674E-24 + 2.1370000E+08 1.5474744E-24 + 2.1380000E+08 1.5472814E-24 + 2.1390000E+08 1.5470884E-24 + 2.1400000E+08 1.5468954E-24 + 2.1410000E+08 1.5467024E-24 + 2.1420000E+08 1.5465093E-24 + 2.1430000E+08 1.5463164E-24 + 2.1440000E+08 1.5461234E-24 + 2.1450000E+08 1.5459303E-24 + 2.1460000E+08 1.5457373E-24 + 2.1470000E+08 1.5455444E-24 + 2.1480000E+08 1.5453513E-24 + 2.1490000E+08 1.5451583E-24 + 2.1500000E+08 1.5449652E-24 + 2.1510000E+08 1.5447723E-24 + 2.1520000E+08 1.5445793E-24 + 2.1530000E+08 1.5443862E-24 + 2.1540000E+08 1.5441932E-24 + 2.1550000E+08 1.5440003E-24 + 2.1560000E+08 1.5438072E-24 + 2.1570000E+08 1.5436142E-24 + 2.1580000E+08 1.5434213E-24 + 2.1590000E+08 1.5432283E-24 + 2.1600000E+08 1.5430352E-24 + 2.1610000E+08 1.5428422E-24 + 2.1620000E+08 1.5426493E-24 + 2.1630000E+08 1.5424562E-24 + 2.1640000E+08 1.5422632E-24 + 2.1650000E+08 1.5420702E-24 + 2.1660000E+08 1.5418772E-24 + 2.1670000E+08 1.5416842E-24 + 2.1680000E+08 1.5414912E-24 + 2.1690000E+08 1.5412981E-24 + 2.1700000E+08 1.5411052E-24 + 2.1710000E+08 1.5409122E-24 + 2.1720000E+08 1.5407191E-24 + 2.1730000E+08 1.5405261E-24 + 2.1740000E+08 1.5403332E-24 + 2.1750000E+08 1.5401401E-24 + 2.1760000E+08 1.5399471E-24 + 2.1770000E+08 1.5397541E-24 + 2.1780000E+08 1.5395611E-24 + 2.1790000E+08 1.5393681E-24 + 2.1800000E+08 1.5391751E-24 + 2.1810000E+08 1.5389820E-24 + 2.1820000E+08 1.5387891E-24 + 2.1830000E+08 1.5385961E-24 + 2.1840000E+08 1.5384030E-24 + 2.1850000E+08 1.5382100E-24 + 2.1860000E+08 1.5380170E-24 + 2.1870000E+08 1.5378240E-24 + 2.1880000E+08 1.5376310E-24 + 2.1890000E+08 1.5374379E-24 + 2.1900000E+08 1.5372450E-24 + 2.1910000E+08 1.5370520E-24 + 2.1920000E+08 1.5368590E-24 + 2.1930000E+08 1.5366659E-24 + 2.1940000E+08 1.5364730E-24 + 2.1950000E+08 1.5362800E-24 + 2.1960000E+08 1.5360869E-24 + 2.1970000E+08 1.5358939E-24 + 2.1980000E+08 1.5357010E-24 + 2.1990000E+08 1.5355079E-24 + 2.2000000E+08 1.5353149E-24 + 2.2010000E+08 1.5351219E-24 + 2.2020000E+08 1.5349289E-24 + 2.2030000E+08 1.5347359E-24 + 2.2040000E+08 1.5345429E-24 + 2.2050000E+08 1.5343498E-24 + 2.2060000E+08 1.5341569E-24 + 2.2070000E+08 1.5339639E-24 + 2.2080000E+08 1.5337708E-24 + 2.2090000E+08 1.5335778E-24 + 2.2100000E+08 1.5333849E-24 + 2.2110000E+08 1.5331918E-24 + 2.2120000E+08 1.5329988E-24 + 2.2130000E+08 1.5328058E-24 + 2.2140000E+08 1.5326128E-24 + 2.2150000E+08 1.5324198E-24 + 2.2160000E+08 1.5322268E-24 + 2.2170000E+08 1.5320337E-24 + 2.2180000E+08 1.5318408E-24 + 2.2190000E+08 1.5316477E-24 + 2.2200000E+08 1.5314547E-24 + 2.2210000E+08 1.5312617E-24 + 2.2220000E+08 1.5310687E-24 + 2.2230000E+08 1.5308757E-24 + 2.2240000E+08 1.5306827E-24 + 2.2250000E+08 1.5304897E-24 + 2.2260000E+08 1.5302967E-24 + 2.2270000E+08 1.5301037E-24 + 2.2280000E+08 1.5299107E-24 + 2.2290000E+08 1.5297177E-24 + 2.2300000E+08 1.5295247E-24 + 2.2310000E+08 1.5293317E-24 + 2.2320000E+08 1.5291386E-24 + 2.2330000E+08 1.5289457E-24 + 2.2340000E+08 1.5287527E-24 + 2.2350000E+08 1.5285596E-24 + 2.2360000E+08 1.5283666E-24 + 2.2370000E+08 1.5281737E-24 + 2.2380000E+08 1.5279806E-24 + 2.2390000E+08 1.5277876E-24 + 2.2400000E+08 1.5275946E-24 + 2.2410000E+08 1.5274016E-24 + 2.2420000E+08 1.5272086E-24 + 2.2430000E+08 1.5270156E-24 + 2.2440000E+08 1.5268225E-24 + 2.2450000E+08 1.5266296E-24 + 2.2460000E+08 1.5264366E-24 + 2.2470000E+08 1.5262435E-24 + 2.2480000E+08 1.5260505E-24 + 2.2490000E+08 1.5258576E-24 + 2.2500000E+08 1.5256645E-24 + 2.2510000E+08 1.5254819E-24 + 2.2520000E+08 1.5253346E-24 + 2.2530000E+08 1.5251873E-24 + 2.2540000E+08 1.5250401E-24 + 2.2550000E+08 1.5248929E-24 + 2.2560000E+08 1.5247457E-24 + 2.2570000E+08 1.5245984E-24 + 2.2580000E+08 1.5244511E-24 + 2.2590000E+08 1.5243039E-24 + 2.2600000E+08 1.5241567E-24 + 2.2610000E+08 1.5240095E-24 + 2.2620000E+08 1.5238622E-24 + 2.2630000E+08 1.5237150E-24 + 2.2640000E+08 1.5235678E-24 + 2.2650000E+08 1.5234205E-24 + 2.2660000E+08 1.5232733E-24 + 2.2670000E+08 1.5231260E-24 + 2.2680000E+08 1.5229788E-24 + 2.2690000E+08 1.5228316E-24 + 2.2700000E+08 1.5226843E-24 + 2.2710000E+08 1.5225370E-24 + 2.2720000E+08 1.5223898E-24 + 2.2730000E+08 1.5222426E-24 + 2.2740000E+08 1.5220954E-24 + 2.2750000E+08 1.5219481E-24 + 2.2760000E+08 1.5218008E-24 + 2.2770000E+08 1.5216536E-24 + 2.2780000E+08 1.5215064E-24 + 2.2790000E+08 1.5213592E-24 + 2.2800000E+08 1.5212119E-24 + 2.2810000E+08 1.5210646E-24 + 2.2820000E+08 1.5209174E-24 + 2.2830000E+08 1.5207702E-24 + 2.2840000E+08 1.5206230E-24 + 2.2850000E+08 1.5204757E-24 + 2.2860000E+08 1.5203284E-24 + 2.2870000E+08 1.5201812E-24 + 2.2880000E+08 1.5200340E-24 + 2.2890000E+08 1.5198868E-24 + 2.2900000E+08 1.5197394E-24 + 2.2910000E+08 1.5195922E-24 + 2.2920000E+08 1.5194450E-24 + 2.2930000E+08 1.5192978E-24 + 2.2940000E+08 1.5191506E-24 + 2.2950000E+08 1.5190032E-24 + 2.2960000E+08 1.5188560E-24 + 2.2970000E+08 1.5187088E-24 + 2.2980000E+08 1.5185616E-24 + 2.2990000E+08 1.5184144E-24 + 2.3000000E+08 1.5182671E-24 + 2.3010000E+08 1.5181199E-24 + 2.3020000E+08 1.5179726E-24 + 2.3030000E+08 1.5178254E-24 + 2.3040000E+08 1.5176782E-24 + 2.3050000E+08 1.5175309E-24 + 2.3060000E+08 1.5173837E-24 + 2.3070000E+08 1.5172364E-24 + 2.3080000E+08 1.5170892E-24 + 2.3090000E+08 1.5169420E-24 + 2.3100000E+08 1.5167947E-24 + 2.3110000E+08 1.5166475E-24 + 2.3120000E+08 1.5165002E-24 + 2.3130000E+08 1.5163530E-24 + 2.3140000E+08 1.5162057E-24 + 2.3150000E+08 1.5160585E-24 + 2.3160000E+08 1.5159113E-24 + 2.3170000E+08 1.5157640E-24 + 2.3180000E+08 1.5156168E-24 + 2.3190000E+08 1.5154695E-24 + 2.3200000E+08 1.5153223E-24 + 2.3210000E+08 1.5151751E-24 + 2.3220000E+08 1.5150278E-24 + 2.3230000E+08 1.5148806E-24 + 2.3240000E+08 1.5147333E-24 + 2.3250000E+08 1.5145861E-24 + 2.3260000E+08 1.5144389E-24 + 2.3270000E+08 1.5142916E-24 + 2.3280000E+08 1.5141444E-24 + 2.3290000E+08 1.5139971E-24 + 2.3300000E+08 1.5138499E-24 + 2.3310000E+08 1.5137027E-24 + 2.3320000E+08 1.5135555E-24 + 2.3330000E+08 1.5134082E-24 + 2.3340000E+08 1.5132609E-24 + 2.3350000E+08 1.5131137E-24 + 2.3360000E+08 1.5129665E-24 + 2.3370000E+08 1.5128193E-24 + 2.3380000E+08 1.5126719E-24 + 2.3390000E+08 1.5125247E-24 + 2.3400000E+08 1.5123775E-24 + 2.3410000E+08 1.5122303E-24 + 2.3420000E+08 1.5120831E-24 + 2.3430000E+08 1.5119357E-24 + 2.3440000E+08 1.5117885E-24 + 2.3450000E+08 1.5116413E-24 + 2.3460000E+08 1.5114941E-24 + 2.3470000E+08 1.5113469E-24 + 2.3480000E+08 1.5111995E-24 + 2.3490000E+08 1.5110523E-24 + 2.3500000E+08 1.5109051E-24 + 2.3510000E+08 1.5107579E-24 + 2.3520000E+08 1.5106107E-24 + 2.3530000E+08 1.5104633E-24 + 2.3540000E+08 1.5103161E-24 + 2.3550000E+08 1.5101689E-24 + 2.3560000E+08 1.5100217E-24 + 2.3570000E+08 1.5098744E-24 + 2.3580000E+08 1.5097271E-24 + 2.3590000E+08 1.5095799E-24 + 2.3600000E+08 1.5094327E-24 + 2.3610000E+08 1.5092855E-24 + 2.3620000E+08 1.5091382E-24 + 2.3630000E+08 1.5089909E-24 + 2.3640000E+08 1.5088437E-24 + 2.3650000E+08 1.5086965E-24 + 2.3660000E+08 1.5085493E-24 + 2.3670000E+08 1.5084020E-24 + 2.3680000E+08 1.5082548E-24 + 2.3690000E+08 1.5081076E-24 + 2.3700000E+08 1.5079603E-24 + 2.3710000E+08 1.5078131E-24 + 2.3720000E+08 1.5076658E-24 + 2.3730000E+08 1.5075186E-24 + 2.3740000E+08 1.5073714E-24 + 2.3750000E+08 1.5072241E-24 + 2.3760000E+08 1.5070769E-24 + 2.3770000E+08 1.5069296E-24 + 2.3780000E+08 1.5067824E-24 + 2.3790000E+08 1.5066352E-24 + 2.3800000E+08 1.5064879E-24 + 2.3810000E+08 1.5063406E-24 + 2.3820000E+08 1.5061934E-24 + 2.3830000E+08 1.5060462E-24 + 2.3840000E+08 1.5058990E-24 + 2.3850000E+08 1.5057517E-24 + 2.3860000E+08 1.5056044E-24 + 2.3870000E+08 1.5054572E-24 + 2.3880000E+08 1.5053100E-24 + 2.3890000E+08 1.5051628E-24 + 2.3900000E+08 1.5050155E-24 + 2.3910000E+08 1.5048682E-24 + 2.3920000E+08 1.5047210E-24 + 2.3930000E+08 1.5045738E-24 + 2.3940000E+08 1.5044266E-24 + 2.3950000E+08 1.5042793E-24 + 2.3960000E+08 1.5041320E-24 + 2.3970000E+08 1.5039848E-24 + 2.3980000E+08 1.5038376E-24 + 2.3990000E+08 1.5036904E-24 + 2.4000000E+08 1.5035431E-24 + 2.4010000E+08 1.5033958E-24 + 2.4020000E+08 1.5032486E-24 + 2.4030000E+08 1.5031014E-24 + 2.4040000E+08 1.5029542E-24 + 2.4050000E+08 1.5028069E-24 + 2.4060000E+08 1.5026596E-24 + 2.4070000E+08 1.5025124E-24 + 2.4080000E+08 1.5023652E-24 + 2.4090000E+08 1.5022180E-24 + 2.4100000E+08 1.5020707E-24 + 2.4110000E+08 1.5019234E-24 + 2.4120000E+08 1.5017762E-24 + 2.4130000E+08 1.5016290E-24 + 2.4140000E+08 1.5014818E-24 + 2.4150000E+08 1.5013345E-24 + 2.4160000E+08 1.5011872E-24 + 2.4170000E+08 1.5010400E-24 + 2.4180000E+08 1.5008928E-24 + 2.4190000E+08 1.5007456E-24 + 2.4200000E+08 1.5005983E-24 + 2.4210000E+08 1.5004510E-24 + 2.4220000E+08 1.5003038E-24 + 2.4230000E+08 1.5001566E-24 + 2.4240000E+08 1.5000093E-24 + 2.4250000E+08 1.4998621E-24 + 2.4260000E+08 1.4997148E-24 + 2.4270000E+08 1.4995676E-24 + 2.4280000E+08 1.4994204E-24 + 2.4290000E+08 1.4992731E-24 + 2.4300000E+08 1.4991259E-24 + 2.4310000E+08 1.4989786E-24 + 2.4320000E+08 1.4988314E-24 + 2.4330000E+08 1.4986842E-24 + 2.4340000E+08 1.4985369E-24 + 2.4350000E+08 1.4983897E-24 + 2.4360000E+08 1.4982424E-24 + 2.4370000E+08 1.4980953E-24 + 2.4380000E+08 1.4979480E-24 + 2.4390000E+08 1.4978007E-24 + 2.4400000E+08 1.4976535E-24 + 2.4410000E+08 1.4975063E-24 + 2.4420000E+08 1.4973591E-24 + 2.4430000E+08 1.4972118E-24 + 2.4440000E+08 1.4970645E-24 + 2.4450000E+08 1.4969173E-24 + 2.4460000E+08 1.4967701E-24 + 2.4470000E+08 1.4966229E-24 + 2.4480000E+08 1.4964755E-24 + 2.4490000E+08 1.4963283E-24 + 2.4500000E+08 1.4961811E-24 + 2.4510000E+08 1.4960339E-24 + 2.4520000E+08 1.4958867E-24 + 2.4530000E+08 1.4957393E-24 + 2.4540000E+08 1.4955921E-24 + 2.4550000E+08 1.4954449E-24 + 2.4560000E+08 1.4952977E-24 + 2.4570000E+08 1.4951505E-24 + 2.4580000E+08 1.4950031E-24 + 2.4590000E+08 1.4948559E-24 + 2.4600000E+08 1.4947087E-24 + 2.4610000E+08 1.4945615E-24 + 2.4620000E+08 1.4944143E-24 + 2.4630000E+08 1.4942669E-24 + 2.4640000E+08 1.4941197E-24 + 2.4650000E+08 1.4939725E-24 + 2.4660000E+08 1.4938253E-24 + 2.4670000E+08 1.4936780E-24 + 2.4680000E+08 1.4935307E-24 + 2.4690000E+08 1.4933835E-24 + 2.4700000E+08 1.4932363E-24 + 2.4710000E+08 1.4930891E-24 + 2.4720000E+08 1.4929418E-24 + 2.4730000E+08 1.4927946E-24 + 2.4740000E+08 1.4926473E-24 + 2.4750000E+08 1.4925001E-24 + 2.4760000E+08 1.4923529E-24 + 2.4770000E+08 1.4922056E-24 + 2.4780000E+08 1.4920584E-24 + 2.4790000E+08 1.4919111E-24 + 2.4800000E+08 1.4917639E-24 + 2.4810000E+08 1.4916167E-24 + 2.4820000E+08 1.4914694E-24 + 2.4830000E+08 1.4913222E-24 + 2.4840000E+08 1.4911749E-24 + 2.4850000E+08 1.4910277E-24 + 2.4860000E+08 1.4908805E-24 + 2.4870000E+08 1.4907332E-24 + 2.4880000E+08 1.4905860E-24 + 2.4890000E+08 1.4904387E-24 + 2.4900000E+08 1.4902915E-24 + 2.4910000E+08 1.4901442E-24 + 2.4920000E+08 1.4899970E-24 + 2.4930000E+08 1.4898498E-24 + 2.4940000E+08 1.4897025E-24 + 2.4950000E+08 1.4895553E-24 + 2.4960000E+08 1.4894080E-24 + 2.4970000E+08 1.4892608E-24 + 2.4980000E+08 1.4891136E-24 + 2.4990000E+08 1.4889663E-24 + 2.5000000E+08 1.4888191E-24 + 2.5010000E+08 1.4886718E-24 + 2.5020000E+08 1.4885246E-24 + 2.5030000E+08 1.4883774E-24 + 2.5040000E+08 1.4882301E-24 + 2.5050000E+08 1.4880829E-24 + 2.5060000E+08 1.4879356E-24 + 2.5070000E+08 1.4877884E-24 + 2.5080000E+08 1.4876412E-24 + 2.5090000E+08 1.4874940E-24 + 2.5100000E+08 1.4873467E-24 + 2.5110000E+08 1.4871994E-24 + 2.5120000E+08 1.4870522E-24 + 2.5130000E+08 1.4869050E-24 + 2.5140000E+08 1.4867578E-24 + 2.5150000E+08 1.4866105E-24 + 2.5160000E+08 1.4864632E-24 + 2.5170000E+08 1.4863160E-24 + 2.5180000E+08 1.4861688E-24 + 2.5190000E+08 1.4860216E-24 + 2.5200000E+08 1.4858743E-24 + 2.5210000E+08 1.4857270E-24 + 2.5220000E+08 1.4855798E-24 + 2.5230000E+08 1.4854326E-24 + 2.5240000E+08 1.4852854E-24 + 2.5250000E+08 1.4851381E-24 + 2.5260000E+08 1.4849908E-24 + 2.5270000E+08 1.4848436E-24 + 2.5280000E+08 1.4846964E-24 + 2.5290000E+08 1.4845492E-24 + 2.5300000E+08 1.4844019E-24 + 2.5310000E+08 1.4842546E-24 + 2.5320000E+08 1.4841074E-24 + 2.5330000E+08 1.4839602E-24 + 2.5340000E+08 1.4838129E-24 + 2.5350000E+08 1.4836657E-24 + 2.5360000E+08 1.4835184E-24 + 2.5370000E+08 1.4833712E-24 + 2.5380000E+08 1.4832240E-24 + 2.5390000E+08 1.4830767E-24 + 2.5400000E+08 1.4829295E-24 + 2.5410000E+08 1.4827822E-24 + 2.5420000E+08 1.4826351E-24 + 2.5430000E+08 1.4824878E-24 + 2.5440000E+08 1.4823405E-24 + 2.5450000E+08 1.4821933E-24 + 2.5460000E+08 1.4820461E-24 + 2.5470000E+08 1.4818989E-24 + 2.5480000E+08 1.4817516E-24 + 2.5490000E+08 1.4816043E-24 + 2.5500000E+08 1.4814571E-24 + 2.5510000E+08 1.4813099E-24 + 2.5520000E+08 1.4811627E-24 + 2.5530000E+08 1.4810154E-24 + 2.5540000E+08 1.4808681E-24 + 2.5550000E+08 1.4807209E-24 + 2.5560000E+08 1.4805737E-24 + 2.5570000E+08 1.4804264E-24 + 2.5580000E+08 1.4802791E-24 + 2.5590000E+08 1.4801319E-24 + 2.5600000E+08 1.4799847E-24 + 2.5610000E+08 1.4798375E-24 + 2.5620000E+08 1.4796903E-24 + 2.5630000E+08 1.4795429E-24 + 2.5640000E+08 1.4793957E-24 + 2.5650000E+08 1.4792485E-24 + 2.5660000E+08 1.4791013E-24 + 2.5670000E+08 1.4789541E-24 + 2.5680000E+08 1.4788067E-24 + 2.5690000E+08 1.4786595E-24 + 2.5700000E+08 1.4785123E-24 + 2.5710000E+08 1.4783651E-24 + 2.5720000E+08 1.4782179E-24 + 2.5730000E+08 1.4780705E-24 + 2.5740000E+08 1.4779233E-24 + 2.5750000E+08 1.4777761E-24 + 2.5760000E+08 1.4776289E-24 + 2.5770000E+08 1.4774816E-24 + 2.5780000E+08 1.4773344E-24 + 2.5790000E+08 1.4771871E-24 + 2.5800000E+08 1.4770399E-24 + 2.5810000E+08 1.4768927E-24 + 2.5820000E+08 1.4767454E-24 + 2.5830000E+08 1.4765982E-24 + 2.5840000E+08 1.4764509E-24 + 2.5850000E+08 1.4763037E-24 + 2.5860000E+08 1.4761565E-24 + 2.5870000E+08 1.4760092E-24 + 2.5880000E+08 1.4758620E-24 + 2.5890000E+08 1.4757147E-24 + 2.5900000E+08 1.4755675E-24 + 2.5910000E+08 1.4754203E-24 + 2.5920000E+08 1.4752730E-24 + 2.5930000E+08 1.4751258E-24 + 2.5940000E+08 1.4749785E-24 + 2.5950000E+08 1.4748313E-24 + 2.5960000E+08 1.4746841E-24 + 2.5970000E+08 1.4745368E-24 + 2.5980000E+08 1.4743896E-24 + 2.5990000E+08 1.4742423E-24 + 2.6000000E+08 1.4740951E-24 + 2.6010000E+08 1.4739478E-24 + 2.6020000E+08 1.4738006E-24 + 2.6030000E+08 1.4736534E-24 + 2.6040000E+08 1.4735061E-24 + 2.6050000E+08 1.4733589E-24 + 2.6060000E+08 1.4732116E-24 + 2.6070000E+08 1.4730644E-24 + 2.6080000E+08 1.4729172E-24 + 2.6090000E+08 1.4727699E-24 + 2.6100000E+08 1.4726227E-24 + 2.6110000E+08 1.4724754E-24 + 2.6120000E+08 1.4723282E-24 + 2.6130000E+08 1.4721810E-24 + 2.6140000E+08 1.4720338E-24 + 2.6150000E+08 1.4718865E-24 + 2.6160000E+08 1.4717392E-24 + 2.6170000E+08 1.4715920E-24 + 2.6180000E+08 1.4714448E-24 + 2.6190000E+08 1.4712976E-24 + 2.6200000E+08 1.4711504E-24 + 2.6210000E+08 1.4710030E-24 + 2.6220000E+08 1.4708558E-24 + 2.6230000E+08 1.4707086E-24 + 2.6240000E+08 1.4705614E-24 + 2.6250000E+08 1.4704140E-24 + 2.6260000E+08 1.4702668E-24 + 2.6270000E+08 1.4701196E-24 + 2.6280000E+08 1.4699724E-24 + 2.6290000E+08 1.4698252E-24 + 2.6300000E+08 1.4696778E-24 + 2.6310000E+08 1.4695306E-24 + 2.6320000E+08 1.4693834E-24 + 2.6330000E+08 1.4692362E-24 + 2.6340000E+08 1.4690890E-24 + 2.6350000E+08 1.4689416E-24 + 2.6360000E+08 1.4687944E-24 + 2.6370000E+08 1.4686472E-24 + 2.6380000E+08 1.4685000E-24 + 2.6390000E+08 1.4683528E-24 + 2.6400000E+08 1.4682054E-24 + 2.6410000E+08 1.4680582E-24 + 2.6420000E+08 1.4679110E-24 + 2.6430000E+08 1.4677638E-24 + 2.6440000E+08 1.4676165E-24 + 2.6450000E+08 1.4674692E-24 + 2.6460000E+08 1.4673220E-24 + 2.6470000E+08 1.4671748E-24 + 2.6480000E+08 1.4670276E-24 + 2.6490000E+08 1.4668803E-24 + 2.6500000E+08 1.4667331E-24 + 2.6510000E+08 1.4665859E-24 + 2.6520000E+08 1.4664386E-24 + 2.6530000E+08 1.4662914E-24 + 2.6540000E+08 1.4661441E-24 + 2.6550000E+08 1.4659969E-24 + 2.6560000E+08 1.4658497E-24 + 2.6570000E+08 1.4657024E-24 + 2.6580000E+08 1.4655552E-24 + 2.6590000E+08 1.4654079E-24 + 2.6600000E+08 1.4652607E-24 + 2.6610000E+08 1.4651135E-24 + 2.6620000E+08 1.4649662E-24 + 2.6630000E+08 1.4648190E-24 + 2.6640000E+08 1.4646717E-24 + 2.6650000E+08 1.4645245E-24 + 2.6660000E+08 1.4643773E-24 + 2.6670000E+08 1.4642300E-24 + 2.6680000E+08 1.4640827E-24 + 2.6690000E+08 1.4639355E-24 + 2.6700000E+08 1.4637883E-24 + 2.6710000E+08 1.4636411E-24 + 2.6720000E+08 1.4634938E-24 + 2.6730000E+08 1.4633465E-24 + 2.6740000E+08 1.4631993E-24 + 2.6750000E+08 1.4630521E-24 + 2.6760000E+08 1.4629049E-24 + 2.6770000E+08 1.4627576E-24 + 2.6780000E+08 1.4626103E-24 + 2.6790000E+08 1.4624631E-24 + 2.6800000E+08 1.4623159E-24 + 2.6810000E+08 1.4621687E-24 + 2.6820000E+08 1.4620214E-24 + 2.6830000E+08 1.4618742E-24 + 2.6840000E+08 1.4617269E-24 + 2.6850000E+08 1.4615797E-24 + 2.6860000E+08 1.4614325E-24 + 2.6870000E+08 1.4612853E-24 + 2.6880000E+08 1.4611380E-24 + 2.6890000E+08 1.4609907E-24 + 2.6900000E+08 1.4608435E-24 + 2.6910000E+08 1.4606963E-24 + 2.6920000E+08 1.4605490E-24 + 2.6930000E+08 1.4604018E-24 + 2.6940000E+08 1.4602545E-24 + 2.6950000E+08 1.4601073E-24 + 2.6960000E+08 1.4599601E-24 + 2.6970000E+08 1.4598128E-24 + 2.6980000E+08 1.4596656E-24 + 2.6990000E+08 1.4595183E-24 + 2.7000000E+08 1.4593711E-24 + 2.7010000E+08 1.4592239E-24 + 2.7020000E+08 1.4590766E-24 + 2.7030000E+08 1.4589294E-24 + 2.7040000E+08 1.4587821E-24 + 2.7050000E+08 1.4586349E-24 + 2.7060000E+08 1.4584877E-24 + 2.7070000E+08 1.4583404E-24 + 2.7080000E+08 1.4581932E-24 + 2.7090000E+08 1.4580459E-24 + 2.7100000E+08 1.4578987E-24 + 2.7110000E+08 1.4577514E-24 + 2.7120000E+08 1.4576042E-24 + 2.7130000E+08 1.4574570E-24 + 2.7140000E+08 1.4573097E-24 + 2.7150000E+08 1.4571625E-24 + 2.7160000E+08 1.4570152E-24 + 2.7170000E+08 1.4568680E-24 + 2.7180000E+08 1.4567208E-24 + 2.7190000E+08 1.4565736E-24 + 2.7200000E+08 1.4564263E-24 + 2.7210000E+08 1.4562790E-24 + 2.7220000E+08 1.4561318E-24 + 2.7230000E+08 1.4559846E-24 + 2.7240000E+08 1.4558374E-24 + 2.7250000E+08 1.4556901E-24 + 2.7260000E+08 1.4555428E-24 + 2.7270000E+08 1.4553956E-24 + 2.7280000E+08 1.4552484E-24 + 2.7290000E+08 1.4551012E-24 + 2.7300000E+08 1.4549540E-24 + 2.7310000E+08 1.4548066E-24 + 2.7320000E+08 1.4546594E-24 + 2.7330000E+08 1.4545122E-24 + 2.7340000E+08 1.4543650E-24 + 2.7350000E+08 1.4542176E-24 + 2.7360000E+08 1.4540704E-24 + 2.7370000E+08 1.4539232E-24 + 2.7380000E+08 1.4537760E-24 + 2.7390000E+08 1.4536288E-24 + 2.7400000E+08 1.4534814E-24 + 2.7410000E+08 1.4533342E-24 + 2.7420000E+08 1.4531870E-24 + 2.7430000E+08 1.4530398E-24 + 2.7440000E+08 1.4528926E-24 + 2.7450000E+08 1.4527452E-24 + 2.7460000E+08 1.4525980E-24 + 2.7470000E+08 1.4524508E-24 + 2.7480000E+08 1.4523036E-24 + 2.7490000E+08 1.4521564E-24 + 2.7500000E+08 1.4520090E-24 + 2.7510000E+08 1.4518618E-24 + 2.7520000E+08 1.4517146E-24 + 2.7530000E+08 1.4515674E-24 + 2.7540000E+08 1.4514202E-24 + 2.7550000E+08 1.4512729E-24 + 2.7560000E+08 1.4511257E-24 + 2.7570000E+08 1.4509784E-24 + 2.7580000E+08 1.4508312E-24 + 2.7590000E+08 1.4506839E-24 + 2.7600000E+08 1.4505367E-24 + 2.7610000E+08 1.4503895E-24 + 2.7620000E+08 1.4502422E-24 + 2.7630000E+08 1.4500950E-24 + 2.7640000E+08 1.4499477E-24 + 2.7650000E+08 1.4498005E-24 + 2.7660000E+08 1.4496533E-24 + 2.7670000E+08 1.4495060E-24 + 2.7680000E+08 1.4493588E-24 + 2.7690000E+08 1.4492115E-24 + 2.7700000E+08 1.4490643E-24 + 2.7710000E+08 1.4489171E-24 + 2.7720000E+08 1.4487698E-24 + 2.7730000E+08 1.4486226E-24 + 2.7740000E+08 1.4484753E-24 + 2.7750000E+08 1.4483281E-24 + 2.7760000E+08 1.4481809E-24 + 2.7770000E+08 1.4480336E-24 + 2.7780000E+08 1.4478863E-24 + 2.7790000E+08 1.4477391E-24 + 2.7800000E+08 1.4475919E-24 + 2.7810000E+08 1.4474447E-24 + 2.7820000E+08 1.4472974E-24 + 2.7830000E+08 1.4471501E-24 + 2.7840000E+08 1.4470029E-24 + 2.7850000E+08 1.4468557E-24 + 2.7860000E+08 1.4467085E-24 + 2.7870000E+08 1.4465612E-24 + 2.7880000E+08 1.4464139E-24 + 2.7890000E+08 1.4462667E-24 + 2.7900000E+08 1.4461195E-24 + 2.7910000E+08 1.4459723E-24 + 2.7920000E+08 1.4458251E-24 + 2.7930000E+08 1.4456777E-24 + 2.7940000E+08 1.4455305E-24 + 2.7950000E+08 1.4453833E-24 + 2.7960000E+08 1.4452361E-24 + 2.7970000E+08 1.4450889E-24 + 2.7980000E+08 1.4449415E-24 + 2.7990000E+08 1.4447943E-24 + 2.8000000E+08 1.4446471E-24 + 2.8010000E+08 1.4444999E-24 + 2.8020000E+08 1.4443526E-24 + 2.8030000E+08 1.4442053E-24 + 2.8040000E+08 1.4440581E-24 + 2.8050000E+08 1.4439109E-24 + 2.8060000E+08 1.4437637E-24 + 2.8070000E+08 1.4436164E-24 + 2.8080000E+08 1.4434691E-24 + 2.8090000E+08 1.4433219E-24 + 2.8100000E+08 1.4431747E-24 + 2.8110000E+08 1.4430275E-24 + 2.8120000E+08 1.4428802E-24 + 2.8130000E+08 1.4427329E-24 + 2.8140000E+08 1.4425857E-24 + 2.8150000E+08 1.4424385E-24 + 2.8160000E+08 1.4422913E-24 + 2.8170000E+08 1.4421440E-24 + 2.8180000E+08 1.4419967E-24 + 2.8190000E+08 1.4418495E-24 + 2.8200000E+08 1.4417023E-24 + 2.8210000E+08 1.4415551E-24 + 2.8220000E+08 1.4414078E-24 + 2.8230000E+08 1.4412606E-24 + 2.8240000E+08 1.4411134E-24 + 2.8250000E+08 1.4409661E-24 + 2.8260000E+08 1.4408188E-24 + 2.8270000E+08 1.4406716E-24 + 2.8280000E+08 1.4405244E-24 + 2.8290000E+08 1.4403772E-24 + 2.8300000E+08 1.4402299E-24 + 2.8310000E+08 1.4400826E-24 + 2.8320000E+08 1.4399354E-24 + 2.8330000E+08 1.4397882E-24 + 2.8340000E+08 1.4396410E-24 + 2.8350000E+08 1.4394937E-24 + 2.8360000E+08 1.4393464E-24 + 2.8370000E+08 1.4391992E-24 + 2.8380000E+08 1.4390520E-24 + 2.8390000E+08 1.4389048E-24 + 2.8400000E+08 1.4387575E-24 + 2.8410000E+08 1.4386102E-24 + 2.8420000E+08 1.4384630E-24 + 2.8430000E+08 1.4383158E-24 + 2.8440000E+08 1.4381686E-24 + 2.8450000E+08 1.4380212E-24 + 2.8460000E+08 1.4378740E-24 + 2.8470000E+08 1.4377268E-24 + 2.8480000E+08 1.4375796E-24 + 2.8490000E+08 1.4374324E-24 + 2.8500000E+08 1.4372850E-24 + 2.8510000E+08 1.4371617E-24 + 2.8520000E+08 1.4370504E-24 + 2.8530000E+08 1.4369389E-24 + 2.8540000E+08 1.4368276E-24 + 2.8550000E+08 1.4367163E-24 + 2.8560000E+08 1.4366049E-24 + 2.8570000E+08 1.4364935E-24 + 2.8580000E+08 1.4363822E-24 + 2.8590000E+08 1.4362709E-24 + 2.8600000E+08 1.4361595E-24 + 2.8610000E+08 1.4360481E-24 + 2.8620000E+08 1.4359368E-24 + 2.8630000E+08 1.4358255E-24 + 2.8640000E+08 1.4357140E-24 + 2.8650000E+08 1.4356027E-24 + 2.8660000E+08 1.4354914E-24 + 2.8670000E+08 1.4353799E-24 + 2.8680000E+08 1.4352686E-24 + 2.8690000E+08 1.4351573E-24 + 2.8700000E+08 1.4350459E-24 + 2.8710000E+08 1.4349345E-24 + 2.8720000E+08 1.4348232E-24 + 2.8730000E+08 1.4347118E-24 + 2.8740000E+08 1.4346005E-24 + 2.8750000E+08 1.4344891E-24 + 2.8760000E+08 1.4343778E-24 + 2.8770000E+08 1.4342664E-24 + 2.8780000E+08 1.4341550E-24 + 2.8790000E+08 1.4340437E-24 + 2.8800000E+08 1.4339323E-24 + 2.8810000E+08 1.4338210E-24 + 2.8820000E+08 1.4337096E-24 + 2.8830000E+08 1.4335982E-24 + 2.8840000E+08 1.4334869E-24 + 2.8850000E+08 1.4333755E-24 + 2.8860000E+08 1.4332641E-24 + 2.8870000E+08 1.4331528E-24 + 2.8880000E+08 1.4330415E-24 + 2.8890000E+08 1.4329300E-24 + 2.8900000E+08 1.4328187E-24 + 2.8910000E+08 1.4327074E-24 + 2.8920000E+08 1.4325961E-24 + 2.8930000E+08 1.4324846E-24 + 2.8940000E+08 1.4323733E-24 + 2.8950000E+08 1.4322620E-24 + 2.8960000E+08 1.4321506E-24 + 2.8970000E+08 1.4320392E-24 + 2.8980000E+08 1.4319279E-24 + 2.8990000E+08 1.4318166E-24 + 2.9000000E+08 1.4317051E-24 + 2.9010000E+08 1.4315938E-24 + 2.9020000E+08 1.4314825E-24 + 2.9030000E+08 1.4313711E-24 + 2.9040000E+08 1.4312597E-24 + 2.9050000E+08 1.4311484E-24 + 2.9060000E+08 1.4310370E-24 + 2.9070000E+08 1.4309256E-24 + 2.9080000E+08 1.4308143E-24 + 2.9090000E+08 1.4307029E-24 + 2.9100000E+08 1.4305916E-24 + 2.9110000E+08 1.4304802E-24 + 2.9120000E+08 1.4303689E-24 + 2.9130000E+08 1.4302575E-24 + 2.9140000E+08 1.4301461E-24 + 2.9150000E+08 1.4300348E-24 + 2.9160000E+08 1.4299234E-24 + 2.9170000E+08 1.4298121E-24 + 2.9180000E+08 1.4297007E-24 + 2.9190000E+08 1.4295893E-24 + 2.9200000E+08 1.4294780E-24 + 2.9210000E+08 1.4293667E-24 + 2.9220000E+08 1.4292552E-24 + 2.9230000E+08 1.4291439E-24 + 2.9240000E+08 1.4290326E-24 + 2.9250000E+08 1.4289211E-24 + 2.9260000E+08 1.4288098E-24 + 2.9270000E+08 1.4286985E-24 + 2.9280000E+08 1.4285872E-24 + 2.9290000E+08 1.4284757E-24 + 2.9300000E+08 1.4283644E-24 + 2.9310000E+08 1.4282531E-24 + 2.9320000E+08 1.4281418E-24 + 2.9330000E+08 1.4280303E-24 + 2.9340000E+08 1.4279190E-24 + 2.9350000E+08 1.4278077E-24 + 2.9360000E+08 1.4276962E-24 + 2.9370000E+08 1.4275849E-24 + 2.9380000E+08 1.4274736E-24 + 2.9390000E+08 1.4273622E-24 + 2.9400000E+08 1.4272508E-24 + 2.9410000E+08 1.4271395E-24 + 2.9420000E+08 1.4270281E-24 + 2.9430000E+08 1.4269168E-24 + 2.9440000E+08 1.4268054E-24 + 2.9450000E+08 1.4266940E-24 + 2.9460000E+08 1.4265827E-24 + 2.9470000E+08 1.4264713E-24 + 2.9480000E+08 1.4263600E-24 + 2.9490000E+08 1.4262486E-24 + 2.9500000E+08 1.4261373E-24 + 2.9510000E+08 1.4260259E-24 + 2.9520000E+08 1.4259145E-24 + 2.9530000E+08 1.4258032E-24 + 2.9540000E+08 1.4256918E-24 + 2.9550000E+08 1.4255804E-24 + 2.9560000E+08 1.4254691E-24 + 2.9570000E+08 1.4253578E-24 + 2.9580000E+08 1.4252463E-24 + 2.9590000E+08 1.4251350E-24 + 2.9600000E+08 1.4250237E-24 + 2.9610000E+08 1.4249123E-24 + 2.9620000E+08 1.4248009E-24 + 2.9630000E+08 1.4246896E-24 + 2.9640000E+08 1.4245783E-24 + 2.9650000E+08 1.4244668E-24 + 2.9660000E+08 1.4243555E-24 + 2.9670000E+08 1.4242442E-24 + 2.9680000E+08 1.4241328E-24 + 2.9690000E+08 1.4240214E-24 + 2.9700000E+08 1.4239101E-24 + 2.9710000E+08 1.4237988E-24 + 2.9720000E+08 1.4236874E-24 + 2.9730000E+08 1.4235760E-24 + 2.9740000E+08 1.4234647E-24 + 2.9750000E+08 1.4233533E-24 + 2.9760000E+08 1.4232419E-24 + 2.9770000E+08 1.4231306E-24 + 2.9780000E+08 1.4230192E-24 + 2.9790000E+08 1.4229079E-24 + 2.9800000E+08 1.4227965E-24 + 2.9810000E+08 1.4226851E-24 + 2.9820000E+08 1.4225738E-24 + 2.9830000E+08 1.4224624E-24 + 2.9840000E+08 1.4223511E-24 + 2.9850000E+08 1.4222397E-24 + 2.9860000E+08 1.4221284E-24 + 2.9870000E+08 1.4220170E-24 + 2.9880000E+08 1.4219056E-24 + 2.9890000E+08 1.4217943E-24 + 2.9900000E+08 1.4216830E-24 + 2.9910000E+08 1.4215715E-24 + 2.9920000E+08 1.4214602E-24 + 2.9930000E+08 1.4213489E-24 + 2.9940000E+08 1.4212374E-24 + 2.9950000E+08 1.4211261E-24 + 2.9960000E+08 1.4210148E-24 + 2.9970000E+08 1.4209034E-24 + 2.9980000E+08 1.4207920E-24 + 2.9990000E+08 1.4206807E-24 + 3.0000000E+08 1.4205694E-24 + 3.0010000E+08 1.4204580E-24 + 3.0020000E+08 1.4203466E-24 + 3.0030000E+08 1.4202353E-24 + 3.0040000E+08 1.4201239E-24 + 3.0050000E+08 1.4200125E-24 + 3.0060000E+08 1.4199012E-24 + 3.0070000E+08 1.4197899E-24 + 3.0080000E+08 1.4196785E-24 + 3.0090000E+08 1.4195671E-24 + 3.0100000E+08 1.4194558E-24 + 3.0110000E+08 1.4193444E-24 + 3.0120000E+08 1.4192330E-24 + 3.0130000E+08 1.4191217E-24 + 3.0140000E+08 1.4190103E-24 + 3.0150000E+08 1.4188990E-24 + 3.0160000E+08 1.4187876E-24 + 3.0170000E+08 1.4186762E-24 + 3.0180000E+08 1.4185649E-24 + 3.0190000E+08 1.4184536E-24 + 3.0200000E+08 1.4183421E-24 + 3.0210000E+08 1.4182308E-24 + 3.0220000E+08 1.4181195E-24 + 3.0230000E+08 1.4180081E-24 + 3.0240000E+08 1.4178967E-24 + 3.0250000E+08 1.4177854E-24 + 3.0260000E+08 1.4176741E-24 + 3.0270000E+08 1.4175626E-24 + 3.0280000E+08 1.4174513E-24 + 3.0290000E+08 1.4173400E-24 + 3.0300000E+08 1.4172286E-24 + 3.0310000E+08 1.4171172E-24 + 3.0320000E+08 1.4170059E-24 + 3.0330000E+08 1.4168946E-24 + 3.0340000E+08 1.4167831E-24 + 3.0350000E+08 1.4166718E-24 + 3.0360000E+08 1.4165605E-24 + 3.0370000E+08 1.4164491E-24 + 3.0380000E+08 1.4163377E-24 + 3.0390000E+08 1.4162264E-24 + 3.0400000E+08 1.4161150E-24 + 3.0410000E+08 1.4160036E-24 + 3.0420000E+08 1.4158923E-24 + 3.0430000E+08 1.4157810E-24 + 3.0440000E+08 1.4156696E-24 + 3.0450000E+08 1.4155582E-24 + 3.0460000E+08 1.4154469E-24 + 3.0470000E+08 1.4153355E-24 + 3.0480000E+08 1.4152242E-24 + 3.0490000E+08 1.4151128E-24 + 3.0500000E+08 1.4150014E-24 + 3.0510000E+08 1.4148901E-24 + 3.0520000E+08 1.4147787E-24 + 3.0530000E+08 1.4146673E-24 + 3.0540000E+08 1.4145560E-24 + 3.0550000E+08 1.4144447E-24 + 3.0560000E+08 1.4143332E-24 + 3.0570000E+08 1.4142219E-24 + 3.0580000E+08 1.4141106E-24 + 3.0590000E+08 1.4139993E-24 + 3.0600000E+08 1.4138878E-24 + 3.0610000E+08 1.4137765E-24 + 3.0620000E+08 1.4136652E-24 + 3.0630000E+08 1.4135537E-24 + 3.0640000E+08 1.4134424E-24 + 3.0650000E+08 1.4133311E-24 + 3.0660000E+08 1.4132197E-24 + 3.0670000E+08 1.4131083E-24 + 3.0680000E+08 1.4129970E-24 + 3.0690000E+08 1.4128857E-24 + 3.0700000E+08 1.4127742E-24 + 3.0710000E+08 1.4126629E-24 + 3.0720000E+08 1.4125516E-24 + 3.0730000E+08 1.4124402E-24 + 3.0740000E+08 1.4123288E-24 + 3.0750000E+08 1.4122175E-24 + 3.0760000E+08 1.4121061E-24 + 3.0770000E+08 1.4119948E-24 + 3.0780000E+08 1.4118834E-24 + 3.0790000E+08 1.4117721E-24 + 3.0800000E+08 1.4116607E-24 + 3.0810000E+08 1.4115493E-24 + 3.0820000E+08 1.4114380E-24 + 3.0830000E+08 1.4113266E-24 + 3.0840000E+08 1.4112153E-24 + 3.0850000E+08 1.4111039E-24 + 3.0860000E+08 1.4109925E-24 + 3.0870000E+08 1.4108812E-24 + 3.0880000E+08 1.4107699E-24 + 3.0890000E+08 1.4106584E-24 + 3.0900000E+08 1.4105471E-24 + 3.0910000E+08 1.4104358E-24 + 3.0920000E+08 1.4103243E-24 + 3.0930000E+08 1.4102130E-24 + 3.0940000E+08 1.4101017E-24 + 3.0950000E+08 1.4099903E-24 + 3.0960000E+08 1.4098789E-24 + 3.0970000E+08 1.4097676E-24 + 3.0980000E+08 1.4096563E-24 + 3.0990000E+08 1.4095448E-24 + 3.1000000E+08 1.4094335E-24 + 3.1010000E+08 1.4093222E-24 + 3.1020000E+08 1.4092108E-24 + 3.1030000E+08 1.4090994E-24 + 3.1040000E+08 1.4089881E-24 + 3.1050000E+08 1.4088768E-24 + 3.1060000E+08 1.4087654E-24 + 3.1070000E+08 1.4086540E-24 + 3.1080000E+08 1.4085427E-24 + 3.1090000E+08 1.4084313E-24 + 3.1100000E+08 1.4083199E-24 + 3.1110000E+08 1.4082086E-24 + 3.1120000E+08 1.4080972E-24 + 3.1130000E+08 1.4079859E-24 + 3.1140000E+08 1.4078745E-24 + 3.1150000E+08 1.4077631E-24 + 3.1160000E+08 1.4076518E-24 + 3.1170000E+08 1.4075405E-24 + 3.1180000E+08 1.4074291E-24 + 3.1190000E+08 1.4073177E-24 + 3.1200000E+08 1.4072064E-24 + 3.1210000E+08 1.4070950E-24 + 3.1220000E+08 1.4069836E-24 + 3.1230000E+08 1.4068723E-24 + 3.1240000E+08 1.4067610E-24 + 3.1250000E+08 1.4066495E-24 + 3.1260000E+08 1.4065382E-24 + 3.1270000E+08 1.4064269E-24 + 3.1280000E+08 1.4063155E-24 + 3.1290000E+08 1.4062041E-24 + 3.1300000E+08 1.4060928E-24 + 3.1310000E+08 1.4059815E-24 + 3.1320000E+08 1.4058700E-24 + 3.1330000E+08 1.4057587E-24 + 3.1340000E+08 1.4056474E-24 + 3.1350000E+08 1.4055360E-24 + 3.1360000E+08 1.4054246E-24 + 3.1370000E+08 1.4053133E-24 + 3.1380000E+08 1.4052020E-24 + 3.1390000E+08 1.4050905E-24 + 3.1400000E+08 1.4049792E-24 + 3.1410000E+08 1.4048679E-24 + 3.1420000E+08 1.4047565E-24 + 3.1430000E+08 1.4046451E-24 + 3.1440000E+08 1.4045338E-24 + 3.1450000E+08 1.4044224E-24 + 3.1460000E+08 1.4043111E-24 + 3.1470000E+08 1.4041997E-24 + 3.1480000E+08 1.4040883E-24 + 3.1490000E+08 1.4039770E-24 + 3.1500000E+08 1.4038656E-24 + 3.1510000E+08 1.4037542E-24 + 3.1520000E+08 1.4036429E-24 + 3.1530000E+08 1.4035316E-24 + 3.1540000E+08 1.4034202E-24 + 3.1550000E+08 1.4033088E-24 + 3.1560000E+08 1.4031975E-24 + 3.1570000E+08 1.4030861E-24 + 3.1580000E+08 1.4029747E-24 + 3.1590000E+08 1.4028634E-24 + 3.1600000E+08 1.4027521E-24 + 3.1610000E+08 1.4026406E-24 + 3.1620000E+08 1.4025293E-24 + 3.1630000E+08 1.4024180E-24 + 3.1640000E+08 1.4023066E-24 + 3.1650000E+08 1.4021952E-24 + 3.1660000E+08 1.4020839E-24 + 3.1670000E+08 1.4019725E-24 + 3.1680000E+08 1.4018611E-24 + 3.1690000E+08 1.4017498E-24 + 3.1700000E+08 1.4016385E-24 + 3.1710000E+08 1.4015271E-24 + 3.1720000E+08 1.4014157E-24 + 3.1730000E+08 1.4013044E-24 + 3.1740000E+08 1.4011931E-24 + 3.1750000E+08 1.4010817E-24 + 3.1760000E+08 1.4009703E-24 + 3.1770000E+08 1.4008590E-24 + 3.1780000E+08 1.4007476E-24 + 3.1790000E+08 1.4006362E-24 + 3.1800000E+08 1.4005249E-24 + 3.1810000E+08 1.4004135E-24 + 3.1820000E+08 1.4003022E-24 + 3.1830000E+08 1.4001908E-24 + 3.1840000E+08 1.4000794E-24 + 3.1850000E+08 1.3999681E-24 + 3.1860000E+08 1.3998568E-24 + 3.1870000E+08 1.3997453E-24 + 3.1880000E+08 1.3996340E-24 + 3.1890000E+08 1.3995227E-24 + 3.1900000E+08 1.3994113E-24 + 3.1910000E+08 1.3992999E-24 + 3.1920000E+08 1.3991886E-24 + 3.1930000E+08 1.3990773E-24 + 3.1940000E+08 1.3989658E-24 + 3.1950000E+08 1.3988545E-24 + 3.1960000E+08 1.3987432E-24 + 3.1970000E+08 1.3986317E-24 + 3.1980000E+08 1.3985204E-24 + 3.1990000E+08 1.3984091E-24 + 3.2000000E+08 1.3982977E-24 + 3.2010000E+08 1.3981863E-24 + 3.2020000E+08 1.3980750E-24 + 3.2030000E+08 1.3979636E-24 + 3.2040000E+08 1.3978523E-24 + 3.2050000E+08 1.3977409E-24 + 3.2060000E+08 1.3976296E-24 + 3.2070000E+08 1.3975182E-24 + 3.2080000E+08 1.3974068E-24 + 3.2090000E+08 1.3972955E-24 + 3.2100000E+08 1.3971841E-24 + 3.2110000E+08 1.3970728E-24 + 3.2120000E+08 1.3969614E-24 + 3.2130000E+08 1.3968501E-24 + 3.2140000E+08 1.3967387E-24 + 3.2150000E+08 1.3966274E-24 + 3.2160000E+08 1.3965160E-24 + 3.2170000E+08 1.3964046E-24 + 3.2180000E+08 1.3962933E-24 + 3.2190000E+08 1.3961819E-24 + 3.2200000E+08 1.3960705E-24 + 3.2210000E+08 1.3959592E-24 + 3.2220000E+08 1.3958479E-24 + 3.2230000E+08 1.3957364E-24 + 3.2240000E+08 1.3956251E-24 + 3.2250000E+08 1.3955138E-24 + 3.2260000E+08 1.3954024E-24 + 3.2270000E+08 1.3952910E-24 + 3.2280000E+08 1.3951797E-24 + 3.2290000E+08 1.3950684E-24 + 3.2300000E+08 1.3949569E-24 + 3.2310000E+08 1.3948456E-24 + 3.2320000E+08 1.3947343E-24 + 3.2330000E+08 1.3946229E-24 + 3.2340000E+08 1.3945115E-24 + 3.2350000E+08 1.3944002E-24 + 3.2360000E+08 1.3942888E-24 + 3.2370000E+08 1.3941774E-24 + 3.2380000E+08 1.3940661E-24 + 3.2390000E+08 1.3939547E-24 + 3.2400000E+08 1.3938434E-24 + 3.2410000E+08 1.3937320E-24 + 3.2420000E+08 1.3936206E-24 + 3.2430000E+08 1.3935093E-24 + 3.2440000E+08 1.3933980E-24 + 3.2450000E+08 1.3932866E-24 + 3.2460000E+08 1.3931753E-24 + 3.2470000E+08 1.3930639E-24 + 3.2480000E+08 1.3929525E-24 + 3.2490000E+08 1.3928412E-24 + 3.2500000E+08 1.3927298E-24 + 3.2510000E+08 1.3926185E-24 + 3.2520000E+08 1.3925071E-24 + 3.2530000E+08 1.3923957E-24 + 3.2540000E+08 1.3922844E-24 + 3.2550000E+08 1.3921730E-24 + 3.2560000E+08 1.3920616E-24 + 3.2570000E+08 1.3919503E-24 + 3.2580000E+08 1.3918390E-24 + 3.2590000E+08 1.3917275E-24 + 3.2600000E+08 1.3916162E-24 + 3.2610000E+08 1.3915049E-24 + 3.2620000E+08 1.3913935E-24 + 3.2630000E+08 1.3912821E-24 + 3.2640000E+08 1.3911708E-24 + 3.2650000E+08 1.3910595E-24 + 3.2660000E+08 1.3909480E-24 + 3.2670000E+08 1.3908367E-24 + 3.2680000E+08 1.3907254E-24 + 3.2690000E+08 1.3906140E-24 + 3.2700000E+08 1.3905026E-24 + 3.2710000E+08 1.3903913E-24 + 3.2720000E+08 1.3902799E-24 + 3.2730000E+08 1.3901686E-24 + 3.2740000E+08 1.3900572E-24 + 3.2750000E+08 1.3899458E-24 + 3.2760000E+08 1.3898345E-24 + 3.2770000E+08 1.3897231E-24 + 3.2780000E+08 1.3896118E-24 + 3.2790000E+08 1.3895004E-24 + 3.2800000E+08 1.3893891E-24 + 3.2810000E+08 1.3892777E-24 + 3.2820000E+08 1.3891663E-24 + 3.2830000E+08 1.3890550E-24 + 3.2840000E+08 1.3889436E-24 + 3.2850000E+08 1.3888323E-24 + 3.2860000E+08 1.3887209E-24 + 3.2870000E+08 1.3886096E-24 + 3.2880000E+08 1.3884982E-24 + 3.2890000E+08 1.3883868E-24 + 3.2900000E+08 1.3882755E-24 + 3.2910000E+08 1.3881642E-24 + 3.2920000E+08 1.3880527E-24 + 3.2930000E+08 1.3879414E-24 + 3.2940000E+08 1.3878301E-24 + 3.2950000E+08 1.3877186E-24 + 3.2960000E+08 1.3876073E-24 + 3.2970000E+08 1.3874960E-24 + 3.2980000E+08 1.3873846E-24 + 3.2990000E+08 1.3872732E-24 + 3.3000000E+08 1.3871619E-24 + 3.3010000E+08 1.3870506E-24 + 3.3020000E+08 1.3869392E-24 + 3.3030000E+08 1.3868278E-24 + 3.3040000E+08 1.3867165E-24 + 3.3050000E+08 1.3866051E-24 + 3.3060000E+08 1.3864937E-24 + 3.3070000E+08 1.3863824E-24 + 3.3080000E+08 1.3862710E-24 + 3.3090000E+08 1.3861597E-24 + 3.3100000E+08 1.3860483E-24 + 3.3110000E+08 1.3859369E-24 + 3.3120000E+08 1.3858256E-24 + 3.3130000E+08 1.3857142E-24 + 3.3140000E+08 1.3856029E-24 + 3.3150000E+08 1.3854915E-24 + 3.3160000E+08 1.3853802E-24 + 3.3170000E+08 1.3852688E-24 + 3.3180000E+08 1.3851574E-24 + 3.3190000E+08 1.3850461E-24 + 3.3200000E+08 1.3849348E-24 + 3.3210000E+08 1.3848234E-24 + 3.3220000E+08 1.3847120E-24 + 3.3230000E+08 1.3846007E-24 + 3.3240000E+08 1.3844893E-24 + 3.3250000E+08 1.3843779E-24 + 3.3260000E+08 1.3842666E-24 + 3.3270000E+08 1.3841553E-24 + 3.3280000E+08 1.3840438E-24 + 3.3290000E+08 1.3839325E-24 + 3.3300000E+08 1.3838212E-24 + 3.3310000E+08 1.3837098E-24 + 3.3320000E+08 1.3835984E-24 + 3.3330000E+08 1.3834871E-24 + 3.3340000E+08 1.3833757E-24 + 3.3350000E+08 1.3832643E-24 + 3.3360000E+08 1.3831530E-24 + 3.3370000E+08 1.3830417E-24 + 3.3380000E+08 1.3829303E-24 + 3.3390000E+08 1.3828189E-24 + 3.3400000E+08 1.3827076E-24 + 3.3410000E+08 1.3825962E-24 + 3.3420000E+08 1.3824849E-24 + 3.3430000E+08 1.3823735E-24 + 3.3440000E+08 1.3822621E-24 + 3.3450000E+08 1.3821508E-24 + 3.3460000E+08 1.3820394E-24 + 3.3470000E+08 1.3819280E-24 + 3.3480000E+08 1.3818167E-24 + 3.3490000E+08 1.3817054E-24 + 3.3500000E+08 1.3815940E-24 + 3.3510000E+08 1.3814826E-24 + 3.3520000E+08 1.3813713E-24 + 3.3530000E+08 1.3812599E-24 + 3.3540000E+08 1.3811485E-24 + 3.3550000E+08 1.3810372E-24 + 3.3560000E+08 1.3809259E-24 + 3.3570000E+08 1.3808144E-24 + 3.3580000E+08 1.3807031E-24 + 3.3590000E+08 1.3805918E-24 + 3.3600000E+08 1.3804805E-24 + 3.3610000E+08 1.3803690E-24 + 3.3620000E+08 1.3802577E-24 + 3.3630000E+08 1.3801464E-24 + 3.3640000E+08 1.3800349E-24 + 3.3650000E+08 1.3799236E-24 + 3.3660000E+08 1.3798123E-24 + 3.3670000E+08 1.3797009E-24 + 3.3680000E+08 1.3795895E-24 + 3.3690000E+08 1.3794782E-24 + 3.3700000E+08 1.3793668E-24 + 3.3710000E+08 1.3792555E-24 + 3.3720000E+08 1.3791441E-24 + 3.3730000E+08 1.3790328E-24 + 3.3740000E+08 1.3789214E-24 + 3.3750000E+08 1.3788100E-24 + 3.3760000E+08 1.3786987E-24 + 3.3770000E+08 1.3785873E-24 + 3.3780000E+08 1.3784760E-24 + 3.3790000E+08 1.3783646E-24 + 3.3800000E+08 1.3782532E-24 + 3.3810000E+08 1.3781419E-24 + 3.3820000E+08 1.3780305E-24 + 3.3830000E+08 1.3779191E-24 + 3.3840000E+08 1.3778078E-24 + 3.3850000E+08 1.3776965E-24 + 3.3860000E+08 1.3775851E-24 + 3.3870000E+08 1.3774737E-24 + 3.3880000E+08 1.3773624E-24 + 3.3890000E+08 1.3772511E-24 + 3.3900000E+08 1.3771396E-24 + 3.3910000E+08 1.3770283E-24 + 3.3920000E+08 1.3769170E-24 + 3.3930000E+08 1.3768056E-24 + 3.3940000E+08 1.3766942E-24 + 3.3950000E+08 1.3765829E-24 + 3.3960000E+08 1.3764716E-24 + 3.3970000E+08 1.3763601E-24 + 3.3980000E+08 1.3762488E-24 + 3.3990000E+08 1.3761375E-24 + 3.4000000E+08 1.3760261E-24 + 3.4010000E+08 1.3759147E-24 + 3.4020000E+08 1.3758034E-24 + 3.4030000E+08 1.3756920E-24 + 3.4040000E+08 1.3755806E-24 + 3.4050000E+08 1.3754693E-24 + 3.4060000E+08 1.3753579E-24 + 3.4070000E+08 1.3752466E-24 + 3.4080000E+08 1.3751352E-24 + 3.4090000E+08 1.3750238E-24 + 3.4100000E+08 1.3749125E-24 + 3.4110000E+08 1.3748011E-24 + 3.4120000E+08 1.3746897E-24 + 3.4130000E+08 1.3745784E-24 + 3.4140000E+08 1.3744671E-24 + 3.4150000E+08 1.3743557E-24 + 3.4160000E+08 1.3742443E-24 + 3.4170000E+08 1.3741330E-24 + 3.4180000E+08 1.3740217E-24 + 3.4190000E+08 1.3739103E-24 + 3.4200000E+08 1.3737989E-24 + 3.4210000E+08 1.3736876E-24 + 3.4220000E+08 1.3735762E-24 + 3.4230000E+08 1.3734648E-24 + 3.4240000E+08 1.3733535E-24 + 3.4250000E+08 1.3732422E-24 + 3.4260000E+08 1.3731307E-24 + 3.4270000E+08 1.3730194E-24 + 3.4280000E+08 1.3729081E-24 + 3.4290000E+08 1.3727967E-24 + 3.4300000E+08 1.3726853E-24 + 3.4310000E+08 1.3725740E-24 + 3.4320000E+08 1.3724627E-24 + 3.4330000E+08 1.3723512E-24 + 3.4340000E+08 1.3722399E-24 + 3.4350000E+08 1.3721286E-24 + 3.4360000E+08 1.3720172E-24 + 3.4370000E+08 1.3719058E-24 + 3.4380000E+08 1.3717945E-24 + 3.4390000E+08 1.3716831E-24 + 3.4400000E+08 1.3715717E-24 + 3.4410000E+08 1.3714604E-24 + 3.4420000E+08 1.3713490E-24 + 3.4430000E+08 1.3712377E-24 + 3.4440000E+08 1.3711263E-24 + 3.4450000E+08 1.3710149E-24 + 3.4460000E+08 1.3709036E-24 + 3.4470000E+08 1.3707923E-24 + 3.4480000E+08 1.3706809E-24 + 3.4490000E+08 1.3705695E-24 + 3.4500000E+08 1.3704582E-24 + 3.4510000E+08 1.3703468E-24 + 3.4520000E+08 1.3702354E-24 + 3.4530000E+08 1.3701241E-24 + 3.4540000E+08 1.3700128E-24 + 3.4550000E+08 1.3699014E-24 + 3.4560000E+08 1.3697900E-24 + 3.4570000E+08 1.3696787E-24 + 3.4580000E+08 1.3695674E-24 + 3.4590000E+08 1.3694559E-24 + 3.4600000E+08 1.3693446E-24 + 3.4610000E+08 1.3692333E-24 + 3.4620000E+08 1.3691218E-24 + 3.4630000E+08 1.3690105E-24 + 3.4640000E+08 1.3688992E-24 + 3.4650000E+08 1.3687878E-24 + 3.4660000E+08 1.3686764E-24 + 3.4670000E+08 1.3685651E-24 + 3.4680000E+08 1.3684538E-24 + 3.4690000E+08 1.3683423E-24 + 3.4700000E+08 1.3682310E-24 + 3.4710000E+08 1.3681197E-24 + 3.4720000E+08 1.3680083E-24 + 3.4730000E+08 1.3678969E-24 + 3.4740000E+08 1.3677856E-24 + 3.4750000E+08 1.3676742E-24 + 3.4760000E+08 1.3675629E-24 + 3.4770000E+08 1.3674515E-24 + 3.4780000E+08 1.3673401E-24 + 3.4790000E+08 1.3672288E-24 + 3.4800000E+08 1.3671174E-24 + 3.4810000E+08 1.3670060E-24 + 3.4820000E+08 1.3668947E-24 + 3.4830000E+08 1.3667834E-24 + 3.4840000E+08 1.3666719E-24 + 3.4850000E+08 1.3665606E-24 + 3.4860000E+08 1.3664493E-24 + 3.4870000E+08 1.3663380E-24 + 3.4880000E+08 1.3662265E-24 + 3.4890000E+08 1.3661152E-24 + 3.4900000E+08 1.3660039E-24 + 3.4910000E+08 1.3658925E-24 + 3.4920000E+08 1.3657811E-24 + 3.4930000E+08 1.3656698E-24 + 3.4940000E+08 1.3655585E-24 + 3.4950000E+08 1.3654470E-24 + 3.4960000E+08 1.3653357E-24 + 3.4970000E+08 1.3652244E-24 + 3.4980000E+08 1.3651129E-24 + 3.4990000E+08 1.3650016E-24 + 3.5000000E+08 1.3648903E-24 + 3.5010000E+08 1.3647789E-24 + 3.5020000E+08 1.3646675E-24 + 3.5030000E+08 1.3645562E-24 + 3.5040000E+08 1.3644448E-24 + 3.5050000E+08 1.3643335E-24 + 3.5060000E+08 1.3642221E-24 + 3.5070000E+08 1.3641108E-24 + 3.5080000E+08 1.3639994E-24 + 3.5090000E+08 1.3638880E-24 + 3.5100000E+08 1.3637767E-24 + 3.5110000E+08 1.3636653E-24 + 3.5120000E+08 1.3635540E-24 + 3.5130000E+08 1.3634426E-24 + 3.5140000E+08 1.3633312E-24 + 3.5150000E+08 1.3632199E-24 + 3.5160000E+08 1.3631086E-24 + 3.5170000E+08 1.3629971E-24 + 3.5180000E+08 1.3628858E-24 + 3.5190000E+08 1.3627745E-24 + 3.5200000E+08 1.3626631E-24 + 3.5210000E+08 1.3625517E-24 + 3.5220000E+08 1.3624404E-24 + 3.5230000E+08 1.3623291E-24 + 3.5240000E+08 1.3622176E-24 + 3.5250000E+08 1.3621063E-24 + 3.5260000E+08 1.3619950E-24 + 3.5270000E+08 1.3618836E-24 + 3.5280000E+08 1.3617722E-24 + 3.5290000E+08 1.3616609E-24 + 3.5300000E+08 1.3615496E-24 + 3.5310000E+08 1.3614381E-24 + 3.5320000E+08 1.3613268E-24 + 3.5330000E+08 1.3612155E-24 + 3.5340000E+08 1.3611041E-24 + 3.5350000E+08 1.3609927E-24 + 3.5360000E+08 1.3608814E-24 + 3.5370000E+08 1.3607700E-24 + 3.5380000E+08 1.3606586E-24 + 3.5390000E+08 1.3605473E-24 + 3.5400000E+08 1.3604360E-24 + 3.5410000E+08 1.3603246E-24 + 3.5420000E+08 1.3602132E-24 + 3.5430000E+08 1.3601019E-24 + 3.5440000E+08 1.3599905E-24 + 3.5450000E+08 1.3598792E-24 + 3.5460000E+08 1.3597678E-24 + 3.5470000E+08 1.3596564E-24 + 3.5480000E+08 1.3595451E-24 + 3.5490000E+08 1.3594337E-24 + 3.5500000E+08 1.3593223E-24 + 3.5510000E+08 1.3592110E-24 + 3.5520000E+08 1.3590997E-24 + 3.5530000E+08 1.3589882E-24 + 3.5540000E+08 1.3588769E-24 + 3.5550000E+08 1.3587656E-24 + 3.5560000E+08 1.3586542E-24 + 3.5570000E+08 1.3585428E-24 + 3.5580000E+08 1.3584315E-24 + 3.5590000E+08 1.3583202E-24 + 3.5600000E+08 1.3582087E-24 + 3.5610000E+08 1.3580974E-24 + 3.5620000E+08 1.3579861E-24 + 3.5630000E+08 1.3578748E-24 + 3.5640000E+08 1.3577633E-24 + 3.5650000E+08 1.3576520E-24 + 3.5660000E+08 1.3575407E-24 + 3.5670000E+08 1.3574292E-24 + 3.5680000E+08 1.3573179E-24 + 3.5690000E+08 1.3572066E-24 + 3.5700000E+08 1.3570952E-24 + 3.5710000E+08 1.3569838E-24 + 3.5720000E+08 1.3568725E-24 + 3.5730000E+08 1.3567611E-24 + 3.5740000E+08 1.3566498E-24 + 3.5750000E+08 1.3565384E-24 + 3.5760000E+08 1.3564270E-24 + 3.5770000E+08 1.3563157E-24 + 3.5780000E+08 1.3562043E-24 + 3.5790000E+08 1.3560929E-24 + 3.5800000E+08 1.3559816E-24 + 3.5810000E+08 1.3558703E-24 + 3.5820000E+08 1.3557589E-24 + 3.5830000E+08 1.3556475E-24 + 3.5840000E+08 1.3555362E-24 + 3.5850000E+08 1.3554249E-24 + 3.5860000E+08 1.3553134E-24 + 3.5870000E+08 1.3552021E-24 + 3.5880000E+08 1.3550908E-24 + 3.5890000E+08 1.3549793E-24 + 3.5900000E+08 1.3548680E-24 + 3.5910000E+08 1.3547567E-24 + 3.5920000E+08 1.3546453E-24 + 3.5930000E+08 1.3545339E-24 + 3.5940000E+08 1.3544226E-24 + 3.5950000E+08 1.3543113E-24 + 3.5960000E+08 1.3541998E-24 + 3.5970000E+08 1.3540885E-24 + 3.5980000E+08 1.3539772E-24 + 3.5990000E+08 1.3538658E-24 + 3.6000000E+08 1.3537544E-24 + 3.6010000E+08 1.3536431E-24 + 3.6020000E+08 1.3535318E-24 + 3.6030000E+08 1.3534204E-24 + 3.6040000E+08 1.3533090E-24 + 3.6050000E+08 1.3531977E-24 + 3.6060000E+08 1.3530863E-24 + 3.6070000E+08 1.3529749E-24 + 3.6080000E+08 1.3528636E-24 + 3.6090000E+08 1.3527522E-24 + 3.6100000E+08 1.3526513E-24 + 3.6110000E+08 1.3525666E-24 + 3.6120000E+08 1.3524820E-24 + 3.6130000E+08 1.3523973E-24 + 3.6140000E+08 1.3523126E-24 + 3.6150000E+08 1.3522279E-24 + 3.6160000E+08 1.3521433E-24 + 3.6170000E+08 1.3520586E-24 + 3.6180000E+08 1.3519739E-24 + 3.6190000E+08 1.3518892E-24 + 3.6200000E+08 1.3518045E-24 + 3.6210000E+08 1.3517199E-24 + 3.6220000E+08 1.3516352E-24 + 3.6230000E+08 1.3515505E-24 + 3.6240000E+08 1.3514658E-24 + 3.6250000E+08 1.3513811E-24 + 3.6260000E+08 1.3512964E-24 + 3.6270000E+08 1.3512117E-24 + 3.6280000E+08 1.3511270E-24 + 3.6290000E+08 1.3510424E-24 + 3.6300000E+08 1.3509577E-24 + 3.6310000E+08 1.3508730E-24 + 3.6320000E+08 1.3507883E-24 + 3.6330000E+08 1.3507036E-24 + 3.6340000E+08 1.3506190E-24 + 3.6350000E+08 1.3505343E-24 + 3.6360000E+08 1.3504496E-24 + 3.6370000E+08 1.3503649E-24 + 3.6380000E+08 1.3502803E-24 + 3.6390000E+08 1.3501956E-24 + 3.6400000E+08 1.3501109E-24 + 3.6410000E+08 1.3500262E-24 + 3.6420000E+08 1.3499415E-24 + 3.6430000E+08 1.3498569E-24 + 3.6440000E+08 1.3497722E-24 + 3.6450000E+08 1.3496875E-24 + 3.6460000E+08 1.3496028E-24 + 3.6470000E+08 1.3495182E-24 + 3.6480000E+08 1.3494335E-24 + 3.6490000E+08 1.3493487E-24 + 3.6500000E+08 1.3492640E-24 + 3.6510000E+08 1.3491793E-24 + 3.6520000E+08 1.3490947E-24 + 3.6530000E+08 1.3490100E-24 + 3.6540000E+08 1.3489253E-24 + 3.6550000E+08 1.3488406E-24 + 3.6560000E+08 1.3487560E-24 + 3.6570000E+08 1.3486713E-24 + 3.6580000E+08 1.3485866E-24 + 3.6590000E+08 1.3485019E-24 + 3.6600000E+08 1.3484172E-24 + 3.6610000E+08 1.3483326E-24 + 3.6620000E+08 1.3482479E-24 + 3.6630000E+08 1.3481632E-24 + 3.6640000E+08 1.3480786E-24 + 3.6650000E+08 1.3479939E-24 + 3.6660000E+08 1.3479092E-24 + 3.6670000E+08 1.3478245E-24 + 3.6680000E+08 1.3477398E-24 + 3.6690000E+08 1.3476552E-24 + 3.6700000E+08 1.3475705E-24 + 3.6710000E+08 1.3474858E-24 + 3.6720000E+08 1.3474011E-24 + 3.6730000E+08 1.3473164E-24 + 3.6740000E+08 1.3472317E-24 + 3.6750000E+08 1.3471470E-24 + 3.6760000E+08 1.3470623E-24 + 3.6770000E+08 1.3469776E-24 + 3.6780000E+08 1.3468930E-24 + 3.6790000E+08 1.3468083E-24 + 3.6800000E+08 1.3467236E-24 + 3.6810000E+08 1.3466389E-24 + 3.6820000E+08 1.3465543E-24 + 3.6830000E+08 1.3464696E-24 + 3.6840000E+08 1.3463849E-24 + 3.6850000E+08 1.3463002E-24 + 3.6860000E+08 1.3462155E-24 + 3.6870000E+08 1.3461309E-24 + 3.6880000E+08 1.3460462E-24 + 3.6890000E+08 1.3459615E-24 + 3.6900000E+08 1.3458768E-24 + 3.6910000E+08 1.3457922E-24 + 3.6920000E+08 1.3457075E-24 + 3.6930000E+08 1.3456228E-24 + 3.6940000E+08 1.3455381E-24 + 3.6950000E+08 1.3454534E-24 + 3.6960000E+08 1.3453687E-24 + 3.6970000E+08 1.3452840E-24 + 3.6980000E+08 1.3451993E-24 + 3.6990000E+08 1.3451147E-24 + 3.7000000E+08 1.3450300E-24 + 3.7010000E+08 1.3449453E-24 + 3.7020000E+08 1.3448606E-24 + 3.7030000E+08 1.3447759E-24 + 3.7040000E+08 1.3446913E-24 + 3.7050000E+08 1.3446066E-24 + 3.7060000E+08 1.3445219E-24 + 3.7070000E+08 1.3444372E-24 + 3.7080000E+08 1.3443526E-24 + 3.7090000E+08 1.3442679E-24 + 3.7100000E+08 1.3441832E-24 + 3.7110000E+08 1.3440985E-24 + 3.7120000E+08 1.3440138E-24 + 3.7130000E+08 1.3439292E-24 + 3.7140000E+08 1.3438445E-24 + 3.7150000E+08 1.3437598E-24 + 3.7160000E+08 1.3436751E-24 + 3.7170000E+08 1.3435905E-24 + 3.7180000E+08 1.3435058E-24 + 3.7190000E+08 1.3434210E-24 + 3.7200000E+08 1.3433363E-24 + 3.7210000E+08 1.3432516E-24 + 3.7220000E+08 1.3431670E-24 + 3.7230000E+08 1.3430823E-24 + 3.7240000E+08 1.3429976E-24 + 3.7250000E+08 1.3429129E-24 + 3.7260000E+08 1.3428283E-24 + 3.7270000E+08 1.3427436E-24 + 3.7280000E+08 1.3426589E-24 + 3.7290000E+08 1.3425742E-24 + 3.7300000E+08 1.3424895E-24 + 3.7310000E+08 1.3424049E-24 + 3.7320000E+08 1.3423202E-24 + 3.7330000E+08 1.3422355E-24 + 3.7340000E+08 1.3421508E-24 + 3.7350000E+08 1.3420662E-24 + 3.7360000E+08 1.3419815E-24 + 3.7370000E+08 1.3418968E-24 + 3.7380000E+08 1.3418121E-24 + 3.7390000E+08 1.3417274E-24 + 3.7400000E+08 1.3416428E-24 + 3.7410000E+08 1.3415581E-24 + 3.7420000E+08 1.3414734E-24 + 3.7430000E+08 1.3413886E-24 + 3.7440000E+08 1.3413039E-24 + 3.7450000E+08 1.3412193E-24 + 3.7460000E+08 1.3411346E-24 + 3.7470000E+08 1.3410499E-24 + 3.7480000E+08 1.3409652E-24 + 3.7490000E+08 1.3408806E-24 + 3.7500000E+08 1.3407959E-24 + 3.7510000E+08 1.3407112E-24 + 3.7520000E+08 1.3406266E-24 + 3.7530000E+08 1.3405419E-24 + 3.7540000E+08 1.3404572E-24 + 3.7550000E+08 1.3403725E-24 + 3.7560000E+08 1.3402879E-24 + 3.7570000E+08 1.3402032E-24 + 3.7580000E+08 1.3401185E-24 + 3.7590000E+08 1.3400338E-24 + 3.7600000E+08 1.3399491E-24 + 3.7610000E+08 1.3398645E-24 + 3.7620000E+08 1.3397798E-24 + 3.7630000E+08 1.3396951E-24 + 3.7640000E+08 1.3396104E-24 + 3.7650000E+08 1.3395258E-24 + 3.7660000E+08 1.3394410E-24 + 3.7670000E+08 1.3393563E-24 + 3.7680000E+08 1.3392716E-24 + 3.7690000E+08 1.3391869E-24 + 3.7700000E+08 1.3391023E-24 + 3.7710000E+08 1.3390176E-24 + 3.7720000E+08 1.3389329E-24 + 3.7730000E+08 1.3388482E-24 + 3.7740000E+08 1.3387636E-24 + 3.7750000E+08 1.3386789E-24 + 3.7760000E+08 1.3385942E-24 + 3.7770000E+08 1.3385095E-24 + 3.7780000E+08 1.3384248E-24 + 3.7790000E+08 1.3383402E-24 + 3.7800000E+08 1.3382555E-24 + 3.7810000E+08 1.3381708E-24 + 3.7820000E+08 1.3380861E-24 + 3.7830000E+08 1.3380015E-24 + 3.7840000E+08 1.3379168E-24 + 3.7850000E+08 1.3378321E-24 + 3.7860000E+08 1.3377474E-24 + 3.7870000E+08 1.3376627E-24 + 3.7880000E+08 1.3375781E-24 + 3.7890000E+08 1.3374934E-24 + 3.7900000E+08 1.3374086E-24 + 3.7910000E+08 1.3373239E-24 + 3.7920000E+08 1.3372393E-24 + 3.7930000E+08 1.3371546E-24 + 3.7940000E+08 1.3370699E-24 + 3.7950000E+08 1.3369852E-24 + 3.7960000E+08 1.3369005E-24 + 3.7970000E+08 1.3368159E-24 + 3.7980000E+08 1.3367312E-24 + 3.7990000E+08 1.3366465E-24 + 3.8000000E+08 1.3365618E-24 + 3.8010000E+08 1.3364772E-24 + 3.8020000E+08 1.3363925E-24 + 3.8030000E+08 1.3363078E-24 + 3.8040000E+08 1.3362231E-24 + 3.8050000E+08 1.3361384E-24 + 3.8060000E+08 1.3360538E-24 + 3.8070000E+08 1.3359691E-24 + 3.8080000E+08 1.3358844E-24 + 3.8090000E+08 1.3357997E-24 + 3.8100000E+08 1.3357151E-24 + 3.8110000E+08 1.3356304E-24 + 3.8120000E+08 1.3355457E-24 + 3.8130000E+08 1.3354610E-24 + 3.8140000E+08 1.3353762E-24 + 3.8150000E+08 1.3352916E-24 + 3.8160000E+08 1.3352069E-24 + 3.8170000E+08 1.3351222E-24 + 3.8180000E+08 1.3350375E-24 + 3.8190000E+08 1.3349529E-24 + 3.8200000E+08 1.3348682E-24 + 3.8210000E+08 1.3347835E-24 + 3.8220000E+08 1.3346989E-24 + 3.8230000E+08 1.3346142E-24 + 3.8240000E+08 1.3345295E-24 + 3.8250000E+08 1.3344448E-24 + 3.8260000E+08 1.3343601E-24 + 3.8270000E+08 1.3342755E-24 + 3.8280000E+08 1.3341908E-24 + 3.8290000E+08 1.3341061E-24 + 3.8300000E+08 1.3340214E-24 + 3.8310000E+08 1.3339368E-24 + 3.8320000E+08 1.3338521E-24 + 3.8330000E+08 1.3337674E-24 + 3.8340000E+08 1.3336827E-24 + 3.8350000E+08 1.3335980E-24 + 3.8360000E+08 1.3335134E-24 + 3.8370000E+08 1.3334286E-24 + 3.8380000E+08 1.3333439E-24 + 3.8390000E+08 1.3332592E-24 + 3.8400000E+08 1.3331746E-24 + 3.8410000E+08 1.3330899E-24 + 3.8420000E+08 1.3330052E-24 + 3.8430000E+08 1.3329205E-24 + 3.8440000E+08 1.3328358E-24 + 3.8450000E+08 1.3327512E-24 + 3.8460000E+08 1.3326665E-24 + 3.8470000E+08 1.3325818E-24 + 3.8480000E+08 1.3324971E-24 + 3.8490000E+08 1.3324125E-24 + 3.8500000E+08 1.3323278E-24 + 3.8510000E+08 1.3322431E-24 + 3.8520000E+08 1.3321584E-24 + 3.8530000E+08 1.3320737E-24 + 3.8540000E+08 1.3319891E-24 + 3.8550000E+08 1.3319044E-24 + 3.8560000E+08 1.3318197E-24 + 3.8570000E+08 1.3317350E-24 + 3.8580000E+08 1.3316504E-24 + 3.8590000E+08 1.3315657E-24 + 3.8600000E+08 1.3314809E-24 + 3.8610000E+08 1.3313962E-24 + 3.8620000E+08 1.3313115E-24 + 3.8630000E+08 1.3312269E-24 + 3.8640000E+08 1.3311422E-24 + 3.8650000E+08 1.3310575E-24 + 3.8660000E+08 1.3309728E-24 + 3.8670000E+08 1.3308882E-24 + 3.8680000E+08 1.3308035E-24 + 3.8690000E+08 1.3307188E-24 + 3.8700000E+08 1.3306341E-24 + 3.8710000E+08 1.3305494E-24 + 3.8720000E+08 1.3304648E-24 + 3.8730000E+08 1.3303801E-24 + 3.8740000E+08 1.3302954E-24 + 3.8750000E+08 1.3302107E-24 + 3.8760000E+08 1.3301261E-24 + 3.8770000E+08 1.3300414E-24 + 3.8780000E+08 1.3299567E-24 + 3.8790000E+08 1.3298720E-24 + 3.8800000E+08 1.3297873E-24 + 3.8810000E+08 1.3297027E-24 + 3.8820000E+08 1.3296180E-24 + 3.8830000E+08 1.3295333E-24 + 3.8840000E+08 1.3294485E-24 + 3.8850000E+08 1.3293639E-24 + 3.8860000E+08 1.3292792E-24 + 3.8870000E+08 1.3291945E-24 + 3.8880000E+08 1.3291098E-24 + 3.8890000E+08 1.3290251E-24 + 3.8900000E+08 1.3289405E-24 + 3.8910000E+08 1.3288558E-24 + 3.8920000E+08 1.3287712E-24 + 3.8930000E+08 1.3286865E-24 + 3.8940000E+08 1.3286018E-24 + 3.8950000E+08 1.3285171E-24 + 3.8960000E+08 1.3284324E-24 + 3.8970000E+08 1.3283478E-24 + 3.8980000E+08 1.3282631E-24 + 3.8990000E+08 1.3281784E-24 + 3.9000000E+08 1.3280937E-24 + 3.9010000E+08 1.3280091E-24 + 3.9020000E+08 1.3279244E-24 + 3.9030000E+08 1.3278397E-24 + 3.9040000E+08 1.3277550E-24 + 3.9050000E+08 1.3276703E-24 + 3.9060000E+08 1.3275857E-24 + 3.9070000E+08 1.3275009E-24 + 3.9080000E+08 1.3274162E-24 + 3.9090000E+08 1.3273315E-24 + 3.9100000E+08 1.3272469E-24 + 3.9110000E+08 1.3271622E-24 + 3.9120000E+08 1.3270775E-24 + 3.9130000E+08 1.3269928E-24 + 3.9140000E+08 1.3269081E-24 + 3.9150000E+08 1.3268235E-24 + 3.9160000E+08 1.3267388E-24 + 3.9170000E+08 1.3266541E-24 + 3.9180000E+08 1.3265694E-24 + 3.9190000E+08 1.3264848E-24 + 3.9200000E+08 1.3264001E-24 + 3.9210000E+08 1.3263154E-24 + 3.9220000E+08 1.3262307E-24 + 3.9230000E+08 1.3261460E-24 + 3.9240000E+08 1.3260614E-24 + 3.9250000E+08 1.3259767E-24 + 3.9260000E+08 1.3258920E-24 + 3.9270000E+08 1.3258073E-24 + 3.9280000E+08 1.3257226E-24 + 3.9290000E+08 1.3256380E-24 + 3.9300000E+08 1.3255533E-24 + 3.9310000E+08 1.3254685E-24 + 3.9320000E+08 1.3253838E-24 + 3.9330000E+08 1.3252992E-24 + 3.9340000E+08 1.3252145E-24 + 3.9350000E+08 1.3251298E-24 + 3.9360000E+08 1.3250451E-24 + 3.9370000E+08 1.3249605E-24 + 3.9380000E+08 1.3248758E-24 + 3.9390000E+08 1.3247911E-24 + 3.9400000E+08 1.3247064E-24 + 3.9410000E+08 1.3246217E-24 + 3.9420000E+08 1.3245371E-24 + 3.9430000E+08 1.3244524E-24 + 3.9440000E+08 1.3243677E-24 + 3.9450000E+08 1.3242830E-24 + 3.9460000E+08 1.3241983E-24 + 3.9470000E+08 1.3241137E-24 + 3.9480000E+08 1.3240290E-24 + 3.9490000E+08 1.3239443E-24 + 3.9500000E+08 1.3238596E-24 + 3.9510000E+08 1.3237750E-24 + 3.9520000E+08 1.3236903E-24 + 3.9530000E+08 1.3236056E-24 + 3.9540000E+08 1.3235209E-24 + 3.9550000E+08 1.3234362E-24 + 3.9560000E+08 1.3233515E-24 + 3.9570000E+08 1.3232668E-24 + 3.9580000E+08 1.3231821E-24 + 3.9590000E+08 1.3230974E-24 + 3.9600000E+08 1.3230128E-24 + 3.9610000E+08 1.3229281E-24 + 3.9620000E+08 1.3228434E-24 + 3.9630000E+08 1.3227588E-24 + 3.9640000E+08 1.3226741E-24 + 3.9650000E+08 1.3225894E-24 + 3.9660000E+08 1.3225047E-24 + 3.9670000E+08 1.3224201E-24 + 3.9680000E+08 1.3223354E-24 + 3.9690000E+08 1.3222507E-24 + 3.9700000E+08 1.3221660E-24 + 3.9710000E+08 1.3220813E-24 + 3.9720000E+08 1.3219967E-24 + 3.9730000E+08 1.3219120E-24 + 3.9740000E+08 1.3218273E-24 + 3.9750000E+08 1.3217426E-24 + 3.9760000E+08 1.3216580E-24 + 3.9770000E+08 1.3215733E-24 + 3.9780000E+08 1.3214885E-24 + 3.9790000E+08 1.3214038E-24 + 3.9800000E+08 1.3213191E-24 + 3.9810000E+08 1.3212345E-24 + 3.9820000E+08 1.3211498E-24 + 3.9830000E+08 1.3210651E-24 + 3.9840000E+08 1.3209804E-24 + 3.9850000E+08 1.3208958E-24 + 3.9860000E+08 1.3208111E-24 + 3.9870000E+08 1.3207264E-24 + 3.9880000E+08 1.3206417E-24 + 3.9890000E+08 1.3205570E-24 + 3.9900000E+08 1.3204724E-24 + 3.9910000E+08 1.3203877E-24 + 3.9920000E+08 1.3203030E-24 + 3.9930000E+08 1.3202183E-24 + 3.9940000E+08 1.3201337E-24 + 3.9950000E+08 1.3200490E-24 + 3.9960000E+08 1.3199643E-24 + 3.9970000E+08 1.3198796E-24 + 3.9980000E+08 1.3197949E-24 + 3.9990000E+08 1.3197103E-24 + 4.0000000E+08 1.3196256E-24 + 4.0010000E+08 1.3195408E-24 + 4.0020000E+08 1.3194561E-24 + 4.0030000E+08 1.3193715E-24 + 4.0040000E+08 1.3192868E-24 + 4.0050000E+08 1.3192021E-24 + 4.0060000E+08 1.3191174E-24 + 4.0070000E+08 1.3190327E-24 + 4.0080000E+08 1.3189481E-24 + 4.0090000E+08 1.3188634E-24 + 4.0100000E+08 1.3187787E-24 + 4.0110000E+08 1.3186940E-24 + 4.0120000E+08 1.3186094E-24 + 4.0130000E+08 1.3185247E-24 + 4.0140000E+08 1.3184400E-24 + 4.0150000E+08 1.3183553E-24 + 4.0160000E+08 1.3182706E-24 + 4.0170000E+08 1.3181860E-24 + 4.0180000E+08 1.3181013E-24 + 4.0190000E+08 1.3180166E-24 + 4.0200000E+08 1.3179319E-24 + 4.0210000E+08 1.3178473E-24 + 4.0220000E+08 1.3177626E-24 + 4.0230000E+08 1.3176779E-24 + 4.0240000E+08 1.3175932E-24 + 4.0250000E+08 1.3175084E-24 + 4.0260000E+08 1.3174238E-24 + 4.0270000E+08 1.3173391E-24 + 4.0280000E+08 1.3172544E-24 + 4.0290000E+08 1.3171697E-24 + 4.0300000E+08 1.3170851E-24 + 4.0310000E+08 1.3170004E-24 + 4.0320000E+08 1.3169157E-24 + 4.0330000E+08 1.3168311E-24 + 4.0340000E+08 1.3167464E-24 + 4.0350000E+08 1.3166617E-24 + 4.0360000E+08 1.3165770E-24 + 4.0370000E+08 1.3164923E-24 + 4.0380000E+08 1.3164077E-24 + 4.0390000E+08 1.3163230E-24 + 4.0400000E+08 1.3162383E-24 + 4.0410000E+08 1.3161536E-24 + 4.0420000E+08 1.3160690E-24 + 4.0430000E+08 1.3159843E-24 + 4.0440000E+08 1.3158996E-24 + 4.0450000E+08 1.3158149E-24 + 4.0460000E+08 1.3157302E-24 + 4.0470000E+08 1.3156456E-24 + 4.0480000E+08 1.3155608E-24 + 4.0490000E+08 1.3154761E-24 + 4.0500000E+08 1.3153914E-24 + 4.0510000E+08 1.3153068E-24 + 4.0520000E+08 1.3152221E-24 + 4.0530000E+08 1.3151374E-24 + 4.0540000E+08 1.3150527E-24 + 4.0550000E+08 1.3149680E-24 + 4.0560000E+08 1.3148834E-24 + 4.0570000E+08 1.3147987E-24 + 4.0580000E+08 1.3147140E-24 + 4.0590000E+08 1.3146293E-24 + 4.0600000E+08 1.3145447E-24 + 4.0610000E+08 1.3144600E-24 + 4.0620000E+08 1.3143753E-24 + 4.0630000E+08 1.3142906E-24 + 4.0640000E+08 1.3142059E-24 + 4.0650000E+08 1.3141213E-24 + 4.0660000E+08 1.3140366E-24 + 4.0670000E+08 1.3139519E-24 + 4.0680000E+08 1.3138672E-24 + 4.0690000E+08 1.3137826E-24 + 4.0700000E+08 1.3136979E-24 + 4.0710000E+08 1.3136132E-24 + 4.0720000E+08 1.3135284E-24 + 4.0730000E+08 1.3134437E-24 + 4.0740000E+08 1.3133591E-24 + 4.0750000E+08 1.3132744E-24 + 4.0760000E+08 1.3131897E-24 + 4.0770000E+08 1.3131050E-24 + 4.0780000E+08 1.3130204E-24 + 4.0790000E+08 1.3129357E-24 + 4.0800000E+08 1.3128510E-24 + 4.0810000E+08 1.3127663E-24 + 4.0820000E+08 1.3126816E-24 + 4.0830000E+08 1.3125970E-24 + 4.0840000E+08 1.3125123E-24 + 4.0850000E+08 1.3124276E-24 + 4.0860000E+08 1.3123429E-24 + 4.0870000E+08 1.3122583E-24 + 4.0880000E+08 1.3121736E-24 + 4.0890000E+08 1.3120889E-24 + 4.0900000E+08 1.3120042E-24 + 4.0910000E+08 1.3119195E-24 + 4.0920000E+08 1.3118349E-24 + 4.0930000E+08 1.3117502E-24 + 4.0940000E+08 1.3116655E-24 + 4.0950000E+08 1.3115808E-24 + 4.0960000E+08 1.3114961E-24 + 4.0970000E+08 1.3114114E-24 + 4.0980000E+08 1.3113267E-24 + 4.0990000E+08 1.3112420E-24 + 4.1000000E+08 1.3111573E-24 + 4.1010000E+08 1.3110727E-24 + 4.1020000E+08 1.3109880E-24 + 4.1030000E+08 1.3109034E-24 + 4.1040000E+08 1.3108187E-24 + 4.1050000E+08 1.3107340E-24 + 4.1060000E+08 1.3106493E-24 + 4.1070000E+08 1.3105646E-24 + 4.1080000E+08 1.3104800E-24 + 4.1090000E+08 1.3103953E-24 + 4.1100000E+08 1.3103106E-24 + 4.1110000E+08 1.3102259E-24 + 4.1120000E+08 1.3101412E-24 + 4.1130000E+08 1.3100566E-24 + 4.1140000E+08 1.3099719E-24 + 4.1150000E+08 1.3098872E-24 + 4.1160000E+08 1.3098025E-24 + 4.1170000E+08 1.3097179E-24 + 4.1180000E+08 1.3096332E-24 + 4.1190000E+08 1.3095484E-24 + 4.1200000E+08 1.3094637E-24 + 4.1210000E+08 1.3093791E-24 + 4.1220000E+08 1.3092944E-24 + 4.1230000E+08 1.3092097E-24 + 4.1240000E+08 1.3091250E-24 + 4.1250000E+08 1.3090403E-24 + 4.1260000E+08 1.3089557E-24 + 4.1270000E+08 1.3088710E-24 + 4.1280000E+08 1.3087863E-24 + 4.1290000E+08 1.3087016E-24 + 4.1300000E+08 1.3086169E-24 + 4.1310000E+08 1.3085323E-24 + 4.1320000E+08 1.3084476E-24 + 4.1330000E+08 1.3083629E-24 + 4.1340000E+08 1.3082782E-24 + 4.1350000E+08 1.3081936E-24 + 4.1360000E+08 1.3081089E-24 + 4.1370000E+08 1.3080242E-24 + 4.1380000E+08 1.3079395E-24 + 4.1390000E+08 1.3078549E-24 + 4.1400000E+08 1.3077702E-24 + 4.1410000E+08 1.3076855E-24 + 4.1420000E+08 1.3076007E-24 + 4.1430000E+08 1.3075160E-24 + 4.1440000E+08 1.3074314E-24 + 4.1450000E+08 1.3073467E-24 + 4.1460000E+08 1.3072620E-24 + 4.1470000E+08 1.3071773E-24 + 4.1480000E+08 1.3070926E-24 + 4.1490000E+08 1.3070080E-24 + 4.1500000E+08 1.3069233E-24 + 4.1510000E+08 1.3068386E-24 + 4.1520000E+08 1.3067539E-24 + 4.1530000E+08 1.3066693E-24 + 4.1540000E+08 1.3065846E-24 + 4.1550000E+08 1.3064999E-24 + 4.1560000E+08 1.3064152E-24 + 4.1570000E+08 1.3063306E-24 + 4.1580000E+08 1.3062459E-24 + 4.1590000E+08 1.3061612E-24 + 4.1600000E+08 1.3060765E-24 + 4.1610000E+08 1.3059918E-24 + 4.1620000E+08 1.3059072E-24 + 4.1630000E+08 1.3058225E-24 + 4.1640000E+08 1.3057378E-24 + 4.1650000E+08 1.3056531E-24 + 4.1660000E+08 1.3055683E-24 + 4.1670000E+08 1.3054837E-24 + 4.1680000E+08 1.3053990E-24 + 4.1690000E+08 1.3053143E-24 + 4.1700000E+08 1.3052296E-24 + 4.1710000E+08 1.3051450E-24 + 4.1720000E+08 1.3050603E-24 + 4.1730000E+08 1.3049756E-24 + 4.1740000E+08 1.3048910E-24 + 4.1750000E+08 1.3048063E-24 + 4.1760000E+08 1.3047216E-24 + 4.1770000E+08 1.3046369E-24 + 4.1780000E+08 1.3045523E-24 + 4.1790000E+08 1.3044676E-24 + 4.1800000E+08 1.3043829E-24 + 4.1810000E+08 1.3042982E-24 + 4.1820000E+08 1.3042135E-24 + 4.1830000E+08 1.3041289E-24 + 4.1840000E+08 1.3040442E-24 + 4.1850000E+08 1.3039595E-24 + 4.1860000E+08 1.3038748E-24 + 4.1870000E+08 1.3037902E-24 + 4.1880000E+08 1.3037055E-24 + 4.1890000E+08 1.3036207E-24 + 4.1900000E+08 1.3035360E-24 + 4.1910000E+08 1.3034513E-24 + 4.1920000E+08 1.3033667E-24 + 4.1930000E+08 1.3032820E-24 + 4.1940000E+08 1.3031973E-24 + 4.1950000E+08 1.3031126E-24 + 4.1960000E+08 1.3030280E-24 + 4.1970000E+08 1.3029433E-24 + 4.1980000E+08 1.3028586E-24 + 4.1990000E+08 1.3027739E-24 + 4.2000000E+08 1.3026892E-24 + 4.2010000E+08 1.3026046E-24 + 4.2020000E+08 1.3025199E-24 + 4.2030000E+08 1.3024352E-24 + 4.2040000E+08 1.3023505E-24 + 4.2050000E+08 1.3022659E-24 + 4.2060000E+08 1.3021812E-24 + 4.2070000E+08 1.3020965E-24 + 4.2080000E+08 1.3020118E-24 + 4.2090000E+08 1.3019271E-24 + 4.2100000E+08 1.3018425E-24 + 4.2110000E+08 1.3017578E-24 + 4.2120000E+08 1.3016731E-24 + 4.2130000E+08 1.3015883E-24 + 4.2140000E+08 1.3015037E-24 + 4.2150000E+08 1.3014190E-24 + 4.2160000E+08 1.3013343E-24 + 4.2170000E+08 1.3012496E-24 + 4.2180000E+08 1.3011649E-24 + 4.2190000E+08 1.3010803E-24 + 4.2200000E+08 1.3009956E-24 + 4.2210000E+08 1.3009109E-24 + 4.2220000E+08 1.3008262E-24 + 4.2230000E+08 1.3007416E-24 + 4.2240000E+08 1.3006569E-24 + 4.2250000E+08 1.3005722E-24 + 4.2260000E+08 1.3004875E-24 + 4.2270000E+08 1.3004028E-24 + 4.2280000E+08 1.3003182E-24 + 4.2290000E+08 1.3002335E-24 + 4.2300000E+08 1.3001488E-24 + 4.2310000E+08 1.3000641E-24 + 4.2320000E+08 1.2999795E-24 + 4.2330000E+08 1.2998948E-24 + 4.2340000E+08 1.2998101E-24 + 4.2350000E+08 1.2997254E-24 + 4.2360000E+08 1.2996406E-24 + 4.2370000E+08 1.2995560E-24 + 4.2380000E+08 1.2994713E-24 + 4.2390000E+08 1.2993866E-24 + 4.2400000E+08 1.2993019E-24 + 4.2410000E+08 1.2992172E-24 + 4.2420000E+08 1.2991326E-24 + 4.2430000E+08 1.2990479E-24 + 4.2440000E+08 1.2989633E-24 + 4.2450000E+08 1.2988786E-24 + 4.2460000E+08 1.2987939E-24 + 4.2470000E+08 1.2987092E-24 + 4.2480000E+08 1.2986245E-24 + 4.2490000E+08 1.2985399E-24 + 4.2500000E+08 1.2984552E-24 + 4.2510000E+08 1.2983705E-24 + 4.2520000E+08 1.2982858E-24 + 4.2530000E+08 1.2982012E-24 + 4.2540000E+08 1.2981165E-24 + 4.2550000E+08 1.2980318E-24 + 4.2560000E+08 1.2979471E-24 + 4.2570000E+08 1.2978624E-24 + 4.2580000E+08 1.2977778E-24 + 4.2590000E+08 1.2976931E-24 + 4.2600000E+08 1.2976083E-24 + 4.2610000E+08 1.2975236E-24 + 4.2620000E+08 1.2974390E-24 + 4.2630000E+08 1.2973543E-24 + 4.2640000E+08 1.2972696E-24 + 4.2650000E+08 1.2971849E-24 + 4.2660000E+08 1.2971003E-24 + 4.2670000E+08 1.2970156E-24 + 4.2680000E+08 1.2969309E-24 + 4.2690000E+08 1.2968462E-24 + 4.2700000E+08 1.2967615E-24 + 4.2710000E+08 1.2966769E-24 + 4.2720000E+08 1.2965922E-24 + 4.2730000E+08 1.2965075E-24 + 4.2740000E+08 1.2964228E-24 + 4.2750000E+08 1.2963381E-24 + 4.2760000E+08 1.2962535E-24 + 4.2770000E+08 1.2961688E-24 + 4.2780000E+08 1.2960841E-24 + 4.2790000E+08 1.2959994E-24 + 4.2800000E+08 1.2959148E-24 + 4.2810000E+08 1.2958301E-24 + 4.2820000E+08 1.2957454E-24 + 4.2830000E+08 1.2956606E-24 + 4.2840000E+08 1.2955759E-24 + 4.2850000E+08 1.2954913E-24 + 4.2860000E+08 1.2954066E-24 + 4.2870000E+08 1.2953219E-24 + 4.2880000E+08 1.2952372E-24 + 4.2890000E+08 1.2951526E-24 + 4.2900000E+08 1.2950679E-24 + 4.2910000E+08 1.2949832E-24 + 4.2920000E+08 1.2948985E-24 + 4.2930000E+08 1.2948138E-24 + 4.2940000E+08 1.2947292E-24 + 4.2950000E+08 1.2946445E-24 + 4.2960000E+08 1.2945598E-24 + 4.2970000E+08 1.2944751E-24 + 4.2980000E+08 1.2943905E-24 + 4.2990000E+08 1.2943058E-24 + 4.3000000E+08 1.2942211E-24 + 4.3010000E+08 1.2941364E-24 + 4.3020000E+08 1.2940517E-24 + 4.3030000E+08 1.2939671E-24 + 4.3040000E+08 1.2938824E-24 + 4.3050000E+08 1.2937977E-24 + 4.3060000E+08 1.2937130E-24 + 4.3070000E+08 1.2936283E-24 + 4.3080000E+08 1.2935436E-24 + 4.3090000E+08 1.2934589E-24 + 4.3100000E+08 1.2933742E-24 + 4.3110000E+08 1.2932895E-24 + 4.3120000E+08 1.2932049E-24 + 4.3130000E+08 1.2931202E-24 + 4.3140000E+08 1.2930355E-24 + 4.3150000E+08 1.2929509E-24 + 4.3160000E+08 1.2928662E-24 + 4.3170000E+08 1.2927815E-24 + 4.3180000E+08 1.2926968E-24 + 4.3190000E+08 1.2926122E-24 + 4.3200000E+08 1.2925275E-24 + 4.3210000E+08 1.2924428E-24 + 4.3220000E+08 1.2923581E-24 + 4.3230000E+08 1.2922735E-24 + 4.3240000E+08 1.2921888E-24 + 4.3250000E+08 1.2921041E-24 + 4.3260000E+08 1.2920194E-24 + 4.3270000E+08 1.2919347E-24 + 4.3280000E+08 1.2918501E-24 + 4.3290000E+08 1.2917654E-24 + 4.3300000E+08 1.2916806E-24 + 4.3310000E+08 1.2915959E-24 + 4.3320000E+08 1.2915112E-24 + 4.3330000E+08 1.2914266E-24 + 4.3340000E+08 1.2913419E-24 + 4.3350000E+08 1.2912572E-24 + 4.3360000E+08 1.2911725E-24 + 4.3370000E+08 1.2910879E-24 + 4.3380000E+08 1.2910032E-24 + 4.3390000E+08 1.2909185E-24 + 4.3400000E+08 1.2908338E-24 + 4.3410000E+08 1.2907492E-24 + 4.3420000E+08 1.2906645E-24 + 4.3430000E+08 1.2905798E-24 + 4.3440000E+08 1.2904951E-24 + 4.3450000E+08 1.2904104E-24 + 4.3460000E+08 1.2903258E-24 + 4.3470000E+08 1.2902411E-24 + 4.3480000E+08 1.2901564E-24 + 4.3490000E+08 1.2900717E-24 + 4.3500000E+08 1.2899870E-24 + 4.3510000E+08 1.2899024E-24 + 4.3520000E+08 1.2898177E-24 + 4.3530000E+08 1.2897330E-24 + 4.3540000E+08 1.2896482E-24 + 4.3550000E+08 1.2895636E-24 + 4.3560000E+08 1.2894789E-24 + 4.3570000E+08 1.2893942E-24 + 4.3580000E+08 1.2893095E-24 + 4.3590000E+08 1.2892249E-24 + 4.3600000E+08 1.2891402E-24 + 4.3610000E+08 1.2890555E-24 + 4.3620000E+08 1.2889708E-24 + 4.3630000E+08 1.2888861E-24 + 4.3640000E+08 1.2888015E-24 + 4.3650000E+08 1.2887168E-24 + 4.3660000E+08 1.2886321E-24 + 4.3670000E+08 1.2885474E-24 + 4.3680000E+08 1.2884627E-24 + 4.3690000E+08 1.2883781E-24 + 4.3700000E+08 1.2882934E-24 + 4.3710000E+08 1.2882087E-24 + 4.3720000E+08 1.2881240E-24 + 4.3730000E+08 1.2880394E-24 + 4.3740000E+08 1.2879547E-24 + 4.3750000E+08 1.2878700E-24 + 4.3760000E+08 1.2877853E-24 + 4.3770000E+08 1.2877006E-24 + 4.3780000E+08 1.2876159E-24 + 4.3790000E+08 1.2875312E-24 + 4.3800000E+08 1.2874465E-24 + 4.3810000E+08 1.2873618E-24 + 4.3820000E+08 1.2872772E-24 + 4.3830000E+08 1.2871925E-24 + 4.3840000E+08 1.2871078E-24 + 4.3850000E+08 1.2870232E-24 + 4.3860000E+08 1.2869385E-24 + 4.3870000E+08 1.2868538E-24 + 4.3880000E+08 1.2867691E-24 + 4.3890000E+08 1.2866844E-24 + 4.3900000E+08 1.2865998E-24 + 4.3910000E+08 1.2865151E-24 + 4.3920000E+08 1.2864304E-24 + 4.3930000E+08 1.2863457E-24 + 4.3940000E+08 1.2862611E-24 + 4.3950000E+08 1.2861764E-24 + 4.3960000E+08 1.2860917E-24 + 4.3970000E+08 1.2860070E-24 + 4.3980000E+08 1.2859224E-24 + 4.3990000E+08 1.2858377E-24 + 4.4000000E+08 1.2857530E-24 + 4.4010000E+08 1.2856682E-24 + 4.4020000E+08 1.2855835E-24 + 4.4030000E+08 1.2854989E-24 + 4.4040000E+08 1.2854142E-24 + 4.4050000E+08 1.2853295E-24 + 4.4060000E+08 1.2852448E-24 + 4.4070000E+08 1.2851601E-24 + 4.4080000E+08 1.2850755E-24 + 4.4090000E+08 1.2849908E-24 + 4.4100000E+08 1.2849061E-24 + 4.4110000E+08 1.2848214E-24 + 4.4120000E+08 1.2847368E-24 + 4.4130000E+08 1.2846521E-24 + 4.4140000E+08 1.2845674E-24 + 4.4150000E+08 1.2844827E-24 + 4.4160000E+08 1.2843981E-24 + 4.4170000E+08 1.2843134E-24 + 4.4180000E+08 1.2842287E-24 + 4.4190000E+08 1.2841440E-24 + 4.4200000E+08 1.2840593E-24 + 4.4210000E+08 1.2839747E-24 + 4.4220000E+08 1.2838900E-24 + 4.4230000E+08 1.2838053E-24 + 4.4240000E+08 1.2837205E-24 + 4.4250000E+08 1.2836359E-24 + 4.4260000E+08 1.2835512E-24 + 4.4270000E+08 1.2834665E-24 + 4.4280000E+08 1.2833818E-24 + 4.4290000E+08 1.2832971E-24 + 4.4300000E+08 1.2832125E-24 + 4.4310000E+08 1.2831278E-24 + 4.4320000E+08 1.2830431E-24 + 4.4330000E+08 1.2829584E-24 + 4.4340000E+08 1.2828738E-24 + 4.4350000E+08 1.2827891E-24 + 4.4360000E+08 1.2827044E-24 + 4.4370000E+08 1.2826197E-24 + 4.4380000E+08 1.2825350E-24 + 4.4390000E+08 1.2824504E-24 + 4.4400000E+08 1.2823657E-24 + 4.4410000E+08 1.2822810E-24 + 4.4420000E+08 1.2821963E-24 + 4.4430000E+08 1.2821117E-24 + 4.4440000E+08 1.2820270E-24 + 4.4450000E+08 1.2819423E-24 + 4.4460000E+08 1.2818576E-24 + 4.4470000E+08 1.2817729E-24 + 4.4480000E+08 1.2816882E-24 + 4.4490000E+08 1.2816035E-24 + 4.4500000E+08 1.2815188E-24 + 4.4510000E+08 1.2814341E-24 + 4.4520000E+08 1.2813495E-24 + 4.4530000E+08 1.2812648E-24 + 4.4540000E+08 1.2811801E-24 + 4.4550000E+08 1.2810955E-24 + 4.4560000E+08 1.2810108E-24 + 4.4570000E+08 1.2809261E-24 + 4.4580000E+08 1.2808414E-24 + 4.4590000E+08 1.2807567E-24 + 4.4600000E+08 1.2806721E-24 + 4.4610000E+08 1.2805874E-24 + 4.4620000E+08 1.2805027E-24 + 4.4630000E+08 1.2804180E-24 + 4.4640000E+08 1.2803334E-24 + 4.4650000E+08 1.2802487E-24 + 4.4660000E+08 1.2801640E-24 + 4.4670000E+08 1.2800793E-24 + 4.4680000E+08 1.2799946E-24 + 4.4690000E+08 1.2799100E-24 + 4.4700000E+08 1.2798253E-24 + 4.4710000E+08 1.2797405E-24 + 4.4720000E+08 1.2796558E-24 + 4.4730000E+08 1.2795712E-24 + 4.4740000E+08 1.2794865E-24 + 4.4750000E+08 1.2794018E-24 + 4.4760000E+08 1.2793171E-24 + 4.4770000E+08 1.2792324E-24 + 4.4780000E+08 1.2791478E-24 + 4.4790000E+08 1.2790631E-24 + 4.4800000E+08 1.2789784E-24 + 4.4810000E+08 1.2788937E-24 + 4.4820000E+08 1.2788091E-24 + 4.4830000E+08 1.2787244E-24 + 4.4840000E+08 1.2786397E-24 + 4.4850000E+08 1.2785550E-24 + 4.4860000E+08 1.2784704E-24 + 4.4870000E+08 1.2783857E-24 + 4.4880000E+08 1.2783010E-24 + 4.4890000E+08 1.2782163E-24 + 4.4900000E+08 1.2781316E-24 + 4.4910000E+08 1.2780470E-24 + 4.4920000E+08 1.2779623E-24 + 4.4930000E+08 1.2778776E-24 + 4.4940000E+08 1.2777929E-24 + 4.4950000E+08 1.2777081E-24 + 4.4960000E+08 1.2776235E-24 + 4.4970000E+08 1.2775388E-24 + 4.4980000E+08 1.2774541E-24 + 4.4990000E+08 1.2773694E-24 + 4.5000000E+08 1.2772848E-24 + 4.5010000E+08 1.2772001E-24 + 4.5020000E+08 1.2771154E-24 + 4.5030000E+08 1.2770307E-24 + 4.5040000E+08 1.2769460E-24 + 4.5050000E+08 1.2768614E-24 + 4.5060000E+08 1.2767767E-24 + 4.5070000E+08 1.2766920E-24 + 4.5080000E+08 1.2766073E-24 + 4.5090000E+08 1.2765227E-24 + 4.5100000E+08 1.2764380E-24 + 4.5110000E+08 1.2763533E-24 + 4.5120000E+08 1.2762686E-24 + 4.5130000E+08 1.2761839E-24 + 4.5140000E+08 1.2760993E-24 + 4.5150000E+08 1.2760146E-24 + 4.5160000E+08 1.2759299E-24 + 4.5170000E+08 1.2758452E-24 + 4.5180000E+08 1.2757605E-24 + 4.5190000E+08 1.2756758E-24 + 4.5200000E+08 1.2755911E-24 + 4.5210000E+08 1.2755064E-24 + 4.5220000E+08 1.2754217E-24 + 4.5230000E+08 1.2753371E-24 + 4.5240000E+08 1.2752524E-24 + 4.5250000E+08 1.2751678E-24 + 4.5260000E+08 1.2750831E-24 + 4.5270000E+08 1.2749984E-24 + 4.5280000E+08 1.2749137E-24 + 4.5290000E+08 1.2748290E-24 + 4.5300000E+08 1.2747444E-24 + 4.5310000E+08 1.2746597E-24 + 4.5320000E+08 1.2745750E-24 + 4.5330000E+08 1.2744903E-24 + 4.5340000E+08 1.2744056E-24 + 4.5350000E+08 1.2743210E-24 + 4.5360000E+08 1.2742363E-24 + 4.5370000E+08 1.2741516E-24 + 4.5380000E+08 1.2740669E-24 + 4.5390000E+08 1.2739823E-24 + 4.5400000E+08 1.2738976E-24 + 4.5410000E+08 1.2738129E-24 + 4.5420000E+08 1.2737281E-24 + 4.5430000E+08 1.2736435E-24 + 4.5440000E+08 1.2735588E-24 + 4.5450000E+08 1.2734741E-24 + 4.5460000E+08 1.2733894E-24 + 4.5470000E+08 1.2733047E-24 + 4.5480000E+08 1.2732201E-24 + 4.5490000E+08 1.2731354E-24 + 4.5500000E+08 1.2730507E-24 + 4.5510000E+08 1.2729660E-24 + 4.5520000E+08 1.2728813E-24 + 4.5530000E+08 1.2727967E-24 + 4.5540000E+08 1.2727120E-24 + 4.5550000E+08 1.2726273E-24 + 4.5560000E+08 1.2725426E-24 + 4.5570000E+08 1.2724580E-24 + 4.5580000E+08 1.2723733E-24 + 4.5590000E+08 1.2722886E-24 + 4.5600000E+08 1.2722039E-24 + 4.5610000E+08 1.2721193E-24 + 4.5620000E+08 1.2720346E-24 + 4.5630000E+08 1.2719499E-24 + 4.5640000E+08 1.2718652E-24 + 4.5650000E+08 1.2717804E-24 + 4.5660000E+08 1.2716958E-24 + 4.5670000E+08 1.2716111E-24 + 4.5680000E+08 1.2715264E-24 + 4.5690000E+08 1.2714417E-24 + 4.5700000E+08 1.2713570E-24 + 4.5710000E+08 1.2712724E-24 + 4.5720000E+08 1.2712069E-24 + 4.5730000E+08 1.2711444E-24 + 4.5740000E+08 1.2710819E-24 + 4.5750000E+08 1.2710195E-24 + 4.5760000E+08 1.2709570E-24 + 4.5770000E+08 1.2708946E-24 + 4.5780000E+08 1.2708320E-24 + 4.5790000E+08 1.2707696E-24 + 4.5800000E+08 1.2707071E-24 + 4.5810000E+08 1.2706447E-24 + 4.5820000E+08 1.2705822E-24 + 4.5830000E+08 1.2705197E-24 + 4.5840000E+08 1.2704572E-24 + 4.5850000E+08 1.2703947E-24 + 4.5860000E+08 1.2703323E-24 + 4.5870000E+08 1.2702698E-24 + 4.5880000E+08 1.2702074E-24 + 4.5890000E+08 1.2701448E-24 + 4.5900000E+08 1.2700824E-24 + 4.5910000E+08 1.2700199E-24 + 4.5920000E+08 1.2699575E-24 + 4.5930000E+08 1.2698950E-24 + 4.5940000E+08 1.2698326E-24 + 4.5950000E+08 1.2697700E-24 + 4.5960000E+08 1.2697076E-24 + 4.5970000E+08 1.2696451E-24 + 4.5980000E+08 1.2695826E-24 + 4.5990000E+08 1.2695202E-24 + 4.6000000E+08 1.2694576E-24 + 4.6010000E+08 1.2693952E-24 + 4.6020000E+08 1.2693327E-24 + 4.6030000E+08 1.2692703E-24 + 4.6040000E+08 1.2692078E-24 + 4.6050000E+08 1.2691454E-24 + 4.6060000E+08 1.2690828E-24 + 4.6070000E+08 1.2690204E-24 + 4.6080000E+08 1.2689579E-24 + 4.6090000E+08 1.2688954E-24 + 4.6100000E+08 1.2688330E-24 + 4.6110000E+08 1.2687705E-24 + 4.6120000E+08 1.2687080E-24 + 4.6130000E+08 1.2686455E-24 + 4.6140000E+08 1.2685831E-24 + 4.6150000E+08 1.2685206E-24 + 4.6160000E+08 1.2684582E-24 + 4.6170000E+08 1.2683956E-24 + 4.6180000E+08 1.2683331E-24 + 4.6190000E+08 1.2682707E-24 + 4.6200000E+08 1.2682082E-24 + 4.6210000E+08 1.2681458E-24 + 4.6220000E+08 1.2680833E-24 + 4.6230000E+08 1.2680208E-24 + 4.6240000E+08 1.2679583E-24 + 4.6250000E+08 1.2678959E-24 + 4.6260000E+08 1.2678334E-24 + 4.6270000E+08 1.2677710E-24 + 4.6280000E+08 1.2677084E-24 + 4.6290000E+08 1.2676459E-24 + 4.6300000E+08 1.2675835E-24 + 4.6310000E+08 1.2675210E-24 + 4.6320000E+08 1.2674586E-24 + 4.6330000E+08 1.2673961E-24 + 4.6340000E+08 1.2673336E-24 + 4.6350000E+08 1.2672711E-24 + 4.6360000E+08 1.2672087E-24 + 4.6370000E+08 1.2671462E-24 + 4.6380000E+08 1.2670837E-24 + 4.6390000E+08 1.2670213E-24 + 4.6400000E+08 1.2669587E-24 + 4.6410000E+08 1.2668963E-24 + 4.6420000E+08 1.2668338E-24 + 4.6430000E+08 1.2667714E-24 + 4.6440000E+08 1.2667089E-24 + 4.6450000E+08 1.2666464E-24 + 4.6460000E+08 1.2665839E-24 + 4.6470000E+08 1.2665214E-24 + 4.6480000E+08 1.2664590E-24 + 4.6490000E+08 1.2663965E-24 + 4.6500000E+08 1.2663341E-24 + 4.6510000E+08 1.2662715E-24 + 4.6520000E+08 1.2662091E-24 + 4.6530000E+08 1.2661466E-24 + 4.6540000E+08 1.2660842E-24 + 4.6550000E+08 1.2660217E-24 + 4.6560000E+08 1.2659592E-24 + 4.6570000E+08 1.2658967E-24 + 4.6580000E+08 1.2658342E-24 + 4.6590000E+08 1.2657718E-24 + 4.6600000E+08 1.2657093E-24 + 4.6610000E+08 1.2656469E-24 + 4.6620000E+08 1.2655843E-24 + 4.6630000E+08 1.2655219E-24 + 4.6640000E+08 1.2654594E-24 + 4.6650000E+08 1.2653970E-24 + 4.6660000E+08 1.2653345E-24 + 4.6670000E+08 1.2652721E-24 + 4.6680000E+08 1.2652095E-24 + 4.6690000E+08 1.2651471E-24 + 4.6700000E+08 1.2650846E-24 + 4.6710000E+08 1.2650222E-24 + 4.6720000E+08 1.2649597E-24 + 4.6730000E+08 1.2648971E-24 + 4.6740000E+08 1.2648347E-24 + 4.6750000E+08 1.2647722E-24 + 4.6760000E+08 1.2647098E-24 + 4.6770000E+08 1.2646473E-24 + 4.6780000E+08 1.2645849E-24 + 4.6790000E+08 1.2645223E-24 + 4.6800000E+08 1.2644599E-24 + 4.6810000E+08 1.2643974E-24 + 4.6820000E+08 1.2643349E-24 + 4.6830000E+08 1.2642725E-24 + 4.6840000E+08 1.2642099E-24 + 4.6850000E+08 1.2641475E-24 + 4.6860000E+08 1.2640850E-24 + 4.6870000E+08 1.2640226E-24 + 4.6880000E+08 1.2639601E-24 + 4.6890000E+08 1.2638977E-24 + 4.6900000E+08 1.2638351E-24 + 4.6910000E+08 1.2637727E-24 + 4.6920000E+08 1.2637102E-24 + 4.6930000E+08 1.2636477E-24 + 4.6940000E+08 1.2635853E-24 + 4.6950000E+08 1.2635228E-24 + 4.6960000E+08 1.2634603E-24 + 4.6970000E+08 1.2633978E-24 + 4.6980000E+08 1.2633354E-24 + 4.6990000E+08 1.2632729E-24 + 4.7000000E+08 1.2632105E-24 + 4.7010000E+08 1.2631479E-24 + 4.7020000E+08 1.2630854E-24 + 4.7030000E+08 1.2630230E-24 + 4.7040000E+08 1.2629605E-24 + 4.7050000E+08 1.2628981E-24 + 4.7060000E+08 1.2628356E-24 + 4.7070000E+08 1.2627731E-24 + 4.7080000E+08 1.2627106E-24 + 4.7090000E+08 1.2626482E-24 + 4.7100000E+08 1.2625857E-24 + 4.7110000E+08 1.2625232E-24 + 4.7120000E+08 1.2624607E-24 + 4.7130000E+08 1.2623982E-24 + 4.7140000E+08 1.2623358E-24 + 4.7150000E+08 1.2622733E-24 + 4.7160000E+08 1.2622109E-24 + 4.7170000E+08 1.2621484E-24 + 4.7180000E+08 1.2620859E-24 + 4.7190000E+08 1.2620234E-24 + 4.7200000E+08 1.2619610E-24 + 4.7210000E+08 1.2618985E-24 + 4.7220000E+08 1.2618360E-24 + 4.7230000E+08 1.2617736E-24 + 4.7240000E+08 1.2617110E-24 + 4.7250000E+08 1.2616486E-24 + 4.7260000E+08 1.2615861E-24 + 4.7270000E+08 1.2615237E-24 + 4.7280000E+08 1.2614612E-24 + 4.7290000E+08 1.2613987E-24 + 4.7300000E+08 1.2613362E-24 + 4.7310000E+08 1.2612737E-24 + 4.7320000E+08 1.2612113E-24 + 4.7330000E+08 1.2611489E-24 + 4.7340000E+08 1.2610864E-24 + 4.7350000E+08 1.2610239E-24 + 4.7360000E+08 1.2609614E-24 + 4.7370000E+08 1.2608989E-24 + 4.7380000E+08 1.2608365E-24 + 4.7390000E+08 1.2607740E-24 + 4.7400000E+08 1.2607115E-24 + 4.7410000E+08 1.2606490E-24 + 4.7420000E+08 1.2605866E-24 + 4.7430000E+08 1.2605241E-24 + 4.7440000E+08 1.2604617E-24 + 4.7450000E+08 1.2603992E-24 + 4.7460000E+08 1.2603366E-24 + 4.7470000E+08 1.2602742E-24 + 4.7480000E+08 1.2602117E-24 + 4.7490000E+08 1.2601493E-24 + 4.7500000E+08 1.2600868E-24 + 4.7510000E+08 1.2600244E-24 + 4.7520000E+08 1.2599618E-24 + 4.7530000E+08 1.2598994E-24 + 4.7540000E+08 1.2598369E-24 + 4.7550000E+08 1.2597745E-24 + 4.7560000E+08 1.2597120E-24 + 4.7570000E+08 1.2596494E-24 + 4.7580000E+08 1.2595870E-24 + 4.7590000E+08 1.2595245E-24 + 4.7600000E+08 1.2594621E-24 + 4.7610000E+08 1.2593996E-24 + 4.7620000E+08 1.2593372E-24 + 4.7630000E+08 1.2592746E-24 + 4.7640000E+08 1.2592122E-24 + 4.7650000E+08 1.2591497E-24 + 4.7660000E+08 1.2590872E-24 + 4.7670000E+08 1.2590248E-24 + 4.7680000E+08 1.2589622E-24 + 4.7690000E+08 1.2588998E-24 + 4.7700000E+08 1.2588373E-24 + 4.7710000E+08 1.2587749E-24 + 4.7720000E+08 1.2587124E-24 + 4.7730000E+08 1.2586500E-24 + 4.7740000E+08 1.2585874E-24 + 4.7750000E+08 1.2585249E-24 + 4.7760000E+08 1.2584625E-24 + 4.7770000E+08 1.2584000E-24 + 4.7780000E+08 1.2583376E-24 + 4.7790000E+08 1.2582751E-24 + 4.7800000E+08 1.2582126E-24 + 4.7810000E+08 1.2581501E-24 + 4.7820000E+08 1.2580877E-24 + 4.7830000E+08 1.2580252E-24 + 4.7840000E+08 1.2579628E-24 + 4.7850000E+08 1.2579002E-24 + 4.7860000E+08 1.2578377E-24 + 4.7870000E+08 1.2577753E-24 + 4.7880000E+08 1.2577128E-24 + 4.7890000E+08 1.2576504E-24 + 4.7900000E+08 1.2575879E-24 + 4.7910000E+08 1.2575254E-24 + 4.7920000E+08 1.2574629E-24 + 4.7930000E+08 1.2574005E-24 + 4.7940000E+08 1.2573380E-24 + 4.7950000E+08 1.2572755E-24 + 4.7960000E+08 1.2572130E-24 + 4.7970000E+08 1.2571505E-24 + 4.7980000E+08 1.2570881E-24 + 4.7990000E+08 1.2570256E-24 + 4.8000000E+08 1.2569632E-24 + 4.8010000E+08 1.2569007E-24 + 4.8020000E+08 1.2568382E-24 + 4.8030000E+08 1.2567757E-24 + 4.8040000E+08 1.2567133E-24 + 4.8050000E+08 1.2566508E-24 + 4.8060000E+08 1.2565884E-24 + 4.8070000E+08 1.2565259E-24 + 4.8080000E+08 1.2564634E-24 + 4.8090000E+08 1.2564009E-24 + 4.8100000E+08 1.2563384E-24 + 4.8110000E+08 1.2562760E-24 + 4.8120000E+08 1.2562135E-24 + 4.8130000E+08 1.2561510E-24 + 4.8140000E+08 1.2560885E-24 + 4.8150000E+08 1.2560261E-24 + 4.8160000E+08 1.2559636E-24 + 4.8170000E+08 1.2559012E-24 + 4.8180000E+08 1.2558387E-24 + 4.8190000E+08 1.2557762E-24 + 4.8200000E+08 1.2557137E-24 + 4.8210000E+08 1.2556512E-24 + 4.8220000E+08 1.2555888E-24 + 4.8230000E+08 1.2555263E-24 + 4.8240000E+08 1.2554638E-24 + 4.8250000E+08 1.2554013E-24 + 4.8260000E+08 1.2553389E-24 + 4.8270000E+08 1.2552764E-24 + 4.8280000E+08 1.2552140E-24 + 4.8290000E+08 1.2551515E-24 + 4.8300000E+08 1.2550889E-24 + 4.8310000E+08 1.2550265E-24 + 4.8320000E+08 1.2549640E-24 + 4.8330000E+08 1.2549016E-24 + 4.8340000E+08 1.2548391E-24 + 4.8350000E+08 1.2547767E-24 + 4.8360000E+08 1.2547141E-24 + 4.8370000E+08 1.2546517E-24 + 4.8380000E+08 1.2545892E-24 + 4.8390000E+08 1.2545267E-24 + 4.8400000E+08 1.2544643E-24 + 4.8410000E+08 1.2544017E-24 + 4.8420000E+08 1.2543393E-24 + 4.8430000E+08 1.2542768E-24 + 4.8440000E+08 1.2542144E-24 + 4.8450000E+08 1.2541519E-24 + 4.8460000E+08 1.2540895E-24 + 4.8470000E+08 1.2540269E-24 + 4.8480000E+08 1.2539645E-24 + 4.8490000E+08 1.2539020E-24 + 4.8500000E+08 1.2538395E-24 + 4.8510000E+08 1.2537771E-24 + 4.8520000E+08 1.2537145E-24 + 4.8530000E+08 1.2536521E-24 + 4.8540000E+08 1.2535896E-24 + 4.8550000E+08 1.2535272E-24 + 4.8560000E+08 1.2534647E-24 + 4.8570000E+08 1.2534023E-24 + 4.8580000E+08 1.2533397E-24 + 4.8590000E+08 1.2532772E-24 + 4.8600000E+08 1.2532148E-24 + 4.8610000E+08 1.2531523E-24 + 4.8620000E+08 1.2530899E-24 + 4.8630000E+08 1.2530274E-24 + 4.8640000E+08 1.2529649E-24 + 4.8650000E+08 1.2529024E-24 + 4.8660000E+08 1.2528400E-24 + 4.8670000E+08 1.2527775E-24 + 4.8680000E+08 1.2527150E-24 + 4.8690000E+08 1.2526525E-24 + 4.8700000E+08 1.2525900E-24 + 4.8710000E+08 1.2525276E-24 + 4.8720000E+08 1.2524651E-24 + 4.8730000E+08 1.2524027E-24 + 4.8740000E+08 1.2523402E-24 + 4.8750000E+08 1.2522777E-24 + 4.8760000E+08 1.2522152E-24 + 4.8770000E+08 1.2521528E-24 + 4.8780000E+08 1.2520903E-24 + 4.8790000E+08 1.2520279E-24 + 4.8800000E+08 1.2519653E-24 + 4.8810000E+08 1.2519029E-24 + 4.8820000E+08 1.2518404E-24 + 4.8830000E+08 1.2517780E-24 + 4.8840000E+08 1.2517155E-24 + 4.8850000E+08 1.2516530E-24 + 4.8860000E+08 1.2515905E-24 + 4.8870000E+08 1.2515280E-24 + 4.8880000E+08 1.2514656E-24 + 4.8890000E+08 1.2514031E-24 + 4.8900000E+08 1.2513407E-24 + 4.8910000E+08 1.2512782E-24 + 4.8920000E+08 1.2512157E-24 + 4.8930000E+08 1.2511532E-24 + 4.8940000E+08 1.2510907E-24 + 4.8950000E+08 1.2510283E-24 + 4.8960000E+08 1.2509658E-24 + 4.8970000E+08 1.2509033E-24 + 4.8980000E+08 1.2508408E-24 + 4.8990000E+08 1.2507784E-24 + 4.9000000E+08 1.2507159E-24 + 4.9010000E+08 1.2506535E-24 + 4.9020000E+08 1.2505910E-24 + 4.9030000E+08 1.2505284E-24 + 4.9040000E+08 1.2504660E-24 + 4.9050000E+08 1.2504035E-24 + 4.9060000E+08 1.2503411E-24 + 4.9070000E+08 1.2502786E-24 + 4.9080000E+08 1.2502161E-24 + 4.9090000E+08 1.2501536E-24 + 4.9100000E+08 1.2500912E-24 + 4.9110000E+08 1.2500287E-24 + 4.9120000E+08 1.2499663E-24 + 4.9130000E+08 1.2499038E-24 + 4.9140000E+08 1.2498412E-24 + 4.9150000E+08 1.2497788E-24 + 4.9160000E+08 1.2497163E-24 + 4.9170000E+08 1.2496539E-24 + 4.9180000E+08 1.2495914E-24 + 4.9190000E+08 1.2495290E-24 + 4.9200000E+08 1.2494664E-24 + 4.9210000E+08 1.2494040E-24 + 4.9220000E+08 1.2493415E-24 + 4.9230000E+08 1.2492790E-24 + 4.9240000E+08 1.2492166E-24 + 4.9250000E+08 1.2491540E-24 + 4.9260000E+08 1.2490916E-24 + 4.9270000E+08 1.2490291E-24 + 4.9280000E+08 1.2489667E-24 + 4.9290000E+08 1.2489042E-24 + 4.9300000E+08 1.2488418E-24 + 4.9310000E+08 1.2487792E-24 + 4.9320000E+08 1.2487167E-24 + 4.9330000E+08 1.2486543E-24 + 4.9340000E+08 1.2485918E-24 + 4.9350000E+08 1.2485294E-24 + 4.9360000E+08 1.2484668E-24 + 4.9370000E+08 1.2484044E-24 + 4.9380000E+08 1.2483419E-24 + 4.9390000E+08 1.2482795E-24 + 4.9400000E+08 1.2482170E-24 + 4.9410000E+08 1.2481546E-24 + 4.9420000E+08 1.2480920E-24 + 4.9430000E+08 1.2480295E-24 + 4.9440000E+08 1.2479671E-24 + 4.9450000E+08 1.2479047E-24 + 4.9460000E+08 1.2478422E-24 + 4.9470000E+08 1.2477798E-24 + 4.9480000E+08 1.2477172E-24 + 4.9490000E+08 1.2476547E-24 + 4.9500000E+08 1.2475923E-24 + 4.9510000E+08 1.2475298E-24 + 4.9520000E+08 1.2474674E-24 + 4.9530000E+08 1.2474048E-24 + 4.9540000E+08 1.2473424E-24 + 4.9550000E+08 1.2472799E-24 + 4.9560000E+08 1.2472175E-24 + 4.9570000E+08 1.2471550E-24 + 4.9580000E+08 1.2470925E-24 + 4.9590000E+08 1.2470300E-24 + 4.9600000E+08 1.2469675E-24 + 4.9610000E+08 1.2469051E-24 + 4.9620000E+08 1.2468426E-24 + 4.9630000E+08 1.2467802E-24 + 4.9640000E+08 1.2467176E-24 + 4.9650000E+08 1.2466552E-24 + 4.9660000E+08 1.2465927E-24 + 4.9670000E+08 1.2465302E-24 + 4.9680000E+08 1.2464678E-24 + 4.9690000E+08 1.2464053E-24 + 4.9700000E+08 1.2463428E-24 + 4.9710000E+08 1.2462803E-24 + 4.9720000E+08 1.2462179E-24 + 4.9730000E+08 1.2461554E-24 + 4.9740000E+08 1.2460930E-24 + 4.9750000E+08 1.2460305E-24 + 4.9760000E+08 1.2459680E-24 + 4.9770000E+08 1.2459055E-24 + 4.9780000E+08 1.2458430E-24 + 4.9790000E+08 1.2457806E-24 + 4.9800000E+08 1.2457181E-24 + 4.9810000E+08 1.2456556E-24 + 4.9820000E+08 1.2455931E-24 + 4.9830000E+08 1.2455307E-24 + 4.9840000E+08 1.2454682E-24 + 4.9850000E+08 1.2454058E-24 + 4.9860000E+08 1.2453433E-24 + 4.9870000E+08 1.2452807E-24 + 4.9880000E+08 1.2452183E-24 + 4.9890000E+08 1.2451558E-24 + 4.9900000E+08 1.2450934E-24 + 4.9910000E+08 1.2450309E-24 + 4.9920000E+08 1.2449684E-24 + 4.9930000E+08 1.2449059E-24 + 4.9940000E+08 1.2448435E-24 + 4.9950000E+08 1.2447810E-24 + 4.9960000E+08 1.2447186E-24 + 4.9970000E+08 1.2446561E-24 + 4.9980000E+08 1.2445935E-24 + 4.9990000E+08 1.2445311E-24 + 5.0000000E+08 1.2444686E-24 + 5.0010000E+08 1.2444062E-24 + 5.0020000E+08 1.2443437E-24 + 5.0030000E+08 1.2442813E-24 + 5.0040000E+08 1.2442187E-24 + 5.0050000E+08 1.2441563E-24 + 5.0060000E+08 1.2440938E-24 + 5.0070000E+08 1.2440313E-24 + 5.0080000E+08 1.2439689E-24 + 5.0090000E+08 1.2439063E-24 + 5.0100000E+08 1.2438439E-24 + 5.0110000E+08 1.2437814E-24 + 5.0120000E+08 1.2437190E-24 + 5.0130000E+08 1.2436565E-24 + 5.0140000E+08 1.2435941E-24 + 5.0150000E+08 1.2435315E-24 + 5.0160000E+08 1.2434691E-24 + 5.0170000E+08 1.2434066E-24 + 5.0180000E+08 1.2433442E-24 + 5.0190000E+08 1.2432817E-24 + 5.0200000E+08 1.2432192E-24 + 5.0210000E+08 1.2431567E-24 + 5.0220000E+08 1.2430942E-24 + 5.0230000E+08 1.2430318E-24 + 5.0240000E+08 1.2429693E-24 + 5.0250000E+08 1.2429069E-24 + 5.0260000E+08 1.2428443E-24 + 5.0270000E+08 1.2427819E-24 + 5.0280000E+08 1.2427194E-24 + 5.0290000E+08 1.2426570E-24 + 5.0300000E+08 1.2425945E-24 + 5.0310000E+08 1.2425321E-24 + 5.0320000E+08 1.2424695E-24 + 5.0330000E+08 1.2424070E-24 + 5.0340000E+08 1.2423446E-24 + 5.0350000E+08 1.2422821E-24 + 5.0360000E+08 1.2422197E-24 + 5.0370000E+08 1.2421571E-24 + 5.0380000E+08 1.2420947E-24 + 5.0390000E+08 1.2420322E-24 + 5.0400000E+08 1.2419698E-24 + 5.0410000E+08 1.2419073E-24 + 5.0420000E+08 1.2418448E-24 + 5.0430000E+08 1.2417823E-24 + 5.0440000E+08 1.2417198E-24 + 5.0450000E+08 1.2416574E-24 + 5.0460000E+08 1.2415949E-24 + 5.0470000E+08 1.2415325E-24 + 5.0480000E+08 1.2414699E-24 + 5.0490000E+08 1.2414075E-24 + 5.0500000E+08 1.2413450E-24 + 5.0510000E+08 1.2412825E-24 + 5.0520000E+08 1.2412201E-24 + 5.0530000E+08 1.2411576E-24 + 5.0540000E+08 1.2410951E-24 + 5.0550000E+08 1.2410326E-24 + 5.0560000E+08 1.2409702E-24 + 5.0570000E+08 1.2409077E-24 + 5.0580000E+08 1.2408453E-24 + 5.0590000E+08 1.2407828E-24 + 5.0600000E+08 1.2407202E-24 + 5.0610000E+08 1.2406578E-24 + 5.0620000E+08 1.2405953E-24 + 5.0630000E+08 1.2405329E-24 + 5.0640000E+08 1.2404704E-24 + 5.0650000E+08 1.2404079E-24 + 5.0660000E+08 1.2403454E-24 + 5.0670000E+08 1.2402830E-24 + 5.0680000E+08 1.2402205E-24 + 5.0690000E+08 1.2401581E-24 + 5.0700000E+08 1.2400956E-24 + 5.0710000E+08 1.2400330E-24 + 5.0720000E+08 1.2399706E-24 + 5.0730000E+08 1.2399081E-24 + 5.0740000E+08 1.2398457E-24 + 5.0750000E+08 1.2397832E-24 + 5.0760000E+08 1.2397207E-24 + 5.0770000E+08 1.2396582E-24 + 5.0780000E+08 1.2395958E-24 + 5.0790000E+08 1.2395333E-24 + 5.0800000E+08 1.2394708E-24 + 5.0810000E+08 1.2394084E-24 + 5.0820000E+08 1.2393458E-24 + 5.0830000E+08 1.2392834E-24 + 5.0840000E+08 1.2392210E-24 + 5.0850000E+08 1.2391585E-24 + 5.0860000E+08 1.2390960E-24 + 5.0870000E+08 1.2390336E-24 + 5.0880000E+08 1.2389710E-24 + 5.0890000E+08 1.2389086E-24 + 5.0900000E+08 1.2388461E-24 + 5.0910000E+08 1.2387837E-24 + 5.0920000E+08 1.2387212E-24 + 5.0930000E+08 1.2386587E-24 + 5.0940000E+08 1.2385962E-24 + 5.0950000E+08 1.2385337E-24 + 5.0960000E+08 1.2384713E-24 + 5.0970000E+08 1.2384088E-24 + 5.0980000E+08 1.2383464E-24 + 5.0990000E+08 1.2382838E-24 + 5.1000000E+08 1.2382214E-24 + 5.1010000E+08 1.2381589E-24 + 5.1020000E+08 1.2380965E-24 + 5.1030000E+08 1.2380340E-24 + 5.1040000E+08 1.2379715E-24 + 5.1050000E+08 1.2379090E-24 + 5.1060000E+08 1.2378465E-24 + 5.1070000E+08 1.2377841E-24 + 5.1080000E+08 1.2377216E-24 + 5.1090000E+08 1.2376592E-24 + 5.1100000E+08 1.2375966E-24 + 5.1110000E+08 1.2375342E-24 + 5.1120000E+08 1.2374717E-24 + 5.1130000E+08 1.2374093E-24 + 5.1140000E+08 1.2373468E-24 + 5.1150000E+08 1.2372843E-24 + 5.1160000E+08 1.2372218E-24 + 5.1170000E+08 1.2371593E-24 + 5.1180000E+08 1.2370969E-24 + 5.1190000E+08 1.2370344E-24 + 5.1200000E+08 1.2369720E-24 + 5.1210000E+08 1.2369094E-24 + 5.1220000E+08 1.2368470E-24 + 5.1230000E+08 1.2367845E-24 + 5.1240000E+08 1.2367221E-24 + 5.1250000E+08 1.2366596E-24 + 5.1260000E+08 1.2365971E-24 + 5.1270000E+08 1.2365346E-24 + 5.1280000E+08 1.2364721E-24 + 5.1290000E+08 1.2364097E-24 + 5.1300000E+08 1.2363472E-24 + 5.1310000E+08 1.2362848E-24 + 5.1320000E+08 1.2362222E-24 + 5.1330000E+08 1.2361598E-24 + 5.1340000E+08 1.2360973E-24 + 5.1350000E+08 1.2360348E-24 + 5.1360000E+08 1.2359724E-24 + 5.1370000E+08 1.2359099E-24 + 5.1380000E+08 1.2358474E-24 + 5.1390000E+08 1.2357849E-24 + 5.1400000E+08 1.2357225E-24 + 5.1410000E+08 1.2356600E-24 + 5.1420000E+08 1.2355976E-24 + 5.1430000E+08 1.2355351E-24 + 5.1440000E+08 1.2354725E-24 + 5.1450000E+08 1.2354101E-24 + 5.1460000E+08 1.2353476E-24 + 5.1470000E+08 1.2352852E-24 + 5.1480000E+08 1.2352227E-24 + 5.1490000E+08 1.2351602E-24 + 5.1500000E+08 1.2350977E-24 + 5.1510000E+08 1.2350353E-24 + 5.1520000E+08 1.2349728E-24 + 5.1530000E+08 1.2349104E-24 + 5.1540000E+08 1.2348479E-24 + 5.1550000E+08 1.2347854E-24 + 5.1560000E+08 1.2347229E-24 + 5.1570000E+08 1.2346605E-24 + 5.1580000E+08 1.2345980E-24 + 5.1590000E+08 1.2345356E-24 + 5.1600000E+08 1.2344730E-24 + 5.1610000E+08 1.2344105E-24 + 5.1620000E+08 1.2343481E-24 + 5.1630000E+08 1.2342856E-24 + 5.1640000E+08 1.2342232E-24 + 5.1650000E+08 1.2341607E-24 + 5.1660000E+08 1.2340982E-24 + 5.1670000E+08 1.2340357E-24 + 5.1680000E+08 1.2339733E-24 + 5.1690000E+08 1.2339108E-24 + 5.1700000E+08 1.2338483E-24 + 5.1710000E+08 1.2337859E-24 + 5.1720000E+08 1.2337233E-24 + 5.1730000E+08 1.2336609E-24 + 5.1740000E+08 1.2335984E-24 + 5.1750000E+08 1.2335360E-24 + 5.1760000E+08 1.2334735E-24 + 5.1770000E+08 1.2334110E-24 + 5.1780000E+08 1.2333485E-24 + 5.1790000E+08 1.2332860E-24 + 5.1800000E+08 1.2332236E-24 + 5.1810000E+08 1.2331611E-24 + 5.1820000E+08 1.2330987E-24 + 5.1830000E+08 1.2330361E-24 + 5.1840000E+08 1.2329737E-24 + 5.1850000E+08 1.2329112E-24 + 5.1860000E+08 1.2328488E-24 + 5.1870000E+08 1.2327863E-24 + 5.1880000E+08 1.2327237E-24 + 5.1890000E+08 1.2326613E-24 + 5.1900000E+08 1.2325988E-24 + 5.1910000E+08 1.2325364E-24 + 5.1920000E+08 1.2324739E-24 + 5.1930000E+08 1.2324115E-24 + 5.1940000E+08 1.2323489E-24 + 5.1950000E+08 1.2322865E-24 + 5.1960000E+08 1.2322240E-24 + 5.1970000E+08 1.2321616E-24 + 5.1980000E+08 1.2320991E-24 + 5.1990000E+08 1.2320366E-24 + 5.2000000E+08 1.2319741E-24 + 5.2010000E+08 1.2319116E-24 + 5.2020000E+08 1.2318492E-24 + 5.2030000E+08 1.2317867E-24 + 5.2040000E+08 1.2317243E-24 + 5.2050000E+08 1.2316617E-24 + 5.2060000E+08 1.2315993E-24 + 5.2070000E+08 1.2315368E-24 + 5.2080000E+08 1.2314743E-24 + 5.2090000E+08 1.2314119E-24 + 5.2100000E+08 1.2313494E-24 + 5.2110000E+08 1.2312869E-24 + 5.2120000E+08 1.2312244E-24 + 5.2130000E+08 1.2311620E-24 + 5.2140000E+08 1.2310995E-24 + 5.2150000E+08 1.2310371E-24 + 5.2160000E+08 1.2309745E-24 + 5.2170000E+08 1.2309121E-24 + 5.2180000E+08 1.2308496E-24 + 5.2190000E+08 1.2307871E-24 + 5.2200000E+08 1.2307247E-24 + 5.2210000E+08 1.2306622E-24 + 5.2220000E+08 1.2305997E-24 + 5.2230000E+08 1.2305372E-24 + 5.2240000E+08 1.2304748E-24 + 5.2250000E+08 1.2304123E-24 + 5.2260000E+08 1.2303499E-24 + 5.2270000E+08 1.2302874E-24 + 5.2280000E+08 1.2302249E-24 + 5.2290000E+08 1.2301624E-24 + 5.2300000E+08 1.2301000E-24 + 5.2310000E+08 1.2300375E-24 + 5.2320000E+08 1.2299750E-24 + 5.2330000E+08 1.2299125E-24 + 5.2340000E+08 1.2298500E-24 + 5.2350000E+08 1.2297876E-24 + 5.2360000E+08 1.2297251E-24 + 5.2370000E+08 1.2296627E-24 + 5.2380000E+08 1.2296002E-24 + 5.2390000E+08 1.2295377E-24 + 5.2400000E+08 1.2294752E-24 + 5.2410000E+08 1.2294128E-24 + 5.2420000E+08 1.2293503E-24 + 5.2430000E+08 1.2292878E-24 + 5.2440000E+08 1.2292253E-24 + 5.2450000E+08 1.2291628E-24 + 5.2460000E+08 1.2291004E-24 + 5.2470000E+08 1.2290379E-24 + 5.2480000E+08 1.2289755E-24 + 5.2490000E+08 1.2289130E-24 + 5.2500000E+08 1.2288505E-24 + 5.2510000E+08 1.2287880E-24 + 5.2520000E+08 1.2287255E-24 + 5.2530000E+08 1.2286631E-24 + 5.2540000E+08 1.2286006E-24 + 5.2550000E+08 1.2285382E-24 + 5.2560000E+08 1.2284756E-24 + 5.2570000E+08 1.2284132E-24 + 5.2580000E+08 1.2283507E-24 + 5.2590000E+08 1.2282883E-24 + 5.2600000E+08 1.2282258E-24 + 5.2610000E+08 1.2281633E-24 + 5.2620000E+08 1.2281008E-24 + 5.2630000E+08 1.2280383E-24 + 5.2640000E+08 1.2279759E-24 + 5.2650000E+08 1.2279134E-24 + 5.2660000E+08 1.2278510E-24 + 5.2670000E+08 1.2277884E-24 + 5.2680000E+08 1.2277260E-24 + 5.2690000E+08 1.2276635E-24 + 5.2700000E+08 1.2276011E-24 + 5.2710000E+08 1.2275386E-24 + 5.2720000E+08 1.2274760E-24 + 5.2730000E+08 1.2274136E-24 + 5.2740000E+08 1.2273511E-24 + 5.2750000E+08 1.2272887E-24 + 5.2760000E+08 1.2272262E-24 + 5.2770000E+08 1.2271638E-24 + 5.2780000E+08 1.2271012E-24 + 5.2790000E+08 1.2270388E-24 + 5.2800000E+08 1.2269763E-24 + 5.2810000E+08 1.2269139E-24 + 5.2820000E+08 1.2268514E-24 + 5.2830000E+08 1.2267889E-24 + 5.2840000E+08 1.2267264E-24 + 5.2850000E+08 1.2266639E-24 + 5.2860000E+08 1.2266015E-24 + 5.2870000E+08 1.2265390E-24 + 5.2880000E+08 1.2264766E-24 + 5.2890000E+08 1.2264140E-24 + 5.2900000E+08 1.2263516E-24 + 5.2910000E+08 1.2262891E-24 + 5.2920000E+08 1.2262266E-24 + 5.2930000E+08 1.2261642E-24 + 5.2940000E+08 1.2261018E-24 + 5.2950000E+08 1.2260392E-24 + 5.2960000E+08 1.2259768E-24 + 5.2970000E+08 1.2259143E-24 + 5.2980000E+08 1.2258518E-24 + 5.2990000E+08 1.2257894E-24 + 5.3000000E+08 1.2257268E-24 + 5.3010000E+08 1.2256644E-24 + 5.3020000E+08 1.2256019E-24 + 5.3030000E+08 1.2255395E-24 + 5.3040000E+08 1.2254770E-24 + 5.3050000E+08 1.2254146E-24 + 5.3060000E+08 1.2253520E-24 + 5.3070000E+08 1.2252895E-24 + 5.3080000E+08 1.2252271E-24 + 5.3090000E+08 1.2251646E-24 + 5.3100000E+08 1.2251022E-24 + 5.3110000E+08 1.2250397E-24 + 5.3120000E+08 1.2249772E-24 + 5.3130000E+08 1.2249147E-24 + 5.3140000E+08 1.2248523E-24 + 5.3150000E+08 1.2247898E-24 + 5.3160000E+08 1.2247273E-24 + 5.3170000E+08 1.2246648E-24 + 5.3180000E+08 1.2246023E-24 + 5.3190000E+08 1.2245399E-24 + 5.3200000E+08 1.2244774E-24 + 5.3210000E+08 1.2244150E-24 + 5.3220000E+08 1.2243525E-24 + 5.3230000E+08 1.2242900E-24 + 5.3240000E+08 1.2242275E-24 + 5.3250000E+08 1.2241651E-24 + 5.3260000E+08 1.2241026E-24 + 5.3270000E+08 1.2240401E-24 + 5.3280000E+08 1.2239776E-24 + 5.3290000E+08 1.2239151E-24 + 5.3300000E+08 1.2238527E-24 + 5.3310000E+08 1.2237902E-24 + 5.3320000E+08 1.2237278E-24 + 5.3330000E+08 1.2236653E-24 + 5.3340000E+08 1.2236028E-24 + 5.3350000E+08 1.2235403E-24 + 5.3360000E+08 1.2234779E-24 + 5.3370000E+08 1.2234154E-24 + 5.3380000E+08 1.2233529E-24 + 5.3390000E+08 1.2232905E-24 + 5.3400000E+08 1.2232279E-24 + 5.3410000E+08 1.2231655E-24 + 5.3420000E+08 1.2231030E-24 + 5.3430000E+08 1.2230406E-24 + 5.3440000E+08 1.2229781E-24 + 5.3450000E+08 1.2229156E-24 + 5.3460000E+08 1.2228531E-24 + 5.3470000E+08 1.2227906E-24 + 5.3480000E+08 1.2227282E-24 + 5.3490000E+08 1.2226657E-24 + 5.3500000E+08 1.2226033E-24 + 5.3510000E+08 1.2225407E-24 + 5.3520000E+08 1.2224783E-24 + 5.3530000E+08 1.2224158E-24 + 5.3540000E+08 1.2223534E-24 + 5.3550000E+08 1.2222909E-24 + 5.3560000E+08 1.2222283E-24 + 5.3570000E+08 1.2221659E-24 + 5.3580000E+08 1.2221034E-24 + 5.3590000E+08 1.2220410E-24 + 5.3600000E+08 1.2219785E-24 + 5.3610000E+08 1.2219161E-24 + 5.3620000E+08 1.2218535E-24 + 5.3630000E+08 1.2217911E-24 + 5.3640000E+08 1.2217286E-24 + 5.3650000E+08 1.2216662E-24 + 5.3660000E+08 1.2216037E-24 + 5.3670000E+08 1.2215413E-24 + 5.3680000E+08 1.2214787E-24 + 5.3689997E+08 1.2214163E-24 + 5.3700000E+08 1.2213538E-24 + 5.3709997E+08 1.2212913E-24 + 5.3720000E+08 1.2212289E-24 + 5.3730003E+08 1.2211663E-24 + 5.3740000E+08 1.2211039E-24 + 5.3749997E+08 1.2210414E-24 + 5.3760000E+08 1.2209790E-24 + 5.3770003E+08 1.2209165E-24 + 5.3780000E+08 1.2208541E-24 + 5.3789997E+08 1.2207915E-24 + 5.3800000E+08 1.2207291E-24 + 5.3810003E+08 1.2206666E-24 + 5.3820000E+08 1.2206041E-24 + 5.3829997E+08 1.2205417E-24 + 5.3840000E+08 1.2204791E-24 + 5.3850003E+08 1.2204166E-24 + 5.3860000E+08 1.2203542E-24 + 5.3869997E+08 1.2202918E-24 + 5.3880000E+08 1.2202293E-24 + 5.3890003E+08 1.2201668E-24 + 5.3900000E+08 1.2201043E-24 + 5.3909997E+08 1.2200419E-24 + 5.3920000E+08 1.2199794E-24 + 5.3930003E+08 1.2199169E-24 + 5.3940000E+08 1.2198545E-24 + 5.3949997E+08 1.2197920E-24 + 5.3960000E+08 1.2197295E-24 + 5.3970003E+08 1.2196670E-24 + 5.3980000E+08 1.2196046E-24 + 5.3989997E+08 1.2195421E-24 + 5.4000000E+08 1.2194796E-24 + 5.4010003E+08 1.2194171E-24 + 5.4020000E+08 1.2193546E-24 + 5.4029997E+08 1.2192922E-24 + 5.4040000E+08 1.2192297E-24 + 5.4050003E+08 1.2191672E-24 + 5.4060000E+08 1.2191048E-24 + 5.4069997E+08 1.2190423E-24 + 5.4080000E+08 1.2189798E-24 + 5.4090003E+08 1.2189173E-24 + 5.4100000E+08 1.2188549E-24 + 5.4109997E+08 1.2187925E-24 + 5.4120000E+08 1.2187299E-24 + 5.4130003E+08 1.2186674E-24 + 5.4140000E+08 1.2186050E-24 + 5.4149997E+08 1.2185425E-24 + 5.4160000E+08 1.2184801E-24 + 5.4170003E+08 1.2184176E-24 + 5.4180000E+08 1.2183551E-24 + 5.4189997E+08 1.2182926E-24 + 5.4200000E+08 1.2182301E-24 + 5.4210003E+08 1.2181677E-24 + 5.4220000E+08 1.2181052E-24 + 5.4229997E+08 1.2180428E-24 + 5.4240000E+08 1.2179802E-24 + 5.4250003E+08 1.2179178E-24 + 5.4260000E+08 1.2178553E-24 + 5.4269997E+08 1.2177929E-24 + 5.4280000E+08 1.2177304E-24 + 5.4290003E+08 1.2176679E-24 + 5.4300000E+08 1.2176054E-24 + 5.4309997E+08 1.2175430E-24 + 5.4320000E+08 1.2174805E-24 + 5.4330003E+08 1.2174180E-24 + 5.4340000E+08 1.2173556E-24 + 5.4349997E+08 1.2172930E-24 + 5.4360000E+08 1.2172306E-24 + 5.4370003E+08 1.2171681E-24 + 5.4380000E+08 1.2171057E-24 + 5.4389997E+08 1.2170432E-24 + 5.4400000E+08 1.2169807E-24 + 5.4410003E+08 1.2169182E-24 + 5.4420000E+08 1.2168558E-24 + 5.4429997E+08 1.2167933E-24 + 5.4440000E+08 1.2167308E-24 + 5.4450003E+08 1.2166684E-24 + 5.4460000E+08 1.2166058E-24 + 5.4469997E+08 1.2165434E-24 + 5.4480000E+08 1.2164809E-24 + 5.4490003E+08 1.2164184E-24 + 5.4500000E+08 1.2163560E-24 + 5.4509997E+08 1.2162936E-24 + 5.4520000E+08 1.2162310E-24 + 5.4530003E+08 1.2161685E-24 + 5.4540000E+08 1.2161061E-24 + 5.4549997E+08 1.2160437E-24 + 5.4560000E+08 1.2159812E-24 + 5.4570003E+08 1.2159186E-24 + 5.4580000E+08 1.2158562E-24 + 5.4589997E+08 1.2157938E-24 + 5.4600000E+08 1.2157313E-24 + 5.4610003E+08 1.2156688E-24 + 5.4620000E+08 1.2156064E-24 + 5.4629997E+08 1.2155438E-24 + 5.4640000E+08 1.2154813E-24 + 5.4650003E+08 1.2154189E-24 + 5.4660000E+08 1.2153564E-24 + 5.4669997E+08 1.2152940E-24 + 5.4680000E+08 1.2152314E-24 + 5.4690003E+08 1.2151689E-24 + 5.4700000E+08 1.2151065E-24 + 5.4709997E+08 1.2150441E-24 + 5.4720000E+08 1.2149816E-24 + 5.4730003E+08 1.2149191E-24 + 5.4740000E+08 1.2148566E-24 + 5.4749997E+08 1.2147942E-24 + 5.4760000E+08 1.2147317E-24 + 5.4770003E+08 1.2146692E-24 + 5.4780000E+08 1.2146068E-24 + 5.4789997E+08 1.2145443E-24 + 5.4800000E+08 1.2144818E-24 + 5.4810003E+08 1.2144193E-24 + 5.4820000E+08 1.2143569E-24 + 5.4829997E+08 1.2142944E-24 + 5.4840000E+08 1.2142319E-24 + 5.4850003E+08 1.2141694E-24 + 5.4860000E+08 1.2141069E-24 + 5.4869997E+08 1.2140445E-24 + 5.4880000E+08 1.2139820E-24 + 5.4890003E+08 1.2139196E-24 + 5.4900000E+08 1.2138571E-24 + 5.4909997E+08 1.2137946E-24 + 5.4920000E+08 1.2137321E-24 + 5.4930003E+08 1.2136696E-24 + 5.4940000E+08 1.2136072E-24 + 5.4949997E+08 1.2135448E-24 + 5.4960000E+08 1.2134822E-24 + 5.4970003E+08 1.2134197E-24 + 5.4980000E+08 1.2133573E-24 + 5.4989997E+08 1.2132949E-24 + 5.5000000E+08 1.2132324E-24 + 5.5010003E+08 1.2131699E-24 + 5.5020000E+08 1.2131073E-24 + 5.5029997E+08 1.2130449E-24 + 5.5040000E+08 1.2129824E-24 + 5.5050003E+08 1.2129200E-24 + 5.5060000E+08 1.2128576E-24 + 5.5069997E+08 1.2127951E-24 + 5.5080000E+08 1.2127326E-24 + 5.5090003E+08 1.2126701E-24 + 5.5100000E+08 1.2126076E-24 + 5.5109997E+08 1.2125452E-24 + 5.5120000E+08 1.2124827E-24 + 5.5130003E+08 1.2124201E-24 + 5.5140000E+08 1.2123577E-24 + 5.5149997E+08 1.2122953E-24 + 5.5160000E+08 1.2122328E-24 + 5.5170003E+08 1.2121703E-24 + 5.5180000E+08 1.2121079E-24 + 5.5189997E+08 1.2120453E-24 + 5.5200000E+08 1.2119829E-24 + 5.5210003E+08 1.2119204E-24 + 5.5220000E+08 1.2118580E-24 + 5.5229997E+08 1.2117955E-24 + 5.5240000E+08 1.2117330E-24 + 5.5250003E+08 1.2116705E-24 + 5.5260000E+08 1.2116081E-24 + 5.5269997E+08 1.2115456E-24 + 5.5280000E+08 1.2114831E-24 + 5.5290003E+08 1.2114207E-24 + 5.5300000E+08 1.2113581E-24 + 5.5309997E+08 1.2112957E-24 + 5.5320000E+08 1.2112332E-24 + 5.5330003E+08 1.2111707E-24 + 5.5340000E+08 1.2111083E-24 + 5.5349997E+08 1.2110459E-24 + 5.5360000E+08 1.2109833E-24 + 5.5370003E+08 1.2109208E-24 + 5.5380000E+08 1.2108584E-24 + 5.5389997E+08 1.2107960E-24 + 5.5400000E+08 1.2107335E-24 + 5.5410003E+08 1.2106709E-24 + 5.5420000E+08 1.2106085E-24 + 5.5429997E+08 1.2105461E-24 + 5.5440000E+08 1.2104836E-24 + 5.5450003E+08 1.2104211E-24 + 5.5460000E+08 1.2103587E-24 + 5.5469997E+08 1.2102961E-24 + 5.5480000E+08 1.2102336E-24 + 5.5490003E+08 1.2101712E-24 + 5.5500000E+08 1.2101087E-24 + 5.5509997E+08 1.2100463E-24 + 5.5520000E+08 1.2099837E-24 + 5.5530003E+08 1.2099212E-24 + 5.5540000E+08 1.2098588E-24 + 5.5549997E+08 1.2097964E-24 + 5.5560000E+08 1.2097339E-24 + 5.5570003E+08 1.2096715E-24 + 5.5580000E+08 1.2096089E-24 + 5.5589997E+08 1.2095465E-24 + 5.5600000E+08 1.2094840E-24 + 5.5610003E+08 1.2094215E-24 + 5.5620000E+08 1.2093591E-24 + 5.5629997E+08 1.2092966E-24 + 5.5640000E+08 1.2092341E-24 + 5.5650003E+08 1.2091716E-24 + 5.5660000E+08 1.2091092E-24 + 5.5669997E+08 1.2090467E-24 + 5.5680000E+08 1.2089842E-24 + 5.5690003E+08 1.2089217E-24 + 5.5700000E+08 1.2088592E-24 + 5.5709997E+08 1.2087968E-24 + 5.5720000E+08 1.2087343E-24 + 5.5730003E+08 1.2086719E-24 + 5.5740000E+08 1.2086094E-24 + 5.5749997E+08 1.2085469E-24 + 5.5760000E+08 1.2084844E-24 + 5.5770003E+08 1.2084219E-24 + 5.5780000E+08 1.2083595E-24 + 5.5789997E+08 1.2082971E-24 + 5.5800000E+08 1.2082345E-24 + 5.5810003E+08 1.2081720E-24 + 5.5820000E+08 1.2081096E-24 + 5.5829997E+08 1.2080471E-24 + 5.5840000E+08 1.2079847E-24 + 5.5850003E+08 1.2079222E-24 + 5.5860000E+08 1.2078597E-24 + 5.5869997E+08 1.2077972E-24 + 5.5880000E+08 1.2077348E-24 + 5.5890003E+08 1.2076723E-24 + 5.5900000E+08 1.2076099E-24 + 5.5909997E+08 1.2075474E-24 + 5.5920000E+08 1.2074849E-24 + 5.5930003E+08 1.2074224E-24 + 5.5940000E+08 1.2073599E-24 + 5.5949997E+08 1.2072975E-24 + 5.5960000E+08 1.2072350E-24 + 5.5970003E+08 1.2071724E-24 + 5.5980000E+08 1.2071100E-24 + 5.5989997E+08 1.2070476E-24 + 5.6000000E+08 1.2069851E-24 + 5.6010003E+08 1.2069226E-24 + 5.6020000E+08 1.2068602E-24 + 5.6029997E+08 1.2067977E-24 + 5.6040000E+08 1.2067352E-24 + 5.6050003E+08 1.2066727E-24 + 5.6060000E+08 1.2066103E-24 + 5.6069997E+08 1.2065478E-24 + 5.6080000E+08 1.2064853E-24 + 5.6090003E+08 1.2064228E-24 + 5.6100000E+08 1.2063604E-24 + 5.6109997E+08 1.2062979E-24 + 5.6120000E+08 1.2062354E-24 + 5.6130003E+08 1.2061730E-24 + 5.6140000E+08 1.2061104E-24 + 5.6149997E+08 1.2060480E-24 + 5.6160000E+08 1.2059855E-24 + 5.6170003E+08 1.2059230E-24 + 5.6180000E+08 1.2058606E-24 + 5.6189997E+08 1.2057982E-24 + 5.6200000E+08 1.2057356E-24 + 5.6210003E+08 1.2056731E-24 + 5.6220000E+08 1.2056107E-24 + 5.6229997E+08 1.2055483E-24 + 5.6240000E+08 1.2054858E-24 + 5.6250003E+08 1.2054232E-24 + 5.6260000E+08 1.2053608E-24 + 5.6269997E+08 1.2052983E-24 + 5.6280000E+08 1.2052359E-24 + 5.6290003E+08 1.2051734E-24 + 5.6300000E+08 1.2051109E-24 + 5.6309997E+08 1.2050484E-24 + 5.6320000E+08 1.2049859E-24 + 5.6330003E+08 1.2049235E-24 + 5.6340000E+08 1.2048610E-24 + 5.6349997E+08 1.2047986E-24 + 5.6360000E+08 1.2047360E-24 + 5.6370003E+08 1.2046736E-24 + 5.6380000E+08 1.2046111E-24 + 5.6389997E+08 1.2045487E-24 + 5.6400000E+08 1.2044862E-24 + 5.6410003E+08 1.2044237E-24 + 5.6420000E+08 1.2043612E-24 + 5.6429997E+08 1.2042988E-24 + 5.6440000E+08 1.2042363E-24 + 5.6450003E+08 1.2041738E-24 + 5.6460000E+08 1.2041114E-24 + 5.6469997E+08 1.2040489E-24 + 5.6480000E+08 1.2039864E-24 + 5.6490003E+08 1.2039239E-24 + 5.6500000E+08 1.2038615E-24 + 5.6509997E+08 1.2037990E-24 + 5.6520000E+08 1.2037366E-24 + 5.6530003E+08 1.2036740E-24 + 5.6540000E+08 1.2036116E-24 + 5.6549997E+08 1.2035491E-24 + 5.6560000E+08 1.2034866E-24 + 5.6570003E+08 1.2034242E-24 + 5.6580000E+08 1.2033617E-24 + 5.6589997E+08 1.2032992E-24 + 5.6600000E+08 1.2032367E-24 + 5.6610003E+08 1.2031742E-24 + 5.6620000E+08 1.2031118E-24 + 5.6629997E+08 1.2030494E-24 + 5.6640000E+08 1.2029868E-24 + 5.6650003E+08 1.2029243E-24 + 5.6660000E+08 1.2028619E-24 + 5.6669997E+08 1.2027995E-24 + 5.6680000E+08 1.2027370E-24 + 5.6690003E+08 1.2026745E-24 + 5.6700000E+08 1.2026120E-24 + 5.6709997E+08 1.2025495E-24 + 5.6720000E+08 1.2024871E-24 + 5.6730003E+08 1.2024246E-24 + 5.6740000E+08 1.2023621E-24 + 5.6749997E+08 1.2022997E-24 + 5.6760000E+08 1.2022371E-24 + 5.6770003E+08 1.2021747E-24 + 5.6780000E+08 1.2021122E-24 + 5.6789997E+08 1.2020498E-24 + 5.6800000E+08 1.2019873E-24 + 5.6810003E+08 1.2019247E-24 + 5.6820000E+08 1.2018623E-24 + 5.6829997E+08 1.2017999E-24 + 5.6840000E+08 1.2017374E-24 + 5.6850003E+08 1.2016749E-24 + 5.6860000E+08 1.2016125E-24 + 5.6869997E+08 1.2015500E-24 + 5.6880000E+08 1.2014875E-24 + 5.6890003E+08 1.2014250E-24 + 5.6900000E+08 1.2013626E-24 + 5.6909997E+08 1.2013001E-24 + 5.6920000E+08 1.2012376E-24 + 5.6930003E+08 1.2011751E-24 + 5.6940000E+08 1.2011127E-24 + 5.6949997E+08 1.2010502E-24 + 5.6960000E+08 1.2009877E-24 + 5.6970003E+08 1.2009253E-24 + 5.6980000E+08 1.2008627E-24 + 5.6989997E+08 1.2008003E-24 + 5.7000000E+08 1.2007378E-24 + 5.7010003E+08 1.2006754E-24 + 5.7020000E+08 1.2006129E-24 + 5.7029997E+08 1.2005505E-24 + 5.7040000E+08 1.2004879E-24 + 5.7050003E+08 1.2004254E-24 + 5.7060000E+08 1.2003630E-24 + 5.7069997E+08 1.2003006E-24 + 5.7080000E+08 1.2002381E-24 + 5.7090003E+08 1.2001755E-24 + 5.7100000E+08 1.2001131E-24 + 5.7109997E+08 1.2000506E-24 + 5.7120000E+08 1.1999882E-24 + 5.7130003E+08 1.1999257E-24 + 5.7140000E+08 1.1998632E-24 + 5.7149997E+08 1.1998007E-24 + 5.7160000E+08 1.1997383E-24 + 5.7170003E+08 1.1996758E-24 + 5.7180000E+08 1.1996134E-24 + 5.7189997E+08 1.1995509E-24 + 5.7200000E+08 1.1994883E-24 + 5.7210003E+08 1.1994259E-24 + 5.7220000E+08 1.1993634E-24 + 5.7229997E+08 1.1993010E-24 + 5.7240000E+08 1.1992385E-24 + 5.7250003E+08 1.1991760E-24 + 5.7260000E+08 1.1991135E-24 + 5.7269997E+08 1.1990511E-24 + 5.7280000E+08 1.1989886E-24 + 5.7290003E+08 1.1989261E-24 + 5.7300000E+08 1.1988637E-24 + 5.7309997E+08 1.1988012E-24 + 5.7320000E+08 1.1987387E-24 + 5.7330003E+08 1.1986762E-24 + 5.7340000E+08 1.1986138E-24 + 5.7349997E+08 1.1985513E-24 + 5.7360000E+08 1.1984889E-24 + 5.7370003E+08 1.1984263E-24 + 5.7380000E+08 1.1983639E-24 + 5.7389997E+08 1.1983014E-24 + 5.7400000E+08 1.1982389E-24 + 5.7410003E+08 1.1981765E-24 + 5.7420000E+08 1.1981140E-24 + 5.7429997E+08 1.1980515E-24 + 5.7440000E+08 1.1979890E-24 + 5.7450003E+08 1.1979265E-24 + 5.7460000E+08 1.1978641E-24 + 5.7469997E+08 1.1978017E-24 + 5.7480000E+08 1.1977391E-24 + 5.7490003E+08 1.1976766E-24 + 5.7500000E+08 1.1976142E-24 + 5.7509997E+08 1.1975518E-24 + 5.7520000E+08 1.1974893E-24 + 5.7530003E+08 1.1974268E-24 + 5.7540000E+08 1.1973643E-24 + 5.7549997E+08 1.1973019E-24 + 5.7560000E+08 1.1972394E-24 + 5.7570003E+08 1.1971769E-24 + 5.7580000E+08 1.1971144E-24 + 5.7589997E+08 1.1970520E-24 + 5.7600000E+08 1.1969894E-24 + 5.7610003E+08 1.1969270E-24 + 5.7620000E+08 1.1968645E-24 + 5.7629997E+08 1.1968021E-24 + 5.7640000E+08 1.1967396E-24 + 5.7650003E+08 1.1966770E-24 + 5.7660000E+08 1.1966146E-24 + 5.7669997E+08 1.1965522E-24 + 5.7680000E+08 1.1964897E-24 + 5.7690003E+08 1.1964272E-24 + 5.7700000E+08 1.1963648E-24 + 5.7709997E+08 1.1963023E-24 + 5.7720000E+08 1.1962398E-24 + 5.7730003E+08 1.1961773E-24 + 5.7740000E+08 1.1961149E-24 + 5.7749997E+08 1.1960524E-24 + 5.7760000E+08 1.1959899E-24 + 5.7770003E+08 1.1959274E-24 + 5.7780000E+08 1.1958650E-24 + 5.7789997E+08 1.1958025E-24 + 5.7800000E+08 1.1957400E-24 + 5.7810003E+08 1.1956776E-24 + 5.7820000E+08 1.1956150E-24 + 5.7829997E+08 1.1955526E-24 + 5.7840000E+08 1.1954901E-24 + 5.7850003E+08 1.1954277E-24 + 5.7860000E+08 1.1953652E-24 + 5.7869997E+08 1.1953028E-24 + 5.7880000E+08 1.1952402E-24 + 5.7890003E+08 1.1951810E-24 + 5.7900000E+08 1.1951344E-24 + 5.7909997E+08 1.1950879E-24 + 5.7920000E+08 1.1950412E-24 + 5.7930003E+08 1.1949946E-24 + 5.7940000E+08 1.1949481E-24 + 5.7949997E+08 1.1949015E-24 + 5.7960000E+08 1.1948549E-24 + 5.7970003E+08 1.1948083E-24 + 5.7980000E+08 1.1947617E-24 + 5.7989997E+08 1.1947151E-24 + 5.8000000E+08 1.1946685E-24 + 5.8010003E+08 1.1946220E-24 + 5.8020000E+08 1.1945753E-24 + 5.8029997E+08 1.1945288E-24 + 5.8040000E+08 1.1944821E-24 + 5.8050003E+08 1.1944356E-24 + 5.8060000E+08 1.1943890E-24 + 5.8069997E+08 1.1943424E-24 + 5.8080000E+08 1.1942959E-24 + 5.8090003E+08 1.1942492E-24 + 5.8100000E+08 1.1942027E-24 + 5.8109997E+08 1.1941560E-24 + 5.8120000E+08 1.1941095E-24 + 5.8130003E+08 1.1940629E-24 + 5.8140000E+08 1.1940163E-24 + 5.8149997E+08 1.1939697E-24 + 5.8160000E+08 1.1939231E-24 + 5.8170003E+08 1.1938765E-24 + 5.8180000E+08 1.1938299E-24 + 5.8189997E+08 1.1937834E-24 + 5.8200000E+08 1.1937368E-24 + 5.8210003E+08 1.1936901E-24 + 5.8220000E+08 1.1936436E-24 + 5.8229997E+08 1.1935970E-24 + 5.8240000E+08 1.1935504E-24 + 5.8250003E+08 1.1935038E-24 + 5.8260000E+08 1.1934572E-24 + 5.8269997E+08 1.1934107E-24 + 5.8280000E+08 1.1933640E-24 + 5.8290003E+08 1.1933174E-24 + 5.8300000E+08 1.1932708E-24 + 5.8309997E+08 1.1932243E-24 + 5.8320000E+08 1.1931777E-24 + 5.8330003E+08 1.1931310E-24 + 5.8340000E+08 1.1930845E-24 + 5.8349997E+08 1.1930379E-24 + 5.8360000E+08 1.1929913E-24 + 5.8370003E+08 1.1929447E-24 + 5.8380000E+08 1.1928981E-24 + 5.8389997E+08 1.1928516E-24 + 5.8400000E+08 1.1928049E-24 + 5.8410003E+08 1.1927584E-24 + 5.8420000E+08 1.1927117E-24 + 5.8429997E+08 1.1926652E-24 + 5.8440000E+08 1.1926186E-24 + 5.8450003E+08 1.1925720E-24 + 5.8460000E+08 1.1925254E-24 + 5.8469997E+08 1.1924788E-24 + 5.8480000E+08 1.1924322E-24 + 5.8490003E+08 1.1923856E-24 + 5.8500000E+08 1.1923391E-24 + 5.8509997E+08 1.1922925E-24 + 5.8520000E+08 1.1922459E-24 + 5.8530003E+08 1.1921993E-24 + 5.8540000E+08 1.1921527E-24 + 5.8549997E+08 1.1921061E-24 + 5.8560000E+08 1.1920595E-24 + 5.8570003E+08 1.1920129E-24 + 5.8580000E+08 1.1919664E-24 + 5.8589997E+08 1.1919197E-24 + 5.8600000E+08 1.1918732E-24 + 5.8610003E+08 1.1918265E-24 + 5.8620000E+08 1.1917800E-24 + 5.8629997E+08 1.1917335E-24 + 5.8640000E+08 1.1916868E-24 + 5.8650003E+08 1.1916402E-24 + 5.8660000E+08 1.1915936E-24 + 5.8669997E+08 1.1915471E-24 + 5.8680000E+08 1.1915004E-24 + 5.8690003E+08 1.1914539E-24 + 5.8700000E+08 1.1914073E-24 + 5.8709997E+08 1.1913607E-24 + 5.8720000E+08 1.1913141E-24 + 5.8730003E+08 1.1912675E-24 + 5.8740000E+08 1.1912209E-24 + 5.8749997E+08 1.1911743E-24 + 5.8760000E+08 1.1911277E-24 + 5.8770003E+08 1.1910812E-24 + 5.8780000E+08 1.1910345E-24 + 5.8789997E+08 1.1909880E-24 + 5.8800000E+08 1.1909413E-24 + 5.8810003E+08 1.1908948E-24 + 5.8820000E+08 1.1908483E-24 + 5.8829997E+08 1.1908016E-24 + 5.8840000E+08 1.1907551E-24 + 5.8850003E+08 1.1907084E-24 + 5.8860000E+08 1.1906619E-24 + 5.8869997E+08 1.1906152E-24 + 5.8880000E+08 1.1905687E-24 + 5.8890003E+08 1.1905221E-24 + 5.8900000E+08 1.1904755E-24 + 5.8909997E+08 1.1904289E-24 + 5.8920000E+08 1.1903823E-24 + 5.8930003E+08 1.1903357E-24 + 5.8940000E+08 1.1902891E-24 + 5.8949997E+08 1.1902426E-24 + 5.8960000E+08 1.1901960E-24 + 5.8970003E+08 1.1901493E-24 + 5.8980000E+08 1.1901028E-24 + 5.8989997E+08 1.1900562E-24 + 5.9000000E+08 1.1900096E-24 + 5.9010003E+08 1.1899630E-24 + 5.9020000E+08 1.1899164E-24 + 5.9029997E+08 1.1898699E-24 + 5.9040000E+08 1.1898232E-24 + 5.9050003E+08 1.1897766E-24 + 5.9060000E+08 1.1897300E-24 + 5.9069997E+08 1.1896835E-24 + 5.9080000E+08 1.1896369E-24 + 5.9090003E+08 1.1895903E-24 + 5.9100000E+08 1.1895437E-24 + 5.9109997E+08 1.1894971E-24 + 5.9120000E+08 1.1894505E-24 + 5.9130003E+08 1.1894039E-24 + 5.9140000E+08 1.1893573E-24 + 5.9149997E+08 1.1893108E-24 + 5.9160000E+08 1.1892641E-24 + 5.9170003E+08 1.1892176E-24 + 5.9180000E+08 1.1891709E-24 + 5.9189997E+08 1.1891244E-24 + 5.9200000E+08 1.1890778E-24 + 5.9210003E+08 1.1890312E-24 + 5.9220000E+08 1.1889846E-24 + 5.9229997E+08 1.1889380E-24 + 5.9240000E+08 1.1888915E-24 + 5.9250003E+08 1.1888448E-24 + 5.9260000E+08 1.1887983E-24 + 5.9269997E+08 1.1887517E-24 + 5.9280000E+08 1.1887051E-24 + 5.9290003E+08 1.1886585E-24 + 5.9300000E+08 1.1886119E-24 + 5.9309997E+08 1.1885653E-24 + 5.9320000E+08 1.1885187E-24 + 5.9330003E+08 1.1884721E-24 + 5.9340000E+08 1.1884256E-24 + 5.9349997E+08 1.1883789E-24 + 5.9360000E+08 1.1883324E-24 + 5.9370003E+08 1.1882857E-24 + 5.9380000E+08 1.1882392E-24 + 5.9389997E+08 1.1881926E-24 + 5.9400000E+08 1.1881460E-24 + 5.9410003E+08 1.1880994E-24 + 5.9420000E+08 1.1880528E-24 + 5.9429997E+08 1.1880063E-24 + 5.9440000E+08 1.1879596E-24 + 5.9450003E+08 1.1879131E-24 + 5.9460000E+08 1.1878665E-24 + 5.9469997E+08 1.1878199E-24 + 5.9480000E+08 1.1877733E-24 + 5.9490003E+08 1.1877267E-24 + 5.9500000E+08 1.1876801E-24 + 5.9509997E+08 1.1876335E-24 + 5.9520000E+08 1.1875869E-24 + 5.9530003E+08 1.1875404E-24 + 5.9540000E+08 1.1874937E-24 + 5.9549997E+08 1.1874472E-24 + 5.9560000E+08 1.1874006E-24 + 5.9570003E+08 1.1873540E-24 + 5.9580000E+08 1.1873074E-24 + 5.9589997E+08 1.1872608E-24 + 5.9600000E+08 1.1872143E-24 + 5.9610003E+08 1.1871676E-24 + 5.9620000E+08 1.1871211E-24 + 5.9629997E+08 1.1870744E-24 + 5.9640000E+08 1.1870279E-24 + 5.9650003E+08 1.1869813E-24 + 5.9660000E+08 1.1869347E-24 + 5.9669997E+08 1.1868881E-24 + 5.9680000E+08 1.1868415E-24 + 5.9690003E+08 1.1867949E-24 + 5.9700000E+08 1.1867483E-24 + 5.9709997E+08 1.1867018E-24 + 5.9720000E+08 1.1866552E-24 + 5.9730003E+08 1.1866085E-24 + 5.9740000E+08 1.1865620E-24 + 5.9749997E+08 1.1865154E-24 + 5.9760000E+08 1.1864688E-24 + 5.9770003E+08 1.1864222E-24 + 5.9780000E+08 1.1863756E-24 + 5.9789997E+08 1.1863291E-24 + 5.9800000E+08 1.1862824E-24 + 5.9810003E+08 1.1862359E-24 + 5.9820000E+08 1.1861892E-24 + 5.9829997E+08 1.1861427E-24 + 5.9840000E+08 1.1860961E-24 + 5.9850003E+08 1.1860495E-24 + 5.9860000E+08 1.1860029E-24 + 5.9869997E+08 1.1859563E-24 + 5.9880000E+08 1.1859097E-24 + 5.9890003E+08 1.1858631E-24 + 5.9900000E+08 1.1858165E-24 + 5.9909997E+08 1.1857700E-24 + 5.9920000E+08 1.1857233E-24 + 5.9930003E+08 1.1856768E-24 + 5.9940000E+08 1.1856301E-24 + 5.9949997E+08 1.1855836E-24 + 5.9960000E+08 1.1855370E-24 + 5.9970003E+08 1.1854904E-24 + 5.9980000E+08 1.1854439E-24 + 5.9989997E+08 1.1853972E-24 + 6.0000000E+08 1.1853507E-24 + 6.0010003E+08 1.1853040E-24 + 6.0020000E+08 1.1852575E-24 + 6.0029997E+08 1.1852109E-24 + 6.0040000E+08 1.1851643E-24 + 6.0050003E+08 1.1851177E-24 + 6.0060000E+08 1.1850711E-24 + 6.0069997E+08 1.1850245E-24 + 6.0080000E+08 1.1849779E-24 + 6.0090003E+08 1.1849313E-24 + 6.0100000E+08 1.1848848E-24 + 6.0109997E+08 1.1848382E-24 + 6.0120000E+08 1.1847916E-24 + 6.0130003E+08 1.1847449E-24 + 6.0140000E+08 1.1846984E-24 + 6.0149997E+08 1.1846518E-24 + 6.0160000E+08 1.1846052E-24 + 6.0170003E+08 1.1845586E-24 + 6.0180000E+08 1.1845120E-24 + 6.0189997E+08 1.1844655E-24 + 6.0200000E+08 1.1844188E-24 + 6.0210003E+08 1.1843723E-24 + 6.0220000E+08 1.1843257E-24 + 6.0229997E+08 1.1842791E-24 + 6.0240000E+08 1.1842325E-24 + 6.0250003E+08 1.1841859E-24 + 6.0260000E+08 1.1841393E-24 + 6.0269997E+08 1.1840927E-24 + 6.0280000E+08 1.1840461E-24 + 6.0290003E+08 1.1839996E-24 + 6.0300000E+08 1.1839530E-24 + 6.0309997E+08 1.1839064E-24 + 6.0320000E+08 1.1838598E-24 + 6.0330003E+08 1.1838132E-24 + 6.0340000E+08 1.1837666E-24 + 6.0349997E+08 1.1837200E-24 + 6.0360000E+08 1.1836735E-24 + 6.0370003E+08 1.1836268E-24 + 6.0380000E+08 1.1835803E-24 + 6.0389997E+08 1.1835336E-24 + 6.0400000E+08 1.1834871E-24 + 6.0410003E+08 1.1834405E-24 + 6.0420000E+08 1.1833939E-24 + 6.0429997E+08 1.1833474E-24 + 6.0440000E+08 1.1833007E-24 + 6.0450003E+08 1.1832541E-24 + 6.0460000E+08 1.1832075E-24 + 6.0469997E+08 1.1831610E-24 + 6.0480000E+08 1.1831144E-24 + 6.0490003E+08 1.1830677E-24 + 6.0500000E+08 1.1830212E-24 + 6.0509997E+08 1.1829746E-24 + 6.0520000E+08 1.1829280E-24 + 6.0530003E+08 1.1828814E-24 + 6.0540000E+08 1.1828348E-24 + 6.0549997E+08 1.1827883E-24 + 6.0560000E+08 1.1827416E-24 + 6.0570003E+08 1.1826951E-24 + 6.0580000E+08 1.1826484E-24 + 6.0589997E+08 1.1826019E-24 + 6.0600000E+08 1.1825553E-24 + 6.0610003E+08 1.1825087E-24 + 6.0620000E+08 1.1824621E-24 + 6.0629997E+08 1.1824155E-24 + 6.0640000E+08 1.1823689E-24 + 6.0650003E+08 1.1823223E-24 + 6.0660000E+08 1.1822758E-24 + 6.0669997E+08 1.1822292E-24 + 6.0680000E+08 1.1821826E-24 + 6.0690003E+08 1.1821360E-24 + 6.0700000E+08 1.1820894E-24 + 6.0709997E+08 1.1820428E-24 + 6.0720000E+08 1.1819962E-24 + 6.0730003E+08 1.1819496E-24 + 6.0740000E+08 1.1819031E-24 + 6.0749997E+08 1.1818564E-24 + 6.0760000E+08 1.1818099E-24 + 6.0770003E+08 1.1817632E-24 + 6.0780000E+08 1.1817167E-24 + 6.0789997E+08 1.1816701E-24 + 6.0800000E+08 1.1816235E-24 + 6.0810003E+08 1.1815769E-24 + 6.0820000E+08 1.1815303E-24 + 6.0829997E+08 1.1814837E-24 + 6.0840000E+08 1.1814371E-24 + 6.0850003E+08 1.1813905E-24 + 6.0860000E+08 1.1813440E-24 + 6.0869997E+08 1.1812974E-24 + 6.0880000E+08 1.1812508E-24 + 6.0890003E+08 1.1812041E-24 + 6.0900000E+08 1.1811576E-24 + 6.0909997E+08 1.1811110E-24 + 6.0920000E+08 1.1810644E-24 + 6.0930003E+08 1.1810179E-24 + 6.0940000E+08 1.1809712E-24 + 6.0949997E+08 1.1809247E-24 + 6.0960000E+08 1.1808780E-24 + 6.0970003E+08 1.1808315E-24 + 6.0980000E+08 1.1807849E-24 + 6.0989997E+08 1.1807383E-24 + 6.1000000E+08 1.1806917E-24 + 6.1010003E+08 1.1806451E-24 + 6.1020000E+08 1.1805985E-24 + 6.1029997E+08 1.1805519E-24 + 6.1040000E+08 1.1805053E-24 + 6.1050003E+08 1.1804588E-24 + 6.1060000E+08 1.1804122E-24 + 6.1069997E+08 1.1803656E-24 + 6.1080000E+08 1.1803190E-24 + 6.1090003E+08 1.1802724E-24 + 6.1100000E+08 1.1802258E-24 + 6.1109997E+08 1.1801792E-24 + 6.1120000E+08 1.1801327E-24 + 6.1130003E+08 1.1800860E-24 + 6.1140000E+08 1.1800395E-24 + 6.1149997E+08 1.1799928E-24 + 6.1160000E+08 1.1799463E-24 + 6.1170003E+08 1.1798997E-24 + 6.1180000E+08 1.1798531E-24 + 6.1189997E+08 1.1798066E-24 + 6.1200000E+08 1.1797599E-24 + 6.1210003E+08 1.1797133E-24 + 6.1220000E+08 1.1796667E-24 + 6.1229997E+08 1.1796202E-24 + 6.1240000E+08 1.1795736E-24 + 6.1250003E+08 1.1795269E-24 + 6.1260000E+08 1.1794804E-24 + 6.1269997E+08 1.1794338E-24 + 6.1280000E+08 1.1793872E-24 + 6.1290003E+08 1.1793406E-24 + 6.1300000E+08 1.1792940E-24 + 6.1309997E+08 1.1792475E-24 + 6.1320000E+08 1.1792008E-24 + 6.1330003E+08 1.1791543E-24 + 6.1340000E+08 1.1791076E-24 + 6.1349997E+08 1.1790611E-24 + 6.1360000E+08 1.1790144E-24 + 6.1370003E+08 1.1789679E-24 + 6.1380000E+08 1.1789213E-24 + 6.1389997E+08 1.1788747E-24 + 6.1400000E+08 1.1788282E-24 + 6.1410003E+08 1.1787815E-24 + 6.1420000E+08 1.1787350E-24 + 6.1429997E+08 1.1786884E-24 + 6.1440000E+08 1.1786418E-24 + 6.1450003E+08 1.1785952E-24 + 6.1460000E+08 1.1785486E-24 + 6.1469997E+08 1.1785020E-24 + 6.1480000E+08 1.1784554E-24 + 6.1490003E+08 1.1784088E-24 + 6.1500000E+08 1.1783623E-24 + 6.1509997E+08 1.1783156E-24 + 6.1520000E+08 1.1782691E-24 + 6.1530003E+08 1.1782224E-24 + 6.1540000E+08 1.1781759E-24 + 6.1549997E+08 1.1781293E-24 + 6.1560000E+08 1.1780827E-24 + 6.1570003E+08 1.1780361E-24 + 6.1580000E+08 1.1779895E-24 + 6.1589997E+08 1.1779430E-24 + 6.1600000E+08 1.1778963E-24 + 6.1610003E+08 1.1778497E-24 + 6.1620000E+08 1.1778032E-24 + 6.1629997E+08 1.1777566E-24 + 6.1640000E+08 1.1777100E-24 + 6.1650003E+08 1.1776633E-24 + 6.1660000E+08 1.1776168E-24 + 6.1669997E+08 1.1775702E-24 + 6.1680000E+08 1.1775236E-24 + 6.1690003E+08 1.1774771E-24 + 6.1700000E+08 1.1774304E-24 + 6.1709997E+08 1.1773839E-24 + 6.1720000E+08 1.1773372E-24 + 6.1730003E+08 1.1772907E-24 + 6.1740000E+08 1.1772440E-24 + 6.1749997E+08 1.1771975E-24 + 6.1760000E+08 1.1771509E-24 + 6.1770003E+08 1.1771043E-24 + 6.1780000E+08 1.1770577E-24 + 6.1789997E+08 1.1770111E-24 + 6.1800000E+08 1.1769645E-24 + 6.1810003E+08 1.1769180E-24 + 6.1820000E+08 1.1768714E-24 + 6.1829997E+08 1.1768248E-24 + 6.1840000E+08 1.1767782E-24 + 6.1850003E+08 1.1767316E-24 + 6.1860000E+08 1.1766850E-24 + 6.1869997E+08 1.1766384E-24 + 6.1880000E+08 1.1765919E-24 + 6.1890003E+08 1.1765452E-24 + 6.1900000E+08 1.1764987E-24 + 6.1909997E+08 1.1764520E-24 + 6.1920000E+08 1.1764055E-24 + 6.1930003E+08 1.1763588E-24 + 6.1940000E+08 1.1763123E-24 + 6.1949997E+08 1.1762658E-24 + 6.1960000E+08 1.1762191E-24 + 6.1970003E+08 1.1761725E-24 + 6.1980000E+08 1.1761259E-24 + 6.1989997E+08 1.1760794E-24 + 6.2000000E+08 1.1760328E-24 + 6.2010003E+08 1.1759861E-24 + 6.2020000E+08 1.1759396E-24 + 6.2029997E+08 1.1758930E-24 + 6.2040000E+08 1.1758464E-24 + 6.2050003E+08 1.1757998E-24 + 6.2060000E+08 1.1757532E-24 + 6.2069997E+08 1.1757067E-24 + 6.2080000E+08 1.1756600E-24 + 6.2090003E+08 1.1756135E-24 + 6.2100000E+08 1.1755668E-24 + 6.2109997E+08 1.1755203E-24 + 6.2120000E+08 1.1754736E-24 + 6.2130003E+08 1.1754271E-24 + 6.2140000E+08 1.1753806E-24 + 6.2149997E+08 1.1753339E-24 + 6.2160000E+08 1.1752874E-24 + 6.2170003E+08 1.1752407E-24 + 6.2180000E+08 1.1751942E-24 + 6.2189997E+08 1.1751476E-24 + 6.2200000E+08 1.1751010E-24 + 6.2210003E+08 1.1750544E-24 + 6.2220000E+08 1.1750078E-24 + 6.2229997E+08 1.1749612E-24 + 6.2240000E+08 1.1749146E-24 + 6.2250003E+08 1.1748680E-24 + 6.2260000E+08 1.1748215E-24 + 6.2269997E+08 1.1747749E-24 + 6.2280000E+08 1.1747283E-24 + 6.2290003E+08 1.1746816E-24 + 6.2300000E+08 1.1746351E-24 + 6.2309997E+08 1.1745885E-24 + 6.2320000E+08 1.1745419E-24 + 6.2330003E+08 1.1744953E-24 + 6.2340000E+08 1.1744487E-24 + 6.2349997E+08 1.1744022E-24 + 6.2360000E+08 1.1743555E-24 + 6.2370003E+08 1.1743089E-24 + 6.2380000E+08 1.1742624E-24 + 6.2389997E+08 1.1742158E-24 + 6.2400000E+08 1.1741692E-24 + 6.2410003E+08 1.1741225E-24 + 6.2420000E+08 1.1740760E-24 + 6.2429997E+08 1.1740294E-24 + 6.2440000E+08 1.1739828E-24 + 6.2450003E+08 1.1739363E-24 + 6.2460000E+08 1.1738896E-24 + 6.2469997E+08 1.1738431E-24 + 6.2480000E+08 1.1737964E-24 + 6.2490003E+08 1.1737499E-24 + 6.2500000E+08 1.1737032E-24 + 6.2509997E+08 1.1736567E-24 + 6.2520000E+08 1.1736101E-24 + 6.2530003E+08 1.1735635E-24 + 6.2540000E+08 1.1735169E-24 + 6.2549997E+08 1.1734703E-24 + 6.2560000E+08 1.1734238E-24 + 6.2570003E+08 1.1733772E-24 + 6.2580000E+08 1.1733306E-24 + 6.2589997E+08 1.1732840E-24 + 6.2600000E+08 1.1732374E-24 + 6.2610003E+08 1.1731908E-24 + 6.2620000E+08 1.1731442E-24 + 6.2629997E+08 1.1730976E-24 + 6.2640000E+08 1.1730511E-24 + 6.2650003E+08 1.1730044E-24 + 6.2660000E+08 1.1729579E-24 + 6.2669997E+08 1.1729113E-24 + 6.2680000E+08 1.1728647E-24 + 6.2690003E+08 1.1728180E-24 + 6.2700000E+08 1.1727715E-24 + 6.2709997E+08 1.1727250E-24 + 6.2720000E+08 1.1726783E-24 + 6.2730003E+08 1.1726317E-24 + 6.2740000E+08 1.1725851E-24 + 6.2749997E+08 1.1725386E-24 + 6.2760000E+08 1.1724920E-24 + 6.2770003E+08 1.1724454E-24 + 6.2780000E+08 1.1723988E-24 + 6.2789997E+08 1.1723522E-24 + 6.2800000E+08 1.1723056E-24 + 6.2810003E+08 1.1722590E-24 + 6.2820000E+08 1.1722124E-24 + 6.2829997E+08 1.1721659E-24 + 6.2840000E+08 1.1721192E-24 + 6.2850003E+08 1.1720727E-24 + 6.2860000E+08 1.1720260E-24 + 6.2869997E+08 1.1719795E-24 + 6.2880000E+08 1.1719329E-24 + 6.2890003E+08 1.1718863E-24 + 6.2900000E+08 1.1718398E-24 + 6.2909997E+08 1.1717931E-24 + 6.2920000E+08 1.1717466E-24 + 6.2930003E+08 1.1716999E-24 + 6.2940000E+08 1.1716534E-24 + 6.2949997E+08 1.1716068E-24 + 6.2960000E+08 1.1715602E-24 + 6.2970003E+08 1.1715136E-24 + 6.2980000E+08 1.1714670E-24 + 6.2989997E+08 1.1714205E-24 + 6.3000000E+08 1.1713738E-24 + 6.3010003E+08 1.1713272E-24 + 6.3020000E+08 1.1712807E-24 + 6.3029997E+08 1.1712341E-24 + 6.3040000E+08 1.1711875E-24 + 6.3050003E+08 1.1711408E-24 + 6.3060000E+08 1.1710943E-24 + 6.3069997E+08 1.1710477E-24 + 6.3080000E+08 1.1710011E-24 + 6.3090003E+08 1.1709545E-24 + 6.3100000E+08 1.1709079E-24 + 6.3109997E+08 1.1708614E-24 + 6.3120000E+08 1.1708147E-24 + 6.3130003E+08 1.1707681E-24 + 6.3140000E+08 1.1707215E-24 + 6.3149997E+08 1.1706750E-24 + 6.3160000E+08 1.1706284E-24 + 6.3170003E+08 1.1705818E-24 + 6.3180000E+08 1.1705352E-24 + 6.3189997E+08 1.1704886E-24 + 6.3200000E+08 1.1704420E-24 + 6.3210003E+08 1.1703955E-24 + 6.3220000E+08 1.1703488E-24 + 6.3229997E+08 1.1703023E-24 + 6.3240000E+08 1.1702556E-24 + 6.3250003E+08 1.1702091E-24 + 6.3260000E+08 1.1701624E-24 + 6.3269997E+08 1.1701159E-24 + 6.3280000E+08 1.1700693E-24 + 6.3290003E+08 1.1700227E-24 + 6.3300000E+08 1.1699762E-24 + 6.3309997E+08 1.1699295E-24 + 6.3320000E+08 1.1698830E-24 + 6.3330003E+08 1.1698363E-24 + 6.3340000E+08 1.1697898E-24 + 6.3349997E+08 1.1697432E-24 + 6.3360000E+08 1.1696966E-24 + 6.3370003E+08 1.1696500E-24 + 6.3380000E+08 1.1696034E-24 + 6.3389997E+08 1.1695568E-24 + 6.3400000E+08 1.1695103E-24 + 6.3410003E+08 1.1694636E-24 + 6.3420000E+08 1.1694171E-24 + 6.3429997E+08 1.1693705E-24 + 6.3440000E+08 1.1693239E-24 + 6.3450003E+08 1.1692772E-24 + 6.3460000E+08 1.1692307E-24 + 6.3469997E+08 1.1691842E-24 + 6.3480000E+08 1.1691375E-24 + 6.3490003E+08 1.1690909E-24 + 6.3500000E+08 1.1690443E-24 + 6.3509997E+08 1.1689978E-24 + 6.3520000E+08 1.1689511E-24 + 6.3530003E+08 1.1689046E-24 + 6.3540000E+08 1.1688580E-24 + 6.3549997E+08 1.1688114E-24 + 6.3560000E+08 1.1687648E-24 + 6.3570003E+08 1.1687182E-24 + 6.3580000E+08 1.1686716E-24 + 6.3589997E+08 1.1686251E-24 + 6.3600000E+08 1.1685784E-24 + 6.3610003E+08 1.1685319E-24 + 6.3620000E+08 1.1684852E-24 + 6.3629997E+08 1.1684387E-24 + 6.3640000E+08 1.1683921E-24 + 6.3650003E+08 1.1683455E-24 + 6.3660000E+08 1.1682990E-24 + 6.3669997E+08 1.1682523E-24 + 6.3680000E+08 1.1682058E-24 + 6.3690003E+08 1.1681591E-24 + 6.3700000E+08 1.1681126E-24 + 6.3709997E+08 1.1680659E-24 + 6.3720000E+08 1.1680194E-24 + 6.3730003E+08 1.1679728E-24 + 6.3740000E+08 1.1679262E-24 + 6.3749997E+08 1.1678797E-24 + 6.3760000E+08 1.1678330E-24 + 6.3770003E+08 1.1677864E-24 + 6.3780000E+08 1.1677399E-24 + 6.3789997E+08 1.1676933E-24 + 6.3800000E+08 1.1676467E-24 + 6.3810003E+08 1.1676000E-24 + 6.3820000E+08 1.1675535E-24 + 6.3829997E+08 1.1675069E-24 + 6.3840000E+08 1.1674603E-24 + 6.3850003E+08 1.1674137E-24 + 6.3860000E+08 1.1673671E-24 + 6.3869997E+08 1.1673206E-24 + 6.3880000E+08 1.1672739E-24 + 6.3890003E+08 1.1672273E-24 + 6.3900000E+08 1.1671807E-24 + 6.3909997E+08 1.1671342E-24 + 6.3920000E+08 1.1670876E-24 + 6.3930003E+08 1.1670410E-24 + 6.3940000E+08 1.1669944E-24 + 6.3949997E+08 1.1669478E-24 + 6.3960000E+08 1.1669012E-24 + 6.3970003E+08 1.1668547E-24 + 6.3980000E+08 1.1668080E-24 + 6.3989997E+08 1.1667615E-24 + 6.4000000E+08 1.1667148E-24 + 6.4010003E+08 1.1666683E-24 + 6.4020000E+08 1.1666216E-24 + 6.4029997E+08 1.1665751E-24 + 6.4040000E+08 1.1665285E-24 + 6.4050003E+08 1.1664819E-24 + 6.4060000E+08 1.1664354E-24 + 6.4069997E+08 1.1663887E-24 + 6.4080000E+08 1.1663422E-24 + 6.4090003E+08 1.1662955E-24 + 6.4100000E+08 1.1662490E-24 + 6.4109997E+08 1.1662024E-24 + 6.4120000E+08 1.1661558E-24 + 6.4130003E+08 1.1661092E-24 + 6.4140000E+08 1.1660626E-24 + 6.4149997E+08 1.1660161E-24 + 6.4160000E+08 1.1659695E-24 + 6.4170003E+08 1.1659228E-24 + 6.4180000E+08 1.1658763E-24 + 6.4189997E+08 1.1658297E-24 + 6.4200000E+08 1.1657831E-24 + 6.4210003E+08 1.1657364E-24 + 6.4220000E+08 1.1656899E-24 + 6.4229997E+08 1.1656434E-24 + 6.4240000E+08 1.1655967E-24 + 6.4250003E+08 1.1655502E-24 + 6.4260000E+08 1.1655035E-24 + 6.4269997E+08 1.1654570E-24 + 6.4280000E+08 1.1654103E-24 + 6.4290003E+08 1.1653638E-24 + 6.4300000E+08 1.1653172E-24 + 6.4309997E+08 1.1652706E-24 + 6.4320000E+08 1.1652240E-24 + 6.4330003E+08 1.1651774E-24 + 6.4340000E+08 1.1651308E-24 + 6.4349997E+08 1.1650843E-24 + 6.4360000E+08 1.1650377E-24 + 6.4370003E+08 1.1649911E-24 + 6.4380000E+08 1.1649445E-24 + 6.4389997E+08 1.1648979E-24 + 6.4400000E+08 1.1648513E-24 + 6.4410003E+08 1.1648047E-24 + 6.4420000E+08 1.1647582E-24 + 6.4429997E+08 1.1647115E-24 + 6.4440000E+08 1.1646650E-24 + 6.4450003E+08 1.1646183E-24 + 6.4460000E+08 1.1645718E-24 + 6.4469997E+08 1.1645251E-24 + 6.4480000E+08 1.1644786E-24 + 6.4490003E+08 1.1644320E-24 + 6.4500000E+08 1.1643854E-24 + 6.4509997E+08 1.1643389E-24 + 6.4520000E+08 1.1642922E-24 + 6.4530003E+08 1.1642456E-24 + 6.4540000E+08 1.1641991E-24 + 6.4549997E+08 1.1641525E-24 + 6.4560000E+08 1.1641059E-24 + 6.4570003E+08 1.1640592E-24 + 6.4580000E+08 1.1640127E-24 + 6.4589997E+08 1.1639661E-24 + 6.4600000E+08 1.1639195E-24 + 6.4610003E+08 1.1638729E-24 + 6.4620000E+08 1.1638263E-24 + 6.4629997E+08 1.1637798E-24 + 6.4640000E+08 1.1637331E-24 + 6.4650003E+08 1.1636865E-24 + 6.4660000E+08 1.1636399E-24 + 6.4669997E+08 1.1635934E-24 + 6.4680000E+08 1.1635468E-24 + 6.4690003E+08 1.1635002E-24 + 6.4700000E+08 1.1634536E-24 + 6.4709997E+08 1.1634070E-24 + 6.4720000E+08 1.1633604E-24 + 6.4730003E+08 1.1633138E-24 + 6.4740000E+08 1.1632672E-24 + 6.4749997E+08 1.1632207E-24 + 6.4760000E+08 1.1631740E-24 + 6.4770003E+08 1.1631275E-24 + 6.4780000E+08 1.1630809E-24 + 6.4789997E+08 1.1630343E-24 + 6.4800000E+08 1.1629878E-24 + 6.4810003E+08 1.1629411E-24 + 6.4820000E+08 1.1628946E-24 + 6.4829997E+08 1.1628479E-24 + 6.4840000E+08 1.1628014E-24 + 6.4850003E+08 1.1627547E-24 + 6.4860000E+08 1.1627082E-24 + 6.4869997E+08 1.1626616E-24 + 6.4880000E+08 1.1626150E-24 + 6.4890003E+08 1.1625684E-24 + 6.4900000E+08 1.1625218E-24 + 6.4909997E+08 1.1624753E-24 + 6.4920000E+08 1.1624286E-24 + 6.4930003E+08 1.1623820E-24 + 6.4940000E+08 1.1623355E-24 + 6.4949997E+08 1.1622889E-24 + 6.4960000E+08 1.1622423E-24 + 6.4970003E+08 1.1621956E-24 + 6.4980000E+08 1.1621491E-24 + 6.4989997E+08 1.1621026E-24 + 6.5000000E+08 1.1620559E-24 + 6.5010003E+08 1.1620094E-24 + 6.5020000E+08 1.1619627E-24 + 6.5029997E+08 1.1619162E-24 + 6.5040000E+08 1.1618695E-24 + 6.5050003E+08 1.1618230E-24 + 6.5060000E+08 1.1617764E-24 + 6.5069997E+08 1.1617298E-24 + 6.5080000E+08 1.1616832E-24 + 6.5090003E+08 1.1616366E-24 + 6.5100000E+08 1.1615900E-24 + 6.5109997E+08 1.1615434E-24 + 6.5120000E+08 1.1614969E-24 + 6.5130003E+08 1.1614503E-24 + 6.5140000E+08 1.1614037E-24 + 6.5149997E+08 1.1613571E-24 + 6.5160000E+08 1.1613105E-24 + 6.5170003E+08 1.1612639E-24 + 6.5180000E+08 1.1612174E-24 + 6.5189997E+08 1.1611707E-24 + 6.5200000E+08 1.1611242E-24 + 6.5210003E+08 1.1610775E-24 + 6.5220000E+08 1.1610310E-24 + 6.5229997E+08 1.1609843E-24 + 6.5240000E+08 1.1609378E-24 + 6.5250003E+08 1.1608912E-24 + 6.5260000E+08 1.1608446E-24 + 6.5269997E+08 1.1607981E-24 + 6.5280000E+08 1.1607514E-24 + 6.5290003E+08 1.1607048E-24 + 6.5300000E+08 1.1606582E-24 + 6.5309997E+08 1.1606117E-24 + 6.5320000E+08 1.1605651E-24 + 6.5330003E+08 1.1605184E-24 + 6.5340000E+08 1.1604719E-24 + 6.5349997E+08 1.1604253E-24 + 6.5360000E+08 1.1603787E-24 + 6.5370003E+08 1.1603322E-24 + 6.5380000E+08 1.1602855E-24 + 6.5389997E+08 1.1602390E-24 + 6.5400000E+08 1.1601923E-24 + 6.5410003E+08 1.1601458E-24 + 6.5420000E+08 1.1600991E-24 + 6.5429997E+08 1.1600526E-24 + 6.5440000E+08 1.1600060E-24 + 6.5450003E+08 1.1599594E-24 + 6.5460000E+08 1.1599128E-24 + 6.5469997E+08 1.1598662E-24 + 6.5480000E+08 1.1598196E-24 + 6.5490003E+08 1.1597730E-24 + 6.5500000E+08 1.1597264E-24 + 6.5509997E+08 1.1596799E-24 + 6.5520000E+08 1.1596332E-24 + 6.5530003E+08 1.1595867E-24 + 6.5540000E+08 1.1595401E-24 + 6.5549997E+08 1.1594935E-24 + 6.5560000E+08 1.1594470E-24 + 6.5570003E+08 1.1594003E-24 + 6.5580000E+08 1.1593538E-24 + 6.5589997E+08 1.1593071E-24 + 6.5600000E+08 1.1592606E-24 + 6.5610003E+08 1.1592139E-24 + 6.5620000E+08 1.1591674E-24 + 6.5629997E+08 1.1591208E-24 + 6.5640000E+08 1.1590742E-24 + 6.5650003E+08 1.1590276E-24 + 6.5660000E+08 1.1589810E-24 + 6.5669997E+08 1.1589345E-24 + 6.5680000E+08 1.1588878E-24 + 6.5690003E+08 1.1588412E-24 + 6.5700000E+08 1.1587947E-24 + 6.5709997E+08 1.1587481E-24 + 6.5720000E+08 1.1587015E-24 + 6.5730003E+08 1.1586548E-24 + 6.5740000E+08 1.1586083E-24 + 6.5749997E+08 1.1585618E-24 + 6.5760000E+08 1.1585151E-24 + 6.5770003E+08 1.1584686E-24 + 6.5780000E+08 1.1584219E-24 + 6.5789997E+08 1.1583754E-24 + 6.5800000E+08 1.1583287E-24 + 6.5810003E+08 1.1582822E-24 + 6.5820000E+08 1.1582356E-24 + 6.5829997E+08 1.1581890E-24 + 6.5840000E+08 1.1581424E-24 + 6.5850003E+08 1.1580958E-24 + 6.5860000E+08 1.1580492E-24 + 6.5869997E+08 1.1580026E-24 + 6.5880000E+08 1.1579561E-24 + 6.5890003E+08 1.1579095E-24 + 6.5900000E+08 1.1578629E-24 + 6.5909997E+08 1.1578163E-24 + 6.5920000E+08 1.1577697E-24 + 6.5930003E+08 1.1577231E-24 + 6.5940000E+08 1.1576766E-24 + 6.5949997E+08 1.1576299E-24 + 6.5960000E+08 1.1575834E-24 + 6.5970003E+08 1.1575367E-24 + 6.5980000E+08 1.1574902E-24 + 6.5989997E+08 1.1574436E-24 + 6.6000000E+08 1.1573970E-24 + 6.6010003E+08 1.1573504E-24 + 6.6020000E+08 1.1573038E-24 + 6.6029997E+08 1.1572573E-24 + 6.6040000E+08 1.1572106E-24 + 6.6050003E+08 1.1571640E-24 + 6.6060000E+08 1.1571174E-24 + 6.6069997E+08 1.1570709E-24 + 6.6080000E+08 1.1570243E-24 + 6.6090003E+08 1.1569777E-24 + 6.6100000E+08 1.1569311E-24 + 6.6109997E+08 1.1568845E-24 + 6.6120000E+08 1.1568379E-24 + 6.6130003E+08 1.1567914E-24 + 6.6140000E+08 1.1567447E-24 + 6.6149997E+08 1.1566982E-24 + 6.6160000E+08 1.1566515E-24 + 6.6170003E+08 1.1566050E-24 + 6.6180000E+08 1.1565583E-24 + 6.6189997E+08 1.1565118E-24 + 6.6200000E+08 1.1564652E-24 + 6.6210003E+08 1.1564186E-24 + 6.6220000E+08 1.1563720E-24 + 6.6229997E+08 1.1563254E-24 + 6.6240000E+08 1.1562788E-24 + 6.6250003E+08 1.1562322E-24 + 6.6260000E+08 1.1561856E-24 + 6.6269997E+08 1.1561391E-24 + 6.6280000E+08 1.1560925E-24 + 6.6290003E+08 1.1560459E-24 + 6.6300000E+08 1.1559993E-24 + 6.6309997E+08 1.1559527E-24 + 6.6320000E+08 1.1559062E-24 + 6.6330003E+08 1.1558595E-24 + 6.6340000E+08 1.1558130E-24 + 6.6349997E+08 1.1557663E-24 + 6.6360000E+08 1.1557198E-24 + 6.6370003E+08 1.1556731E-24 + 6.6380000E+08 1.1556266E-24 + 6.6389997E+08 1.1555801E-24 + 6.6400000E+08 1.1555334E-24 + 6.6410003E+08 1.1554868E-24 + 6.6420000E+08 1.1554402E-24 + 6.6429997E+08 1.1553937E-24 + 6.6440000E+08 1.1553470E-24 + 6.6450003E+08 1.1553004E-24 + 6.6460000E+08 1.1552539E-24 + 6.6469997E+08 1.1552073E-24 + 6.6480000E+08 1.1551607E-24 + 6.6490003E+08 1.1551140E-24 + 6.6500000E+08 1.1550675E-24 + 6.6509997E+08 1.1550209E-24 + 6.6520000E+08 1.1549743E-24 + 6.6530003E+08 1.1549278E-24 + 6.6540000E+08 1.1548811E-24 + 6.6549997E+08 1.1548346E-24 + 6.6560000E+08 1.1547879E-24 + 6.6570003E+08 1.1547414E-24 + 6.6580000E+08 1.1546948E-24 + 6.6589997E+08 1.1546482E-24 + 6.6600000E+08 1.1546017E-24 + 6.6610003E+08 1.1545550E-24 + 6.6620000E+08 1.1545085E-24 + 6.6629997E+08 1.1544618E-24 + 6.6640000E+08 1.1544153E-24 + 6.6650003E+08 1.1543687E-24 + 6.6660000E+08 1.1543221E-24 + 6.6669997E+08 1.1542755E-24 + 6.6680000E+08 1.1542289E-24 + 6.6690003E+08 1.1541823E-24 + 6.6700000E+08 1.1541357E-24 + 6.6709997E+08 1.1540891E-24 + 6.6720000E+08 1.1540426E-24 + 6.6730003E+08 1.1539959E-24 + 6.6740000E+08 1.1539494E-24 + 6.6749997E+08 1.1539028E-24 + 6.6760000E+08 1.1538562E-24 + 6.6770003E+08 1.1538096E-24 + 6.6780000E+08 1.1537630E-24 + 6.6789997E+08 1.1537165E-24 + 6.6800000E+08 1.1536698E-24 + 6.6810003E+08 1.1536233E-24 + 6.6820000E+08 1.1535766E-24 + 6.6829997E+08 1.1535301E-24 + 6.6840000E+08 1.1534835E-24 + 6.6850003E+08 1.1534369E-24 + 6.6860000E+08 1.1533903E-24 + 6.6869997E+08 1.1533437E-24 + 6.6880000E+08 1.1532971E-24 + 6.6890003E+08 1.1532505E-24 + 6.6900000E+08 1.1532039E-24 + 6.6909997E+08 1.1531574E-24 + 6.6920000E+08 1.1531107E-24 + 6.6930003E+08 1.1530642E-24 + 6.6940000E+08 1.1530175E-24 + 6.6949997E+08 1.1529710E-24 + 6.6960000E+08 1.1529244E-24 + 6.6970003E+08 1.1528778E-24 + 6.6980000E+08 1.1528313E-24 + 6.6989997E+08 1.1527846E-24 + 6.7000000E+08 1.1527381E-24 + 6.7010003E+08 1.1526914E-24 + 6.7020000E+08 1.1526449E-24 + 6.7029997E+08 1.1525983E-24 + 6.7040000E+08 1.1525517E-24 + 6.7050003E+08 1.1525051E-24 + 6.7060000E+08 1.1524585E-24 + 6.7069997E+08 1.1524119E-24 + 6.7080000E+08 1.1523653E-24 + 6.7090003E+08 1.1523187E-24 + 6.7100000E+08 1.1522722E-24 + 6.7109997E+08 1.1522255E-24 + 6.7120000E+08 1.1521790E-24 + 6.7130003E+08 1.1521323E-24 + 6.7140000E+08 1.1520858E-24 + 6.7149997E+08 1.1520393E-24 + 6.7160000E+08 1.1519926E-24 + 6.7170003E+08 1.1519460E-24 + 6.7180000E+08 1.1518994E-24 + 6.7189997E+08 1.1518529E-24 + 6.7200000E+08 1.1518062E-24 + 6.7210003E+08 1.1517596E-24 + 6.7220000E+08 1.1517131E-24 + 6.7229997E+08 1.1516665E-24 + 6.7240000E+08 1.1516199E-24 + 6.7250003E+08 1.1515733E-24 + 6.7260000E+08 1.1515267E-24 + 6.7269997E+08 1.1514801E-24 + 6.7280000E+08 1.1514335E-24 + 6.7290003E+08 1.1513870E-24 + 6.7300000E+08 1.1513403E-24 + 6.7309997E+08 1.1512938E-24 + 6.7320000E+08 1.1512471E-24 + 6.7330003E+08 1.1512006E-24 + 6.7340000E+08 1.1511540E-24 + 6.7349997E+08 1.1511074E-24 + 6.7360000E+08 1.1510609E-24 + 6.7370003E+08 1.1510142E-24 + 6.7380000E+08 1.1509677E-24 + 6.7389997E+08 1.1509210E-24 + 6.7400000E+08 1.1508745E-24 + 6.7410003E+08 1.1508279E-24 + 6.7420000E+08 1.1507813E-24 + 6.7429997E+08 1.1507347E-24 + 6.7440000E+08 1.1506881E-24 + 6.7450003E+08 1.1506415E-24 + 6.7460000E+08 1.1505949E-24 + 6.7469997E+08 1.1505483E-24 + 6.7480000E+08 1.1505018E-24 + 6.7490003E+08 1.1504551E-24 + 6.7500000E+08 1.1504086E-24 + 6.7509997E+08 1.1503620E-24 + 6.7520000E+08 1.1503154E-24 + 6.7530003E+08 1.1502688E-24 + 6.7540000E+08 1.1502222E-24 + 6.7549997E+08 1.1501757E-24 + 6.7560000E+08 1.1501290E-24 + 6.7570003E+08 1.1500825E-24 + 6.7580000E+08 1.1500358E-24 + 6.7589997E+08 1.1499893E-24 + 6.7600000E+08 1.1499427E-24 + 6.7610003E+08 1.1498961E-24 + 6.7620000E+08 1.1498495E-24 + 6.7629997E+08 1.1498029E-24 + 6.7640000E+08 1.1497563E-24 + 6.7650003E+08 1.1497097E-24 + 6.7660000E+08 1.1496631E-24 + 6.7669997E+08 1.1496166E-24 + 6.7680000E+08 1.1495699E-24 + 6.7690003E+08 1.1495234E-24 + 6.7700000E+08 1.1494768E-24 + 6.7709997E+08 1.1494302E-24 + 6.7720000E+08 1.1493837E-24 + 6.7730003E+08 1.1493370E-24 + 6.7740000E+08 1.1492905E-24 + 6.7749997E+08 1.1492438E-24 + 6.7760000E+08 1.1491973E-24 + 6.7770003E+08 1.1491506E-24 + 6.7780000E+08 1.1491041E-24 + 6.7789997E+08 1.1490575E-24 + 6.7800000E+08 1.1490109E-24 + 6.7810003E+08 1.1489643E-24 + 6.7820000E+08 1.1489177E-24 + 6.7829997E+08 1.1488711E-24 + 6.7840000E+08 1.1488245E-24 + 6.7850003E+08 1.1487779E-24 + 6.7860000E+08 1.1487314E-24 + 6.7869997E+08 1.1486848E-24 + 6.7880000E+08 1.1486382E-24 + 6.7890003E+08 1.1485915E-24 + 6.7900000E+08 1.1485450E-24 + 6.7909997E+08 1.1484985E-24 + 6.7920000E+08 1.1484518E-24 + 6.7930003E+08 1.1484052E-24 + 6.7940000E+08 1.1483586E-24 + 6.7949997E+08 1.1483121E-24 + 6.7960000E+08 1.1482654E-24 + 6.7970003E+08 1.1482188E-24 + 6.7980000E+08 1.1481723E-24 + 6.7989997E+08 1.1481257E-24 + 6.8000000E+08 1.1480791E-24 + 6.8010003E+08 1.1480325E-24 + 6.8020000E+08 1.1479859E-24 + 6.8029997E+08 1.1479393E-24 + 6.8040000E+08 1.1478927E-24 + 6.8050003E+08 1.1478462E-24 + 6.8060000E+08 1.1477995E-24 + 6.8069997E+08 1.1477530E-24 + 6.8080000E+08 1.1477063E-24 + 6.8090003E+08 1.1476598E-24 + 6.8100000E+08 1.1476132E-24 + 6.8109997E+08 1.1475666E-24 + 6.8120000E+08 1.1475201E-24 + 6.8130003E+08 1.1474734E-24 + 6.8140000E+08 1.1474269E-24 + 6.8149997E+08 1.1473802E-24 + 6.8160000E+08 1.1473337E-24 + 6.8170003E+08 1.1472871E-24 + 6.8180000E+08 1.1472405E-24 + 6.8189997E+08 1.1471939E-24 + 6.8200000E+08 1.1471473E-24 + 6.8210003E+08 1.1471007E-24 + 6.8220000E+08 1.1470541E-24 + 6.8229997E+08 1.1470076E-24 + 6.8240000E+08 1.1469610E-24 + 6.8250003E+08 1.1469143E-24 + 6.8260000E+08 1.1468678E-24 + 6.8269997E+08 1.1468212E-24 + 6.8280000E+08 1.1467746E-24 + 6.8290003E+08 1.1467280E-24 + 6.8300000E+08 1.1466814E-24 + 6.8309997E+08 1.1466349E-24 + 6.8320000E+08 1.1465882E-24 + 6.8330003E+08 1.1465417E-24 + 6.8340000E+08 1.1464950E-24 + 6.8349997E+08 1.1464485E-24 + 6.8360000E+08 1.1464019E-24 + 6.8370003E+08 1.1463553E-24 + 6.8380000E+08 1.1463087E-24 + 6.8389997E+08 1.1462621E-24 + 6.8400000E+08 1.1462155E-24 + 6.8410003E+08 1.1461689E-24 + 6.8420000E+08 1.1461224E-24 + 6.8429997E+08 1.1460758E-24 + 6.8440000E+08 1.1460292E-24 + 6.8450003E+08 1.1459826E-24 + 6.8460000E+08 1.1459360E-24 + 6.8469997E+08 1.1458894E-24 + 6.8480000E+08 1.1458428E-24 + 6.8490003E+08 1.1457962E-24 + 6.8500000E+08 1.1457497E-24 + 6.8509997E+08 1.1457030E-24 + 6.8520000E+08 1.1456565E-24 + 6.8530003E+08 1.1456098E-24 + 6.8540000E+08 1.1455633E-24 + 6.8549997E+08 1.1455167E-24 + 6.8560000E+08 1.1454701E-24 + 6.8570003E+08 1.1454235E-24 + 6.8580000E+08 1.1453769E-24 + 6.8589997E+08 1.1453304E-24 + 6.8600000E+08 1.1452837E-24 + 6.8610003E+08 1.1452371E-24 + 6.8620000E+08 1.1451906E-24 + 6.8629997E+08 1.1451440E-24 + 6.8640000E+08 1.1450974E-24 + 6.8650003E+08 1.1450507E-24 + 6.8660000E+08 1.1450042E-24 + 6.8669997E+08 1.1449576E-24 + 6.8680000E+08 1.1449110E-24 + 6.8690003E+08 1.1448644E-24 + 6.8700000E+08 1.1448178E-24 + 6.8709997E+08 1.1447713E-24 + 6.8720000E+08 1.1447246E-24 + 6.8730003E+08 1.1446781E-24 + 6.8740000E+08 1.1446315E-24 + 6.8749997E+08 1.1445849E-24 + 6.8760000E+08 1.1445383E-24 + 6.8770003E+08 1.1444917E-24 + 6.8780000E+08 1.1444451E-24 + 6.8789997E+08 1.1443985E-24 + 6.8800000E+08 1.1443519E-24 + 6.8810003E+08 1.1443054E-24 + 6.8820000E+08 1.1442587E-24 + 6.8829997E+08 1.1442122E-24 + 6.8840000E+08 1.1441656E-24 + 6.8850003E+08 1.1441190E-24 + 6.8860000E+08 1.1440724E-24 + 6.8869997E+08 1.1440258E-24 + 6.8880000E+08 1.1439793E-24 + 6.8890003E+08 1.1439326E-24 + 6.8900000E+08 1.1438861E-24 + 6.8909997E+08 1.1438394E-24 + 6.8920000E+08 1.1437929E-24 + 6.8930003E+08 1.1437463E-24 + 6.8940000E+08 1.1436997E-24 + 6.8949997E+08 1.1436531E-24 + 6.8960000E+08 1.1436065E-24 + 6.8970003E+08 1.1435599E-24 + 6.8980000E+08 1.1435133E-24 + 6.8989997E+08 1.1434668E-24 + 6.9000000E+08 1.1434202E-24 + 6.9010003E+08 1.1433735E-24 + 6.9020000E+08 1.1433270E-24 + 6.9029997E+08 1.1432804E-24 + 6.9040000E+08 1.1432338E-24 + 6.9050003E+08 1.1431872E-24 + 6.9060000E+08 1.1431406E-24 + 6.9069997E+08 1.1430941E-24 + 6.9080000E+08 1.1430474E-24 + 6.9090003E+08 1.1430009E-24 + 6.9100000E+08 1.1429542E-24 + 6.9109997E+08 1.1429077E-24 + 6.9120000E+08 1.1428611E-24 + 6.9130003E+08 1.1428145E-24 + 6.9140000E+08 1.1427679E-24 + 6.9149997E+08 1.1427213E-24 + 6.9160000E+08 1.1426747E-24 + 6.9170003E+08 1.1426281E-24 + 6.9180000E+08 1.1425816E-24 + 6.9189997E+08 1.1425350E-24 + 6.9200000E+08 1.1424884E-24 + 6.9210003E+08 1.1424418E-24 + 6.9220000E+08 1.1423952E-24 + 6.9229997E+08 1.1423486E-24 + 6.9240000E+08 1.1423020E-24 + 6.9250003E+08 1.1422554E-24 + 6.9260000E+08 1.1422089E-24 + 6.9269997E+08 1.1421622E-24 + 6.9280000E+08 1.1421157E-24 + 6.9290003E+08 1.1420690E-24 + 6.9300000E+08 1.1420225E-24 + 6.9309997E+08 1.1419760E-24 + 6.9320000E+08 1.1419293E-24 + 6.9330003E+08 1.1418827E-24 + 6.9340000E+08 1.1418361E-24 + 6.9349997E+08 1.1417896E-24 + 6.9360000E+08 1.1417429E-24 + 6.9370003E+08 1.1416963E-24 + 6.9380000E+08 1.1416498E-24 + 6.9389997E+08 1.1416032E-24 + 6.9400000E+08 1.1415566E-24 + 6.9410003E+08 1.1415099E-24 + 6.9420000E+08 1.1414634E-24 + 6.9429997E+08 1.1414168E-24 + 6.9440000E+08 1.1413702E-24 + 6.9450003E+08 1.1413236E-24 + 6.9460000E+08 1.1412770E-24 + 6.9469997E+08 1.1412305E-24 + 6.9480000E+08 1.1411838E-24 + 6.9490003E+08 1.1411373E-24 + 6.9500000E+08 1.1410907E-24 + 6.9509997E+08 1.1410441E-24 + 6.9520000E+08 1.1409975E-24 + 6.9530003E+08 1.1409509E-24 + 6.9540000E+08 1.1409043E-24 + 6.9549997E+08 1.1408577E-24 + 6.9560000E+08 1.1408111E-24 + 6.9570003E+08 1.1407646E-24 + 6.9580000E+08 1.1407179E-24 + 6.9589997E+08 1.1406714E-24 + 6.9600000E+08 1.1406248E-24 + 6.9610003E+08 1.1405782E-24 + 6.9620000E+08 1.1405316E-24 + 6.9629997E+08 1.1404850E-24 + 6.9640000E+08 1.1404385E-24 + 6.9650003E+08 1.1403918E-24 + 6.9660000E+08 1.1403453E-24 + 6.9669997E+08 1.1402986E-24 + 6.9680000E+08 1.1402521E-24 + 6.9690003E+08 1.1402055E-24 + 6.9700000E+08 1.1401589E-24 + 6.9709997E+08 1.1401123E-24 + 6.9720000E+08 1.1400657E-24 + 6.9730003E+08 1.1400191E-24 + 6.9740000E+08 1.1399725E-24 + 6.9749997E+08 1.1399260E-24 + 6.9760000E+08 1.1398794E-24 + 6.9770003E+08 1.1398327E-24 + 6.9780000E+08 1.1397862E-24 + 6.9789997E+08 1.1397396E-24 + 6.9800000E+08 1.1396930E-24 + 6.9810003E+08 1.1396464E-24 + 6.9820000E+08 1.1395998E-24 + 6.9829997E+08 1.1395533E-24 + 6.9840000E+08 1.1395066E-24 + 6.9850003E+08 1.1394601E-24 + 6.9860000E+08 1.1394134E-24 + 6.9869997E+08 1.1393669E-24 + 6.9880000E+08 1.1393203E-24 + 6.9890003E+08 1.1392737E-24 + 6.9900000E+08 1.1392271E-24 + 6.9909997E+08 1.1391805E-24 + 6.9920000E+08 1.1391339E-24 + 6.9930003E+08 1.1390873E-24 + 6.9940000E+08 1.1390408E-24 + 6.9949997E+08 1.1389942E-24 + 6.9960000E+08 1.1389476E-24 + 6.9970003E+08 1.1389010E-24 + 6.9980000E+08 1.1388544E-24 + 6.9989997E+08 1.1388078E-24 + 7.0000000E+08 1.1387612E-24 + 7.0010003E+08 1.1387146E-24 + 7.0020000E+08 1.1386681E-24 + 7.0029997E+08 1.1386215E-24 + 7.0040000E+08 1.1385749E-24 + 7.0050003E+08 1.1385282E-24 + 7.0060000E+08 1.1384817E-24 + 7.0069997E+08 1.1384351E-24 + 7.0080000E+08 1.1383885E-24 + 7.0090003E+08 1.1383419E-24 + 7.0100000E+08 1.1382953E-24 + 7.0109997E+08 1.1382488E-24 + 7.0120000E+08 1.1382021E-24 + 7.0130003E+08 1.1381555E-24 + 7.0140000E+08 1.1381090E-24 + 7.0149997E+08 1.1380624E-24 + 7.0160000E+08 1.1380158E-24 + 7.0170003E+08 1.1379691E-24 + 7.0180000E+08 1.1379226E-24 + 7.0189997E+08 1.1378760E-24 + 7.0200000E+08 1.1378294E-24 + 7.0210003E+08 1.1377828E-24 + 7.0220000E+08 1.1377362E-24 + 7.0229997E+08 1.1376897E-24 + 7.0240000E+08 1.1376430E-24 + 7.0250003E+08 1.1375965E-24 + 7.0260000E+08 1.1375498E-24 + 7.0269997E+08 1.1375033E-24 + 7.0280000E+08 1.1374567E-24 + 7.0290003E+08 1.1374101E-24 + 7.0300000E+08 1.1373635E-24 + 7.0309997E+08 1.1373169E-24 + 7.0320000E+08 1.1372703E-24 + 7.0330003E+08 1.1372238E-24 + 7.0340000E+08 1.1371771E-24 + 7.0349997E+08 1.1371306E-24 + 7.0360000E+08 1.1370840E-24 + 7.0370003E+08 1.1370374E-24 + 7.0380000E+08 1.1369908E-24 + 7.0389997E+08 1.1369442E-24 + 7.0400000E+08 1.1368977E-24 + 7.0410003E+08 1.1368510E-24 + 7.0420000E+08 1.1368045E-24 + 7.0429997E+08 1.1367578E-24 + 7.0440000E+08 1.1367113E-24 + 7.0450003E+08 1.1366646E-24 + 7.0460000E+08 1.1366181E-24 + 7.0469997E+08 1.1365716E-24 + 7.0480000E+08 1.1365249E-24 + 7.0490003E+08 1.1364783E-24 + 7.0500000E+08 1.1364317E-24 + 7.0509997E+08 1.1363852E-24 + 7.0520000E+08 1.1363386E-24 + 7.0530003E+08 1.1362919E-24 + 7.0540000E+08 1.1362454E-24 + 7.0549997E+08 1.1361988E-24 + 7.0560000E+08 1.1361522E-24 + 7.0570003E+08 1.1361056E-24 + 7.0580000E+08 1.1360590E-24 + 7.0589997E+08 1.1360125E-24 + 7.0600000E+08 1.1359658E-24 + 7.0610003E+08 1.1359193E-24 + 7.0620000E+08 1.1358726E-24 + 7.0629997E+08 1.1358261E-24 + 7.0640000E+08 1.1357794E-24 + 7.0650003E+08 1.1357329E-24 + 7.0660000E+08 1.1356864E-24 + 7.0669997E+08 1.1356397E-24 + 7.0680000E+08 1.1355932E-24 + 7.0690003E+08 1.1355465E-24 + 7.0700000E+08 1.1355000E-24 + 7.0709997E+08 1.1354534E-24 + 7.0720000E+08 1.1354068E-24 + 7.0730003E+08 1.1353602E-24 + 7.0740000E+08 1.1353136E-24 + 7.0749997E+08 1.1352670E-24 + 7.0760000E+08 1.1352204E-24 + 7.0770003E+08 1.1351738E-24 + 7.0780000E+08 1.1351273E-24 + 7.0789997E+08 1.1350807E-24 + 7.0800000E+08 1.1350341E-24 + 7.0810003E+08 1.1349874E-24 + 7.0820000E+08 1.1349409E-24 + 7.0829997E+08 1.1348943E-24 + 7.0840000E+08 1.1348477E-24 + 7.0850003E+08 1.1348011E-24 + 7.0860000E+08 1.1347545E-24 + 7.0869997E+08 1.1347080E-24 + 7.0880000E+08 1.1346613E-24 + 7.0890003E+08 1.1346147E-24 + 7.0900000E+08 1.1345682E-24 + 7.0909997E+08 1.1345216E-24 + 7.0920000E+08 1.1344750E-24 + 7.0930003E+08 1.1344283E-24 + 7.0940000E+08 1.1343818E-24 + 7.0949997E+08 1.1343352E-24 + 7.0960000E+08 1.1342886E-24 + 7.0970003E+08 1.1342420E-24 + 7.0980000E+08 1.1341954E-24 + 7.0989997E+08 1.1341489E-24 + 7.1000000E+08 1.1341022E-24 + 7.1010003E+08 1.1340557E-24 + 7.1020000E+08 1.1340090E-24 + 7.1029997E+08 1.1339625E-24 + 7.1040000E+08 1.1339159E-24 + 7.1050003E+08 1.1338693E-24 + 7.1060000E+08 1.1338227E-24 + 7.1069997E+08 1.1337761E-24 + 7.1080000E+08 1.1337296E-24 + 7.1090003E+08 1.1336830E-24 + 7.1100000E+08 1.1336364E-24 + 7.1109997E+08 1.1335898E-24 + 7.1120000E+08 1.1335432E-24 + 7.1130003E+08 1.1334966E-24 + 7.1140000E+08 1.1334500E-24 + 7.1149997E+08 1.1334034E-24 + 7.1160000E+08 1.1333569E-24 + 7.1170003E+08 1.1333102E-24 + 7.1180000E+08 1.1332637E-24 + 7.1189997E+08 1.1332170E-24 + 7.1200000E+08 1.1331705E-24 + 7.1210003E+08 1.1331238E-24 + 7.1220000E+08 1.1330773E-24 + 7.1229997E+08 1.1330308E-24 + 7.1240000E+08 1.1329841E-24 + 7.1250003E+08 1.1329375E-24 + 7.1260000E+08 1.1328909E-24 + 7.1269997E+08 1.1328444E-24 + 7.1280000E+08 1.1327978E-24 + 7.1290003E+08 1.1327512E-24 + 7.1300000E+08 1.1327046E-24 + 7.1309997E+08 1.1326580E-24 + 7.1320000E+08 1.1326114E-24 + 7.1330003E+08 1.1325648E-24 + 7.1340000E+08 1.1325182E-24 + 7.1349997E+08 1.1324717E-24 + 7.1360000E+08 1.1324250E-24 + 7.1370003E+08 1.1323785E-24 + 7.1380000E+08 1.1323318E-24 + 7.1389997E+08 1.1322853E-24 + 7.1400000E+08 1.1322386E-24 + 7.1410003E+08 1.1321921E-24 + 7.1420000E+08 1.1321456E-24 + 7.1429997E+08 1.1320989E-24 + 7.1440000E+08 1.1320524E-24 + 7.1450003E+08 1.1320057E-24 + 7.1460000E+08 1.1319592E-24 + 7.1469997E+08 1.1319126E-24 + 7.1480000E+08 1.1318660E-24 + 7.1490003E+08 1.1318194E-24 + 7.1500000E+08 1.1317728E-24 + 7.1509997E+08 1.1317262E-24 + 7.1520000E+08 1.1316796E-24 + 7.1530003E+08 1.1316330E-24 + 7.1540000E+08 1.1315865E-24 + 7.1549997E+08 1.1315399E-24 + 7.1560000E+08 1.1314933E-24 + 7.1570003E+08 1.1314466E-24 + 7.1580000E+08 1.1314001E-24 + 7.1589997E+08 1.1313535E-24 + 7.1600000E+08 1.1313069E-24 + 7.1610003E+08 1.1312603E-24 + 7.1620000E+08 1.1312137E-24 + 7.1629997E+08 1.1311672E-24 + 7.1640000E+08 1.1311205E-24 + 7.1650003E+08 1.1310739E-24 + 7.1660000E+08 1.1310274E-24 + 7.1669997E+08 1.1309808E-24 + 7.1680000E+08 1.1309342E-24 + 7.1690003E+08 1.1308876E-24 + 7.1700000E+08 1.1308410E-24 + 7.1709997E+08 1.1307944E-24 + 7.1720000E+08 1.1307478E-24 + 7.1730003E+08 1.1307013E-24 + 7.1740000E+08 1.1306546E-24 + 7.1749997E+08 1.1306081E-24 + 7.1760000E+08 1.1305614E-24 + 7.1770003E+08 1.1305149E-24 + 7.1780000E+08 1.1304682E-24 + 7.1789997E+08 1.1304217E-24 + 7.1800000E+08 1.1303752E-24 + 7.1810003E+08 1.1303285E-24 + 7.1820000E+08 1.1302819E-24 + 7.1829997E+08 1.1302353E-24 + 7.1840000E+08 1.1301888E-24 + 7.1850003E+08 1.1301422E-24 + 7.1860000E+08 1.1300956E-24 + 7.1869997E+08 1.1300490E-24 + 7.1880000E+08 1.1300024E-24 + 7.1890003E+08 1.1299558E-24 + 7.1900000E+08 1.1299092E-24 + 7.1909997E+08 1.1298626E-24 + 7.1920000E+08 1.1298161E-24 + 7.1930003E+08 1.1297694E-24 + 7.1940000E+08 1.1297229E-24 + 7.1949997E+08 1.1296762E-24 + 7.1960000E+08 1.1296297E-24 + 7.1970003E+08 1.1295830E-24 + 7.1980000E+08 1.1295365E-24 + 7.1989997E+08 1.1294900E-24 + 7.2000000E+08 1.1294433E-24 + 7.2010003E+08 1.1293968E-24 + 7.2020000E+08 1.1293501E-24 + 7.2029997E+08 1.1293036E-24 + 7.2040000E+08 1.1292569E-24 + 7.2050003E+08 1.1292104E-24 + 7.2060000E+08 1.1291638E-24 + 7.2069997E+08 1.1291172E-24 + 7.2080000E+08 1.1290706E-24 + 7.2090003E+08 1.1290240E-24 + 7.2100000E+08 1.1289774E-24 + 7.2109997E+08 1.1289309E-24 + 7.2120000E+08 1.1288842E-24 + 7.2130003E+08 1.1288377E-24 + 7.2140000E+08 1.1287910E-24 + 7.2149997E+08 1.1287445E-24 + 7.2160000E+08 1.1286978E-24 + 7.2170003E+08 1.1286513E-24 + 7.2180000E+08 1.1286048E-24 + 7.2189997E+08 1.1285581E-24 + 7.2200000E+08 1.1285116E-24 + 7.2210003E+08 1.1284649E-24 + 7.2220000E+08 1.1284184E-24 + 7.2229997E+08 1.1283717E-24 + 7.2240000E+08 1.1283252E-24 + 7.2250003E+08 1.1282786E-24 + 7.2260000E+08 1.1282320E-24 + 7.2269997E+08 1.1281855E-24 + 7.2280000E+08 1.1281388E-24 + 7.2290003E+08 1.1280922E-24 + 7.2300000E+08 1.1280457E-24 + 7.2309997E+08 1.1279991E-24 + 7.2320000E+08 1.1279525E-24 + 7.2330003E+08 1.1279058E-24 + 7.2340000E+08 1.1278593E-24 + 7.2349997E+08 1.1278127E-24 + 7.2360000E+08 1.1277661E-24 + 7.2370003E+08 1.1277195E-24 + 7.2380000E+08 1.1276729E-24 + 7.2389997E+08 1.1276264E-24 + 7.2400000E+08 1.1275797E-24 + 7.2410003E+08 1.1275332E-24 + 7.2420000E+08 1.1274865E-24 + 7.2429997E+08 1.1274400E-24 + 7.2440000E+08 1.1273934E-24 + 7.2450003E+08 1.1273468E-24 + 7.2460000E+08 1.1273002E-24 + 7.2469997E+08 1.1272536E-24 + 7.2480000E+08 1.1272070E-24 + 7.2490003E+08 1.1271605E-24 + 7.2500000E+08 1.1271138E-24 + 7.2509997E+08 1.1270673E-24 + 7.2520000E+08 1.1270206E-24 + 7.2530003E+08 1.1269741E-24 + 7.2540000E+08 1.1269274E-24 + 7.2549997E+08 1.1268809E-24 + 7.2560000E+08 1.1268343E-24 + 7.2570003E+08 1.1267877E-24 + 7.2580000E+08 1.1267412E-24 + 7.2589997E+08 1.1266945E-24 + 7.2600000E+08 1.1266480E-24 + 7.2610003E+08 1.1266013E-24 + 7.2620000E+08 1.1265548E-24 + 7.2629997E+08 1.1265082E-24 + 7.2640000E+08 1.1264616E-24 + 7.2650003E+08 1.1264150E-24 + 7.2660000E+08 1.1263684E-24 + 7.2669997E+08 1.1263218E-24 + 7.2680000E+08 1.1262753E-24 + 7.2690003E+08 1.1262286E-24 + 7.2700000E+08 1.1261821E-24 + 7.2709997E+08 1.1261355E-24 + 7.2720000E+08 1.1260889E-24 + 7.2730003E+08 1.1260422E-24 + 7.2740000E+08 1.1259957E-24 + 7.2749997E+08 1.1259492E-24 + 7.2760000E+08 1.1259025E-24 + 7.2770003E+08 1.1258560E-24 + 7.2780000E+08 1.1258093E-24 + 7.2789997E+08 1.1257628E-24 + 7.2800000E+08 1.1257161E-24 + 7.2810003E+08 1.1256696E-24 + 7.2820000E+08 1.1256230E-24 + 7.2829997E+08 1.1255764E-24 + 7.2840000E+08 1.1255298E-24 + 7.2850003E+08 1.1254832E-24 + 7.2860000E+08 1.1254366E-24 + 7.2869997E+08 1.1253901E-24 + 7.2880000E+08 1.1253434E-24 + 7.2890003E+08 1.1252969E-24 + 7.2900000E+08 1.1252503E-24 + 7.2909997E+08 1.1252037E-24 + 7.2920000E+08 1.1251571E-24 + 7.2930003E+08 1.1251105E-24 + 7.2940000E+08 1.1250640E-24 + 7.2949997E+08 1.1250173E-24 + 7.2960000E+08 1.1249708E-24 + 7.2970003E+08 1.1249241E-24 + 7.2980000E+08 1.1248776E-24 + 7.2989997E+08 1.1248309E-24 + 7.3000000E+08 1.1247844E-24 + 7.3010003E+08 1.1247378E-24 + 7.3020000E+08 1.1246912E-24 + 7.3029997E+08 1.1246447E-24 + 7.3040000E+08 1.1245980E-24 + 7.3050003E+08 1.1245514E-24 + 7.3060000E+08 1.1245049E-24 + 7.3069997E+08 1.1244583E-24 + 7.3080000E+08 1.1244117E-24 + 7.3090003E+08 1.1243650E-24 + 7.3100000E+08 1.1243185E-24 + 7.3109997E+08 1.1242719E-24 + 7.3120000E+08 1.1242253E-24 + 7.3130003E+08 1.1241788E-24 + 7.3140000E+08 1.1241321E-24 + 7.3149997E+08 1.1240856E-24 + 7.3160000E+08 1.1240389E-24 + 7.3170003E+08 1.1239924E-24 + 7.3180000E+08 1.1239457E-24 + 7.3189997E+08 1.1238992E-24 + 7.3200000E+08 1.1238526E-24 + 7.3210003E+08 1.1238060E-24 + 7.3220000E+08 1.1237594E-24 + 7.3229997E+08 1.1237128E-24 + 7.3240000E+08 1.1236662E-24 + 7.3250003E+08 1.1236197E-24 + 7.3260000E+08 1.1235730E-24 + 7.3269997E+08 1.1235265E-24 + 7.3280000E+08 1.1234799E-24 + 7.3290003E+08 1.1234333E-24 + 7.3300000E+08 1.1233867E-24 + 7.3309997E+08 1.1233424E-24 + 7.3320000E+08 1.1233081E-24 + 7.3330003E+08 1.1232736E-24 + 7.3340000E+08 1.1232393E-24 + 7.3349997E+08 1.1232049E-24 + 7.3360000E+08 1.1231706E-24 + 7.3370003E+08 1.1231362E-24 + 7.3380000E+08 1.1231019E-24 + 7.3389997E+08 1.1230674E-24 + 7.3400000E+08 1.1230331E-24 + 7.3410003E+08 1.1229987E-24 + 7.3420000E+08 1.1229644E-24 + 7.3429997E+08 1.1229301E-24 + 7.3440000E+08 1.1228957E-24 + 7.3450003E+08 1.1228613E-24 + 7.3460000E+08 1.1228269E-24 + 7.3469997E+08 1.1227926E-24 + 7.3480000E+08 1.1227582E-24 + 7.3490003E+08 1.1227239E-24 + 7.3500000E+08 1.1226895E-24 + 7.3509997E+08 1.1226552E-24 + 7.3520000E+08 1.1226208E-24 + 7.3530003E+08 1.1225864E-24 + 7.3540000E+08 1.1225521E-24 + 7.3549997E+08 1.1225177E-24 + 7.3560000E+08 1.1224834E-24 + 7.3570003E+08 1.1224490E-24 + 7.3580000E+08 1.1224147E-24 + 7.3589997E+08 1.1223803E-24 + 7.3600000E+08 1.1223459E-24 + 7.3610003E+08 1.1223115E-24 + 7.3620000E+08 1.1222772E-24 + 7.3629997E+08 1.1222429E-24 + 7.3640000E+08 1.1222085E-24 + 7.3650003E+08 1.1221741E-24 + 7.3660000E+08 1.1221397E-24 + 7.3669997E+08 1.1221054E-24 + 7.3680000E+08 1.1220710E-24 + 7.3690003E+08 1.1220367E-24 + 7.3700000E+08 1.1220023E-24 + 7.3709997E+08 1.1219680E-24 + 7.3720000E+08 1.1219336E-24 + 7.3730003E+08 1.1218992E-24 + 7.3740000E+08 1.1218649E-24 + 7.3749997E+08 1.1218305E-24 + 7.3760000E+08 1.1217962E-24 + 7.3770003E+08 1.1217618E-24 + 7.3780000E+08 1.1217275E-24 + 7.3789997E+08 1.1216931E-24 + 7.3800000E+08 1.1216587E-24 + 7.3810003E+08 1.1216243E-24 + 7.3820000E+08 1.1215900E-24 + 7.3829997E+08 1.1215557E-24 + 7.3840000E+08 1.1215213E-24 + 7.3850003E+08 1.1214870E-24 + 7.3860000E+08 1.1214526E-24 + 7.3869997E+08 1.1214182E-24 + 7.3880000E+08 1.1213838E-24 + 7.3890003E+08 1.1213495E-24 + 7.3900000E+08 1.1213151E-24 + 7.3909997E+08 1.1212808E-24 + 7.3920000E+08 1.1212464E-24 + 7.3930003E+08 1.1212120E-24 + 7.3940000E+08 1.1211776E-24 + 7.3949997E+08 1.1211433E-24 + 7.3960000E+08 1.1211090E-24 + 7.3970003E+08 1.1210746E-24 + 7.3980000E+08 1.1210403E-24 + 7.3989997E+08 1.1210059E-24 + 7.4000000E+08 1.1209715E-24 + 7.4010003E+08 1.1209371E-24 + 7.4020000E+08 1.1209028E-24 + 7.4029997E+08 1.1208685E-24 + 7.4040000E+08 1.1208341E-24 + 7.4050003E+08 1.1207997E-24 + 7.4060000E+08 1.1207654E-24 + 7.4069997E+08 1.1207310E-24 + 7.4080000E+08 1.1206966E-24 + 7.4090003E+08 1.1206623E-24 + 7.4100000E+08 1.1206279E-24 + 7.4109997E+08 1.1205936E-24 + 7.4120000E+08 1.1205592E-24 + 7.4130003E+08 1.1205249E-24 + 7.4140000E+08 1.1204905E-24 + 7.4149997E+08 1.1204561E-24 + 7.4160000E+08 1.1204218E-24 + 7.4170003E+08 1.1203874E-24 + 7.4180000E+08 1.1203531E-24 + 7.4189997E+08 1.1203187E-24 + 7.4200000E+08 1.1202843E-24 + 7.4210003E+08 1.1202499E-24 + 7.4220000E+08 1.1202156E-24 + 7.4229997E+08 1.1201813E-24 + 7.4240000E+08 1.1201469E-24 + 7.4250003E+08 1.1201125E-24 + 7.4260000E+08 1.1200782E-24 + 7.4269997E+08 1.1200438E-24 + 7.4280000E+08 1.1200094E-24 + 7.4290003E+08 1.1199751E-24 + 7.4300000E+08 1.1199407E-24 + 7.4309997E+08 1.1199064E-24 + 7.4320000E+08 1.1198720E-24 + 7.4330003E+08 1.1198377E-24 + 7.4340000E+08 1.1198032E-24 + 7.4349997E+08 1.1197689E-24 + 7.4360000E+08 1.1197346E-24 + 7.4370003E+08 1.1197002E-24 + 7.4380000E+08 1.1196659E-24 + 7.4389997E+08 1.1196315E-24 + 7.4400000E+08 1.1195972E-24 + 7.4410003E+08 1.1195627E-24 + 7.4420000E+08 1.1195284E-24 + 7.4429997E+08 1.1194941E-24 + 7.4440000E+08 1.1194597E-24 + 7.4450003E+08 1.1194253E-24 + 7.4460000E+08 1.1193910E-24 + 7.4469997E+08 1.1193566E-24 + 7.4480000E+08 1.1193222E-24 + 7.4490003E+08 1.1192879E-24 + 7.4500000E+08 1.1192535E-24 + 7.4509997E+08 1.1192192E-24 + 7.4520000E+08 1.1191848E-24 + 7.4530003E+08 1.1191505E-24 + 7.4540000E+08 1.1191160E-24 + 7.4549997E+08 1.1190817E-24 + 7.4560000E+08 1.1190474E-24 + 7.4570003E+08 1.1190130E-24 + 7.4580000E+08 1.1189787E-24 + 7.4589997E+08 1.1189443E-24 + 7.4600000E+08 1.1189100E-24 + 7.4610003E+08 1.1188755E-24 + 7.4620000E+08 1.1188412E-24 + 7.4629997E+08 1.1188069E-24 + 7.4640000E+08 1.1187725E-24 + 7.4650003E+08 1.1187381E-24 + 7.4660000E+08 1.1187038E-24 + 7.4669997E+08 1.1186695E-24 + 7.4680000E+08 1.1186350E-24 + 7.4690003E+08 1.1186006E-24 + 7.4700000E+08 1.1185663E-24 + 7.4709997E+08 1.1185320E-24 + 7.4720000E+08 1.1184976E-24 + 7.4730003E+08 1.1184633E-24 + 7.4740000E+08 1.1184288E-24 + 7.4749997E+08 1.1183945E-24 + 7.4760000E+08 1.1183601E-24 + 7.4770003E+08 1.1183258E-24 + 7.4780000E+08 1.1182915E-24 + 7.4789997E+08 1.1182571E-24 + 7.4800000E+08 1.1182228E-24 + 7.4810003E+08 1.1181883E-24 + 7.4820000E+08 1.1181540E-24 + 7.4829997E+08 1.1181196E-24 + 7.4840000E+08 1.1180853E-24 + 7.4850003E+08 1.1180510E-24 + 7.4860000E+08 1.1180166E-24 + 7.4869997E+08 1.1179823E-24 + 7.4880000E+08 1.1179478E-24 + 7.4890003E+08 1.1179135E-24 + 7.4900000E+08 1.1178791E-24 + 7.4909997E+08 1.1178448E-24 + 7.4920000E+08 1.1178104E-24 + 7.4930003E+08 1.1177761E-24 + 7.4940000E+08 1.1177417E-24 + 7.4949997E+08 1.1177073E-24 + 7.4960000E+08 1.1176729E-24 + 7.4970003E+08 1.1176386E-24 + 7.4980000E+08 1.1176043E-24 + 7.4989997E+08 1.1175699E-24 + 7.5000000E+08 1.1175356E-24 + 7.5010003E+08 1.1175011E-24 + 7.5020000E+08 1.1174668E-24 + 7.5029997E+08 1.1174324E-24 + 7.5040000E+08 1.1173981E-24 + 7.5050003E+08 1.1173637E-24 + 7.5060000E+08 1.1173294E-24 + 7.5069997E+08 1.1172951E-24 + 7.5080000E+08 1.1172606E-24 + 7.5090003E+08 1.1172263E-24 + 7.5100000E+08 1.1171919E-24 + 7.5109997E+08 1.1171576E-24 + 7.5120000E+08 1.1171232E-24 + 7.5130003E+08 1.1170889E-24 + 7.5140000E+08 1.1170546E-24 + 7.5149997E+08 1.1170201E-24 + 7.5160000E+08 1.1169858E-24 + 7.5170003E+08 1.1169514E-24 + 7.5180000E+08 1.1169171E-24 + 7.5189997E+08 1.1168827E-24 + 7.5200000E+08 1.1168484E-24 + 7.5210003E+08 1.1168140E-24 + 7.5220000E+08 1.1167796E-24 + 7.5229997E+08 1.1167453E-24 + 7.5240000E+08 1.1167109E-24 + 7.5250003E+08 1.1166765E-24 + 7.5260000E+08 1.1166422E-24 + 7.5269997E+08 1.1166079E-24 + 7.5280000E+08 1.1165734E-24 + 7.5290003E+08 1.1165391E-24 + 7.5300000E+08 1.1165047E-24 + 7.5309997E+08 1.1164704E-24 + 7.5320000E+08 1.1164360E-24 + 7.5330003E+08 1.1164017E-24 + 7.5340000E+08 1.1163674E-24 + 7.5349997E+08 1.1163329E-24 + 7.5360000E+08 1.1162986E-24 + 7.5370003E+08 1.1162642E-24 + 7.5380000E+08 1.1162299E-24 + 7.5389997E+08 1.1161955E-24 + 7.5400000E+08 1.1161612E-24 + 7.5410003E+08 1.1161268E-24 + 7.5420000E+08 1.1160924E-24 + 7.5429997E+08 1.1160581E-24 + 7.5440000E+08 1.1160237E-24 + 7.5450003E+08 1.1159893E-24 + 7.5460000E+08 1.1159550E-24 + 7.5469997E+08 1.1159207E-24 + 7.5480000E+08 1.1158863E-24 + 7.5490003E+08 1.1158519E-24 + 7.5500000E+08 1.1158175E-24 + 7.5509997E+08 1.1157832E-24 + 7.5520000E+08 1.1157488E-24 + 7.5530003E+08 1.1157145E-24 + 7.5540000E+08 1.1156801E-24 + 7.5549997E+08 1.1156457E-24 + 7.5560000E+08 1.1156114E-24 + 7.5570003E+08 1.1155770E-24 + 7.5580000E+08 1.1155427E-24 + 7.5589997E+08 1.1155083E-24 + 7.5600000E+08 1.1154740E-24 + 7.5610003E+08 1.1154396E-24 + 7.5620000E+08 1.1154052E-24 + 7.5629997E+08 1.1153709E-24 + 7.5640000E+08 1.1153365E-24 + 7.5650003E+08 1.1153021E-24 + 7.5660000E+08 1.1152678E-24 + 7.5669997E+08 1.1152335E-24 + 7.5680000E+08 1.1151991E-24 + 7.5690003E+08 1.1151647E-24 + 7.5700000E+08 1.1151303E-24 + 7.5709997E+08 1.1150960E-24 + 7.5720000E+08 1.1150616E-24 + 7.5730003E+08 1.1150273E-24 + 7.5740000E+08 1.1149929E-24 + 7.5749997E+08 1.1149585E-24 + 7.5760000E+08 1.1149241E-24 + 7.5770003E+08 1.1148898E-24 + 7.5780000E+08 1.1148555E-24 + 7.5789997E+08 1.1148211E-24 + 7.5800000E+08 1.1147868E-24 + 7.5810003E+08 1.1147524E-24 + 7.5820000E+08 1.1147180E-24 + 7.5829997E+08 1.1146836E-24 + 7.5840000E+08 1.1146493E-24 + 7.5850003E+08 1.1146149E-24 + 7.5860000E+08 1.1145806E-24 + 7.5869997E+08 1.1145463E-24 + 7.5880000E+08 1.1145119E-24 + 7.5890003E+08 1.1144774E-24 + 7.5900000E+08 1.1144431E-24 + 7.5909997E+08 1.1144088E-24 + 7.5920000E+08 1.1143744E-24 + 7.5930003E+08 1.1143401E-24 + 7.5940000E+08 1.1143057E-24 + 7.5949997E+08 1.1142714E-24 + 7.5960000E+08 1.1142369E-24 + 7.5970003E+08 1.1142026E-24 + 7.5980000E+08 1.1141683E-24 + 7.5989997E+08 1.1141339E-24 + 7.6000000E+08 1.1140996E-24 + 7.6010003E+08 1.1140652E-24 + 7.6020000E+08 1.1140308E-24 + 7.6029997E+08 1.1139964E-24 + 7.6040000E+08 1.1139621E-24 + 7.6050003E+08 1.1139277E-24 + 7.6060000E+08 1.1138934E-24 + 7.6069997E+08 1.1138591E-24 + 7.6080000E+08 1.1138247E-24 + 7.6090003E+08 1.1137902E-24 + 7.6100000E+08 1.1137559E-24 + 7.6109997E+08 1.1137216E-24 + 7.6120000E+08 1.1136872E-24 + 7.6130003E+08 1.1136529E-24 + 7.6140000E+08 1.1136185E-24 + 7.6149997E+08 1.1135842E-24 + 7.6160000E+08 1.1135497E-24 + 7.6170003E+08 1.1135154E-24 + 7.6180000E+08 1.1134810E-24 + 7.6189997E+08 1.1134467E-24 + 7.6200000E+08 1.1134124E-24 + 7.6210003E+08 1.1133780E-24 + 7.6220000E+08 1.1133437E-24 + 7.6229997E+08 1.1133092E-24 + 7.6240000E+08 1.1132749E-24 + 7.6250003E+08 1.1132405E-24 + 7.6260000E+08 1.1132062E-24 + 7.6269997E+08 1.1131719E-24 + 7.6280000E+08 1.1131375E-24 + 7.6290003E+08 1.1131031E-24 + 7.6300000E+08 1.1130687E-24 + 7.6309997E+08 1.1130344E-24 + 7.6320000E+08 1.1130000E-24 + 7.6330003E+08 1.1129657E-24 + 7.6340000E+08 1.1129313E-24 + 7.6349997E+08 1.1128970E-24 + 7.6360000E+08 1.1128625E-24 + 7.6370003E+08 1.1128282E-24 + 7.6380000E+08 1.1127938E-24 + 7.6389997E+08 1.1127595E-24 + 7.6400000E+08 1.1127251E-24 + 7.6410003E+08 1.1126908E-24 + 7.6420000E+08 1.1126565E-24 + 7.6429997E+08 1.1126220E-24 + 7.6440000E+08 1.1125877E-24 + 7.6450003E+08 1.1125533E-24 + 7.6460000E+08 1.1125190E-24 + 7.6469997E+08 1.1124846E-24 + 7.6480000E+08 1.1124503E-24 + 7.6490003E+08 1.1124160E-24 + 7.6500000E+08 1.1123815E-24 + 7.6509997E+08 1.1123472E-24 + 7.6520000E+08 1.1123128E-24 + 7.6530003E+08 1.1122785E-24 + 7.6540000E+08 1.1122441E-24 + 7.6549997E+08 1.1122098E-24 + 7.6560000E+08 1.1121754E-24 + 7.6570003E+08 1.1121410E-24 + 7.6580000E+08 1.1121067E-24 + 7.6589997E+08 1.1120723E-24 + 7.6600000E+08 1.1120380E-24 + 7.6610003E+08 1.1120036E-24 + 7.6620000E+08 1.1119693E-24 + 7.6629997E+08 1.1119349E-24 + 7.6640000E+08 1.1119005E-24 + 7.6650003E+08 1.1118661E-24 + 7.6660000E+08 1.1118318E-24 + 7.6669997E+08 1.1117975E-24 + 7.6680000E+08 1.1117631E-24 + 7.6690003E+08 1.1117288E-24 + 7.6700000E+08 1.1116943E-24 + 7.6709997E+08 1.1116600E-24 + 7.6720000E+08 1.1116256E-24 + 7.6730003E+08 1.1115913E-24 + 7.6740000E+08 1.1115569E-24 + 7.6749997E+08 1.1115226E-24 + 7.6760000E+08 1.1114883E-24 + 7.6770003E+08 1.1114538E-24 + 7.6780000E+08 1.1114195E-24 + 7.6789997E+08 1.1113851E-24 + 7.6800000E+08 1.1113508E-24 + 7.6810003E+08 1.1113164E-24 + 7.6820000E+08 1.1112821E-24 + 7.6829997E+08 1.1112476E-24 + 7.6840000E+08 1.1112133E-24 + 7.6850003E+08 1.1111789E-24 + 7.6860000E+08 1.1111446E-24 + 7.6869997E+08 1.1111103E-24 + 7.6880000E+08 1.1110759E-24 + 7.6890003E+08 1.1110415E-24 + 7.6900000E+08 1.1110071E-24 + 7.6909997E+08 1.1109728E-24 + 7.6920000E+08 1.1109384E-24 + 7.6930003E+08 1.1109041E-24 + 7.6940000E+08 1.1108697E-24 + 7.6949997E+08 1.1108354E-24 + 7.6960000E+08 1.1108010E-24 + 7.6970003E+08 1.1107666E-24 + 7.6980000E+08 1.1107323E-24 + 7.6989997E+08 1.1106979E-24 + 7.7000000E+08 1.1106636E-24 + 7.7010003E+08 1.1106292E-24 + 7.7020000E+08 1.1105949E-24 + 7.7029997E+08 1.1105605E-24 + 7.7040000E+08 1.1105261E-24 + 7.7050003E+08 1.1104917E-24 + 7.7060000E+08 1.1104574E-24 + 7.7069997E+08 1.1104231E-24 + 7.7080000E+08 1.1103887E-24 + 7.7090003E+08 1.1103543E-24 + 7.7100000E+08 1.1103199E-24 + 7.7109997E+08 1.1102856E-24 + 7.7120000E+08 1.1102512E-24 + 7.7130003E+08 1.1102169E-24 + 7.7140000E+08 1.1101825E-24 + 7.7149997E+08 1.1101482E-24 + 7.7160000E+08 1.1101138E-24 + 7.7170003E+08 1.1100794E-24 + 7.7180000E+08 1.1100450E-24 + 7.7189997E+08 1.1100107E-24 + 7.7200000E+08 1.1099764E-24 + 7.7210003E+08 1.1099420E-24 + 7.7220000E+08 1.1099077E-24 + 7.7229997E+08 1.1098733E-24 + 7.7240000E+08 1.1098389E-24 + 7.7250003E+08 1.1098045E-24 + 7.7260000E+08 1.1097702E-24 + 7.7269997E+08 1.1097359E-24 + 7.7280000E+08 1.1097015E-24 + 7.7290003E+08 1.1096671E-24 + 7.7300000E+08 1.1096328E-24 + 7.7309997E+08 1.1095984E-24 + 7.7320000E+08 1.1095640E-24 + 7.7330003E+08 1.1095297E-24 + 7.7340000E+08 1.1094953E-24 + 7.7349997E+08 1.1094610E-24 + 7.7360000E+08 1.1094266E-24 + 7.7370003E+08 1.1093922E-24 + 7.7380000E+08 1.1093578E-24 + 7.7389997E+08 1.1093235E-24 + 7.7400000E+08 1.1092891E-24 + 7.7410003E+08 1.1092548E-24 + 7.7420000E+08 1.1092205E-24 + 7.7429997E+08 1.1091861E-24 + 7.7440000E+08 1.1091517E-24 + 7.7450003E+08 1.1091173E-24 + 7.7460000E+08 1.1090830E-24 + 7.7469997E+08 1.1090486E-24 + 7.7480000E+08 1.1090143E-24 + 7.7490003E+08 1.1089799E-24 + 7.7500000E+08 1.1089456E-24 + 7.7509997E+08 1.1089112E-24 + 7.7520000E+08 1.1088768E-24 + 7.7530003E+08 1.1088424E-24 + 7.7540000E+08 1.1088081E-24 + 7.7549997E+08 1.1087738E-24 + 7.7560000E+08 1.1087394E-24 + 7.7570003E+08 1.1087051E-24 + 7.7580000E+08 1.1086706E-24 + 7.7589997E+08 1.1086363E-24 + 7.7600000E+08 1.1086019E-24 + 7.7610003E+08 1.1085676E-24 + 7.7620000E+08 1.1085333E-24 + 7.7629997E+08 1.1084989E-24 + 7.7640000E+08 1.1084645E-24 + 7.7650003E+08 1.1084301E-24 + 7.7660000E+08 1.1083958E-24 + 7.7669997E+08 1.1083614E-24 + 7.7680000E+08 1.1083271E-24 + 7.7690003E+08 1.1082928E-24 + 7.7700000E+08 1.1082584E-24 + 7.7709997E+08 1.1082240E-24 + 7.7720000E+08 1.1081896E-24 + 7.7730003E+08 1.1081553E-24 + 7.7740000E+08 1.1081209E-24 + 7.7749997E+08 1.1080866E-24 + 7.7760000E+08 1.1080522E-24 + 7.7770003E+08 1.1080179E-24 + 7.7780000E+08 1.1079834E-24 + 7.7789997E+08 1.1079491E-24 + 7.7800000E+08 1.1079147E-24 + 7.7810003E+08 1.1078804E-24 + 7.7820000E+08 1.1078460E-24 + 7.7829997E+08 1.1078117E-24 + 7.7840000E+08 1.1077774E-24 + 7.7850003E+08 1.1077429E-24 + 7.7860000E+08 1.1077086E-24 + 7.7869997E+08 1.1076742E-24 + 7.7880000E+08 1.1076399E-24 + 7.7890003E+08 1.1076055E-24 + 7.7900000E+08 1.1075712E-24 + 7.7909997E+08 1.1075368E-24 + 7.7920000E+08 1.1075024E-24 + 7.7930003E+08 1.1074681E-24 + 7.7940000E+08 1.1074337E-24 + 7.7949997E+08 1.1073994E-24 + 7.7960000E+08 1.1073650E-24 + 7.7970003E+08 1.1073307E-24 + 7.7980000E+08 1.1072963E-24 + 7.7989997E+08 1.1072619E-24 + 7.8000000E+08 1.1072276E-24 + 7.8010003E+08 1.1071932E-24 + 7.8020000E+08 1.1071589E-24 + 7.8029997E+08 1.1071245E-24 + 7.8040000E+08 1.1070902E-24 + 7.8050003E+08 1.1070557E-24 + 7.8060000E+08 1.1070214E-24 + 7.8069997E+08 1.1069871E-24 + 7.8080000E+08 1.1069527E-24 + 7.8090003E+08 1.1069183E-24 + 7.8100000E+08 1.1068840E-24 + 7.8109997E+08 1.1068497E-24 + 7.8120000E+08 1.1068152E-24 + 7.8130003E+08 1.1067809E-24 + 7.8140000E+08 1.1067465E-24 + 7.8149997E+08 1.1067122E-24 + 7.8160000E+08 1.1066778E-24 + 7.8170003E+08 1.1066435E-24 + 7.8180000E+08 1.1066090E-24 + 7.8189997E+08 1.1065747E-24 + 7.8200000E+08 1.1065404E-24 + 7.8210003E+08 1.1065060E-24 + 7.8220000E+08 1.1064717E-24 + 7.8229997E+08 1.1064373E-24 + 7.8240000E+08 1.1064030E-24 + 7.8250003E+08 1.1063685E-24 + 7.8260000E+08 1.1063342E-24 + 7.8269997E+08 1.1062999E-24 + 7.8280000E+08 1.1062655E-24 + 7.8290003E+08 1.1062311E-24 + 7.8300000E+08 1.1061968E-24 + 7.8309997E+08 1.1061625E-24 + 7.8320000E+08 1.1061280E-24 + 7.8330003E+08 1.1060937E-24 + 7.8340000E+08 1.1060593E-24 + 7.8349997E+08 1.1060250E-24 + 7.8360000E+08 1.1059906E-24 + 7.8370003E+08 1.1059563E-24 + 7.8380000E+08 1.1059219E-24 + 7.8389997E+08 1.1058875E-24 + 7.8400000E+08 1.1058532E-24 + 7.8410003E+08 1.1058188E-24 + 7.8420000E+08 1.1057845E-24 + 7.8429997E+08 1.1057501E-24 + 7.8440000E+08 1.1057158E-24 + 7.8450003E+08 1.1056813E-24 + 7.8460000E+08 1.1056470E-24 + 7.8469997E+08 1.1056126E-24 + 7.8480000E+08 1.1055783E-24 + 7.8490003E+08 1.1055439E-24 + 7.8500000E+08 1.1055096E-24 + 7.8509997E+08 1.1054753E-24 + 7.8520000E+08 1.1054408E-24 + 7.8530003E+08 1.1054064E-24 + 7.8540000E+08 1.1053721E-24 + 7.8549997E+08 1.1053378E-24 + 7.8560000E+08 1.1053034E-24 + 7.8570003E+08 1.1052691E-24 + 7.8580000E+08 1.1052347E-24 + 7.8589997E+08 1.1052003E-24 + 7.8600000E+08 1.1051659E-24 + 7.8610003E+08 1.1051316E-24 + 7.8620000E+08 1.1050973E-24 + 7.8629997E+08 1.1050629E-24 + 7.8640000E+08 1.1050286E-24 + 7.8650003E+08 1.1049942E-24 + 7.8660000E+08 1.1049598E-24 + 7.8669997E+08 1.1049254E-24 + 7.8680000E+08 1.1048911E-24 + 7.8690003E+08 1.1048567E-24 + 7.8700000E+08 1.1048224E-24 + 7.8709997E+08 1.1047881E-24 + 7.8720000E+08 1.1047536E-24 + 7.8730003E+08 1.1047192E-24 + 7.8740000E+08 1.1046849E-24 + 7.8749997E+08 1.1046506E-24 + 7.8760000E+08 1.1046162E-24 + 7.8770003E+08 1.1045819E-24 + 7.8780000E+08 1.1045475E-24 + 7.8789997E+08 1.1045131E-24 + 7.8800000E+08 1.1044787E-24 + 7.8810003E+08 1.1044444E-24 + 7.8820000E+08 1.1044100E-24 + 7.8829997E+08 1.1043757E-24 + 7.8840000E+08 1.1043414E-24 + 7.8850003E+08 1.1043070E-24 + 7.8860000E+08 1.1042726E-24 + 7.8869997E+08 1.1042382E-24 + 7.8880000E+08 1.1042039E-24 + 7.8890003E+08 1.1041695E-24 + 7.8900000E+08 1.1041352E-24 + 7.8909997E+08 1.1041009E-24 + 7.8920000E+08 1.1040665E-24 + 7.8930003E+08 1.1040320E-24 + 7.8940000E+08 1.1039977E-24 + 7.8949997E+08 1.1039634E-24 + 7.8960000E+08 1.1039290E-24 + 7.8970003E+08 1.1038947E-24 + 7.8980000E+08 1.1038603E-24 + 7.8989997E+08 1.1038259E-24 + 7.9000000E+08 1.1037915E-24 + 7.9010003E+08 1.1037572E-24 + 7.9020000E+08 1.1037228E-24 + 7.9029997E+08 1.1036885E-24 + 7.9040000E+08 1.1036542E-24 + 7.9050003E+08 1.1036198E-24 + 7.9060000E+08 1.1035854E-24 + 7.9069997E+08 1.1035510E-24 + 7.9080000E+08 1.1035167E-24 + 7.9090003E+08 1.1034823E-24 + 7.9100000E+08 1.1034480E-24 + 7.9109997E+08 1.1034137E-24 + 7.9120000E+08 1.1033793E-24 + 7.9130003E+08 1.1033449E-24 + 7.9140000E+08 1.1033105E-24 + 7.9149997E+08 1.1032762E-24 + 7.9160000E+08 1.1032418E-24 + 7.9170003E+08 1.1032075E-24 + 7.9180000E+08 1.1031731E-24 + 7.9189997E+08 1.1031388E-24 + 7.9200000E+08 1.1031043E-24 + 7.9210003E+08 1.1030700E-24 + 7.9220000E+08 1.1030356E-24 + 7.9229997E+08 1.1030013E-24 + 7.9240000E+08 1.1029670E-24 + 7.9250003E+08 1.1029326E-24 + 7.9260000E+08 1.1028982E-24 + 7.9269997E+08 1.1028638E-24 + 7.9280000E+08 1.1028295E-24 + 7.9290003E+08 1.1027951E-24 + 7.9300000E+08 1.1027608E-24 + 7.9309997E+08 1.1027264E-24 + 7.9320000E+08 1.1026921E-24 + 7.9330003E+08 1.1026577E-24 + 7.9340000E+08 1.1026233E-24 + 7.9349997E+08 1.1025890E-24 + 7.9360000E+08 1.1025546E-24 + 7.9370003E+08 1.1025203E-24 + 7.9380000E+08 1.1024859E-24 + 7.9389997E+08 1.1024516E-24 + 7.9400000E+08 1.1024172E-24 + 7.9410003E+08 1.1023828E-24 + 7.9420000E+08 1.1023485E-24 + 7.9429997E+08 1.1023141E-24 + 7.9440000E+08 1.1022798E-24 + 7.9450003E+08 1.1022454E-24 + 7.9460000E+08 1.1022111E-24 + 7.9469997E+08 1.1021767E-24 + 7.9480000E+08 1.1021423E-24 + 7.9490003E+08 1.1021079E-24 + 7.9500000E+08 1.1020736E-24 + 7.9509997E+08 1.1020393E-24 + 7.9520000E+08 1.1020049E-24 + 7.9530003E+08 1.1019704E-24 + 7.9540000E+08 1.1019361E-24 + 7.9549997E+08 1.1019018E-24 + 7.9560000E+08 1.1018674E-24 + 7.9570003E+08 1.1018331E-24 + 7.9580000E+08 1.1017987E-24 + 7.9589997E+08 1.1017644E-24 + 7.9600000E+08 1.1017299E-24 + 7.9610003E+08 1.1016956E-24 + 7.9620000E+08 1.1016613E-24 + 7.9629997E+08 1.1016269E-24 + 7.9640000E+08 1.1015926E-24 + 7.9650003E+08 1.1015582E-24 + 7.9660000E+08 1.1015239E-24 + 7.9669997E+08 1.1014894E-24 + 7.9680000E+08 1.1014551E-24 + 7.9690003E+08 1.1014207E-24 + 7.9700000E+08 1.1013864E-24 + 7.9709997E+08 1.1013521E-24 + 7.9720000E+08 1.1013177E-24 + 7.9730003E+08 1.1012833E-24 + 7.9740000E+08 1.1012489E-24 + 7.9749997E+08 1.1012146E-24 + 7.9760000E+08 1.1011802E-24 + 7.9770003E+08 1.1011459E-24 + 7.9780000E+08 1.1011115E-24 + 7.9789997E+08 1.1010772E-24 + 7.9800000E+08 1.1010427E-24 + 7.9810003E+08 1.1010084E-24 + 7.9820000E+08 1.1009741E-24 + 7.9829997E+08 1.1009397E-24 + 7.9840000E+08 1.1009054E-24 + 7.9850003E+08 1.1008710E-24 + 7.9860000E+08 1.1008367E-24 + 7.9869997E+08 1.1008022E-24 + 7.9880000E+08 1.1007679E-24 + 7.9890003E+08 1.1007335E-24 + 7.9900000E+08 1.1006992E-24 + 7.9909997E+08 1.1006649E-24 + 7.9920000E+08 1.1006305E-24 + 7.9930003E+08 1.1005961E-24 + 7.9940000E+08 1.1005617E-24 + 7.9949997E+08 1.1005274E-24 + 7.9960000E+08 1.1004930E-24 + 7.9970003E+08 1.1004587E-24 + 7.9980000E+08 1.1004243E-24 + 7.9989997E+08 1.1003900E-24 + 8.0000000E+08 1.1003556E-24 + 8.0010003E+08 1.1003212E-24 + 8.0020000E+08 1.1002868E-24 + 8.0029997E+08 1.1002525E-24 + 8.0040000E+08 1.1002182E-24 + 8.0050003E+08 1.1001838E-24 + 8.0060000E+08 1.1001495E-24 + 8.0069997E+08 1.1001150E-24 + 8.0080000E+08 1.1000807E-24 + 8.0090003E+08 1.1000463E-24 + 8.0100000E+08 1.1000120E-24 + 8.0109997E+08 1.0999777E-24 + 8.0120000E+08 1.0999433E-24 + 8.0130003E+08 1.0999089E-24 + 8.0140000E+08 1.0998745E-24 + 8.0149997E+08 1.0998402E-24 + 8.0160000E+08 1.0998058E-24 + 8.0170003E+08 1.0997715E-24 + 8.0180000E+08 1.0997371E-24 + 8.0189997E+08 1.0997028E-24 + 8.0200000E+08 1.0996684E-24 + 8.0210003E+08 1.0996340E-24 + 8.0220000E+08 1.0995996E-24 + 8.0229997E+08 1.0995653E-24 + 8.0240000E+08 1.0995309E-24 + 8.0250003E+08 1.0994966E-24 + 8.0260000E+08 1.0994623E-24 + 8.0269997E+08 1.0994279E-24 + 8.0280000E+08 1.0993935E-24 + 8.0290003E+08 1.0993591E-24 + 8.0300000E+08 1.0993248E-24 + 8.0309997E+08 1.0992904E-24 + 8.0320000E+08 1.0992561E-24 + 8.0330003E+08 1.0992217E-24 + 8.0340000E+08 1.0991873E-24 + 8.0349997E+08 1.0991530E-24 + 8.0360000E+08 1.0991186E-24 + 8.0370003E+08 1.0990842E-24 + 8.0380000E+08 1.0990499E-24 + 8.0389997E+08 1.0990156E-24 + 8.0400000E+08 1.0989812E-24 + 8.0410003E+08 1.0989468E-24 + 8.0420000E+08 1.0989124E-24 + 8.0429997E+08 1.0988781E-24 + 8.0440000E+08 1.0988437E-24 + 8.0450003E+08 1.0988094E-24 + 8.0460000E+08 1.0987751E-24 + 8.0469997E+08 1.0987407E-24 + 8.0480000E+08 1.0987063E-24 + 8.0490003E+08 1.0986719E-24 + 8.0500000E+08 1.0986376E-24 + 8.0509997E+08 1.0986032E-24 + 8.0520000E+08 1.0985689E-24 + 8.0530003E+08 1.0985346E-24 + 8.0540000E+08 1.0985002E-24 + 8.0549997E+08 1.0984658E-24 + 8.0560000E+08 1.0984314E-24 + 8.0570003E+08 1.0983971E-24 + 8.0580000E+08 1.0983627E-24 + 8.0589997E+08 1.0983284E-24 + 8.0600000E+08 1.0982940E-24 + 8.0610003E+08 1.0982596E-24 + 8.0620000E+08 1.0982252E-24 + 8.0629997E+08 1.0981909E-24 + 8.0640000E+08 1.0981566E-24 + 8.0650003E+08 1.0981222E-24 + 8.0660000E+08 1.0980879E-24 + 8.0669997E+08 1.0980535E-24 + 8.0680000E+08 1.0980191E-24 + 8.0690003E+08 1.0979847E-24 + 8.0700000E+08 1.0979504E-24 + 8.0709997E+08 1.0979160E-24 + 8.0720000E+08 1.0978817E-24 + 8.0730003E+08 1.0978473E-24 + 8.0740000E+08 1.0978130E-24 + 8.0749997E+08 1.0977786E-24 + 8.0760000E+08 1.0977442E-24 + 8.0770003E+08 1.0977099E-24 + 8.0780000E+08 1.0976755E-24 + 8.0789997E+08 1.0976412E-24 + 8.0800000E+08 1.0976068E-24 + 8.0810003E+08 1.0975724E-24 + 8.0820000E+08 1.0975381E-24 + 8.0829997E+08 1.0975037E-24 + 8.0840000E+08 1.0974694E-24 + 8.0850003E+08 1.0974350E-24 + 8.0860000E+08 1.0974007E-24 + 8.0869997E+08 1.0973663E-24 + 8.0880000E+08 1.0973319E-24 + 8.0890003E+08 1.0972975E-24 + 8.0900000E+08 1.0972632E-24 + 8.0909997E+08 1.0972289E-24 + 8.0920000E+08 1.0971945E-24 + 8.0930003E+08 1.0971601E-24 + 8.0940000E+08 1.0971258E-24 + 8.0949997E+08 1.0970914E-24 + 8.0960000E+08 1.0970570E-24 + 8.0970003E+08 1.0970227E-24 + 8.0980000E+08 1.0969883E-24 + 8.0989997E+08 1.0969540E-24 + 8.1000000E+08 1.0969196E-24 + 8.1010003E+08 1.0968853E-24 + 8.1020000E+08 1.0968508E-24 + 8.1029997E+08 1.0968165E-24 + 8.1040000E+08 1.0967822E-24 + 8.1050003E+08 1.0967478E-24 + 8.1060000E+08 1.0967135E-24 + 8.1069997E+08 1.0966791E-24 + 8.1080000E+08 1.0966447E-24 + 8.1090003E+08 1.0966103E-24 + 8.1100000E+08 1.0965760E-24 + 8.1109997E+08 1.0965417E-24 + 8.1120000E+08 1.0965073E-24 + 8.1130003E+08 1.0964729E-24 + 8.1140000E+08 1.0964386E-24 + 8.1149997E+08 1.0964042E-24 + 8.1160000E+08 1.0963698E-24 + 8.1170003E+08 1.0963354E-24 + 8.1180000E+08 1.0963011E-24 + 8.1189997E+08 1.0962668E-24 + 8.1200000E+08 1.0962324E-24 + 8.1210003E+08 1.0961981E-24 + 8.1220000E+08 1.0961636E-24 + 8.1229997E+08 1.0961293E-24 + 8.1240000E+08 1.0960950E-24 + 8.1250003E+08 1.0960606E-24 + 8.1260000E+08 1.0960263E-24 + 8.1269997E+08 1.0959919E-24 + 8.1280000E+08 1.0959576E-24 + 8.1290003E+08 1.0959231E-24 + 8.1300000E+08 1.0958888E-24 + 8.1309997E+08 1.0958544E-24 + 8.1320000E+08 1.0958201E-24 + 8.1330003E+08 1.0957857E-24 + 8.1340000E+08 1.0957514E-24 + 8.1349997E+08 1.0957170E-24 + 8.1360000E+08 1.0956826E-24 + 8.1370003E+08 1.0956482E-24 + 8.1380000E+08 1.0956139E-24 + 8.1389997E+08 1.0955796E-24 + 8.1400000E+08 1.0955452E-24 + 8.1410003E+08 1.0955109E-24 + 8.1420000E+08 1.0954764E-24 + 8.1429997E+08 1.0954421E-24 + 8.1440000E+08 1.0954077E-24 + 8.1450003E+08 1.0953734E-24 + 8.1460000E+08 1.0953391E-24 + 8.1469997E+08 1.0953047E-24 + 8.1480000E+08 1.0952704E-24 + 8.1490003E+08 1.0952359E-24 + 8.1500000E+08 1.0952016E-24 + 8.1509997E+08 1.0951672E-24 + 8.1520000E+08 1.0951329E-24 + 8.1530003E+08 1.0950985E-24 + 8.1540000E+08 1.0950642E-24 + 8.1549997E+08 1.0950299E-24 + 8.1560000E+08 1.0949954E-24 + 8.1570003E+08 1.0949610E-24 + 8.1580000E+08 1.0949267E-24 + 8.1589997E+08 1.0948924E-24 + 8.1600000E+08 1.0948580E-24 + 8.1610003E+08 1.0948237E-24 + 8.1620000E+08 1.0947893E-24 + 8.1629997E+08 1.0947549E-24 + 8.1640000E+08 1.0947205E-24 + 8.1650003E+08 1.0946862E-24 + 8.1660000E+08 1.0946518E-24 + 8.1669997E+08 1.0946175E-24 + 8.1680000E+08 1.0945832E-24 + 8.1690003E+08 1.0945487E-24 + 8.1700000E+08 1.0945144E-24 + 8.1709997E+08 1.0944800E-24 + 8.1720000E+08 1.0944457E-24 + 8.1730003E+08 1.0944113E-24 + 8.1740000E+08 1.0943770E-24 + 8.1749997E+08 1.0943427E-24 + 8.1760000E+08 1.0943082E-24 + 8.1770003E+08 1.0942738E-24 + 8.1780000E+08 1.0942395E-24 + 8.1789997E+08 1.0942052E-24 + 8.1800000E+08 1.0941708E-24 + 8.1810003E+08 1.0941365E-24 + 8.1820000E+08 1.0941021E-24 + 8.1829997E+08 1.0940677E-24 + 8.1840000E+08 1.0940333E-24 + 8.1850003E+08 1.0939990E-24 + 8.1860000E+08 1.0939646E-24 + 8.1869997E+08 1.0939303E-24 + 8.1880000E+08 1.0938959E-24 + 8.1890003E+08 1.0938615E-24 + 8.1900000E+08 1.0938272E-24 + 8.1909997E+08 1.0937928E-24 + 8.1920000E+08 1.0937585E-24 + 8.1930003E+08 1.0937241E-24 + 8.1940000E+08 1.0936898E-24 + 8.1949997E+08 1.0936555E-24 + 8.1960000E+08 1.0936210E-24 + 8.1970003E+08 1.0935867E-24 + 8.1980000E+08 1.0935523E-24 + 8.1989997E+08 1.0935180E-24 + 8.2000000E+08 1.0934836E-24 + 8.2010003E+08 1.0934493E-24 + 8.2020000E+08 1.0934149E-24 + 8.2029997E+08 1.0933805E-24 + 8.2040000E+08 1.0933462E-24 + 8.2050003E+08 1.0933118E-24 + 8.2060000E+08 1.0932775E-24 + 8.2069997E+08 1.0932431E-24 + 8.2080000E+08 1.0932088E-24 + 8.2090003E+08 1.0931744E-24 + 8.2100000E+08 1.0931400E-24 + 8.2109997E+08 1.0931056E-24 + 8.2120000E+08 1.0930713E-24 + 8.2130003E+08 1.0930369E-24 + 8.2140000E+08 1.0930026E-24 + 8.2149997E+08 1.0929682E-24 + 8.2160000E+08 1.0929338E-24 + 8.2170003E+08 1.0928995E-24 + 8.2180000E+08 1.0928651E-24 + 8.2189997E+08 1.0928308E-24 + 8.2200000E+08 1.0927964E-24 + 8.2210003E+08 1.0927621E-24 + 8.2220000E+08 1.0927277E-24 + 8.2229997E+08 1.0926933E-24 + 8.2240000E+08 1.0926589E-24 + 8.2250003E+08 1.0926246E-24 + 8.2260000E+08 1.0925903E-24 + 8.2269997E+08 1.0925559E-24 + 8.2280000E+08 1.0925216E-24 + 8.2290003E+08 1.0924872E-24 + 8.2300000E+08 1.0924528E-24 + 8.2309997E+08 1.0924185E-24 + 8.2320000E+08 1.0923841E-24 + 8.2330003E+08 1.0923497E-24 + 8.2340000E+08 1.0923154E-24 + 8.2349997E+08 1.0922811E-24 + 8.2360000E+08 1.0922467E-24 + 8.2370003E+08 1.0922122E-24 + 8.2380000E+08 1.0921779E-24 + 8.2389997E+08 1.0921436E-24 + 8.2400000E+08 1.0921092E-24 + 8.2410003E+08 1.0920749E-24 + 8.2420000E+08 1.0920405E-24 + 8.2429997E+08 1.0920061E-24 + 8.2440000E+08 1.0919717E-24 + 8.2450003E+08 1.0919374E-24 + 8.2460000E+08 1.0919031E-24 + 8.2469997E+08 1.0918687E-24 + 8.2480000E+08 1.0918344E-24 + 8.2490003E+08 1.0918000E-24 + 8.2500000E+08 1.0917656E-24 + 8.2509997E+08 1.0917312E-24 + 8.2520000E+08 1.0916969E-24 + 8.2530003E+08 1.0916625E-24 + 8.2540000E+08 1.0916282E-24 + 8.2549997E+08 1.0915939E-24 + 8.2560000E+08 1.0915595E-24 + 8.2570003E+08 1.0915250E-24 + 8.2580000E+08 1.0914907E-24 + 8.2589997E+08 1.0914564E-24 + 8.2600000E+08 1.0914220E-24 + 8.2610003E+08 1.0913877E-24 + 8.2620000E+08 1.0913533E-24 + 8.2629997E+08 1.0913190E-24 + 8.2640000E+08 1.0912845E-24 + 8.2650003E+08 1.0912502E-24 + 8.2660000E+08 1.0912158E-24 + 8.2669997E+08 1.0911815E-24 + 8.2680000E+08 1.0911472E-24 + 8.2690003E+08 1.0911128E-24 + 8.2700000E+08 1.0910784E-24 + 8.2709997E+08 1.0910440E-24 + 8.2720000E+08 1.0910097E-24 + 8.2730003E+08 1.0909753E-24 + 8.2740000E+08 1.0909410E-24 + 8.2749997E+08 1.0909067E-24 + 8.2760000E+08 1.0908723E-24 + 8.2770003E+08 1.0908378E-24 + 8.2780000E+08 1.0908035E-24 + 8.2789997E+08 1.0907692E-24 + 8.2800000E+08 1.0907348E-24 + 8.2810003E+08 1.0907005E-24 + 8.2820000E+08 1.0906661E-24 + 8.2829997E+08 1.0906318E-24 + 8.2840000E+08 1.0905973E-24 + 8.2850003E+08 1.0905630E-24 + 8.2860000E+08 1.0905286E-24 + 8.2869997E+08 1.0904943E-24 + 8.2880000E+08 1.0904600E-24 + 8.2890003E+08 1.0904256E-24 + 8.2900000E+08 1.0903913E-24 + 8.2909997E+08 1.0903568E-24 + 8.2920000E+08 1.0903225E-24 + 8.2930003E+08 1.0902881E-24 + 8.2940000E+08 1.0902538E-24 + 8.2949997E+08 1.0902195E-24 + 8.2960000E+08 1.0901851E-24 + 8.2970003E+08 1.0901506E-24 + 8.2980000E+08 1.0901163E-24 + 8.2989997E+08 1.0900820E-24 + 8.3000000E+08 1.0900476E-24 + 8.3010003E+08 1.0900132E-24 + 8.3020000E+08 1.0899789E-24 + 8.3029997E+08 1.0899446E-24 + 8.3040000E+08 1.0899101E-24 + 8.3050003E+08 1.0898758E-24 + 8.3060000E+08 1.0898414E-24 + 8.3069997E+08 1.0898071E-24 + 8.3080000E+08 1.0897727E-24 + 8.3090003E+08 1.0897384E-24 + 8.3100000E+08 1.0897041E-24 + 8.3109997E+08 1.0896696E-24 + 8.3120000E+08 1.0896353E-24 + 8.3130003E+08 1.0896009E-24 + 8.3140000E+08 1.0895666E-24 + 8.3149997E+08 1.0895322E-24 + 8.3160000E+08 1.0894979E-24 + 8.3170003E+08 1.0894635E-24 + 8.3180000E+08 1.0894291E-24 + 8.3189997E+08 1.0893948E-24 + 8.3200000E+08 1.0893604E-24 + 8.3210003E+08 1.0893260E-24 + 8.3220000E+08 1.0892917E-24 + 8.3229997E+08 1.0892574E-24 + 8.3240000E+08 1.0892229E-24 + 8.3250003E+08 1.0891886E-24 + 8.3260000E+08 1.0891542E-24 + 8.3269997E+08 1.0891199E-24 + 8.3280000E+08 1.0890855E-24 + 8.3290003E+08 1.0890512E-24 + 8.3300000E+08 1.0890168E-24 + 8.3309997E+08 1.0889824E-24 + 8.3320000E+08 1.0889481E-24 + 8.3330003E+08 1.0889137E-24 + 8.3340000E+08 1.0888794E-24 + 8.3349997E+08 1.0888450E-24 + 8.3360000E+08 1.0888107E-24 + 8.3370003E+08 1.0887764E-24 + 8.3380000E+08 1.0887419E-24 + 8.3389997E+08 1.0887076E-24 + 8.3400000E+08 1.0886732E-24 + 8.3410003E+08 1.0886389E-24 + 8.3420000E+08 1.0886045E-24 + 8.3429997E+08 1.0885702E-24 + 8.3440000E+08 1.0885358E-24 + 8.3450003E+08 1.0885014E-24 + 8.3460000E+08 1.0884671E-24 + 8.3469997E+08 1.0884327E-24 + 8.3480000E+08 1.0883984E-24 + 8.3490003E+08 1.0883640E-24 + 8.3500000E+08 1.0883297E-24 + 8.3509997E+08 1.0882952E-24 + 8.3520000E+08 1.0882609E-24 + 8.3530003E+08 1.0882265E-24 + 8.3540000E+08 1.0881922E-24 + 8.3549997E+08 1.0881578E-24 + 8.3560000E+08 1.0881235E-24 + 8.3570003E+08 1.0880891E-24 + 8.3580000E+08 1.0880547E-24 + 8.3589997E+08 1.0880204E-24 + 8.3600000E+08 1.0879860E-24 + 8.3610003E+08 1.0879517E-24 + 8.3620000E+08 1.0879173E-24 + 8.3629997E+08 1.0878830E-24 + 8.3640000E+08 1.0878486E-24 + 8.3650003E+08 1.0878142E-24 + 8.3660000E+08 1.0877798E-24 + 8.3669997E+08 1.0877455E-24 + 8.3680000E+08 1.0877112E-24 + 8.3690003E+08 1.0876768E-24 + 8.3700000E+08 1.0876425E-24 + 8.3709997E+08 1.0876081E-24 + 8.3720000E+08 1.0875737E-24 + 8.3730003E+08 1.0875393E-24 + 8.3740000E+08 1.0875050E-24 + 8.3749997E+08 1.0874707E-24 + 8.3760000E+08 1.0874363E-24 + 8.3770003E+08 1.0874019E-24 + 8.3780000E+08 1.0873675E-24 + 8.3789997E+08 1.0873332E-24 + 8.3800000E+08 1.0872988E-24 + 8.3810003E+08 1.0872645E-24 + 8.3820000E+08 1.0872301E-24 + 8.3829997E+08 1.0871958E-24 + 8.3840000E+08 1.0871614E-24 + 8.3850003E+08 1.0871270E-24 + 8.3860000E+08 1.0870926E-24 + 8.3869997E+08 1.0870583E-24 + 8.3880000E+08 1.0870240E-24 + 8.3890003E+08 1.0869896E-24 + 8.3900000E+08 1.0869553E-24 + 8.3909997E+08 1.0869209E-24 + 8.3920000E+08 1.0868865E-24 + 8.3930003E+08 1.0868521E-24 + 8.3940000E+08 1.0868178E-24 + 8.3949997E+08 1.0867835E-24 + 8.3960000E+08 1.0867491E-24 + 8.3970003E+08 1.0867147E-24 + 8.3980000E+08 1.0866804E-24 + 8.3989997E+08 1.0866460E-24 + 8.4000000E+08 1.0866116E-24 + 8.4010003E+08 1.0865772E-24 + 8.4020000E+08 1.0865429E-24 + 8.4029997E+08 1.0865086E-24 + 8.4040000E+08 1.0864742E-24 + 8.4050003E+08 1.0864398E-24 + 8.4060000E+08 1.0864054E-24 + 8.4069997E+08 1.0863711E-24 + 8.4080000E+08 1.0863368E-24 + 8.4090003E+08 1.0863024E-24 + 8.4100000E+08 1.0862681E-24 + 8.4109997E+08 1.0862337E-24 + 8.4120000E+08 1.0861993E-24 + 8.4130003E+08 1.0861649E-24 + 8.4140000E+08 1.0861306E-24 + 8.4149997E+08 1.0860962E-24 + 8.4160000E+08 1.0860619E-24 + 8.4170003E+08 1.0860275E-24 + 8.4180000E+08 1.0859932E-24 + 8.4189997E+08 1.0859588E-24 + 8.4200000E+08 1.0859244E-24 + 8.4210003E+08 1.0858900E-24 + 8.4220000E+08 1.0858557E-24 + 8.4229997E+08 1.0858214E-24 + 8.4240000E+08 1.0857870E-24 + 8.4250003E+08 1.0857527E-24 + 8.4260000E+08 1.0857182E-24 + 8.4269997E+08 1.0856839E-24 + 8.4280000E+08 1.0856495E-24 + 8.4290003E+08 1.0856152E-24 + 8.4300000E+08 1.0855809E-24 + 8.4309997E+08 1.0855465E-24 + 8.4320000E+08 1.0855121E-24 + 8.4330003E+08 1.0854777E-24 + 8.4340000E+08 1.0854434E-24 + 8.4349997E+08 1.0854090E-24 + 8.4360000E+08 1.0853747E-24 + 8.4370003E+08 1.0853403E-24 + 8.4380000E+08 1.0853060E-24 + 8.4389997E+08 1.0852716E-24 + 8.4400000E+08 1.0852372E-24 + 8.4410003E+08 1.0852028E-24 + 8.4420000E+08 1.0851685E-24 + 8.4429997E+08 1.0851342E-24 + 8.4440000E+08 1.0850998E-24 + 8.4450003E+08 1.0850655E-24 + 8.4460000E+08 1.0850310E-24 + 8.4469997E+08 1.0849967E-24 + 8.4480000E+08 1.0849623E-24 + 8.4490003E+08 1.0849280E-24 + 8.4500000E+08 1.0848936E-24 + 8.4509997E+08 1.0848593E-24 + 8.4520000E+08 1.0848250E-24 + 8.4530003E+08 1.0847905E-24 + 8.4540000E+08 1.0847562E-24 + 8.4549997E+08 1.0847218E-24 + 8.4560000E+08 1.0846875E-24 + 8.4570003E+08 1.0846531E-24 + 8.4580000E+08 1.0846188E-24 + 8.4589997E+08 1.0845844E-24 + 8.4600000E+08 1.0845500E-24 + 8.4610003E+08 1.0845156E-24 + 8.4620000E+08 1.0844813E-24 + 8.4629997E+08 1.0844470E-24 + 8.4640000E+08 1.0844126E-24 + 8.4650003E+08 1.0843783E-24 + 8.4660000E+08 1.0843438E-24 + 8.4669997E+08 1.0843095E-24 + 8.4680000E+08 1.0842751E-24 + 8.4690003E+08 1.0842408E-24 + 8.4700000E+08 1.0842064E-24 + 8.4709997E+08 1.0841721E-24 + 8.4720000E+08 1.0841377E-24 + 8.4730003E+08 1.0841033E-24 + 8.4740000E+08 1.0840690E-24 + 8.4749997E+08 1.0840346E-24 + 8.4760000E+08 1.0840003E-24 + 8.4770003E+08 1.0839659E-24 + 8.4780000E+08 1.0839316E-24 + 8.4789997E+08 1.0838972E-24 + 8.4800000E+08 1.0838628E-24 + 8.4810003E+08 1.0838285E-24 + 8.4820000E+08 1.0837941E-24 + 8.4829997E+08 1.0837598E-24 + 8.4840000E+08 1.0837254E-24 + 8.4850003E+08 1.0836911E-24 + 8.4860000E+08 1.0836566E-24 + 8.4869997E+08 1.0836223E-24 + 8.4880000E+08 1.0835880E-24 + 8.4890003E+08 1.0835536E-24 + 8.4900000E+08 1.0835193E-24 + 8.4909997E+08 1.0834849E-24 + 8.4920000E+08 1.0834506E-24 + 8.4930003E+08 1.0834161E-24 + 8.4940000E+08 1.0833818E-24 + 8.4949997E+08 1.0833474E-24 + 8.4960000E+08 1.0833131E-24 + 8.4970003E+08 1.0832787E-24 + 8.4980000E+08 1.0832444E-24 + 8.4989997E+08 1.0832100E-24 + 8.5000000E+08 1.0831756E-24 + 8.5010003E+08 1.0831413E-24 + 8.5020000E+08 1.0831069E-24 + 8.5029997E+08 1.0830726E-24 + 8.5040000E+08 1.0830382E-24 + 8.5050003E+08 1.0830039E-24 + 8.5060000E+08 1.0829695E-24 + 8.5069997E+08 1.0829351E-24 + 8.5080000E+08 1.0829007E-24 + 8.5090003E+08 1.0828664E-24 + 8.5100000E+08 1.0828321E-24 + 8.5109997E+08 1.0827977E-24 + 8.5120000E+08 1.0827634E-24 + 8.5130003E+08 1.0827289E-24 + 8.5140000E+08 1.0826946E-24 + 8.5149997E+08 1.0826603E-24 + 8.5160000E+08 1.0826259E-24 + 8.5170003E+08 1.0825915E-24 + 8.5180000E+08 1.0825572E-24 + 8.5189997E+08 1.0825229E-24 + 8.5200000E+08 1.0824884E-24 + 8.5210003E+08 1.0824540E-24 + 8.5220000E+08 1.0824197E-24 + 8.5229997E+08 1.0823854E-24 + 8.5240000E+08 1.0823510E-24 + 8.5250003E+08 1.0823167E-24 + 8.5260000E+08 1.0822823E-24 + 8.5269997E+08 1.0822479E-24 + 8.5280000E+08 1.0822135E-24 + 8.5290003E+08 1.0821792E-24 + 8.5300000E+08 1.0821449E-24 + 8.5309997E+08 1.0821105E-24 + 8.5320000E+08 1.0820762E-24 + 8.5330003E+08 1.0820418E-24 + 8.5340000E+08 1.0820074E-24 + 8.5349997E+08 1.0819730E-24 + 8.5360000E+08 1.0819387E-24 + 8.5370003E+08 1.0819043E-24 + 8.5380000E+08 1.0818700E-24 + 8.5389997E+08 1.0818357E-24 + 8.5400000E+08 1.0818012E-24 + 8.5410003E+08 1.0817668E-24 + 8.5420000E+08 1.0817325E-24 + 8.5429997E+08 1.0816982E-24 + 8.5440000E+08 1.0816638E-24 + 8.5450003E+08 1.0816295E-24 + 8.5460000E+08 1.0815951E-24 + 8.5469997E+08 1.0815607E-24 + 8.5480000E+08 1.0815263E-24 + 8.5490003E+08 1.0814920E-24 + 8.5500000E+08 1.0814576E-24 + 8.5509997E+08 1.0814233E-24 + 8.5520000E+08 1.0813890E-24 + 8.5530003E+08 1.0813546E-24 + 8.5540000E+08 1.0813202E-24 + 8.5549997E+08 1.0812858E-24 + 8.5560000E+08 1.0812515E-24 + 8.5570003E+08 1.0812171E-24 + 8.5580000E+08 1.0811828E-24 + 8.5589997E+08 1.0811485E-24 + 8.5600000E+08 1.0811141E-24 + 8.5610003E+08 1.0810796E-24 + 8.5620000E+08 1.0810453E-24 + 8.5629997E+08 1.0810110E-24 + 8.5640000E+08 1.0809766E-24 + 8.5650003E+08 1.0809423E-24 + 8.5660000E+08 1.0809079E-24 + 8.5669997E+08 1.0808735E-24 + 8.5680000E+08 1.0808391E-24 + 8.5690003E+08 1.0808048E-24 + 8.5700000E+08 1.0807704E-24 + 8.5709997E+08 1.0807361E-24 + 8.5720000E+08 1.0807018E-24 + 8.5730003E+08 1.0806674E-24 + 8.5740000E+08 1.0806330E-24 + 8.5749997E+08 1.0805986E-24 + 8.5760000E+08 1.0805643E-24 + 8.5770003E+08 1.0805299E-24 + 8.5780000E+08 1.0804956E-24 + 8.5789997E+08 1.0804612E-24 + 8.5800000E+08 1.0804269E-24 + 8.5810003E+08 1.0803924E-24 + 8.5820000E+08 1.0803581E-24 + 8.5829997E+08 1.0803238E-24 + 8.5840000E+08 1.0802894E-24 + 8.5850003E+08 1.0802550E-24 + 8.5860000E+08 1.0802207E-24 + 8.5869997E+08 1.0801864E-24 + 8.5880000E+08 1.0801519E-24 + 8.5890003E+08 1.0801176E-24 + 8.5900000E+08 1.0800832E-24 + 8.5909997E+08 1.0800489E-24 + 8.5920000E+08 1.0800145E-24 + 8.5930003E+08 1.0799802E-24 + 8.5940000E+08 1.0799458E-24 + 8.5949997E+08 1.0799114E-24 + 8.5960000E+08 1.0798771E-24 + 8.5970003E+08 1.0798427E-24 + 8.5980000E+08 1.0798084E-24 + 8.5989997E+08 1.0797740E-24 + 8.6000000E+08 1.0797397E-24 + 8.6010003E+08 1.0797052E-24 + 8.6020000E+08 1.0796709E-24 + 8.6029997E+08 1.0796366E-24 + 8.6040000E+08 1.0796022E-24 + 8.6050003E+08 1.0795678E-24 + 8.6060000E+08 1.0795335E-24 + 8.6069997E+08 1.0794992E-24 + 8.6080000E+08 1.0794647E-24 + 8.6090003E+08 1.0794304E-24 + 8.6100000E+08 1.0793960E-24 + 8.6109997E+08 1.0793617E-24 + 8.6120000E+08 1.0793273E-24 + 8.6130003E+08 1.0792930E-24 + 8.6140000E+08 1.0792586E-24 + 8.6149997E+08 1.0792242E-24 + 8.6160000E+08 1.0791899E-24 + 8.6170003E+08 1.0791555E-24 + 8.6180000E+08 1.0791212E-24 + 8.6189997E+08 1.0790868E-24 + 8.6200000E+08 1.0790525E-24 + 8.6210003E+08 1.0790180E-24 + 8.6220000E+08 1.0789837E-24 + 8.6229997E+08 1.0789494E-24 + 8.6240000E+08 1.0789150E-24 + 8.6250003E+08 1.0788807E-24 + 8.6260000E+08 1.0788463E-24 + 8.6269997E+08 1.0788120E-24 + 8.6280000E+08 1.0787775E-24 + 8.6290003E+08 1.0787432E-24 + 8.6300000E+08 1.0787089E-24 + 8.6309997E+08 1.0786745E-24 + 8.6320000E+08 1.0786402E-24 + 8.6330003E+08 1.0786058E-24 + 8.6340000E+08 1.0785715E-24 + 8.6349997E+08 1.0785370E-24 + 8.6360000E+08 1.0785027E-24 + 8.6370003E+08 1.0784683E-24 + 8.6380000E+08 1.0784340E-24 + 8.6389997E+08 1.0783996E-24 + 8.6400000E+08 1.0783653E-24 + 8.6410003E+08 1.0783309E-24 + 8.6420000E+08 1.0782965E-24 + 8.6429997E+08 1.0782622E-24 + 8.6440000E+08 1.0782278E-24 + 8.6450003E+08 1.0781935E-24 + 8.6460000E+08 1.0781591E-24 + 8.6469997E+08 1.0781248E-24 + 8.6480000E+08 1.0780903E-24 + 8.6490003E+08 1.0780560E-24 + 8.6500000E+08 1.0780216E-24 + 8.6509997E+08 1.0779873E-24 + 8.6520000E+08 1.0779530E-24 + 8.6530003E+08 1.0779186E-24 + 8.6540000E+08 1.0778843E-24 + 8.6549997E+08 1.0778498E-24 + 8.6560000E+08 1.0778155E-24 + 8.6570003E+08 1.0777811E-24 + 8.6580000E+08 1.0777468E-24 + 8.6589997E+08 1.0777125E-24 + 8.6600000E+08 1.0776781E-24 + 8.6610003E+08 1.0776437E-24 + 8.6620000E+08 1.0776093E-24 + 8.6629997E+08 1.0775750E-24 + 8.6640000E+08 1.0775406E-24 + 8.6650003E+08 1.0775063E-24 + 8.6660000E+08 1.0774719E-24 + 8.6669997E+08 1.0774376E-24 + 8.6680000E+08 1.0774032E-24 + 8.6690003E+08 1.0773688E-24 + 8.6700000E+08 1.0773344E-24 + 8.6709997E+08 1.0773001E-24 + 8.6720000E+08 1.0772658E-24 + 8.6730003E+08 1.0772314E-24 + 8.6740000E+08 1.0771971E-24 + 8.6749997E+08 1.0771626E-24 + 8.6760000E+08 1.0771283E-24 + 8.6770003E+08 1.0770939E-24 + 8.6780000E+08 1.0770596E-24 + 8.6789997E+08 1.0770253E-24 + 8.6800000E+08 1.0769909E-24 + 8.6810003E+08 1.0769565E-24 + 8.6820000E+08 1.0769221E-24 + 8.6829997E+08 1.0768878E-24 + 8.6840000E+08 1.0768534E-24 + 8.6850003E+08 1.0768190E-24 + 8.6860000E+08 1.0767847E-24 + 8.6869997E+08 1.0767504E-24 + 8.6880000E+08 1.0767160E-24 + 8.6890003E+08 1.0766816E-24 + 8.6900000E+08 1.0766472E-24 + 8.6909997E+08 1.0766129E-24 + 8.6920000E+08 1.0765785E-24 + 8.6930003E+08 1.0765442E-24 + 8.6940000E+08 1.0765099E-24 + 8.6949997E+08 1.0764754E-24 + 8.6960000E+08 1.0764411E-24 + 8.6970003E+08 1.0764067E-24 + 8.6980000E+08 1.0763724E-24 + 8.6989997E+08 1.0763380E-24 + 8.7000000E+08 1.0763037E-24 + 8.7010003E+08 1.0762693E-24 + 8.7020000E+08 1.0762349E-24 + 8.7029997E+08 1.0762006E-24 + 8.7040000E+08 1.0761662E-24 + 8.7050003E+08 1.0761318E-24 + 8.7060000E+08 1.0760975E-24 + 8.7069997E+08 1.0760632E-24 + 8.7080000E+08 1.0760288E-24 + 8.7090003E+08 1.0759944E-24 + 8.7100000E+08 1.0759600E-24 + 8.7109997E+08 1.0759257E-24 + 8.7120000E+08 1.0758913E-24 + 8.7130003E+08 1.0758570E-24 + 8.7140000E+08 1.0758227E-24 + 8.7149997E+08 1.0757883E-24 + 8.7160000E+08 1.0757539E-24 + 8.7170003E+08 1.0757195E-24 + 8.7180000E+08 1.0756852E-24 + 8.7189997E+08 1.0756508E-24 + 8.7200000E+08 1.0756165E-24 + 8.7210003E+08 1.0755821E-24 + 8.7220000E+08 1.0755477E-24 + 8.7229997E+08 1.0755134E-24 + 8.7240000E+08 1.0754790E-24 + 8.7250003E+08 1.0754446E-24 + 8.7260000E+08 1.0754103E-24 + 8.7269997E+08 1.0753760E-24 + 8.7280000E+08 1.0753416E-24 + 8.7290003E+08 1.0753072E-24 + 8.7300000E+08 1.0752728E-24 + 8.7309997E+08 1.0752385E-24 + 8.7320000E+08 1.0752041E-24 + 8.7330003E+08 1.0751698E-24 + 8.7340000E+08 1.0751354E-24 + 8.7349997E+08 1.0751011E-24 + 8.7360000E+08 1.0750667E-24 + 8.7370003E+08 1.0750323E-24 + 8.7380000E+08 1.0749980E-24 + 8.7389997E+08 1.0749636E-24 + 8.7400000E+08 1.0749293E-24 + 8.7410003E+08 1.0748949E-24 + 8.7420000E+08 1.0748606E-24 + 8.7429997E+08 1.0748262E-24 + 8.7440000E+08 1.0747918E-24 + 8.7450003E+08 1.0747574E-24 + 8.7460000E+08 1.0747231E-24 + 8.7469997E+08 1.0746888E-24 + 8.7480000E+08 1.0746544E-24 + 8.7490003E+08 1.0746200E-24 + 8.7500000E+08 1.0745856E-24 + 8.7509997E+08 1.0745513E-24 + 8.7520000E+08 1.0745169E-24 + 8.7530003E+08 1.0744826E-24 + 8.7540000E+08 1.0744482E-24 + 8.7549997E+08 1.0744139E-24 + 8.7560000E+08 1.0743794E-24 + 8.7570003E+08 1.0743451E-24 + 8.7580000E+08 1.0743108E-24 + 8.7589997E+08 1.0742764E-24 + 8.7600000E+08 1.0742421E-24 + 8.7610003E+08 1.0742077E-24 + 8.7620000E+08 1.0741734E-24 + 8.7629997E+08 1.0741389E-24 + 8.7640000E+08 1.0741046E-24 + 8.7650003E+08 1.0740703E-24 + 8.7660000E+08 1.0740359E-24 + 8.7669997E+08 1.0740016E-24 + 8.7680000E+08 1.0739672E-24 + 8.7690003E+08 1.0739329E-24 + 8.7700000E+08 1.0738984E-24 + 8.7709997E+08 1.0738641E-24 + 8.7720000E+08 1.0738298E-24 + 8.7730003E+08 1.0737954E-24 + 8.7740000E+08 1.0737611E-24 + 8.7749997E+08 1.0737267E-24 + 8.7760000E+08 1.0736923E-24 + 8.7770003E+08 1.0736579E-24 + 8.7780000E+08 1.0736236E-24 + 8.7789997E+08 1.0735892E-24 + 8.7800000E+08 1.0735549E-24 + 8.7810003E+08 1.0735205E-24 + 8.7820000E+08 1.0734862E-24 + 8.7829997E+08 1.0734517E-24 + 8.7840000E+08 1.0734174E-24 + 8.7850003E+08 1.0733830E-24 + 8.7860000E+08 1.0733487E-24 + 8.7869997E+08 1.0733144E-24 + 8.7880000E+08 1.0732800E-24 + 8.7890003E+08 1.0732457E-24 + 8.7900000E+08 1.0732112E-24 + 8.7909997E+08 1.0731769E-24 + 8.7920000E+08 1.0731425E-24 + 8.7930003E+08 1.0731082E-24 + 8.7940000E+08 1.0730739E-24 + 8.7949997E+08 1.0730395E-24 + 8.7960000E+08 1.0730052E-24 + 8.7970003E+08 1.0729707E-24 + 8.7980000E+08 1.0729364E-24 + 8.7989997E+08 1.0729020E-24 + 8.8000000E+08 1.0728677E-24 + 8.8010003E+08 1.0728333E-24 + 8.8020000E+08 1.0727990E-24 + 8.8029997E+08 1.0727646E-24 + 8.8040000E+08 1.0727302E-24 + 8.8050003E+08 1.0726958E-24 + 8.8060000E+08 1.0726615E-24 + 8.8069997E+08 1.0726272E-24 + 8.8080000E+08 1.0725928E-24 + 8.8090003E+08 1.0725585E-24 + 8.8100000E+08 1.0725240E-24 + 8.8109997E+08 1.0724897E-24 + 8.8120000E+08 1.0724553E-24 + 8.8130003E+08 1.0724210E-24 + 8.8140000E+08 1.0723866E-24 + 8.8149997E+08 1.0723523E-24 + 8.8160000E+08 1.0723180E-24 + 8.8170003E+08 1.0722835E-24 + 8.8180000E+08 1.0722492E-24 + 8.8189997E+08 1.0722148E-24 + 8.8200000E+08 1.0721805E-24 + 8.8210003E+08 1.0721461E-24 + 8.8220000E+08 1.0721118E-24 + 8.8229997E+08 1.0720775E-24 + 8.8240000E+08 1.0720430E-24 + 8.8250003E+08 1.0720086E-24 + 8.8260000E+08 1.0719743E-24 + 8.8269997E+08 1.0719400E-24 + 8.8280000E+08 1.0719056E-24 + 8.8290003E+08 1.0718713E-24 + 8.8300000E+08 1.0718368E-24 + 8.8309997E+08 1.0718025E-24 + 8.8320000E+08 1.0717681E-24 + 8.8330003E+08 1.0717338E-24 + 8.8340000E+08 1.0716994E-24 + 8.8349997E+08 1.0716651E-24 + 8.8360000E+08 1.0716308E-24 + 8.8370003E+08 1.0715963E-24 + 8.8380000E+08 1.0715620E-24 + 8.8389997E+08 1.0715276E-24 + 8.8400000E+08 1.0714933E-24 + 8.8410003E+08 1.0714589E-24 + 8.8420000E+08 1.0714246E-24 + 8.8429997E+08 1.0713903E-24 + 8.8440000E+08 1.0713558E-24 + 8.8450003E+08 1.0713214E-24 + 8.8460000E+08 1.0712871E-24 + 8.8469997E+08 1.0712528E-24 + 8.8480000E+08 1.0712184E-24 + 8.8490003E+08 1.0711840E-24 + 8.8500000E+08 1.0711497E-24 + 8.8509997E+08 1.0711153E-24 + 8.8520000E+08 1.0710809E-24 + 8.8530003E+08 1.0710466E-24 + 8.8540000E+08 1.0710122E-24 + 8.8549997E+08 1.0709779E-24 + 8.8560000E+08 1.0709436E-24 + 8.8570003E+08 1.0709091E-24 + 8.8580000E+08 1.0708748E-24 + 8.8589997E+08 1.0708404E-24 + 8.8600000E+08 1.0708061E-24 + 8.8610003E+08 1.0707717E-24 + 8.8620000E+08 1.0707374E-24 + 8.8629997E+08 1.0707030E-24 + 8.8640000E+08 1.0706686E-24 + 8.8650003E+08 1.0706342E-24 + 8.8660000E+08 1.0705999E-24 + 8.8669997E+08 1.0705656E-24 + 8.8680000E+08 1.0705312E-24 + 8.8690003E+08 1.0704968E-24 + 8.8700000E+08 1.0704625E-24 + 8.8709997E+08 1.0704281E-24 + 8.8720000E+08 1.0703937E-24 + 8.8730003E+08 1.0703594E-24 + 8.8740000E+08 1.0703250E-24 + 8.8749997E+08 1.0702907E-24 + 8.8760000E+08 1.0702563E-24 + 8.8770003E+08 1.0702220E-24 + 8.8780000E+08 1.0701876E-24 + 8.8789997E+08 1.0701532E-24 + 8.8800000E+08 1.0701189E-24 + 8.8810003E+08 1.0700845E-24 + 8.8820000E+08 1.0700502E-24 + 8.8829997E+08 1.0700158E-24 + 8.8840000E+08 1.0699814E-24 + 8.8850003E+08 1.0699470E-24 + 8.8860000E+08 1.0699127E-24 + 8.8869997E+08 1.0698784E-24 + 8.8880000E+08 1.0698440E-24 + 8.8890003E+08 1.0698097E-24 + 8.8900000E+08 1.0697753E-24 + 8.8909997E+08 1.0697409E-24 + 8.8920000E+08 1.0697065E-24 + 8.8930003E+08 1.0696722E-24 + 8.8940000E+08 1.0696378E-24 + 8.8949997E+08 1.0696035E-24 + 8.8960000E+08 1.0695691E-24 + 8.8970003E+08 1.0695348E-24 + 8.8980000E+08 1.0695003E-24 + 8.8989997E+08 1.0694660E-24 + 8.9000000E+08 1.0694317E-24 + 8.9010003E+08 1.0693973E-24 + 8.9020000E+08 1.0693630E-24 + 8.9029997E+08 1.0693286E-24 + 8.9040000E+08 1.0692943E-24 + 8.9050003E+08 1.0692598E-24 + 8.9060000E+08 1.0692255E-24 + 8.9069997E+08 1.0691912E-24 + 8.9080000E+08 1.0691568E-24 + 8.9090003E+08 1.0691225E-24 + 8.9100000E+08 1.0690881E-24 + 8.9109997E+08 1.0690537E-24 + 8.9120000E+08 1.0690193E-24 + 8.9130003E+08 1.0689850E-24 + 8.9140000E+08 1.0689507E-24 + 8.9149997E+08 1.0689163E-24 + 8.9160000E+08 1.0688820E-24 + 8.9170003E+08 1.0688476E-24 + 8.9180000E+08 1.0688132E-24 + 8.9189997E+08 1.0687788E-24 + 8.9200000E+08 1.0687445E-24 + 8.9210003E+08 1.0687101E-24 + 8.9220000E+08 1.0686758E-24 + 8.9229997E+08 1.0686414E-24 + 8.9240000E+08 1.0686071E-24 + 8.9250003E+08 1.0685726E-24 + 8.9260000E+08 1.0685383E-24 + 8.9269997E+08 1.0685040E-24 + 8.9280000E+08 1.0684696E-24 + 8.9290003E+08 1.0684353E-24 + 8.9300000E+08 1.0684009E-24 + 8.9309997E+08 1.0683666E-24 + 8.9320000E+08 1.0683321E-24 + 8.9330003E+08 1.0682978E-24 + 8.9340000E+08 1.0682634E-24 + 8.9349997E+08 1.0682291E-24 + 8.9360000E+08 1.0681948E-24 + 8.9370003E+08 1.0681604E-24 + 8.9380000E+08 1.0681260E-24 + 8.9389997E+08 1.0680916E-24 + 8.9400000E+08 1.0680573E-24 + 8.9410003E+08 1.0680229E-24 + 8.9420000E+08 1.0679886E-24 + 8.9429997E+08 1.0679543E-24 + 8.9440000E+08 1.0679199E-24 + 8.9450003E+08 1.0678854E-24 + 8.9460000E+08 1.0678511E-24 + 8.9469997E+08 1.0678168E-24 + 8.9480000E+08 1.0677824E-24 + 8.9490003E+08 1.0677481E-24 + 8.9500000E+08 1.0677137E-24 + 8.9509997E+08 1.0676794E-24 + 8.9520000E+08 1.0676449E-24 + 8.9530003E+08 1.0676106E-24 + 8.9540000E+08 1.0675762E-24 + 8.9549997E+08 1.0675419E-24 + 8.9560000E+08 1.0675075E-24 + 8.9570003E+08 1.0674732E-24 + 8.9580000E+08 1.0674389E-24 + 8.9589997E+08 1.0674044E-24 + 8.9600000E+08 1.0673701E-24 + 8.9610003E+08 1.0673357E-24 + 8.9620000E+08 1.0673014E-24 + 8.9629997E+08 1.0672671E-24 + 8.9640000E+08 1.0672327E-24 + 8.9650003E+08 1.0671982E-24 + 8.9660000E+08 1.0671639E-24 + 8.9669997E+08 1.0671296E-24 + 8.9680000E+08 1.0670952E-24 + 8.9690003E+08 1.0670608E-24 + 8.9700000E+08 1.0670265E-24 + 8.9709997E+08 1.0669922E-24 + 8.9720000E+08 1.0669577E-24 + 8.9730003E+08 1.0669234E-24 + 8.9740000E+08 1.0668890E-24 + 8.9749997E+08 1.0668547E-24 + 8.9760000E+08 1.0668203E-24 + 8.9770003E+08 1.0667860E-24 + 8.9780000E+08 1.0667516E-24 + 8.9789997E+08 1.0667172E-24 + 8.9800000E+08 1.0666829E-24 + 8.9810003E+08 1.0666485E-24 + 8.9820000E+08 1.0666142E-24 + 8.9829997E+08 1.0665798E-24 + 8.9840000E+08 1.0665455E-24 + 8.9850003E+08 1.0665111E-24 + 8.9860000E+08 1.0664767E-24 + 8.9869997E+08 1.0664424E-24 + 8.9880000E+08 1.0664080E-24 + 8.9890003E+08 1.0663736E-24 + 8.9900000E+08 1.0663393E-24 + 8.9909997E+08 1.0663050E-24 + 8.9920000E+08 1.0662705E-24 + 8.9930003E+08 1.0662362E-24 + 8.9940000E+08 1.0662018E-24 + 8.9949997E+08 1.0661675E-24 + 8.9960000E+08 1.0661331E-24 + 8.9970003E+08 1.0660988E-24 + 8.9980000E+08 1.0660645E-24 + 8.9989997E+08 1.0660300E-24 + 9.0000000E+08 1.0659957E-24 + 9.0010003E+08 1.0659613E-24 + 9.0020000E+08 1.0659270E-24 + 9.0029997E+08 1.0658926E-24 + 9.0040000E+08 1.0658583E-24 + 9.0050003E+08 1.0658239E-24 + 9.0060000E+08 1.0657895E-24 + 9.0069997E+08 1.0657552E-24 + 9.0080000E+08 1.0657208E-24 + 9.0090003E+08 1.0656864E-24 + 9.0100000E+08 1.0656521E-24 + 9.0109997E+08 1.0656178E-24 + 9.0120000E+08 1.0655834E-24 + 9.0130003E+08 1.0655489E-24 + 9.0140000E+08 1.0655146E-24 + 9.0149997E+08 1.0654803E-24 + 9.0160000E+08 1.0654459E-24 + 9.0170003E+08 1.0654116E-24 + 9.0180000E+08 1.0653772E-24 + 9.0189997E+08 1.0653428E-24 + 9.0200000E+08 1.0653085E-24 + 9.0210003E+08 1.0652741E-24 + 9.0220000E+08 1.0652398E-24 + 9.0229997E+08 1.0652054E-24 + 9.0240000E+08 1.0651711E-24 + 9.0250003E+08 1.0651367E-24 + 9.0260000E+08 1.0651023E-24 + 9.0269997E+08 1.0650679E-24 + 9.0280000E+08 1.0650336E-24 + 9.0290003E+08 1.0649993E-24 + 9.0300000E+08 1.0649649E-24 + 9.0309997E+08 1.0649306E-24 + 9.0320000E+08 1.0648962E-24 + 9.0330003E+08 1.0648618E-24 + 9.0340000E+08 1.0648274E-24 + 9.0349997E+08 1.0647931E-24 + 9.0360000E+08 1.0647587E-24 + 9.0370003E+08 1.0647244E-24 + 9.0380000E+08 1.0646900E-24 + 9.0389997E+08 1.0646557E-24 + 9.0400000E+08 1.0646212E-24 + 9.0410003E+08 1.0645869E-24 + 9.0420000E+08 1.0645526E-24 + 9.0429997E+08 1.0645182E-24 + 9.0440000E+08 1.0644839E-24 + 9.0450003E+08 1.0644495E-24 + 9.0460000E+08 1.0644151E-24 + 9.0469997E+08 1.0643807E-24 + 9.0480000E+08 1.0643464E-24 + 9.0490003E+08 1.0643120E-24 + 9.0500000E+08 1.0642777E-24 + 9.0509997E+08 1.0642434E-24 + 9.0520000E+08 1.0642090E-24 + 9.0530003E+08 1.0641746E-24 + 9.0540000E+08 1.0641402E-24 + 9.0549997E+08 1.0641059E-24 + 9.0560000E+08 1.0640716E-24 + 9.0570003E+08 1.0640372E-24 + 9.0580000E+08 1.0640029E-24 + 9.0589997E+08 1.0639685E-24 + 9.0600000E+08 1.0639341E-24 + 9.0610003E+08 1.0638997E-24 + 9.0620000E+08 1.0638654E-24 + 9.0629997E+08 1.0638310E-24 + 9.0640000E+08 1.0637967E-24 + 9.0650003E+08 1.0637623E-24 + 9.0660000E+08 1.0637280E-24 + 9.0669997E+08 1.0636936E-24 + 9.0680000E+08 1.0636592E-24 + 9.0690003E+08 1.0636249E-24 + 9.0700000E+08 1.0635905E-24 + 9.0709997E+08 1.0635562E-24 + 9.0720000E+08 1.0635218E-24 + 9.0730003E+08 1.0634874E-24 + 9.0740000E+08 1.0634530E-24 + 9.0749997E+08 1.0634187E-24 + 9.0760000E+08 1.0633843E-24 + 9.0770003E+08 1.0633500E-24 + 9.0780000E+08 1.0633157E-24 + 9.0789997E+08 1.0632813E-24 + 9.0800000E+08 1.0632469E-24 + 9.0810003E+08 1.0632125E-24 + 9.0820000E+08 1.0631782E-24 + 9.0829997E+08 1.0631438E-24 + 9.0840000E+08 1.0631095E-24 + 9.0850003E+08 1.0630751E-24 + 9.0860000E+08 1.0630408E-24 + 9.0869997E+08 1.0630064E-24 + 9.0880000E+08 1.0629720E-24 + 9.0890003E+08 1.0629376E-24 + 9.0900000E+08 1.0629033E-24 + 9.0909997E+08 1.0628690E-24 + 9.0920000E+08 1.0628346E-24 + 9.0930003E+08 1.0628003E-24 + 9.0940000E+08 1.0627658E-24 + 9.0949997E+08 1.0627315E-24 + 9.0960000E+08 1.0626971E-24 + 9.0970003E+08 1.0626628E-24 + 9.0980000E+08 1.0626284E-24 + 9.0989997E+08 1.0625941E-24 + 9.1000000E+08 1.0625597E-24 + 9.1010003E+08 1.0625253E-24 + 9.1020000E+08 1.0624910E-24 + 9.1029997E+08 1.0624566E-24 + 9.1040000E+08 1.0624223E-24 + 9.1050003E+08 1.0623879E-24 + 9.1060000E+08 1.0623536E-24 + 9.1069997E+08 1.0623192E-24 + 9.1080000E+08 1.0622848E-24 + 9.1090003E+08 1.0622504E-24 + 9.1100000E+08 1.0622161E-24 + 9.1109997E+08 1.0621818E-24 + 9.1120000E+08 1.0621474E-24 + 9.1130003E+08 1.0621131E-24 + 9.1140000E+08 1.0620786E-24 + 9.1149997E+08 1.0620443E-24 + 9.1160000E+08 1.0620099E-24 + 9.1170003E+08 1.0619756E-24 + 9.1180000E+08 1.0619412E-24 + 9.1189997E+08 1.0619069E-24 + 9.1200000E+08 1.0618725E-24 + 9.1210003E+08 1.0618381E-24 + 9.1220000E+08 1.0618038E-24 + 9.1229997E+08 1.0617694E-24 + 9.1240000E+08 1.0617351E-24 + 9.1250003E+08 1.0617007E-24 + 9.1260000E+08 1.0616664E-24 + 9.1269997E+08 1.0616320E-24 + 9.1280000E+08 1.0615976E-24 + 9.1290003E+08 1.0615632E-24 + 9.1300000E+08 1.0615289E-24 + 9.1309997E+08 1.0614946E-24 + 9.1320000E+08 1.0614602E-24 + 9.1330003E+08 1.0614258E-24 + 9.1340000E+08 1.0613914E-24 + 9.1349997E+08 1.0613571E-24 + 9.1360000E+08 1.0613227E-24 + 9.1370003E+08 1.0612884E-24 + 9.1380000E+08 1.0612540E-24 + 9.1389997E+08 1.0612197E-24 + 9.1400000E+08 1.0611854E-24 + 9.1410003E+08 1.0611509E-24 + 9.1420000E+08 1.0611166E-24 + 9.1429997E+08 1.0610822E-24 + 9.1440000E+08 1.0610479E-24 + 9.1450003E+08 1.0610135E-24 + 9.1460000E+08 1.0609792E-24 + 9.1469997E+08 1.0609448E-24 + 9.1480000E+08 1.0609104E-24 + 9.1490003E+08 1.0608760E-24 + 9.1500000E+08 1.0608417E-24 + 9.1509997E+08 1.0608074E-24 + 9.1520000E+08 1.0607730E-24 + 9.1530003E+08 1.0607386E-24 + 9.1540000E+08 1.0607042E-24 + 9.1549997E+08 1.0606699E-24 + 9.1560000E+08 1.0606355E-24 + 9.1570003E+08 1.0606012E-24 + 9.1580000E+08 1.0605668E-24 + 9.1589997E+08 1.0605325E-24 + 9.1600000E+08 1.0604981E-24 + 9.1610003E+08 1.0604637E-24 + 9.1620000E+08 1.0604294E-24 + 9.1629997E+08 1.0603950E-24 + 9.1640000E+08 1.0603607E-24 + 9.1650003E+08 1.0603263E-24 + 9.1660000E+08 1.0602920E-24 + 9.1669997E+08 1.0602576E-24 + 9.1680000E+08 1.0602232E-24 + 9.1690003E+08 1.0601888E-24 + 9.1700000E+08 1.0601545E-24 + 9.1709997E+08 1.0601202E-24 + 9.1720000E+08 1.0600858E-24 + 9.1730003E+08 1.0600515E-24 + 9.1740000E+08 1.0600171E-24 + 9.1749997E+08 1.0599827E-24 + 9.1760000E+08 1.0599483E-24 + 9.1770003E+08 1.0599140E-24 + 9.1780000E+08 1.0598796E-24 + 9.1789997E+08 1.0598453E-24 + 9.1800000E+08 1.0598109E-24 + 9.1810003E+08 1.0597765E-24 + 9.1820000E+08 1.0597421E-24 + 9.1829997E+08 1.0597078E-24 + 9.1840000E+08 1.0596735E-24 + 9.1850003E+08 1.0596391E-24 + 9.1860000E+08 1.0596048E-24 + 9.1869997E+08 1.0595704E-24 + 9.1880000E+08 1.0595360E-24 + 9.1890003E+08 1.0595016E-24 + 9.1900000E+08 1.0594673E-24 + 9.1909997E+08 1.0594330E-24 + 9.1920000E+08 1.0593986E-24 + 9.1930003E+08 1.0593643E-24 + 9.1940000E+08 1.0593299E-24 + 9.1949997E+08 1.0592955E-24 + 9.1960000E+08 1.0592611E-24 + 9.1970003E+08 1.0592268E-24 + 9.1980000E+08 1.0591925E-24 + 9.1989997E+08 1.0591581E-24 + 9.2000000E+08 1.0591238E-24 + 9.2010003E+08 1.0590893E-24 + 9.2020000E+08 1.0590550E-24 + 9.2029997E+08 1.0590206E-24 + 9.2040000E+08 1.0589863E-24 + 9.2050003E+08 1.0589519E-24 + 9.2060000E+08 1.0589176E-24 + 9.2069997E+08 1.0588833E-24 + 9.2080000E+08 1.0588488E-24 + 9.2090003E+08 1.0588144E-24 + 9.2100000E+08 1.0587801E-24 + 9.2109997E+08 1.0587458E-24 + 9.2120000E+08 1.0587114E-24 + 9.2130003E+08 1.0586771E-24 + 9.2140000E+08 1.0586427E-24 + 9.2149997E+08 1.0586083E-24 + 9.2160000E+08 1.0585739E-24 + 9.2170003E+08 1.0585396E-24 + 9.2180000E+08 1.0585052E-24 + 9.2189997E+08 1.0584709E-24 + 9.2200000E+08 1.0584366E-24 + 9.2210003E+08 1.0584022E-24 + 9.2220000E+08 1.0583678E-24 + 9.2229997E+08 1.0583334E-24 + 9.2240000E+08 1.0582991E-24 + 9.2250003E+08 1.0582647E-24 + 9.2260000E+08 1.0582304E-24 + 9.2269997E+08 1.0581961E-24 + 9.2280000E+08 1.0581616E-24 + 9.2290003E+08 1.0581272E-24 + 9.2300000E+08 1.0580929E-24 + 9.2309997E+08 1.0580586E-24 + 9.2320000E+08 1.0580242E-24 + 9.2330003E+08 1.0579899E-24 + 9.2340000E+08 1.0579555E-24 + 9.2349997E+08 1.0579211E-24 + 9.2360000E+08 1.0578867E-24 + 9.2370003E+08 1.0578524E-24 + 9.2380000E+08 1.0578180E-24 + 9.2389997E+08 1.0577837E-24 + 9.2400000E+08 1.0577493E-24 + 9.2410003E+08 1.0577150E-24 + 9.2420000E+08 1.0576806E-24 + 9.2429997E+08 1.0576462E-24 + 9.2440000E+08 1.0576119E-24 + 9.2450003E+08 1.0575775E-24 + 9.2460000E+08 1.0575432E-24 + 9.2469997E+08 1.0575089E-24 + 9.2480000E+08 1.0574745E-24 + 9.2490003E+08 1.0574400E-24 + 9.2500000E+08 1.0574057E-24 + 9.2509997E+08 1.0573714E-24 + 9.2520000E+08 1.0573370E-24 + 9.2530003E+08 1.0573026E-24 + 9.2540000E+08 1.0572683E-24 + 9.2549997E+08 1.0572339E-24 + 9.2560000E+08 1.0571995E-24 + 9.2570003E+08 1.0571652E-24 + 9.2580000E+08 1.0571308E-24 + 9.2589997E+08 1.0570965E-24 + 9.2600000E+08 1.0570621E-24 + 9.2610003E+08 1.0570278E-24 + 9.2620000E+08 1.0569934E-24 + 9.2629997E+08 1.0569590E-24 + 9.2640000E+08 1.0569247E-24 + 9.2650003E+08 1.0568903E-24 + 9.2660000E+08 1.0568560E-24 + 9.2669997E+08 1.0568216E-24 + 9.2680000E+08 1.0567873E-24 + 9.2690003E+08 1.0567528E-24 + 9.2700000E+08 1.0567185E-24 + 9.2709997E+08 1.0566842E-24 + 9.2720000E+08 1.0566498E-24 + 9.2730003E+08 1.0566154E-24 + 9.2740000E+08 1.0565811E-24 + 9.2749997E+08 1.0565468E-24 + 9.2760000E+08 1.0565123E-24 + 9.2770003E+08 1.0564780E-24 + 9.2780000E+08 1.0564436E-24 + 9.2789997E+08 1.0564093E-24 + 9.2800000E+08 1.0563749E-24 + 9.2810003E+08 1.0563406E-24 + 9.2820000E+08 1.0563061E-24 + 9.2829997E+08 1.0562718E-24 + 9.2840000E+08 0.0000000E+00 + 9.2850003E+08 0.0000000E+00 + 9.2860000E+08 0.0000000E+00 + 9.2869997E+08 0.0000000E+00 + 9.2880000E+08 0.0000000E+00 + 9.2890003E+08 0.0000000E+00 + 9.2900000E+08 0.0000000E+00 + 9.2909997E+08 0.0000000E+00 + 9.2920000E+08 0.0000000E+00 + 9.2930003E+08 0.0000000E+00 + 9.2940000E+08 0.0000000E+00 + 9.2949997E+08 0.0000000E+00 + 9.2960000E+08 0.0000000E+00 + 9.2970003E+08 0.0000000E+00 + 9.2980000E+08 0.0000000E+00 + 9.2989997E+08 0.0000000E+00 + 9.3000000E+08 0.0000000E+00 + 9.3010003E+08 0.0000000E+00 + 9.3020000E+08 0.0000000E+00 + 9.3029997E+08 0.0000000E+00 + 9.3040000E+08 0.0000000E+00 + 9.3050003E+08 0.0000000E+00 + 9.3060000E+08 0.0000000E+00 + 9.3069997E+08 0.0000000E+00 + 9.3080000E+08 0.0000000E+00 + 9.3090003E+08 0.0000000E+00 + 9.3100000E+08 0.0000000E+00 + 9.3109997E+08 0.0000000E+00 + 9.3120000E+08 0.0000000E+00 + 9.3130003E+08 0.0000000E+00 + 9.3140000E+08 0.0000000E+00 + 9.3149997E+08 0.0000000E+00 + 9.3160000E+08 0.0000000E+00 + 9.3170003E+08 0.0000000E+00 + 9.3180000E+08 0.0000000E+00 + 9.3189997E+08 0.0000000E+00 + 9.3200000E+08 0.0000000E+00 + 9.3210003E+08 0.0000000E+00 + 9.3220000E+08 0.0000000E+00 + 9.3229997E+08 0.0000000E+00 + 9.3240000E+08 0.0000000E+00 + 9.3250003E+08 0.0000000E+00 + 9.3260000E+08 0.0000000E+00 + 9.3269997E+08 0.0000000E+00 + 9.3280000E+08 0.0000000E+00 + 9.3290003E+08 0.0000000E+00 + 9.3300000E+08 0.0000000E+00 + 9.3309997E+08 0.0000000E+00 + 9.3320000E+08 0.0000000E+00 + 9.3330003E+08 0.0000000E+00 + 9.3340000E+08 0.0000000E+00 + 9.3349997E+08 0.0000000E+00 + 9.3360000E+08 0.0000000E+00 + 9.3370003E+08 0.0000000E+00 + 9.3380000E+08 0.0000000E+00 + 9.3389997E+08 0.0000000E+00 + 9.3400000E+08 0.0000000E+00 + 9.3410003E+08 0.0000000E+00 + 9.3420000E+08 0.0000000E+00 + 9.3429997E+08 0.0000000E+00 + 9.3440000E+08 0.0000000E+00 + 9.3450003E+08 0.0000000E+00 + 9.3460000E+08 0.0000000E+00 + 9.3469997E+08 0.0000000E+00 + 9.3480000E+08 0.0000000E+00 + 9.3490003E+08 0.0000000E+00 + 9.3500000E+08 0.0000000E+00 + 9.3509997E+08 0.0000000E+00 + 9.3520000E+08 0.0000000E+00 + 9.3530003E+08 0.0000000E+00 + 9.3540000E+08 0.0000000E+00 + 9.3549997E+08 0.0000000E+00 + 9.3560000E+08 0.0000000E+00 + 9.3570003E+08 0.0000000E+00 + 9.3580000E+08 0.0000000E+00 + 9.3589997E+08 0.0000000E+00 + 9.3600000E+08 0.0000000E+00 + 9.3610003E+08 0.0000000E+00 + 9.3620000E+08 0.0000000E+00 + 9.3629997E+08 0.0000000E+00 + 9.3640000E+08 0.0000000E+00 + 9.3650003E+08 0.0000000E+00 + 9.3660000E+08 0.0000000E+00 + 9.3669997E+08 0.0000000E+00 + 9.3680000E+08 0.0000000E+00 + 9.3690003E+08 0.0000000E+00 + 9.3700000E+08 0.0000000E+00 + 9.3709997E+08 0.0000000E+00 + 9.3720000E+08 0.0000000E+00 + 9.3730003E+08 0.0000000E+00 + 9.3740000E+08 0.0000000E+00 + 9.3749997E+08 0.0000000E+00 + 9.3760000E+08 0.0000000E+00 + 9.3770003E+08 0.0000000E+00 + 9.3780000E+08 0.0000000E+00 + 9.3789997E+08 0.0000000E+00 + 9.3800000E+08 0.0000000E+00 + 9.3810003E+08 0.0000000E+00 + 9.3820000E+08 0.0000000E+00 + 9.3829997E+08 0.0000000E+00 + 9.3840000E+08 0.0000000E+00 + 9.3850003E+08 0.0000000E+00 + 9.3860000E+08 0.0000000E+00 + 9.3869997E+08 0.0000000E+00 + 9.3880000E+08 0.0000000E+00 + 9.3890003E+08 0.0000000E+00 + 9.3900000E+08 0.0000000E+00 + 9.3909997E+08 0.0000000E+00 + 9.3920000E+08 0.0000000E+00 + 9.3930003E+08 0.0000000E+00 + 9.3940000E+08 0.0000000E+00 + 9.3949997E+08 0.0000000E+00 + 9.3960000E+08 0.0000000E+00 + 9.3970003E+08 0.0000000E+00 + 9.3980000E+08 0.0000000E+00 + 9.3989997E+08 0.0000000E+00 + 9.4000000E+08 0.0000000E+00 + 9.4010003E+08 0.0000000E+00 + 9.4020000E+08 0.0000000E+00 + 9.4029997E+08 0.0000000E+00 + 9.4040000E+08 0.0000000E+00 + 9.4050003E+08 0.0000000E+00 + 9.4060000E+08 0.0000000E+00 + 9.4069997E+08 0.0000000E+00 + 9.4080000E+08 0.0000000E+00 + 9.4090003E+08 0.0000000E+00 + 9.4100000E+08 0.0000000E+00 + 9.4109997E+08 0.0000000E+00 + 9.4120000E+08 0.0000000E+00 + 9.4130003E+08 0.0000000E+00 + 9.4140000E+08 0.0000000E+00 + 9.4149997E+08 0.0000000E+00 + 9.4160000E+08 0.0000000E+00 + 9.4170003E+08 0.0000000E+00 + 9.4180000E+08 0.0000000E+00 + 9.4189997E+08 0.0000000E+00 + 9.4200000E+08 0.0000000E+00 + 9.4210003E+08 0.0000000E+00 + 9.4220000E+08 0.0000000E+00 + 9.4229997E+08 0.0000000E+00 + 9.4240000E+08 0.0000000E+00 + 9.4250003E+08 0.0000000E+00 + 9.4260000E+08 0.0000000E+00 + 9.4269997E+08 0.0000000E+00 + 9.4280000E+08 0.0000000E+00 + 9.4290003E+08 0.0000000E+00 + 9.4300000E+08 0.0000000E+00 + 9.4309997E+08 0.0000000E+00 + 9.4320000E+08 0.0000000E+00 + 9.4330003E+08 0.0000000E+00 + 9.4340000E+08 0.0000000E+00 + 9.4349997E+08 0.0000000E+00 + 9.4360000E+08 0.0000000E+00 + 9.4370003E+08 0.0000000E+00 + 9.4380000E+08 0.0000000E+00 + 9.4389997E+08 0.0000000E+00 + 9.4400000E+08 0.0000000E+00 + 9.4410003E+08 0.0000000E+00 + 9.4420000E+08 0.0000000E+00 + 9.4429997E+08 0.0000000E+00 + 9.4440000E+08 0.0000000E+00 + 9.4450003E+08 0.0000000E+00 + 9.4460000E+08 0.0000000E+00 + 9.4469997E+08 0.0000000E+00 + 9.4480000E+08 0.0000000E+00 + 9.4490003E+08 0.0000000E+00 + 9.4500000E+08 0.0000000E+00 + 9.4509997E+08 0.0000000E+00 + 9.4520000E+08 0.0000000E+00 + 9.4530003E+08 0.0000000E+00 + 9.4540000E+08 0.0000000E+00 + 9.4549997E+08 0.0000000E+00 + 9.4560000E+08 0.0000000E+00 + 9.4570003E+08 0.0000000E+00 + 9.4580000E+08 0.0000000E+00 + 9.4589997E+08 0.0000000E+00 + 9.4600000E+08 0.0000000E+00 + 9.4610003E+08 0.0000000E+00 + 9.4620000E+08 0.0000000E+00 + 9.4629997E+08 0.0000000E+00 + 9.4640000E+08 0.0000000E+00 + 9.4650003E+08 0.0000000E+00 + 9.4660000E+08 0.0000000E+00 + 9.4669997E+08 0.0000000E+00 + 9.4680000E+08 0.0000000E+00 + 9.4690003E+08 0.0000000E+00 + 9.4700000E+08 0.0000000E+00 + 9.4709997E+08 0.0000000E+00 + 9.4720000E+08 0.0000000E+00 + 9.4730003E+08 0.0000000E+00 + 9.4740000E+08 0.0000000E+00 + 9.4749997E+08 0.0000000E+00 + 9.4760000E+08 0.0000000E+00 + 9.4770003E+08 0.0000000E+00 + 9.4780000E+08 0.0000000E+00 + 9.4789997E+08 0.0000000E+00 + 9.4800000E+08 0.0000000E+00 + 9.4810003E+08 0.0000000E+00 + 9.4820000E+08 0.0000000E+00 + 9.4829997E+08 0.0000000E+00 + 9.4840000E+08 0.0000000E+00 + 9.4850003E+08 0.0000000E+00 + 9.4860000E+08 0.0000000E+00 + 9.4869997E+08 0.0000000E+00 + 9.4880000E+08 0.0000000E+00 + 9.4890003E+08 0.0000000E+00 + 9.4900000E+08 0.0000000E+00 + 9.4909997E+08 0.0000000E+00 + 9.4920000E+08 0.0000000E+00 + 9.4930003E+08 0.0000000E+00 + 9.4940000E+08 0.0000000E+00 + 9.4949997E+08 0.0000000E+00 + 9.4960000E+08 0.0000000E+00 + 9.4970003E+08 0.0000000E+00 + 9.4980000E+08 0.0000000E+00 + 9.4989997E+08 0.0000000E+00 + 9.5000000E+08 0.0000000E+00 + 9.5010003E+08 0.0000000E+00 + 9.5020000E+08 0.0000000E+00 + 9.5029997E+08 0.0000000E+00 + 9.5040000E+08 0.0000000E+00 + 9.5050003E+08 0.0000000E+00 + 9.5060000E+08 0.0000000E+00 + 9.5069997E+08 0.0000000E+00 + 9.5080000E+08 0.0000000E+00 + 9.5090003E+08 0.0000000E+00 + 9.5100000E+08 0.0000000E+00 + 9.5109997E+08 0.0000000E+00 + 9.5120000E+08 0.0000000E+00 + 9.5130003E+08 0.0000000E+00 + 9.5140000E+08 0.0000000E+00 + 9.5149997E+08 0.0000000E+00 + 9.5160000E+08 0.0000000E+00 + 9.5170003E+08 0.0000000E+00 + 9.5180000E+08 0.0000000E+00 + 9.5189997E+08 0.0000000E+00 + 9.5200000E+08 0.0000000E+00 + 9.5210003E+08 0.0000000E+00 + 9.5220000E+08 0.0000000E+00 + 9.5229997E+08 0.0000000E+00 + 9.5240000E+08 0.0000000E+00 + 9.5250003E+08 0.0000000E+00 + 9.5260000E+08 0.0000000E+00 + 9.5269997E+08 0.0000000E+00 + 9.5280000E+08 0.0000000E+00 + 9.5290003E+08 0.0000000E+00 + 9.5300000E+08 0.0000000E+00 + 9.5309997E+08 0.0000000E+00 + 9.5320000E+08 0.0000000E+00 + 9.5330003E+08 0.0000000E+00 + 9.5340000E+08 0.0000000E+00 + 9.5349997E+08 0.0000000E+00 + 9.5360000E+08 0.0000000E+00 + 9.5370003E+08 0.0000000E+00 + 9.5380000E+08 0.0000000E+00 + 9.5389997E+08 0.0000000E+00 + 9.5400000E+08 0.0000000E+00 + 9.5410003E+08 0.0000000E+00 + 9.5420000E+08 0.0000000E+00 + 9.5429997E+08 0.0000000E+00 + 9.5440000E+08 0.0000000E+00 + 9.5450003E+08 0.0000000E+00 + 9.5460000E+08 0.0000000E+00 + 9.5469997E+08 0.0000000E+00 + 9.5480000E+08 0.0000000E+00 + 9.5490003E+08 0.0000000E+00 + 9.5500000E+08 0.0000000E+00 + 9.5509997E+08 0.0000000E+00 + 9.5520000E+08 0.0000000E+00 + 9.5530003E+08 0.0000000E+00 + 9.5540000E+08 0.0000000E+00 + 9.5549997E+08 0.0000000E+00 + 9.5560000E+08 0.0000000E+00 + 9.5570003E+08 0.0000000E+00 + 9.5580000E+08 0.0000000E+00 + 9.5589997E+08 0.0000000E+00 + 9.5600000E+08 0.0000000E+00 + 9.5610003E+08 0.0000000E+00 + 9.5620000E+08 0.0000000E+00 + 9.5629997E+08 0.0000000E+00 + 9.5640000E+08 0.0000000E+00 + 9.5650003E+08 0.0000000E+00 + 9.5660000E+08 0.0000000E+00 + 9.5669997E+08 0.0000000E+00 + 9.5680000E+08 0.0000000E+00 + 9.5690003E+08 0.0000000E+00 + 9.5700000E+08 0.0000000E+00 + 9.5709997E+08 0.0000000E+00 + 9.5720000E+08 0.0000000E+00 + 9.5730003E+08 0.0000000E+00 + 9.5740000E+08 0.0000000E+00 + 9.5749997E+08 0.0000000E+00 + 9.5760000E+08 0.0000000E+00 + 9.5770003E+08 0.0000000E+00 + 9.5780000E+08 0.0000000E+00 + 9.5789997E+08 0.0000000E+00 + 9.5800000E+08 0.0000000E+00 + 9.5810003E+08 0.0000000E+00 + 9.5820000E+08 0.0000000E+00 + 9.5829997E+08 0.0000000E+00 + 9.5840000E+08 0.0000000E+00 + 9.5850003E+08 0.0000000E+00 + 9.5860000E+08 0.0000000E+00 + 9.5869997E+08 0.0000000E+00 + 9.5880000E+08 0.0000000E+00 + 9.5890003E+08 0.0000000E+00 + 9.5900000E+08 0.0000000E+00 + 9.5909997E+08 0.0000000E+00 + 9.5920000E+08 0.0000000E+00 + 9.5930003E+08 0.0000000E+00 + 9.5940000E+08 0.0000000E+00 + 9.5949997E+08 0.0000000E+00 + 9.5960000E+08 0.0000000E+00 + 9.5970003E+08 0.0000000E+00 + 9.5980000E+08 0.0000000E+00 + 9.5989997E+08 0.0000000E+00 + 9.6000000E+08 0.0000000E+00 + 9.6010003E+08 0.0000000E+00 + 9.6020000E+08 0.0000000E+00 + 9.6029997E+08 0.0000000E+00 + 9.6040000E+08 0.0000000E+00 + 9.6050003E+08 0.0000000E+00 + 9.6060000E+08 0.0000000E+00 + 9.6069997E+08 0.0000000E+00 + 9.6080000E+08 0.0000000E+00 + 9.6090003E+08 0.0000000E+00 + 9.6100000E+08 0.0000000E+00 + 9.6109997E+08 0.0000000E+00 + 9.6120000E+08 0.0000000E+00 + 9.6130003E+08 0.0000000E+00 + 9.6140000E+08 0.0000000E+00 + 9.6149997E+08 0.0000000E+00 + 9.6160000E+08 0.0000000E+00 + 9.6170003E+08 0.0000000E+00 + 9.6180000E+08 0.0000000E+00 + 9.6189997E+08 0.0000000E+00 + 9.6200000E+08 0.0000000E+00 + 9.6210003E+08 0.0000000E+00 + 9.6220000E+08 0.0000000E+00 + 9.6229997E+08 0.0000000E+00 + 9.6240000E+08 0.0000000E+00 + 9.6250003E+08 0.0000000E+00 + 9.6260000E+08 0.0000000E+00 + 9.6269997E+08 0.0000000E+00 + 9.6280000E+08 0.0000000E+00 + 9.6290003E+08 0.0000000E+00 + 9.6300000E+08 0.0000000E+00 + 9.6309997E+08 0.0000000E+00 + 9.6320000E+08 0.0000000E+00 + 9.6330003E+08 0.0000000E+00 + 9.6340000E+08 0.0000000E+00 + 9.6349997E+08 0.0000000E+00 + 9.6360000E+08 0.0000000E+00 + 9.6370003E+08 0.0000000E+00 + 9.6380000E+08 0.0000000E+00 + 9.6389997E+08 0.0000000E+00 + 9.6400000E+08 0.0000000E+00 + 9.6410003E+08 0.0000000E+00 + 9.6420000E+08 0.0000000E+00 + 9.6429997E+08 0.0000000E+00 + 9.6440000E+08 0.0000000E+00 + 9.6450003E+08 0.0000000E+00 + 9.6460000E+08 0.0000000E+00 + 9.6469997E+08 0.0000000E+00 + 9.6480000E+08 0.0000000E+00 + 9.6490003E+08 0.0000000E+00 + 9.6500000E+08 0.0000000E+00 + 9.6509997E+08 0.0000000E+00 + 9.6520000E+08 0.0000000E+00 + 9.6530003E+08 0.0000000E+00 + 9.6540000E+08 0.0000000E+00 + 9.6549997E+08 0.0000000E+00 + 9.6560000E+08 0.0000000E+00 + 9.6570003E+08 0.0000000E+00 + 9.6580000E+08 0.0000000E+00 + 9.6589997E+08 0.0000000E+00 + 9.6600000E+08 0.0000000E+00 + 9.6610003E+08 0.0000000E+00 + 9.6620000E+08 0.0000000E+00 + 9.6629997E+08 0.0000000E+00 + 9.6640000E+08 0.0000000E+00 + 9.6650003E+08 0.0000000E+00 + 9.6660000E+08 0.0000000E+00 + 9.6669997E+08 0.0000000E+00 + 9.6680000E+08 0.0000000E+00 + 9.6690003E+08 0.0000000E+00 + 9.6700000E+08 0.0000000E+00 + 9.6709997E+08 0.0000000E+00 + 9.6720000E+08 0.0000000E+00 + 9.6730003E+08 0.0000000E+00 + 9.6740000E+08 0.0000000E+00 + 9.6749997E+08 0.0000000E+00 + 9.6760000E+08 0.0000000E+00 + 9.6770003E+08 0.0000000E+00 + 9.6780000E+08 0.0000000E+00 + 9.6789997E+08 0.0000000E+00 + 9.6800000E+08 0.0000000E+00 + 9.6810003E+08 0.0000000E+00 + 9.6820000E+08 0.0000000E+00 + 9.6829997E+08 0.0000000E+00 + 9.6840000E+08 0.0000000E+00 + 9.6850003E+08 0.0000000E+00 + 9.6860000E+08 0.0000000E+00 + 9.6869997E+08 0.0000000E+00 + 9.6880000E+08 0.0000000E+00 + 9.6890003E+08 0.0000000E+00 + 9.6900000E+08 0.0000000E+00 + 9.6909997E+08 0.0000000E+00 + 9.6920000E+08 0.0000000E+00 + 9.6930003E+08 0.0000000E+00 + 9.6940000E+08 0.0000000E+00 + 9.6949997E+08 0.0000000E+00 + 9.6960000E+08 0.0000000E+00 + 9.6970003E+08 0.0000000E+00 + 9.6980000E+08 0.0000000E+00 + 9.6989997E+08 0.0000000E+00 + 9.7000000E+08 0.0000000E+00 + 9.7010003E+08 0.0000000E+00 + 9.7020000E+08 0.0000000E+00 + 9.7029997E+08 0.0000000E+00 + 9.7040000E+08 0.0000000E+00 + 9.7050003E+08 0.0000000E+00 + 9.7060000E+08 0.0000000E+00 + 9.7069997E+08 0.0000000E+00 + 9.7080000E+08 0.0000000E+00 + 9.7090003E+08 0.0000000E+00 + 9.7100000E+08 0.0000000E+00 + 9.7109997E+08 0.0000000E+00 + 9.7120000E+08 0.0000000E+00 + 9.7130003E+08 0.0000000E+00 + 9.7140000E+08 0.0000000E+00 + 9.7149997E+08 0.0000000E+00 + 9.7160000E+08 0.0000000E+00 + 9.7170003E+08 0.0000000E+00 + 9.7180000E+08 0.0000000E+00 + 9.7189997E+08 0.0000000E+00 + 9.7200000E+08 0.0000000E+00 + 9.7210003E+08 0.0000000E+00 + 9.7220000E+08 0.0000000E+00 + 9.7229997E+08 0.0000000E+00 + 9.7240000E+08 0.0000000E+00 + 9.7250003E+08 0.0000000E+00 + 9.7260000E+08 0.0000000E+00 + 9.7269997E+08 0.0000000E+00 + 9.7280000E+08 0.0000000E+00 + 9.7290003E+08 0.0000000E+00 + 9.7300000E+08 0.0000000E+00 + 9.7309997E+08 0.0000000E+00 + 9.7320000E+08 0.0000000E+00 + 9.7330003E+08 0.0000000E+00 + 9.7340000E+08 0.0000000E+00 + 9.7349997E+08 0.0000000E+00 + 9.7360000E+08 0.0000000E+00 + 9.7370003E+08 0.0000000E+00 + 9.7380000E+08 0.0000000E+00 + 9.7389997E+08 0.0000000E+00 + 9.7400000E+08 0.0000000E+00 + 9.7410003E+08 0.0000000E+00 + 9.7420000E+08 0.0000000E+00 + 9.7429997E+08 0.0000000E+00 + 9.7440000E+08 0.0000000E+00 + 9.7450003E+08 0.0000000E+00 + 9.7460000E+08 0.0000000E+00 + 9.7469997E+08 0.0000000E+00 + 9.7480000E+08 0.0000000E+00 + 9.7490003E+08 0.0000000E+00 + 9.7500000E+08 0.0000000E+00 + 9.7509997E+08 0.0000000E+00 + 9.7520000E+08 0.0000000E+00 + 9.7530003E+08 0.0000000E+00 + 9.7540000E+08 0.0000000E+00 + 9.7549997E+08 0.0000000E+00 + 9.7560000E+08 0.0000000E+00 + 9.7570003E+08 0.0000000E+00 + 9.7580000E+08 0.0000000E+00 + 9.7589997E+08 0.0000000E+00 + 9.7600000E+08 0.0000000E+00 + 9.7610003E+08 0.0000000E+00 + 9.7620000E+08 0.0000000E+00 + 9.7629997E+08 0.0000000E+00 + 9.7640000E+08 0.0000000E+00 + 9.7650003E+08 0.0000000E+00 + 9.7660000E+08 0.0000000E+00 + 9.7669997E+08 0.0000000E+00 + 9.7680000E+08 0.0000000E+00 + 9.7690003E+08 0.0000000E+00 + 9.7700000E+08 0.0000000E+00 + 9.7709997E+08 0.0000000E+00 + 9.7720000E+08 0.0000000E+00 + 9.7730003E+08 0.0000000E+00 + 9.7740000E+08 0.0000000E+00 + 9.7749997E+08 0.0000000E+00 + 9.7760000E+08 0.0000000E+00 + 9.7770003E+08 0.0000000E+00 + 9.7780000E+08 0.0000000E+00 + 9.7789997E+08 0.0000000E+00 + 9.7800000E+08 0.0000000E+00 + 9.7810003E+08 0.0000000E+00 + 9.7820000E+08 0.0000000E+00 + 9.7829997E+08 0.0000000E+00 + 9.7840000E+08 0.0000000E+00 + 9.7850003E+08 0.0000000E+00 + 9.7860000E+08 0.0000000E+00 + 9.7869997E+08 0.0000000E+00 + 9.7880000E+08 0.0000000E+00 + 9.7890003E+08 0.0000000E+00 + 9.7900000E+08 0.0000000E+00 + 9.7909997E+08 0.0000000E+00 + 9.7920000E+08 0.0000000E+00 + 9.7930003E+08 0.0000000E+00 + 9.7940000E+08 0.0000000E+00 + 9.7949997E+08 0.0000000E+00 + 9.7960000E+08 0.0000000E+00 + 9.7970003E+08 0.0000000E+00 + 9.7980000E+08 0.0000000E+00 + 9.7989997E+08 0.0000000E+00 + 9.8000000E+08 0.0000000E+00 + 9.8010003E+08 0.0000000E+00 + 9.8020000E+08 0.0000000E+00 + 9.8029997E+08 0.0000000E+00 + 9.8040000E+08 0.0000000E+00 + 9.8050003E+08 0.0000000E+00 + 9.8060000E+08 0.0000000E+00 + 9.8069997E+08 0.0000000E+00 + 9.8080000E+08 0.0000000E+00 + 9.8090003E+08 0.0000000E+00 + 9.8100000E+08 0.0000000E+00 + 9.8109997E+08 0.0000000E+00 + 9.8120000E+08 0.0000000E+00 + 9.8130003E+08 0.0000000E+00 + 9.8140000E+08 0.0000000E+00 + 9.8149997E+08 0.0000000E+00 + 9.8160000E+08 0.0000000E+00 + 9.8170003E+08 0.0000000E+00 + 9.8180000E+08 0.0000000E+00 + 9.8189997E+08 0.0000000E+00 + 9.8200000E+08 0.0000000E+00 + 9.8210003E+08 0.0000000E+00 + 9.8220000E+08 0.0000000E+00 + 9.8229997E+08 0.0000000E+00 + 9.8240000E+08 0.0000000E+00 + 9.8250003E+08 0.0000000E+00 + 9.8260000E+08 0.0000000E+00 + 9.8269997E+08 0.0000000E+00 + 9.8280000E+08 0.0000000E+00 + 9.8290003E+08 0.0000000E+00 + 9.8300000E+08 0.0000000E+00 + 9.8309997E+08 0.0000000E+00 + 9.8320000E+08 0.0000000E+00 + 9.8330003E+08 0.0000000E+00 + 9.8340000E+08 0.0000000E+00 + 9.8349997E+08 0.0000000E+00 + 9.8360000E+08 0.0000000E+00 + 9.8370003E+08 0.0000000E+00 + 9.8380000E+08 0.0000000E+00 + 9.8389997E+08 0.0000000E+00 + 9.8400000E+08 0.0000000E+00 + 9.8410003E+08 0.0000000E+00 + 9.8420000E+08 0.0000000E+00 + 9.8429997E+08 0.0000000E+00 + 9.8440000E+08 0.0000000E+00 + 9.8450003E+08 0.0000000E+00 + 9.8460000E+08 0.0000000E+00 + 9.8469997E+08 0.0000000E+00 + 9.8480000E+08 0.0000000E+00 + 9.8490003E+08 0.0000000E+00 + 9.8500000E+08 0.0000000E+00 + 9.8509997E+08 0.0000000E+00 + 9.8520000E+08 0.0000000E+00 + 9.8530003E+08 0.0000000E+00 + 9.8540000E+08 0.0000000E+00 + 9.8549997E+08 0.0000000E+00 + 9.8560000E+08 0.0000000E+00 + 9.8570003E+08 0.0000000E+00 + 9.8580000E+08 0.0000000E+00 + 9.8589997E+08 0.0000000E+00 + 9.8600000E+08 0.0000000E+00 + 9.8610003E+08 0.0000000E+00 + 9.8620000E+08 0.0000000E+00 + 9.8629997E+08 0.0000000E+00 + 9.8640000E+08 0.0000000E+00 + 9.8650003E+08 0.0000000E+00 + 9.8660000E+08 0.0000000E+00 + 9.8669997E+08 0.0000000E+00 + 9.8680000E+08 0.0000000E+00 + 9.8690003E+08 0.0000000E+00 + 9.8700000E+08 0.0000000E+00 + 9.8709997E+08 0.0000000E+00 + 9.8720000E+08 0.0000000E+00 + 9.8730003E+08 0.0000000E+00 + 9.8740000E+08 0.0000000E+00 + 9.8749997E+08 0.0000000E+00 + 9.8760000E+08 0.0000000E+00 + 9.8770003E+08 0.0000000E+00 + 9.8780000E+08 0.0000000E+00 + 9.8789997E+08 0.0000000E+00 + 9.8800000E+08 0.0000000E+00 + 9.8810003E+08 0.0000000E+00 + 9.8820000E+08 0.0000000E+00 + 9.8829997E+08 0.0000000E+00 + 9.8840000E+08 0.0000000E+00 + 9.8850003E+08 0.0000000E+00 + 9.8860000E+08 0.0000000E+00 + 9.8869997E+08 0.0000000E+00 + 9.8880000E+08 0.0000000E+00 + 9.8890003E+08 0.0000000E+00 + 9.8900000E+08 0.0000000E+00 + 9.8909997E+08 0.0000000E+00 + 9.8920000E+08 0.0000000E+00 + 9.8930003E+08 0.0000000E+00 + 9.8940000E+08 0.0000000E+00 + 9.8949997E+08 0.0000000E+00 + 9.8960000E+08 0.0000000E+00 + 9.8970003E+08 0.0000000E+00 + 9.8980000E+08 0.0000000E+00 + 9.8989997E+08 0.0000000E+00 + 9.9000000E+08 0.0000000E+00 + 9.9010003E+08 0.0000000E+00 + 9.9020000E+08 0.0000000E+00 + 9.9029997E+08 0.0000000E+00 + 9.9040000E+08 0.0000000E+00 + 9.9050003E+08 0.0000000E+00 + 9.9060000E+08 0.0000000E+00 + 9.9069997E+08 0.0000000E+00 + 9.9080000E+08 0.0000000E+00 + 9.9090003E+08 0.0000000E+00 + 9.9100000E+08 0.0000000E+00 + 9.9109997E+08 0.0000000E+00 + 9.9120000E+08 0.0000000E+00 + 9.9130003E+08 0.0000000E+00 + 9.9140000E+08 0.0000000E+00 + 9.9149997E+08 0.0000000E+00 + 9.9160000E+08 0.0000000E+00 + 9.9170003E+08 0.0000000E+00 + 9.9180000E+08 0.0000000E+00 + 9.9189997E+08 0.0000000E+00 + 9.9200000E+08 0.0000000E+00 + 9.9210003E+08 0.0000000E+00 + 9.9220000E+08 0.0000000E+00 + 9.9229997E+08 0.0000000E+00 + 9.9240000E+08 0.0000000E+00 + 9.9250003E+08 0.0000000E+00 + 9.9260000E+08 0.0000000E+00 + 9.9269997E+08 0.0000000E+00 + 9.9280000E+08 0.0000000E+00 + 9.9290003E+08 0.0000000E+00 + 9.9300000E+08 0.0000000E+00 + 9.9309997E+08 0.0000000E+00 + 9.9320000E+08 0.0000000E+00 + 9.9330003E+08 0.0000000E+00 + 9.9340000E+08 0.0000000E+00 + 9.9349997E+08 0.0000000E+00 + 9.9360000E+08 0.0000000E+00 + 9.9370003E+08 0.0000000E+00 + 9.9380000E+08 0.0000000E+00 + 9.9389997E+08 0.0000000E+00 + 9.9400000E+08 0.0000000E+00 + 9.9410003E+08 0.0000000E+00 + 9.9420000E+08 0.0000000E+00 + 9.9429997E+08 0.0000000E+00 + 9.9440000E+08 0.0000000E+00 + 9.9450003E+08 0.0000000E+00 + 9.9460000E+08 0.0000000E+00 + 9.9469997E+08 0.0000000E+00 + 9.9480000E+08 0.0000000E+00 + 9.9490003E+08 0.0000000E+00 + 9.9500000E+08 0.0000000E+00 + 9.9509997E+08 0.0000000E+00 + 9.9520000E+08 0.0000000E+00 + 9.9530003E+08 0.0000000E+00 + 9.9540000E+08 0.0000000E+00 + 9.9549997E+08 0.0000000E+00 + 9.9560000E+08 0.0000000E+00 + 9.9570003E+08 0.0000000E+00 + 9.9580000E+08 0.0000000E+00 + 9.9589997E+08 0.0000000E+00 + 9.9600000E+08 0.0000000E+00 + 9.9610003E+08 0.0000000E+00 + 9.9620000E+08 0.0000000E+00 + 9.9629997E+08 0.0000000E+00 + 9.9640000E+08 0.0000000E+00 + 9.9650003E+08 0.0000000E+00 + 9.9660000E+08 0.0000000E+00 + 9.9669997E+08 0.0000000E+00 + 9.9680000E+08 0.0000000E+00 + 9.9690003E+08 0.0000000E+00 + 9.9700000E+08 0.0000000E+00 + 9.9709997E+08 0.0000000E+00 + 9.9720000E+08 0.0000000E+00 + 9.9730003E+08 0.0000000E+00 + 9.9740000E+08 0.0000000E+00 + 9.9749997E+08 0.0000000E+00 + 9.9760000E+08 0.0000000E+00 + 9.9770003E+08 0.0000000E+00 + 9.9780000E+08 0.0000000E+00 + 9.9789997E+08 0.0000000E+00 + 9.9800000E+08 0.0000000E+00 + 9.9810003E+08 0.0000000E+00 + 9.9820000E+08 0.0000000E+00 + 9.9829997E+08 0.0000000E+00 + 9.9840000E+08 0.0000000E+00 + 9.9850003E+08 0.0000000E+00 + 9.9860000E+08 0.0000000E+00 + 9.9869997E+08 0.0000000E+00 + 9.9880000E+08 0.0000000E+00 + 9.9890003E+08 0.0000000E+00 + 9.9900000E+08 0.0000000E+00 + 9.9909997E+08 0.0000000E+00 + 9.9920000E+08 0.0000000E+00 + 9.9930003E+08 0.0000000E+00 + 9.9940000E+08 0.0000000E+00 + 9.9949997E+08 0.0000000E+00 + 9.9960000E+08 0.0000000E+00 + 9.9970003E+08 0.0000000E+00 + 9.9980000E+08 0.0000000E+00 + 9.9989997E+08 0.0000000E+00 + 1.0000000E+09 0.0000000E+00 + 1.0001000E+09 0.0000000E+00 diff --git a/example/test_problem/Hydro/FermiBubble/plot_scripts/cf_1.5keV.dat b/example/test_problem/Hydro/FermiBubble/plot_scripts/cf_1.5keV.dat new file mode 100644 index 0000000000..d7d032b527 --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/plot_scripts/cf_1.5keV.dat @@ -0,0 +1,10000 @@ + 200000.0 0.0000000E+00 + 300000.0 0.0000000E+00 + 400000.0 0.0000000E+00 + 500000.0 1.8955727E-35 + 600000.0 1.4461061E-34 + 700000.0 2.1139409E-32 + 800000.0 3.6675546E-31 + 900000.0 1.8293589E-30 + 1000000. 8.2681459E-30 + 1100000. 4.2514919E-29 + 1200000. 7.6761663E-29 + 1300000. 2.6381766E-28 + 1400000. 5.8724734E-28 + 1500000. 9.1067665E-28 + 1600000. 1.5070276E-27 + 1700000. 3.1538029E-27 + 1800000. 4.8005784E-27 + 1900000. 6.4473567E-27 + 2000000. 8.0941320E-27 + 2100000. 1.2932934E-26 + 2200000. 1.7774656E-26 + 2300000. 2.2616369E-26 + 2400000. 2.7458085E-26 + 2500000. 3.2299805E-26 + 2600000. 3.9179073E-26 + 2700000. 4.7056280E-26 + 2800000. 5.4933500E-26 + 2900000. 6.2810708E-26 + 3000000. 7.0687915E-26 + 3100000. 7.8565123E-26 + 3200000. 8.6442355E-26 + 3300000. 9.5882518E-26 + 3400000. 1.0545092E-25 + 3500000. 1.1501932E-25 + 3600000. 1.2458771E-25 + 3700000. 1.3415611E-25 + 3800000. 1.4372454E-25 + 3900000. 1.5329295E-25 + 4000000. 1.6286134E-25 + 4100000. 1.7322798E-25 + 4200000. 1.8489809E-25 + 4300000. 1.9656824E-25 + 4400000. 2.0823835E-25 + 4500000. 2.1990846E-25 + 4600000. 2.3157857E-25 + 4700000. 2.4324869E-25 + 4800000. 2.5491880E-25 + 4900000. 2.6658896E-25 + 5000000. 2.7825907E-25 + 5100000. 2.8992916E-25 + 5200000. 3.0260137E-25 + 5300000. 3.1606291E-25 + 5400000. 3.2952446E-25 + 5500000. 3.4298607E-25 + 5600000. 3.5644759E-25 + 5700000. 3.6990916E-25 + 5800000. 3.8337067E-25 + 5900000. 3.9683224E-25 + 6000000. 4.1029378E-25 + 6100000. 4.2375532E-25 + 6200000. 4.3721689E-25 + 6300000. 4.5067840E-25 + 6400000. 4.6414002E-25 + 6500000. 4.7760159E-25 + 6600000. 4.8982888E-25 + 6700000. 5.0184959E-25 + 6800000. 5.1387030E-25 + 6900000. 5.2589107E-25 + 7000000. 5.3791178E-25 + 7100000. 5.4993249E-25 + 7200000. 5.6195320E-25 + 7300000. 5.7397391E-25 + 7400000. 5.8599467E-25 + 7500000. 5.9801543E-25 + 7600000. 6.1003620E-25 + 7700000. 6.2205691E-25 + 7800000. 6.3407762E-25 + 7900000. 6.4609833E-25 + 8000000. 6.5811904E-25 + 8100000. 6.7013980E-25 + 8200000. 6.8216052E-25 + 8300000. 6.9340617E-25 + 8400000. 7.0388826E-25 + 8500000. 7.1437040E-25 + 8600000. 7.2485253E-25 + 8700000. 7.3533462E-25 + 8800000. 7.4581671E-25 + 8900000. 7.5629880E-25 + 9000000. 7.6678089E-25 + 9100000. 7.7726297E-25 + 9200000. 7.8774506E-25 + 9300000. 7.9822715E-25 + 9400000. 8.0870924E-25 + 9500000. 8.1919133E-25 + 9600000. 8.2967341E-25 + 9700000. 8.4015550E-25 + 9800000. 8.5063769E-25 + 9900000. 8.6111978E-25 + 1.0000000E+07 8.7160186E-25 + 1.0100000E+07 8.8208395E-25 + 1.0200000E+07 8.9256604E-25 + 1.0300000E+07 9.0304813E-25 + 1.0400000E+07 9.1353021E-25 + 1.0500000E+07 9.2292959E-25 + 1.0600000E+07 9.3136251E-25 + 1.0700000E+07 9.3979534E-25 + 1.0800000E+07 9.4822826E-25 + 1.0900000E+07 9.5666118E-25 + 1.1000000E+07 9.6509401E-25 + 1.1100000E+07 9.7352693E-25 + 1.1200000E+07 9.8195976E-25 + 1.1300000E+07 9.9039268E-25 + 1.1400000E+07 9.9882550E-25 + 1.1500000E+07 1.0072584E-24 + 1.1600000E+07 1.0156913E-24 + 1.1700000E+07 1.0241242E-24 + 1.1800000E+07 1.0325570E-24 + 1.1900000E+07 1.0409899E-24 + 1.2000000E+07 1.0494227E-24 + 1.2100000E+07 1.0578557E-24 + 1.2200000E+07 1.0662885E-24 + 1.2300000E+07 1.0747214E-24 + 1.2400000E+07 1.0831542E-24 + 1.2500000E+07 1.0915872E-24 + 1.2600000E+07 1.1000200E-24 + 1.2700000E+07 1.1084529E-24 + 1.2800000E+07 1.1168858E-24 + 1.2900000E+07 1.1253186E-24 + 1.3000000E+07 1.1337516E-24 + 1.3100000E+07 1.1421844E-24 + 1.3200000E+07 1.1506173E-24 + 1.3300000E+07 1.1535103E-24 + 1.3400000E+07 1.1540197E-24 + 1.3500000E+07 1.1545290E-24 + 1.3600000E+07 1.1550384E-24 + 1.3700000E+07 1.1555478E-24 + 1.3800000E+07 1.1560572E-24 + 1.3900000E+07 1.1565666E-24 + 1.4000000E+07 1.1570760E-24 + 1.4100000E+07 1.1575853E-24 + 1.4200000E+07 1.1580947E-24 + 1.4300000E+07 1.1586042E-24 + 1.4400000E+07 1.1591136E-24 + 1.4500000E+07 1.1596230E-24 + 1.4600000E+07 1.1601324E-24 + 1.4700000E+07 1.1606417E-24 + 1.4800000E+07 1.1611511E-24 + 1.4900000E+07 1.1616605E-24 + 1.5000000E+07 1.1621699E-24 + 1.5100000E+07 1.1626793E-24 + 1.5200000E+07 1.1631887E-24 + 1.5300000E+07 1.1636980E-24 + 1.5400000E+07 1.1642074E-24 + 1.5500000E+07 1.1647168E-24 + 1.5600000E+07 1.1652262E-24 + 1.5700000E+07 1.1657357E-24 + 1.5800000E+07 1.1662451E-24 + 1.5900000E+07 1.1667544E-24 + 1.6000000E+07 1.1672638E-24 + 1.6100000E+07 1.1677732E-24 + 1.6200000E+07 1.1682826E-24 + 1.6300000E+07 1.1687920E-24 + 1.6400000E+07 1.1693014E-24 + 1.6500000E+07 1.1698108E-24 + 1.6600000E+07 1.1703201E-24 + 1.6700000E+07 1.1708295E-24 + 1.6800000E+07 1.1700089E-24 + 1.6900000E+07 1.1676069E-24 + 1.7000000E+07 1.1652049E-24 + 1.7100000E+07 1.1628030E-24 + 1.7200000E+07 1.1604010E-24 + 1.7300000E+07 1.1579990E-24 + 1.7400000E+07 1.1555970E-24 + 1.7500000E+07 1.1531950E-24 + 1.7600000E+07 1.1507930E-24 + 1.7700000E+07 1.1483911E-24 + 1.7800000E+07 1.1459891E-24 + 1.7900000E+07 1.1435871E-24 + 1.8000000E+07 1.1411851E-24 + 1.8100000E+07 1.1387832E-24 + 1.8200000E+07 1.1363812E-24 + 1.8300000E+07 1.1339793E-24 + 1.8400000E+07 1.1315773E-24 + 1.8500000E+07 1.1291753E-24 + 1.8600000E+07 1.1267733E-24 + 1.8700000E+07 1.1243713E-24 + 1.8800000E+07 1.1219694E-24 + 1.8900000E+07 1.1195674E-24 + 1.9000000E+07 1.1171654E-24 + 1.9100000E+07 1.1147634E-24 + 1.9200000E+07 1.1123614E-24 + 1.9300000E+07 1.1099594E-24 + 1.9400000E+07 1.1075575E-24 + 1.9500000E+07 1.1051555E-24 + 1.9600000E+07 1.1027535E-24 + 1.9700000E+07 1.1003515E-24 + 1.9800000E+07 1.0979495E-24 + 1.9900000E+07 1.0955475E-24 + 2.0000000E+07 1.0931456E-24 + 2.0100000E+07 1.0907437E-24 + 2.0200000E+07 1.0883417E-24 + 2.0300000E+07 1.0859397E-24 + 2.0400000E+07 1.0835377E-24 + 2.0500000E+07 1.0811357E-24 + 2.0600000E+07 1.0787338E-24 + 2.0700000E+07 1.0763318E-24 + 2.0800000E+07 1.0739298E-24 + 2.0900000E+07 1.0715278E-24 + 2.1000000E+07 1.0691258E-24 + 2.1100000E+07 1.0667238E-24 + 2.1200000E+07 1.0643219E-24 + 2.1300000E+07 1.0625428E-24 + 2.1400000E+07 1.0608944E-24 + 2.1500000E+07 1.0592458E-24 + 2.1600000E+07 1.0575974E-24 + 2.1700000E+07 1.0559490E-24 + 2.1800000E+07 1.0543005E-24 + 2.1900000E+07 1.0526520E-24 + 2.2000000E+07 1.0510035E-24 + 2.2100000E+07 1.0493551E-24 + 2.2200000E+07 1.0477067E-24 + 2.2300000E+07 1.0460582E-24 + 2.2400000E+07 1.0444097E-24 + 2.2500000E+07 1.0427613E-24 + 2.2600000E+07 1.0411128E-24 + 2.2700000E+07 1.0394644E-24 + 2.2800000E+07 1.0378159E-24 + 2.2900000E+07 1.0361674E-24 + 2.3000000E+07 1.0345190E-24 + 2.3100000E+07 1.0328705E-24 + 2.3200000E+07 1.0312220E-24 + 2.3300000E+07 1.0295735E-24 + 2.3400000E+07 1.0279251E-24 + 2.3500000E+07 1.0262767E-24 + 2.3600000E+07 1.0246282E-24 + 2.3700000E+07 1.0229797E-24 + 2.3800000E+07 1.0213313E-24 + 2.3900000E+07 1.0196828E-24 + 2.4000000E+07 1.0180344E-24 + 2.4100000E+07 1.0163859E-24 + 2.4200000E+07 1.0147374E-24 + 2.4300000E+07 1.0130890E-24 + 2.4400000E+07 1.0114406E-24 + 2.4500000E+07 1.0097921E-24 + 2.4600000E+07 1.0081435E-24 + 2.4700000E+07 1.0064951E-24 + 2.4800000E+07 1.0048467E-24 + 2.4900000E+07 1.0031982E-24 + 2.5000000E+07 1.0015497E-24 + 2.5100000E+07 9.9990131E-25 + 2.5200000E+07 9.9825279E-25 + 2.5300000E+07 9.9660437E-25 + 2.5400000E+07 9.9495594E-25 + 2.5500000E+07 9.9330742E-25 + 2.5600000E+07 9.9165890E-25 + 2.5700000E+07 9.9001058E-25 + 2.5800000E+07 9.8836205E-25 + 2.5900000E+07 9.8671353E-25 + 2.6000000E+07 9.8506511E-25 + 2.6100000E+07 9.8341668E-25 + 2.6200000E+07 9.8176826E-25 + 2.6300000E+07 9.8011974E-25 + 2.6400000E+07 9.7847132E-25 + 2.6500000E+07 9.7682279E-25 + 2.6600000E+07 9.7517437E-25 + 2.6700000E+07 9.7352595E-25 + 2.6800000E+07 9.7187742E-25 + 2.6900000E+07 9.7045491E-25 + 2.7000000E+07 9.6954013E-25 + 2.7100000E+07 9.6862544E-25 + 2.7200000E+07 9.6771066E-25 + 2.7300000E+07 9.6679598E-25 + 2.7400000E+07 9.6588129E-25 + 2.7500000E+07 9.6496651E-25 + 2.7600000E+07 9.6405183E-25 + 2.7700000E+07 9.6313704E-25 + 2.7800000E+07 9.6222236E-25 + 2.7900000E+07 9.6130758E-25 + 2.8000000E+07 9.6039289E-25 + 2.8100000E+07 9.5947811E-25 + 2.8200000E+07 9.5856342E-25 + 2.8300000E+07 9.5764874E-25 + 2.8400000E+07 9.5673396E-25 + 2.8500000E+07 9.5581927E-25 + 2.8600000E+07 9.5490449E-25 + 2.8700000E+07 9.5398981E-25 + 2.8800000E+07 9.5307502E-25 + 2.8900000E+07 9.5216034E-25 + 2.9000000E+07 9.5124556E-25 + 2.9100000E+07 9.5033087E-25 + 2.9200000E+07 9.4941609E-25 + 2.9300000E+07 9.4850140E-25 + 2.9400000E+07 9.4758662E-25 + 2.9500000E+07 9.4667194E-25 + 2.9600000E+07 9.4575725E-25 + 2.9700000E+07 9.4484247E-25 + 2.9800000E+07 9.4392779E-25 + 2.9900000E+07 9.4301300E-25 + 3.0000000E+07 9.4209832E-25 + 3.0100000E+07 9.4118354E-25 + 3.0200000E+07 9.4026885E-25 + 3.0300000E+07 9.3935407E-25 + 3.0400000E+07 9.3843939E-25 + 3.0500000E+07 9.3752470E-25 + 3.0600000E+07 9.3660992E-25 + 3.0700000E+07 9.3569523E-25 + 3.0800000E+07 9.3478045E-25 + 3.0900000E+07 9.3386577E-25 + 3.1000000E+07 9.3295098E-25 + 3.1100000E+07 9.3203630E-25 + 3.1200000E+07 9.3112152E-25 + 3.1300000E+07 9.3020683E-25 + 3.1400000E+07 9.2929215E-25 + 3.1500000E+07 9.2837737E-25 + 3.1600000E+07 9.2746258E-25 + 3.1700000E+07 9.2654790E-25 + 3.1800000E+07 9.2563321E-25 + 3.1900000E+07 9.2471843E-25 + 3.2000000E+07 9.2380375E-25 + 3.2100000E+07 9.2288896E-25 + 3.2200000E+07 9.2197428E-25 + 3.2300000E+07 9.2105950E-25 + 3.2400000E+07 9.2014481E-25 + 3.2500000E+07 9.1923003E-25 + 3.2600000E+07 9.1831535E-25 + 3.2700000E+07 9.1740066E-25 + 3.2800000E+07 9.1648588E-25 + 3.2900000E+07 9.1557120E-25 + 3.3000000E+07 9.1465641E-25 + 3.3100000E+07 9.1374173E-25 + 3.3200000E+07 9.1282695E-25 + 3.3300000E+07 9.1191226E-25 + 3.3400000E+07 9.1099748E-25 + 3.3500000E+07 9.1008279E-25 + 3.3600000E+07 9.0916811E-25 + 3.3700000E+07 9.0825333E-25 + 3.3800000E+07 9.0733864E-25 + 3.3900000E+07 9.0642386E-25 + 3.4000000E+07 9.0550918E-25 + 3.4100000E+07 9.0487049E-25 + 3.4200000E+07 9.0433220E-25 + 3.4300000E+07 9.0379380E-25 + 3.4400000E+07 9.0325540E-25 + 3.4500000E+07 9.0271710E-25 + 3.4600000E+07 9.0217870E-25 + 3.4700000E+07 9.0164031E-25 + 3.4800000E+07 9.0110201E-25 + 3.4900000E+07 9.0056361E-25 + 3.5000000E+07 9.0002521E-25 + 3.5100000E+07 8.9948681E-25 + 3.5200000E+07 8.9894852E-25 + 3.5300000E+07 8.9841012E-25 + 3.5400000E+07 8.9787172E-25 + 3.5500000E+07 8.9733342E-25 + 3.5600000E+07 8.9679502E-25 + 3.5700000E+07 8.9625663E-25 + 3.5800000E+07 8.9571833E-25 + 3.5900000E+07 8.9517993E-25 + 3.6000000E+07 8.9464153E-25 + 3.6100000E+07 8.9410313E-25 + 3.6200000E+07 8.9356484E-25 + 3.6300000E+07 8.9302644E-25 + 3.6400000E+07 8.9248804E-25 + 3.6500000E+07 8.9194974E-25 + 3.6600000E+07 8.9141134E-25 + 3.6700000E+07 8.9087295E-25 + 3.6800000E+07 8.9033465E-25 + 3.6900000E+07 8.8979625E-25 + 3.7000000E+07 8.8925785E-25 + 3.7100000E+07 8.8871955E-25 + 3.7200000E+07 8.8818116E-25 + 3.7300000E+07 8.8764276E-25 + 3.7400000E+07 8.8710436E-25 + 3.7500000E+07 8.8656606E-25 + 3.7600000E+07 8.8602766E-25 + 3.7700000E+07 8.8548927E-25 + 3.7800000E+07 8.8495097E-25 + 3.7900000E+07 8.8441257E-25 + 3.8000000E+07 8.8387417E-25 + 3.8100000E+07 8.8333587E-25 + 3.8200000E+07 8.8279748E-25 + 3.8300000E+07 8.8225908E-25 + 3.8400000E+07 8.8172078E-25 + 3.8500000E+07 8.8118238E-25 + 3.8600000E+07 8.8064398E-25 + 3.8700000E+07 8.8010559E-25 + 3.8800000E+07 8.7956729E-25 + 3.8900000E+07 8.7902889E-25 + 3.9000000E+07 8.7849049E-25 + 3.9100000E+07 8.7795219E-25 + 3.9200000E+07 8.7741380E-25 + 3.9300000E+07 8.7687540E-25 + 3.9400000E+07 8.7633710E-25 + 3.9500000E+07 8.7579870E-25 + 3.9600000E+07 8.7526030E-25 + 3.9700000E+07 8.7472191E-25 + 3.9800000E+07 8.7418361E-25 + 3.9900000E+07 8.7364521E-25 + 4.0000000E+07 8.7310681E-25 + 4.0100000E+07 8.7256851E-25 + 4.0200000E+07 8.7203012E-25 + 4.0300000E+07 8.7149172E-25 + 4.0400000E+07 8.7095342E-25 + 4.0500000E+07 8.7041502E-25 + 4.0600000E+07 8.6987662E-25 + 4.0700000E+07 8.6933833E-25 + 4.0800000E+07 8.6879993E-25 + 4.0900000E+07 8.6826153E-25 + 4.1000000E+07 8.6772313E-25 + 4.1100000E+07 8.6718483E-25 + 4.1200000E+07 8.6664644E-25 + 4.1300000E+07 8.6610804E-25 + 4.1400000E+07 8.6556974E-25 + 4.1500000E+07 8.6503134E-25 + 4.1600000E+07 8.6449294E-25 + 4.1700000E+07 8.6395465E-25 + 4.1800000E+07 8.6341625E-25 + 4.1900000E+07 8.6287785E-25 + 4.2000000E+07 8.6233945E-25 + 4.2100000E+07 8.6180115E-25 + 4.2200000E+07 8.6126276E-25 + 4.2300000E+07 8.6072436E-25 + 4.2400000E+07 8.6018606E-25 + 4.2500000E+07 8.5964766E-25 + 4.2600000E+07 8.5910926E-25 + 4.2700000E+07 8.5857097E-25 + 4.2800000E+07 8.5803257E-25 + 4.2900000E+07 8.5749417E-25 + 4.3000000E+07 8.5695577E-25 + 4.3100000E+07 8.5643582E-25 + 4.3200000E+07 8.5609345E-25 + 4.3300000E+07 8.5575118E-25 + 4.3400000E+07 8.5540882E-25 + 4.3500000E+07 8.5506645E-25 + 4.3600000E+07 8.5472418E-25 + 4.3700000E+07 8.5438182E-25 + 4.3800000E+07 8.5403955E-25 + 4.3900000E+07 8.5369719E-25 + 4.4000000E+07 8.5335492E-25 + 4.4100000E+07 8.5301255E-25 + 4.4200000E+07 8.5267029E-25 + 4.4300000E+07 8.5232792E-25 + 4.4400000E+07 8.5198565E-25 + 4.4500000E+07 8.5164329E-25 + 4.4600000E+07 8.5130102E-25 + 4.4700000E+07 8.5095866E-25 + 4.4800000E+07 8.5061639E-25 + 4.4900000E+07 8.5027402E-25 + 4.5000000E+07 8.4993176E-25 + 4.5100000E+07 8.4958939E-25 + 4.5200000E+07 8.4924702E-25 + 4.5300000E+07 8.4890476E-25 + 4.5400000E+07 8.4856239E-25 + 4.5500000E+07 8.4822012E-25 + 4.5600000E+07 8.4787776E-25 + 4.5700000E+07 8.4753549E-25 + 4.5800000E+07 8.4719313E-25 + 4.5900000E+07 8.4685086E-25 + 4.6000000E+07 8.4650849E-25 + 4.6100000E+07 8.4616623E-25 + 4.6200000E+07 8.4582386E-25 + 4.6300000E+07 8.4548159E-25 + 4.6400000E+07 8.4513923E-25 + 4.6500000E+07 8.4479696E-25 + 4.6600000E+07 8.4445460E-25 + 4.6700000E+07 8.4411223E-25 + 4.6800000E+07 8.4376996E-25 + 4.6900000E+07 8.4342770E-25 + 4.7000000E+07 8.4308533E-25 + 4.7100000E+07 8.4274296E-25 + 4.7200000E+07 8.4240070E-25 + 4.7300000E+07 8.4205833E-25 + 4.7400000E+07 8.4171606E-25 + 4.7500000E+07 8.4137370E-25 + 4.7600000E+07 8.4103143E-25 + 4.7700000E+07 8.4068907E-25 + 4.7800000E+07 8.4034680E-25 + 4.7900000E+07 8.4000443E-25 + 4.8000000E+07 8.3966217E-25 + 4.8100000E+07 8.3931980E-25 + 4.8200000E+07 8.3897753E-25 + 4.8300000E+07 8.3863517E-25 + 4.8400000E+07 8.3829280E-25 + 4.8500000E+07 8.3795054E-25 + 4.8600000E+07 8.3760817E-25 + 4.8700000E+07 8.3726590E-25 + 4.8800000E+07 8.3692354E-25 + 4.8900000E+07 8.3658127E-25 + 4.9000000E+07 8.3623891E-25 + 4.9100000E+07 8.3589664E-25 + 4.9200000E+07 8.3555427E-25 + 4.9300000E+07 8.3521201E-25 + 4.9400000E+07 8.3486964E-25 + 4.9500000E+07 8.3452737E-25 + 4.9600000E+07 8.3418501E-25 + 4.9700000E+07 8.3384274E-25 + 4.9800000E+07 8.3350037E-25 + 4.9900000E+07 8.3315811E-25 + 5.0000000E+07 8.3281574E-25 + 5.0100000E+07 8.3247338E-25 + 5.0200000E+07 8.3213111E-25 + 5.0300000E+07 8.3178874E-25 + 5.0400000E+07 8.3144648E-25 + 5.0500000E+07 8.3110411E-25 + 5.0600000E+07 8.3076184E-25 + 5.0700000E+07 8.3041948E-25 + 5.0800000E+07 8.3007721E-25 + 5.0900000E+07 8.2973485E-25 + 5.1000000E+07 8.2939258E-25 + 5.1100000E+07 8.2905021E-25 + 5.1200000E+07 8.2870795E-25 + 5.1300000E+07 8.2836558E-25 + 5.1400000E+07 8.2802331E-25 + 5.1500000E+07 8.2768095E-25 + 5.1600000E+07 8.2733868E-25 + 5.1700000E+07 8.2699631E-25 + 5.1800000E+07 8.2665400E-25 + 5.1900000E+07 8.2631168E-25 + 5.2000000E+07 8.2596937E-25 + 5.2100000E+07 8.2562705E-25 + 5.2200000E+07 8.2528473E-25 + 5.2300000E+07 8.2494242E-25 + 5.2400000E+07 8.2460010E-25 + 5.2500000E+07 8.2425778E-25 + 5.2600000E+07 8.2391542E-25 + 5.2700000E+07 8.2357310E-25 + 5.2800000E+07 8.2323079E-25 + 5.2900000E+07 8.2288847E-25 + 5.3000000E+07 8.2254615E-25 + 5.3100000E+07 8.2220384E-25 + 5.3200000E+07 8.2186152E-25 + 5.3300000E+07 8.2151920E-25 + 5.3400000E+07 8.2117689E-25 + 5.3500000E+07 8.2083457E-25 + 5.3600000E+07 8.2049226E-25 + 5.3700000E+07 8.2014994E-25 + 5.3800000E+07 8.1980762E-25 + 5.3900000E+07 8.1946526E-25 + 5.4000000E+07 8.1912299E-25 + 5.4100000E+07 8.1878067E-25 + 5.4200000E+07 8.1843836E-25 + 5.4300000E+07 8.1809599E-25 + 5.4400000E+07 8.1775368E-25 + 5.4500000E+07 8.1741136E-25 + 5.4600000E+07 8.1709636E-25 + 5.4700000E+07 8.1684254E-25 + 5.4800000E+07 8.1658873E-25 + 5.4900000E+07 8.1633496E-25 + 5.5000000E+07 8.1608114E-25 + 5.5100000E+07 8.1582733E-25 + 5.5200000E+07 8.1557351E-25 + 5.5300000E+07 8.1531969E-25 + 5.5400000E+07 8.1506588E-25 + 5.5500000E+07 8.1481206E-25 + 5.5600000E+07 8.1455830E-25 + 5.5700000E+07 8.1430448E-25 + 5.5800000E+07 8.1405066E-25 + 5.5900000E+07 8.1379685E-25 + 5.6000000E+07 8.1354303E-25 + 5.6100000E+07 8.1328927E-25 + 5.6200000E+07 8.1303545E-25 + 5.6300000E+07 8.1278163E-25 + 5.6400000E+07 8.1252782E-25 + 5.6500000E+07 8.1227400E-25 + 5.6600000E+07 8.1202019E-25 + 5.6700000E+07 8.1176642E-25 + 5.6800000E+07 8.1151260E-25 + 5.6900000E+07 8.1125879E-25 + 5.7000000E+07 8.1100497E-25 + 5.7100000E+07 8.1075115E-25 + 5.7200000E+07 8.1049734E-25 + 5.7300000E+07 8.1024352E-25 + 5.7400000E+07 8.0998976E-25 + 5.7500000E+07 8.0973594E-25 + 5.7600000E+07 8.0948212E-25 + 5.7700000E+07 8.0922831E-25 + 5.7800000E+07 8.0897449E-25 + 5.7900000E+07 8.0872073E-25 + 5.8000000E+07 8.0846691E-25 + 5.8100000E+07 8.0821309E-25 + 5.8200000E+07 8.0795928E-25 + 5.8300000E+07 8.0770546E-25 + 5.8400000E+07 8.0745169E-25 + 5.8500000E+07 8.0719788E-25 + 5.8600000E+07 8.0694406E-25 + 5.8700000E+07 8.0669025E-25 + 5.8800000E+07 8.0643643E-25 + 5.8900000E+07 8.0618261E-25 + 5.9000000E+07 8.0592880E-25 + 5.9100000E+07 8.0567498E-25 + 5.9200000E+07 8.0542122E-25 + 5.9300000E+07 8.0516740E-25 + 5.9400000E+07 8.0491358E-25 + 5.9500000E+07 8.0465977E-25 + 5.9600000E+07 8.0440595E-25 + 5.9700000E+07 8.0415219E-25 + 5.9800000E+07 8.0389837E-25 + 5.9900000E+07 8.0364455E-25 + 6.0000000E+07 8.0339074E-25 + 6.0100000E+07 8.0313692E-25 + 6.0200000E+07 8.0288311E-25 + 6.0300000E+07 8.0262934E-25 + 6.0400000E+07 8.0237552E-25 + 6.0500000E+07 8.0212171E-25 + 6.0600000E+07 8.0186789E-25 + 6.0700000E+07 8.0161407E-25 + 6.0800000E+07 8.0136026E-25 + 6.0900000E+07 8.0110644E-25 + 6.1000000E+07 8.0085268E-25 + 6.1100000E+07 8.0059886E-25 + 6.1200000E+07 8.0034504E-25 + 6.1300000E+07 8.0009123E-25 + 6.1400000E+07 7.9983741E-25 + 6.1500000E+07 7.9958360E-25 + 6.1600000E+07 7.9932983E-25 + 6.1700000E+07 7.9907601E-25 + 6.1800000E+07 7.9882220E-25 + 6.1900000E+07 7.9856838E-25 + 6.2000000E+07 7.9831457E-25 + 6.2100000E+07 7.9806080E-25 + 6.2200000E+07 7.9780698E-25 + 6.2300000E+07 7.9755317E-25 + 6.2400000E+07 7.9729935E-25 + 6.2500000E+07 7.9704553E-25 + 6.2600000E+07 7.9679172E-25 + 6.2700000E+07 7.9653795E-25 + 6.2800000E+07 7.9628414E-25 + 6.2900000E+07 7.9603032E-25 + 6.3000000E+07 7.9577650E-25 + 6.3100000E+07 7.9552269E-25 + 6.3200000E+07 7.9526887E-25 + 6.3300000E+07 7.9501510E-25 + 6.3400000E+07 7.9476129E-25 + 6.3500000E+07 7.9450747E-25 + 6.3600000E+07 7.9425366E-25 + 6.3700000E+07 7.9399984E-25 + 6.3800000E+07 7.9374602E-25 + 6.3900000E+07 7.9349226E-25 + 6.4000000E+07 7.9323844E-25 + 6.4100000E+07 7.9298463E-25 + 6.4200000E+07 7.9273081E-25 + 6.4300000E+07 7.9247699E-25 + 6.4400000E+07 7.9222318E-25 + 6.4500000E+07 7.9196941E-25 + 6.4600000E+07 7.9171560E-25 + 6.4700000E+07 7.9146178E-25 + 6.4800000E+07 7.9120796E-25 + 6.4900000E+07 7.9095415E-25 + 6.5000000E+07 7.9070033E-25 + 6.5100000E+07 7.9044652E-25 + 6.5200000E+07 7.9019275E-25 + 6.5300000E+07 7.8993893E-25 + 6.5400000E+07 7.8968512E-25 + 6.5500000E+07 7.8943130E-25 + 6.5600000E+07 7.8917748E-25 + 6.5700000E+07 7.8892372E-25 + 6.5800000E+07 7.8866990E-25 + 6.5900000E+07 7.8841609E-25 + 6.6000000E+07 7.8816227E-25 + 6.6100000E+07 7.8790845E-25 + 6.6200000E+07 7.8765469E-25 + 6.6300000E+07 7.8740087E-25 + 6.6400000E+07 7.8714706E-25 + 6.6500000E+07 7.8689324E-25 + 6.6600000E+07 7.8663942E-25 + 6.6700000E+07 7.8638561E-25 + 6.6800000E+07 7.8613179E-25 + 6.6900000E+07 7.8587802E-25 + 6.7000000E+07 7.8562421E-25 + 6.7100000E+07 7.8537039E-25 + 6.7200000E+07 7.8511658E-25 + 6.7300000E+07 7.8486276E-25 + 6.7400000E+07 7.8460894E-25 + 6.7500000E+07 7.8435518E-25 + 6.7600000E+07 7.8410136E-25 + 6.7700000E+07 7.8384755E-25 + 6.7800000E+07 7.8359373E-25 + 6.7900000E+07 7.8333991E-25 + 6.8000000E+07 7.8308615E-25 + 6.8100000E+07 7.8283233E-25 + 6.8200000E+07 7.8257852E-25 + 6.8300000E+07 7.8232470E-25 + 6.8400000E+07 7.8207088E-25 + 6.8500000E+07 7.8181707E-25 + 6.8600000E+07 7.8156325E-25 + 6.8700000E+07 7.8130944E-25 + 6.8800000E+07 7.8105567E-25 + 6.8900000E+07 7.8080185E-25 + 6.9000000E+07 7.8054804E-25 + 6.9100000E+07 7.8029422E-25 + 6.9200000E+07 7.8011313E-25 + 6.9300000E+07 7.7993608E-25 + 6.9400000E+07 7.7975903E-25 + 6.9500000E+07 7.7958198E-25 + 6.9600000E+07 7.7940493E-25 + 6.9700000E+07 7.7922793E-25 + 6.9800000E+07 7.7905088E-25 + 6.9900000E+07 7.7887383E-25 + 7.0000000E+07 7.7869678E-25 + 7.0100000E+07 7.7851973E-25 + 7.0200000E+07 7.7834268E-25 + 7.0300000E+07 7.7816563E-25 + 7.0400000E+07 7.7798858E-25 + 7.0500000E+07 7.7781153E-25 + 7.0600000E+07 7.7763453E-25 + 7.0700000E+07 7.7745748E-25 + 7.0800000E+07 7.7728043E-25 + 7.0900000E+07 7.7710338E-25 + 7.1000000E+07 7.7692633E-25 + 7.1100000E+07 7.7674928E-25 + 7.1200000E+07 7.7657223E-25 + 7.1300000E+07 7.7639518E-25 + 7.1400000E+07 7.7621813E-25 + 7.1500000E+07 7.7604113E-25 + 7.1600000E+07 7.7586408E-25 + 7.1700000E+07 7.7568703E-25 + 7.1800000E+07 7.7550998E-25 + 7.1900000E+07 7.7533293E-25 + 7.2000000E+07 7.7515588E-25 + 7.2100000E+07 7.7497883E-25 + 7.2200000E+07 7.7480178E-25 + 7.2300000E+07 7.7462473E-25 + 7.2400000E+07 7.7444773E-25 + 7.2500000E+07 7.7427068E-25 + 7.2600000E+07 7.7409363E-25 + 7.2700000E+07 7.7391658E-25 + 7.2800000E+07 7.7373953E-25 + 7.2900000E+07 7.7356248E-25 + 7.3000000E+07 7.7338543E-25 + 7.3100000E+07 7.7320838E-25 + 7.3200000E+07 7.7303138E-25 + 7.3300000E+07 7.7285433E-25 + 7.3400000E+07 7.7267728E-25 + 7.3500000E+07 7.7250023E-25 + 7.3600000E+07 7.7232318E-25 + 7.3700000E+07 7.7214613E-25 + 7.3800000E+07 7.7196908E-25 + 7.3900000E+07 7.7179203E-25 + 7.4000000E+07 7.7161498E-25 + 7.4100000E+07 7.7143798E-25 + 7.4200000E+07 7.7126093E-25 + 7.4300000E+07 7.7108388E-25 + 7.4400000E+07 7.7090683E-25 + 7.4500000E+07 7.7072978E-25 + 7.4600000E+07 7.7055273E-25 + 7.4700000E+07 7.7037568E-25 + 7.4800000E+07 7.7019863E-25 + 7.4900000E+07 7.7002158E-25 + 7.5000000E+07 7.6984457E-25 + 7.5100000E+07 7.6966752E-25 + 7.5200000E+07 7.6949047E-25 + 7.5300000E+07 7.6931343E-25 + 7.5400000E+07 7.6913638E-25 + 7.5500000E+07 7.6895933E-25 + 7.5600000E+07 7.6878228E-25 + 7.5700000E+07 7.6860523E-25 + 7.5800000E+07 7.6842818E-25 + 7.5900000E+07 7.6825117E-25 + 7.6000000E+07 7.6807412E-25 + 7.6100000E+07 7.6789707E-25 + 7.6200000E+07 7.6772002E-25 + 7.6300000E+07 7.6754297E-25 + 7.6400000E+07 7.6736592E-25 + 7.6500000E+07 7.6718887E-25 + 7.6600000E+07 7.6701182E-25 + 7.6700000E+07 7.6683477E-25 + 7.6800000E+07 7.6665777E-25 + 7.6900000E+07 7.6648072E-25 + 7.7000000E+07 7.6630367E-25 + 7.7100000E+07 7.6612662E-25 + 7.7200000E+07 7.6594957E-25 + 7.7300000E+07 7.6577252E-25 + 7.7400000E+07 7.6559547E-25 + 7.7500000E+07 7.6541842E-25 + 7.7600000E+07 7.6524137E-25 + 7.7700000E+07 7.6506437E-25 + 7.7800000E+07 7.6488732E-25 + 7.7900000E+07 7.6471027E-25 + 7.8000000E+07 7.6453322E-25 + 7.8100000E+07 7.6435617E-25 + 7.8200000E+07 7.6417912E-25 + 7.8300000E+07 7.6400207E-25 + 7.8400000E+07 7.6382502E-25 + 7.8500000E+07 7.6364797E-25 + 7.8600000E+07 7.6347097E-25 + 7.8700000E+07 7.6329392E-25 + 7.8800000E+07 7.6311687E-25 + 7.8900000E+07 7.6293982E-25 + 7.9000000E+07 7.6276277E-25 + 7.9100000E+07 7.6258572E-25 + 7.9200000E+07 7.6240867E-25 + 7.9300000E+07 7.6223162E-25 + 7.9400000E+07 7.6205457E-25 + 7.9500000E+07 7.6187757E-25 + 7.9600000E+07 7.6170052E-25 + 7.9700000E+07 7.6152347E-25 + 7.9800000E+07 7.6134642E-25 + 7.9900000E+07 7.6116937E-25 + 8.0000000E+07 7.6099232E-25 + 8.0100000E+07 7.6081527E-25 + 8.0200000E+07 7.6063822E-25 + 8.0300000E+07 7.6046117E-25 + 8.0400000E+07 7.6028417E-25 + 8.0500000E+07 7.6010712E-25 + 8.0600000E+07 7.5993007E-25 + 8.0700000E+07 7.5975302E-25 + 8.0800000E+07 7.5957597E-25 + 8.0900000E+07 7.5939892E-25 + 8.1000000E+07 7.5922187E-25 + 8.1100000E+07 7.5904482E-25 + 8.1200000E+07 7.5886777E-25 + 8.1300000E+07 7.5869077E-25 + 8.1400000E+07 7.5851372E-25 + 8.1500000E+07 7.5833667E-25 + 8.1600000E+07 7.5815962E-25 + 8.1700000E+07 7.5798257E-25 + 8.1800000E+07 7.5780552E-25 + 8.1900000E+07 7.5762847E-25 + 8.2000000E+07 7.5745142E-25 + 8.2100000E+07 7.5727437E-25 + 8.2200000E+07 7.5709737E-25 + 8.2300000E+07 7.5692032E-25 + 8.2400000E+07 7.5674327E-25 + 8.2500000E+07 7.5656622E-25 + 8.2600000E+07 7.5638917E-25 + 8.2700000E+07 7.5621212E-25 + 8.2800000E+07 7.5603507E-25 + 8.2900000E+07 7.5585802E-25 + 8.3000000E+07 7.5568097E-25 + 8.3100000E+07 7.5550397E-25 + 8.3200000E+07 7.5532692E-25 + 8.3300000E+07 7.5514987E-25 + 8.3400000E+07 7.5497282E-25 + 8.3500000E+07 7.5479577E-25 + 8.3600000E+07 7.5461872E-25 + 8.3700000E+07 7.5444167E-25 + 8.3800000E+07 7.5426462E-25 + 8.3900000E+07 7.5408757E-25 + 8.4000000E+07 7.5391052E-25 + 8.4100000E+07 7.5373352E-25 + 8.4200000E+07 7.5355647E-25 + 8.4300000E+07 7.5337942E-25 + 8.4400000E+07 7.5320237E-25 + 8.4500000E+07 7.5302532E-25 + 8.4600000E+07 7.5284827E-25 + 8.4700000E+07 7.5267122E-25 + 8.4800000E+07 7.5249417E-25 + 8.4900000E+07 7.5231712E-25 + 8.5000000E+07 7.5214012E-25 + 8.5100000E+07 7.5196307E-25 + 8.5200000E+07 7.5178602E-25 + 8.5300000E+07 7.5160897E-25 + 8.5400000E+07 7.5143192E-25 + 8.5500000E+07 7.5125487E-25 + 8.5600000E+07 7.5107782E-25 + 8.5700000E+07 7.5090077E-25 + 8.5800000E+07 7.5072372E-25 + 8.5900000E+07 7.5054672E-25 + 8.6000000E+07 7.5036967E-25 + 8.6100000E+07 7.5019262E-25 + 8.6200000E+07 7.5001557E-25 + 8.6300000E+07 7.4983852E-25 + 8.6400000E+07 7.4966147E-25 + 8.6500000E+07 7.4948442E-25 + 8.6600000E+07 7.4930737E-25 + 8.6700000E+07 7.4913032E-25 + 8.6800000E+07 7.4895332E-25 + 8.6900000E+07 7.4877627E-25 + 8.7000000E+07 7.4859922E-25 + 8.7100000E+07 7.4842217E-25 + 8.7200000E+07 7.4824512E-25 + 8.7300000E+07 7.4806807E-25 + 8.7400000E+07 7.4789102E-25 + 8.7500000E+07 7.4771397E-25 + 8.7600000E+07 7.4757814E-25 + 8.7700000E+07 7.4744876E-25 + 8.7800000E+07 7.4731939E-25 + 8.7900000E+07 7.4719002E-25 + 8.8000000E+07 7.4706060E-25 + 8.8100000E+07 7.4693122E-25 + 8.8200000E+07 7.4680185E-25 + 8.8300000E+07 7.4667248E-25 + 8.8400000E+07 7.4654310E-25 + 8.8500000E+07 7.4641373E-25 + 8.8600000E+07 7.4628431E-25 + 8.8700000E+07 7.4615493E-25 + 8.8800000E+07 7.4602556E-25 + 8.8900000E+07 7.4589619E-25 + 8.9000000E+07 7.4576681E-25 + 8.9100000E+07 7.4563744E-25 + 8.9200000E+07 7.4550807E-25 + 8.9300000E+07 7.4537865E-25 + 8.9400000E+07 7.4524927E-25 + 8.9500000E+07 7.4511990E-25 + 8.9600000E+07 7.4499053E-25 + 8.9700000E+07 7.4486115E-25 + 8.9800000E+07 7.4473178E-25 + 8.9900000E+07 7.4460241E-25 + 9.0000000E+07 7.4447298E-25 + 9.0100000E+07 7.4434361E-25 + 9.0200000E+07 7.4421424E-25 + 9.0300000E+07 7.4408486E-25 + 9.0400000E+07 7.4395549E-25 + 9.0500000E+07 7.4382612E-25 + 9.0600000E+07 7.4369670E-25 + 9.0700000E+07 7.4356732E-25 + 9.0800000E+07 7.4343795E-25 + 9.0900000E+07 7.4330858E-25 + 9.1000000E+07 7.4317920E-25 + 9.1100000E+07 7.4304983E-25 + 9.1200000E+07 7.4292046E-25 + 9.1300000E+07 7.4279103E-25 + 9.1400000E+07 7.4266166E-25 + 9.1500000E+07 7.4253229E-25 + 9.1600000E+07 7.4240291E-25 + 9.1700000E+07 7.4227354E-25 + 9.1800000E+07 7.4214417E-25 + 9.1900000E+07 7.4201479E-25 + 9.2000000E+07 7.4188537E-25 + 9.2100000E+07 7.4175600E-25 + 9.2200000E+07 7.4162663E-25 + 9.2300000E+07 7.4149725E-25 + 9.2400000E+07 7.4136788E-25 + 9.2500000E+07 7.4123851E-25 + 9.2600000E+07 7.4110913E-25 + 9.2700000E+07 7.4097971E-25 + 9.2800000E+07 7.4085034E-25 + 9.2900000E+07 7.4072096E-25 + 9.3000000E+07 7.4059159E-25 + 9.3100000E+07 7.4046222E-25 + 9.3200000E+07 7.4033284E-25 + 9.3300000E+07 7.4020342E-25 + 9.3400000E+07 7.4007405E-25 + 9.3500000E+07 7.3994468E-25 + 9.3600000E+07 7.3981530E-25 + 9.3700000E+07 7.3968593E-25 + 9.3800000E+07 7.3955656E-25 + 9.3900000E+07 7.3942718E-25 + 9.4000000E+07 7.3929776E-25 + 9.4100000E+07 7.3916839E-25 + 9.4200000E+07 7.3903901E-25 + 9.4300000E+07 7.3890964E-25 + 9.4400000E+07 7.3878027E-25 + 9.4500000E+07 7.3865089E-25 + 9.4600000E+07 7.3852147E-25 + 9.4700000E+07 7.3839210E-25 + 9.4800000E+07 7.3826273E-25 + 9.4900000E+07 7.3813335E-25 + 9.5000000E+07 7.3800398E-25 + 9.5100000E+07 7.3787461E-25 + 9.5200000E+07 7.3774518E-25 + 9.5300000E+07 7.3761581E-25 + 9.5400000E+07 7.3748644E-25 + 9.5500000E+07 7.3735706E-25 + 9.5600000E+07 7.3722769E-25 + 9.5700000E+07 7.3709832E-25 + 9.5800000E+07 7.3696894E-25 + 9.5900000E+07 7.3683957E-25 + 9.6000000E+07 7.3671015E-25 + 9.6100000E+07 7.3658078E-25 + 9.6200000E+07 7.3645140E-25 + 9.6300000E+07 7.3632203E-25 + 9.6400000E+07 7.3619266E-25 + 9.6500000E+07 7.3606328E-25 + 9.6600000E+07 7.3593386E-25 + 9.6700000E+07 7.3580449E-25 + 9.6800000E+07 7.3567511E-25 + 9.6900000E+07 7.3554574E-25 + 9.7000000E+07 7.3541637E-25 + 9.7100000E+07 7.3528699E-25 + 9.7200000E+07 7.3515757E-25 + 9.7300000E+07 7.3502825E-25 + 9.7400000E+07 7.3489883E-25 + 9.7500000E+07 7.3476945E-25 + 9.7600000E+07 7.3464008E-25 + 9.7700000E+07 7.3451071E-25 + 9.7800000E+07 7.3438133E-25 + 9.7900000E+07 7.3425196E-25 + 9.8000000E+07 7.3412254E-25 + 9.8100000E+07 7.3399316E-25 + 9.8200000E+07 7.3386379E-25 + 9.8300000E+07 7.3373442E-25 + 9.8400000E+07 7.3360504E-25 + 9.8500000E+07 7.3347567E-25 + 9.8600000E+07 7.3334625E-25 + 9.8700000E+07 7.3321688E-25 + 9.8800000E+07 7.3308750E-25 + 9.8900000E+07 7.3295813E-25 + 9.9000000E+07 7.3282876E-25 + 9.9100000E+07 7.3269938E-25 + 9.9200000E+07 7.3257001E-25 + 9.9300000E+07 7.3244059E-25 + 9.9400000E+07 7.3231121E-25 + 9.9500000E+07 7.3218184E-25 + 9.9600000E+07 7.3205247E-25 + 9.9700000E+07 7.3192309E-25 + 9.9800000E+07 7.3179372E-25 + 9.9900000E+07 7.3166430E-25 + 1.0000000E+08 7.3153493E-25 + 1.0010000E+08 7.3140555E-25 + 1.0020000E+08 7.3127618E-25 + 1.0030000E+08 7.3114681E-25 + 1.0040000E+08 7.3101743E-25 + 1.0050000E+08 7.3088801E-25 + 1.0060000E+08 7.3075864E-25 + 1.0070000E+08 7.3062926E-25 + 1.0080000E+08 7.3049989E-25 + 1.0090000E+08 7.3037052E-25 + 1.0100000E+08 7.3024114E-25 + 1.0110000E+08 7.3011177E-25 + 1.0120000E+08 7.2998240E-25 + 1.0130000E+08 7.2985298E-25 + 1.0140000E+08 7.2972360E-25 + 1.0150000E+08 7.2959423E-25 + 1.0160000E+08 7.2946486E-25 + 1.0170000E+08 7.2933548E-25 + 1.0180000E+08 7.2920611E-25 + 1.0190000E+08 7.2907669E-25 + 1.0200000E+08 7.2894731E-25 + 1.0210000E+08 7.2881794E-25 + 1.0220000E+08 7.2868857E-25 + 1.0230000E+08 7.2855919E-25 + 1.0240000E+08 7.2842982E-25 + 1.0250000E+08 7.2830040E-25 + 1.0260000E+08 7.2817107E-25 + 1.0270000E+08 7.2804165E-25 + 1.0280000E+08 7.2791228E-25 + 1.0290000E+08 7.2778291E-25 + 1.0300000E+08 7.2765353E-25 + 1.0310000E+08 7.2752416E-25 + 1.0320000E+08 7.2739474E-25 + 1.0330000E+08 7.2726536E-25 + 1.0340000E+08 7.2713599E-25 + 1.0350000E+08 7.2700662E-25 + 1.0360000E+08 7.2687724E-25 + 1.0370000E+08 7.2674787E-25 + 1.0380000E+08 7.2661850E-25 + 1.0390000E+08 7.2648908E-25 + 1.0400000E+08 7.2635970E-25 + 1.0410000E+08 7.2623033E-25 + 1.0420000E+08 7.2610096E-25 + 1.0430000E+08 7.2597158E-25 + 1.0440000E+08 7.2584221E-25 + 1.0450000E+08 7.2571284E-25 + 1.0460000E+08 7.2558341E-25 + 1.0470000E+08 7.2545404E-25 + 1.0480000E+08 7.2532467E-25 + 1.0490000E+08 7.2519529E-25 + 1.0500000E+08 7.2506592E-25 + 1.0510000E+08 7.2493655E-25 + 1.0520000E+08 7.2480713E-25 + 1.0530000E+08 7.2467775E-25 + 1.0540000E+08 7.2454838E-25 + 1.0550000E+08 7.2441901E-25 + 1.0560000E+08 7.2428963E-25 + 1.0570000E+08 7.2416026E-25 + 1.0580000E+08 7.2403084E-25 + 1.0590000E+08 7.2390146E-25 + 1.0600000E+08 7.2377209E-25 + 1.0610000E+08 7.2364272E-25 + 1.0620000E+08 7.2351334E-25 + 1.0630000E+08 7.2338397E-25 + 1.0640000E+08 7.2325460E-25 + 1.0650000E+08 7.2312522E-25 + 1.0660000E+08 7.2299580E-25 + 1.0670000E+08 7.2286643E-25 + 1.0680000E+08 7.2273706E-25 + 1.0690000E+08 7.2260768E-25 + 1.0700000E+08 7.2247831E-25 + 1.0710000E+08 7.2234894E-25 + 1.0720000E+08 7.2221951E-25 + 1.0730000E+08 7.2209014E-25 + 1.0740000E+08 7.2196077E-25 + 1.0750000E+08 7.2183139E-25 + 1.0760000E+08 7.2170202E-25 + 1.0770000E+08 7.2157265E-25 + 1.0780000E+08 7.2144323E-25 + 1.0790000E+08 7.2131390E-25 + 1.0800000E+08 7.2118448E-25 + 1.0810000E+08 7.2105511E-25 + 1.0820000E+08 7.2092573E-25 + 1.0830000E+08 7.2079636E-25 + 1.0840000E+08 7.2066699E-25 + 1.0850000E+08 7.2053756E-25 + 1.0860000E+08 7.2040819E-25 + 1.0870000E+08 7.2027882E-25 + 1.0880000E+08 7.2014944E-25 + 1.0890000E+08 7.2002007E-25 + 1.0900000E+08 7.1989070E-25 + 1.0910000E+08 7.1976132E-25 + 1.0920000E+08 7.1963190E-25 + 1.0930000E+08 7.1950253E-25 + 1.0940000E+08 7.1937316E-25 + 1.0950000E+08 7.1924378E-25 + 1.0960000E+08 7.1911441E-25 + 1.0970000E+08 7.1898504E-25 + 1.0980000E+08 7.1885566E-25 + 1.0990000E+08 7.1872624E-25 + 1.1000000E+08 7.1859687E-25 + 1.1010000E+08 7.1846749E-25 + 1.1020000E+08 7.1833812E-25 + 1.1030000E+08 7.1820875E-25 + 1.1040000E+08 7.1807937E-25 + 1.1050000E+08 7.1794995E-25 + 1.1060000E+08 7.1782058E-25 + 1.1070000E+08 7.1769121E-25 + 1.1080000E+08 7.1756183E-25 + 1.1090000E+08 7.1745524E-25 + 1.1100000E+08 7.1735648E-25 + 1.1110000E+08 7.1725768E-25 + 1.1120000E+08 7.1715887E-25 + 1.1130000E+08 7.1706012E-25 + 1.1140000E+08 7.1696131E-25 + 1.1150000E+08 7.1686256E-25 + 1.1160000E+08 7.1676375E-25 + 1.1170000E+08 7.1666495E-25 + 1.1180000E+08 7.1656619E-25 + 1.1190000E+08 7.1646739E-25 + 1.1200000E+08 7.1636858E-25 + 1.1210000E+08 7.1626983E-25 + 1.1220000E+08 7.1617102E-25 + 1.1230000E+08 7.1607222E-25 + 1.1240000E+08 7.1597346E-25 + 1.1250000E+08 7.1587466E-25 + 1.1260000E+08 7.1577585E-25 + 1.1270000E+08 7.1567710E-25 + 1.1280000E+08 7.1557829E-25 + 1.1290000E+08 7.1547949E-25 + 1.1300000E+08 7.1538073E-25 + 1.1310000E+08 7.1528193E-25 + 1.1320000E+08 7.1518317E-25 + 1.1330000E+08 7.1508437E-25 + 1.1340000E+08 7.1498556E-25 + 1.1350000E+08 7.1488681E-25 + 1.1360000E+08 7.1478800E-25 + 1.1370000E+08 7.1468920E-25 + 1.1380000E+08 7.1459044E-25 + 1.1390000E+08 7.1449164E-25 + 1.1400000E+08 7.1439283E-25 + 1.1410000E+08 7.1429407E-25 + 1.1420000E+08 7.1419527E-25 + 1.1430000E+08 7.1409647E-25 + 1.1440000E+08 7.1399771E-25 + 1.1450000E+08 7.1389890E-25 + 1.1460000E+08 7.1380010E-25 + 1.1470000E+08 7.1370134E-25 + 1.1480000E+08 7.1360254E-25 + 1.1490000E+08 7.1350373E-25 + 1.1500000E+08 7.1340498E-25 + 1.1510000E+08 7.1330617E-25 + 1.1520000E+08 7.1320737E-25 + 1.1530000E+08 7.1310861E-25 + 1.1540000E+08 7.1300981E-25 + 1.1550000E+08 7.1291100E-25 + 1.1560000E+08 7.1281225E-25 + 1.1570000E+08 7.1271344E-25 + 1.1580000E+08 7.1261464E-25 + 1.1590000E+08 7.1251588E-25 + 1.1600000E+08 7.1241708E-25 + 1.1610000E+08 7.1231827E-25 + 1.1620000E+08 7.1221952E-25 + 1.1630000E+08 7.1212071E-25 + 1.1640000E+08 7.1202191E-25 + 1.1650000E+08 7.1192315E-25 + 1.1660000E+08 7.1182435E-25 + 1.1670000E+08 7.1172559E-25 + 1.1680000E+08 7.1162679E-25 + 1.1690000E+08 7.1152798E-25 + 1.1700000E+08 7.1142923E-25 + 1.1710000E+08 7.1133042E-25 + 1.1720000E+08 7.1123162E-25 + 1.1730000E+08 7.1113286E-25 + 1.1740000E+08 7.1103406E-25 + 1.1750000E+08 7.1093525E-25 + 1.1760000E+08 7.1083650E-25 + 1.1770000E+08 7.1073769E-25 + 1.1780000E+08 7.1063889E-25 + 1.1790000E+08 7.1054013E-25 + 1.1800000E+08 7.1044133E-25 + 1.1810000E+08 7.1034252E-25 + 1.1820000E+08 7.1024377E-25 + 1.1830000E+08 7.1014496E-25 + 1.1840000E+08 7.1004621E-25 + 1.1850000E+08 7.0994740E-25 + 1.1860000E+08 7.0984860E-25 + 1.1870000E+08 7.0974984E-25 + 1.1880000E+08 7.0965104E-25 + 1.1890000E+08 7.0955223E-25 + 1.1900000E+08 7.0945348E-25 + 1.1910000E+08 7.0935467E-25 + 1.1920000E+08 7.0925587E-25 + 1.1930000E+08 7.0915711E-25 + 1.1940000E+08 7.0905831E-25 + 1.1950000E+08 7.0895950E-25 + 1.1960000E+08 7.0886075E-25 + 1.1970000E+08 7.0876194E-25 + 1.1980000E+08 7.0866314E-25 + 1.1990000E+08 7.0856438E-25 + 1.2000000E+08 7.0846558E-25 + 1.2010000E+08 7.0836682E-25 + 1.2020000E+08 7.0826802E-25 + 1.2030000E+08 7.0816921E-25 + 1.2040000E+08 7.0807046E-25 + 1.2050000E+08 7.0797165E-25 + 1.2060000E+08 7.0787285E-25 + 1.2070000E+08 7.0777409E-25 + 1.2080000E+08 7.0767529E-25 + 1.2090000E+08 7.0757648E-25 + 1.2100000E+08 7.0747772E-25 + 1.2110000E+08 7.0737892E-25 + 1.2120000E+08 7.0728012E-25 + 1.2130000E+08 7.0718136E-25 + 1.2140000E+08 7.0708255E-25 + 1.2150000E+08 7.0698375E-25 + 1.2160000E+08 7.0688499E-25 + 1.2170000E+08 7.0678619E-25 + 1.2180000E+08 7.0668738E-25 + 1.2190000E+08 7.0658863E-25 + 1.2200000E+08 7.0648982E-25 + 1.2210000E+08 7.0639102E-25 + 1.2220000E+08 7.0629226E-25 + 1.2230000E+08 7.0619346E-25 + 1.2240000E+08 7.0609470E-25 + 1.2250000E+08 7.0599590E-25 + 1.2260000E+08 7.0589709E-25 + 1.2270000E+08 7.0579834E-25 + 1.2280000E+08 7.0569953E-25 + 1.2290000E+08 7.0560073E-25 + 1.2300000E+08 7.0550197E-25 + 1.2310000E+08 7.0540317E-25 + 1.2320000E+08 7.0530436E-25 + 1.2330000E+08 7.0520561E-25 + 1.2340000E+08 7.0510680E-25 + 1.2350000E+08 7.0500800E-25 + 1.2360000E+08 7.0490924E-25 + 1.2370000E+08 7.0481044E-25 + 1.2380000E+08 7.0471163E-25 + 1.2390000E+08 7.0461288E-25 + 1.2400000E+08 7.0451407E-25 + 1.2410000E+08 7.0441527E-25 + 1.2420000E+08 7.0431651E-25 + 1.2430000E+08 7.0421771E-25 + 1.2440000E+08 7.0411890E-25 + 1.2450000E+08 7.0402015E-25 + 1.2460000E+08 7.0392134E-25 + 1.2470000E+08 7.0382254E-25 + 1.2480000E+08 7.0372378E-25 + 1.2490000E+08 7.0362498E-25 + 1.2500000E+08 7.0352617E-25 + 1.2510000E+08 7.0342742E-25 + 1.2520000E+08 7.0332861E-25 + 1.2530000E+08 7.0322981E-25 + 1.2540000E+08 7.0313105E-25 + 1.2550000E+08 7.0303225E-25 + 1.2560000E+08 7.0293349E-25 + 1.2570000E+08 7.0283469E-25 + 1.2580000E+08 7.0273588E-25 + 1.2590000E+08 7.0263713E-25 + 1.2600000E+08 7.0253832E-25 + 1.2610000E+08 7.0243952E-25 + 1.2620000E+08 7.0234076E-25 + 1.2630000E+08 7.0224196E-25 + 1.2640000E+08 7.0214315E-25 + 1.2650000E+08 7.0204440E-25 + 1.2660000E+08 7.0194559E-25 + 1.2670000E+08 7.0184679E-25 + 1.2680000E+08 7.0174803E-25 + 1.2690000E+08 7.0164923E-25 + 1.2700000E+08 7.0155042E-25 + 1.2710000E+08 7.0145167E-25 + 1.2720000E+08 7.0135286E-25 + 1.2730000E+08 7.0125411E-25 + 1.2740000E+08 7.0115530E-25 + 1.2750000E+08 7.0105650E-25 + 1.2760000E+08 7.0095774E-25 + 1.2770000E+08 7.0085894E-25 + 1.2780000E+08 7.0076013E-25 + 1.2790000E+08 7.0066137E-25 + 1.2800000E+08 7.0056257E-25 + 1.2810000E+08 7.0046377E-25 + 1.2820000E+08 7.0036501E-25 + 1.2830000E+08 7.0026620E-25 + 1.2840000E+08 7.0016740E-25 + 1.2850000E+08 7.0006864E-25 + 1.2860000E+08 6.9996984E-25 + 1.2870000E+08 6.9987103E-25 + 1.2880000E+08 6.9977228E-25 + 1.2890000E+08 6.9967347E-25 + 1.2900000E+08 6.9957472E-25 + 1.2910000E+08 6.9947591E-25 + 1.2920000E+08 6.9937711E-25 + 1.2930000E+08 6.9927835E-25 + 1.2940000E+08 6.9917955E-25 + 1.2950000E+08 6.9908074E-25 + 1.2960000E+08 6.9898199E-25 + 1.2970000E+08 6.9888318E-25 + 1.2980000E+08 6.9878438E-25 + 1.2990000E+08 6.9868562E-25 + 1.3000000E+08 6.9858682E-25 + 1.3010000E+08 6.9848801E-25 + 1.3020000E+08 6.9838926E-25 + 1.3030000E+08 6.9829045E-25 + 1.3040000E+08 6.9819165E-25 + 1.3050000E+08 6.9809289E-25 + 1.3060000E+08 6.9799409E-25 + 1.3070000E+08 6.9789528E-25 + 1.3080000E+08 6.9779653E-25 + 1.3090000E+08 6.9769772E-25 + 1.3100000E+08 6.9759897E-25 + 1.3110000E+08 6.9750016E-25 + 1.3120000E+08 6.9740136E-25 + 1.3130000E+08 6.9730255E-25 + 1.3140000E+08 6.9720380E-25 + 1.3150000E+08 6.9710499E-25 + 1.3160000E+08 6.9700624E-25 + 1.3170000E+08 6.9690743E-25 + 1.3180000E+08 6.9680863E-25 + 1.3190000E+08 6.9670987E-25 + 1.3200000E+08 6.9661107E-25 + 1.3210000E+08 6.9651226E-25 + 1.3220000E+08 6.9641351E-25 + 1.3230000E+08 6.9631470E-25 + 1.3240000E+08 6.9621590E-25 + 1.3250000E+08 6.9611714E-25 + 1.3260000E+08 6.9601834E-25 + 1.3270000E+08 6.9591953E-25 + 1.3280000E+08 6.9582078E-25 + 1.3290000E+08 6.9572197E-25 + 1.3300000E+08 6.9562317E-25 + 1.3310000E+08 6.9552441E-25 + 1.3320000E+08 6.9542561E-25 + 1.3330000E+08 6.9532680E-25 + 1.3340000E+08 6.9522805E-25 + 1.3350000E+08 6.9512924E-25 + 1.3360000E+08 6.9503044E-25 + 1.3370000E+08 6.9493168E-25 + 1.3380000E+08 6.9483288E-25 + 1.3390000E+08 6.9473407E-25 + 1.3400000E+08 6.9463532E-25 + 1.3410000E+08 6.9453651E-25 + 1.3420000E+08 6.9443776E-25 + 1.3430000E+08 6.9433895E-25 + 1.3440000E+08 6.9424015E-25 + 1.3450000E+08 6.9414139E-25 + 1.3460000E+08 6.9404259E-25 + 1.3470000E+08 6.9394378E-25 + 1.3480000E+08 6.9384503E-25 + 1.3490000E+08 6.9374622E-25 + 1.3500000E+08 6.9364742E-25 + 1.3510000E+08 6.9354866E-25 + 1.3520000E+08 6.9344986E-25 + 1.3530000E+08 6.9335105E-25 + 1.3540000E+08 6.9325229E-25 + 1.3550000E+08 6.9315349E-25 + 1.3560000E+08 6.9305469E-25 + 1.3570000E+08 6.9295593E-25 + 1.3580000E+08 6.9285712E-25 + 1.3590000E+08 6.9275837E-25 + 1.3600000E+08 6.9265956E-25 + 1.3610000E+08 6.9256076E-25 + 1.3620000E+08 6.9246200E-25 + 1.3630000E+08 6.9236320E-25 + 1.3640000E+08 6.9226439E-25 + 1.3650000E+08 6.9216564E-25 + 1.3660000E+08 6.9206683E-25 + 1.3670000E+08 6.9196803E-25 + 1.3680000E+08 6.9186927E-25 + 1.3690000E+08 6.9177047E-25 + 1.3700000E+08 6.9167166E-25 + 1.3710000E+08 6.9157291E-25 + 1.3720000E+08 6.9147410E-25 + 1.3730000E+08 6.9137530E-25 + 1.3740000E+08 6.9127654E-25 + 1.3750000E+08 6.9117774E-25 + 1.3760000E+08 6.9107893E-25 + 1.3770000E+08 6.9098018E-25 + 1.3780000E+08 6.9088137E-25 + 1.3790000E+08 6.9078262E-25 + 1.3800000E+08 6.9068381E-25 + 1.3810000E+08 6.9058501E-25 + 1.3820000E+08 6.9048625E-25 + 1.3830000E+08 6.9038745E-25 + 1.3840000E+08 6.9028864E-25 + 1.3850000E+08 6.9018989E-25 + 1.3860000E+08 6.9009108E-25 + 1.3870000E+08 6.8999228E-25 + 1.3880000E+08 6.8989352E-25 + 1.3890000E+08 6.8979472E-25 + 1.3900000E+08 6.8969591E-25 + 1.3910000E+08 6.8959716E-25 + 1.3920000E+08 6.8949835E-25 + 1.3930000E+08 6.8939955E-25 + 1.3940000E+08 6.8930079E-25 + 1.3950000E+08 6.8920199E-25 + 1.3960000E+08 6.8910323E-25 + 1.3970000E+08 6.8900443E-25 + 1.3980000E+08 6.8890562E-25 + 1.3990000E+08 6.8880682E-25 + 1.4000000E+08 6.8870806E-25 + 1.4010000E+08 6.8860926E-25 + 1.4020000E+08 6.8851050E-25 + 1.4030000E+08 6.8841170E-25 + 1.4040000E+08 6.8832635E-25 + 1.4050000E+08 6.8825304E-25 + 1.4060000E+08 6.8817972E-25 + 1.4070000E+08 6.8810641E-25 + 1.4080000E+08 6.8803309E-25 + 1.4090000E+08 6.8795978E-25 + 1.4100000E+08 6.8788646E-25 + 1.4110000E+08 6.8781315E-25 + 1.4120000E+08 6.8773988E-25 + 1.4130000E+08 6.8766657E-25 + 1.4140000E+08 6.8759325E-25 + 1.4150000E+08 6.8751994E-25 + 1.4160000E+08 6.8744662E-25 + 1.4170000E+08 6.8737331E-25 + 1.4180000E+08 6.8729999E-25 + 1.4190000E+08 6.8722668E-25 + 1.4200000E+08 6.8715336E-25 + 1.4210000E+08 6.8708005E-25 + 1.4220000E+08 6.8700674E-25 + 1.4230000E+08 6.8693342E-25 + 1.4240000E+08 6.8686011E-25 + 1.4250000E+08 6.8678679E-25 + 1.4260000E+08 6.8671348E-25 + 1.4270000E+08 6.8664016E-25 + 1.4280000E+08 6.8656685E-25 + 1.4290000E+08 6.8649353E-25 + 1.4300000E+08 6.8642022E-25 + 1.4310000E+08 6.8634690E-25 + 1.4320000E+08 6.8627364E-25 + 1.4330000E+08 6.8620032E-25 + 1.4340000E+08 6.8612701E-25 + 1.4350000E+08 6.8605369E-25 + 1.4360000E+08 6.8598038E-25 + 1.4370000E+08 6.8590706E-25 + 1.4380000E+08 6.8583375E-25 + 1.4390000E+08 6.8576043E-25 + 1.4400000E+08 6.8568712E-25 + 1.4410000E+08 6.8561380E-25 + 1.4420000E+08 6.8554049E-25 + 1.4430000E+08 6.8546717E-25 + 1.4440000E+08 6.8539386E-25 + 1.4450000E+08 6.8532054E-25 + 1.4460000E+08 6.8524723E-25 + 1.4470000E+08 6.8517392E-25 + 1.4480000E+08 6.8510060E-25 + 1.4490000E+08 6.8502729E-25 + 1.4500000E+08 6.8495397E-25 + 1.4510000E+08 6.8488066E-25 + 1.4520000E+08 6.8480734E-25 + 1.4530000E+08 6.8473403E-25 + 1.4540000E+08 6.8466071E-25 + 1.4550000E+08 6.8458740E-25 + 1.4560000E+08 6.8451408E-25 + 1.4570000E+08 6.8444082E-25 + 1.4580000E+08 6.8436750E-25 + 1.4590000E+08 6.8429419E-25 + 1.4600000E+08 6.8422087E-25 + 1.4610000E+08 6.8414756E-25 + 1.4620000E+08 6.8407424E-25 + 1.4630000E+08 6.8400093E-25 + 1.4640000E+08 6.8392761E-25 + 1.4650000E+08 6.8385430E-25 + 1.4660000E+08 6.8378098E-25 + 1.4670000E+08 6.8370767E-25 + 1.4680000E+08 6.8363435E-25 + 1.4690000E+08 6.8356104E-25 + 1.4700000E+08 6.8348773E-25 + 1.4710000E+08 6.8341441E-25 + 1.4720000E+08 6.8334110E-25 + 1.4730000E+08 6.8326778E-25 + 1.4740000E+08 6.8319447E-25 + 1.4750000E+08 6.8312115E-25 + 1.4760000E+08 6.8304784E-25 + 1.4770000E+08 6.8297452E-25 + 1.4780000E+08 6.8290121E-25 + 1.4790000E+08 6.8282789E-25 + 1.4800000E+08 6.8275458E-25 + 1.4810000E+08 6.8268131E-25 + 1.4820000E+08 6.8260800E-25 + 1.4830000E+08 6.8253468E-25 + 1.4840000E+08 6.8246137E-25 + 1.4850000E+08 6.8238805E-25 + 1.4860000E+08 6.8231474E-25 + 1.4870000E+08 6.8224142E-25 + 1.4880000E+08 6.8216811E-25 + 1.4890000E+08 6.8209479E-25 + 1.4900000E+08 6.8202148E-25 + 1.4910000E+08 6.8194816E-25 + 1.4920000E+08 6.8187485E-25 + 1.4930000E+08 6.8180153E-25 + 1.4940000E+08 6.8172822E-25 + 1.4950000E+08 6.8165491E-25 + 1.4960000E+08 6.8158159E-25 + 1.4970000E+08 6.8150828E-25 + 1.4980000E+08 6.8143496E-25 + 1.4990000E+08 6.8136165E-25 + 1.5000000E+08 6.8128833E-25 + 1.5010000E+08 6.8121507E-25 + 1.5020000E+08 6.8114175E-25 + 1.5030000E+08 6.8106844E-25 + 1.5040000E+08 6.8099512E-25 + 1.5050000E+08 6.8092181E-25 + 1.5060000E+08 6.8084849E-25 + 1.5070000E+08 6.8077518E-25 + 1.5080000E+08 6.8070186E-25 + 1.5090000E+08 6.8062855E-25 + 1.5100000E+08 6.8055523E-25 + 1.5110000E+08 6.8048192E-25 + 1.5120000E+08 6.8040860E-25 + 1.5130000E+08 6.8033529E-25 + 1.5140000E+08 6.8026197E-25 + 1.5150000E+08 6.8018866E-25 + 1.5160000E+08 6.8011534E-25 + 1.5170000E+08 6.8004203E-25 + 1.5180000E+08 6.7996872E-25 + 1.5190000E+08 6.7989540E-25 + 1.5200000E+08 6.7982209E-25 + 1.5210000E+08 6.7974877E-25 + 1.5220000E+08 6.7967546E-25 + 1.5230000E+08 6.7960214E-25 + 1.5240000E+08 6.7952883E-25 + 1.5250000E+08 6.7945556E-25 + 1.5260000E+08 6.7938225E-25 + 1.5270000E+08 6.7930893E-25 + 1.5280000E+08 6.7923562E-25 + 1.5290000E+08 6.7916230E-25 + 1.5300000E+08 6.7908899E-25 + 1.5310000E+08 6.7901567E-25 + 1.5320000E+08 6.7894236E-25 + 1.5330000E+08 6.7886904E-25 + 1.5340000E+08 6.7879573E-25 + 1.5350000E+08 6.7872241E-25 + 1.5360000E+08 6.7864910E-25 + 1.5370000E+08 6.7857578E-25 + 1.5380000E+08 6.7850247E-25 + 1.5390000E+08 6.7842915E-25 + 1.5400000E+08 6.7835584E-25 + 1.5410000E+08 6.7828253E-25 + 1.5420000E+08 6.7820921E-25 + 1.5430000E+08 6.7813590E-25 + 1.5440000E+08 6.7806258E-25 + 1.5450000E+08 6.7798927E-25 + 1.5460000E+08 6.7791595E-25 + 1.5470000E+08 6.7784264E-25 + 1.5480000E+08 6.7776932E-25 + 1.5490000E+08 6.7769601E-25 + 1.5500000E+08 6.7762274E-25 + 1.5510000E+08 6.7754943E-25 + 1.5520000E+08 6.7747611E-25 + 1.5530000E+08 6.7740280E-25 + 1.5540000E+08 6.7732948E-25 + 1.5550000E+08 6.7725617E-25 + 1.5560000E+08 6.7718285E-25 + 1.5570000E+08 6.7710954E-25 + 1.5580000E+08 6.7703622E-25 + 1.5590000E+08 6.7696291E-25 + 1.5600000E+08 6.7688959E-25 + 1.5610000E+08 6.7681628E-25 + 1.5620000E+08 6.7674296E-25 + 1.5630000E+08 6.7666965E-25 + 1.5640000E+08 6.7659633E-25 + 1.5650000E+08 6.7652302E-25 + 1.5660000E+08 6.7644971E-25 + 1.5670000E+08 6.7637639E-25 + 1.5680000E+08 6.7630308E-25 + 1.5690000E+08 6.7622981E-25 + 1.5700000E+08 6.7615650E-25 + 1.5710000E+08 6.7608318E-25 + 1.5720000E+08 6.7600987E-25 + 1.5730000E+08 6.7593655E-25 + 1.5740000E+08 6.7586324E-25 + 1.5750000E+08 6.7578992E-25 + 1.5760000E+08 6.7571661E-25 + 1.5770000E+08 6.7564329E-25 + 1.5780000E+08 6.7556998E-25 + 1.5790000E+08 6.7549666E-25 + 1.5800000E+08 6.7542335E-25 + 1.5810000E+08 6.7535003E-25 + 1.5820000E+08 6.7527672E-25 + 1.5830000E+08 6.7520340E-25 + 1.5840000E+08 6.7513009E-25 + 1.5850000E+08 6.7505677E-25 + 1.5860000E+08 6.7498346E-25 + 1.5870000E+08 6.7491014E-25 + 1.5880000E+08 6.7483683E-25 + 1.5890000E+08 6.7476352E-25 + 1.5900000E+08 6.7469020E-25 + 1.5910000E+08 6.7461689E-25 + 1.5920000E+08 6.7454357E-25 + 1.5930000E+08 6.7447026E-25 + 1.5940000E+08 6.7439699E-25 + 1.5950000E+08 6.7432368E-25 + 1.5960000E+08 6.7425036E-25 + 1.5970000E+08 6.7417705E-25 + 1.5980000E+08 6.7410373E-25 + 1.5990000E+08 6.7403042E-25 + 1.6000000E+08 6.7395710E-25 + 1.6010000E+08 6.7388379E-25 + 1.6020000E+08 6.7381047E-25 + 1.6030000E+08 6.7373716E-25 + 1.6040000E+08 6.7366384E-25 + 1.6050000E+08 6.7359053E-25 + 1.6060000E+08 6.7351721E-25 + 1.6070000E+08 6.7344390E-25 + 1.6080000E+08 6.7337058E-25 + 1.6090000E+08 6.7329727E-25 + 1.6100000E+08 6.7322395E-25 + 1.6110000E+08 6.7315064E-25 + 1.6120000E+08 6.7307732E-25 + 1.6130000E+08 6.7300401E-25 + 1.6140000E+08 6.7293070E-25 + 1.6150000E+08 6.7285738E-25 + 1.6160000E+08 6.7278407E-25 + 1.6170000E+08 6.7271075E-25 + 1.6180000E+08 6.7263749E-25 + 1.6190000E+08 6.7256417E-25 + 1.6200000E+08 6.7249086E-25 + 1.6210000E+08 6.7241754E-25 + 1.6220000E+08 6.7234423E-25 + 1.6230000E+08 6.7227091E-25 + 1.6240000E+08 6.7219760E-25 + 1.6250000E+08 6.7212428E-25 + 1.6260000E+08 6.7205097E-25 + 1.6270000E+08 6.7197765E-25 + 1.6280000E+08 6.7190434E-25 + 1.6290000E+08 6.7183102E-25 + 1.6300000E+08 6.7175771E-25 + 1.6310000E+08 6.7168439E-25 + 1.6320000E+08 6.7161108E-25 + 1.6330000E+08 6.7153776E-25 + 1.6340000E+08 6.7146445E-25 + 1.6350000E+08 6.7139113E-25 + 1.6360000E+08 6.7131782E-25 + 1.6370000E+08 6.7124451E-25 + 1.6380000E+08 6.7117119E-25 + 1.6390000E+08 6.7109788E-25 + 1.6400000E+08 6.7102461E-25 + 1.6410000E+08 6.7095130E-25 + 1.6420000E+08 6.7087798E-25 + 1.6430000E+08 6.7080467E-25 + 1.6440000E+08 6.7073135E-25 + 1.6450000E+08 6.7065804E-25 + 1.6460000E+08 6.7058472E-25 + 1.6470000E+08 6.7051141E-25 + 1.6480000E+08 6.7043809E-25 + 1.6490000E+08 6.7036478E-25 + 1.6500000E+08 6.7029146E-25 + 1.6510000E+08 6.7021815E-25 + 1.6520000E+08 6.7014483E-25 + 1.6530000E+08 6.7007152E-25 + 1.6540000E+08 6.6999820E-25 + 1.6550000E+08 6.6992489E-25 + 1.6560000E+08 6.6985157E-25 + 1.6570000E+08 6.6977826E-25 + 1.6580000E+08 6.6970494E-25 + 1.6590000E+08 6.6963163E-25 + 1.6600000E+08 6.6955832E-25 + 1.6610000E+08 6.6948500E-25 + 1.6620000E+08 6.6941169E-25 + 1.6630000E+08 6.6933842E-25 + 1.6640000E+08 6.6926511E-25 + 1.6650000E+08 6.6919179E-25 + 1.6660000E+08 6.6911848E-25 + 1.6670000E+08 6.6904516E-25 + 1.6680000E+08 6.6897185E-25 + 1.6690000E+08 6.6889853E-25 + 1.6700000E+08 6.6882522E-25 + 1.6710000E+08 6.6875190E-25 + 1.6720000E+08 6.6867859E-25 + 1.6730000E+08 6.6860527E-25 + 1.6740000E+08 6.6853196E-25 + 1.6750000E+08 6.6845864E-25 + 1.6760000E+08 6.6838533E-25 + 1.6770000E+08 6.6831201E-25 + 1.6780000E+08 6.6823870E-25 + 1.6790000E+08 6.6816538E-25 + 1.6800000E+08 6.6809207E-25 + 1.6810000E+08 6.6801875E-25 + 1.6820000E+08 6.6794544E-25 + 1.6830000E+08 6.6787212E-25 + 1.6840000E+08 6.6779881E-25 + 1.6850000E+08 6.6772550E-25 + 1.6860000E+08 6.6765218E-25 + 1.6870000E+08 6.6757892E-25 + 1.6880000E+08 6.6750560E-25 + 1.6890000E+08 6.6743229E-25 + 1.6900000E+08 6.6735897E-25 + 1.6910000E+08 6.6728566E-25 + 1.6920000E+08 6.6721234E-25 + 1.6930000E+08 6.6713903E-25 + 1.6940000E+08 6.6706571E-25 + 1.6950000E+08 6.6699240E-25 + 1.6960000E+08 6.6691908E-25 + 1.6970000E+08 6.6684577E-25 + 1.6980000E+08 6.6677245E-25 + 1.6990000E+08 6.6669914E-25 + 1.7000000E+08 6.6662582E-25 + 1.7010000E+08 6.6655251E-25 + 1.7020000E+08 6.6647919E-25 + 1.7030000E+08 6.6640588E-25 + 1.7040000E+08 6.6633256E-25 + 1.7050000E+08 6.6625925E-25 + 1.7060000E+08 6.6618593E-25 + 1.7070000E+08 6.6611262E-25 + 1.7080000E+08 6.6603931E-25 + 1.7090000E+08 6.6596599E-25 + 1.7100000E+08 6.6589272E-25 + 1.7110000E+08 6.6581941E-25 + 1.7120000E+08 6.6574610E-25 + 1.7130000E+08 6.6567278E-25 + 1.7140000E+08 6.6559947E-25 + 1.7150000E+08 6.6552615E-25 + 1.7160000E+08 6.6545284E-25 + 1.7170000E+08 6.6537952E-25 + 1.7180000E+08 6.6530621E-25 + 1.7190000E+08 6.6523289E-25 + 1.7200000E+08 6.6515958E-25 + 1.7210000E+08 6.6508626E-25 + 1.7220000E+08 6.6501295E-25 + 1.7230000E+08 6.6493963E-25 + 1.7240000E+08 6.6486632E-25 + 1.7250000E+08 6.6479300E-25 + 1.7260000E+08 6.6471969E-25 + 1.7270000E+08 6.6464637E-25 + 1.7280000E+08 6.6457306E-25 + 1.7290000E+08 6.6449974E-25 + 1.7300000E+08 6.6442643E-25 + 1.7310000E+08 6.6435316E-25 + 1.7320000E+08 6.6427985E-25 + 1.7330000E+08 6.6420653E-25 + 1.7340000E+08 6.6413322E-25 + 1.7350000E+08 6.6405991E-25 + 1.7360000E+08 6.6398659E-25 + 1.7370000E+08 6.6391328E-25 + 1.7380000E+08 6.6383996E-25 + 1.7390000E+08 6.6376665E-25 + 1.7400000E+08 6.6369333E-25 + 1.7410000E+08 6.6362002E-25 + 1.7420000E+08 6.6354670E-25 + 1.7430000E+08 6.6347339E-25 + 1.7440000E+08 6.6340007E-25 + 1.7450000E+08 6.6332676E-25 + 1.7460000E+08 6.6325344E-25 + 1.7470000E+08 6.6318013E-25 + 1.7480000E+08 6.6310681E-25 + 1.7490000E+08 6.6303350E-25 + 1.7500000E+08 6.6296018E-25 + 1.7510000E+08 6.6288687E-25 + 1.7520000E+08 6.6281355E-25 + 1.7530000E+08 6.6274024E-25 + 1.7540000E+08 6.6266692E-25 + 1.7550000E+08 6.6259366E-25 + 1.7560000E+08 6.6252034E-25 + 1.7570000E+08 6.6244703E-25 + 1.7580000E+08 6.6237372E-25 + 1.7590000E+08 6.6230040E-25 + 1.7600000E+08 6.6222709E-25 + 1.7610000E+08 6.6215377E-25 + 1.7620000E+08 6.6208046E-25 + 1.7630000E+08 6.6200714E-25 + 1.7640000E+08 6.6193383E-25 + 1.7650000E+08 6.6186051E-25 + 1.7660000E+08 6.6178720E-25 + 1.7670000E+08 6.6171388E-25 + 1.7680000E+08 6.6164057E-25 + 1.7690000E+08 6.6156725E-25 + 1.7700000E+08 6.6149394E-25 + 1.7710000E+08 6.6142062E-25 + 1.7720000E+08 6.6134731E-25 + 1.7730000E+08 6.6127399E-25 + 1.7740000E+08 6.6120068E-25 + 1.7750000E+08 6.6112736E-25 + 1.7760000E+08 6.6105405E-25 + 1.7770000E+08 6.6098073E-25 + 1.7780000E+08 6.6091408E-25 + 1.7790000E+08 6.6085057E-25 + 1.7800000E+08 6.6078712E-25 + 1.7810000E+08 6.6072366E-25 + 1.7820000E+08 6.6066021E-25 + 1.7830000E+08 6.6059676E-25 + 1.7840000E+08 6.6053330E-25 + 1.7850000E+08 6.6046985E-25 + 1.7860000E+08 6.6040635E-25 + 1.7870000E+08 6.6034289E-25 + 1.7880000E+08 6.6027944E-25 + 1.7890000E+08 6.6021598E-25 + 1.7900000E+08 6.6015253E-25 + 1.7910000E+08 6.6008903E-25 + 1.7920000E+08 6.6002557E-25 + 1.7930000E+08 6.5996212E-25 + 1.7940000E+08 6.5989866E-25 + 1.7950000E+08 6.5983521E-25 + 1.7960000E+08 6.5977176E-25 + 1.7970000E+08 6.5970830E-25 + 1.7980000E+08 6.5964480E-25 + 1.7990000E+08 6.5958134E-25 + 1.8000000E+08 6.5951789E-25 + 1.8010000E+08 6.5945444E-25 + 1.8020000E+08 6.5939098E-25 + 1.8030000E+08 6.5932748E-25 + 1.8040000E+08 6.5926403E-25 + 1.8050000E+08 6.5920057E-25 + 1.8060000E+08 6.5913712E-25 + 1.8070000E+08 6.5907366E-25 + 1.8080000E+08 6.5901021E-25 + 1.8090000E+08 6.5894671E-25 + 1.8100000E+08 6.5888325E-25 + 1.8110000E+08 6.5881980E-25 + 1.8120000E+08 6.5875634E-25 + 1.8130000E+08 6.5869289E-25 + 1.8140000E+08 6.5862944E-25 + 1.8150000E+08 6.5856593E-25 + 1.8160000E+08 6.5850248E-25 + 1.8170000E+08 6.5843902E-25 + 1.8180000E+08 6.5837557E-25 + 1.8190000E+08 6.5831212E-25 + 1.8200000E+08 6.5824866E-25 + 1.8210000E+08 6.5818516E-25 + 1.8220000E+08 6.5812171E-25 + 1.8230000E+08 6.5805825E-25 + 1.8240000E+08 6.5799480E-25 + 1.8250000E+08 6.5793134E-25 + 1.8260000E+08 6.5786789E-25 + 1.8270000E+08 6.5780439E-25 + 1.8280000E+08 6.5774093E-25 + 1.8290000E+08 6.5767748E-25 + 1.8300000E+08 6.5761402E-25 + 1.8310000E+08 6.5755057E-25 + 1.8320000E+08 6.5748712E-25 + 1.8330000E+08 6.5742361E-25 + 1.8340000E+08 6.5736016E-25 + 1.8350000E+08 6.5729670E-25 + 1.8360000E+08 6.5723325E-25 + 1.8370000E+08 6.5716980E-25 + 1.8380000E+08 6.5710634E-25 + 1.8390000E+08 6.5704284E-25 + 1.8400000E+08 6.5697939E-25 + 1.8410000E+08 6.5691593E-25 + 1.8420000E+08 6.5685248E-25 + 1.8430000E+08 6.5678902E-25 + 1.8440000E+08 6.5672552E-25 + 1.8450000E+08 6.5666207E-25 + 1.8460000E+08 6.5659861E-25 + 1.8470000E+08 6.5653516E-25 + 1.8480000E+08 6.5647170E-25 + 1.8490000E+08 6.5640825E-25 + 1.8500000E+08 6.5634480E-25 + 1.8510000E+08 6.5628129E-25 + 1.8520000E+08 6.5621784E-25 + 1.8530000E+08 6.5615439E-25 + 1.8540000E+08 6.5609093E-25 + 1.8550000E+08 6.5602748E-25 + 1.8560000E+08 6.5596397E-25 + 1.8570000E+08 6.5590052E-25 + 1.8580000E+08 6.5583707E-25 + 1.8590000E+08 6.5577361E-25 + 1.8600000E+08 6.5571016E-25 + 1.8610000E+08 6.5564670E-25 + 1.8620000E+08 6.5558320E-25 + 1.8630000E+08 6.5551975E-25 + 1.8640000E+08 6.5545629E-25 + 1.8650000E+08 6.5539284E-25 + 1.8660000E+08 6.5532938E-25 + 1.8670000E+08 6.5526593E-25 + 1.8680000E+08 6.5520243E-25 + 1.8690000E+08 6.5513897E-25 + 1.8700000E+08 6.5507552E-25 + 1.8710000E+08 6.5501207E-25 + 1.8720000E+08 6.5494861E-25 + 1.8730000E+08 6.5488511E-25 + 1.8740000E+08 6.5482165E-25 + 1.8750000E+08 6.5475820E-25 + 1.8760000E+08 6.5469475E-25 + 1.8770000E+08 6.5463129E-25 + 1.8780000E+08 6.5456784E-25 + 1.8790000E+08 6.5450438E-25 + 1.8800000E+08 6.5444093E-25 + 1.8810000E+08 6.5437743E-25 + 1.8820000E+08 6.5431397E-25 + 1.8830000E+08 6.5425052E-25 + 1.8840000E+08 6.5418706E-25 + 1.8850000E+08 6.5412361E-25 + 1.8860000E+08 6.5406011E-25 + 1.8870000E+08 6.5399665E-25 + 1.8880000E+08 6.5393320E-25 + 1.8890000E+08 6.5386975E-25 + 1.8900000E+08 6.5380629E-25 + 1.8910000E+08 6.5374284E-25 + 1.8920000E+08 6.5367933E-25 + 1.8930000E+08 6.5361588E-25 + 1.8940000E+08 6.5355243E-25 + 1.8950000E+08 6.5348897E-25 + 1.8960000E+08 6.5342552E-25 + 1.8970000E+08 6.5336206E-25 + 1.8980000E+08 6.5329856E-25 + 1.8990000E+08 6.5323511E-25 + 1.9000000E+08 6.5317165E-25 + 1.9010000E+08 6.5310820E-25 + 1.9020000E+08 6.5304474E-25 + 1.9030000E+08 6.5298124E-25 + 1.9040000E+08 6.5291779E-25 + 1.9050000E+08 6.5285433E-25 + 1.9060000E+08 6.5279088E-25 + 1.9070000E+08 6.5272743E-25 + 1.9080000E+08 6.5266397E-25 + 1.9090000E+08 6.5260047E-25 + 1.9100000E+08 6.5253701E-25 + 1.9110000E+08 6.5247356E-25 + 1.9120000E+08 6.5241011E-25 + 1.9130000E+08 6.5234665E-25 + 1.9140000E+08 6.5228320E-25 + 1.9150000E+08 6.5221974E-25 + 1.9160000E+08 6.5215624E-25 + 1.9170000E+08 6.5209279E-25 + 1.9180000E+08 6.5202933E-25 + 1.9190000E+08 6.5196588E-25 + 1.9200000E+08 6.5190242E-25 + 1.9210000E+08 6.5183897E-25 + 1.9220000E+08 6.5177547E-25 + 1.9230000E+08 6.5171201E-25 + 1.9240000E+08 6.5164856E-25 + 1.9250000E+08 6.5158511E-25 + 1.9260000E+08 6.5152165E-25 + 1.9270000E+08 6.5145815E-25 + 1.9280000E+08 6.5139469E-25 + 1.9290000E+08 6.5133124E-25 + 1.9300000E+08 6.5126779E-25 + 1.9310000E+08 6.5120433E-25 + 1.9320000E+08 6.5114088E-25 + 1.9330000E+08 6.5107737E-25 + 1.9340000E+08 6.5101392E-25 + 1.9350000E+08 6.5095047E-25 + 1.9360000E+08 6.5088701E-25 + 1.9370000E+08 6.5082356E-25 + 1.9380000E+08 6.5076010E-25 + 1.9390000E+08 6.5069660E-25 + 1.9400000E+08 6.5063315E-25 + 1.9410000E+08 6.5056969E-25 + 1.9420000E+08 6.5050624E-25 + 1.9430000E+08 6.5044279E-25 + 1.9440000E+08 6.5037928E-25 + 1.9450000E+08 6.5031583E-25 + 1.9460000E+08 6.5025237E-25 + 1.9470000E+08 6.5018892E-25 + 1.9480000E+08 6.5012547E-25 + 1.9490000E+08 6.5006201E-25 + 1.9500000E+08 6.4999856E-25 + 1.9510000E+08 6.4993510E-25 + 1.9520000E+08 6.4987160E-25 + 1.9530000E+08 6.4980815E-25 + 1.9540000E+08 6.4974469E-25 + 1.9550000E+08 6.4968124E-25 + 1.9560000E+08 6.4961778E-25 + 1.9570000E+08 6.4955428E-25 + 1.9580000E+08 6.4949083E-25 + 1.9590000E+08 6.4942737E-25 + 1.9600000E+08 6.4936392E-25 + 1.9610000E+08 6.4930047E-25 + 1.9620000E+08 6.4923701E-25 + 1.9630000E+08 6.4917351E-25 + 1.9640000E+08 6.4911005E-25 + 1.9650000E+08 6.4904660E-25 + 1.9660000E+08 6.4898315E-25 + 1.9670000E+08 6.4891969E-25 + 1.9680000E+08 6.4885619E-25 + 1.9690000E+08 6.4879274E-25 + 1.9700000E+08 6.4872928E-25 + 1.9710000E+08 6.4866583E-25 + 1.9720000E+08 6.4860237E-25 + 1.9730000E+08 6.4853892E-25 + 1.9740000E+08 6.4847542E-25 + 1.9750000E+08 6.4841196E-25 + 1.9760000E+08 6.4834851E-25 + 1.9770000E+08 6.4828505E-25 + 1.9780000E+08 6.4822160E-25 + 1.9790000E+08 6.4815815E-25 + 1.9800000E+08 6.4809464E-25 + 1.9810000E+08 6.4803119E-25 + 1.9820000E+08 6.4796773E-25 + 1.9830000E+08 6.4790428E-25 + 1.9840000E+08 6.4784083E-25 + 1.9850000E+08 6.4777737E-25 + 1.9860000E+08 6.4771392E-25 + 1.9870000E+08 6.4765042E-25 + 1.9880000E+08 6.4758696E-25 + 1.9890000E+08 6.4752351E-25 + 1.9900000E+08 6.4746005E-25 + 1.9910000E+08 6.4739660E-25 + 1.9920000E+08 6.4733315E-25 + 1.9930000E+08 6.4726964E-25 + 1.9940000E+08 6.4720619E-25 + 1.9950000E+08 6.4714273E-25 + 1.9960000E+08 6.4707928E-25 + 1.9970000E+08 6.4701583E-25 + 1.9980000E+08 6.4695232E-25 + 1.9990000E+08 6.4688887E-25 + 2.0000000E+08 6.4682541E-25 + 2.0010000E+08 6.4676196E-25 + 2.0020000E+08 6.4669851E-25 + 2.0030000E+08 6.4663505E-25 + 2.0040000E+08 6.4657155E-25 + 2.0050000E+08 6.4650810E-25 + 2.0060000E+08 6.4644464E-25 + 2.0070000E+08 6.4638119E-25 + 2.0080000E+08 6.4631773E-25 + 2.0090000E+08 6.4625428E-25 + 2.0100000E+08 6.4619078E-25 + 2.0110000E+08 6.4612732E-25 + 2.0120000E+08 6.4606387E-25 + 2.0130000E+08 6.4600041E-25 + 2.0140000E+08 6.4593696E-25 + 2.0150000E+08 6.4587346E-25 + 2.0160000E+08 6.4581005E-25 + 2.0170000E+08 6.4574655E-25 + 2.0180000E+08 6.4568309E-25 + 2.0190000E+08 6.4561964E-25 + 2.0200000E+08 6.4555619E-25 + 2.0210000E+08 6.4549273E-25 + 2.0220000E+08 6.4542923E-25 + 2.0230000E+08 6.4536578E-25 + 2.0240000E+08 6.4530232E-25 + 2.0250000E+08 6.4523887E-25 + 2.0260000E+08 6.4517541E-25 + 2.0270000E+08 6.4511196E-25 + 2.0280000E+08 6.4504846E-25 + 2.0290000E+08 6.4498500E-25 + 2.0300000E+08 6.4492155E-25 + 2.0310000E+08 6.4485809E-25 + 2.0320000E+08 6.4479464E-25 + 2.0330000E+08 6.4473119E-25 + 2.0340000E+08 6.4466768E-25 + 2.0350000E+08 6.4460423E-25 + 2.0360000E+08 6.4454077E-25 + 2.0370000E+08 6.4447732E-25 + 2.0380000E+08 6.4441387E-25 + 2.0390000E+08 6.4435036E-25 + 2.0400000E+08 6.4428691E-25 + 2.0410000E+08 6.4422346E-25 + 2.0420000E+08 6.4416000E-25 + 2.0430000E+08 6.4409655E-25 + 2.0440000E+08 6.4403309E-25 + 2.0450000E+08 6.4396959E-25 + 2.0460000E+08 6.4390614E-25 + 2.0470000E+08 6.4384268E-25 + 2.0480000E+08 6.4377923E-25 + 2.0490000E+08 6.4371577E-25 + 2.0500000E+08 6.4365227E-25 + 2.0510000E+08 6.4358887E-25 + 2.0520000E+08 6.4352536E-25 + 2.0530000E+08 6.4346191E-25 + 2.0540000E+08 6.4339845E-25 + 2.0550000E+08 6.4333500E-25 + 2.0560000E+08 6.4327155E-25 + 2.0570000E+08 6.4320809E-25 + 2.0580000E+08 6.4314459E-25 + 2.0590000E+08 6.4308114E-25 + 2.0600000E+08 6.4301768E-25 + 2.0610000E+08 6.4295423E-25 + 2.0620000E+08 6.4289077E-25 + 2.0630000E+08 6.4282727E-25 + 2.0640000E+08 6.4276382E-25 + 2.0650000E+08 6.4270036E-25 + 2.0660000E+08 6.4263691E-25 + 2.0670000E+08 6.4257345E-25 + 2.0680000E+08 6.4251000E-25 + 2.0690000E+08 6.4244650E-25 + 2.0700000E+08 6.4238304E-25 + 2.0710000E+08 6.4231959E-25 + 2.0720000E+08 6.4225613E-25 + 2.0730000E+08 6.4219268E-25 + 2.0740000E+08 6.4212923E-25 + 2.0750000E+08 6.4206572E-25 + 2.0760000E+08 6.4200227E-25 + 2.0770000E+08 6.4193882E-25 + 2.0780000E+08 6.4187536E-25 + 2.0790000E+08 6.4181191E-25 + 2.0800000E+08 6.4174840E-25 + 2.0810000E+08 6.4168495E-25 + 2.0820000E+08 6.4162150E-25 + 2.0830000E+08 6.4155804E-25 + 2.0840000E+08 6.4149459E-25 + 2.0850000E+08 6.4143113E-25 + 2.0860000E+08 6.4136763E-25 + 2.0870000E+08 6.4130418E-25 + 2.0880000E+08 6.4124072E-25 + 2.0890000E+08 6.4117727E-25 + 2.0900000E+08 6.4111382E-25 + 2.0910000E+08 6.4105036E-25 + 2.0920000E+08 6.4098691E-25 + 2.0930000E+08 6.4092340E-25 + 2.0940000E+08 6.4085995E-25 + 2.0950000E+08 6.4079650E-25 + 2.0960000E+08 6.4073304E-25 + 2.0970000E+08 6.4066959E-25 + 2.0980000E+08 6.4060613E-25 + 2.0990000E+08 6.4054263E-25 + 2.1000000E+08 6.4047918E-25 + 2.1010000E+08 6.4041572E-25 + 2.1020000E+08 6.4035227E-25 + 2.1030000E+08 6.4028881E-25 + 2.1040000E+08 6.4022531E-25 + 2.1050000E+08 6.4016186E-25 + 2.1060000E+08 6.4009840E-25 + 2.1070000E+08 6.4003495E-25 + 2.1080000E+08 6.3997150E-25 + 2.1090000E+08 6.3990804E-25 + 2.1100000E+08 6.3984454E-25 + 2.1110000E+08 6.3978108E-25 + 2.1120000E+08 6.3971763E-25 + 2.1130000E+08 6.3965418E-25 + 2.1140000E+08 6.3959072E-25 + 2.1150000E+08 6.3952727E-25 + 2.1160000E+08 6.3946376E-25 + 2.1170000E+08 6.3940031E-25 + 2.1180000E+08 6.3933686E-25 + 2.1190000E+08 6.3927340E-25 + 2.1200000E+08 6.3920995E-25 + 2.1210000E+08 6.3914645E-25 + 2.1220000E+08 6.3908304E-25 + 2.1230000E+08 6.3901954E-25 + 2.1240000E+08 6.3895608E-25 + 2.1250000E+08 6.3889263E-25 + 2.1260000E+08 6.3882918E-25 + 2.1270000E+08 6.3876572E-25 + 2.1280000E+08 6.3870222E-25 + 2.1290000E+08 6.3863876E-25 + 2.1300000E+08 6.3857531E-25 + 2.1310000E+08 6.3851186E-25 + 2.1320000E+08 6.3844840E-25 + 2.1330000E+08 6.3838495E-25 + 2.1340000E+08 6.3832144E-25 + 2.1350000E+08 6.3825799E-25 + 2.1360000E+08 6.3819454E-25 + 2.1370000E+08 6.3813108E-25 + 2.1380000E+08 6.3806763E-25 + 2.1390000E+08 6.3800417E-25 + 2.1400000E+08 6.3794067E-25 + 2.1410000E+08 6.3787722E-25 + 2.1420000E+08 6.3781376E-25 + 2.1430000E+08 6.3775031E-25 + 2.1440000E+08 6.3768686E-25 + 2.1450000E+08 6.3762340E-25 + 2.1460000E+08 6.3755990E-25 + 2.1470000E+08 6.3749644E-25 + 2.1480000E+08 6.3743299E-25 + 2.1490000E+08 6.3736954E-25 + 2.1500000E+08 6.3730608E-25 + 2.1510000E+08 6.3724258E-25 + 2.1520000E+08 6.3717912E-25 + 2.1530000E+08 6.3711567E-25 + 2.1540000E+08 6.3705222E-25 + 2.1550000E+08 6.3698876E-25 + 2.1560000E+08 6.3692531E-25 + 2.1570000E+08 6.3686185E-25 + 2.1580000E+08 6.3679840E-25 + 2.1590000E+08 6.3673490E-25 + 2.1600000E+08 6.3667144E-25 + 2.1610000E+08 6.3660799E-25 + 2.1620000E+08 6.3654454E-25 + 2.1630000E+08 6.3648108E-25 + 2.1640000E+08 6.3641758E-25 + 2.1650000E+08 6.3635412E-25 + 2.1660000E+08 6.3629067E-25 + 2.1670000E+08 6.3622722E-25 + 2.1680000E+08 6.3616376E-25 + 2.1690000E+08 6.3610031E-25 + 2.1700000E+08 6.3603680E-25 + 2.1710000E+08 6.3597335E-25 + 2.1720000E+08 6.3590990E-25 + 2.1730000E+08 6.3584644E-25 + 2.1740000E+08 6.3578299E-25 + 2.1750000E+08 6.3571949E-25 + 2.1760000E+08 6.3565603E-25 + 2.1770000E+08 6.3559258E-25 + 2.1780000E+08 6.3552912E-25 + 2.1790000E+08 6.3546567E-25 + 2.1800000E+08 6.3540222E-25 + 2.1810000E+08 6.3533871E-25 + 2.1820000E+08 6.3527526E-25 + 2.1830000E+08 6.3521180E-25 + 2.1840000E+08 6.3514835E-25 + 2.1850000E+08 6.3508490E-25 + 2.1860000E+08 6.3502139E-25 + 2.1870000E+08 6.3495794E-25 + 2.1880000E+08 6.3489449E-25 + 2.1890000E+08 6.3483103E-25 + 2.1900000E+08 6.3476758E-25 + 2.1910000E+08 6.3470412E-25 + 2.1920000E+08 6.3464067E-25 + 2.1930000E+08 6.3457722E-25 + 2.1940000E+08 6.3451371E-25 + 2.1950000E+08 6.3445026E-25 + 2.1960000E+08 6.3438680E-25 + 2.1970000E+08 6.3432335E-25 + 2.1980000E+08 6.3425990E-25 + 2.1990000E+08 6.3419644E-25 + 2.2000000E+08 6.3413294E-25 + 2.2010000E+08 6.3406948E-25 + 2.2020000E+08 6.3400603E-25 + 2.2030000E+08 6.3394258E-25 + 2.2040000E+08 6.3387912E-25 + 2.2050000E+08 6.3381562E-25 + 2.2060000E+08 6.3375217E-25 + 2.2070000E+08 6.3368871E-25 + 2.2080000E+08 6.3362526E-25 + 2.2090000E+08 6.3356180E-25 + 2.2100000E+08 6.3349835E-25 + 2.2110000E+08 6.3343485E-25 + 2.2120000E+08 6.3337139E-25 + 2.2130000E+08 6.3330794E-25 + 2.2140000E+08 6.3324448E-25 + 2.2150000E+08 6.3318103E-25 + 2.2160000E+08 6.3311758E-25 + 2.2170000E+08 6.3305407E-25 + 2.2180000E+08 6.3299062E-25 + 2.2190000E+08 6.3292716E-25 + 2.2200000E+08 6.3286371E-25 + 2.2210000E+08 6.3280026E-25 + 2.2220000E+08 6.3273675E-25 + 2.2230000E+08 6.3267330E-25 + 2.2240000E+08 6.3260985E-25 + 2.2250000E+08 6.3254639E-25 + 2.2260000E+08 6.3248294E-25 + 2.2270000E+08 6.3241948E-25 + 2.2280000E+08 6.3235603E-25 + 2.2290000E+08 6.3229253E-25 + 2.2300000E+08 6.3222907E-25 + 2.2310000E+08 6.3216562E-25 + 2.2320000E+08 6.3210216E-25 + 2.2330000E+08 6.3203871E-25 + 2.2340000E+08 6.3197526E-25 + 2.2350000E+08 6.3191175E-25 + 2.2360000E+08 6.3184830E-25 + 2.2370000E+08 6.3178484E-25 + 2.2380000E+08 6.3172139E-25 + 2.2390000E+08 6.3165794E-25 + 2.2400000E+08 6.3159448E-25 + 2.2410000E+08 6.3153098E-25 + 2.2420000E+08 6.3146753E-25 + 2.2430000E+08 6.3140407E-25 + 2.2440000E+08 6.3134062E-25 + 2.2450000E+08 6.3127716E-25 + 2.2460000E+08 6.3121366E-25 + 2.2470000E+08 6.3115021E-25 + 2.2480000E+08 6.3108675E-25 + 2.2490000E+08 6.3102330E-25 + 2.2500000E+08 6.3095984E-25 + 2.2510000E+08 6.3089969E-25 + 2.2520000E+08 6.3085103E-25 + 2.2530000E+08 6.3080232E-25 + 2.2540000E+08 6.3075366E-25 + 2.2550000E+08 6.3070494E-25 + 2.2560000E+08 6.3065623E-25 + 2.2570000E+08 6.3060757E-25 + 2.2580000E+08 6.3055886E-25 + 2.2590000E+08 6.3051019E-25 + 2.2600000E+08 6.3046148E-25 + 2.2610000E+08 6.3041277E-25 + 2.2620000E+08 6.3036411E-25 + 2.2630000E+08 6.3031544E-25 + 2.2640000E+08 6.3026673E-25 + 2.2650000E+08 6.3021802E-25 + 2.2660000E+08 6.3016936E-25 + 2.2670000E+08 6.3012064E-25 + 2.2680000E+08 6.3007198E-25 + 2.2690000E+08 6.3002327E-25 + 2.2700000E+08 6.2997456E-25 + 2.2710000E+08 6.2992589E-25 + 2.2720000E+08 6.2987718E-25 + 2.2730000E+08 6.2982852E-25 + 2.2740000E+08 6.2977981E-25 + 2.2750000E+08 6.2973109E-25 + 2.2760000E+08 6.2968243E-25 + 2.2770000E+08 6.2963372E-25 + 2.2780000E+08 6.2958506E-25 + 2.2790000E+08 6.2953634E-25 + 2.2800000E+08 6.2948768E-25 + 2.2810000E+08 6.2943897E-25 + 2.2820000E+08 6.2939026E-25 + 2.2830000E+08 6.2934159E-25 + 2.2840000E+08 6.2929288E-25 + 2.2850000E+08 6.2924422E-25 + 2.2860000E+08 6.2919551E-25 + 2.2870000E+08 6.2914680E-25 + 2.2880000E+08 6.2909813E-25 + 2.2890000E+08 6.2904942E-25 + 2.2900000E+08 6.2900076E-25 + 2.2910000E+08 6.2895205E-25 + 2.2920000E+08 6.2890333E-25 + 2.2930000E+08 6.2885467E-25 + 2.2940000E+08 6.2880596E-25 + 2.2950000E+08 6.2875730E-25 + 2.2960000E+08 6.2870858E-25 + 2.2970000E+08 6.2865992E-25 + 2.2980000E+08 6.2861121E-25 + 2.2990000E+08 6.2856255E-25 + 2.3000000E+08 6.2851383E-25 + 2.3010000E+08 6.2846512E-25 + 2.3020000E+08 6.2841646E-25 + 2.3030000E+08 6.2836775E-25 + 2.3040000E+08 6.2831908E-25 + 2.3050000E+08 6.2827037E-25 + 2.3060000E+08 6.2822166E-25 + 2.3070000E+08 6.2817300E-25 + 2.3080000E+08 6.2812428E-25 + 2.3090000E+08 6.2807562E-25 + 2.3100000E+08 6.2802691E-25 + 2.3110000E+08 6.2797820E-25 + 2.3120000E+08 6.2792953E-25 + 2.3130000E+08 6.2788082E-25 + 2.3140000E+08 6.2783216E-25 + 2.3150000E+08 6.2778345E-25 + 2.3160000E+08 6.2773473E-25 + 2.3170000E+08 6.2768607E-25 + 2.3180000E+08 6.2763736E-25 + 2.3190000E+08 6.2758870E-25 + 2.3200000E+08 6.2753998E-25 + 2.3210000E+08 6.2749132E-25 + 2.3220000E+08 6.2744261E-25 + 2.3230000E+08 6.2739390E-25 + 2.3240000E+08 6.2734523E-25 + 2.3250000E+08 6.2729652E-25 + 2.3260000E+08 6.2724786E-25 + 2.3270000E+08 6.2719915E-25 + 2.3280000E+08 6.2715043E-25 + 2.3290000E+08 6.2710177E-25 + 2.3300000E+08 6.2705306E-25 + 2.3310000E+08 6.2700440E-25 + 2.3320000E+08 6.2695568E-25 + 2.3330000E+08 6.2690702E-25 + 2.3340000E+08 6.2685831E-25 + 2.3350000E+08 6.2680965E-25 + 2.3360000E+08 6.2676093E-25 + 2.3370000E+08 6.2671222E-25 + 2.3380000E+08 6.2666356E-25 + 2.3390000E+08 6.2661485E-25 + 2.3400000E+08 6.2656618E-25 + 2.3410000E+08 6.2651747E-25 + 2.3420000E+08 6.2646876E-25 + 2.3430000E+08 6.2642010E-25 + 2.3440000E+08 6.2637139E-25 + 2.3450000E+08 6.2632272E-25 + 2.3460000E+08 6.2627401E-25 + 2.3470000E+08 6.2622530E-25 + 2.3480000E+08 6.2617664E-25 + 2.3490000E+08 6.2612792E-25 + 2.3500000E+08 6.2607926E-25 + 2.3510000E+08 6.2603055E-25 + 2.3520000E+08 6.2598184E-25 + 2.3530000E+08 6.2593317E-25 + 2.3540000E+08 6.2588446E-25 + 2.3550000E+08 6.2583580E-25 + 2.3560000E+08 6.2578709E-25 + 2.3570000E+08 6.2573842E-25 + 2.3580000E+08 6.2568971E-25 + 2.3590000E+08 6.2564100E-25 + 2.3600000E+08 6.2559234E-25 + 2.3610000E+08 6.2554362E-25 + 2.3620000E+08 6.2549496E-25 + 2.3630000E+08 6.2544625E-25 + 2.3640000E+08 6.2539754E-25 + 2.3650000E+08 6.2534887E-25 + 2.3660000E+08 6.2530016E-25 + 2.3670000E+08 6.2525150E-25 + 2.3680000E+08 6.2520279E-25 + 2.3690000E+08 6.2515412E-25 + 2.3700000E+08 6.2510541E-25 + 2.3710000E+08 6.2505675E-25 + 2.3720000E+08 6.2500804E-25 + 2.3730000E+08 6.2495932E-25 + 2.3740000E+08 6.2491066E-25 + 2.3750000E+08 6.2486195E-25 + 2.3760000E+08 6.2481329E-25 + 2.3770000E+08 6.2476457E-25 + 2.3780000E+08 6.2471586E-25 + 2.3790000E+08 6.2466720E-25 + 2.3800000E+08 6.2461849E-25 + 2.3810000E+08 6.2456982E-25 + 2.3820000E+08 6.2452111E-25 + 2.3830000E+08 6.2447240E-25 + 2.3840000E+08 6.2442374E-25 + 2.3850000E+08 6.2437502E-25 + 2.3860000E+08 6.2432636E-25 + 2.3870000E+08 6.2427765E-25 + 2.3880000E+08 6.2422894E-25 + 2.3890000E+08 6.2418027E-25 + 2.3900000E+08 6.2413156E-25 + 2.3910000E+08 6.2408290E-25 + 2.3920000E+08 6.2403419E-25 + 2.3930000E+08 6.2398552E-25 + 2.3940000E+08 6.2393681E-25 + 2.3950000E+08 6.2388810E-25 + 2.3960000E+08 6.2383944E-25 + 2.3970000E+08 6.2379073E-25 + 2.3980000E+08 6.2374206E-25 + 2.3990000E+08 6.2369335E-25 + 2.4000000E+08 6.2364464E-25 + 2.4010000E+08 6.2359598E-25 + 2.4020000E+08 6.2354726E-25 + 2.4030000E+08 6.2349860E-25 + 2.4040000E+08 6.2344989E-25 + 2.4050000E+08 6.2340123E-25 + 2.4060000E+08 6.2335251E-25 + 2.4070000E+08 6.2330385E-25 + 2.4080000E+08 6.2325514E-25 + 2.4090000E+08 6.2320643E-25 + 2.4100000E+08 6.2315776E-25 + 2.4110000E+08 6.2310905E-25 + 2.4120000E+08 6.2306039E-25 + 2.4130000E+08 6.2301168E-25 + 2.4140000E+08 6.2296296E-25 + 2.4150000E+08 6.2291430E-25 + 2.4160000E+08 6.2286559E-25 + 2.4170000E+08 6.2281693E-25 + 2.4180000E+08 6.2276821E-25 + 2.4190000E+08 6.2271950E-25 + 2.4200000E+08 6.2267084E-25 + 2.4210000E+08 6.2262213E-25 + 2.4220000E+08 6.2257346E-25 + 2.4230000E+08 6.2252475E-25 + 2.4240000E+08 6.2247604E-25 + 2.4250000E+08 6.2242738E-25 + 2.4260000E+08 6.2237866E-25 + 2.4270000E+08 6.2233000E-25 + 2.4280000E+08 6.2228129E-25 + 2.4290000E+08 6.2223263E-25 + 2.4300000E+08 6.2218391E-25 + 2.4310000E+08 6.2213520E-25 + 2.4320000E+08 6.2208654E-25 + 2.4330000E+08 6.2203783E-25 + 2.4340000E+08 6.2198916E-25 + 2.4350000E+08 6.2194045E-25 + 2.4360000E+08 6.2189174E-25 + 2.4370000E+08 6.2184308E-25 + 2.4380000E+08 6.2179436E-25 + 2.4390000E+08 6.2174570E-25 + 2.4400000E+08 6.2169699E-25 + 2.4410000E+08 6.2164833E-25 + 2.4420000E+08 6.2159961E-25 + 2.4430000E+08 6.2155090E-25 + 2.4440000E+08 6.2150224E-25 + 2.4450000E+08 6.2145353E-25 + 2.4460000E+08 6.2140486E-25 + 2.4470000E+08 6.2135615E-25 + 2.4480000E+08 6.2130749E-25 + 2.4490000E+08 6.2125878E-25 + 2.4500000E+08 6.2121007E-25 + 2.4510000E+08 6.2116140E-25 + 2.4520000E+08 6.2111269E-25 + 2.4530000E+08 6.2106403E-25 + 2.4540000E+08 6.2101532E-25 + 2.4550000E+08 6.2096660E-25 + 2.4560000E+08 6.2091794E-25 + 2.4570000E+08 6.2086923E-25 + 2.4580000E+08 6.2082057E-25 + 2.4590000E+08 6.2077185E-25 + 2.4600000E+08 6.2072314E-25 + 2.4610000E+08 6.2067448E-25 + 2.4620000E+08 6.2062577E-25 + 2.4630000E+08 6.2057710E-25 + 2.4640000E+08 6.2052839E-25 + 2.4650000E+08 6.2047973E-25 + 2.4660000E+08 6.2043102E-25 + 2.4670000E+08 6.2038230E-25 + 2.4680000E+08 6.2033364E-25 + 2.4690000E+08 6.2028493E-25 + 2.4700000E+08 6.2023627E-25 + 2.4710000E+08 6.2018755E-25 + 2.4720000E+08 6.2013889E-25 + 2.4730000E+08 6.2009018E-25 + 2.4740000E+08 6.2004147E-25 + 2.4750000E+08 6.1999280E-25 + 2.4760000E+08 6.1994409E-25 + 2.4770000E+08 6.1989543E-25 + 2.4780000E+08 6.1984672E-25 + 2.4790000E+08 6.1979805E-25 + 2.4800000E+08 6.1974934E-25 + 2.4810000E+08 6.1970063E-25 + 2.4820000E+08 6.1965197E-25 + 2.4830000E+08 6.1960325E-25 + 2.4840000E+08 6.1955459E-25 + 2.4850000E+08 6.1950588E-25 + 2.4860000E+08 6.1945717E-25 + 2.4870000E+08 6.1940850E-25 + 2.4880000E+08 6.1935979E-25 + 2.4890000E+08 6.1931113E-25 + 2.4900000E+08 6.1926242E-25 + 2.4910000E+08 6.1921371E-25 + 2.4920000E+08 6.1916504E-25 + 2.4930000E+08 6.1911633E-25 + 2.4940000E+08 6.1906767E-25 + 2.4950000E+08 6.1901896E-25 + 2.4960000E+08 6.1897024E-25 + 2.4970000E+08 6.1892158E-25 + 2.4980000E+08 6.1887287E-25 + 2.4990000E+08 6.1882421E-25 + 2.5000000E+08 6.1877549E-25 + 2.5010000E+08 6.1872683E-25 + 2.5020000E+08 6.1867812E-25 + 2.5030000E+08 6.1862941E-25 + 2.5040000E+08 6.1858074E-25 + 2.5050000E+08 6.1853203E-25 + 2.5060000E+08 6.1848337E-25 + 2.5070000E+08 6.1843466E-25 + 2.5080000E+08 6.1838599E-25 + 2.5090000E+08 6.1833728E-25 + 2.5100000E+08 6.1828857E-25 + 2.5110000E+08 6.1823991E-25 + 2.5120000E+08 6.1819119E-25 + 2.5130000E+08 6.1814253E-25 + 2.5140000E+08 6.1809382E-25 + 2.5150000E+08 6.1804511E-25 + 2.5160000E+08 6.1799644E-25 + 2.5170000E+08 6.1794773E-25 + 2.5180000E+08 6.1789907E-25 + 2.5190000E+08 6.1785036E-25 + 2.5200000E+08 6.1780169E-25 + 2.5210000E+08 6.1775298E-25 + 2.5220000E+08 6.1770427E-25 + 2.5230000E+08 6.1765561E-25 + 2.5240000E+08 6.1760689E-25 + 2.5250000E+08 6.1755823E-25 + 2.5260000E+08 6.1750952E-25 + 2.5270000E+08 6.1746081E-25 + 2.5280000E+08 6.1741214E-25 + 2.5290000E+08 6.1736343E-25 + 2.5300000E+08 6.1731477E-25 + 2.5310000E+08 6.1726606E-25 + 2.5320000E+08 6.1721734E-25 + 2.5330000E+08 6.1716868E-25 + 2.5340000E+08 6.1711997E-25 + 2.5350000E+08 6.1707131E-25 + 2.5360000E+08 6.1702259E-25 + 2.5370000E+08 6.1697393E-25 + 2.5380000E+08 6.1692522E-25 + 2.5390000E+08 6.1687651E-25 + 2.5400000E+08 6.1682784E-25 + 2.5410000E+08 6.1677913E-25 + 2.5420000E+08 6.1673047E-25 + 2.5430000E+08 6.1668176E-25 + 2.5440000E+08 6.1663309E-25 + 2.5450000E+08 6.1658438E-25 + 2.5460000E+08 6.1653567E-25 + 2.5470000E+08 6.1648701E-25 + 2.5480000E+08 6.1643830E-25 + 2.5490000E+08 6.1638963E-25 + 2.5500000E+08 6.1634092E-25 + 2.5510000E+08 6.1629221E-25 + 2.5520000E+08 6.1624355E-25 + 2.5530000E+08 6.1619483E-25 + 2.5540000E+08 6.1614617E-25 + 2.5550000E+08 6.1609746E-25 + 2.5560000E+08 6.1604880E-25 + 2.5570000E+08 6.1600008E-25 + 2.5580000E+08 6.1595137E-25 + 2.5590000E+08 6.1590271E-25 + 2.5600000E+08 6.1585400E-25 + 2.5610000E+08 6.1580533E-25 + 2.5620000E+08 6.1575662E-25 + 2.5630000E+08 6.1570791E-25 + 2.5640000E+08 6.1565925E-25 + 2.5650000E+08 6.1561053E-25 + 2.5660000E+08 6.1556187E-25 + 2.5670000E+08 6.1551316E-25 + 2.5680000E+08 6.1546445E-25 + 2.5690000E+08 6.1541578E-25 + 2.5700000E+08 6.1536707E-25 + 2.5710000E+08 6.1531841E-25 + 2.5720000E+08 6.1526970E-25 + 2.5730000E+08 6.1522098E-25 + 2.5740000E+08 6.1517232E-25 + 2.5750000E+08 6.1512361E-25 + 2.5760000E+08 6.1507495E-25 + 2.5770000E+08 6.1502623E-25 + 2.5780000E+08 6.1497757E-25 + 2.5790000E+08 6.1492886E-25 + 2.5800000E+08 6.1488020E-25 + 2.5810000E+08 6.1483148E-25 + 2.5820000E+08 6.1478277E-25 + 2.5830000E+08 6.1473411E-25 + 2.5840000E+08 6.1468540E-25 + 2.5850000E+08 6.1463673E-25 + 2.5860000E+08 6.1458802E-25 + 2.5870000E+08 6.1453931E-25 + 2.5880000E+08 6.1449065E-25 + 2.5890000E+08 6.1444193E-25 + 2.5900000E+08 6.1439327E-25 + 2.5910000E+08 6.1434456E-25 + 2.5920000E+08 6.1429590E-25 + 2.5930000E+08 6.1424718E-25 + 2.5940000E+08 6.1419847E-25 + 2.5950000E+08 6.1414981E-25 + 2.5960000E+08 6.1410110E-25 + 2.5970000E+08 6.1405243E-25 + 2.5980000E+08 6.1400372E-25 + 2.5990000E+08 6.1395501E-25 + 2.6000000E+08 6.1390635E-25 + 2.6010000E+08 6.1385764E-25 + 2.6020000E+08 6.1380897E-25 + 2.6030000E+08 6.1376026E-25 + 2.6040000E+08 6.1371155E-25 + 2.6050000E+08 6.1366289E-25 + 2.6060000E+08 6.1361417E-25 + 2.6070000E+08 6.1356551E-25 + 2.6080000E+08 6.1351680E-25 + 2.6090000E+08 6.1346814E-25 + 2.6100000E+08 6.1341942E-25 + 2.6110000E+08 6.1337071E-25 + 2.6120000E+08 6.1332205E-25 + 2.6130000E+08 6.1327334E-25 + 2.6140000E+08 6.1322467E-25 + 2.6150000E+08 6.1317596E-25 + 2.6160000E+08 6.1312730E-25 + 2.6170000E+08 6.1307859E-25 + 2.6180000E+08 6.1302987E-25 + 2.6190000E+08 6.1298121E-25 + 2.6200000E+08 6.1293250E-25 + 2.6210000E+08 6.1288384E-25 + 2.6220000E+08 6.1283512E-25 + 2.6230000E+08 6.1278641E-25 + 2.6240000E+08 6.1273775E-25 + 2.6250000E+08 6.1268904E-25 + 2.6260000E+08 6.1264037E-25 + 2.6270000E+08 6.1259166E-25 + 2.6280000E+08 6.1254300E-25 + 2.6290000E+08 6.1249429E-25 + 2.6300000E+08 6.1244557E-25 + 2.6310000E+08 6.1239691E-25 + 2.6320000E+08 6.1234820E-25 + 2.6330000E+08 6.1229954E-25 + 2.6340000E+08 6.1225082E-25 + 2.6350000E+08 6.1220211E-25 + 2.6360000E+08 6.1215345E-25 + 2.6370000E+08 6.1210474E-25 + 2.6380000E+08 6.1205607E-25 + 2.6390000E+08 6.1200736E-25 + 2.6400000E+08 6.1195865E-25 + 2.6410000E+08 6.1190999E-25 + 2.6420000E+08 6.1186127E-25 + 2.6430000E+08 6.1181261E-25 + 2.6440000E+08 6.1176390E-25 + 2.6450000E+08 6.1171519E-25 + 2.6460000E+08 6.1166652E-25 + 2.6470000E+08 6.1161786E-25 + 2.6480000E+08 6.1156915E-25 + 2.6490000E+08 6.1152044E-25 + 2.6500000E+08 6.1147177E-25 + 2.6510000E+08 6.1142306E-25 + 2.6520000E+08 6.1137440E-25 + 2.6530000E+08 6.1132569E-25 + 2.6540000E+08 6.1127698E-25 + 2.6550000E+08 6.1122831E-25 + 2.6560000E+08 6.1117960E-25 + 2.6570000E+08 6.1113094E-25 + 2.6580000E+08 6.1108223E-25 + 2.6590000E+08 6.1103351E-25 + 2.6600000E+08 6.1098485E-25 + 2.6610000E+08 6.1093614E-25 + 2.6620000E+08 6.1088748E-25 + 2.6630000E+08 6.1083876E-25 + 2.6640000E+08 6.1079005E-25 + 2.6650000E+08 6.1074139E-25 + 2.6660000E+08 6.1069268E-25 + 2.6670000E+08 6.1064401E-25 + 2.6680000E+08 6.1059530E-25 + 2.6690000E+08 6.1054664E-25 + 2.6700000E+08 6.1049793E-25 + 2.6710000E+08 6.1044921E-25 + 2.6720000E+08 6.1040055E-25 + 2.6730000E+08 6.1035184E-25 + 2.6740000E+08 6.1030318E-25 + 2.6750000E+08 6.1025446E-25 + 2.6760000E+08 6.1020575E-25 + 2.6770000E+08 6.1015709E-25 + 2.6780000E+08 6.1010838E-25 + 2.6790000E+08 6.1005971E-25 + 2.6800000E+08 6.1001100E-25 + 2.6810000E+08 6.0996229E-25 + 2.6820000E+08 6.0991363E-25 + 2.6830000E+08 6.0986496E-25 + 2.6840000E+08 6.0981625E-25 + 2.6850000E+08 6.0976754E-25 + 2.6860000E+08 6.0971888E-25 + 2.6870000E+08 6.0967016E-25 + 2.6880000E+08 6.0962150E-25 + 2.6890000E+08 6.0957279E-25 + 2.6900000E+08 6.0952408E-25 + 2.6910000E+08 6.0947541E-25 + 2.6920000E+08 6.0942670E-25 + 2.6930000E+08 6.0937804E-25 + 2.6940000E+08 6.0932933E-25 + 2.6950000E+08 6.0928062E-25 + 2.6960000E+08 6.0923195E-25 + 2.6970000E+08 6.0918324E-25 + 2.6980000E+08 6.0913458E-25 + 2.6990000E+08 6.0908587E-25 + 2.7000000E+08 6.0903720E-25 + 2.7010000E+08 6.0898849E-25 + 2.7020000E+08 6.0893978E-25 + 2.7030000E+08 6.0889112E-25 + 2.7040000E+08 6.0884240E-25 + 2.7050000E+08 6.0879374E-25 + 2.7060000E+08 6.0874503E-25 + 2.7070000E+08 6.0869632E-25 + 2.7080000E+08 6.0864765E-25 + 2.7090000E+08 6.0859894E-25 + 2.7100000E+08 6.0855028E-25 + 2.7110000E+08 6.0850157E-25 + 2.7120000E+08 6.0845285E-25 + 2.7130000E+08 6.0840419E-25 + 2.7140000E+08 6.0835548E-25 + 2.7150000E+08 6.0830682E-25 + 2.7160000E+08 6.0825810E-25 + 2.7170000E+08 6.0820939E-25 + 2.7180000E+08 6.0816073E-25 + 2.7190000E+08 6.0811207E-25 + 2.7200000E+08 6.0806335E-25 + 2.7210000E+08 6.0801464E-25 + 2.7220000E+08 6.0796598E-25 + 2.7230000E+08 6.0791727E-25 + 2.7240000E+08 6.0786860E-25 + 2.7250000E+08 6.0781989E-25 + 2.7260000E+08 6.0777118E-25 + 2.7270000E+08 6.0772252E-25 + 2.7280000E+08 6.0767380E-25 + 2.7290000E+08 6.0762514E-25 + 2.7300000E+08 6.0757643E-25 + 2.7310000E+08 6.0752772E-25 + 2.7320000E+08 6.0747905E-25 + 2.7330000E+08 6.0743034E-25 + 2.7340000E+08 6.0738168E-25 + 2.7350000E+08 6.0733297E-25 + 2.7360000E+08 6.0728425E-25 + 2.7370000E+08 6.0723559E-25 + 2.7380000E+08 6.0718688E-25 + 2.7390000E+08 6.0713822E-25 + 2.7400000E+08 6.0708950E-25 + 2.7410000E+08 6.0704084E-25 + 2.7420000E+08 6.0699213E-25 + 2.7430000E+08 6.0694342E-25 + 2.7440000E+08 6.0689475E-25 + 2.7450000E+08 6.0684604E-25 + 2.7460000E+08 6.0679738E-25 + 2.7470000E+08 6.0674867E-25 + 2.7480000E+08 6.0669996E-25 + 2.7490000E+08 6.0665129E-25 + 2.7500000E+08 6.0660258E-25 + 2.7510000E+08 6.0655392E-25 + 2.7520000E+08 6.0650521E-25 + 2.7530000E+08 6.0645654E-25 + 2.7540000E+08 6.0640783E-25 + 2.7550000E+08 6.0635917E-25 + 2.7560000E+08 6.0631046E-25 + 2.7570000E+08 6.0626174E-25 + 2.7580000E+08 6.0621308E-25 + 2.7590000E+08 6.0616437E-25 + 2.7600000E+08 6.0611571E-25 + 2.7610000E+08 6.0606699E-25 + 2.7620000E+08 6.0601828E-25 + 2.7630000E+08 6.0596962E-25 + 2.7640000E+08 6.0592091E-25 + 2.7650000E+08 6.0587224E-25 + 2.7660000E+08 6.0582353E-25 + 2.7670000E+08 6.0577482E-25 + 2.7680000E+08 6.0572616E-25 + 2.7690000E+08 6.0567744E-25 + 2.7700000E+08 6.0562878E-25 + 2.7710000E+08 6.0558007E-25 + 2.7720000E+08 6.0553141E-25 + 2.7730000E+08 6.0548269E-25 + 2.7740000E+08 6.0543398E-25 + 2.7750000E+08 6.0538532E-25 + 2.7760000E+08 6.0533661E-25 + 2.7770000E+08 6.0528794E-25 + 2.7780000E+08 6.0523923E-25 + 2.7790000E+08 6.0519052E-25 + 2.7800000E+08 6.0514186E-25 + 2.7810000E+08 6.0509314E-25 + 2.7820000E+08 6.0504448E-25 + 2.7830000E+08 6.0499577E-25 + 2.7840000E+08 6.0494706E-25 + 2.7850000E+08 6.0489839E-25 + 2.7860000E+08 6.0484968E-25 + 2.7870000E+08 6.0480102E-25 + 2.7880000E+08 6.0475231E-25 + 2.7890000E+08 6.0470364E-25 + 2.7900000E+08 6.0465493E-25 + 2.7910000E+08 6.0460627E-25 + 2.7920000E+08 6.0455756E-25 + 2.7930000E+08 6.0450884E-25 + 2.7940000E+08 6.0446018E-25 + 2.7950000E+08 6.0441147E-25 + 2.7960000E+08 6.0436281E-25 + 2.7970000E+08 6.0431409E-25 + 2.7980000E+08 6.0426538E-25 + 2.7990000E+08 6.0421672E-25 + 2.8000000E+08 6.0416801E-25 + 2.8010000E+08 6.0411934E-25 + 2.8020000E+08 6.0407063E-25 + 2.8030000E+08 6.0402192E-25 + 2.8040000E+08 6.0397326E-25 + 2.8050000E+08 6.0392455E-25 + 2.8060000E+08 6.0387588E-25 + 2.8070000E+08 6.0382717E-25 + 2.8080000E+08 6.0377846E-25 + 2.8090000E+08 6.0372980E-25 + 2.8100000E+08 6.0368108E-25 + 2.8110000E+08 6.0363242E-25 + 2.8120000E+08 6.0358371E-25 + 2.8130000E+08 6.0353505E-25 + 2.8140000E+08 6.0348633E-25 + 2.8150000E+08 6.0343762E-25 + 2.8160000E+08 6.0338896E-25 + 2.8170000E+08 6.0334025E-25 + 2.8180000E+08 6.0329158E-25 + 2.8190000E+08 6.0324287E-25 + 2.8200000E+08 6.0319416E-25 + 2.8210000E+08 6.0314550E-25 + 2.8220000E+08 6.0309678E-25 + 2.8230000E+08 6.0304812E-25 + 2.8240000E+08 6.0299941E-25 + 2.8250000E+08 6.0295075E-25 + 2.8260000E+08 6.0290203E-25 + 2.8270000E+08 6.0285332E-25 + 2.8280000E+08 6.0280466E-25 + 2.8290000E+08 6.0275595E-25 + 2.8300000E+08 6.0270728E-25 + 2.8310000E+08 6.0265857E-25 + 2.8320000E+08 6.0260991E-25 + 2.8330000E+08 6.0256120E-25 + 2.8340000E+08 6.0251248E-25 + 2.8350000E+08 6.0246382E-25 + 2.8360000E+08 6.0241511E-25 + 2.8370000E+08 6.0236645E-25 + 2.8380000E+08 6.0231773E-25 + 2.8390000E+08 6.0226902E-25 + 2.8400000E+08 6.0222036E-25 + 2.8410000E+08 6.0217165E-25 + 2.8420000E+08 6.0212298E-25 + 2.8430000E+08 6.0207427E-25 + 2.8440000E+08 6.0202561E-25 + 2.8450000E+08 6.0197690E-25 + 2.8460000E+08 6.0192818E-25 + 2.8470000E+08 6.0187952E-25 + 2.8480000E+08 6.0183081E-25 + 2.8490000E+08 6.0178215E-25 + 2.8500000E+08 6.0173343E-25 + 2.8510000E+08 6.0169108E-25 + 2.8520000E+08 6.0165189E-25 + 2.8530000E+08 6.0161274E-25 + 2.8540000E+08 6.0157354E-25 + 2.8550000E+08 6.0153435E-25 + 2.8560000E+08 6.0149520E-25 + 2.8570000E+08 6.0145600E-25 + 2.8580000E+08 6.0141686E-25 + 2.8590000E+08 6.0137766E-25 + 2.8600000E+08 6.0133851E-25 + 2.8610000E+08 6.0129931E-25 + 2.8620000E+08 6.0126017E-25 + 2.8630000E+08 6.0122097E-25 + 2.8640000E+08 6.0118182E-25 + 2.8650000E+08 6.0114263E-25 + 2.8660000E+08 6.0110343E-25 + 2.8670000E+08 6.0106428E-25 + 2.8680000E+08 6.0102509E-25 + 2.8690000E+08 6.0098594E-25 + 2.8700000E+08 6.0094674E-25 + 2.8710000E+08 6.0090760E-25 + 2.8720000E+08 6.0086840E-25 + 2.8730000E+08 6.0082920E-25 + 2.8740000E+08 6.0079006E-25 + 2.8750000E+08 6.0075086E-25 + 2.8760000E+08 6.0071171E-25 + 2.8770000E+08 6.0067252E-25 + 2.8780000E+08 6.0063337E-25 + 2.8790000E+08 6.0059417E-25 + 2.8800000E+08 6.0055502E-25 + 2.8810000E+08 6.0051583E-25 + 2.8820000E+08 6.0047663E-25 + 2.8830000E+08 6.0043748E-25 + 2.8840000E+08 6.0039829E-25 + 2.8850000E+08 6.0035914E-25 + 2.8860000E+08 6.0031994E-25 + 2.8870000E+08 6.0028080E-25 + 2.8880000E+08 6.0024160E-25 + 2.8890000E+08 6.0020240E-25 + 2.8900000E+08 6.0016326E-25 + 2.8910000E+08 6.0012406E-25 + 2.8920000E+08 6.0008491E-25 + 2.8930000E+08 6.0004572E-25 + 2.8940000E+08 6.0000657E-25 + 2.8950000E+08 5.9996737E-25 + 2.8960000E+08 5.9992823E-25 + 2.8970000E+08 5.9988903E-25 + 2.8980000E+08 5.9984988E-25 + 2.8990000E+08 5.9981069E-25 + 2.9000000E+08 5.9977149E-25 + 2.9010000E+08 5.9973234E-25 + 2.9020000E+08 5.9969314E-25 + 2.9030000E+08 5.9965400E-25 + 2.9040000E+08 5.9961480E-25 + 2.9050000E+08 5.9957565E-25 + 2.9060000E+08 5.9953646E-25 + 2.9070000E+08 5.9949726E-25 + 2.9080000E+08 5.9945811E-25 + 2.9090000E+08 5.9941892E-25 + 2.9100000E+08 5.9937977E-25 + 2.9110000E+08 5.9934057E-25 + 2.9120000E+08 5.9930143E-25 + 2.9130000E+08 5.9926223E-25 + 2.9140000E+08 5.9922308E-25 + 2.9150000E+08 5.9918389E-25 + 2.9160000E+08 5.9914469E-25 + 2.9170000E+08 5.9910554E-25 + 2.9180000E+08 5.9906635E-25 + 2.9190000E+08 5.9902720E-25 + 2.9200000E+08 5.9898800E-25 + 2.9210000E+08 5.9894885E-25 + 2.9220000E+08 5.9890966E-25 + 2.9230000E+08 5.9887046E-25 + 2.9240000E+08 5.9883131E-25 + 2.9250000E+08 5.9879212E-25 + 2.9260000E+08 5.9875297E-25 + 2.9270000E+08 5.9871377E-25 + 2.9280000E+08 5.9867463E-25 + 2.9290000E+08 5.9863543E-25 + 2.9300000E+08 5.9859628E-25 + 2.9310000E+08 5.9855709E-25 + 2.9320000E+08 5.9851794E-25 + 2.9330000E+08 5.9847874E-25 + 2.9340000E+08 5.9843955E-25 + 2.9350000E+08 5.9840040E-25 + 2.9360000E+08 5.9836120E-25 + 2.9370000E+08 5.9832206E-25 + 2.9380000E+08 5.9828286E-25 + 2.9390000E+08 5.9824371E-25 + 2.9400000E+08 5.9820452E-25 + 2.9410000E+08 5.9816532E-25 + 2.9420000E+08 5.9812617E-25 + 2.9430000E+08 5.9808697E-25 + 2.9440000E+08 5.9804783E-25 + 2.9450000E+08 5.9800863E-25 + 2.9460000E+08 5.9796948E-25 + 2.9470000E+08 5.9793029E-25 + 2.9480000E+08 5.9789109E-25 + 2.9490000E+08 5.9785194E-25 + 2.9500000E+08 5.9781275E-25 + 2.9510000E+08 5.9777360E-25 + 2.9520000E+08 5.9773440E-25 + 2.9530000E+08 5.9769526E-25 + 2.9540000E+08 5.9765606E-25 + 2.9550000E+08 5.9761691E-25 + 2.9560000E+08 5.9757772E-25 + 2.9570000E+08 5.9753852E-25 + 2.9580000E+08 5.9749937E-25 + 2.9590000E+08 5.9746018E-25 + 2.9600000E+08 5.9742103E-25 + 2.9610000E+08 5.9738183E-25 + 2.9620000E+08 5.9734268E-25 + 2.9630000E+08 5.9730349E-25 + 2.9640000E+08 5.9726434E-25 + 2.9650000E+08 5.9722514E-25 + 2.9660000E+08 5.9718600E-25 + 2.9670000E+08 5.9714680E-25 + 2.9680000E+08 5.9710760E-25 + 2.9690000E+08 5.9706846E-25 + 2.9700000E+08 5.9702926E-25 + 2.9710000E+08 5.9699011E-25 + 2.9720000E+08 5.9695092E-25 + 2.9730000E+08 5.9691177E-25 + 2.9740000E+08 5.9687257E-25 + 2.9750000E+08 5.9683338E-25 + 2.9760000E+08 5.9679423E-25 + 2.9770000E+08 5.9675503E-25 + 2.9780000E+08 5.9671589E-25 + 2.9790000E+08 5.9667669E-25 + 2.9800000E+08 5.9663754E-25 + 2.9810000E+08 5.9659834E-25 + 2.9820000E+08 5.9655920E-25 + 2.9830000E+08 5.9652000E-25 + 2.9840000E+08 5.9648080E-25 + 2.9850000E+08 5.9644166E-25 + 2.9860000E+08 5.9640246E-25 + 2.9870000E+08 5.9636331E-25 + 2.9880000E+08 5.9632412E-25 + 2.9890000E+08 5.9628497E-25 + 2.9900000E+08 5.9624577E-25 + 2.9910000E+08 5.9620658E-25 + 2.9920000E+08 5.9616743E-25 + 2.9930000E+08 5.9612823E-25 + 2.9940000E+08 5.9608909E-25 + 2.9950000E+08 5.9604989E-25 + 2.9960000E+08 5.9601074E-25 + 2.9970000E+08 5.9597155E-25 + 2.9980000E+08 5.9593240E-25 + 2.9990000E+08 5.9589320E-25 + 3.0000000E+08 5.9585405E-25 + 3.0010000E+08 5.9581486E-25 + 3.0020000E+08 5.9577566E-25 + 3.0030000E+08 5.9573651E-25 + 3.0040000E+08 5.9569732E-25 + 3.0050000E+08 5.9565817E-25 + 3.0060000E+08 5.9561897E-25 + 3.0070000E+08 5.9557983E-25 + 3.0080000E+08 5.9554063E-25 + 3.0090000E+08 5.9550143E-25 + 3.0100000E+08 5.9546229E-25 + 3.0110000E+08 5.9542309E-25 + 3.0120000E+08 5.9538394E-25 + 3.0130000E+08 5.9534475E-25 + 3.0140000E+08 5.9530560E-25 + 3.0150000E+08 5.9526640E-25 + 3.0160000E+08 5.9522721E-25 + 3.0170000E+08 5.9518806E-25 + 3.0180000E+08 5.9514886E-25 + 3.0190000E+08 5.9510972E-25 + 3.0200000E+08 5.9507052E-25 + 3.0210000E+08 5.9503137E-25 + 3.0220000E+08 5.9499217E-25 + 3.0230000E+08 5.9495303E-25 + 3.0240000E+08 5.9491383E-25 + 3.0250000E+08 5.9487463E-25 + 3.0260000E+08 5.9483549E-25 + 3.0270000E+08 5.9479629E-25 + 3.0280000E+08 5.9475714E-25 + 3.0290000E+08 5.9471795E-25 + 3.0300000E+08 5.9467880E-25 + 3.0310000E+08 5.9463960E-25 + 3.0320000E+08 5.9460041E-25 + 3.0330000E+08 5.9456126E-25 + 3.0340000E+08 5.9452211E-25 + 3.0350000E+08 5.9448292E-25 + 3.0360000E+08 5.9444372E-25 + 3.0370000E+08 5.9440457E-25 + 3.0380000E+08 5.9436538E-25 + 3.0390000E+08 5.9432623E-25 + 3.0400000E+08 5.9428703E-25 + 3.0410000E+08 5.9424788E-25 + 3.0420000E+08 5.9420869E-25 + 3.0430000E+08 5.9416949E-25 + 3.0440000E+08 5.9413034E-25 + 3.0450000E+08 5.9409115E-25 + 3.0460000E+08 5.9405200E-25 + 3.0470000E+08 5.9401280E-25 + 3.0480000E+08 5.9397366E-25 + 3.0490000E+08 5.9393446E-25 + 3.0500000E+08 5.9389526E-25 + 3.0510000E+08 5.9385612E-25 + 3.0520000E+08 5.9381692E-25 + 3.0530000E+08 5.9377777E-25 + 3.0540000E+08 5.9373858E-25 + 3.0550000E+08 5.9369943E-25 + 3.0560000E+08 5.9366023E-25 + 3.0570000E+08 5.9362109E-25 + 3.0580000E+08 5.9358189E-25 + 3.0590000E+08 5.9354269E-25 + 3.0600000E+08 5.9350354E-25 + 3.0610000E+08 5.9346435E-25 + 3.0620000E+08 5.9342520E-25 + 3.0630000E+08 5.9338600E-25 + 3.0640000E+08 5.9334686E-25 + 3.0650000E+08 5.9330766E-25 + 3.0660000E+08 5.9326846E-25 + 3.0670000E+08 5.9322932E-25 + 3.0680000E+08 5.9319017E-25 + 3.0690000E+08 5.9315097E-25 + 3.0700000E+08 5.9311178E-25 + 3.0710000E+08 5.9307263E-25 + 3.0720000E+08 5.9303343E-25 + 3.0730000E+08 5.9299429E-25 + 3.0740000E+08 5.9295509E-25 + 3.0750000E+08 5.9291594E-25 + 3.0760000E+08 5.9287675E-25 + 3.0770000E+08 5.9283755E-25 + 3.0780000E+08 5.9279840E-25 + 3.0790000E+08 5.9275921E-25 + 3.0800000E+08 5.9272006E-25 + 3.0810000E+08 5.9268086E-25 + 3.0820000E+08 5.9264171E-25 + 3.0830000E+08 5.9260252E-25 + 3.0840000E+08 5.9256332E-25 + 3.0850000E+08 5.9252417E-25 + 3.0860000E+08 5.9248498E-25 + 3.0870000E+08 5.9244583E-25 + 3.0880000E+08 5.9240663E-25 + 3.0890000E+08 5.9236749E-25 + 3.0900000E+08 5.9232829E-25 + 3.0910000E+08 5.9228914E-25 + 3.0920000E+08 5.9224995E-25 + 3.0930000E+08 5.9221075E-25 + 3.0940000E+08 5.9217160E-25 + 3.0950000E+08 5.9213241E-25 + 3.0960000E+08 5.9209326E-25 + 3.0970000E+08 5.9205406E-25 + 3.0980000E+08 5.9201492E-25 + 3.0990000E+08 5.9197572E-25 + 3.1000000E+08 5.9193652E-25 + 3.1010000E+08 5.9189737E-25 + 3.1020000E+08 5.9185818E-25 + 3.1030000E+08 5.9181903E-25 + 3.1040000E+08 5.9177983E-25 + 3.1050000E+08 5.9174069E-25 + 3.1060000E+08 5.9170149E-25 + 3.1070000E+08 5.9166234E-25 + 3.1080000E+08 5.9162315E-25 + 3.1090000E+08 5.9158400E-25 + 3.1100000E+08 5.9154480E-25 + 3.1110000E+08 5.9150561E-25 + 3.1120000E+08 5.9146646E-25 + 3.1130000E+08 5.9142726E-25 + 3.1140000E+08 5.9138812E-25 + 3.1150000E+08 5.9134892E-25 + 3.1160000E+08 5.9130977E-25 + 3.1170000E+08 5.9127058E-25 + 3.1180000E+08 5.9123138E-25 + 3.1190000E+08 5.9119223E-25 + 3.1200000E+08 5.9115304E-25 + 3.1210000E+08 5.9111389E-25 + 3.1220000E+08 5.9107469E-25 + 3.1230000E+08 5.9103554E-25 + 3.1240000E+08 5.9099635E-25 + 3.1250000E+08 5.9095720E-25 + 3.1260000E+08 5.9091800E-25 + 3.1270000E+08 5.9087881E-25 + 3.1280000E+08 5.9083966E-25 + 3.1290000E+08 5.9080046E-25 + 3.1300000E+08 5.9076132E-25 + 3.1310000E+08 5.9072212E-25 + 3.1320000E+08 5.9068297E-25 + 3.1330000E+08 5.9064378E-25 + 3.1340000E+08 5.9060458E-25 + 3.1350000E+08 5.9056543E-25 + 3.1360000E+08 5.9052624E-25 + 3.1370000E+08 5.9048709E-25 + 3.1380000E+08 5.9044789E-25 + 3.1390000E+08 5.9040875E-25 + 3.1400000E+08 5.9036955E-25 + 3.1410000E+08 5.9033040E-25 + 3.1420000E+08 5.9029120E-25 + 3.1430000E+08 5.9025206E-25 + 3.1440000E+08 5.9021286E-25 + 3.1450000E+08 5.9017366E-25 + 3.1460000E+08 5.9013452E-25 + 3.1470000E+08 5.9009532E-25 + 3.1480000E+08 5.9005617E-25 + 3.1490000E+08 5.9001698E-25 + 3.1500000E+08 5.8997783E-25 + 3.1510000E+08 5.8993863E-25 + 3.1520000E+08 5.8989944E-25 + 3.1530000E+08 5.8986029E-25 + 3.1540000E+08 5.8982109E-25 + 3.1550000E+08 5.8978195E-25 + 3.1560000E+08 5.8974275E-25 + 3.1570000E+08 5.8970360E-25 + 3.1580000E+08 5.8966441E-25 + 3.1590000E+08 5.8962526E-25 + 3.1600000E+08 5.8958606E-25 + 3.1610000E+08 5.8954687E-25 + 3.1620000E+08 5.8950772E-25 + 3.1630000E+08 5.8946852E-25 + 3.1640000E+08 5.8942937E-25 + 3.1650000E+08 5.8939018E-25 + 3.1660000E+08 5.8935103E-25 + 3.1670000E+08 5.8931183E-25 + 3.1680000E+08 5.8927264E-25 + 3.1690000E+08 5.8923349E-25 + 3.1700000E+08 5.8919429E-25 + 3.1710000E+08 5.8915515E-25 + 3.1720000E+08 5.8911595E-25 + 3.1730000E+08 5.8907680E-25 + 3.1740000E+08 5.8903761E-25 + 3.1750000E+08 5.8899846E-25 + 3.1760000E+08 5.8895926E-25 + 3.1770000E+08 5.8892012E-25 + 3.1780000E+08 5.8888092E-25 + 3.1790000E+08 5.8884172E-25 + 3.1800000E+08 5.8880257E-25 + 3.1810000E+08 5.8876338E-25 + 3.1820000E+08 5.8872423E-25 + 3.1830000E+08 5.8868503E-25 + 3.1840000E+08 5.8864589E-25 + 3.1850000E+08 5.8860669E-25 + 3.1860000E+08 5.8856749E-25 + 3.1870000E+08 5.8852835E-25 + 3.1880000E+08 5.8848915E-25 + 3.1890000E+08 5.8845000E-25 + 3.1900000E+08 5.8841081E-25 + 3.1910000E+08 5.8837166E-25 + 3.1920000E+08 5.8833246E-25 + 3.1930000E+08 5.8829332E-25 + 3.1940000E+08 5.8825412E-25 + 3.1950000E+08 5.8821492E-25 + 3.1960000E+08 5.8817578E-25 + 3.1970000E+08 5.8813658E-25 + 3.1980000E+08 5.8809743E-25 + 3.1990000E+08 5.8805824E-25 + 3.2000000E+08 5.8801909E-25 + 3.2010000E+08 5.8797989E-25 + 3.2020000E+08 5.8794070E-25 + 3.2030000E+08 5.8790155E-25 + 3.2040000E+08 5.8786235E-25 + 3.2050000E+08 5.8782320E-25 + 3.2060000E+08 5.8778401E-25 + 3.2070000E+08 5.8774486E-25 + 3.2080000E+08 5.8770566E-25 + 3.2090000E+08 5.8766652E-25 + 3.2100000E+08 5.8762732E-25 + 3.2110000E+08 5.8758817E-25 + 3.2120000E+08 5.8754898E-25 + 3.2130000E+08 5.8750978E-25 + 3.2140000E+08 5.8747063E-25 + 3.2150000E+08 5.8743144E-25 + 3.2160000E+08 5.8739229E-25 + 3.2170000E+08 5.8735309E-25 + 3.2180000E+08 5.8731395E-25 + 3.2190000E+08 5.8727475E-25 + 3.2200000E+08 5.8723555E-25 + 3.2210000E+08 5.8719640E-25 + 3.2220000E+08 5.8715721E-25 + 3.2230000E+08 5.8711806E-25 + 3.2240000E+08 5.8707886E-25 + 3.2250000E+08 5.8703972E-25 + 3.2260000E+08 5.8700052E-25 + 3.2270000E+08 5.8696132E-25 + 3.2280000E+08 5.8692218E-25 + 3.2290000E+08 5.8688298E-25 + 3.2300000E+08 5.8684383E-25 + 3.2310000E+08 5.8680464E-25 + 3.2320000E+08 5.8676549E-25 + 3.2330000E+08 5.8672629E-25 + 3.2340000E+08 5.8668715E-25 + 3.2350000E+08 5.8664795E-25 + 3.2360000E+08 5.8660875E-25 + 3.2370000E+08 5.8656961E-25 + 3.2380000E+08 5.8653041E-25 + 3.2390000E+08 5.8649126E-25 + 3.2400000E+08 5.8645207E-25 + 3.2410000E+08 5.8641292E-25 + 3.2420000E+08 5.8637372E-25 + 3.2430000E+08 5.8633457E-25 + 3.2440000E+08 5.8629538E-25 + 3.2450000E+08 5.8625618E-25 + 3.2460000E+08 5.8621703E-25 + 3.2470000E+08 5.8617784E-25 + 3.2480000E+08 5.8613869E-25 + 3.2490000E+08 5.8609949E-25 + 3.2500000E+08 5.8606035E-25 + 3.2510000E+08 5.8602115E-25 + 3.2520000E+08 5.8598200E-25 + 3.2530000E+08 5.8594281E-25 + 3.2540000E+08 5.8590361E-25 + 3.2550000E+08 5.8586446E-25 + 3.2560000E+08 5.8582527E-25 + 3.2570000E+08 5.8578612E-25 + 3.2580000E+08 5.8574692E-25 + 3.2590000E+08 5.8570777E-25 + 3.2600000E+08 5.8566858E-25 + 3.2610000E+08 5.8562943E-25 + 3.2620000E+08 5.8559023E-25 + 3.2630000E+08 5.8555104E-25 + 3.2640000E+08 5.8551189E-25 + 3.2650000E+08 5.8547269E-25 + 3.2660000E+08 5.8543355E-25 + 3.2670000E+08 5.8539435E-25 + 3.2680000E+08 5.8535520E-25 + 3.2690000E+08 5.8531601E-25 + 3.2700000E+08 5.8527681E-25 + 3.2710000E+08 5.8523766E-25 + 3.2720000E+08 5.8519847E-25 + 3.2730000E+08 5.8515932E-25 + 3.2740000E+08 5.8512012E-25 + 3.2750000E+08 5.8508098E-25 + 3.2760000E+08 5.8504178E-25 + 3.2770000E+08 5.8500258E-25 + 3.2780000E+08 5.8496344E-25 + 3.2790000E+08 5.8492429E-25 + 3.2800000E+08 5.8488509E-25 + 3.2810000E+08 5.8484590E-25 + 3.2820000E+08 5.8480675E-25 + 3.2830000E+08 5.8476755E-25 + 3.2840000E+08 5.8472840E-25 + 3.2850000E+08 5.8468921E-25 + 3.2860000E+08 5.8465006E-25 + 3.2870000E+08 5.8461086E-25 + 3.2880000E+08 5.8457167E-25 + 3.2890000E+08 5.8453252E-25 + 3.2900000E+08 5.8449332E-25 + 3.2910000E+08 5.8445418E-25 + 3.2920000E+08 5.8441498E-25 + 3.2930000E+08 5.8437583E-25 + 3.2940000E+08 5.8433664E-25 + 3.2950000E+08 5.8429744E-25 + 3.2960000E+08 5.8425829E-25 + 3.2970000E+08 5.8421910E-25 + 3.2980000E+08 5.8417995E-25 + 3.2990000E+08 5.8414075E-25 + 3.3000000E+08 5.8410160E-25 + 3.3010000E+08 5.8406241E-25 + 3.3020000E+08 5.8402326E-25 + 3.3030000E+08 5.8398406E-25 + 3.3040000E+08 5.8394487E-25 + 3.3050000E+08 5.8390572E-25 + 3.3060000E+08 5.8386652E-25 + 3.3070000E+08 5.8382738E-25 + 3.3080000E+08 5.8378818E-25 + 3.3090000E+08 5.8374903E-25 + 3.3100000E+08 5.8370984E-25 + 3.3110000E+08 5.8367064E-25 + 3.3120000E+08 5.8363149E-25 + 3.3130000E+08 5.8359230E-25 + 3.3140000E+08 5.8355315E-25 + 3.3150000E+08 5.8351395E-25 + 3.3160000E+08 5.8347481E-25 + 3.3170000E+08 5.8343561E-25 + 3.3180000E+08 5.8339646E-25 + 3.3190000E+08 5.8335727E-25 + 3.3200000E+08 5.8331812E-25 + 3.3210000E+08 5.8327892E-25 + 3.3220000E+08 5.8323973E-25 + 3.3230000E+08 5.8320058E-25 + 3.3240000E+08 5.8316138E-25 + 3.3250000E+08 5.8312223E-25 + 3.3260000E+08 5.8308304E-25 + 3.3270000E+08 5.8304389E-25 + 3.3280000E+08 5.8300469E-25 + 3.3290000E+08 5.8296550E-25 + 3.3300000E+08 5.8292635E-25 + 3.3310000E+08 5.8288715E-25 + 3.3320000E+08 5.8284801E-25 + 3.3330000E+08 5.8280881E-25 + 3.3340000E+08 5.8276966E-25 + 3.3350000E+08 5.8273047E-25 + 3.3360000E+08 5.8269132E-25 + 3.3370000E+08 5.8265212E-25 + 3.3380000E+08 5.8261293E-25 + 3.3390000E+08 5.8257378E-25 + 3.3400000E+08 5.8253458E-25 + 3.3410000E+08 5.8249543E-25 + 3.3420000E+08 5.8245624E-25 + 3.3430000E+08 5.8241709E-25 + 3.3440000E+08 5.8237789E-25 + 3.3450000E+08 5.8233870E-25 + 3.3460000E+08 5.8229955E-25 + 3.3470000E+08 5.8226035E-25 + 3.3480000E+08 5.8222121E-25 + 3.3490000E+08 5.8218201E-25 + 3.3500000E+08 5.8214286E-25 + 3.3510000E+08 5.8210367E-25 + 3.3520000E+08 5.8206452E-25 + 3.3530000E+08 5.8202532E-25 + 3.3540000E+08 5.8198618E-25 + 3.3550000E+08 5.8194698E-25 + 3.3560000E+08 5.8190778E-25 + 3.3570000E+08 5.8186864E-25 + 3.3580000E+08 5.8182944E-25 + 3.3590000E+08 5.8179029E-25 + 3.3600000E+08 5.8175110E-25 + 3.3610000E+08 5.8171195E-25 + 3.3620000E+08 5.8167275E-25 + 3.3630000E+08 5.8163355E-25 + 3.3640000E+08 5.8159441E-25 + 3.3650000E+08 5.8155521E-25 + 3.3660000E+08 5.8151606E-25 + 3.3670000E+08 5.8147687E-25 + 3.3680000E+08 5.8143772E-25 + 3.3690000E+08 5.8139852E-25 + 3.3700000E+08 5.8135938E-25 + 3.3710000E+08 5.8132018E-25 + 3.3720000E+08 5.8128098E-25 + 3.3730000E+08 5.8124184E-25 + 3.3740000E+08 5.8120264E-25 + 3.3750000E+08 5.8116349E-25 + 3.3760000E+08 5.8112430E-25 + 3.3770000E+08 5.8108515E-25 + 3.3780000E+08 5.8104595E-25 + 3.3790000E+08 5.8100676E-25 + 3.3800000E+08 5.8096761E-25 + 3.3810000E+08 5.8092841E-25 + 3.3820000E+08 5.8088926E-25 + 3.3830000E+08 5.8085007E-25 + 3.3840000E+08 5.8081092E-25 + 3.3850000E+08 5.8077172E-25 + 3.3860000E+08 5.8073258E-25 + 3.3870000E+08 5.8069338E-25 + 3.3880000E+08 5.8065423E-25 + 3.3890000E+08 5.8061504E-25 + 3.3900000E+08 5.8057584E-25 + 3.3910000E+08 5.8053669E-25 + 3.3920000E+08 5.8049750E-25 + 3.3930000E+08 5.8045835E-25 + 3.3940000E+08 5.8041915E-25 + 3.3950000E+08 5.8038001E-25 + 3.3960000E+08 5.8034081E-25 + 3.3970000E+08 5.8030161E-25 + 3.3980000E+08 5.8026247E-25 + 3.3990000E+08 5.8022327E-25 + 3.4000000E+08 5.8018412E-25 + 3.4010000E+08 5.8014493E-25 + 3.4020000E+08 5.8010578E-25 + 3.4030000E+08 5.8006658E-25 + 3.4040000E+08 5.8002743E-25 + 3.4050000E+08 5.7998824E-25 + 3.4060000E+08 5.7994904E-25 + 3.4070000E+08 5.7990989E-25 + 3.4080000E+08 5.7987070E-25 + 3.4090000E+08 5.7983155E-25 + 3.4100000E+08 5.7979235E-25 + 3.4110000E+08 5.7975321E-25 + 3.4120000E+08 5.7971401E-25 + 3.4130000E+08 5.7967481E-25 + 3.4140000E+08 5.7963567E-25 + 3.4150000E+08 5.7959647E-25 + 3.4160000E+08 5.7955732E-25 + 3.4170000E+08 5.7951813E-25 + 3.4180000E+08 5.7947898E-25 + 3.4190000E+08 5.7943978E-25 + 3.4200000E+08 5.7940063E-25 + 3.4210000E+08 5.7936144E-25 + 3.4220000E+08 5.7932229E-25 + 3.4230000E+08 5.7928309E-25 + 3.4240000E+08 5.7924390E-25 + 3.4250000E+08 5.7920475E-25 + 3.4260000E+08 5.7916555E-25 + 3.4270000E+08 5.7912641E-25 + 3.4280000E+08 5.7908721E-25 + 3.4290000E+08 5.7904806E-25 + 3.4300000E+08 5.7900887E-25 + 3.4310000E+08 5.7896967E-25 + 3.4320000E+08 5.7893052E-25 + 3.4330000E+08 5.7889133E-25 + 3.4340000E+08 5.7885218E-25 + 3.4350000E+08 5.7881298E-25 + 3.4360000E+08 5.7877384E-25 + 3.4370000E+08 5.7873464E-25 + 3.4380000E+08 5.7869544E-25 + 3.4390000E+08 5.7865630E-25 + 3.4400000E+08 5.7861710E-25 + 3.4410000E+08 5.7857795E-25 + 3.4420000E+08 5.7853875E-25 + 3.4430000E+08 5.7849961E-25 + 3.4440000E+08 5.7846041E-25 + 3.4450000E+08 5.7842126E-25 + 3.4460000E+08 5.7838207E-25 + 3.4470000E+08 5.7834287E-25 + 3.4480000E+08 5.7830372E-25 + 3.4490000E+08 5.7826453E-25 + 3.4500000E+08 5.7822538E-25 + 3.4510000E+08 5.7818618E-25 + 3.4520000E+08 5.7814704E-25 + 3.4530000E+08 5.7810784E-25 + 3.4540000E+08 5.7806869E-25 + 3.4550000E+08 5.7802950E-25 + 3.4560000E+08 5.7799035E-25 + 3.4570000E+08 5.7795115E-25 + 3.4580000E+08 5.7791196E-25 + 3.4590000E+08 5.7787281E-25 + 3.4600000E+08 5.7783361E-25 + 3.4610000E+08 5.7779446E-25 + 3.4620000E+08 5.7775527E-25 + 3.4630000E+08 5.7771612E-25 + 3.4640000E+08 5.7767692E-25 + 3.4650000E+08 5.7763773E-25 + 3.4660000E+08 5.7759858E-25 + 3.4670000E+08 5.7755938E-25 + 3.4680000E+08 5.7752024E-25 + 3.4690000E+08 5.7748104E-25 + 3.4700000E+08 5.7744189E-25 + 3.4710000E+08 5.7740270E-25 + 3.4720000E+08 5.7736355E-25 + 3.4730000E+08 5.7732435E-25 + 3.4740000E+08 5.7728516E-25 + 3.4750000E+08 5.7724601E-25 + 3.4760000E+08 5.7720681E-25 + 3.4770000E+08 5.7716767E-25 + 3.4780000E+08 5.7712847E-25 + 3.4790000E+08 5.7708932E-25 + 3.4800000E+08 5.7705013E-25 + 3.4810000E+08 5.7701093E-25 + 3.4820000E+08 5.7697178E-25 + 3.4830000E+08 5.7693258E-25 + 3.4840000E+08 5.7689344E-25 + 3.4850000E+08 5.7685424E-25 + 3.4860000E+08 5.7681509E-25 + 3.4870000E+08 5.7677590E-25 + 3.4880000E+08 5.7673670E-25 + 3.4890000E+08 5.7669755E-25 + 3.4900000E+08 5.7665841E-25 + 3.4910000E+08 5.7661921E-25 + 3.4920000E+08 5.7658001E-25 + 3.4930000E+08 5.7654087E-25 + 3.4940000E+08 5.7650167E-25 + 3.4950000E+08 5.7646252E-25 + 3.4960000E+08 5.7642333E-25 + 3.4970000E+08 5.7638418E-25 + 3.4980000E+08 5.7634498E-25 + 3.4990000E+08 5.7630579E-25 + 3.5000000E+08 5.7626664E-25 + 3.5010000E+08 5.7622744E-25 + 3.5020000E+08 5.7618829E-25 + 3.5030000E+08 5.7614910E-25 + 3.5040000E+08 5.7610995E-25 + 3.5050000E+08 5.7607075E-25 + 3.5060000E+08 5.7603156E-25 + 3.5070000E+08 5.7599241E-25 + 3.5080000E+08 5.7595321E-25 + 3.5090000E+08 5.7591407E-25 + 3.5100000E+08 5.7587487E-25 + 3.5110000E+08 5.7583572E-25 + 3.5120000E+08 5.7579653E-25 + 3.5130000E+08 5.7575738E-25 + 3.5140000E+08 5.7571818E-25 + 3.5150000E+08 5.7567899E-25 + 3.5160000E+08 5.7563984E-25 + 3.5170000E+08 5.7560064E-25 + 3.5180000E+08 5.7556150E-25 + 3.5190000E+08 5.7552230E-25 + 3.5200000E+08 5.7548315E-25 + 3.5210000E+08 5.7544396E-25 + 3.5220000E+08 5.7540481E-25 + 3.5230000E+08 5.7536561E-25 + 3.5240000E+08 5.7532646E-25 + 3.5250000E+08 5.7528727E-25 + 3.5260000E+08 5.7524807E-25 + 3.5270000E+08 5.7520892E-25 + 3.5280000E+08 5.7516973E-25 + 3.5290000E+08 5.7513058E-25 + 3.5300000E+08 5.7509138E-25 + 3.5310000E+08 5.7505224E-25 + 3.5320000E+08 5.7501304E-25 + 3.5330000E+08 5.7497384E-25 + 3.5340000E+08 5.7493470E-25 + 3.5350000E+08 5.7489550E-25 + 3.5360000E+08 5.7485635E-25 + 3.5370000E+08 5.7481716E-25 + 3.5380000E+08 5.7477801E-25 + 3.5390000E+08 5.7473881E-25 + 3.5400000E+08 5.7469966E-25 + 3.5410000E+08 5.7466047E-25 + 3.5420000E+08 5.7462127E-25 + 3.5430000E+08 5.7458212E-25 + 3.5440000E+08 5.7454293E-25 + 3.5450000E+08 5.7450378E-25 + 3.5460000E+08 5.7446458E-25 + 3.5470000E+08 5.7442544E-25 + 3.5480000E+08 5.7438624E-25 + 3.5490000E+08 5.7434704E-25 + 3.5500000E+08 5.7430790E-25 + 3.5510000E+08 5.7426870E-25 + 3.5520000E+08 5.7422955E-25 + 3.5530000E+08 5.7419036E-25 + 3.5540000E+08 5.7415121E-25 + 3.5550000E+08 5.7411201E-25 + 3.5560000E+08 5.7407282E-25 + 3.5570000E+08 5.7403367E-25 + 3.5580000E+08 5.7399447E-25 + 3.5590000E+08 5.7395533E-25 + 3.5600000E+08 5.7391613E-25 + 3.5610000E+08 5.7387698E-25 + 3.5620000E+08 5.7383778E-25 + 3.5630000E+08 5.7379864E-25 + 3.5640000E+08 5.7375944E-25 + 3.5650000E+08 5.7372029E-25 + 3.5660000E+08 5.7368110E-25 + 3.5670000E+08 5.7364190E-25 + 3.5680000E+08 5.7360275E-25 + 3.5690000E+08 5.7356356E-25 + 3.5700000E+08 5.7352441E-25 + 3.5710000E+08 5.7348521E-25 + 3.5720000E+08 5.7344607E-25 + 3.5730000E+08 5.7340687E-25 + 3.5740000E+08 5.7336767E-25 + 3.5750000E+08 5.7332853E-25 + 3.5760000E+08 5.7328933E-25 + 3.5770000E+08 5.7325018E-25 + 3.5780000E+08 5.7321099E-25 + 3.5790000E+08 5.7317184E-25 + 3.5800000E+08 5.7313264E-25 + 3.5810000E+08 5.7309349E-25 + 3.5820000E+08 5.7305430E-25 + 3.5830000E+08 5.7301510E-25 + 3.5840000E+08 5.7297595E-25 + 3.5850000E+08 5.7293676E-25 + 3.5860000E+08 5.7289761E-25 + 3.5870000E+08 5.7285841E-25 + 3.5880000E+08 5.7281927E-25 + 3.5890000E+08 5.7278007E-25 + 3.5900000E+08 5.7274092E-25 + 3.5910000E+08 5.7270173E-25 + 3.5920000E+08 5.7266253E-25 + 3.5930000E+08 5.7262338E-25 + 3.5940000E+08 5.7258419E-25 + 3.5950000E+08 5.7254504E-25 + 3.5960000E+08 5.7250584E-25 + 3.5970000E+08 5.7246670E-25 + 3.5980000E+08 5.7242750E-25 + 3.5990000E+08 5.7238835E-25 + 3.6000000E+08 5.7234916E-25 + 3.6010000E+08 5.7230996E-25 + 3.6020000E+08 5.7227081E-25 + 3.6030000E+08 5.7223161E-25 + 3.6040000E+08 5.7219247E-25 + 3.6050000E+08 5.7215327E-25 + 3.6060000E+08 5.7211412E-25 + 3.6070000E+08 5.7207493E-25 + 3.6080000E+08 5.7203578E-25 + 3.6090000E+08 5.7199658E-25 + 3.6100000E+08 5.7196064E-25 + 3.6110000E+08 5.7192973E-25 + 3.6120000E+08 5.7189881E-25 + 3.6130000E+08 5.7186790E-25 + 3.6140000E+08 5.7183694E-25 + 3.6150000E+08 5.7180602E-25 + 3.6160000E+08 5.7177511E-25 + 3.6170000E+08 5.7174420E-25 + 3.6180000E+08 5.7171328E-25 + 3.6190000E+08 5.7168237E-25 + 3.6200000E+08 5.7165141E-25 + 3.6210000E+08 5.7162049E-25 + 3.6220000E+08 5.7158958E-25 + 3.6230000E+08 5.7155867E-25 + 3.6240000E+08 5.7152775E-25 + 3.6250000E+08 5.7149684E-25 + 3.6260000E+08 5.7146588E-25 + 3.6270000E+08 5.7143496E-25 + 3.6280000E+08 5.7140405E-25 + 3.6290000E+08 5.7137314E-25 + 3.6300000E+08 5.7134222E-25 + 3.6310000E+08 5.7131131E-25 + 3.6320000E+08 5.7128040E-25 + 3.6330000E+08 5.7124943E-25 + 3.6340000E+08 5.7121852E-25 + 3.6350000E+08 5.7118761E-25 + 3.6360000E+08 5.7115669E-25 + 3.6370000E+08 5.7112578E-25 + 3.6380000E+08 5.7109487E-25 + 3.6390000E+08 5.7106390E-25 + 3.6400000E+08 5.7103299E-25 + 3.6410000E+08 5.7100208E-25 + 3.6420000E+08 5.7097116E-25 + 3.6430000E+08 5.7094025E-25 + 3.6440000E+08 5.7090934E-25 + 3.6450000E+08 5.7087837E-25 + 3.6460000E+08 5.7084746E-25 + 3.6470000E+08 5.7081655E-25 + 3.6480000E+08 5.7078563E-25 + 3.6490000E+08 5.7075472E-25 + 3.6500000E+08 5.7072381E-25 + 3.6510000E+08 5.7069284E-25 + 3.6520000E+08 5.7066193E-25 + 3.6530000E+08 5.7063102E-25 + 3.6540000E+08 5.7060010E-25 + 3.6550000E+08 5.7056919E-25 + 3.6560000E+08 5.7053828E-25 + 3.6570000E+08 5.7050731E-25 + 3.6580000E+08 5.7047640E-25 + 3.6590000E+08 5.7044549E-25 + 3.6600000E+08 5.7041457E-25 + 3.6610000E+08 5.7038366E-25 + 3.6620000E+08 5.7035275E-25 + 3.6630000E+08 5.7032178E-25 + 3.6640000E+08 5.7029087E-25 + 3.6650000E+08 5.7025996E-25 + 3.6660000E+08 5.7022904E-25 + 3.6670000E+08 5.7019813E-25 + 3.6680000E+08 5.7016722E-25 + 3.6690000E+08 5.7013630E-25 + 3.6700000E+08 5.7010534E-25 + 3.6710000E+08 5.7007443E-25 + 3.6720000E+08 5.7004351E-25 + 3.6730000E+08 5.7001260E-25 + 3.6740000E+08 5.6998168E-25 + 3.6750000E+08 5.6995077E-25 + 3.6760000E+08 5.6991981E-25 + 3.6770000E+08 5.6988890E-25 + 3.6780000E+08 5.6985798E-25 + 3.6790000E+08 5.6982707E-25 + 3.6800000E+08 5.6979615E-25 + 3.6810000E+08 5.6976524E-25 + 3.6820000E+08 5.6973428E-25 + 3.6830000E+08 5.6970336E-25 + 3.6840000E+08 5.6967245E-25 + 3.6850000E+08 5.6964154E-25 + 3.6860000E+08 5.6961062E-25 + 3.6870000E+08 5.6957971E-25 + 3.6880000E+08 5.6954875E-25 + 3.6890000E+08 5.6951783E-25 + 3.6900000E+08 5.6948692E-25 + 3.6910000E+08 5.6945601E-25 + 3.6920000E+08 5.6942509E-25 + 3.6930000E+08 5.6939418E-25 + 3.6940000E+08 5.6936322E-25 + 3.6950000E+08 5.6933230E-25 + 3.6960000E+08 5.6930139E-25 + 3.6970000E+08 5.6927048E-25 + 3.6980000E+08 5.6923956E-25 + 3.6990000E+08 5.6920865E-25 + 3.7000000E+08 5.6917774E-25 + 3.7010000E+08 5.6914677E-25 + 3.7020000E+08 5.6911586E-25 + 3.7030000E+08 5.6908495E-25 + 3.7040000E+08 5.6905403E-25 + 3.7050000E+08 5.6902312E-25 + 3.7060000E+08 5.6899221E-25 + 3.7070000E+08 5.6896124E-25 + 3.7080000E+08 5.6893033E-25 + 3.7090000E+08 5.6889942E-25 + 3.7100000E+08 5.6886850E-25 + 3.7110000E+08 5.6883759E-25 + 3.7120000E+08 5.6880668E-25 + 3.7130000E+08 5.6877571E-25 + 3.7140000E+08 5.6874480E-25 + 3.7150000E+08 5.6871389E-25 + 3.7160000E+08 5.6868297E-25 + 3.7170000E+08 5.6865206E-25 + 3.7180000E+08 5.6862115E-25 + 3.7190000E+08 5.6859018E-25 + 3.7200000E+08 5.6855927E-25 + 3.7210000E+08 5.6852836E-25 + 3.7220000E+08 5.6849744E-25 + 3.7230000E+08 5.6846653E-25 + 3.7240000E+08 5.6843562E-25 + 3.7250000E+08 5.6840465E-25 + 3.7260000E+08 5.6837374E-25 + 3.7270000E+08 5.6834283E-25 + 3.7280000E+08 5.6831191E-25 + 3.7290000E+08 5.6828100E-25 + 3.7300000E+08 5.6825009E-25 + 3.7310000E+08 5.6821912E-25 + 3.7320000E+08 5.6818821E-25 + 3.7330000E+08 5.6815730E-25 + 3.7340000E+08 5.6812638E-25 + 3.7350000E+08 5.6809547E-25 + 3.7360000E+08 5.6806456E-25 + 3.7370000E+08 5.6803359E-25 + 3.7380000E+08 5.6800268E-25 + 3.7390000E+08 5.6797177E-25 + 3.7400000E+08 5.6794085E-25 + 3.7410000E+08 5.6790994E-25 + 3.7420000E+08 5.6787903E-25 + 3.7430000E+08 5.6784811E-25 + 3.7440000E+08 5.6781715E-25 + 3.7450000E+08 5.6778624E-25 + 3.7460000E+08 5.6775532E-25 + 3.7470000E+08 5.6772441E-25 + 3.7480000E+08 5.6769350E-25 + 3.7490000E+08 5.6766253E-25 + 3.7500000E+08 5.6763162E-25 + 3.7510000E+08 5.6760071E-25 + 3.7520000E+08 5.6756979E-25 + 3.7530000E+08 5.6753888E-25 + 3.7540000E+08 5.6750797E-25 + 3.7550000E+08 5.6747705E-25 + 3.7560000E+08 5.6744614E-25 + 3.7570000E+08 5.6741518E-25 + 3.7580000E+08 5.6738426E-25 + 3.7590000E+08 5.6735335E-25 + 3.7600000E+08 5.6732243E-25 + 3.7610000E+08 5.6729152E-25 + 3.7620000E+08 5.6726061E-25 + 3.7630000E+08 5.6722965E-25 + 3.7640000E+08 5.6719873E-25 + 3.7650000E+08 5.6716782E-25 + 3.7660000E+08 5.6713690E-25 + 3.7670000E+08 5.6710599E-25 + 3.7680000E+08 5.6707508E-25 + 3.7690000E+08 5.6704411E-25 + 3.7700000E+08 5.6701320E-25 + 3.7710000E+08 5.6698229E-25 + 3.7720000E+08 5.6695137E-25 + 3.7730000E+08 5.6692046E-25 + 3.7740000E+08 5.6688955E-25 + 3.7750000E+08 5.6685858E-25 + 3.7760000E+08 5.6682767E-25 + 3.7770000E+08 5.6679676E-25 + 3.7780000E+08 5.6676584E-25 + 3.7790000E+08 5.6673493E-25 + 3.7800000E+08 5.6670402E-25 + 3.7810000E+08 5.6667310E-25 + 3.7820000E+08 5.6664214E-25 + 3.7830000E+08 5.6661123E-25 + 3.7840000E+08 5.6658031E-25 + 3.7850000E+08 5.6654940E-25 + 3.7860000E+08 5.6651849E-25 + 3.7870000E+08 5.6648757E-25 + 3.7880000E+08 5.6645661E-25 + 3.7890000E+08 5.6642570E-25 + 3.7900000E+08 5.6639478E-25 + 3.7910000E+08 5.6636387E-25 + 3.7920000E+08 5.6633296E-25 + 3.7930000E+08 5.6630204E-25 + 3.7940000E+08 5.6627108E-25 + 3.7950000E+08 5.6624017E-25 + 3.7960000E+08 5.6620925E-25 + 3.7970000E+08 5.6617834E-25 + 3.7980000E+08 5.6614743E-25 + 3.7990000E+08 5.6611651E-25 + 3.8000000E+08 5.6608555E-25 + 3.8010000E+08 5.6605464E-25 + 3.8020000E+08 5.6602372E-25 + 3.8030000E+08 5.6599281E-25 + 3.8040000E+08 5.6596190E-25 + 3.8050000E+08 5.6593098E-25 + 3.8060000E+08 5.6590002E-25 + 3.8070000E+08 5.6586911E-25 + 3.8080000E+08 5.6583819E-25 + 3.8090000E+08 5.6580728E-25 + 3.8100000E+08 5.6577637E-25 + 3.8110000E+08 5.6574545E-25 + 3.8120000E+08 5.6571449E-25 + 3.8130000E+08 5.6568358E-25 + 3.8140000E+08 5.6565266E-25 + 3.8150000E+08 5.6562175E-25 + 3.8160000E+08 5.6559084E-25 + 3.8170000E+08 5.6555992E-25 + 3.8180000E+08 5.6552896E-25 + 3.8190000E+08 5.6549805E-25 + 3.8200000E+08 5.6546713E-25 + 3.8210000E+08 5.6543622E-25 + 3.8220000E+08 5.6540531E-25 + 3.8230000E+08 5.6537439E-25 + 3.8240000E+08 5.6534348E-25 + 3.8250000E+08 5.6531257E-25 + 3.8260000E+08 5.6528160E-25 + 3.8270000E+08 5.6525069E-25 + 3.8280000E+08 5.6521978E-25 + 3.8290000E+08 5.6518886E-25 + 3.8300000E+08 5.6515795E-25 + 3.8310000E+08 5.6512703E-25 + 3.8320000E+08 5.6509607E-25 + 3.8330000E+08 5.6506516E-25 + 3.8340000E+08 5.6503425E-25 + 3.8350000E+08 5.6500333E-25 + 3.8360000E+08 5.6497242E-25 + 3.8370000E+08 5.6494150E-25 + 3.8380000E+08 5.6491054E-25 + 3.8390000E+08 5.6487963E-25 + 3.8400000E+08 5.6484871E-25 + 3.8410000E+08 5.6481780E-25 + 3.8420000E+08 5.6478689E-25 + 3.8430000E+08 5.6475597E-25 + 3.8440000E+08 5.6472501E-25 + 3.8450000E+08 5.6469410E-25 + 3.8460000E+08 5.6466318E-25 + 3.8470000E+08 5.6463227E-25 + 3.8480000E+08 5.6460136E-25 + 3.8490000E+08 5.6457044E-25 + 3.8500000E+08 5.6453948E-25 + 3.8510000E+08 5.6450857E-25 + 3.8520000E+08 5.6447765E-25 + 3.8530000E+08 5.6444674E-25 + 3.8540000E+08 5.6441583E-25 + 3.8550000E+08 5.6438491E-25 + 3.8560000E+08 5.6435395E-25 + 3.8570000E+08 5.6432304E-25 + 3.8580000E+08 5.6429212E-25 + 3.8590000E+08 5.6426121E-25 + 3.8600000E+08 5.6423030E-25 + 3.8610000E+08 5.6419938E-25 + 3.8620000E+08 5.6416842E-25 + 3.8630000E+08 5.6413751E-25 + 3.8640000E+08 5.6410659E-25 + 3.8650000E+08 5.6407568E-25 + 3.8660000E+08 5.6404477E-25 + 3.8670000E+08 5.6401385E-25 + 3.8680000E+08 5.6398289E-25 + 3.8690000E+08 5.6395198E-25 + 3.8700000E+08 5.6392106E-25 + 3.8710000E+08 5.6389015E-25 + 3.8720000E+08 5.6385924E-25 + 3.8730000E+08 5.6382832E-25 + 3.8740000E+08 5.6379736E-25 + 3.8750000E+08 5.6376645E-25 + 3.8760000E+08 5.6373553E-25 + 3.8770000E+08 5.6370462E-25 + 3.8780000E+08 5.6367371E-25 + 3.8790000E+08 5.6364279E-25 + 3.8800000E+08 5.6361183E-25 + 3.8810000E+08 5.6358092E-25 + 3.8820000E+08 5.6355000E-25 + 3.8830000E+08 5.6351909E-25 + 3.8840000E+08 5.6348818E-25 + 3.8850000E+08 5.6345726E-25 + 3.8860000E+08 5.6342630E-25 + 3.8870000E+08 5.6339539E-25 + 3.8880000E+08 5.6336447E-25 + 3.8890000E+08 5.6333356E-25 + 3.8900000E+08 5.6330265E-25 + 3.8910000E+08 5.6327173E-25 + 3.8920000E+08 5.6324082E-25 + 3.8930000E+08 5.6320991E-25 + 3.8940000E+08 5.6317894E-25 + 3.8950000E+08 5.6314803E-25 + 3.8960000E+08 5.6311712E-25 + 3.8970000E+08 5.6308620E-25 + 3.8980000E+08 5.6305529E-25 + 3.8990000E+08 5.6302438E-25 + 3.9000000E+08 5.6299341E-25 + 3.9010000E+08 5.6296250E-25 + 3.9020000E+08 5.6293159E-25 + 3.9030000E+08 5.6290067E-25 + 3.9040000E+08 5.6286976E-25 + 3.9050000E+08 5.6283885E-25 + 3.9060000E+08 5.6280788E-25 + 3.9070000E+08 5.6277697E-25 + 3.9080000E+08 5.6274606E-25 + 3.9090000E+08 5.6271514E-25 + 3.9100000E+08 5.6268423E-25 + 3.9110000E+08 5.6265332E-25 + 3.9120000E+08 5.6262235E-25 + 3.9130000E+08 5.6259144E-25 + 3.9140000E+08 5.6256053E-25 + 3.9150000E+08 5.6252961E-25 + 3.9160000E+08 5.6249870E-25 + 3.9170000E+08 5.6246778E-25 + 3.9180000E+08 5.6243682E-25 + 3.9190000E+08 5.6240591E-25 + 3.9200000E+08 5.6237500E-25 + 3.9210000E+08 5.6234408E-25 + 3.9220000E+08 5.6231317E-25 + 3.9230000E+08 5.6228225E-25 + 3.9240000E+08 5.6225129E-25 + 3.9250000E+08 5.6222038E-25 + 3.9260000E+08 5.6218946E-25 + 3.9270000E+08 5.6215855E-25 + 3.9280000E+08 5.6212764E-25 + 3.9290000E+08 5.6209672E-25 + 3.9300000E+08 5.6206576E-25 + 3.9310000E+08 5.6203485E-25 + 3.9320000E+08 5.6200393E-25 + 3.9330000E+08 5.6197302E-25 + 3.9340000E+08 5.6194211E-25 + 3.9350000E+08 5.6191119E-25 + 3.9360000E+08 5.6188028E-25 + 3.9370000E+08 5.6184932E-25 + 3.9380000E+08 5.6181840E-25 + 3.9390000E+08 5.6178749E-25 + 3.9400000E+08 5.6175658E-25 + 3.9410000E+08 5.6172566E-25 + 3.9420000E+08 5.6169475E-25 + 3.9430000E+08 5.6166379E-25 + 3.9440000E+08 5.6163287E-25 + 3.9450000E+08 5.6160196E-25 + 3.9460000E+08 5.6157105E-25 + 3.9470000E+08 5.6154013E-25 + 3.9480000E+08 5.6150922E-25 + 3.9490000E+08 5.6147826E-25 + 3.9500000E+08 5.6144734E-25 + 3.9510000E+08 5.6141643E-25 + 3.9520000E+08 5.6138552E-25 + 3.9530000E+08 5.6135460E-25 + 3.9540000E+08 5.6132369E-25 + 3.9550000E+08 5.6129273E-25 + 3.9560000E+08 5.6126181E-25 + 3.9570000E+08 5.6123090E-25 + 3.9580000E+08 5.6119999E-25 + 3.9590000E+08 5.6116907E-25 + 3.9600000E+08 5.6113816E-25 + 3.9610000E+08 5.6110720E-25 + 3.9620000E+08 5.6107628E-25 + 3.9630000E+08 5.6104537E-25 + 3.9640000E+08 5.6101446E-25 + 3.9650000E+08 5.6098354E-25 + 3.9660000E+08 5.6095263E-25 + 3.9670000E+08 5.6092172E-25 + 3.9680000E+08 5.6089075E-25 + 3.9690000E+08 5.6085984E-25 + 3.9700000E+08 5.6082893E-25 + 3.9710000E+08 5.6079801E-25 + 3.9720000E+08 5.6076710E-25 + 3.9730000E+08 5.6073619E-25 + 3.9740000E+08 5.6070522E-25 + 3.9750000E+08 5.6067431E-25 + 3.9760000E+08 5.6064340E-25 + 3.9770000E+08 5.6061248E-25 + 3.9780000E+08 5.6058157E-25 + 3.9790000E+08 5.6055066E-25 + 3.9800000E+08 5.6051969E-25 + 3.9810000E+08 5.6048878E-25 + 3.9820000E+08 5.6045787E-25 + 3.9830000E+08 5.6042695E-25 + 3.9840000E+08 5.6039604E-25 + 3.9850000E+08 5.6036513E-25 + 3.9860000E+08 5.6033421E-25 + 3.9870000E+08 5.6030325E-25 + 3.9880000E+08 5.6027234E-25 + 3.9890000E+08 5.6024142E-25 + 3.9900000E+08 5.6021051E-25 + 3.9910000E+08 5.6017960E-25 + 3.9920000E+08 5.6014868E-25 + 3.9930000E+08 5.6011772E-25 + 3.9940000E+08 5.6008681E-25 + 3.9950000E+08 5.6005589E-25 + 3.9960000E+08 5.6002498E-25 + 3.9970000E+08 5.5999406E-25 + 3.9980000E+08 5.5996315E-25 + 3.9990000E+08 5.5993219E-25 + 4.0000000E+08 5.5990128E-25 + 4.0010000E+08 5.5987036E-25 + 4.0020000E+08 5.5983945E-25 + 4.0030000E+08 5.5980853E-25 + 4.0040000E+08 5.5977762E-25 + 4.0050000E+08 5.5974666E-25 + 4.0060000E+08 5.5971574E-25 + 4.0070000E+08 5.5968483E-25 + 4.0080000E+08 5.5965392E-25 + 4.0090000E+08 5.5962300E-25 + 4.0100000E+08 5.5959209E-25 + 4.0110000E+08 5.5956113E-25 + 4.0120000E+08 5.5953021E-25 + 4.0130000E+08 5.5949930E-25 + 4.0140000E+08 5.5946839E-25 + 4.0150000E+08 5.5943747E-25 + 4.0160000E+08 5.5940656E-25 + 4.0170000E+08 5.5937560E-25 + 4.0180000E+08 5.5934468E-25 + 4.0190000E+08 5.5931377E-25 + 4.0200000E+08 5.5928286E-25 + 4.0210000E+08 5.5925194E-25 + 4.0220000E+08 5.5922103E-25 + 4.0230000E+08 5.5919007E-25 + 4.0240000E+08 5.5915915E-25 + 4.0250000E+08 5.5912824E-25 + 4.0260000E+08 5.5909733E-25 + 4.0270000E+08 5.5906641E-25 + 4.0280000E+08 5.5903550E-25 + 4.0290000E+08 5.5900454E-25 + 4.0300000E+08 5.5897362E-25 + 4.0310000E+08 5.5894271E-25 + 4.0320000E+08 5.5891180E-25 + 4.0330000E+08 5.5888088E-25 + 4.0340000E+08 5.5884997E-25 + 4.0350000E+08 5.5881906E-25 + 4.0360000E+08 5.5878814E-25 + 4.0370000E+08 5.5875718E-25 + 4.0380000E+08 5.5872627E-25 + 4.0390000E+08 5.5869535E-25 + 4.0400000E+08 5.5866444E-25 + 4.0410000E+08 5.5863353E-25 + 4.0420000E+08 5.5860261E-25 + 4.0430000E+08 5.5857165E-25 + 4.0440000E+08 5.5854074E-25 + 4.0450000E+08 5.5850982E-25 + 4.0460000E+08 5.5847891E-25 + 4.0470000E+08 5.5844800E-25 + 4.0480000E+08 5.5841708E-25 + 4.0490000E+08 5.5838612E-25 + 4.0500000E+08 5.5835521E-25 + 4.0510000E+08 5.5832429E-25 + 4.0520000E+08 5.5829338E-25 + 4.0530000E+08 5.5826247E-25 + 4.0540000E+08 5.5823155E-25 + 4.0550000E+08 5.5820059E-25 + 4.0560000E+08 5.5816968E-25 + 4.0570000E+08 5.5813876E-25 + 4.0580000E+08 5.5810785E-25 + 4.0590000E+08 5.5807694E-25 + 4.0600000E+08 5.5804602E-25 + 4.0610000E+08 5.5801506E-25 + 4.0620000E+08 5.5798415E-25 + 4.0630000E+08 5.5795323E-25 + 4.0640000E+08 5.5792232E-25 + 4.0650000E+08 5.5789141E-25 + 4.0660000E+08 5.5786049E-25 + 4.0670000E+08 5.5782953E-25 + 4.0680000E+08 5.5779862E-25 + 4.0690000E+08 5.5776770E-25 + 4.0700000E+08 5.5773679E-25 + 4.0710000E+08 5.5770588E-25 + 4.0720000E+08 5.5767496E-25 + 4.0730000E+08 5.5764400E-25 + 4.0740000E+08 5.5761309E-25 + 4.0750000E+08 5.5758217E-25 + 4.0760000E+08 5.5755126E-25 + 4.0770000E+08 5.5752035E-25 + 4.0780000E+08 5.5748943E-25 + 4.0790000E+08 5.5745847E-25 + 4.0800000E+08 5.5742756E-25 + 4.0810000E+08 5.5739664E-25 + 4.0820000E+08 5.5736573E-25 + 4.0830000E+08 5.5733481E-25 + 4.0840000E+08 5.5730390E-25 + 4.0850000E+08 5.5727294E-25 + 4.0860000E+08 5.5724203E-25 + 4.0870000E+08 5.5721111E-25 + 4.0880000E+08 5.5718020E-25 + 4.0890000E+08 5.5714928E-25 + 4.0900000E+08 5.5711837E-25 + 4.0910000E+08 5.5708746E-25 + 4.0920000E+08 5.5705649E-25 + 4.0930000E+08 5.5702558E-25 + 4.0940000E+08 5.5699467E-25 + 4.0950000E+08 5.5696375E-25 + 4.0960000E+08 5.5693284E-25 + 4.0970000E+08 5.5690188E-25 + 4.0980000E+08 5.5687096E-25 + 4.0990000E+08 5.5684005E-25 + 4.1000000E+08 5.5680914E-25 + 4.1010000E+08 5.5677822E-25 + 4.1020000E+08 5.5674731E-25 + 4.1030000E+08 5.5671640E-25 + 4.1040000E+08 5.5668548E-25 + 4.1050000E+08 5.5665452E-25 + 4.1060000E+08 5.5662361E-25 + 4.1070000E+08 5.5659269E-25 + 4.1080000E+08 5.5656178E-25 + 4.1090000E+08 5.5653087E-25 + 4.1100000E+08 5.5649995E-25 + 4.1110000E+08 5.5646899E-25 + 4.1120000E+08 5.5643808E-25 + 4.1130000E+08 5.5640716E-25 + 4.1140000E+08 5.5637625E-25 + 4.1150000E+08 5.5634534E-25 + 4.1160000E+08 5.5631442E-25 + 4.1170000E+08 5.5628346E-25 + 4.1180000E+08 5.5625255E-25 + 4.1190000E+08 5.5622163E-25 + 4.1200000E+08 5.5619072E-25 + 4.1210000E+08 5.5615981E-25 + 4.1220000E+08 5.5612889E-25 + 4.1230000E+08 5.5609793E-25 + 4.1240000E+08 5.5606702E-25 + 4.1250000E+08 5.5603610E-25 + 4.1260000E+08 5.5600519E-25 + 4.1270000E+08 5.5597428E-25 + 4.1280000E+08 5.5594336E-25 + 4.1290000E+08 5.5591245E-25 + 4.1300000E+08 5.5588149E-25 + 4.1310000E+08 5.5585057E-25 + 4.1320000E+08 5.5581966E-25 + 4.1330000E+08 5.5578875E-25 + 4.1340000E+08 5.5575783E-25 + 4.1350000E+08 5.5572687E-25 + 4.1360000E+08 5.5569596E-25 + 4.1370000E+08 5.5566504E-25 + 4.1380000E+08 5.5563413E-25 + 4.1390000E+08 5.5560322E-25 + 4.1400000E+08 5.5557230E-25 + 4.1410000E+08 5.5554139E-25 + 4.1420000E+08 5.5551043E-25 + 4.1430000E+08 5.5547951E-25 + 4.1440000E+08 5.5544860E-25 + 4.1450000E+08 5.5541769E-25 + 4.1460000E+08 5.5538677E-25 + 4.1470000E+08 5.5535586E-25 + 4.1480000E+08 5.5532490E-25 + 4.1490000E+08 5.5529398E-25 + 4.1500000E+08 5.5526307E-25 + 4.1510000E+08 5.5523216E-25 + 4.1520000E+08 5.5520124E-25 + 4.1530000E+08 5.5517033E-25 + 4.1540000E+08 5.5513937E-25 + 4.1550000E+08 5.5510845E-25 + 4.1560000E+08 5.5507754E-25 + 4.1570000E+08 5.5504663E-25 + 4.1580000E+08 5.5501571E-25 + 4.1590000E+08 5.5498480E-25 + 4.1600000E+08 5.5495384E-25 + 4.1610000E+08 5.5492292E-25 + 4.1620000E+08 5.5489201E-25 + 4.1630000E+08 5.5486109E-25 + 4.1640000E+08 5.5483018E-25 + 4.1650000E+08 5.5479927E-25 + 4.1660000E+08 5.5476831E-25 + 4.1670000E+08 5.5473739E-25 + 4.1680000E+08 5.5470648E-25 + 4.1690000E+08 5.5467556E-25 + 4.1700000E+08 5.5464465E-25 + 4.1710000E+08 5.5461374E-25 + 4.1720000E+08 5.5458277E-25 + 4.1730000E+08 5.5455186E-25 + 4.1740000E+08 5.5452095E-25 + 4.1750000E+08 5.5449003E-25 + 4.1760000E+08 5.5445912E-25 + 4.1770000E+08 5.5442821E-25 + 4.1780000E+08 5.5439729E-25 + 4.1790000E+08 5.5436638E-25 + 4.1800000E+08 5.5433542E-25 + 4.1810000E+08 5.5430450E-25 + 4.1820000E+08 5.5427359E-25 + 4.1830000E+08 5.5424268E-25 + 4.1840000E+08 5.5421176E-25 + 4.1850000E+08 5.5418085E-25 + 4.1860000E+08 5.5414989E-25 + 4.1870000E+08 5.5411897E-25 + 4.1880000E+08 5.5408806E-25 + 4.1890000E+08 5.5405715E-25 + 4.1900000E+08 5.5402623E-25 + 4.1910000E+08 5.5399532E-25 + 4.1920000E+08 5.5396436E-25 + 4.1930000E+08 5.5393344E-25 + 4.1940000E+08 5.5390253E-25 + 4.1950000E+08 5.5387162E-25 + 4.1960000E+08 5.5384070E-25 + 4.1970000E+08 5.5380979E-25 + 4.1980000E+08 5.5377883E-25 + 4.1990000E+08 5.5374791E-25 + 4.2000000E+08 5.5371700E-25 + 4.2010000E+08 5.5368609E-25 + 4.2020000E+08 5.5365517E-25 + 4.2030000E+08 5.5362426E-25 + 4.2040000E+08 5.5359330E-25 + 4.2050000E+08 5.5356238E-25 + 4.2060000E+08 5.5353147E-25 + 4.2070000E+08 5.5350056E-25 + 4.2080000E+08 5.5346964E-25 + 4.2090000E+08 5.5343873E-25 + 4.2100000E+08 5.5340777E-25 + 4.2110000E+08 5.5337685E-25 + 4.2120000E+08 5.5334594E-25 + 4.2130000E+08 5.5331503E-25 + 4.2140000E+08 5.5328411E-25 + 4.2150000E+08 5.5325320E-25 + 4.2160000E+08 5.5322224E-25 + 4.2170000E+08 5.5319132E-25 + 4.2180000E+08 5.5316041E-25 + 4.2190000E+08 5.5312950E-25 + 4.2200000E+08 5.5309858E-25 + 4.2210000E+08 5.5306767E-25 + 4.2220000E+08 5.5303671E-25 + 4.2230000E+08 5.5300579E-25 + 4.2240000E+08 5.5297488E-25 + 4.2250000E+08 5.5294397E-25 + 4.2260000E+08 5.5291305E-25 + 4.2270000E+08 5.5288214E-25 + 4.2280000E+08 5.5285118E-25 + 4.2290000E+08 5.5282026E-25 + 4.2300000E+08 5.5278935E-25 + 4.2310000E+08 5.5275844E-25 + 4.2320000E+08 5.5272752E-25 + 4.2330000E+08 5.5269661E-25 + 4.2340000E+08 5.5266565E-25 + 4.2350000E+08 5.5263473E-25 + 4.2360000E+08 5.5260382E-25 + 4.2370000E+08 5.5257291E-25 + 4.2380000E+08 5.5254199E-25 + 4.2390000E+08 5.5251108E-25 + 4.2400000E+08 5.5248012E-25 + 4.2410000E+08 5.5244920E-25 + 4.2420000E+08 5.5241829E-25 + 4.2430000E+08 5.5238738E-25 + 4.2440000E+08 5.5235646E-25 + 4.2450000E+08 5.5232555E-25 + 4.2460000E+08 5.5229463E-25 + 4.2470000E+08 5.5226372E-25 + 4.2480000E+08 5.5223276E-25 + 4.2490000E+08 5.5220184E-25 + 4.2500000E+08 5.5217093E-25 + 4.2510000E+08 5.5214002E-25 + 4.2520000E+08 5.5210910E-25 + 4.2530000E+08 5.5207819E-25 + 4.2540000E+08 5.5204723E-25 + 4.2550000E+08 5.5201631E-25 + 4.2560000E+08 5.5198540E-25 + 4.2570000E+08 5.5195449E-25 + 4.2580000E+08 5.5192357E-25 + 4.2590000E+08 5.5189266E-25 + 4.2600000E+08 5.5186170E-25 + 4.2610000E+08 5.5183078E-25 + 4.2620000E+08 5.5179987E-25 + 4.2630000E+08 5.5176896E-25 + 4.2640000E+08 5.5173804E-25 + 4.2650000E+08 5.5170713E-25 + 4.2660000E+08 5.5167617E-25 + 4.2670000E+08 5.5164525E-25 + 4.2680000E+08 5.5161434E-25 + 4.2690000E+08 5.5158343E-25 + 4.2700000E+08 5.5155251E-25 + 4.2710000E+08 5.5152160E-25 + 4.2720000E+08 5.5149064E-25 + 4.2730000E+08 5.5145972E-25 + 4.2740000E+08 5.5142881E-25 + 4.2750000E+08 5.5139790E-25 + 4.2760000E+08 5.5136698E-25 + 4.2770000E+08 5.5133607E-25 + 4.2780000E+08 5.5130511E-25 + 4.2790000E+08 5.5127419E-25 + 4.2800000E+08 5.5124328E-25 + 4.2810000E+08 5.5121237E-25 + 4.2820000E+08 5.5118145E-25 + 4.2830000E+08 5.5115054E-25 + 4.2840000E+08 5.5111958E-25 + 4.2850000E+08 5.5108866E-25 + 4.2860000E+08 5.5105775E-25 + 4.2870000E+08 5.5102684E-25 + 4.2880000E+08 5.5099592E-25 + 4.2890000E+08 5.5096501E-25 + 4.2900000E+08 5.5093405E-25 + 4.2910000E+08 5.5090313E-25 + 4.2920000E+08 5.5087222E-25 + 4.2930000E+08 5.5084131E-25 + 4.2940000E+08 5.5081039E-25 + 4.2950000E+08 5.5077948E-25 + 4.2960000E+08 5.5074857E-25 + 4.2970000E+08 5.5071760E-25 + 4.2980000E+08 5.5068669E-25 + 4.2990000E+08 5.5065578E-25 + 4.3000000E+08 5.5062486E-25 + 4.3010000E+08 5.5059395E-25 + 4.3020000E+08 5.5056299E-25 + 4.3030000E+08 5.5053207E-25 + 4.3040000E+08 5.5050116E-25 + 4.3050000E+08 5.5047025E-25 + 4.3060000E+08 5.5043933E-25 + 4.3070000E+08 5.5040842E-25 + 4.3080000E+08 5.5037751E-25 + 4.3090000E+08 5.5034654E-25 + 4.3100000E+08 5.5031563E-25 + 4.3110000E+08 5.5028472E-25 + 4.3120000E+08 5.5025380E-25 + 4.3130000E+08 5.5022289E-25 + 4.3140000E+08 5.5019198E-25 + 4.3150000E+08 5.5016106E-25 + 4.3160000E+08 5.5013010E-25 + 4.3170000E+08 5.5009919E-25 + 4.3180000E+08 5.5006827E-25 + 4.3190000E+08 5.5003736E-25 + 4.3200000E+08 5.5000644E-25 + 4.3210000E+08 5.4997553E-25 + 4.3220000E+08 5.4994462E-25 + 4.3230000E+08 5.4991366E-25 + 4.3240000E+08 5.4988274E-25 + 4.3250000E+08 5.4985183E-25 + 4.3260000E+08 5.4982091E-25 + 4.3270000E+08 5.4979000E-25 + 4.3280000E+08 5.4975904E-25 + 4.3290000E+08 5.4972812E-25 + 4.3300000E+08 5.4969721E-25 + 4.3310000E+08 5.4966630E-25 + 4.3320000E+08 5.4963538E-25 + 4.3330000E+08 5.4960447E-25 + 4.3340000E+08 5.4957356E-25 + 4.3350000E+08 5.4954259E-25 + 4.3360000E+08 5.4951168E-25 + 4.3370000E+08 5.4948077E-25 + 4.3380000E+08 5.4944985E-25 + 4.3390000E+08 5.4941894E-25 + 4.3400000E+08 5.4938798E-25 + 4.3410000E+08 5.4935706E-25 + 4.3420000E+08 5.4932615E-25 + 4.3430000E+08 5.4929524E-25 + 4.3440000E+08 5.4926432E-25 + 4.3450000E+08 5.4923341E-25 + 4.3460000E+08 5.4920250E-25 + 4.3470000E+08 5.4917153E-25 + 4.3480000E+08 5.4914062E-25 + 4.3490000E+08 5.4910971E-25 + 4.3500000E+08 5.4907879E-25 + 4.3510000E+08 5.4904788E-25 + 4.3520000E+08 5.4901697E-25 + 4.3530000E+08 5.4898600E-25 + 4.3540000E+08 5.4895509E-25 + 4.3550000E+08 5.4892418E-25 + 4.3560000E+08 5.4889326E-25 + 4.3570000E+08 5.4886235E-25 + 4.3580000E+08 5.4883144E-25 + 4.3590000E+08 5.4880047E-25 + 4.3600000E+08 5.4876956E-25 + 4.3610000E+08 5.4873865E-25 + 4.3620000E+08 5.4870773E-25 + 4.3630000E+08 5.4867682E-25 + 4.3640000E+08 5.4864591E-25 + 4.3650000E+08 5.4861494E-25 + 4.3660000E+08 5.4858403E-25 + 4.3670000E+08 5.4855312E-25 + 4.3680000E+08 5.4852220E-25 + 4.3690000E+08 5.4849129E-25 + 4.3700000E+08 5.4846038E-25 + 4.3710000E+08 5.4842941E-25 + 4.3720000E+08 5.4839850E-25 + 4.3730000E+08 5.4836759E-25 + 4.3740000E+08 5.4833667E-25 + 4.3750000E+08 5.4830576E-25 + 4.3760000E+08 5.4827485E-25 + 4.3770000E+08 5.4824388E-25 + 4.3780000E+08 5.4821297E-25 + 4.3790000E+08 5.4818206E-25 + 4.3800000E+08 5.4815114E-25 + 4.3810000E+08 5.4812023E-25 + 4.3820000E+08 5.4808932E-25 + 4.3830000E+08 5.4805840E-25 + 4.3840000E+08 5.4802749E-25 + 4.3850000E+08 5.4799653E-25 + 4.3860000E+08 5.4796561E-25 + 4.3870000E+08 5.4793470E-25 + 4.3880000E+08 5.4790379E-25 + 4.3890000E+08 5.4787287E-25 + 4.3900000E+08 5.4784196E-25 + 4.3910000E+08 5.4781100E-25 + 4.3920000E+08 5.4778008E-25 + 4.3930000E+08 5.4774917E-25 + 4.3940000E+08 5.4771826E-25 + 4.3950000E+08 5.4768734E-25 + 4.3960000E+08 5.4765643E-25 + 4.3970000E+08 5.4762547E-25 + 4.3980000E+08 5.4759455E-25 + 4.3990000E+08 5.4756364E-25 + 4.4000000E+08 5.4753273E-25 + 4.4010000E+08 5.4750181E-25 + 4.4020000E+08 5.4747090E-25 + 4.4030000E+08 5.4743994E-25 + 4.4040000E+08 5.4740902E-25 + 4.4050000E+08 5.4737811E-25 + 4.4060000E+08 5.4734719E-25 + 4.4070000E+08 5.4731628E-25 + 4.4080000E+08 5.4728537E-25 + 4.4090000E+08 5.4725441E-25 + 4.4100000E+08 5.4722349E-25 + 4.4110000E+08 5.4719258E-25 + 4.4120000E+08 5.4716166E-25 + 4.4130000E+08 5.4713075E-25 + 4.4140000E+08 5.4709984E-25 + 4.4150000E+08 5.4706887E-25 + 4.4160000E+08 5.4703796E-25 + 4.4170000E+08 5.4700705E-25 + 4.4180000E+08 5.4697613E-25 + 4.4190000E+08 5.4694522E-25 + 4.4200000E+08 5.4691431E-25 + 4.4210000E+08 5.4688334E-25 + 4.4220000E+08 5.4685243E-25 + 4.4230000E+08 5.4682152E-25 + 4.4240000E+08 5.4679060E-25 + 4.4250000E+08 5.4675969E-25 + 4.4260000E+08 5.4672878E-25 + 4.4270000E+08 5.4669781E-25 + 4.4280000E+08 5.4666690E-25 + 4.4290000E+08 5.4663599E-25 + 4.4300000E+08 5.4660507E-25 + 4.4310000E+08 5.4657416E-25 + 4.4320000E+08 5.4654325E-25 + 4.4330000E+08 5.4651228E-25 + 4.4340000E+08 5.4648137E-25 + 4.4350000E+08 5.4645046E-25 + 4.4360000E+08 5.4641954E-25 + 4.4370000E+08 5.4638863E-25 + 4.4380000E+08 5.4635772E-25 + 4.4390000E+08 5.4632675E-25 + 4.4400000E+08 5.4629584E-25 + 4.4410000E+08 5.4626493E-25 + 4.4420000E+08 5.4623401E-25 + 4.4430000E+08 5.4620310E-25 + 4.4440000E+08 5.4617219E-25 + 4.4450000E+08 5.4614122E-25 + 4.4460000E+08 5.4611031E-25 + 4.4470000E+08 5.4607940E-25 + 4.4480000E+08 5.4604848E-25 + 4.4490000E+08 5.4601757E-25 + 4.4500000E+08 5.4598666E-25 + 4.4510000E+08 5.4595574E-25 + 4.4520000E+08 5.4592478E-25 + 4.4530000E+08 5.4589387E-25 + 4.4540000E+08 5.4586295E-25 + 4.4550000E+08 5.4583204E-25 + 4.4560000E+08 5.4580113E-25 + 4.4570000E+08 5.4577021E-25 + 4.4580000E+08 5.4573930E-25 + 4.4590000E+08 5.4570834E-25 + 4.4600000E+08 5.4567742E-25 + 4.4610000E+08 5.4564651E-25 + 4.4620000E+08 5.4561560E-25 + 4.4630000E+08 5.4558468E-25 + 4.4640000E+08 5.4555377E-25 + 4.4650000E+08 5.4552281E-25 + 4.4660000E+08 5.4549189E-25 + 4.4670000E+08 5.4546098E-25 + 4.4680000E+08 5.4543007E-25 + 4.4690000E+08 5.4539915E-25 + 4.4700000E+08 5.4536824E-25 + 4.4710000E+08 5.4533728E-25 + 4.4720000E+08 5.4530636E-25 + 4.4730000E+08 5.4527545E-25 + 4.4740000E+08 5.4524454E-25 + 4.4750000E+08 5.4521362E-25 + 4.4760000E+08 5.4518271E-25 + 4.4770000E+08 5.4515175E-25 + 4.4780000E+08 5.4512083E-25 + 4.4790000E+08 5.4508992E-25 + 4.4800000E+08 5.4505901E-25 + 4.4810000E+08 5.4502809E-25 + 4.4820000E+08 5.4499718E-25 + 4.4830000E+08 5.4496622E-25 + 4.4840000E+08 5.4493530E-25 + 4.4850000E+08 5.4490439E-25 + 4.4860000E+08 5.4487347E-25 + 4.4870000E+08 5.4484256E-25 + 4.4880000E+08 5.4481165E-25 + 4.4890000E+08 5.4478073E-25 + 4.4900000E+08 5.4474977E-25 + 4.4910000E+08 5.4471886E-25 + 4.4920000E+08 5.4468794E-25 + 4.4930000E+08 5.4465703E-25 + 4.4940000E+08 5.4462612E-25 + 4.4950000E+08 5.4459515E-25 + 4.4960000E+08 5.4456424E-25 + 4.4970000E+08 5.4453333E-25 + 4.4980000E+08 5.4450241E-25 + 4.4990000E+08 5.4447150E-25 + 4.5000000E+08 5.4444059E-25 + 4.5010000E+08 5.4440967E-25 + 4.5020000E+08 5.4437871E-25 + 4.5030000E+08 5.4434780E-25 + 4.5040000E+08 5.4431688E-25 + 4.5050000E+08 5.4428597E-25 + 4.5060000E+08 5.4425506E-25 + 4.5070000E+08 5.4422409E-25 + 4.5080000E+08 5.4419318E-25 + 4.5090000E+08 5.4416227E-25 + 4.5100000E+08 5.4413135E-25 + 4.5110000E+08 5.4410044E-25 + 4.5120000E+08 5.4406953E-25 + 4.5130000E+08 5.4403861E-25 + 4.5140000E+08 5.4400765E-25 + 4.5150000E+08 5.4397674E-25 + 4.5160000E+08 5.4394582E-25 + 4.5170000E+08 5.4391491E-25 + 4.5180000E+08 5.4388400E-25 + 4.5190000E+08 5.4385308E-25 + 4.5200000E+08 5.4382212E-25 + 4.5210000E+08 5.4379121E-25 + 4.5220000E+08 5.4376029E-25 + 4.5230000E+08 5.4372938E-25 + 4.5240000E+08 5.4369847E-25 + 4.5250000E+08 5.4366755E-25 + 4.5260000E+08 5.4363664E-25 + 4.5270000E+08 5.4360573E-25 + 4.5280000E+08 5.4357476E-25 + 4.5290000E+08 5.4354385E-25 + 4.5300000E+08 5.4351294E-25 + 4.5310000E+08 5.4348202E-25 + 4.5320000E+08 5.4345111E-25 + 4.5330000E+08 5.4342015E-25 + 4.5340000E+08 5.4338923E-25 + 4.5350000E+08 5.4335832E-25 + 4.5360000E+08 5.4332741E-25 + 4.5370000E+08 5.4329649E-25 + 4.5380000E+08 5.4326558E-25 + 4.5390000E+08 5.4323467E-25 + 4.5400000E+08 5.4320370E-25 + 4.5410000E+08 5.4317279E-25 + 4.5420000E+08 5.4314188E-25 + 4.5430000E+08 5.4311096E-25 + 4.5440000E+08 5.4308005E-25 + 4.5450000E+08 5.4304909E-25 + 4.5460000E+08 5.4301817E-25 + 4.5470000E+08 5.4298726E-25 + 4.5480000E+08 5.4295635E-25 + 4.5490000E+08 5.4292543E-25 + 4.5500000E+08 5.4289452E-25 + 4.5510000E+08 5.4286361E-25 + 4.5520000E+08 5.4283264E-25 + 4.5530000E+08 5.4280173E-25 + 4.5540000E+08 5.4277082E-25 + 4.5550000E+08 5.4273990E-25 + 4.5560000E+08 5.4270899E-25 + 4.5570000E+08 5.4267807E-25 + 4.5580000E+08 5.4264711E-25 + 4.5590000E+08 5.4261620E-25 + 4.5600000E+08 5.4258529E-25 + 4.5610000E+08 5.4255437E-25 + 4.5620000E+08 5.4252346E-25 + 4.5630000E+08 5.4249254E-25 + 4.5640000E+08 5.4246158E-25 + 4.5650000E+08 5.4243067E-25 + 4.5660000E+08 5.4239976E-25 + 4.5670000E+08 5.4236884E-25 + 4.5680000E+08 5.4233793E-25 + 4.5690000E+08 5.4230701E-25 + 4.5700000E+08 5.4227605E-25 + 4.5710000E+08 5.4224514E-25 + 4.5720000E+08 5.4222098E-25 + 4.5730000E+08 5.4219786E-25 + 4.5740000E+08 5.4217473E-25 + 4.5750000E+08 5.4215161E-25 + 4.5760000E+08 5.4212853E-25 + 4.5770000E+08 5.4210541E-25 + 4.5780000E+08 5.4208229E-25 + 4.5790000E+08 5.4205916E-25 + 4.5800000E+08 5.4203604E-25 + 4.5810000E+08 5.4201297E-25 + 4.5820000E+08 5.4198984E-25 + 4.5830000E+08 5.4196672E-25 + 4.5840000E+08 5.4194360E-25 + 4.5850000E+08 5.4192047E-25 + 4.5860000E+08 5.4189735E-25 + 4.5870000E+08 5.4187428E-25 + 4.5880000E+08 5.4185115E-25 + 4.5890000E+08 5.4182803E-25 + 4.5900000E+08 5.4180490E-25 + 4.5910000E+08 5.4178178E-25 + 4.5920000E+08 5.4175866E-25 + 4.5930000E+08 5.4173558E-25 + 4.5940000E+08 5.4171246E-25 + 4.5950000E+08 5.4168934E-25 + 4.5960000E+08 5.4166621E-25 + 4.5970000E+08 5.4164314E-25 + 4.5980000E+08 5.4162002E-25 + 4.5990000E+08 5.4159689E-25 + 4.6000000E+08 5.4157377E-25 + 4.6010000E+08 5.4155064E-25 + 4.6020000E+08 5.4152752E-25 + 4.6030000E+08 5.4150445E-25 + 4.6040000E+08 5.4148132E-25 + 4.6050000E+08 5.4145820E-25 + 4.6060000E+08 5.4143508E-25 + 4.6070000E+08 5.4141195E-25 + 4.6080000E+08 5.4138888E-25 + 4.6090000E+08 5.4136576E-25 + 4.6100000E+08 5.4134263E-25 + 4.6110000E+08 5.4131951E-25 + 4.6120000E+08 5.4129639E-25 + 4.6130000E+08 5.4127326E-25 + 4.6140000E+08 5.4125019E-25 + 4.6150000E+08 5.4122706E-25 + 4.6160000E+08 5.4120394E-25 + 4.6170000E+08 5.4118082E-25 + 4.6180000E+08 5.4115769E-25 + 4.6190000E+08 5.4113462E-25 + 4.6200000E+08 5.4111150E-25 + 4.6210000E+08 5.4108837E-25 + 4.6220000E+08 5.4106525E-25 + 4.6230000E+08 5.4104213E-25 + 4.6240000E+08 5.4101900E-25 + 4.6250000E+08 5.4099593E-25 + 4.6260000E+08 5.4097280E-25 + 4.6270000E+08 5.4094968E-25 + 4.6280000E+08 5.4092656E-25 + 4.6290000E+08 5.4090343E-25 + 4.6300000E+08 5.4088031E-25 + 4.6310000E+08 5.4085724E-25 + 4.6320000E+08 5.4083411E-25 + 4.6330000E+08 5.4081099E-25 + 4.6340000E+08 5.4078787E-25 + 4.6350000E+08 5.4076474E-25 + 4.6360000E+08 5.4074167E-25 + 4.6370000E+08 5.4071854E-25 + 4.6380000E+08 5.4069542E-25 + 4.6390000E+08 5.4067230E-25 + 4.6400000E+08 5.4064917E-25 + 4.6410000E+08 5.4062605E-25 + 4.6420000E+08 5.4060298E-25 + 4.6430000E+08 5.4057985E-25 + 4.6440000E+08 5.4055673E-25 + 4.6450000E+08 5.4053361E-25 + 4.6460000E+08 5.4051048E-25 + 4.6470000E+08 5.4048741E-25 + 4.6480000E+08 5.4046428E-25 + 4.6490000E+08 5.4044116E-25 + 4.6500000E+08 5.4041804E-25 + 4.6510000E+08 5.4039491E-25 + 4.6520000E+08 5.4037179E-25 + 4.6530000E+08 5.4034872E-25 + 4.6540000E+08 5.4032559E-25 + 4.6550000E+08 5.4030247E-25 + 4.6560000E+08 5.4027935E-25 + 4.6570000E+08 5.4025622E-25 + 4.6580000E+08 5.4023310E-25 + 4.6590000E+08 5.4021003E-25 + 4.6600000E+08 5.4018690E-25 + 4.6610000E+08 5.4016378E-25 + 4.6620000E+08 5.4014065E-25 + 4.6630000E+08 5.4011758E-25 + 4.6640000E+08 5.4009446E-25 + 4.6650000E+08 5.4007133E-25 + 4.6660000E+08 5.4004821E-25 + 4.6670000E+08 5.4002509E-25 + 4.6680000E+08 5.4000196E-25 + 4.6690000E+08 5.3997889E-25 + 4.6700000E+08 5.3995577E-25 + 4.6710000E+08 5.3993264E-25 + 4.6720000E+08 5.3990952E-25 + 4.6730000E+08 5.3988639E-25 + 4.6740000E+08 5.3986332E-25 + 4.6750000E+08 5.3984020E-25 + 4.6760000E+08 5.3981707E-25 + 4.6770000E+08 5.3979395E-25 + 4.6780000E+08 5.3977083E-25 + 4.6790000E+08 5.3974770E-25 + 4.6800000E+08 5.3972463E-25 + 4.6810000E+08 5.3970151E-25 + 4.6820000E+08 5.3967838E-25 + 4.6830000E+08 5.3965526E-25 + 4.6840000E+08 5.3963214E-25 + 4.6850000E+08 5.3960906E-25 + 4.6860000E+08 5.3958594E-25 + 4.6870000E+08 5.3956281E-25 + 4.6880000E+08 5.3953969E-25 + 4.6890000E+08 5.3951657E-25 + 4.6900000E+08 5.3949344E-25 + 4.6910000E+08 5.3947037E-25 + 4.6920000E+08 5.3944725E-25 + 4.6930000E+08 5.3942412E-25 + 4.6940000E+08 5.3940100E-25 + 4.6950000E+08 5.3937788E-25 + 4.6960000E+08 5.3935475E-25 + 4.6970000E+08 5.3933168E-25 + 4.6980000E+08 5.3930855E-25 + 4.6990000E+08 5.3928543E-25 + 4.7000000E+08 5.3926231E-25 + 4.7010000E+08 5.3923918E-25 + 4.7020000E+08 5.3921611E-25 + 4.7030000E+08 5.3919299E-25 + 4.7040000E+08 5.3916986E-25 + 4.7050000E+08 5.3914674E-25 + 4.7060000E+08 5.3912362E-25 + 4.7070000E+08 5.3910049E-25 + 4.7080000E+08 5.3907742E-25 + 4.7090000E+08 5.3905429E-25 + 4.7100000E+08 5.3903117E-25 + 4.7110000E+08 5.3900805E-25 + 4.7120000E+08 5.3898492E-25 + 4.7130000E+08 5.3896185E-25 + 4.7140000E+08 5.3893873E-25 + 4.7150000E+08 5.3891560E-25 + 4.7160000E+08 5.3889248E-25 + 4.7170000E+08 5.3886936E-25 + 4.7180000E+08 5.3884623E-25 + 4.7190000E+08 5.3882316E-25 + 4.7200000E+08 5.3880003E-25 + 4.7210000E+08 5.3877691E-25 + 4.7220000E+08 5.3875379E-25 + 4.7230000E+08 5.3873066E-25 + 4.7240000E+08 5.3870759E-25 + 4.7250000E+08 5.3868447E-25 + 4.7260000E+08 5.3866134E-25 + 4.7270000E+08 5.3863822E-25 + 4.7280000E+08 5.3861510E-25 + 4.7290000E+08 5.3859197E-25 + 4.7300000E+08 5.3856890E-25 + 4.7310000E+08 5.3854578E-25 + 4.7320000E+08 5.3852265E-25 + 4.7330000E+08 5.3849953E-25 + 4.7340000E+08 5.3847640E-25 + 4.7350000E+08 5.3845333E-25 + 4.7360000E+08 5.3843021E-25 + 4.7370000E+08 5.3840708E-25 + 4.7380000E+08 5.3838396E-25 + 4.7390000E+08 5.3836084E-25 + 4.7400000E+08 5.3833776E-25 + 4.7410000E+08 5.3831464E-25 + 4.7420000E+08 5.3829152E-25 + 4.7430000E+08 5.3826839E-25 + 4.7440000E+08 5.3824527E-25 + 4.7450000E+08 5.3822214E-25 + 4.7460000E+08 5.3819907E-25 + 4.7470000E+08 5.3817595E-25 + 4.7480000E+08 5.3815282E-25 + 4.7490000E+08 5.3812970E-25 + 4.7500000E+08 5.3810658E-25 + 4.7510000E+08 5.3808350E-25 + 4.7520000E+08 5.3806038E-25 + 4.7530000E+08 5.3803726E-25 + 4.7540000E+08 5.3801413E-25 + 4.7550000E+08 5.3799101E-25 + 4.7560000E+08 5.3796789E-25 + 4.7570000E+08 5.3794481E-25 + 4.7580000E+08 5.3792169E-25 + 4.7590000E+08 5.3789856E-25 + 4.7600000E+08 5.3787544E-25 + 4.7610000E+08 5.3785232E-25 + 4.7620000E+08 5.3782919E-25 + 4.7630000E+08 5.3780612E-25 + 4.7640000E+08 5.3778300E-25 + 4.7650000E+08 5.3775987E-25 + 4.7660000E+08 5.3773675E-25 + 4.7670000E+08 5.3771363E-25 + 4.7680000E+08 5.3769055E-25 + 4.7690000E+08 5.3766743E-25 + 4.7700000E+08 5.3764430E-25 + 4.7710000E+08 5.3762118E-25 + 4.7720000E+08 5.3759806E-25 + 4.7730000E+08 5.3757493E-25 + 4.7740000E+08 5.3755186E-25 + 4.7750000E+08 5.3752874E-25 + 4.7760000E+08 5.3750561E-25 + 4.7770000E+08 5.3748249E-25 + 4.7780000E+08 5.3745937E-25 + 4.7790000E+08 5.3743629E-25 + 4.7800000E+08 5.3741317E-25 + 4.7810000E+08 5.3739004E-25 + 4.7820000E+08 5.3736692E-25 + 4.7830000E+08 5.3734380E-25 + 4.7840000E+08 5.3732067E-25 + 4.7850000E+08 5.3729760E-25 + 4.7860000E+08 5.3727448E-25 + 4.7870000E+08 5.3725135E-25 + 4.7880000E+08 5.3722823E-25 + 4.7890000E+08 5.3720511E-25 + 4.7900000E+08 5.3718203E-25 + 4.7910000E+08 5.3715891E-25 + 4.7920000E+08 5.3713578E-25 + 4.7930000E+08 5.3711266E-25 + 4.7940000E+08 5.3708954E-25 + 4.7950000E+08 5.3706641E-25 + 4.7960000E+08 5.3704334E-25 + 4.7970000E+08 5.3702022E-25 + 4.7980000E+08 5.3699709E-25 + 4.7990000E+08 5.3697397E-25 + 4.8000000E+08 5.3695085E-25 + 4.8010000E+08 5.3692772E-25 + 4.8020000E+08 5.3690465E-25 + 4.8030000E+08 5.3688153E-25 + 4.8040000E+08 5.3685840E-25 + 4.8050000E+08 5.3683528E-25 + 4.8060000E+08 5.3681220E-25 + 4.8070000E+08 5.3678908E-25 + 4.8080000E+08 5.3676596E-25 + 4.8090000E+08 5.3674283E-25 + 4.8100000E+08 5.3671971E-25 + 4.8110000E+08 5.3669659E-25 + 4.8120000E+08 5.3667351E-25 + 4.8130000E+08 5.3665039E-25 + 4.8140000E+08 5.3662727E-25 + 4.8150000E+08 5.3660414E-25 + 4.8160000E+08 5.3658102E-25 + 4.8170000E+08 5.3655794E-25 + 4.8180000E+08 5.3653482E-25 + 4.8190000E+08 5.3651170E-25 + 4.8200000E+08 5.3648857E-25 + 4.8210000E+08 5.3646545E-25 + 4.8220000E+08 5.3644233E-25 + 4.8230000E+08 5.3641925E-25 + 4.8240000E+08 5.3639613E-25 + 4.8250000E+08 5.3637301E-25 + 4.8260000E+08 5.3634988E-25 + 4.8270000E+08 5.3632676E-25 + 4.8280000E+08 5.3630368E-25 + 4.8290000E+08 5.3628056E-25 + 4.8300000E+08 5.3625744E-25 + 4.8310000E+08 5.3623431E-25 + 4.8320000E+08 5.3621119E-25 + 4.8330000E+08 5.3618807E-25 + 4.8340000E+08 5.3616499E-25 + 4.8350000E+08 5.3614187E-25 + 4.8360000E+08 5.3611875E-25 + 4.8370000E+08 5.3609562E-25 + 4.8380000E+08 5.3607250E-25 + 4.8390000E+08 5.3604938E-25 + 4.8400000E+08 5.3602630E-25 + 4.8410000E+08 5.3600318E-25 + 4.8420000E+08 5.3598005E-25 + 4.8430000E+08 5.3595693E-25 + 4.8440000E+08 5.3593381E-25 + 4.8450000E+08 5.3591073E-25 + 4.8460000E+08 5.3588761E-25 + 4.8470000E+08 5.3586449E-25 + 4.8480000E+08 5.3584136E-25 + 4.8490000E+08 5.3581824E-25 + 4.8500000E+08 5.3579512E-25 + 4.8510000E+08 5.3577204E-25 + 4.8520000E+08 5.3574892E-25 + 4.8530000E+08 5.3572579E-25 + 4.8540000E+08 5.3570267E-25 + 4.8550000E+08 5.3567955E-25 + 4.8560000E+08 5.3565647E-25 + 4.8570000E+08 5.3563335E-25 + 4.8580000E+08 5.3561023E-25 + 4.8590000E+08 5.3558710E-25 + 4.8600000E+08 5.3556398E-25 + 4.8610000E+08 5.3554086E-25 + 4.8620000E+08 5.3551778E-25 + 4.8630000E+08 5.3549466E-25 + 4.8640000E+08 5.3547153E-25 + 4.8650000E+08 5.3544841E-25 + 4.8660000E+08 5.3542529E-25 + 4.8670000E+08 5.3540216E-25 + 4.8680000E+08 5.3537909E-25 + 4.8690000E+08 5.3535597E-25 + 4.8700000E+08 5.3533284E-25 + 4.8710000E+08 5.3530972E-25 + 4.8720000E+08 5.3528660E-25 + 4.8730000E+08 5.3526352E-25 + 4.8740000E+08 5.3524040E-25 + 4.8750000E+08 5.3521728E-25 + 4.8760000E+08 5.3519415E-25 + 4.8770000E+08 5.3517103E-25 + 4.8780000E+08 5.3514795E-25 + 4.8790000E+08 5.3512483E-25 + 4.8800000E+08 5.3510171E-25 + 4.8810000E+08 5.3507858E-25 + 4.8820000E+08 5.3505546E-25 + 4.8830000E+08 5.3503239E-25 + 4.8840000E+08 5.3500926E-25 + 4.8850000E+08 5.3498614E-25 + 4.8860000E+08 5.3496302E-25 + 4.8870000E+08 5.3493989E-25 + 4.8880000E+08 5.3491677E-25 + 4.8890000E+08 5.3489369E-25 + 4.8900000E+08 5.3487057E-25 + 4.8910000E+08 5.3484745E-25 + 4.8920000E+08 5.3482432E-25 + 4.8930000E+08 5.3480120E-25 + 4.8940000E+08 5.3477813E-25 + 4.8950000E+08 5.3475500E-25 + 4.8960000E+08 5.3473188E-25 + 4.8970000E+08 5.3470876E-25 + 4.8980000E+08 5.3468563E-25 + 4.8990000E+08 5.3466251E-25 + 4.9000000E+08 5.3463943E-25 + 4.9010000E+08 5.3461631E-25 + 4.9020000E+08 5.3459319E-25 + 4.9030000E+08 5.3457006E-25 + 4.9040000E+08 5.3454694E-25 + 4.9050000E+08 5.3452387E-25 + 4.9060000E+08 5.3450074E-25 + 4.9070000E+08 5.3447762E-25 + 4.9080000E+08 5.3445450E-25 + 4.9090000E+08 5.3443137E-25 + 4.9100000E+08 5.3440825E-25 + 4.9110000E+08 5.3438517E-25 + 4.9120000E+08 5.3436205E-25 + 4.9130000E+08 5.3433893E-25 + 4.9140000E+08 5.3431580E-25 + 4.9150000E+08 5.3429268E-25 + 4.9160000E+08 5.3426956E-25 + 4.9170000E+08 5.3424648E-25 + 4.9180000E+08 5.3422336E-25 + 4.9190000E+08 5.3420024E-25 + 4.9200000E+08 5.3417711E-25 + 4.9210000E+08 5.3415399E-25 + 4.9220000E+08 5.3413091E-25 + 4.9230000E+08 5.3410779E-25 + 4.9240000E+08 5.3408467E-25 + 4.9250000E+08 5.3406154E-25 + 4.9260000E+08 5.3403842E-25 + 4.9270000E+08 5.3401530E-25 + 4.9280000E+08 5.3399222E-25 + 4.9290000E+08 5.3396910E-25 + 4.9300000E+08 5.3394598E-25 + 4.9310000E+08 5.3392285E-25 + 4.9320000E+08 5.3389973E-25 + 4.9330000E+08 5.3387666E-25 + 4.9340000E+08 5.3385353E-25 + 4.9350000E+08 5.3383041E-25 + 4.9360000E+08 5.3380728E-25 + 4.9370000E+08 5.3378416E-25 + 4.9380000E+08 5.3376104E-25 + 4.9390000E+08 5.3373796E-25 + 4.9400000E+08 5.3371484E-25 + 4.9410000E+08 5.3369172E-25 + 4.9420000E+08 5.3366859E-25 + 4.9430000E+08 5.3364547E-25 + 4.9440000E+08 5.3362240E-25 + 4.9450000E+08 5.3359927E-25 + 4.9460000E+08 5.3357615E-25 + 4.9470000E+08 5.3355303E-25 + 4.9480000E+08 5.3352990E-25 + 4.9490000E+08 5.3350683E-25 + 4.9500000E+08 5.3348370E-25 + 4.9510000E+08 5.3346058E-25 + 4.9520000E+08 5.3343746E-25 + 4.9530000E+08 5.3341433E-25 + 4.9540000E+08 5.3339121E-25 + 4.9550000E+08 5.3336814E-25 + 4.9560000E+08 5.3334501E-25 + 4.9570000E+08 5.3332189E-25 + 4.9580000E+08 5.3329877E-25 + 4.9590000E+08 5.3327564E-25 + 4.9600000E+08 5.3325257E-25 + 4.9610000E+08 5.3322944E-25 + 4.9620000E+08 5.3320632E-25 + 4.9630000E+08 5.3318320E-25 + 4.9640000E+08 5.3316007E-25 + 4.9650000E+08 5.3313695E-25 + 4.9660000E+08 5.3311388E-25 + 4.9670000E+08 5.3309075E-25 + 4.9680000E+08 5.3306763E-25 + 4.9690000E+08 5.3304451E-25 + 4.9700000E+08 5.3302138E-25 + 4.9710000E+08 5.3299831E-25 + 4.9720000E+08 5.3297518E-25 + 4.9730000E+08 5.3295206E-25 + 4.9740000E+08 5.3292894E-25 + 4.9750000E+08 5.3290581E-25 + 4.9760000E+08 5.3288269E-25 + 4.9770000E+08 5.3285962E-25 + 4.9780000E+08 5.3283649E-25 + 4.9790000E+08 5.3281337E-25 + 4.9800000E+08 5.3279025E-25 + 4.9810000E+08 5.3276712E-25 + 4.9820000E+08 5.3274400E-25 + 4.9830000E+08 5.3272092E-25 + 4.9840000E+08 5.3269780E-25 + 4.9850000E+08 5.3267468E-25 + 4.9860000E+08 5.3265155E-25 + 4.9870000E+08 5.3262843E-25 + 4.9880000E+08 5.3260536E-25 + 4.9890000E+08 5.3258223E-25 + 4.9900000E+08 5.3255911E-25 + 4.9910000E+08 5.3253599E-25 + 4.9920000E+08 5.3251286E-25 + 4.9930000E+08 5.3248974E-25 + 4.9940000E+08 5.3246667E-25 + 4.9950000E+08 5.3244354E-25 + 4.9960000E+08 5.3242042E-25 + 4.9970000E+08 5.3239729E-25 + 4.9980000E+08 5.3237417E-25 + 4.9990000E+08 5.3235110E-25 + 5.0000000E+08 5.3232797E-25 + 5.0010000E+08 5.3230485E-25 + 5.0020000E+08 5.3228173E-25 + 5.0030000E+08 5.3225860E-25 + 5.0040000E+08 5.3223548E-25 + 5.0050000E+08 5.3221241E-25 + 5.0060000E+08 5.3218928E-25 + 5.0070000E+08 5.3216616E-25 + 5.0080000E+08 5.3214303E-25 + 5.0090000E+08 5.3211991E-25 + 5.0100000E+08 5.3209679E-25 + 5.0110000E+08 5.3207371E-25 + 5.0120000E+08 5.3205059E-25 + 5.0130000E+08 5.3202747E-25 + 5.0140000E+08 5.3200434E-25 + 5.0150000E+08 5.3198127E-25 + 5.0160000E+08 5.3195815E-25 + 5.0170000E+08 5.3193502E-25 + 5.0180000E+08 5.3191190E-25 + 5.0190000E+08 5.3188878E-25 + 5.0200000E+08 5.3186565E-25 + 5.0210000E+08 5.3184258E-25 + 5.0220000E+08 5.3181945E-25 + 5.0230000E+08 5.3179633E-25 + 5.0240000E+08 5.3177321E-25 + 5.0250000E+08 5.3175008E-25 + 5.0260000E+08 5.3172701E-25 + 5.0270000E+08 5.3170389E-25 + 5.0280000E+08 5.3168076E-25 + 5.0290000E+08 5.3165764E-25 + 5.0300000E+08 5.3163452E-25 + 5.0310000E+08 5.3161139E-25 + 5.0320000E+08 5.3158832E-25 + 5.0330000E+08 5.3156519E-25 + 5.0340000E+08 5.3154207E-25 + 5.0350000E+08 5.3151895E-25 + 5.0360000E+08 5.3149582E-25 + 5.0370000E+08 5.3147275E-25 + 5.0380000E+08 5.3144963E-25 + 5.0390000E+08 5.3142650E-25 + 5.0400000E+08 5.3140338E-25 + 5.0410000E+08 5.3138026E-25 + 5.0420000E+08 5.3135713E-25 + 5.0430000E+08 5.3133406E-25 + 5.0440000E+08 5.3131093E-25 + 5.0450000E+08 5.3128781E-25 + 5.0460000E+08 5.3126469E-25 + 5.0470000E+08 5.3124156E-25 + 5.0480000E+08 5.3121844E-25 + 5.0490000E+08 5.3119537E-25 + 5.0500000E+08 5.3117224E-25 + 5.0510000E+08 5.3114912E-25 + 5.0520000E+08 5.3112600E-25 + 5.0530000E+08 5.3110287E-25 + 5.0540000E+08 5.3107980E-25 + 5.0550000E+08 5.3105667E-25 + 5.0560000E+08 5.3103355E-25 + 5.0570000E+08 5.3101043E-25 + 5.0580000E+08 5.3098730E-25 + 5.0590000E+08 5.3096418E-25 + 5.0600000E+08 5.3094111E-25 + 5.0610000E+08 5.3091798E-25 + 5.0620000E+08 5.3089486E-25 + 5.0630000E+08 5.3087174E-25 + 5.0640000E+08 5.3084861E-25 + 5.0650000E+08 5.3082554E-25 + 5.0660000E+08 5.3080242E-25 + 5.0670000E+08 5.3077929E-25 + 5.0680000E+08 5.3075617E-25 + 5.0690000E+08 5.3073304E-25 + 5.0700000E+08 5.3070992E-25 + 5.0710000E+08 5.3068685E-25 + 5.0720000E+08 5.3066372E-25 + 5.0730000E+08 5.3064060E-25 + 5.0740000E+08 5.3061748E-25 + 5.0750000E+08 5.3059435E-25 + 5.0760000E+08 5.3057128E-25 + 5.0770000E+08 5.3054816E-25 + 5.0780000E+08 5.3052503E-25 + 5.0790000E+08 5.3050191E-25 + 5.0800000E+08 5.3047878E-25 + 5.0810000E+08 5.3045566E-25 + 5.0820000E+08 5.3043259E-25 + 5.0830000E+08 5.3040946E-25 + 5.0840000E+08 5.3038634E-25 + 5.0850000E+08 5.3036322E-25 + 5.0860000E+08 5.3034014E-25 + 5.0870000E+08 5.3031702E-25 + 5.0880000E+08 5.3029390E-25 + 5.0890000E+08 5.3027077E-25 + 5.0900000E+08 5.3024765E-25 + 5.0910000E+08 5.3022453E-25 + 5.0920000E+08 5.3020145E-25 + 5.0930000E+08 5.3017833E-25 + 5.0940000E+08 5.3015520E-25 + 5.0950000E+08 5.3013208E-25 + 5.0960000E+08 5.3010896E-25 + 5.0970000E+08 5.3008583E-25 + 5.0980000E+08 5.3006276E-25 + 5.0990000E+08 5.3003964E-25 + 5.1000000E+08 5.3001651E-25 + 5.1010000E+08 5.2999339E-25 + 5.1020000E+08 5.2997027E-25 + 5.1030000E+08 5.2994719E-25 + 5.1040000E+08 5.2992407E-25 + 5.1050000E+08 5.2990094E-25 + 5.1060000E+08 5.2987782E-25 + 5.1070000E+08 5.2985470E-25 + 5.1080000E+08 5.2983157E-25 + 5.1090000E+08 5.2980850E-25 + 5.1100000E+08 5.2978538E-25 + 5.1110000E+08 5.2976225E-25 + 5.1120000E+08 5.2973913E-25 + 5.1130000E+08 5.2971601E-25 + 5.1140000E+08 5.2969293E-25 + 5.1150000E+08 5.2966981E-25 + 5.1160000E+08 5.2964668E-25 + 5.1170000E+08 5.2962356E-25 + 5.1180000E+08 5.2960044E-25 + 5.1190000E+08 5.2957731E-25 + 5.1200000E+08 5.2955424E-25 + 5.1210000E+08 5.2953112E-25 + 5.1220000E+08 5.2950799E-25 + 5.1230000E+08 5.2948487E-25 + 5.1240000E+08 5.2946175E-25 + 5.1250000E+08 5.2943862E-25 + 5.1260000E+08 5.2941555E-25 + 5.1270000E+08 5.2939242E-25 + 5.1280000E+08 5.2936930E-25 + 5.1290000E+08 5.2934618E-25 + 5.1300000E+08 5.2932305E-25 + 5.1310000E+08 5.2929998E-25 + 5.1320000E+08 5.2927686E-25 + 5.1330000E+08 5.2925373E-25 + 5.1340000E+08 5.2923061E-25 + 5.1350000E+08 5.2920749E-25 + 5.1360000E+08 5.2918436E-25 + 5.1370000E+08 5.2916129E-25 + 5.1380000E+08 5.2913817E-25 + 5.1390000E+08 5.2911504E-25 + 5.1400000E+08 5.2909192E-25 + 5.1410000E+08 5.2906879E-25 + 5.1420000E+08 5.2904572E-25 + 5.1430000E+08 5.2902260E-25 + 5.1440000E+08 5.2899947E-25 + 5.1450000E+08 5.2897635E-25 + 5.1460000E+08 5.2895323E-25 + 5.1470000E+08 5.2893010E-25 + 5.1480000E+08 5.2890703E-25 + 5.1490000E+08 5.2888391E-25 + 5.1500000E+08 5.2886078E-25 + 5.1510000E+08 5.2883766E-25 + 5.1520000E+08 5.2881453E-25 + 5.1530000E+08 5.2879141E-25 + 5.1540000E+08 5.2876834E-25 + 5.1550000E+08 5.2874521E-25 + 5.1560000E+08 5.2872209E-25 + 5.1570000E+08 5.2869897E-25 + 5.1580000E+08 5.2867589E-25 + 5.1590000E+08 5.2865277E-25 + 5.1600000E+08 5.2862965E-25 + 5.1610000E+08 5.2860652E-25 + 5.1620000E+08 5.2858340E-25 + 5.1630000E+08 5.2856028E-25 + 5.1640000E+08 5.2853720E-25 + 5.1650000E+08 5.2851408E-25 + 5.1660000E+08 5.2849095E-25 + 5.1670000E+08 5.2846783E-25 + 5.1680000E+08 5.2844471E-25 + 5.1690000E+08 5.2842163E-25 + 5.1700000E+08 5.2839851E-25 + 5.1710000E+08 5.2837539E-25 + 5.1720000E+08 5.2835226E-25 + 5.1730000E+08 5.2832914E-25 + 5.1740000E+08 5.2830602E-25 + 5.1750000E+08 5.2828294E-25 + 5.1760000E+08 5.2825982E-25 + 5.1770000E+08 5.2823669E-25 + 5.1780000E+08 5.2821357E-25 + 5.1790000E+08 5.2819045E-25 + 5.1800000E+08 5.2816732E-25 + 5.1810000E+08 5.2814425E-25 + 5.1820000E+08 5.2812113E-25 + 5.1830000E+08 5.2809800E-25 + 5.1840000E+08 5.2807488E-25 + 5.1850000E+08 5.2805176E-25 + 5.1860000E+08 5.2802868E-25 + 5.1870000E+08 5.2800556E-25 + 5.1880000E+08 5.2798243E-25 + 5.1890000E+08 5.2795931E-25 + 5.1900000E+08 5.2793619E-25 + 5.1910000E+08 5.2791311E-25 + 5.1920000E+08 5.2788999E-25 + 5.1930000E+08 5.2786687E-25 + 5.1940000E+08 5.2784374E-25 + 5.1950000E+08 5.2782062E-25 + 5.1960000E+08 5.2779750E-25 + 5.1970000E+08 5.2777442E-25 + 5.1980000E+08 5.2775130E-25 + 5.1990000E+08 5.2772817E-25 + 5.2000000E+08 5.2770505E-25 + 5.2010000E+08 5.2768193E-25 + 5.2020000E+08 5.2765880E-25 + 5.2030000E+08 5.2763573E-25 + 5.2040000E+08 5.2761261E-25 + 5.2050000E+08 5.2758948E-25 + 5.2060000E+08 5.2756636E-25 + 5.2070000E+08 5.2754324E-25 + 5.2080000E+08 5.2752016E-25 + 5.2090000E+08 5.2749704E-25 + 5.2100000E+08 5.2747392E-25 + 5.2110000E+08 5.2745079E-25 + 5.2120000E+08 5.2742767E-25 + 5.2130000E+08 5.2740454E-25 + 5.2140000E+08 5.2738147E-25 + 5.2150000E+08 5.2735835E-25 + 5.2160000E+08 5.2733522E-25 + 5.2170000E+08 5.2731210E-25 + 5.2180000E+08 5.2728898E-25 + 5.2190000E+08 5.2726585E-25 + 5.2200000E+08 5.2724278E-25 + 5.2210000E+08 5.2721966E-25 + 5.2220000E+08 5.2719653E-25 + 5.2230000E+08 5.2717341E-25 + 5.2240000E+08 5.2715033E-25 + 5.2250000E+08 5.2712721E-25 + 5.2260000E+08 5.2710409E-25 + 5.2270000E+08 5.2708096E-25 + 5.2280000E+08 5.2705784E-25 + 5.2290000E+08 5.2703472E-25 + 5.2300000E+08 5.2701164E-25 + 5.2310000E+08 5.2698852E-25 + 5.2320000E+08 5.2696540E-25 + 5.2330000E+08 5.2694227E-25 + 5.2340000E+08 5.2691915E-25 + 5.2350000E+08 5.2689607E-25 + 5.2360000E+08 5.2687295E-25 + 5.2370000E+08 5.2684983E-25 + 5.2380000E+08 5.2682670E-25 + 5.2390000E+08 5.2680358E-25 + 5.2400000E+08 5.2678046E-25 + 5.2410000E+08 5.2675738E-25 + 5.2420000E+08 5.2673426E-25 + 5.2430000E+08 5.2671114E-25 + 5.2440000E+08 5.2668801E-25 + 5.2450000E+08 5.2666489E-25 + 5.2460000E+08 5.2664181E-25 + 5.2470000E+08 5.2661869E-25 + 5.2480000E+08 5.2659557E-25 + 5.2490000E+08 5.2657244E-25 + 5.2500000E+08 5.2654932E-25 + 5.2510000E+08 5.2652620E-25 + 5.2520000E+08 5.2650312E-25 + 5.2530000E+08 5.2648000E-25 + 5.2540000E+08 5.2645688E-25 + 5.2550000E+08 5.2643375E-25 + 5.2560000E+08 5.2641063E-25 + 5.2570000E+08 5.2638755E-25 + 5.2580000E+08 5.2636443E-25 + 5.2590000E+08 5.2634131E-25 + 5.2600000E+08 5.2631818E-25 + 5.2610000E+08 5.2629506E-25 + 5.2620000E+08 5.2627194E-25 + 5.2630000E+08 5.2624886E-25 + 5.2640000E+08 5.2622574E-25 + 5.2650000E+08 5.2620262E-25 + 5.2660000E+08 5.2617949E-25 + 5.2670000E+08 5.2615637E-25 + 5.2680000E+08 5.2613325E-25 + 5.2690000E+08 5.2611017E-25 + 5.2700000E+08 5.2608705E-25 + 5.2710000E+08 5.2606392E-25 + 5.2720000E+08 5.2604080E-25 + 5.2730000E+08 5.2601768E-25 + 5.2740000E+08 5.2599460E-25 + 5.2750000E+08 5.2597148E-25 + 5.2760000E+08 5.2594836E-25 + 5.2770000E+08 5.2592523E-25 + 5.2780000E+08 5.2590211E-25 + 5.2790000E+08 5.2587899E-25 + 5.2800000E+08 5.2585591E-25 + 5.2810000E+08 5.2583279E-25 + 5.2820000E+08 5.2580967E-25 + 5.2830000E+08 5.2578654E-25 + 5.2840000E+08 5.2576342E-25 + 5.2850000E+08 5.2574029E-25 + 5.2860000E+08 5.2571722E-25 + 5.2870000E+08 5.2569410E-25 + 5.2880000E+08 5.2567097E-25 + 5.2890000E+08 5.2564785E-25 + 5.2900000E+08 5.2562473E-25 + 5.2910000E+08 5.2560165E-25 + 5.2920000E+08 5.2557853E-25 + 5.2930000E+08 5.2555541E-25 + 5.2940000E+08 5.2553228E-25 + 5.2950000E+08 5.2550916E-25 + 5.2960000E+08 5.2548608E-25 + 5.2970000E+08 5.2546296E-25 + 5.2980000E+08 5.2543984E-25 + 5.2990000E+08 5.2541671E-25 + 5.3000000E+08 5.2539359E-25 + 5.3010000E+08 5.2537052E-25 + 5.3020000E+08 5.2534739E-25 + 5.3030000E+08 5.2532427E-25 + 5.3040000E+08 5.2530115E-25 + 5.3050000E+08 5.2527802E-25 + 5.3060000E+08 5.2525495E-25 + 5.3070000E+08 5.2523182E-25 + 5.3080000E+08 5.2520870E-25 + 5.3090000E+08 5.2518558E-25 + 5.3100000E+08 5.2516245E-25 + 5.3110000E+08 5.2513933E-25 + 5.3120000E+08 5.2511626E-25 + 5.3130000E+08 5.2509313E-25 + 5.3140000E+08 5.2507001E-25 + 5.3150000E+08 5.2504689E-25 + 5.3160000E+08 5.2502376E-25 + 5.3170000E+08 5.2500064E-25 + 5.3180000E+08 5.2497756E-25 + 5.3190000E+08 5.2495444E-25 + 5.3200000E+08 5.2493132E-25 + 5.3210000E+08 5.2490819E-25 + 5.3220000E+08 5.2488507E-25 + 5.3230000E+08 5.2486200E-25 + 5.3240000E+08 5.2483887E-25 + 5.3250000E+08 5.2481575E-25 + 5.3260000E+08 5.2479263E-25 + 5.3270000E+08 5.2476950E-25 + 5.3280000E+08 5.2474638E-25 + 5.3290000E+08 5.2472330E-25 + 5.3300000E+08 5.2470018E-25 + 5.3310000E+08 5.2467706E-25 + 5.3320000E+08 5.2465393E-25 + 5.3330000E+08 5.2463081E-25 + 5.3340000E+08 5.2460769E-25 + 5.3350000E+08 5.2458461E-25 + 5.3360000E+08 5.2456149E-25 + 5.3370000E+08 5.2453837E-25 + 5.3380000E+08 5.2451524E-25 + 5.3390000E+08 5.2449212E-25 + 5.3400000E+08 5.2446905E-25 + 5.3410000E+08 5.2444592E-25 + 5.3420000E+08 5.2442280E-25 + 5.3430000E+08 5.2439967E-25 + 5.3440000E+08 5.2437655E-25 + 5.3450000E+08 5.2435343E-25 + 5.3460000E+08 5.2433035E-25 + 5.3470000E+08 5.2430723E-25 + 5.3480000E+08 5.2428411E-25 + 5.3490000E+08 5.2426098E-25 + 5.3500000E+08 5.2423786E-25 + 5.3510000E+08 5.2421479E-25 + 5.3520000E+08 5.2419166E-25 + 5.3530000E+08 5.2416854E-25 + 5.3540000E+08 5.2414542E-25 + 5.3550000E+08 5.2412229E-25 + 5.3560000E+08 5.2409917E-25 + 5.3570000E+08 5.2407609E-25 + 5.3580000E+08 5.2405297E-25 + 5.3590000E+08 5.2402985E-25 + 5.3600000E+08 5.2400672E-25 + 5.3610000E+08 5.2398360E-25 + 5.3620000E+08 5.2396053E-25 + 5.3630000E+08 5.2393740E-25 + 5.3640000E+08 5.2391428E-25 + 5.3650000E+08 5.2389116E-25 + 5.3660000E+08 5.2386803E-25 + 5.3670000E+08 5.2384496E-25 + 5.3680000E+08 5.2382183E-25 + 5.3689997E+08 5.2379871E-25 + 5.3700000E+08 5.2377559E-25 + 5.3709997E+08 5.2375246E-25 + 5.3720000E+08 5.2372939E-25 + 5.3730003E+08 5.2370622E-25 + 5.3740000E+08 5.2368314E-25 + 5.3749997E+08 5.2366002E-25 + 5.3760000E+08 5.2363690E-25 + 5.3770003E+08 5.2361377E-25 + 5.3780000E+08 5.2359070E-25 + 5.3789997E+08 5.2356757E-25 + 5.3800000E+08 5.2354445E-25 + 5.3810003E+08 5.2352133E-25 + 5.3820000E+08 5.2349820E-25 + 5.3829997E+08 5.2347508E-25 + 5.3840000E+08 5.2345201E-25 + 5.3850003E+08 5.2342888E-25 + 5.3860000E+08 5.2340576E-25 + 5.3869997E+08 5.2338264E-25 + 5.3880000E+08 5.2335951E-25 + 5.3890003E+08 5.2333639E-25 + 5.3900000E+08 5.2331331E-25 + 5.3909997E+08 5.2329019E-25 + 5.3920000E+08 5.2326707E-25 + 5.3930003E+08 5.2324394E-25 + 5.3940000E+08 5.2322082E-25 + 5.3949997E+08 5.2319775E-25 + 5.3960000E+08 5.2317462E-25 + 5.3970003E+08 5.2315150E-25 + 5.3980000E+08 5.2312838E-25 + 5.3989997E+08 5.2310530E-25 + 5.4000000E+08 5.2308213E-25 + 5.4010003E+08 5.2305901E-25 + 5.4020000E+08 5.2303593E-25 + 5.4029997E+08 5.2301281E-25 + 5.4040000E+08 5.2298968E-25 + 5.4050003E+08 5.2296656E-25 + 5.4060000E+08 5.2294349E-25 + 5.4069997E+08 5.2292036E-25 + 5.4080000E+08 5.2289724E-25 + 5.4090003E+08 5.2287412E-25 + 5.4100000E+08 5.2285099E-25 + 5.4109997E+08 5.2282792E-25 + 5.4120000E+08 5.2280480E-25 + 5.4130003E+08 5.2278167E-25 + 5.4140000E+08 5.2275855E-25 + 5.4149997E+08 5.2273542E-25 + 5.4160000E+08 5.2271230E-25 + 5.4170003E+08 5.2268923E-25 + 5.4180000E+08 5.2266610E-25 + 5.4189997E+08 5.2264298E-25 + 5.4200000E+08 5.2261986E-25 + 5.4210003E+08 5.2259673E-25 + 5.4220000E+08 5.2257361E-25 + 5.4229997E+08 5.2255054E-25 + 5.4240000E+08 5.2252741E-25 + 5.4250003E+08 5.2250429E-25 + 5.4260000E+08 5.2248117E-25 + 5.4269997E+08 5.2245809E-25 + 5.4280000E+08 5.2243497E-25 + 5.4290003E+08 5.2241184E-25 + 5.4300000E+08 5.2238872E-25 + 5.4309997E+08 5.2236560E-25 + 5.4320000E+08 5.2234247E-25 + 5.4330003E+08 5.2231935E-25 + 5.4340000E+08 5.2229628E-25 + 5.4349997E+08 5.2227315E-25 + 5.4360000E+08 5.2225003E-25 + 5.4370003E+08 5.2222691E-25 + 5.4380000E+08 5.2220383E-25 + 5.4389997E+08 5.2218071E-25 + 5.4400000E+08 5.2215758E-25 + 5.4410003E+08 5.2213446E-25 + 5.4420000E+08 5.2211134E-25 + 5.4429997E+08 5.2208821E-25 + 5.4440000E+08 5.2206514E-25 + 5.4450003E+08 5.2204202E-25 + 5.4460000E+08 5.2201889E-25 + 5.4469997E+08 5.2199577E-25 + 5.4480000E+08 5.2197265E-25 + 5.4490003E+08 5.2194952E-25 + 5.4500000E+08 5.2192645E-25 + 5.4509997E+08 5.2190332E-25 + 5.4520000E+08 5.2188020E-25 + 5.4530003E+08 5.2185708E-25 + 5.4540000E+08 5.2183395E-25 + 5.4549997E+08 5.2181088E-25 + 5.4560000E+08 5.2178776E-25 + 5.4570003E+08 5.2176463E-25 + 5.4580000E+08 5.2174151E-25 + 5.4589997E+08 5.2171839E-25 + 5.4600000E+08 5.2169526E-25 + 5.4610003E+08 5.2167214E-25 + 5.4620000E+08 5.2164906E-25 + 5.4629997E+08 5.2162594E-25 + 5.4640000E+08 5.2160282E-25 + 5.4650003E+08 5.2157969E-25 + 5.4660000E+08 5.2155657E-25 + 5.4669997E+08 5.2153350E-25 + 5.4680000E+08 5.2151037E-25 + 5.4690003E+08 5.2148725E-25 + 5.4700000E+08 5.2146413E-25 + 5.4709997E+08 5.2144105E-25 + 5.4720000E+08 5.2141793E-25 + 5.4730003E+08 5.2139480E-25 + 5.4740000E+08 5.2137168E-25 + 5.4749997E+08 5.2134856E-25 + 5.4760000E+08 5.2132543E-25 + 5.4770003E+08 5.2130231E-25 + 5.4780000E+08 5.2127924E-25 + 5.4789997E+08 5.2125611E-25 + 5.4800000E+08 5.2123299E-25 + 5.4810003E+08 5.2120987E-25 + 5.4820000E+08 5.2118674E-25 + 5.4829997E+08 5.2116367E-25 + 5.4840000E+08 5.2114055E-25 + 5.4850003E+08 5.2111742E-25 + 5.4860000E+08 5.2109430E-25 + 5.4869997E+08 5.2107122E-25 + 5.4880000E+08 5.2104805E-25 + 5.4890003E+08 5.2102498E-25 + 5.4900000E+08 5.2100185E-25 + 5.4909997E+08 5.2097873E-25 + 5.4920000E+08 5.2095561E-25 + 5.4930003E+08 5.2093248E-25 + 5.4940000E+08 5.2090941E-25 + 5.4949997E+08 5.2088629E-25 + 5.4960000E+08 5.2086316E-25 + 5.4970003E+08 5.2084004E-25 + 5.4980000E+08 5.2081692E-25 + 5.4989997E+08 5.2079384E-25 + 5.5000000E+08 5.2077072E-25 + 5.5010003E+08 5.2074759E-25 + 5.5020000E+08 5.2072447E-25 + 5.5029997E+08 5.2070135E-25 + 5.5040000E+08 5.2067822E-25 + 5.5050003E+08 5.2065510E-25 + 5.5060000E+08 5.2063203E-25 + 5.5069997E+08 5.2060890E-25 + 5.5080000E+08 5.2058578E-25 + 5.5090003E+08 5.2056266E-25 + 5.5100000E+08 5.2053958E-25 + 5.5109997E+08 5.2051646E-25 + 5.5120000E+08 5.2049333E-25 + 5.5130003E+08 5.2047021E-25 + 5.5140000E+08 5.2044709E-25 + 5.5149997E+08 5.2042396E-25 + 5.5160000E+08 5.2040089E-25 + 5.5170003E+08 5.2037777E-25 + 5.5180000E+08 5.2035464E-25 + 5.5189997E+08 5.2033152E-25 + 5.5200000E+08 5.2030840E-25 + 5.5210003E+08 5.2028527E-25 + 5.5220000E+08 5.2026220E-25 + 5.5229997E+08 5.2023907E-25 + 5.5240000E+08 5.2021595E-25 + 5.5250003E+08 5.2019283E-25 + 5.5260000E+08 5.2016970E-25 + 5.5269997E+08 5.2014663E-25 + 5.5280000E+08 5.2012351E-25 + 5.5290003E+08 5.2010038E-25 + 5.5300000E+08 5.2007726E-25 + 5.5309997E+08 5.2005419E-25 + 5.5320000E+08 5.2003106E-25 + 5.5330003E+08 5.2000794E-25 + 5.5340000E+08 5.1998481E-25 + 5.5349997E+08 5.1996169E-25 + 5.5360000E+08 5.1993857E-25 + 5.5370003E+08 5.1991544E-25 + 5.5380000E+08 5.1989237E-25 + 5.5389997E+08 5.1986925E-25 + 5.5400000E+08 5.1984612E-25 + 5.5410003E+08 5.1982300E-25 + 5.5420000E+08 5.1979988E-25 + 5.5429997E+08 5.1977680E-25 + 5.5440000E+08 5.1975368E-25 + 5.5450003E+08 5.1973055E-25 + 5.5460000E+08 5.1970743E-25 + 5.5469997E+08 5.1968431E-25 + 5.5480000E+08 5.1966118E-25 + 5.5490003E+08 5.1963806E-25 + 5.5500000E+08 5.1961499E-25 + 5.5509997E+08 5.1959186E-25 + 5.5520000E+08 5.1956874E-25 + 5.5530003E+08 5.1954562E-25 + 5.5540000E+08 5.1952249E-25 + 5.5549997E+08 5.1949942E-25 + 5.5560000E+08 5.1947630E-25 + 5.5570003E+08 5.1945317E-25 + 5.5580000E+08 5.1943005E-25 + 5.5589997E+08 5.1940697E-25 + 5.5600000E+08 5.1938385E-25 + 5.5610003E+08 5.1936073E-25 + 5.5620000E+08 5.1933760E-25 + 5.5629997E+08 5.1931448E-25 + 5.5640000E+08 5.1929136E-25 + 5.5650003E+08 5.1926823E-25 + 5.5660000E+08 5.1924516E-25 + 5.5669997E+08 5.1922204E-25 + 5.5680000E+08 5.1919891E-25 + 5.5690003E+08 5.1917579E-25 + 5.5700000E+08 5.1915267E-25 + 5.5709997E+08 5.1912959E-25 + 5.5720000E+08 5.1910647E-25 + 5.5730003E+08 5.1908334E-25 + 5.5740000E+08 5.1906022E-25 + 5.5749997E+08 5.1903710E-25 + 5.5760000E+08 5.1901402E-25 + 5.5770003E+08 5.1899090E-25 + 5.5780000E+08 5.1896778E-25 + 5.5789997E+08 5.1894465E-25 + 5.5800000E+08 5.1892153E-25 + 5.5810003E+08 5.1889841E-25 + 5.5820000E+08 5.1887533E-25 + 5.5829997E+08 5.1885221E-25 + 5.5840000E+08 5.1882908E-25 + 5.5850003E+08 5.1880596E-25 + 5.5860000E+08 5.1878284E-25 + 5.5869997E+08 5.1875976E-25 + 5.5880000E+08 5.1873664E-25 + 5.5890003E+08 5.1871352E-25 + 5.5900000E+08 5.1869039E-25 + 5.5909997E+08 5.1866727E-25 + 5.5920000E+08 5.1864415E-25 + 5.5930003E+08 5.1862102E-25 + 5.5940000E+08 5.1859795E-25 + 5.5949997E+08 5.1857482E-25 + 5.5960000E+08 5.1855170E-25 + 5.5970003E+08 5.1852858E-25 + 5.5980000E+08 5.1850550E-25 + 5.5989997E+08 5.1848238E-25 + 5.6000000E+08 5.1845926E-25 + 5.6010003E+08 5.1843613E-25 + 5.6020000E+08 5.1841301E-25 + 5.6029997E+08 5.1838994E-25 + 5.6040000E+08 5.1836681E-25 + 5.6050003E+08 5.1834369E-25 + 5.6060000E+08 5.1832056E-25 + 5.6069997E+08 5.1829744E-25 + 5.6080000E+08 5.1827432E-25 + 5.6090003E+08 5.1825119E-25 + 5.6100000E+08 5.1822812E-25 + 5.6109997E+08 5.1820500E-25 + 5.6120000E+08 5.1818187E-25 + 5.6130003E+08 5.1815875E-25 + 5.6140000E+08 5.1813563E-25 + 5.6149997E+08 5.1811255E-25 + 5.6160000E+08 5.1808943E-25 + 5.6170003E+08 5.1806631E-25 + 5.6180000E+08 5.1804318E-25 + 5.6189997E+08 5.1802011E-25 + 5.6200000E+08 5.1799693E-25 + 5.6210003E+08 5.1797381E-25 + 5.6220000E+08 5.1795074E-25 + 5.6229997E+08 5.1792761E-25 + 5.6240000E+08 5.1790449E-25 + 5.6250003E+08 5.1788137E-25 + 5.6260000E+08 5.1785829E-25 + 5.6269997E+08 5.1783517E-25 + 5.6280000E+08 5.1781205E-25 + 5.6290003E+08 5.1778892E-25 + 5.6300000E+08 5.1776580E-25 + 5.6309997E+08 5.1774272E-25 + 5.6320000E+08 5.1771960E-25 + 5.6330003E+08 5.1769648E-25 + 5.6340000E+08 5.1767335E-25 + 5.6349997E+08 5.1765023E-25 + 5.6360000E+08 5.1762711E-25 + 5.6370003E+08 5.1760403E-25 + 5.6380000E+08 5.1758091E-25 + 5.6389997E+08 5.1755779E-25 + 5.6400000E+08 5.1753466E-25 + 5.6410003E+08 5.1751154E-25 + 5.6420000E+08 5.1748842E-25 + 5.6429997E+08 5.1746534E-25 + 5.6440000E+08 5.1744222E-25 + 5.6450003E+08 5.1741909E-25 + 5.6460000E+08 5.1739597E-25 + 5.6469997E+08 5.1737285E-25 + 5.6480000E+08 5.1734977E-25 + 5.6490003E+08 5.1732665E-25 + 5.6500000E+08 5.1730353E-25 + 5.6509997E+08 5.1728040E-25 + 5.6520000E+08 5.1725728E-25 + 5.6530003E+08 5.1723416E-25 + 5.6540000E+08 5.1721108E-25 + 5.6549997E+08 5.1718796E-25 + 5.6560000E+08 5.1716483E-25 + 5.6570003E+08 5.1714171E-25 + 5.6580000E+08 5.1711864E-25 + 5.6589997E+08 5.1709551E-25 + 5.6600000E+08 5.1707239E-25 + 5.6610003E+08 5.1704927E-25 + 5.6620000E+08 5.1702614E-25 + 5.6629997E+08 5.1700302E-25 + 5.6640000E+08 5.1697994E-25 + 5.6650003E+08 5.1695682E-25 + 5.6660000E+08 5.1693370E-25 + 5.6669997E+08 5.1691057E-25 + 5.6680000E+08 5.1688745E-25 + 5.6690003E+08 5.1686433E-25 + 5.6700000E+08 5.1684125E-25 + 5.6709997E+08 5.1681813E-25 + 5.6720000E+08 5.1679501E-25 + 5.6730003E+08 5.1677188E-25 + 5.6740000E+08 5.1674876E-25 + 5.6749997E+08 5.1672569E-25 + 5.6760000E+08 5.1670256E-25 + 5.6770003E+08 5.1667944E-25 + 5.6780000E+08 5.1665631E-25 + 5.6789997E+08 5.1663319E-25 + 5.6800000E+08 5.1661007E-25 + 5.6810003E+08 5.1658694E-25 + 5.6820000E+08 5.1656387E-25 + 5.6829997E+08 5.1654075E-25 + 5.6840000E+08 5.1651762E-25 + 5.6850003E+08 5.1649450E-25 + 5.6860000E+08 5.1647138E-25 + 5.6869997E+08 5.1644830E-25 + 5.6880000E+08 5.1642518E-25 + 5.6890003E+08 5.1640206E-25 + 5.6900000E+08 5.1637893E-25 + 5.6909997E+08 5.1635586E-25 + 5.6920000E+08 5.1633273E-25 + 5.6930003E+08 5.1630961E-25 + 5.6940000E+08 5.1628649E-25 + 5.6949997E+08 5.1626336E-25 + 5.6960000E+08 5.1624024E-25 + 5.6970003E+08 5.1621712E-25 + 5.6980000E+08 5.1619404E-25 + 5.6989997E+08 5.1617092E-25 + 5.7000000E+08 5.1614780E-25 + 5.7010003E+08 5.1612467E-25 + 5.7020000E+08 5.1610155E-25 + 5.7029997E+08 5.1607847E-25 + 5.7040000E+08 5.1605535E-25 + 5.7050003E+08 5.1603223E-25 + 5.7060000E+08 5.1600910E-25 + 5.7069997E+08 5.1598598E-25 + 5.7080000E+08 5.1596286E-25 + 5.7090003E+08 5.1593978E-25 + 5.7100000E+08 5.1591666E-25 + 5.7109997E+08 5.1589354E-25 + 5.7120000E+08 5.1587041E-25 + 5.7130003E+08 5.1584729E-25 + 5.7140000E+08 5.1582421E-25 + 5.7149997E+08 5.1580109E-25 + 5.7160000E+08 5.1577797E-25 + 5.7170003E+08 5.1575484E-25 + 5.7180000E+08 5.1573172E-25 + 5.7189997E+08 5.1570865E-25 + 5.7200000E+08 5.1568552E-25 + 5.7210003E+08 5.1566240E-25 + 5.7220000E+08 5.1563928E-25 + 5.7229997E+08 5.1561615E-25 + 5.7240000E+08 5.1559308E-25 + 5.7250003E+08 5.1556991E-25 + 5.7260000E+08 5.1554683E-25 + 5.7269997E+08 5.1552371E-25 + 5.7280000E+08 5.1550058E-25 + 5.7290003E+08 5.1547746E-25 + 5.7300000E+08 5.1545439E-25 + 5.7309997E+08 5.1543126E-25 + 5.7320000E+08 5.1540814E-25 + 5.7330003E+08 5.1538502E-25 + 5.7340000E+08 5.1536189E-25 + 5.7349997E+08 5.1533882E-25 + 5.7360000E+08 5.1531569E-25 + 5.7370003E+08 5.1529257E-25 + 5.7380000E+08 5.1526945E-25 + 5.7389997E+08 5.1524632E-25 + 5.7400000E+08 5.1522320E-25 + 5.7410003E+08 5.1520008E-25 + 5.7420000E+08 5.1517700E-25 + 5.7429997E+08 5.1515388E-25 + 5.7440000E+08 5.1513076E-25 + 5.7450003E+08 5.1510763E-25 + 5.7460000E+08 5.1508451E-25 + 5.7469997E+08 5.1506144E-25 + 5.7480000E+08 5.1503831E-25 + 5.7490003E+08 5.1501519E-25 + 5.7500000E+08 5.1499206E-25 + 5.7509997E+08 5.1496899E-25 + 5.7520000E+08 5.1494582E-25 + 5.7530003E+08 5.1492274E-25 + 5.7540000E+08 5.1489962E-25 + 5.7549997E+08 5.1487650E-25 + 5.7560000E+08 5.1485337E-25 + 5.7570003E+08 5.1483025E-25 + 5.7580000E+08 5.1480718E-25 + 5.7589997E+08 5.1478405E-25 + 5.7600000E+08 5.1476093E-25 + 5.7610003E+08 5.1473781E-25 + 5.7620000E+08 5.1471468E-25 + 5.7629997E+08 5.1469161E-25 + 5.7640000E+08 5.1466848E-25 + 5.7650003E+08 5.1464536E-25 + 5.7660000E+08 5.1462224E-25 + 5.7669997E+08 5.1459911E-25 + 5.7680000E+08 5.1457599E-25 + 5.7690003E+08 5.1455292E-25 + 5.7700000E+08 5.1452979E-25 + 5.7709997E+08 5.1450667E-25 + 5.7720000E+08 5.1448355E-25 + 5.7730003E+08 5.1446042E-25 + 5.7740000E+08 5.1443730E-25 + 5.7749997E+08 5.1441422E-25 + 5.7760000E+08 5.1439110E-25 + 5.7770003E+08 5.1436798E-25 + 5.7780000E+08 5.1434485E-25 + 5.7789997E+08 5.1432178E-25 + 5.7800000E+08 5.1429866E-25 + 5.7810003E+08 5.1427553E-25 + 5.7820000E+08 5.1425241E-25 + 5.7829997E+08 5.1422929E-25 + 5.7840000E+08 5.1420616E-25 + 5.7850003E+08 5.1418304E-25 + 5.7860000E+08 5.1415996E-25 + 5.7869997E+08 5.1413684E-25 + 5.7880000E+08 5.1411372E-25 + 5.7890003E+08 5.1409158E-25 + 5.7900000E+08 5.1407334E-25 + 5.7909997E+08 5.1405510E-25 + 5.7920000E+08 5.1403685E-25 + 5.7930003E+08 5.1401861E-25 + 5.7940000E+08 5.1400037E-25 + 5.7949997E+08 5.1398213E-25 + 5.7960000E+08 5.1396388E-25 + 5.7970003E+08 5.1394564E-25 + 5.7980000E+08 5.1392740E-25 + 5.7989997E+08 5.1390916E-25 + 5.8000000E+08 5.1389091E-25 + 5.8010003E+08 5.1387267E-25 + 5.8020000E+08 5.1385443E-25 + 5.8029997E+08 5.1383619E-25 + 5.8040000E+08 5.1381794E-25 + 5.8050003E+08 5.1379970E-25 + 5.8060000E+08 5.1378146E-25 + 5.8069997E+08 5.1376322E-25 + 5.8080000E+08 5.1374497E-25 + 5.8090003E+08 5.1372668E-25 + 5.8100000E+08 5.1370844E-25 + 5.8109997E+08 5.1369025E-25 + 5.8120000E+08 5.1367196E-25 + 5.8130003E+08 5.1365371E-25 + 5.8140000E+08 5.1363547E-25 + 5.8149997E+08 5.1361723E-25 + 5.8160000E+08 5.1359899E-25 + 5.8170003E+08 5.1358074E-25 + 5.8180000E+08 5.1356250E-25 + 5.8189997E+08 5.1354426E-25 + 5.8200000E+08 5.1352602E-25 + 5.8210003E+08 5.1350777E-25 + 5.8220000E+08 5.1348953E-25 + 5.8229997E+08 5.1347129E-25 + 5.8240000E+08 5.1345305E-25 + 5.8250003E+08 5.1343475E-25 + 5.8260000E+08 5.1341656E-25 + 5.8269997E+08 5.1339832E-25 + 5.8280000E+08 5.1338008E-25 + 5.8290003E+08 5.1336179E-25 + 5.8300000E+08 5.1334354E-25 + 5.8309997E+08 5.1332535E-25 + 5.8320000E+08 5.1330706E-25 + 5.8330003E+08 5.1328882E-25 + 5.8340000E+08 5.1327057E-25 + 5.8349997E+08 5.1325233E-25 + 5.8360000E+08 5.1323409E-25 + 5.8370003E+08 5.1321585E-25 + 5.8380000E+08 5.1319760E-25 + 5.8389997E+08 5.1317936E-25 + 5.8400000E+08 5.1316112E-25 + 5.8410003E+08 5.1314288E-25 + 5.8420000E+08 5.1312463E-25 + 5.8429997E+08 5.1310639E-25 + 5.8440000E+08 5.1308815E-25 + 5.8450003E+08 5.1306991E-25 + 5.8460000E+08 5.1305166E-25 + 5.8469997E+08 5.1303342E-25 + 5.8480000E+08 5.1301513E-25 + 5.8490003E+08 5.1299689E-25 + 5.8500000E+08 5.1297865E-25 + 5.8509997E+08 5.1296045E-25 + 5.8520000E+08 5.1294216E-25 + 5.8530003E+08 5.1292392E-25 + 5.8540000E+08 5.1290568E-25 + 5.8549997E+08 5.1288743E-25 + 5.8560000E+08 5.1286919E-25 + 5.8570003E+08 5.1285095E-25 + 5.8580000E+08 5.1283271E-25 + 5.8589997E+08 5.1281446E-25 + 5.8600000E+08 5.1279622E-25 + 5.8610003E+08 5.1277798E-25 + 5.8620000E+08 5.1275974E-25 + 5.8629997E+08 5.1274149E-25 + 5.8640000E+08 5.1272325E-25 + 5.8650003E+08 5.1270501E-25 + 5.8660000E+08 5.1268677E-25 + 5.8669997E+08 5.1266852E-25 + 5.8680000E+08 5.1265028E-25 + 5.8690003E+08 5.1263199E-25 + 5.8700000E+08 5.1261380E-25 + 5.8709997E+08 5.1259551E-25 + 5.8720000E+08 5.1257726E-25 + 5.8730003E+08 5.1255902E-25 + 5.8740000E+08 5.1254078E-25 + 5.8749997E+08 5.1252254E-25 + 5.8760000E+08 5.1250429E-25 + 5.8770003E+08 5.1248605E-25 + 5.8780000E+08 5.1246781E-25 + 5.8789997E+08 5.1244957E-25 + 5.8800000E+08 5.1243132E-25 + 5.8810003E+08 5.1241308E-25 + 5.8820000E+08 5.1239484E-25 + 5.8829997E+08 5.1237660E-25 + 5.8840000E+08 5.1235835E-25 + 5.8850003E+08 5.1234011E-25 + 5.8860000E+08 5.1232187E-25 + 5.8869997E+08 5.1230363E-25 + 5.8880000E+08 5.1228538E-25 + 5.8890003E+08 5.1226709E-25 + 5.8900000E+08 5.1224890E-25 + 5.8909997E+08 5.1223066E-25 + 5.8920000E+08 5.1221237E-25 + 5.8930003E+08 5.1219412E-25 + 5.8940000E+08 5.1217588E-25 + 5.8949997E+08 5.1215764E-25 + 5.8960000E+08 5.1213940E-25 + 5.8970003E+08 5.1212115E-25 + 5.8980000E+08 5.1210291E-25 + 5.8989997E+08 5.1208467E-25 + 5.9000000E+08 5.1206643E-25 + 5.9010003E+08 5.1204818E-25 + 5.9020000E+08 5.1202994E-25 + 5.9029997E+08 5.1201170E-25 + 5.9040000E+08 5.1199346E-25 + 5.9050003E+08 5.1197521E-25 + 5.9060000E+08 5.1195697E-25 + 5.9069997E+08 5.1193873E-25 + 5.9080000E+08 5.1192049E-25 + 5.9090003E+08 5.1190224E-25 + 5.9100000E+08 5.1188400E-25 + 5.9109997E+08 5.1186576E-25 + 5.9120000E+08 5.1184747E-25 + 5.9130003E+08 5.1182923E-25 + 5.9140000E+08 5.1181098E-25 + 5.9149997E+08 5.1179274E-25 + 5.9160000E+08 5.1177450E-25 + 5.9170003E+08 5.1175626E-25 + 5.9180000E+08 5.1173801E-25 + 5.9189997E+08 5.1171977E-25 + 5.9200000E+08 5.1170153E-25 + 5.9210003E+08 5.1168329E-25 + 5.9220000E+08 5.1166504E-25 + 5.9229997E+08 5.1164680E-25 + 5.9240000E+08 5.1162856E-25 + 5.9250003E+08 5.1161032E-25 + 5.9260000E+08 5.1159207E-25 + 5.9269997E+08 5.1157383E-25 + 5.9280000E+08 5.1155559E-25 + 5.9290003E+08 5.1153735E-25 + 5.9300000E+08 5.1151910E-25 + 5.9309997E+08 5.1150086E-25 + 5.9320000E+08 5.1148262E-25 + 5.9330003E+08 5.1146433E-25 + 5.9340000E+08 5.1144609E-25 + 5.9349997E+08 5.1142784E-25 + 5.9360000E+08 5.1140960E-25 + 5.9370003E+08 5.1139136E-25 + 5.9380000E+08 5.1137312E-25 + 5.9389997E+08 5.1135487E-25 + 5.9400000E+08 5.1133663E-25 + 5.9410003E+08 5.1131839E-25 + 5.9420000E+08 5.1130015E-25 + 5.9429997E+08 5.1128190E-25 + 5.9440000E+08 5.1126366E-25 + 5.9450003E+08 5.1124542E-25 + 5.9460000E+08 5.1122718E-25 + 5.9469997E+08 5.1120893E-25 + 5.9480000E+08 5.1119069E-25 + 5.9490003E+08 5.1117245E-25 + 5.9500000E+08 5.1115421E-25 + 5.9509997E+08 5.1113596E-25 + 5.9520000E+08 5.1111772E-25 + 5.9530003E+08 5.1109943E-25 + 5.9540000E+08 5.1108119E-25 + 5.9549997E+08 5.1106300E-25 + 5.9560000E+08 5.1104470E-25 + 5.9570003E+08 5.1102646E-25 + 5.9580000E+08 5.1100822E-25 + 5.9589997E+08 5.1098998E-25 + 5.9600000E+08 5.1097173E-25 + 5.9610003E+08 5.1095349E-25 + 5.9620000E+08 5.1093525E-25 + 5.9629997E+08 5.1091701E-25 + 5.9640000E+08 5.1089876E-25 + 5.9650003E+08 5.1088052E-25 + 5.9660000E+08 5.1086228E-25 + 5.9669997E+08 5.1084404E-25 + 5.9680000E+08 5.1082579E-25 + 5.9690003E+08 5.1080755E-25 + 5.9700000E+08 5.1078931E-25 + 5.9709997E+08 5.1077107E-25 + 5.9720000E+08 5.1075282E-25 + 5.9730003E+08 5.1073453E-25 + 5.9740000E+08 5.1071629E-25 + 5.9749997E+08 5.1069810E-25 + 5.9760000E+08 5.1067981E-25 + 5.9770003E+08 5.1066156E-25 + 5.9780000E+08 5.1064332E-25 + 5.9789997E+08 5.1062508E-25 + 5.9800000E+08 5.1060684E-25 + 5.9810003E+08 5.1058859E-25 + 5.9820000E+08 5.1057035E-25 + 5.9829997E+08 5.1055211E-25 + 5.9840000E+08 5.1053387E-25 + 5.9850003E+08 5.1051562E-25 + 5.9860000E+08 5.1049738E-25 + 5.9869997E+08 5.1047914E-25 + 5.9880000E+08 5.1046090E-25 + 5.9890003E+08 5.1044265E-25 + 5.9900000E+08 5.1042441E-25 + 5.9909997E+08 5.1040617E-25 + 5.9920000E+08 5.1038793E-25 + 5.9930003E+08 5.1036964E-25 + 5.9940000E+08 5.1035139E-25 + 5.9949997E+08 5.1033320E-25 + 5.9960000E+08 5.1031491E-25 + 5.9970003E+08 5.1029667E-25 + 5.9980000E+08 5.1027842E-25 + 5.9989997E+08 5.1026018E-25 + 6.0000000E+08 5.1024194E-25 + 6.0010003E+08 5.1022370E-25 + 6.0020000E+08 5.1020545E-25 + 6.0029997E+08 5.1018721E-25 + 6.0040000E+08 5.1016897E-25 + 6.0050003E+08 5.1015073E-25 + 6.0060000E+08 5.1013248E-25 + 6.0069997E+08 5.1011424E-25 + 6.0080000E+08 5.1009600E-25 + 6.0090003E+08 5.1007776E-25 + 6.0100000E+08 5.1005951E-25 + 6.0109997E+08 5.1004127E-25 + 6.0120000E+08 5.1002303E-25 + 6.0130003E+08 5.1000474E-25 + 6.0140000E+08 5.0998655E-25 + 6.0149997E+08 5.0996830E-25 + 6.0160000E+08 5.0995001E-25 + 6.0170003E+08 5.0993177E-25 + 6.0180000E+08 5.0991353E-25 + 6.0189997E+08 5.0989528E-25 + 6.0200000E+08 5.0987704E-25 + 6.0210003E+08 5.0985880E-25 + 6.0220000E+08 5.0984056E-25 + 6.0229997E+08 5.0982231E-25 + 6.0240000E+08 5.0980407E-25 + 6.0250003E+08 5.0978583E-25 + 6.0260000E+08 5.0976759E-25 + 6.0269997E+08 5.0974934E-25 + 6.0280000E+08 5.0973110E-25 + 6.0290003E+08 5.0971286E-25 + 6.0300000E+08 5.0969462E-25 + 6.0309997E+08 5.0967637E-25 + 6.0320000E+08 5.0965813E-25 + 6.0330003E+08 5.0963984E-25 + 6.0340000E+08 5.0962165E-25 + 6.0349997E+08 5.0960341E-25 + 6.0360000E+08 5.0958511E-25 + 6.0370003E+08 5.0956687E-25 + 6.0380000E+08 5.0954863E-25 + 6.0389997E+08 5.0953039E-25 + 6.0400000E+08 5.0951214E-25 + 6.0410003E+08 5.0949390E-25 + 6.0420000E+08 5.0947566E-25 + 6.0429997E+08 5.0945742E-25 + 6.0440000E+08 5.0943917E-25 + 6.0450003E+08 5.0942093E-25 + 6.0460000E+08 5.0940269E-25 + 6.0469997E+08 5.0938445E-25 + 6.0480000E+08 5.0936620E-25 + 6.0490003E+08 5.0934796E-25 + 6.0500000E+08 5.0932972E-25 + 6.0509997E+08 5.0931148E-25 + 6.0520000E+08 5.0929323E-25 + 6.0530003E+08 5.0927499E-25 + 6.0540000E+08 5.0925675E-25 + 6.0549997E+08 5.0923851E-25 + 6.0560000E+08 5.0922022E-25 + 6.0570003E+08 5.0920197E-25 + 6.0580000E+08 5.0918373E-25 + 6.0589997E+08 5.0916549E-25 + 6.0600000E+08 5.0914725E-25 + 6.0610003E+08 5.0912900E-25 + 6.0620000E+08 5.0911076E-25 + 6.0629997E+08 5.0909252E-25 + 6.0640000E+08 5.0907428E-25 + 6.0650003E+08 5.0905603E-25 + 6.0660000E+08 5.0903779E-25 + 6.0669997E+08 5.0901955E-25 + 6.0680000E+08 5.0900131E-25 + 6.0690003E+08 5.0898306E-25 + 6.0700000E+08 5.0896482E-25 + 6.0709997E+08 5.0894658E-25 + 6.0720000E+08 5.0892834E-25 + 6.0730003E+08 5.0891010E-25 + 6.0740000E+08 5.0889185E-25 + 6.0749997E+08 5.0887361E-25 + 6.0760000E+08 5.0885537E-25 + 6.0770003E+08 5.0883708E-25 + 6.0780000E+08 5.0881883E-25 + 6.0789997E+08 5.0880059E-25 + 6.0800000E+08 5.0878235E-25 + 6.0810003E+08 5.0876411E-25 + 6.0820000E+08 5.0874586E-25 + 6.0829997E+08 5.0872762E-25 + 6.0840000E+08 5.0870938E-25 + 6.0850003E+08 5.0869114E-25 + 6.0860000E+08 5.0867289E-25 + 6.0869997E+08 5.0865465E-25 + 6.0880000E+08 5.0863641E-25 + 6.0890003E+08 5.0861817E-25 + 6.0900000E+08 5.0859992E-25 + 6.0909997E+08 5.0858168E-25 + 6.0920000E+08 5.0856344E-25 + 6.0930003E+08 5.0854520E-25 + 6.0940000E+08 5.0852696E-25 + 6.0949997E+08 5.0850871E-25 + 6.0960000E+08 5.0849047E-25 + 6.0970003E+08 5.0847218E-25 + 6.0980000E+08 5.0845394E-25 + 6.0989997E+08 5.0843574E-25 + 6.1000000E+08 5.0841745E-25 + 6.1010003E+08 5.0839921E-25 + 6.1020000E+08 5.0838097E-25 + 6.1029997E+08 5.0836272E-25 + 6.1040000E+08 5.0834448E-25 + 6.1050003E+08 5.0832624E-25 + 6.1060000E+08 5.0830800E-25 + 6.1069997E+08 5.0828975E-25 + 6.1080000E+08 5.0827151E-25 + 6.1090003E+08 5.0825327E-25 + 6.1100000E+08 5.0823503E-25 + 6.1109997E+08 5.0821678E-25 + 6.1120000E+08 5.0819854E-25 + 6.1130003E+08 5.0818030E-25 + 6.1140000E+08 5.0816206E-25 + 6.1149997E+08 5.0814382E-25 + 6.1160000E+08 5.0812557E-25 + 6.1170003E+08 5.0810733E-25 + 6.1180000E+08 5.0808904E-25 + 6.1189997E+08 5.0807085E-25 + 6.1200000E+08 5.0805255E-25 + 6.1210003E+08 5.0803431E-25 + 6.1220000E+08 5.0801607E-25 + 6.1229997E+08 5.0799783E-25 + 6.1240000E+08 5.0797958E-25 + 6.1250003E+08 5.0796134E-25 + 6.1260000E+08 5.0794310E-25 + 6.1269997E+08 5.0792486E-25 + 6.1280000E+08 5.0790661E-25 + 6.1290003E+08 5.0788837E-25 + 6.1300000E+08 5.0787013E-25 + 6.1309997E+08 5.0785189E-25 + 6.1320000E+08 5.0783365E-25 + 6.1330003E+08 5.0781540E-25 + 6.1340000E+08 5.0779716E-25 + 6.1349997E+08 5.0777892E-25 + 6.1360000E+08 5.0776068E-25 + 6.1370003E+08 5.0774243E-25 + 6.1380000E+08 5.0772419E-25 + 6.1389997E+08 5.0770595E-25 + 6.1400000E+08 5.0768771E-25 + 6.1410003E+08 5.0766941E-25 + 6.1420000E+08 5.0765117E-25 + 6.1429997E+08 5.0763293E-25 + 6.1440000E+08 5.0761469E-25 + 6.1450003E+08 5.0759644E-25 + 6.1460000E+08 5.0757820E-25 + 6.1469997E+08 5.0755996E-25 + 6.1480000E+08 5.0754172E-25 + 6.1490003E+08 5.0752347E-25 + 6.1500000E+08 5.0750523E-25 + 6.1509997E+08 5.0748699E-25 + 6.1520000E+08 5.0746875E-25 + 6.1530003E+08 5.0745051E-25 + 6.1540000E+08 5.0743226E-25 + 6.1549997E+08 5.0741402E-25 + 6.1560000E+08 5.0739578E-25 + 6.1570003E+08 5.0737754E-25 + 6.1580000E+08 5.0735929E-25 + 6.1589997E+08 5.0734105E-25 + 6.1600000E+08 5.0732281E-25 + 6.1610003E+08 5.0730452E-25 + 6.1620000E+08 5.0728627E-25 + 6.1629997E+08 5.0726808E-25 + 6.1640000E+08 5.0724979E-25 + 6.1650003E+08 5.0723155E-25 + 6.1660000E+08 5.0721330E-25 + 6.1669997E+08 5.0719506E-25 + 6.1680000E+08 5.0717682E-25 + 6.1690003E+08 5.0715858E-25 + 6.1700000E+08 5.0714033E-25 + 6.1709997E+08 5.0712209E-25 + 6.1720000E+08 5.0710385E-25 + 6.1730003E+08 5.0708561E-25 + 6.1740000E+08 5.0706737E-25 + 6.1749997E+08 5.0704912E-25 + 6.1760000E+08 5.0703088E-25 + 6.1770003E+08 5.0701259E-25 + 6.1780000E+08 5.0699440E-25 + 6.1789997E+08 5.0697615E-25 + 6.1800000E+08 5.0695791E-25 + 6.1810003E+08 5.0693962E-25 + 6.1820000E+08 5.0692138E-25 + 6.1829997E+08 5.0690318E-25 + 6.1840000E+08 5.0688489E-25 + 6.1850003E+08 5.0686665E-25 + 6.1860000E+08 5.0684841E-25 + 6.1869997E+08 5.0683016E-25 + 6.1880000E+08 5.0681192E-25 + 6.1890003E+08 5.0679368E-25 + 6.1900000E+08 5.0677544E-25 + 6.1909997E+08 5.0675720E-25 + 6.1920000E+08 5.0673895E-25 + 6.1930003E+08 5.0672071E-25 + 6.1940000E+08 5.0670247E-25 + 6.1949997E+08 5.0668423E-25 + 6.1960000E+08 5.0666598E-25 + 6.1970003E+08 5.0664774E-25 + 6.1980000E+08 5.0662950E-25 + 6.1989997E+08 5.0661126E-25 + 6.2000000E+08 5.0659296E-25 + 6.2010003E+08 5.0657472E-25 + 6.2020000E+08 5.0655648E-25 + 6.2029997E+08 5.0653829E-25 + 6.2040000E+08 5.0651999E-25 + 6.2050003E+08 5.0650175E-25 + 6.2060000E+08 5.0648351E-25 + 6.2069997E+08 5.0646527E-25 + 6.2080000E+08 5.0644702E-25 + 6.2090003E+08 5.0642878E-25 + 6.2100000E+08 5.0641054E-25 + 6.2109997E+08 5.0639230E-25 + 6.2120000E+08 5.0637406E-25 + 6.2130003E+08 5.0635581E-25 + 6.2140000E+08 5.0633757E-25 + 6.2149997E+08 5.0631933E-25 + 6.2160000E+08 5.0630109E-25 + 6.2170003E+08 5.0628284E-25 + 6.2180000E+08 5.0626460E-25 + 6.2189997E+08 5.0624636E-25 + 6.2200000E+08 5.0622812E-25 + 6.2210003E+08 5.0620982E-25 + 6.2220000E+08 5.0619163E-25 + 6.2229997E+08 5.0617334E-25 + 6.2240000E+08 5.0615510E-25 + 6.2250003E+08 5.0613685E-25 + 6.2260000E+08 5.0611861E-25 + 6.2269997E+08 5.0610037E-25 + 6.2280000E+08 5.0608213E-25 + 6.2290003E+08 5.0606388E-25 + 6.2300000E+08 5.0604564E-25 + 6.2309997E+08 5.0602740E-25 + 6.2320000E+08 5.0600916E-25 + 6.2330003E+08 5.0599092E-25 + 6.2340000E+08 5.0597267E-25 + 6.2349997E+08 5.0595443E-25 + 6.2360000E+08 5.0593619E-25 + 6.2370003E+08 5.0591795E-25 + 6.2380000E+08 5.0589970E-25 + 6.2389997E+08 5.0588146E-25 + 6.2400000E+08 5.0586322E-25 + 6.2410003E+08 5.0584493E-25 + 6.2420000E+08 5.0582673E-25 + 6.2429997E+08 5.0580849E-25 + 6.2440000E+08 5.0579020E-25 + 6.2450003E+08 5.0577196E-25 + 6.2460000E+08 5.0575371E-25 + 6.2469997E+08 5.0573547E-25 + 6.2480000E+08 5.0571723E-25 + 6.2490003E+08 5.0569899E-25 + 6.2500000E+08 5.0568075E-25 + 6.2509997E+08 5.0566250E-25 + 6.2520000E+08 5.0564426E-25 + 6.2530003E+08 5.0562602E-25 + 6.2540000E+08 5.0560778E-25 + 6.2549997E+08 5.0558953E-25 + 6.2560000E+08 5.0557129E-25 + 6.2570003E+08 5.0555305E-25 + 6.2580000E+08 5.0553481E-25 + 6.2589997E+08 5.0551656E-25 + 6.2600000E+08 5.0549832E-25 + 6.2610003E+08 5.0548008E-25 + 6.2620000E+08 5.0546184E-25 + 6.2629997E+08 5.0544359E-25 + 6.2640000E+08 5.0542530E-25 + 6.2650003E+08 5.0540706E-25 + 6.2660000E+08 5.0538882E-25 + 6.2669997E+08 5.0537057E-25 + 6.2680000E+08 5.0535233E-25 + 6.2690003E+08 5.0533409E-25 + 6.2700000E+08 5.0531585E-25 + 6.2709997E+08 5.0529761E-25 + 6.2720000E+08 5.0527936E-25 + 6.2730003E+08 5.0526112E-25 + 6.2740000E+08 5.0524288E-25 + 6.2749997E+08 5.0522464E-25 + 6.2760000E+08 5.0520639E-25 + 6.2770003E+08 5.0518815E-25 + 6.2780000E+08 5.0516991E-25 + 6.2789997E+08 5.0515167E-25 + 6.2800000E+08 5.0513342E-25 + 6.2810003E+08 5.0511518E-25 + 6.2820000E+08 5.0509694E-25 + 6.2829997E+08 5.0507870E-25 + 6.2840000E+08 5.0506045E-25 + 6.2850003E+08 5.0504216E-25 + 6.2860000E+08 5.0502392E-25 + 6.2869997E+08 5.0500568E-25 + 6.2880000E+08 5.0498743E-25 + 6.2890003E+08 5.0496919E-25 + 6.2900000E+08 5.0495095E-25 + 6.2909997E+08 5.0493271E-25 + 6.2920000E+08 5.0491447E-25 + 6.2930003E+08 5.0489622E-25 + 6.2940000E+08 5.0487798E-25 + 6.2949997E+08 5.0485974E-25 + 6.2960000E+08 5.0484150E-25 + 6.2970003E+08 5.0482325E-25 + 6.2980000E+08 5.0480501E-25 + 6.2989997E+08 5.0478677E-25 + 6.3000000E+08 5.0476853E-25 + 6.3010003E+08 5.0475028E-25 + 6.3020000E+08 5.0473204E-25 + 6.3029997E+08 5.0471380E-25 + 6.3040000E+08 5.0469556E-25 + 6.3050003E+08 5.0467726E-25 + 6.3060000E+08 5.0465902E-25 + 6.3069997E+08 5.0464083E-25 + 6.3080000E+08 5.0462254E-25 + 6.3090003E+08 5.0460430E-25 + 6.3100000E+08 5.0458605E-25 + 6.3109997E+08 5.0456781E-25 + 6.3120000E+08 5.0454957E-25 + 6.3130003E+08 5.0453133E-25 + 6.3140000E+08 5.0451308E-25 + 6.3149997E+08 5.0449484E-25 + 6.3160000E+08 5.0447660E-25 + 6.3170003E+08 5.0445836E-25 + 6.3180000E+08 5.0444011E-25 + 6.3189997E+08 5.0442187E-25 + 6.3200000E+08 5.0440363E-25 + 6.3210003E+08 5.0438539E-25 + 6.3220000E+08 5.0436714E-25 + 6.3229997E+08 5.0434890E-25 + 6.3240000E+08 5.0433066E-25 + 6.3250003E+08 5.0431237E-25 + 6.3260000E+08 5.0429412E-25 + 6.3269997E+08 5.0427593E-25 + 6.3280000E+08 5.0425764E-25 + 6.3290003E+08 5.0423940E-25 + 6.3300000E+08 5.0422116E-25 + 6.3309997E+08 5.0420291E-25 + 6.3320000E+08 5.0418467E-25 + 6.3330003E+08 5.0416643E-25 + 6.3340000E+08 5.0414819E-25 + 6.3349997E+08 5.0412994E-25 + 6.3360000E+08 5.0411170E-25 + 6.3370003E+08 5.0409346E-25 + 6.3380000E+08 5.0407522E-25 + 6.3389997E+08 5.0405697E-25 + 6.3400000E+08 5.0403873E-25 + 6.3410003E+08 5.0402049E-25 + 6.3420000E+08 5.0400225E-25 + 6.3429997E+08 5.0398400E-25 + 6.3440000E+08 5.0396576E-25 + 6.3450003E+08 5.0394747E-25 + 6.3460000E+08 5.0392928E-25 + 6.3469997E+08 5.0391103E-25 + 6.3480000E+08 5.0389279E-25 + 6.3490003E+08 5.0387450E-25 + 6.3500000E+08 5.0385626E-25 + 6.3509997E+08 5.0383802E-25 + 6.3520000E+08 5.0381977E-25 + 6.3530003E+08 5.0380153E-25 + 6.3540000E+08 5.0378329E-25 + 6.3549997E+08 5.0376505E-25 + 6.3560000E+08 5.0374680E-25 + 6.3570003E+08 5.0372856E-25 + 6.3580000E+08 5.0371032E-25 + 6.3589997E+08 5.0369208E-25 + 6.3600000E+08 5.0367383E-25 + 6.3610003E+08 5.0365559E-25 + 6.3620000E+08 5.0363735E-25 + 6.3629997E+08 5.0361911E-25 + 6.3640000E+08 5.0360086E-25 + 6.3650003E+08 5.0358257E-25 + 6.3660000E+08 5.0356438E-25 + 6.3669997E+08 5.0354614E-25 + 6.3680000E+08 5.0352785E-25 + 6.3690003E+08 5.0350960E-25 + 6.3700000E+08 5.0349136E-25 + 6.3709997E+08 5.0347312E-25 + 6.3720000E+08 5.0345488E-25 + 6.3730003E+08 5.0343663E-25 + 6.3740000E+08 5.0341839E-25 + 6.3749997E+08 5.0340015E-25 + 6.3760000E+08 5.0338191E-25 + 6.3770003E+08 5.0336366E-25 + 6.3780000E+08 5.0334542E-25 + 6.3789997E+08 5.0332718E-25 + 6.3800000E+08 5.0330894E-25 + 6.3810003E+08 5.0329069E-25 + 6.3820000E+08 5.0327245E-25 + 6.3829997E+08 5.0325421E-25 + 6.3840000E+08 5.0323597E-25 + 6.3850003E+08 5.0321767E-25 + 6.3860000E+08 5.0319948E-25 + 6.3869997E+08 5.0318124E-25 + 6.3880000E+08 5.0316295E-25 + 6.3890003E+08 5.0314471E-25 + 6.3900000E+08 5.0312646E-25 + 6.3909997E+08 5.0310822E-25 + 6.3920000E+08 5.0308998E-25 + 6.3930003E+08 5.0307174E-25 + 6.3940000E+08 5.0305349E-25 + 6.3949997E+08 5.0303525E-25 + 6.3960000E+08 5.0301701E-25 + 6.3970003E+08 5.0299877E-25 + 6.3980000E+08 5.0298052E-25 + 6.3989997E+08 5.0296228E-25 + 6.4000000E+08 5.0294404E-25 + 6.4010003E+08 5.0292580E-25 + 6.4020000E+08 5.0290755E-25 + 6.4029997E+08 5.0288931E-25 + 6.4040000E+08 5.0287107E-25 + 6.4050003E+08 5.0285283E-25 + 6.4060000E+08 5.0283458E-25 + 6.4069997E+08 5.0281634E-25 + 6.4080000E+08 5.0279805E-25 + 6.4090003E+08 5.0277981E-25 + 6.4100000E+08 5.0276157E-25 + 6.4109997E+08 5.0274332E-25 + 6.4120000E+08 5.0272508E-25 + 6.4130003E+08 5.0270684E-25 + 6.4140000E+08 5.0268860E-25 + 6.4149997E+08 5.0267035E-25 + 6.4160000E+08 5.0265211E-25 + 6.4170003E+08 5.0263387E-25 + 6.4180000E+08 5.0261563E-25 + 6.4189997E+08 5.0259738E-25 + 6.4200000E+08 5.0257914E-25 + 6.4210003E+08 5.0256090E-25 + 6.4220000E+08 5.0254266E-25 + 6.4229997E+08 5.0252441E-25 + 6.4240000E+08 5.0250617E-25 + 6.4250003E+08 5.0248793E-25 + 6.4260000E+08 5.0246969E-25 + 6.4269997E+08 5.0245144E-25 + 6.4280000E+08 5.0243320E-25 + 6.4290003E+08 5.0241491E-25 + 6.4300000E+08 5.0239672E-25 + 6.4309997E+08 5.0237843E-25 + 6.4320000E+08 5.0236018E-25 + 6.4330003E+08 5.0234194E-25 + 6.4340000E+08 5.0232370E-25 + 6.4349997E+08 5.0230546E-25 + 6.4360000E+08 5.0228721E-25 + 6.4370003E+08 5.0226897E-25 + 6.4380000E+08 5.0225073E-25 + 6.4389997E+08 5.0223249E-25 + 6.4400000E+08 5.0221424E-25 + 6.4410003E+08 5.0219600E-25 + 6.4420000E+08 5.0217776E-25 + 6.4429997E+08 5.0215952E-25 + 6.4440000E+08 5.0214127E-25 + 6.4450003E+08 5.0212303E-25 + 6.4460000E+08 5.0210479E-25 + 6.4469997E+08 5.0208655E-25 + 6.4480000E+08 5.0206830E-25 + 6.4490003E+08 5.0205001E-25 + 6.4500000E+08 5.0203177E-25 + 6.4509997E+08 5.0201358E-25 + 6.4520000E+08 5.0199529E-25 + 6.4530003E+08 5.0197704E-25 + 6.4540000E+08 5.0195880E-25 + 6.4549997E+08 5.0194056E-25 + 6.4560000E+08 5.0192232E-25 + 6.4570003E+08 5.0190407E-25 + 6.4580000E+08 5.0188583E-25 + 6.4589997E+08 5.0186759E-25 + 6.4600000E+08 5.0184935E-25 + 6.4610003E+08 5.0183110E-25 + 6.4620000E+08 5.0181286E-25 + 6.4629997E+08 5.0179462E-25 + 6.4640000E+08 5.0177638E-25 + 6.4650003E+08 5.0175813E-25 + 6.4660000E+08 5.0173989E-25 + 6.4669997E+08 5.0172165E-25 + 6.4680000E+08 5.0170341E-25 + 6.4690003E+08 5.0168516E-25 + 6.4700000E+08 5.0166687E-25 + 6.4709997E+08 5.0164868E-25 + 6.4720000E+08 5.0163039E-25 + 6.4730003E+08 5.0161215E-25 + 6.4740000E+08 5.0159390E-25 + 6.4749997E+08 5.0157566E-25 + 6.4760000E+08 5.0155742E-25 + 6.4770003E+08 5.0153918E-25 + 6.4780000E+08 5.0152093E-25 + 6.4789997E+08 5.0150269E-25 + 6.4800000E+08 5.0148445E-25 + 6.4810003E+08 5.0146621E-25 + 6.4820000E+08 5.0144796E-25 + 6.4829997E+08 5.0142972E-25 + 6.4840000E+08 5.0141148E-25 + 6.4850003E+08 5.0139324E-25 + 6.4860000E+08 5.0137499E-25 + 6.4869997E+08 5.0135675E-25 + 6.4880000E+08 5.0133851E-25 + 6.4890003E+08 5.0132027E-25 + 6.4900000E+08 5.0130202E-25 + 6.4909997E+08 5.0128378E-25 + 6.4920000E+08 5.0126554E-25 + 6.4930003E+08 5.0124725E-25 + 6.4940000E+08 5.0122901E-25 + 6.4949997E+08 5.0121076E-25 + 6.4960000E+08 5.0119252E-25 + 6.4970003E+08 5.0117428E-25 + 6.4980000E+08 5.0115604E-25 + 6.4989997E+08 5.0113779E-25 + 6.5000000E+08 5.0111955E-25 + 6.5010003E+08 5.0110131E-25 + 6.5020000E+08 5.0108307E-25 + 6.5029997E+08 5.0106482E-25 + 6.5040000E+08 5.0104658E-25 + 6.5050003E+08 5.0102834E-25 + 6.5060000E+08 5.0101010E-25 + 6.5069997E+08 5.0099185E-25 + 6.5080000E+08 5.0097361E-25 + 6.5090003E+08 5.0095537E-25 + 6.5100000E+08 5.0093713E-25 + 6.5109997E+08 5.0091888E-25 + 6.5120000E+08 5.0090064E-25 + 6.5130003E+08 5.0088235E-25 + 6.5140000E+08 5.0086411E-25 + 6.5149997E+08 5.0084592E-25 + 6.5160000E+08 5.0082762E-25 + 6.5170003E+08 5.0080938E-25 + 6.5180000E+08 5.0079114E-25 + 6.5189997E+08 5.0077290E-25 + 6.5200000E+08 5.0075465E-25 + 6.5210003E+08 5.0073641E-25 + 6.5220000E+08 5.0071817E-25 + 6.5229997E+08 5.0069993E-25 + 6.5240000E+08 5.0068168E-25 + 6.5250003E+08 5.0066344E-25 + 6.5260000E+08 5.0064520E-25 + 6.5269997E+08 5.0062696E-25 + 6.5280000E+08 5.0060871E-25 + 6.5290003E+08 5.0059042E-25 + 6.5300000E+08 5.0057223E-25 + 6.5309997E+08 5.0055399E-25 + 6.5320000E+08 5.0053570E-25 + 6.5330003E+08 5.0051745E-25 + 6.5340000E+08 5.0049921E-25 + 6.5349997E+08 5.0048097E-25 + 6.5360000E+08 5.0046273E-25 + 6.5370003E+08 5.0044448E-25 + 6.5380000E+08 5.0042624E-25 + 6.5389997E+08 5.0040800E-25 + 6.5400000E+08 5.0038976E-25 + 6.5410003E+08 5.0037151E-25 + 6.5420000E+08 5.0035327E-25 + 6.5429997E+08 5.0033503E-25 + 6.5440000E+08 5.0031679E-25 + 6.5450003E+08 5.0029854E-25 + 6.5460000E+08 5.0028030E-25 + 6.5469997E+08 5.0026206E-25 + 6.5480000E+08 5.0024382E-25 + 6.5490003E+08 5.0022557E-25 + 6.5500000E+08 5.0020733E-25 + 6.5509997E+08 5.0018909E-25 + 6.5520000E+08 5.0017085E-25 + 6.5530003E+08 5.0015256E-25 + 6.5540000E+08 5.0013431E-25 + 6.5549997E+08 5.0011612E-25 + 6.5560000E+08 5.0009783E-25 + 6.5570003E+08 5.0007959E-25 + 6.5580000E+08 5.0006134E-25 + 6.5589997E+08 5.0004310E-25 + 6.5600000E+08 5.0002486E-25 + 6.5610003E+08 5.0000662E-25 + 6.5620000E+08 4.9998837E-25 + 6.5629997E+08 4.9997013E-25 + 6.5640000E+08 4.9995189E-25 + 6.5650003E+08 4.9993365E-25 + 6.5660000E+08 4.9991540E-25 + 6.5669997E+08 4.9989716E-25 + 6.5680000E+08 4.9987892E-25 + 6.5690003E+08 4.9986068E-25 + 6.5700000E+08 4.9984243E-25 + 6.5709997E+08 4.9982419E-25 + 6.5720000E+08 4.9980595E-25 + 6.5730003E+08 4.9978766E-25 + 6.5740000E+08 4.9976947E-25 + 6.5749997E+08 4.9975117E-25 + 6.5760000E+08 4.9973293E-25 + 6.5770003E+08 4.9971469E-25 + 6.5780000E+08 4.9969645E-25 + 6.5789997E+08 4.9967820E-25 + 6.5800000E+08 4.9965996E-25 + 6.5810003E+08 4.9964172E-25 + 6.5820000E+08 4.9962348E-25 + 6.5829997E+08 4.9960523E-25 + 6.5840000E+08 4.9958699E-25 + 6.5850003E+08 4.9956875E-25 + 6.5860000E+08 4.9955051E-25 + 6.5869997E+08 4.9953226E-25 + 6.5880000E+08 4.9951402E-25 + 6.5890003E+08 4.9949578E-25 + 6.5900000E+08 4.9947754E-25 + 6.5909997E+08 4.9945929E-25 + 6.5920000E+08 4.9944105E-25 + 6.5930003E+08 4.9942276E-25 + 6.5940000E+08 4.9940457E-25 + 6.5949997E+08 4.9938633E-25 + 6.5960000E+08 4.9936803E-25 + 6.5970003E+08 4.9934979E-25 + 6.5980000E+08 4.9933155E-25 + 6.5989997E+08 4.9931331E-25 + 6.6000000E+08 4.9929506E-25 + 6.6010003E+08 4.9927682E-25 + 6.6020000E+08 4.9925858E-25 + 6.6029997E+08 4.9924034E-25 + 6.6040000E+08 4.9922209E-25 + 6.6050003E+08 4.9920385E-25 + 6.6060000E+08 4.9918561E-25 + 6.6069997E+08 4.9916737E-25 + 6.6080000E+08 4.9914912E-25 + 6.6090003E+08 4.9913088E-25 + 6.6100000E+08 4.9911264E-25 + 6.6109997E+08 4.9909440E-25 + 6.6120000E+08 4.9907616E-25 + 6.6130003E+08 4.9905791E-25 + 6.6140000E+08 4.9903967E-25 + 6.6149997E+08 4.9902143E-25 + 6.6160000E+08 4.9900314E-25 + 6.6170003E+08 4.9898489E-25 + 6.6180000E+08 4.9896665E-25 + 6.6189997E+08 4.9894841E-25 + 6.6200000E+08 4.9893017E-25 + 6.6210003E+08 4.9891192E-25 + 6.6220000E+08 4.9889368E-25 + 6.6229997E+08 4.9887544E-25 + 6.6240000E+08 4.9885720E-25 + 6.6250003E+08 4.9883895E-25 + 6.6260000E+08 4.9882071E-25 + 6.6269997E+08 4.9880247E-25 + 6.6280000E+08 4.9878423E-25 + 6.6290003E+08 4.9876598E-25 + 6.6300000E+08 4.9874774E-25 + 6.6309997E+08 4.9872950E-25 + 6.6320000E+08 4.9871126E-25 + 6.6330003E+08 4.9869302E-25 + 6.6340000E+08 4.9867477E-25 + 6.6349997E+08 4.9865653E-25 + 6.6360000E+08 4.9863829E-25 + 6.6370003E+08 4.9862000E-25 + 6.6380000E+08 4.9860175E-25 + 6.6389997E+08 4.9858351E-25 + 6.6400000E+08 4.9856527E-25 + 6.6410003E+08 4.9854703E-25 + 6.6420000E+08 4.9852878E-25 + 6.6429997E+08 4.9851054E-25 + 6.6440000E+08 4.9849230E-25 + 6.6450003E+08 4.9847406E-25 + 6.6460000E+08 4.9845581E-25 + 6.6469997E+08 4.9843757E-25 + 6.6480000E+08 4.9841933E-25 + 6.6490003E+08 4.9840109E-25 + 6.6500000E+08 4.9838284E-25 + 6.6509997E+08 4.9836460E-25 + 6.6520000E+08 4.9834636E-25 + 6.6530003E+08 4.9832812E-25 + 6.6540000E+08 4.9830988E-25 + 6.6549997E+08 4.9829163E-25 + 6.6560000E+08 4.9827339E-25 + 6.6570003E+08 4.9825510E-25 + 6.6580000E+08 4.9823686E-25 + 6.6589997E+08 4.9821866E-25 + 6.6600000E+08 4.9820037E-25 + 6.6610003E+08 4.9818213E-25 + 6.6620000E+08 4.9816389E-25 + 6.6629997E+08 4.9814564E-25 + 6.6640000E+08 4.9812740E-25 + 6.6650003E+08 4.9810916E-25 + 6.6660000E+08 4.9809092E-25 + 6.6669997E+08 4.9807267E-25 + 6.6680000E+08 4.9805443E-25 + 6.6690003E+08 4.9803619E-25 + 6.6700000E+08 4.9801795E-25 + 6.6709997E+08 4.9799971E-25 + 6.6720000E+08 4.9798146E-25 + 6.6730003E+08 4.9796322E-25 + 6.6740000E+08 4.9794498E-25 + 6.6749997E+08 4.9792674E-25 + 6.6760000E+08 4.9790849E-25 + 6.6770003E+08 4.9789025E-25 + 6.6780000E+08 4.9787196E-25 + 6.6789997E+08 4.9785377E-25 + 6.6800000E+08 4.9783547E-25 + 6.6810003E+08 4.9781723E-25 + 6.6820000E+08 4.9779899E-25 + 6.6829997E+08 4.9778075E-25 + 6.6840000E+08 4.9776250E-25 + 6.6850003E+08 4.9774426E-25 + 6.6860000E+08 4.9772602E-25 + 6.6869997E+08 4.9770778E-25 + 6.6880000E+08 4.9768953E-25 + 6.6890003E+08 4.9767129E-25 + 6.6900000E+08 4.9765305E-25 + 6.6909997E+08 4.9763481E-25 + 6.6920000E+08 4.9761657E-25 + 6.6930003E+08 4.9759832E-25 + 6.6940000E+08 4.9758008E-25 + 6.6949997E+08 4.9756184E-25 + 6.6960000E+08 4.9754360E-25 + 6.6970003E+08 4.9752530E-25 + 6.6980000E+08 4.9750711E-25 + 6.6989997E+08 4.9748887E-25 + 6.7000000E+08 4.9747058E-25 + 6.7010003E+08 4.9745233E-25 + 6.7020000E+08 4.9743409E-25 + 6.7029997E+08 4.9741585E-25 + 6.7040000E+08 4.9739761E-25 + 6.7050003E+08 4.9737936E-25 + 6.7060000E+08 4.9736112E-25 + 6.7069997E+08 4.9734288E-25 + 6.7080000E+08 4.9732464E-25 + 6.7090003E+08 4.9730639E-25 + 6.7100000E+08 4.9728815E-25 + 6.7109997E+08 4.9726991E-25 + 6.7120000E+08 4.9725167E-25 + 6.7130003E+08 4.9723343E-25 + 6.7140000E+08 4.9721518E-25 + 6.7149997E+08 4.9719694E-25 + 6.7160000E+08 4.9717870E-25 + 6.7170003E+08 4.9716041E-25 + 6.7180000E+08 4.9714221E-25 + 6.7189997E+08 4.9712397E-25 + 6.7200000E+08 4.9710573E-25 + 6.7210003E+08 4.9708744E-25 + 6.7220000E+08 4.9706919E-25 + 6.7229997E+08 4.9705100E-25 + 6.7240000E+08 4.9703271E-25 + 6.7250003E+08 4.9701447E-25 + 6.7260000E+08 4.9699622E-25 + 6.7269997E+08 4.9697798E-25 + 6.7280000E+08 4.9695974E-25 + 6.7290003E+08 4.9694150E-25 + 6.7300000E+08 4.9692326E-25 + 6.7309997E+08 4.9690501E-25 + 6.7320000E+08 4.9688677E-25 + 6.7330003E+08 4.9686853E-25 + 6.7340000E+08 4.9685029E-25 + 6.7349997E+08 4.9683204E-25 + 6.7360000E+08 4.9681380E-25 + 6.7370003E+08 4.9679551E-25 + 6.7380000E+08 4.9677732E-25 + 6.7389997E+08 4.9675907E-25 + 6.7400000E+08 4.9674078E-25 + 6.7410003E+08 4.9672254E-25 + 6.7420000E+08 4.9670430E-25 + 6.7429997E+08 4.9668605E-25 + 6.7440000E+08 4.9666781E-25 + 6.7450003E+08 4.9664957E-25 + 6.7460000E+08 4.9663133E-25 + 6.7469997E+08 4.9661308E-25 + 6.7480000E+08 4.9659484E-25 + 6.7490003E+08 4.9657660E-25 + 6.7500000E+08 4.9655836E-25 + 6.7509997E+08 4.9654012E-25 + 6.7520000E+08 4.9652187E-25 + 6.7530003E+08 4.9650363E-25 + 6.7540000E+08 4.9648539E-25 + 6.7549997E+08 4.9646715E-25 + 6.7560000E+08 4.9644890E-25 + 6.7570003E+08 4.9643066E-25 + 6.7580000E+08 4.9641242E-25 + 6.7589997E+08 4.9639418E-25 + 6.7600000E+08 4.9637588E-25 + 6.7610003E+08 4.9635764E-25 + 6.7620000E+08 4.9633940E-25 + 6.7629997E+08 4.9632116E-25 + 6.7640000E+08 4.9630291E-25 + 6.7650003E+08 4.9628467E-25 + 6.7660000E+08 4.9626643E-25 + 6.7669997E+08 4.9624819E-25 + 6.7680000E+08 4.9622994E-25 + 6.7690003E+08 4.9621170E-25 + 6.7700000E+08 4.9619346E-25 + 6.7709997E+08 4.9617522E-25 + 6.7720000E+08 4.9615698E-25 + 6.7730003E+08 4.9613873E-25 + 6.7740000E+08 4.9612049E-25 + 6.7749997E+08 4.9610225E-25 + 6.7760000E+08 4.9608401E-25 + 6.7770003E+08 4.9606576E-25 + 6.7780000E+08 4.9604752E-25 + 6.7789997E+08 4.9602928E-25 + 6.7800000E+08 4.9601104E-25 + 6.7810003E+08 4.9599274E-25 + 6.7820000E+08 4.9597450E-25 + 6.7829997E+08 4.9595626E-25 + 6.7840000E+08 4.9593802E-25 + 6.7850003E+08 4.9591977E-25 + 6.7860000E+08 4.9590153E-25 + 6.7869997E+08 4.9588329E-25 + 6.7880000E+08 4.9586505E-25 + 6.7890003E+08 4.9584681E-25 + 6.7900000E+08 4.9582856E-25 + 6.7909997E+08 4.9581032E-25 + 6.7920000E+08 4.9579208E-25 + 6.7930003E+08 4.9577384E-25 + 6.7940000E+08 4.9575559E-25 + 6.7949997E+08 4.9573735E-25 + 6.7960000E+08 4.9571911E-25 + 6.7970003E+08 4.9570087E-25 + 6.7980000E+08 4.9568262E-25 + 6.7989997E+08 4.9566438E-25 + 6.8000000E+08 4.9564614E-25 + 6.8010003E+08 4.9562785E-25 + 6.8020000E+08 4.9560965E-25 + 6.8029997E+08 4.9559141E-25 + 6.8040000E+08 4.9557312E-25 + 6.8050003E+08 4.9555488E-25 + 6.8060000E+08 4.9553663E-25 + 6.8069997E+08 4.9551839E-25 + 6.8080000E+08 4.9550015E-25 + 6.8090003E+08 4.9548191E-25 + 6.8100000E+08 4.9546367E-25 + 6.8109997E+08 4.9544542E-25 + 6.8120000E+08 4.9542718E-25 + 6.8130003E+08 4.9540894E-25 + 6.8140000E+08 4.9539070E-25 + 6.8149997E+08 4.9537245E-25 + 6.8160000E+08 4.9535421E-25 + 6.8170003E+08 4.9533597E-25 + 6.8180000E+08 4.9531773E-25 + 6.8189997E+08 4.9529948E-25 + 6.8200000E+08 4.9528124E-25 + 6.8210003E+08 4.9526300E-25 + 6.8220000E+08 4.9524471E-25 + 6.8229997E+08 4.9522651E-25 + 6.8240000E+08 4.9520822E-25 + 6.8250003E+08 4.9518998E-25 + 6.8260000E+08 4.9517174E-25 + 6.8269997E+08 4.9515349E-25 + 6.8280000E+08 4.9513525E-25 + 6.8290003E+08 4.9511701E-25 + 6.8300000E+08 4.9509877E-25 + 6.8309997E+08 4.9508053E-25 + 6.8320000E+08 4.9506228E-25 + 6.8330003E+08 4.9504404E-25 + 6.8340000E+08 4.9502580E-25 + 6.8349997E+08 4.9500756E-25 + 6.8360000E+08 4.9498931E-25 + 6.8370003E+08 4.9497107E-25 + 6.8380000E+08 4.9495283E-25 + 6.8389997E+08 4.9493459E-25 + 6.8400000E+08 4.9491634E-25 + 6.8410003E+08 4.9489810E-25 + 6.8420000E+08 4.9487986E-25 + 6.8429997E+08 4.9486162E-25 + 6.8440000E+08 4.9484337E-25 + 6.8450003E+08 4.9482508E-25 + 6.8460000E+08 4.9480684E-25 + 6.8469997E+08 4.9478860E-25 + 6.8480000E+08 4.9477036E-25 + 6.8490003E+08 4.9475211E-25 + 6.8500000E+08 4.9473387E-25 + 6.8509997E+08 4.9471563E-25 + 6.8520000E+08 4.9469739E-25 + 6.8530003E+08 4.9467914E-25 + 6.8540000E+08 4.9466090E-25 + 6.8549997E+08 4.9464266E-25 + 6.8560000E+08 4.9462442E-25 + 6.8570003E+08 4.9460617E-25 + 6.8580000E+08 4.9458793E-25 + 6.8589997E+08 4.9456969E-25 + 6.8600000E+08 4.9455145E-25 + 6.8610003E+08 4.9453315E-25 + 6.8620000E+08 4.9451496E-25 + 6.8629997E+08 4.9449672E-25 + 6.8640000E+08 4.9447843E-25 + 6.8650003E+08 4.9446018E-25 + 6.8660000E+08 4.9444194E-25 + 6.8669997E+08 4.9442375E-25 + 6.8680000E+08 4.9440546E-25 + 6.8690003E+08 4.9438722E-25 + 6.8700000E+08 4.9436897E-25 + 6.8709997E+08 4.9435073E-25 + 6.8720000E+08 4.9433249E-25 + 6.8730003E+08 4.9431425E-25 + 6.8740000E+08 4.9429600E-25 + 6.8749997E+08 4.9427776E-25 + 6.8760000E+08 4.9425952E-25 + 6.8770003E+08 4.9424128E-25 + 6.8780000E+08 4.9422303E-25 + 6.8789997E+08 4.9420479E-25 + 6.8800000E+08 4.9418655E-25 + 6.8810003E+08 4.9416831E-25 + 6.8820000E+08 4.9415006E-25 + 6.8829997E+08 4.9413182E-25 + 6.8840000E+08 4.9411358E-25 + 6.8850003E+08 4.9409529E-25 + 6.8860000E+08 4.9407704E-25 + 6.8869997E+08 4.9405885E-25 + 6.8880000E+08 4.9404056E-25 + 6.8890003E+08 4.9402232E-25 + 6.8900000E+08 4.9400408E-25 + 6.8909997E+08 4.9398583E-25 + 6.8920000E+08 4.9396759E-25 + 6.8930003E+08 4.9394935E-25 + 6.8940000E+08 4.9393111E-25 + 6.8949997E+08 4.9391286E-25 + 6.8960000E+08 4.9389462E-25 + 6.8970003E+08 4.9387638E-25 + 6.8980000E+08 4.9385814E-25 + 6.8989997E+08 4.9383989E-25 + 6.9000000E+08 4.9382165E-25 + 6.9010003E+08 4.9380341E-25 + 6.9020000E+08 4.9378517E-25 + 6.9029997E+08 4.9376692E-25 + 6.9040000E+08 4.9374863E-25 + 6.9050003E+08 4.9373039E-25 + 6.9060000E+08 4.9371215E-25 + 6.9069997E+08 4.9369390E-25 + 6.9080000E+08 4.9367566E-25 + 6.9090003E+08 4.9365742E-25 + 6.9100000E+08 4.9363918E-25 + 6.9109997E+08 4.9362094E-25 + 6.9120000E+08 4.9360269E-25 + 6.9130003E+08 4.9358445E-25 + 6.9140000E+08 4.9356621E-25 + 6.9149997E+08 4.9354797E-25 + 6.9160000E+08 4.9352972E-25 + 6.9170003E+08 4.9351148E-25 + 6.9180000E+08 4.9349324E-25 + 6.9189997E+08 4.9347500E-25 + 6.9200000E+08 4.9345675E-25 + 6.9210003E+08 4.9343851E-25 + 6.9220000E+08 4.9342027E-25 + 6.9229997E+08 4.9340203E-25 + 6.9240000E+08 4.9338378E-25 + 6.9250003E+08 4.9336549E-25 + 6.9260000E+08 4.9334730E-25 + 6.9269997E+08 4.9332906E-25 + 6.9280000E+08 4.9331077E-25 + 6.9290003E+08 4.9329252E-25 + 6.9300000E+08 4.9327428E-25 + 6.9309997E+08 4.9325604E-25 + 6.9320000E+08 4.9323780E-25 + 6.9330003E+08 4.9321955E-25 + 6.9340000E+08 4.9320131E-25 + 6.9349997E+08 4.9318307E-25 + 6.9360000E+08 4.9316483E-25 + 6.9370003E+08 4.9314658E-25 + 6.9380000E+08 4.9312834E-25 + 6.9389997E+08 4.9311010E-25 + 6.9400000E+08 4.9309186E-25 + 6.9410003E+08 4.9307361E-25 + 6.9420000E+08 4.9305537E-25 + 6.9429997E+08 4.9303713E-25 + 6.9440000E+08 4.9301889E-25 + 6.9450003E+08 4.9300059E-25 + 6.9460000E+08 4.9298235E-25 + 6.9469997E+08 4.9296416E-25 + 6.9480000E+08 4.9294587E-25 + 6.9490003E+08 4.9292763E-25 + 6.9500000E+08 4.9290938E-25 + 6.9509997E+08 4.9289114E-25 + 6.9520000E+08 4.9287290E-25 + 6.9530003E+08 4.9285466E-25 + 6.9540000E+08 4.9283641E-25 + 6.9549997E+08 4.9281817E-25 + 6.9560000E+08 4.9279993E-25 + 6.9570003E+08 4.9278169E-25 + 6.9580000E+08 4.9276344E-25 + 6.9589997E+08 4.9274520E-25 + 6.9600000E+08 4.9272696E-25 + 6.9610003E+08 4.9270872E-25 + 6.9620000E+08 4.9269047E-25 + 6.9629997E+08 4.9267223E-25 + 6.9640000E+08 4.9265399E-25 + 6.9650003E+08 4.9263575E-25 + 6.9660000E+08 4.9261750E-25 + 6.9669997E+08 4.9259926E-25 + 6.9680000E+08 4.9258097E-25 + 6.9690003E+08 4.9256273E-25 + 6.9700000E+08 4.9254449E-25 + 6.9709997E+08 4.9252624E-25 + 6.9720000E+08 4.9250800E-25 + 6.9730003E+08 4.9248976E-25 + 6.9740000E+08 4.9247152E-25 + 6.9749997E+08 4.9245327E-25 + 6.9760000E+08 4.9243503E-25 + 6.9770003E+08 4.9241679E-25 + 6.9780000E+08 4.9239855E-25 + 6.9789997E+08 4.9238030E-25 + 6.9800000E+08 4.9236206E-25 + 6.9810003E+08 4.9234382E-25 + 6.9820000E+08 4.9232558E-25 + 6.9829997E+08 4.9230733E-25 + 6.9840000E+08 4.9228909E-25 + 6.9850003E+08 4.9227085E-25 + 6.9860000E+08 4.9225261E-25 + 6.9869997E+08 4.9223436E-25 + 6.9880000E+08 4.9221612E-25 + 6.9890003E+08 4.9219783E-25 + 6.9900000E+08 4.9217959E-25 + 6.9909997E+08 4.9216135E-25 + 6.9920000E+08 4.9214310E-25 + 6.9930003E+08 4.9212486E-25 + 6.9940000E+08 4.9210662E-25 + 6.9949997E+08 4.9208838E-25 + 6.9960000E+08 4.9207013E-25 + 6.9970003E+08 4.9205189E-25 + 6.9980000E+08 4.9203365E-25 + 6.9989997E+08 4.9201541E-25 + 7.0000000E+08 4.9199716E-25 + 7.0010003E+08 4.9197892E-25 + 7.0020000E+08 4.9196068E-25 + 7.0029997E+08 4.9194244E-25 + 7.0040000E+08 4.9192419E-25 + 7.0050003E+08 4.9190595E-25 + 7.0060000E+08 4.9188771E-25 + 7.0069997E+08 4.9186947E-25 + 7.0080000E+08 4.9185122E-25 + 7.0090003E+08 4.9183293E-25 + 7.0100000E+08 4.9181469E-25 + 7.0109997E+08 4.9179650E-25 + 7.0120000E+08 4.9177821E-25 + 7.0130003E+08 4.9175996E-25 + 7.0140000E+08 4.9174172E-25 + 7.0149997E+08 4.9172348E-25 + 7.0160000E+08 4.9170524E-25 + 7.0170003E+08 4.9168699E-25 + 7.0180000E+08 4.9166875E-25 + 7.0189997E+08 4.9165051E-25 + 7.0200000E+08 4.9163227E-25 + 7.0210003E+08 4.9161402E-25 + 7.0220000E+08 4.9159578E-25 + 7.0229997E+08 4.9157754E-25 + 7.0240000E+08 4.9155930E-25 + 7.0250003E+08 4.9154105E-25 + 7.0260000E+08 4.9152281E-25 + 7.0269997E+08 4.9150457E-25 + 7.0280000E+08 4.9148633E-25 + 7.0290003E+08 4.9146804E-25 + 7.0300000E+08 4.9144979E-25 + 7.0309997E+08 4.9143160E-25 + 7.0320000E+08 4.9141331E-25 + 7.0330003E+08 4.9139507E-25 + 7.0340000E+08 4.9137682E-25 + 7.0349997E+08 4.9135858E-25 + 7.0360000E+08 4.9134034E-25 + 7.0370003E+08 4.9132210E-25 + 7.0380000E+08 4.9130385E-25 + 7.0389997E+08 4.9128561E-25 + 7.0400000E+08 4.9126737E-25 + 7.0410003E+08 4.9124913E-25 + 7.0420000E+08 4.9123088E-25 + 7.0429997E+08 4.9121264E-25 + 7.0440000E+08 4.9119440E-25 + 7.0450003E+08 4.9117616E-25 + 7.0460000E+08 4.9115791E-25 + 7.0469997E+08 4.9113967E-25 + 7.0480000E+08 4.9112143E-25 + 7.0490003E+08 4.9110314E-25 + 7.0500000E+08 4.9108494E-25 + 7.0509997E+08 4.9106670E-25 + 7.0520000E+08 4.9104841E-25 + 7.0530003E+08 4.9103017E-25 + 7.0540000E+08 4.9101193E-25 + 7.0549997E+08 4.9099368E-25 + 7.0560000E+08 4.9097544E-25 + 7.0570003E+08 4.9095720E-25 + 7.0580000E+08 4.9093896E-25 + 7.0589997E+08 4.9092071E-25 + 7.0600000E+08 4.9090247E-25 + 7.0610003E+08 4.9088423E-25 + 7.0620000E+08 4.9086599E-25 + 7.0629997E+08 4.9084774E-25 + 7.0640000E+08 4.9082950E-25 + 7.0650003E+08 4.9081126E-25 + 7.0660000E+08 4.9079302E-25 + 7.0669997E+08 4.9077477E-25 + 7.0680000E+08 4.9075653E-25 + 7.0690003E+08 4.9073824E-25 + 7.0700000E+08 4.9072005E-25 + 7.0709997E+08 4.9070180E-25 + 7.0720000E+08 4.9068351E-25 + 7.0730003E+08 4.9066527E-25 + 7.0740000E+08 4.9064703E-25 + 7.0749997E+08 4.9062879E-25 + 7.0760000E+08 4.9061054E-25 + 7.0770003E+08 4.9059230E-25 + 7.0780000E+08 4.9057406E-25 + 7.0789997E+08 4.9055582E-25 + 7.0800000E+08 4.9053757E-25 + 7.0810003E+08 4.9051933E-25 + 7.0820000E+08 4.9050109E-25 + 7.0829997E+08 4.9048285E-25 + 7.0840000E+08 4.9046460E-25 + 7.0850003E+08 4.9044636E-25 + 7.0860000E+08 4.9042812E-25 + 7.0869997E+08 4.9040988E-25 + 7.0880000E+08 4.9039163E-25 + 7.0890003E+08 4.9037334E-25 + 7.0900000E+08 4.9035515E-25 + 7.0909997E+08 4.9033691E-25 + 7.0920000E+08 4.9031862E-25 + 7.0930003E+08 4.9030037E-25 + 7.0940000E+08 4.9028213E-25 + 7.0949997E+08 4.9026389E-25 + 7.0960000E+08 4.9024565E-25 + 7.0970003E+08 4.9022740E-25 + 7.0980000E+08 4.9020916E-25 + 7.0989997E+08 4.9019092E-25 + 7.1000000E+08 4.9017268E-25 + 7.1010003E+08 4.9015443E-25 + 7.1020000E+08 4.9013619E-25 + 7.1029997E+08 4.9011795E-25 + 7.1040000E+08 4.9009971E-25 + 7.1050003E+08 4.9008146E-25 + 7.1060000E+08 4.9006322E-25 + 7.1069997E+08 4.9004498E-25 + 7.1080000E+08 4.9002674E-25 + 7.1090003E+08 4.9000849E-25 + 7.1100000E+08 4.8999025E-25 + 7.1109997E+08 4.8997201E-25 + 7.1120000E+08 4.8995372E-25 + 7.1130003E+08 4.8993548E-25 + 7.1140000E+08 4.8991723E-25 + 7.1149997E+08 4.8989899E-25 + 7.1160000E+08 4.8988075E-25 + 7.1170003E+08 4.8986251E-25 + 7.1180000E+08 4.8984426E-25 + 7.1189997E+08 4.8982602E-25 + 7.1200000E+08 4.8980778E-25 + 7.1210003E+08 4.8978954E-25 + 7.1220000E+08 4.8977129E-25 + 7.1229997E+08 4.8975305E-25 + 7.1240000E+08 4.8973481E-25 + 7.1250003E+08 4.8971657E-25 + 7.1260000E+08 4.8969832E-25 + 7.1269997E+08 4.8968008E-25 + 7.1280000E+08 4.8966184E-25 + 7.1290003E+08 4.8964360E-25 + 7.1300000E+08 4.8962535E-25 + 7.1309997E+08 4.8960711E-25 + 7.1320000E+08 4.8958887E-25 + 7.1330003E+08 4.8957058E-25 + 7.1340000E+08 4.8955239E-25 + 7.1349997E+08 4.8953409E-25 + 7.1360000E+08 4.8951585E-25 + 7.1370003E+08 4.8949761E-25 + 7.1380000E+08 4.8947937E-25 + 7.1389997E+08 4.8946112E-25 + 7.1400000E+08 4.8944288E-25 + 7.1410003E+08 4.8942464E-25 + 7.1420000E+08 4.8940640E-25 + 7.1429997E+08 4.8938815E-25 + 7.1440000E+08 4.8936991E-25 + 7.1450003E+08 4.8935167E-25 + 7.1460000E+08 4.8933343E-25 + 7.1469997E+08 4.8931518E-25 + 7.1480000E+08 4.8929694E-25 + 7.1490003E+08 4.8927870E-25 + 7.1500000E+08 4.8926046E-25 + 7.1509997E+08 4.8924221E-25 + 7.1520000E+08 4.8922397E-25 + 7.1530003E+08 4.8920568E-25 + 7.1540000E+08 4.8918744E-25 + 7.1549997E+08 4.8916925E-25 + 7.1560000E+08 4.8915095E-25 + 7.1570003E+08 4.8913271E-25 + 7.1580000E+08 4.8911447E-25 + 7.1589997E+08 4.8909623E-25 + 7.1600000E+08 4.8907798E-25 + 7.1610003E+08 4.8905974E-25 + 7.1620000E+08 4.8904150E-25 + 7.1629997E+08 4.8902326E-25 + 7.1640000E+08 4.8900501E-25 + 7.1650003E+08 4.8898677E-25 + 7.1660000E+08 4.8896853E-25 + 7.1669997E+08 4.8895029E-25 + 7.1680000E+08 4.8893204E-25 + 7.1690003E+08 4.8891380E-25 + 7.1700000E+08 4.8889556E-25 + 7.1709997E+08 4.8887732E-25 + 7.1720000E+08 4.8885908E-25 + 7.1730003E+08 4.8884083E-25 + 7.1740000E+08 4.8882254E-25 + 7.1749997E+08 4.8880435E-25 + 7.1760000E+08 4.8878606E-25 + 7.1770003E+08 4.8876781E-25 + 7.1780000E+08 4.8874957E-25 + 7.1789997E+08 4.8873133E-25 + 7.1800000E+08 4.8871309E-25 + 7.1810003E+08 4.8869484E-25 + 7.1820000E+08 4.8867660E-25 + 7.1829997E+08 4.8865836E-25 + 7.1840000E+08 4.8864012E-25 + 7.1850003E+08 4.8862187E-25 + 7.1860000E+08 4.8860363E-25 + 7.1869997E+08 4.8858539E-25 + 7.1880000E+08 4.8856715E-25 + 7.1890003E+08 4.8854890E-25 + 7.1900000E+08 4.8853066E-25 + 7.1909997E+08 4.8851242E-25 + 7.1920000E+08 4.8849418E-25 + 7.1930003E+08 4.8847589E-25 + 7.1940000E+08 4.8845769E-25 + 7.1949997E+08 4.8843945E-25 + 7.1960000E+08 4.8842121E-25 + 7.1970003E+08 4.8840292E-25 + 7.1980000E+08 4.8838467E-25 + 7.1989997E+08 4.8836643E-25 + 7.2000000E+08 4.8834819E-25 + 7.2010003E+08 4.8832995E-25 + 7.2020000E+08 4.8831170E-25 + 7.2029997E+08 4.8829346E-25 + 7.2040000E+08 4.8827522E-25 + 7.2050003E+08 4.8825698E-25 + 7.2060000E+08 4.8823873E-25 + 7.2069997E+08 4.8822049E-25 + 7.2080000E+08 4.8820225E-25 + 7.2090003E+08 4.8818401E-25 + 7.2100000E+08 4.8816576E-25 + 7.2109997E+08 4.8814752E-25 + 7.2120000E+08 4.8812928E-25 + 7.2130003E+08 4.8811104E-25 + 7.2140000E+08 4.8809280E-25 + 7.2149997E+08 4.8807455E-25 + 7.2160000E+08 4.8805631E-25 + 7.2170003E+08 4.8803802E-25 + 7.2180000E+08 4.8801978E-25 + 7.2189997E+08 4.8800158E-25 + 7.2200000E+08 4.8798329E-25 + 7.2210003E+08 4.8796505E-25 + 7.2220000E+08 4.8794681E-25 + 7.2229997E+08 4.8792856E-25 + 7.2240000E+08 4.8791032E-25 + 7.2250003E+08 4.8789208E-25 + 7.2260000E+08 4.8787384E-25 + 7.2269997E+08 4.8785559E-25 + 7.2280000E+08 4.8783735E-25 + 7.2290003E+08 4.8781911E-25 + 7.2300000E+08 4.8780087E-25 + 7.2309997E+08 4.8778263E-25 + 7.2320000E+08 4.8776438E-25 + 7.2330003E+08 4.8774609E-25 + 7.2340000E+08 4.8772790E-25 + 7.2349997E+08 4.8770966E-25 + 7.2360000E+08 4.8769136E-25 + 7.2370003E+08 4.8767312E-25 + 7.2380000E+08 4.8765488E-25 + 7.2389997E+08 4.8763664E-25 + 7.2400000E+08 4.8761839E-25 + 7.2410003E+08 4.8760015E-25 + 7.2420000E+08 4.8758191E-25 + 7.2429997E+08 4.8756367E-25 + 7.2440000E+08 4.8754542E-25 + 7.2450003E+08 4.8752718E-25 + 7.2460000E+08 4.8750894E-25 + 7.2469997E+08 4.8749070E-25 + 7.2480000E+08 4.8747245E-25 + 7.2490003E+08 4.8745421E-25 + 7.2500000E+08 4.8743597E-25 + 7.2509997E+08 4.8741773E-25 + 7.2520000E+08 4.8739949E-25 + 7.2530003E+08 4.8738124E-25 + 7.2540000E+08 4.8736300E-25 + 7.2549997E+08 4.8734476E-25 + 7.2560000E+08 4.8732652E-25 + 7.2570003E+08 4.8730822E-25 + 7.2580000E+08 4.8729003E-25 + 7.2589997E+08 4.8727179E-25 + 7.2600000E+08 4.8725350E-25 + 7.2610003E+08 4.8723525E-25 + 7.2620000E+08 4.8721701E-25 + 7.2629997E+08 4.8719877E-25 + 7.2640000E+08 4.8718053E-25 + 7.2650003E+08 4.8716228E-25 + 7.2660000E+08 4.8714404E-25 + 7.2669997E+08 4.8712580E-25 + 7.2680000E+08 4.8710756E-25 + 7.2690003E+08 4.8708931E-25 + 7.2700000E+08 4.8707107E-25 + 7.2709997E+08 4.8705283E-25 + 7.2720000E+08 4.8703459E-25 + 7.2730003E+08 4.8701635E-25 + 7.2740000E+08 4.8699810E-25 + 7.2749997E+08 4.8697986E-25 + 7.2760000E+08 4.8696162E-25 + 7.2770003E+08 4.8694333E-25 + 7.2780000E+08 4.8692508E-25 + 7.2789997E+08 4.8690689E-25 + 7.2800000E+08 4.8688860E-25 + 7.2810003E+08 4.8687036E-25 + 7.2820000E+08 4.8685211E-25 + 7.2829997E+08 4.8683387E-25 + 7.2840000E+08 4.8681563E-25 + 7.2850003E+08 4.8679739E-25 + 7.2860000E+08 4.8677914E-25 + 7.2869997E+08 4.8676090E-25 + 7.2880000E+08 4.8674266E-25 + 7.2890003E+08 4.8672442E-25 + 7.2900000E+08 4.8670618E-25 + 7.2909997E+08 4.8668793E-25 + 7.2920000E+08 4.8666969E-25 + 7.2930003E+08 4.8665145E-25 + 7.2940000E+08 4.8663321E-25 + 7.2949997E+08 4.8661496E-25 + 7.2960000E+08 4.8659672E-25 + 7.2970003E+08 4.8657843E-25 + 7.2980000E+08 4.8656024E-25 + 7.2989997E+08 4.8654199E-25 + 7.3000000E+08 4.8652370E-25 + 7.3010003E+08 4.8650546E-25 + 7.3020000E+08 4.8648722E-25 + 7.3029997E+08 4.8646897E-25 + 7.3040000E+08 4.8645073E-25 + 7.3050003E+08 4.8643249E-25 + 7.3060000E+08 4.8641425E-25 + 7.3069997E+08 4.8639600E-25 + 7.3080000E+08 4.8637776E-25 + 7.3090003E+08 4.8635952E-25 + 7.3100000E+08 4.8634128E-25 + 7.3109997E+08 4.8632304E-25 + 7.3120000E+08 4.8630479E-25 + 7.3130003E+08 4.8628655E-25 + 7.3140000E+08 4.8626831E-25 + 7.3149997E+08 4.8625007E-25 + 7.3160000E+08 4.8623182E-25 + 7.3170003E+08 4.8621358E-25 + 7.3180000E+08 4.8619529E-25 + 7.3189997E+08 4.8617710E-25 + 7.3200000E+08 4.8615880E-25 + 7.3210003E+08 4.8614056E-25 + 7.3220000E+08 4.8612232E-25 + 7.3229997E+08 4.8610408E-25 + 7.3240000E+08 4.8608583E-25 + 7.3250003E+08 4.8606759E-25 + 7.3260000E+08 4.8604935E-25 + 7.3269997E+08 4.8603111E-25 + 7.3280000E+08 4.8601286E-25 + 7.3290003E+08 4.8599462E-25 + 7.3300000E+08 4.8597638E-25 + 7.3309997E+08 4.8595903E-25 + 7.3320000E+08 4.8594561E-25 + 7.3330003E+08 4.8593225E-25 + 7.3340000E+08 4.8591884E-25 + 7.3349997E+08 4.8590548E-25 + 7.3360000E+08 4.8589207E-25 + 7.3370003E+08 4.8587866E-25 + 7.3380000E+08 4.8586530E-25 + 7.3389997E+08 4.8585189E-25 + 7.3400000E+08 4.8583853E-25 + 7.3410003E+08 4.8582512E-25 + 7.3420000E+08 4.8581171E-25 + 7.3429997E+08 4.8579834E-25 + 7.3440000E+08 4.8578493E-25 + 7.3450003E+08 4.8577152E-25 + 7.3460000E+08 4.8575816E-25 + 7.3469997E+08 4.8574475E-25 + 7.3480000E+08 4.8573139E-25 + 7.3490003E+08 4.8571798E-25 + 7.3500000E+08 4.8570457E-25 + 7.3509997E+08 4.8569121E-25 + 7.3520000E+08 4.8567780E-25 + 7.3530003E+08 4.8566439E-25 + 7.3540000E+08 4.8565102E-25 + 7.3549997E+08 4.8563761E-25 + 7.3560000E+08 4.8562425E-25 + 7.3570003E+08 4.8561084E-25 + 7.3580000E+08 4.8559743E-25 + 7.3589997E+08 4.8558407E-25 + 7.3600000E+08 4.8557066E-25 + 7.3610003E+08 4.8555725E-25 + 7.3620000E+08 4.8554389E-25 + 7.3629997E+08 4.8553048E-25 + 7.3640000E+08 4.8551712E-25 + 7.3650003E+08 4.8550370E-25 + 7.3660000E+08 4.8549029E-25 + 7.3669997E+08 4.8547693E-25 + 7.3680000E+08 4.8546352E-25 + 7.3690003E+08 4.8545011E-25 + 7.3700000E+08 4.8543675E-25 + 7.3709997E+08 4.8542334E-25 + 7.3720000E+08 4.8540998E-25 + 7.3730003E+08 4.8539657E-25 + 7.3740000E+08 4.8538316E-25 + 7.3749997E+08 4.8536980E-25 + 7.3760000E+08 4.8535638E-25 + 7.3770003E+08 4.8534297E-25 + 7.3780000E+08 4.8532961E-25 + 7.3789997E+08 4.8531620E-25 + 7.3800000E+08 4.8530284E-25 + 7.3810003E+08 4.8528943E-25 + 7.3820000E+08 4.8527607E-25 + 7.3829997E+08 4.8526266E-25 + 7.3840000E+08 4.8524925E-25 + 7.3850003E+08 4.8523589E-25 + 7.3860000E+08 4.8522248E-25 + 7.3869997E+08 4.8520911E-25 + 7.3880000E+08 4.8519570E-25 + 7.3890003E+08 4.8518229E-25 + 7.3900000E+08 4.8516893E-25 + 7.3909997E+08 4.8515552E-25 + 7.3920000E+08 4.8514211E-25 + 7.3930003E+08 4.8512875E-25 + 7.3940000E+08 4.8511534E-25 + 7.3949997E+08 4.8510198E-25 + 7.3960000E+08 4.8508857E-25 + 7.3970003E+08 4.8507516E-25 + 7.3980000E+08 4.8506179E-25 + 7.3989997E+08 4.8504838E-25 + 7.4000000E+08 4.8503497E-25 + 7.4010003E+08 4.8502161E-25 + 7.4020000E+08 4.8500820E-25 + 7.4029997E+08 4.8499484E-25 + 7.4040000E+08 4.8498143E-25 + 7.4050003E+08 4.8496802E-25 + 7.4060000E+08 4.8495466E-25 + 7.4069997E+08 4.8494125E-25 + 7.4080000E+08 4.8492789E-25 + 7.4090003E+08 4.8491447E-25 + 7.4100000E+08 4.8490106E-25 + 7.4109997E+08 4.8488770E-25 + 7.4120000E+08 4.8487429E-25 + 7.4130003E+08 4.8486088E-25 + 7.4140000E+08 4.8484752E-25 + 7.4149997E+08 4.8483411E-25 + 7.4160000E+08 4.8482075E-25 + 7.4170003E+08 4.8480734E-25 + 7.4180000E+08 4.8479393E-25 + 7.4189997E+08 4.8478057E-25 + 7.4200000E+08 4.8476715E-25 + 7.4210003E+08 4.8475374E-25 + 7.4220000E+08 4.8474038E-25 + 7.4229997E+08 4.8472697E-25 + 7.4240000E+08 4.8471361E-25 + 7.4250003E+08 4.8470020E-25 + 7.4260000E+08 4.8468679E-25 + 7.4269997E+08 4.8467343E-25 + 7.4280000E+08 4.8466002E-25 + 7.4290003E+08 4.8464661E-25 + 7.4300000E+08 4.8463325E-25 + 7.4309997E+08 4.8461984E-25 + 7.4320000E+08 4.8460647E-25 + 7.4330003E+08 4.8459306E-25 + 7.4340000E+08 4.8457965E-25 + 7.4349997E+08 4.8456629E-25 + 7.4360000E+08 4.8455288E-25 + 7.4370003E+08 4.8453947E-25 + 7.4380000E+08 4.8452611E-25 + 7.4389997E+08 4.8451270E-25 + 7.4400000E+08 4.8449934E-25 + 7.4410003E+08 4.8448593E-25 + 7.4420000E+08 4.8447252E-25 + 7.4429997E+08 4.8445915E-25 + 7.4440000E+08 4.8444574E-25 + 7.4450003E+08 4.8443233E-25 + 7.4460000E+08 4.8441897E-25 + 7.4469997E+08 4.8440556E-25 + 7.4480000E+08 4.8439220E-25 + 7.4490003E+08 4.8437879E-25 + 7.4500000E+08 4.8436538E-25 + 7.4509997E+08 4.8435202E-25 + 7.4520000E+08 4.8433861E-25 + 7.4530003E+08 4.8432524E-25 + 7.4540000E+08 4.8431183E-25 + 7.4549997E+08 4.8429847E-25 + 7.4560000E+08 4.8428506E-25 + 7.4570003E+08 4.8427165E-25 + 7.4580000E+08 4.8425829E-25 + 7.4589997E+08 4.8424488E-25 + 7.4600000E+08 4.8423147E-25 + 7.4610003E+08 4.8421811E-25 + 7.4620000E+08 4.8420470E-25 + 7.4629997E+08 4.8419134E-25 + 7.4640000E+08 4.8417793E-25 + 7.4650003E+08 4.8416451E-25 + 7.4660000E+08 4.8415115E-25 + 7.4669997E+08 4.8413774E-25 + 7.4680000E+08 4.8412433E-25 + 7.4690003E+08 4.8411097E-25 + 7.4700000E+08 4.8409756E-25 + 7.4709997E+08 4.8408420E-25 + 7.4720000E+08 4.8407079E-25 + 7.4730003E+08 4.8405738E-25 + 7.4740000E+08 4.8404402E-25 + 7.4749997E+08 4.8403061E-25 + 7.4760000E+08 4.8401719E-25 + 7.4770003E+08 4.8400383E-25 + 7.4780000E+08 4.8399042E-25 + 7.4789997E+08 4.8397706E-25 + 7.4800000E+08 4.8396365E-25 + 7.4810003E+08 4.8395024E-25 + 7.4820000E+08 4.8393688E-25 + 7.4829997E+08 4.8392347E-25 + 7.4840000E+08 4.8391006E-25 + 7.4850003E+08 4.8389670E-25 + 7.4860000E+08 4.8388329E-25 + 7.4869997E+08 4.8386992E-25 + 7.4880000E+08 4.8385651E-25 + 7.4890003E+08 4.8384310E-25 + 7.4900000E+08 4.8382974E-25 + 7.4909997E+08 4.8381633E-25 + 7.4920000E+08 4.8380292E-25 + 7.4930003E+08 4.8378956E-25 + 7.4940000E+08 4.8377615E-25 + 7.4949997E+08 4.8376279E-25 + 7.4960000E+08 4.8374938E-25 + 7.4970003E+08 4.8373597E-25 + 7.4980000E+08 4.8372260E-25 + 7.4989997E+08 4.8370919E-25 + 7.5000000E+08 4.8369583E-25 + 7.5010003E+08 4.8368242E-25 + 7.5020000E+08 4.8366901E-25 + 7.5029997E+08 4.8365565E-25 + 7.5040000E+08 4.8364224E-25 + 7.5050003E+08 4.8362888E-25 + 7.5060000E+08 4.8361547E-25 + 7.5069997E+08 4.8360206E-25 + 7.5080000E+08 4.8358870E-25 + 7.5090003E+08 4.8357528E-25 + 7.5100000E+08 4.8356192E-25 + 7.5109997E+08 4.8354851E-25 + 7.5120000E+08 4.8353510E-25 + 7.5130003E+08 4.8352174E-25 + 7.5140000E+08 4.8350833E-25 + 7.5149997E+08 4.8349492E-25 + 7.5160000E+08 4.8348156E-25 + 7.5170003E+08 4.8346815E-25 + 7.5180000E+08 4.8345479E-25 + 7.5189997E+08 4.8344138E-25 + 7.5200000E+08 4.8342797E-25 + 7.5210003E+08 4.8341460E-25 + 7.5220000E+08 4.8340119E-25 + 7.5229997E+08 4.8338783E-25 + 7.5240000E+08 4.8337442E-25 + 7.5250003E+08 4.8336101E-25 + 7.5260000E+08 4.8334765E-25 + 7.5269997E+08 4.8333424E-25 + 7.5280000E+08 4.8332083E-25 + 7.5290003E+08 4.8330747E-25 + 7.5300000E+08 4.8329406E-25 + 7.5309997E+08 4.8328069E-25 + 7.5320000E+08 4.8326728E-25 + 7.5330003E+08 4.8325387E-25 + 7.5340000E+08 4.8324051E-25 + 7.5349997E+08 4.8322710E-25 + 7.5360000E+08 4.8321369E-25 + 7.5370003E+08 4.8320033E-25 + 7.5380000E+08 4.8318692E-25 + 7.5389997E+08 4.8317356E-25 + 7.5400000E+08 4.8316015E-25 + 7.5410003E+08 4.8314674E-25 + 7.5420000E+08 4.8313337E-25 + 7.5429997E+08 4.8311996E-25 + 7.5440000E+08 4.8310655E-25 + 7.5450003E+08 4.8309319E-25 + 7.5460000E+08 4.8307978E-25 + 7.5469997E+08 4.8306642E-25 + 7.5480000E+08 4.8305301E-25 + 7.5490003E+08 4.8303960E-25 + 7.5500000E+08 4.8302624E-25 + 7.5509997E+08 4.8301283E-25 + 7.5520000E+08 4.8299947E-25 + 7.5530003E+08 4.8298605E-25 + 7.5540000E+08 4.8297264E-25 + 7.5549997E+08 4.8295928E-25 + 7.5560000E+08 4.8294587E-25 + 7.5570003E+08 4.8293246E-25 + 7.5580000E+08 4.8291910E-25 + 7.5589997E+08 4.8290569E-25 + 7.5600000E+08 4.8289233E-25 + 7.5610003E+08 4.8287892E-25 + 7.5620000E+08 4.8286551E-25 + 7.5629997E+08 4.8285215E-25 + 7.5640000E+08 4.8283874E-25 + 7.5650003E+08 4.8282532E-25 + 7.5660000E+08 4.8281196E-25 + 7.5669997E+08 4.8279855E-25 + 7.5680000E+08 4.8278519E-25 + 7.5690003E+08 4.8277178E-25 + 7.5700000E+08 4.8275837E-25 + 7.5709997E+08 4.8274501E-25 + 7.5720000E+08 4.8273160E-25 + 7.5730003E+08 4.8271819E-25 + 7.5740000E+08 4.8270483E-25 + 7.5749997E+08 4.8269142E-25 + 7.5760000E+08 4.8267805E-25 + 7.5770003E+08 4.8266464E-25 + 7.5780000E+08 4.8265123E-25 + 7.5789997E+08 4.8263787E-25 + 7.5800000E+08 4.8262446E-25 + 7.5810003E+08 4.8261105E-25 + 7.5820000E+08 4.8259769E-25 + 7.5829997E+08 4.8258428E-25 + 7.5840000E+08 4.8257092E-25 + 7.5850003E+08 4.8255751E-25 + 7.5860000E+08 4.8254410E-25 + 7.5869997E+08 4.8253073E-25 + 7.5880000E+08 4.8251732E-25 + 7.5890003E+08 4.8250391E-25 + 7.5900000E+08 4.8249055E-25 + 7.5909997E+08 4.8247714E-25 + 7.5920000E+08 4.8246378E-25 + 7.5930003E+08 4.8245037E-25 + 7.5940000E+08 4.8243701E-25 + 7.5949997E+08 4.8242360E-25 + 7.5960000E+08 4.8241019E-25 + 7.5970003E+08 4.8239683E-25 + 7.5980000E+08 4.8238341E-25 + 7.5989997E+08 4.8237005E-25 + 7.6000000E+08 4.8235664E-25 + 7.6010003E+08 4.8234323E-25 + 7.6020000E+08 4.8232987E-25 + 7.6029997E+08 4.8231646E-25 + 7.6040000E+08 4.8230305E-25 + 7.6050003E+08 4.8228969E-25 + 7.6060000E+08 4.8227628E-25 + 7.6069997E+08 4.8226292E-25 + 7.6080000E+08 4.8224951E-25 + 7.6090003E+08 4.8223609E-25 + 7.6100000E+08 4.8222273E-25 + 7.6109997E+08 4.8220932E-25 + 7.6120000E+08 4.8219591E-25 + 7.6130003E+08 4.8218255E-25 + 7.6140000E+08 4.8216914E-25 + 7.6149997E+08 4.8215578E-25 + 7.6160000E+08 4.8214237E-25 + 7.6170003E+08 4.8212896E-25 + 7.6180000E+08 4.8211560E-25 + 7.6189997E+08 4.8210219E-25 + 7.6200000E+08 4.8208878E-25 + 7.6210003E+08 4.8207541E-25 + 7.6220000E+08 4.8206200E-25 + 7.6229997E+08 4.8204864E-25 + 7.6240000E+08 4.8203523E-25 + 7.6250003E+08 4.8202182E-25 + 7.6260000E+08 4.8200846E-25 + 7.6269997E+08 4.8199505E-25 + 7.6280000E+08 4.8198164E-25 + 7.6290003E+08 4.8196828E-25 + 7.6300000E+08 4.8195487E-25 + 7.6309997E+08 4.8194150E-25 + 7.6320000E+08 4.8192809E-25 + 7.6330003E+08 4.8191468E-25 + 7.6340000E+08 4.8190132E-25 + 7.6349997E+08 4.8188791E-25 + 7.6360000E+08 4.8187450E-25 + 7.6370003E+08 4.8186114E-25 + 7.6380000E+08 4.8184773E-25 + 7.6389997E+08 4.8183437E-25 + 7.6400000E+08 4.8182096E-25 + 7.6410003E+08 4.8180760E-25 + 7.6420000E+08 4.8179418E-25 + 7.6429997E+08 4.8178077E-25 + 7.6440000E+08 4.8176741E-25 + 7.6450003E+08 4.8175400E-25 + 7.6460000E+08 4.8174064E-25 + 7.6469997E+08 4.8172723E-25 + 7.6480000E+08 4.8171382E-25 + 7.6490003E+08 4.8170046E-25 + 7.6500000E+08 4.8168705E-25 + 7.6509997E+08 4.8167364E-25 + 7.6520000E+08 4.8166028E-25 + 7.6530003E+08 4.8164686E-25 + 7.6540000E+08 4.8163350E-25 + 7.6549997E+08 4.8162009E-25 + 7.6560000E+08 4.8160668E-25 + 7.6570003E+08 4.8159332E-25 + 7.6580000E+08 4.8157991E-25 + 7.6589997E+08 4.8156650E-25 + 7.6600000E+08 4.8155314E-25 + 7.6610003E+08 4.8153973E-25 + 7.6620000E+08 4.8152637E-25 + 7.6629997E+08 4.8151296E-25 + 7.6640000E+08 4.8149955E-25 + 7.6650003E+08 4.8148618E-25 + 7.6660000E+08 4.8147277E-25 + 7.6669997E+08 4.8145941E-25 + 7.6680000E+08 4.8144600E-25 + 7.6690003E+08 4.8143259E-25 + 7.6700000E+08 4.8141923E-25 + 7.6709997E+08 4.8140582E-25 + 7.6720000E+08 4.8139241E-25 + 7.6730003E+08 4.8137905E-25 + 7.6740000E+08 4.8136564E-25 + 7.6749997E+08 4.8135227E-25 + 7.6760000E+08 4.8133886E-25 + 7.6770003E+08 4.8132545E-25 + 7.6780000E+08 4.8131209E-25 + 7.6789997E+08 4.8129868E-25 + 7.6800000E+08 4.8128527E-25 + 7.6810003E+08 4.8127191E-25 + 7.6820000E+08 4.8125850E-25 + 7.6829997E+08 4.8124514E-25 + 7.6840000E+08 4.8123173E-25 + 7.6850003E+08 4.8121832E-25 + 7.6860000E+08 4.8120495E-25 + 7.6869997E+08 4.8119154E-25 + 7.6880000E+08 4.8117818E-25 + 7.6890003E+08 4.8116477E-25 + 7.6900000E+08 4.8115136E-25 + 7.6909997E+08 4.8113800E-25 + 7.6920000E+08 4.8112459E-25 + 7.6930003E+08 4.8111118E-25 + 7.6940000E+08 4.8109782E-25 + 7.6949997E+08 4.8108441E-25 + 7.6960000E+08 4.8107105E-25 + 7.6970003E+08 4.8105764E-25 + 7.6980000E+08 4.8104422E-25 + 7.6989997E+08 4.8103086E-25 + 7.7000000E+08 4.8101745E-25 + 7.7010003E+08 4.8100404E-25 + 7.7020000E+08 4.8099068E-25 + 7.7029997E+08 4.8097727E-25 + 7.7040000E+08 4.8096391E-25 + 7.7050003E+08 4.8095050E-25 + 7.7060000E+08 4.8093709E-25 + 7.7069997E+08 4.8092373E-25 + 7.7080000E+08 4.8091032E-25 + 7.7090003E+08 4.8089690E-25 + 7.7100000E+08 4.8088354E-25 + 7.7109997E+08 4.8087013E-25 + 7.7120000E+08 4.8085677E-25 + 7.7130003E+08 4.8084336E-25 + 7.7140000E+08 4.8082995E-25 + 7.7149997E+08 4.8081659E-25 + 7.7160000E+08 4.8080318E-25 + 7.7170003E+08 4.8078977E-25 + 7.7180000E+08 4.8077641E-25 + 7.7189997E+08 4.8076300E-25 + 7.7200000E+08 4.8074963E-25 + 7.7210003E+08 4.8073622E-25 + 7.7220000E+08 4.8072281E-25 + 7.7229997E+08 4.8070945E-25 + 7.7240000E+08 4.8069604E-25 + 7.7250003E+08 4.8068263E-25 + 7.7260000E+08 4.8066927E-25 + 7.7269997E+08 4.8065586E-25 + 7.7280000E+08 4.8064250E-25 + 7.7290003E+08 4.8062909E-25 + 7.7300000E+08 4.8061568E-25 + 7.7309997E+08 4.8060231E-25 + 7.7320000E+08 4.8058890E-25 + 7.7330003E+08 4.8057554E-25 + 7.7340000E+08 4.8056213E-25 + 7.7349997E+08 4.8054877E-25 + 7.7360000E+08 4.8053536E-25 + 7.7370003E+08 4.8052195E-25 + 7.7380000E+08 4.8050859E-25 + 7.7389997E+08 4.8049518E-25 + 7.7400000E+08 4.8048177E-25 + 7.7410003E+08 4.8046841E-25 + 7.7420000E+08 4.8045499E-25 + 7.7429997E+08 4.8044163E-25 + 7.7440000E+08 4.8042822E-25 + 7.7450003E+08 4.8041481E-25 + 7.7460000E+08 4.8040145E-25 + 7.7469997E+08 4.8038804E-25 + 7.7480000E+08 4.8037463E-25 + 7.7490003E+08 4.8036127E-25 + 7.7500000E+08 4.8034786E-25 + 7.7509997E+08 4.8033450E-25 + 7.7520000E+08 4.8032109E-25 + 7.7530003E+08 4.8030767E-25 + 7.7540000E+08 4.8029431E-25 + 7.7549997E+08 4.8028090E-25 + 7.7560000E+08 4.8026749E-25 + 7.7570003E+08 4.8025413E-25 + 7.7580000E+08 4.8024072E-25 + 7.7589997E+08 4.8022736E-25 + 7.7600000E+08 4.8021395E-25 + 7.7610003E+08 4.8020054E-25 + 7.7620000E+08 4.8018718E-25 + 7.7629997E+08 4.8017377E-25 + 7.7640000E+08 4.8016036E-25 + 7.7650003E+08 4.8014699E-25 + 7.7660000E+08 4.8013358E-25 + 7.7669997E+08 4.8012022E-25 + 7.7680000E+08 4.8010681E-25 + 7.7690003E+08 4.8009340E-25 + 7.7700000E+08 4.8008004E-25 + 7.7709997E+08 4.8006663E-25 + 7.7720000E+08 4.8005322E-25 + 7.7730003E+08 4.8003986E-25 + 7.7740000E+08 4.8002645E-25 + 7.7749997E+08 4.8001308E-25 + 7.7760000E+08 4.7999967E-25 + 7.7770003E+08 4.7998626E-25 + 7.7780000E+08 4.7997290E-25 + 7.7789997E+08 4.7995949E-25 + 7.7800000E+08 4.7994613E-25 + 7.7810003E+08 4.7993272E-25 + 7.7820000E+08 4.7991931E-25 + 7.7829997E+08 4.7990595E-25 + 7.7840000E+08 4.7989254E-25 + 7.7850003E+08 4.7987918E-25 + 7.7860000E+08 4.7986576E-25 + 7.7869997E+08 4.7985235E-25 + 7.7880000E+08 4.7983899E-25 + 7.7890003E+08 4.7982558E-25 + 7.7900000E+08 4.7981222E-25 + 7.7909997E+08 4.7979881E-25 + 7.7920000E+08 4.7978540E-25 + 7.7930003E+08 4.7977204E-25 + 7.7940000E+08 4.7975863E-25 + 7.7949997E+08 4.7974522E-25 + 7.7960000E+08 4.7973186E-25 + 7.7970003E+08 4.7971845E-25 + 7.7980000E+08 4.7970508E-25 + 7.7989997E+08 4.7969167E-25 + 7.8000000E+08 4.7967826E-25 + 7.8010003E+08 4.7966490E-25 + 7.8020000E+08 4.7965149E-25 + 7.8029997E+08 4.7963813E-25 + 7.8040000E+08 4.7962472E-25 + 7.8050003E+08 4.7961131E-25 + 7.8060000E+08 4.7959795E-25 + 7.8069997E+08 4.7958454E-25 + 7.8080000E+08 4.7957113E-25 + 7.8090003E+08 4.7955776E-25 + 7.8100000E+08 4.7954435E-25 + 7.8109997E+08 4.7953099E-25 + 7.8120000E+08 4.7951758E-25 + 7.8130003E+08 4.7950417E-25 + 7.8140000E+08 4.7949081E-25 + 7.8149997E+08 4.7947740E-25 + 7.8160000E+08 4.7946399E-25 + 7.8170003E+08 4.7945063E-25 + 7.8180000E+08 4.7943722E-25 + 7.8189997E+08 4.7942385E-25 + 7.8200000E+08 4.7941044E-25 + 7.8210003E+08 4.7939703E-25 + 7.8220000E+08 4.7938367E-25 + 7.8229997E+08 4.7937026E-25 + 7.8240000E+08 4.7935685E-25 + 7.8250003E+08 4.7934349E-25 + 7.8260000E+08 4.7933008E-25 + 7.8269997E+08 4.7931672E-25 + 7.8280000E+08 4.7930331E-25 + 7.8290003E+08 4.7928990E-25 + 7.8300000E+08 4.7927654E-25 + 7.8309997E+08 4.7926312E-25 + 7.8320000E+08 4.7924976E-25 + 7.8330003E+08 4.7923635E-25 + 7.8340000E+08 4.7922294E-25 + 7.8349997E+08 4.7920958E-25 + 7.8360000E+08 4.7919617E-25 + 7.8370003E+08 4.7918276E-25 + 7.8380000E+08 4.7916940E-25 + 7.8389997E+08 4.7915599E-25 + 7.8400000E+08 4.7914263E-25 + 7.8410003E+08 4.7912922E-25 + 7.8420000E+08 4.7911580E-25 + 7.8429997E+08 4.7910244E-25 + 7.8440000E+08 4.7908903E-25 + 7.8450003E+08 4.7907562E-25 + 7.8460000E+08 4.7906226E-25 + 7.8469997E+08 4.7904885E-25 + 7.8480000E+08 4.7903549E-25 + 7.8490003E+08 4.7902208E-25 + 7.8500000E+08 4.7900867E-25 + 7.8509997E+08 4.7899531E-25 + 7.8520000E+08 4.7898190E-25 + 7.8530003E+08 4.7896848E-25 + 7.8540000E+08 4.7895512E-25 + 7.8549997E+08 4.7894171E-25 + 7.8560000E+08 4.7892835E-25 + 7.8570003E+08 4.7891494E-25 + 7.8580000E+08 4.7890153E-25 + 7.8589997E+08 4.7888817E-25 + 7.8600000E+08 4.7887476E-25 + 7.8610003E+08 4.7886135E-25 + 7.8620000E+08 4.7884799E-25 + 7.8629997E+08 4.7883458E-25 + 7.8640000E+08 4.7882121E-25 + 7.8650003E+08 4.7880780E-25 + 7.8660000E+08 4.7879439E-25 + 7.8669997E+08 4.7878103E-25 + 7.8680000E+08 4.7876762E-25 + 7.8690003E+08 4.7875426E-25 + 7.8700000E+08 4.7874085E-25 + 7.8709997E+08 4.7872744E-25 + 7.8720000E+08 4.7871408E-25 + 7.8730003E+08 4.7870067E-25 + 7.8740000E+08 4.7868731E-25 + 7.8749997E+08 4.7867389E-25 + 7.8760000E+08 4.7866048E-25 + 7.8770003E+08 4.7864712E-25 + 7.8780000E+08 4.7863371E-25 + 7.8789997E+08 4.7862035E-25 + 7.8800000E+08 4.7860694E-25 + 7.8810003E+08 4.7859353E-25 + 7.8820000E+08 4.7858017E-25 + 7.8829997E+08 4.7856676E-25 + 7.8840000E+08 4.7855335E-25 + 7.8850003E+08 4.7853999E-25 + 7.8860000E+08 4.7852657E-25 + 7.8869997E+08 4.7851321E-25 + 7.8880000E+08 4.7849980E-25 + 7.8890003E+08 4.7848639E-25 + 7.8900000E+08 4.7847303E-25 + 7.8909997E+08 4.7845962E-25 + 7.8920000E+08 4.7844621E-25 + 7.8930003E+08 4.7843285E-25 + 7.8940000E+08 4.7841944E-25 + 7.8949997E+08 4.7840608E-25 + 7.8960000E+08 4.7839267E-25 + 7.8970003E+08 4.7837926E-25 + 7.8980000E+08 4.7836589E-25 + 7.8989997E+08 4.7835248E-25 + 7.9000000E+08 4.7833907E-25 + 7.9010003E+08 4.7832571E-25 + 7.9020000E+08 4.7831230E-25 + 7.9029997E+08 4.7829894E-25 + 7.9040000E+08 4.7828553E-25 + 7.9050003E+08 4.7827212E-25 + 7.9060000E+08 4.7825876E-25 + 7.9069997E+08 4.7824535E-25 + 7.9080000E+08 4.7823194E-25 + 7.9090003E+08 4.7821857E-25 + 7.9100000E+08 4.7820516E-25 + 7.9109997E+08 4.7819180E-25 + 7.9120000E+08 4.7817839E-25 + 7.9130003E+08 4.7816498E-25 + 7.9140000E+08 4.7815162E-25 + 7.9149997E+08 4.7813821E-25 + 7.9160000E+08 4.7812480E-25 + 7.9170003E+08 4.7811144E-25 + 7.9180000E+08 4.7809803E-25 + 7.9189997E+08 4.7808466E-25 + 7.9200000E+08 4.7807125E-25 + 7.9210003E+08 4.7805789E-25 + 7.9220000E+08 4.7804448E-25 + 7.9229997E+08 4.7803107E-25 + 7.9240000E+08 4.7801771E-25 + 7.9250003E+08 4.7800430E-25 + 7.9260000E+08 4.7799094E-25 + 7.9269997E+08 4.7797753E-25 + 7.9280000E+08 4.7796412E-25 + 7.9290003E+08 4.7795076E-25 + 7.9300000E+08 4.7793735E-25 + 7.9309997E+08 4.7792393E-25 + 7.9320000E+08 4.7791057E-25 + 7.9330003E+08 4.7789716E-25 + 7.9340000E+08 4.7788380E-25 + 7.9349997E+08 4.7787039E-25 + 7.9360000E+08 4.7785698E-25 + 7.9370003E+08 4.7784362E-25 + 7.9380000E+08 4.7783021E-25 + 7.9389997E+08 4.7781680E-25 + 7.9400000E+08 4.7780344E-25 + 7.9410003E+08 4.7779003E-25 + 7.9420000E+08 4.7777666E-25 + 7.9429997E+08 4.7776325E-25 + 7.9440000E+08 4.7774984E-25 + 7.9450003E+08 4.7773648E-25 + 7.9460000E+08 4.7772307E-25 + 7.9469997E+08 4.7770971E-25 + 7.9480000E+08 4.7769630E-25 + 7.9490003E+08 4.7768289E-25 + 7.9500000E+08 4.7766953E-25 + 7.9509997E+08 4.7765612E-25 + 7.9520000E+08 4.7764271E-25 + 7.9530003E+08 4.7762934E-25 + 7.9540000E+08 4.7761593E-25 + 7.9549997E+08 4.7760257E-25 + 7.9560000E+08 4.7758916E-25 + 7.9570003E+08 4.7757575E-25 + 7.9580000E+08 4.7756239E-25 + 7.9589997E+08 4.7754898E-25 + 7.9600000E+08 4.7753557E-25 + 7.9610003E+08 4.7752221E-25 + 7.9620000E+08 4.7750880E-25 + 7.9629997E+08 4.7749544E-25 + 7.9640000E+08 4.7748202E-25 + 7.9650003E+08 4.7746861E-25 + 7.9660000E+08 4.7745525E-25 + 7.9669997E+08 4.7744184E-25 + 7.9680000E+08 4.7742848E-25 + 7.9690003E+08 4.7741507E-25 + 7.9700000E+08 4.7740166E-25 + 7.9709997E+08 4.7738830E-25 + 7.9720000E+08 4.7737489E-25 + 7.9730003E+08 4.7736148E-25 + 7.9740000E+08 4.7734812E-25 + 7.9749997E+08 4.7733470E-25 + 7.9760000E+08 4.7732134E-25 + 7.9770003E+08 4.7730793E-25 + 7.9780000E+08 4.7729452E-25 + 7.9789997E+08 4.7728116E-25 + 7.9800000E+08 4.7726775E-25 + 7.9810003E+08 4.7725434E-25 + 7.9820000E+08 4.7724098E-25 + 7.9829997E+08 4.7722757E-25 + 7.9840000E+08 4.7721421E-25 + 7.9850003E+08 4.7720080E-25 + 7.9860000E+08 4.7718738E-25 + 7.9869997E+08 4.7717402E-25 + 7.9880000E+08 4.7716061E-25 + 7.9890003E+08 4.7714720E-25 + 7.9900000E+08 4.7713384E-25 + 7.9909997E+08 4.7712043E-25 + 7.9920000E+08 4.7710707E-25 + 7.9930003E+08 4.7709366E-25 + 7.9940000E+08 4.7708025E-25 + 7.9949997E+08 4.7706689E-25 + 7.9960000E+08 4.7705348E-25 + 7.9970003E+08 4.7704007E-25 + 7.9980000E+08 4.7702670E-25 + 7.9989997E+08 4.7701329E-25 + 8.0000000E+08 4.7699993E-25 + 8.0010003E+08 4.7698652E-25 + 8.0020000E+08 4.7697311E-25 + 8.0029997E+08 4.7695975E-25 + 8.0040000E+08 4.7694634E-25 + 8.0050003E+08 4.7693293E-25 + 8.0060000E+08 4.7691957E-25 + 8.0069997E+08 4.7690616E-25 + 8.0080000E+08 4.7689279E-25 + 8.0090003E+08 4.7687938E-25 + 8.0100000E+08 4.7686597E-25 + 8.0109997E+08 4.7685261E-25 + 8.0120000E+08 4.7683920E-25 + 8.0130003E+08 4.7682584E-25 + 8.0140000E+08 4.7681243E-25 + 8.0149997E+08 4.7679907E-25 + 8.0160000E+08 4.7678566E-25 + 8.0170003E+08 4.7677225E-25 + 8.0180000E+08 4.7675889E-25 + 8.0189997E+08 4.7674547E-25 + 8.0200000E+08 4.7673206E-25 + 8.0210003E+08 4.7671870E-25 + 8.0220000E+08 4.7670529E-25 + 8.0229997E+08 4.7669193E-25 + 8.0240000E+08 4.7667852E-25 + 8.0250003E+08 4.7666511E-25 + 8.0260000E+08 4.7665175E-25 + 8.0269997E+08 4.7663834E-25 + 8.0280000E+08 4.7662493E-25 + 8.0290003E+08 4.7661157E-25 + 8.0300000E+08 4.7659816E-25 + 8.0309997E+08 4.7658479E-25 + 8.0320000E+08 4.7657138E-25 + 8.0330003E+08 4.7655797E-25 + 8.0340000E+08 4.7654461E-25 + 8.0349997E+08 4.7653120E-25 + 8.0360000E+08 4.7651779E-25 + 8.0370003E+08 4.7650443E-25 + 8.0380000E+08 4.7649102E-25 + 8.0389997E+08 4.7647766E-25 + 8.0400000E+08 4.7646425E-25 + 8.0410003E+08 4.7645084E-25 + 8.0420000E+08 4.7643747E-25 + 8.0429997E+08 4.7642406E-25 + 8.0440000E+08 4.7641065E-25 + 8.0450003E+08 4.7639729E-25 + 8.0460000E+08 4.7638388E-25 + 8.0469997E+08 4.7637052E-25 + 8.0480000E+08 4.7635711E-25 + 8.0490003E+08 4.7634370E-25 + 8.0500000E+08 4.7633034E-25 + 8.0509997E+08 4.7631693E-25 + 8.0520000E+08 4.7630352E-25 + 8.0530003E+08 4.7629015E-25 + 8.0540000E+08 4.7627674E-25 + 8.0549997E+08 4.7626338E-25 + 8.0560000E+08 4.7624997E-25 + 8.0570003E+08 4.7623656E-25 + 8.0580000E+08 4.7622320E-25 + 8.0589997E+08 4.7620979E-25 + 8.0600000E+08 4.7619638E-25 + 8.0610003E+08 4.7618302E-25 + 8.0620000E+08 4.7616961E-25 + 8.0629997E+08 4.7615625E-25 + 8.0640000E+08 4.7614283E-25 + 8.0650003E+08 4.7612947E-25 + 8.0660000E+08 4.7611606E-25 + 8.0669997E+08 4.7610265E-25 + 8.0680000E+08 4.7608929E-25 + 8.0690003E+08 4.7607588E-25 + 8.0700000E+08 4.7606252E-25 + 8.0709997E+08 4.7604911E-25 + 8.0720000E+08 4.7603570E-25 + 8.0730003E+08 4.7602234E-25 + 8.0740000E+08 4.7600893E-25 + 8.0749997E+08 4.7599551E-25 + 8.0760000E+08 4.7598215E-25 + 8.0770003E+08 4.7596874E-25 + 8.0780000E+08 4.7595538E-25 + 8.0789997E+08 4.7594197E-25 + 8.0800000E+08 4.7592856E-25 + 8.0810003E+08 4.7591520E-25 + 8.0820000E+08 4.7590179E-25 + 8.0829997E+08 4.7588843E-25 + 8.0840000E+08 4.7587502E-25 + 8.0850003E+08 4.7586161E-25 + 8.0860000E+08 4.7584824E-25 + 8.0869997E+08 4.7583483E-25 + 8.0880000E+08 4.7582142E-25 + 8.0890003E+08 4.7580806E-25 + 8.0900000E+08 4.7579465E-25 + 8.0909997E+08 4.7578129E-25 + 8.0920000E+08 4.7576788E-25 + 8.0930003E+08 4.7575447E-25 + 8.0940000E+08 4.7574111E-25 + 8.0949997E+08 4.7572770E-25 + 8.0960000E+08 4.7571429E-25 + 8.0970003E+08 4.7570092E-25 + 8.0980000E+08 4.7568751E-25 + 8.0989997E+08 4.7567415E-25 + 8.1000000E+08 4.7566074E-25 + 8.1010003E+08 4.7564733E-25 + 8.1020000E+08 4.7563397E-25 + 8.1029997E+08 4.7562056E-25 + 8.1040000E+08 4.7560720E-25 + 8.1050003E+08 4.7559379E-25 + 8.1060000E+08 4.7558038E-25 + 8.1069997E+08 4.7556702E-25 + 8.1080000E+08 4.7555360E-25 + 8.1090003E+08 4.7554019E-25 + 8.1100000E+08 4.7552683E-25 + 8.1109997E+08 4.7551342E-25 + 8.1120000E+08 4.7550006E-25 + 8.1130003E+08 4.7548665E-25 + 8.1140000E+08 4.7547324E-25 + 8.1149997E+08 4.7545988E-25 + 8.1160000E+08 4.7544647E-25 + 8.1170003E+08 4.7543306E-25 + 8.1180000E+08 4.7541970E-25 + 8.1189997E+08 4.7540628E-25 + 8.1200000E+08 4.7539292E-25 + 8.1210003E+08 4.7537951E-25 + 8.1220000E+08 4.7536610E-25 + 8.1229997E+08 4.7535274E-25 + 8.1240000E+08 4.7533933E-25 + 8.1250003E+08 4.7532592E-25 + 8.1260000E+08 4.7531256E-25 + 8.1269997E+08 4.7529915E-25 + 8.1280000E+08 4.7528579E-25 + 8.1290003E+08 4.7527238E-25 + 8.1300000E+08 4.7525897E-25 + 8.1309997E+08 4.7524560E-25 + 8.1320000E+08 4.7523219E-25 + 8.1330003E+08 4.7521878E-25 + 8.1340000E+08 4.7520542E-25 + 8.1349997E+08 4.7519201E-25 + 8.1360000E+08 4.7517865E-25 + 8.1370003E+08 4.7516524E-25 + 8.1380000E+08 4.7515183E-25 + 8.1389997E+08 4.7513847E-25 + 8.1400000E+08 4.7512506E-25 + 8.1410003E+08 4.7511165E-25 + 8.1420000E+08 4.7509828E-25 + 8.1429997E+08 4.7508487E-25 + 8.1440000E+08 4.7507151E-25 + 8.1450003E+08 4.7505810E-25 + 8.1460000E+08 4.7504469E-25 + 8.1469997E+08 4.7503133E-25 + 8.1480000E+08 4.7501792E-25 + 8.1490003E+08 4.7500451E-25 + 8.1500000E+08 4.7499115E-25 + 8.1509997E+08 4.7497774E-25 + 8.1520000E+08 4.7496437E-25 + 8.1530003E+08 4.7495096E-25 + 8.1540000E+08 4.7493760E-25 + 8.1549997E+08 4.7492419E-25 + 8.1560000E+08 4.7491078E-25 + 8.1570003E+08 4.7489742E-25 + 8.1580000E+08 4.7488401E-25 + 8.1589997E+08 4.7487065E-25 + 8.1600000E+08 4.7485724E-25 + 8.1610003E+08 4.7484383E-25 + 8.1620000E+08 4.7483047E-25 + 8.1629997E+08 4.7481706E-25 + 8.1640000E+08 4.7480364E-25 + 8.1650003E+08 4.7479028E-25 + 8.1660000E+08 4.7477687E-25 + 8.1669997E+08 4.7476351E-25 + 8.1680000E+08 4.7475010E-25 + 8.1690003E+08 4.7473669E-25 + 8.1700000E+08 4.7472333E-25 + 8.1709997E+08 4.7470992E-25 + 8.1720000E+08 4.7469651E-25 + 8.1730003E+08 4.7468315E-25 + 8.1740000E+08 4.7466974E-25 + 8.1749997E+08 4.7465637E-25 + 8.1760000E+08 4.7464296E-25 + 8.1770003E+08 4.7462955E-25 + 8.1780000E+08 4.7461619E-25 + 8.1789997E+08 4.7460278E-25 + 8.1800000E+08 4.7458937E-25 + 8.1810003E+08 4.7457601E-25 + 8.1820000E+08 4.7456260E-25 + 8.1829997E+08 4.7454924E-25 + 8.1840000E+08 4.7453583E-25 + 8.1850003E+08 4.7452242E-25 + 8.1860000E+08 4.7450905E-25 + 8.1869997E+08 4.7449564E-25 + 8.1880000E+08 4.7448223E-25 + 8.1890003E+08 4.7446887E-25 + 8.1900000E+08 4.7445546E-25 + 8.1909997E+08 4.7444210E-25 + 8.1920000E+08 4.7442869E-25 + 8.1930003E+08 4.7441528E-25 + 8.1940000E+08 4.7440192E-25 + 8.1949997E+08 4.7438851E-25 + 8.1960000E+08 4.7437510E-25 + 8.1970003E+08 4.7436173E-25 + 8.1980000E+08 4.7434832E-25 + 8.1989997E+08 4.7433496E-25 + 8.2000000E+08 4.7432155E-25 + 8.2010003E+08 4.7430814E-25 + 8.2020000E+08 4.7429478E-25 + 8.2029997E+08 4.7428137E-25 + 8.2040000E+08 4.7426801E-25 + 8.2050003E+08 4.7425460E-25 + 8.2060000E+08 4.7424124E-25 + 8.2069997E+08 4.7422783E-25 + 8.2080000E+08 4.7421441E-25 + 8.2090003E+08 4.7420105E-25 + 8.2100000E+08 4.7418764E-25 + 8.2109997E+08 4.7417423E-25 + 8.2120000E+08 4.7416087E-25 + 8.2130003E+08 4.7414746E-25 + 8.2140000E+08 4.7413410E-25 + 8.2149997E+08 4.7412069E-25 + 8.2160000E+08 4.7410728E-25 + 8.2170003E+08 4.7409392E-25 + 8.2180000E+08 4.7408051E-25 + 8.2189997E+08 4.7406709E-25 + 8.2200000E+08 4.7405373E-25 + 8.2210003E+08 4.7404032E-25 + 8.2220000E+08 4.7402696E-25 + 8.2229997E+08 4.7401355E-25 + 8.2240000E+08 4.7400014E-25 + 8.2250003E+08 4.7398678E-25 + 8.2260000E+08 4.7397337E-25 + 8.2269997E+08 4.7396001E-25 + 8.2280000E+08 4.7394660E-25 + 8.2290003E+08 4.7393319E-25 + 8.2300000E+08 4.7391982E-25 + 8.2309997E+08 4.7390641E-25 + 8.2320000E+08 4.7389300E-25 + 8.2330003E+08 4.7387964E-25 + 8.2340000E+08 4.7386623E-25 + 8.2349997E+08 4.7385287E-25 + 8.2360000E+08 4.7383946E-25 + 8.2370003E+08 4.7382605E-25 + 8.2380000E+08 4.7381269E-25 + 8.2389997E+08 4.7379928E-25 + 8.2400000E+08 4.7378587E-25 + 8.2410003E+08 4.7377250E-25 + 8.2420000E+08 4.7375909E-25 + 8.2429997E+08 4.7374573E-25 + 8.2440000E+08 4.7373232E-25 + 8.2450003E+08 4.7371891E-25 + 8.2460000E+08 4.7370555E-25 + 8.2469997E+08 4.7369214E-25 + 8.2480000E+08 4.7367878E-25 + 8.2490003E+08 4.7366537E-25 + 8.2500000E+08 4.7365196E-25 + 8.2509997E+08 4.7363860E-25 + 8.2520000E+08 4.7362518E-25 + 8.2530003E+08 4.7361177E-25 + 8.2540000E+08 4.7359841E-25 + 8.2549997E+08 4.7358500E-25 + 8.2560000E+08 4.7357164E-25 + 8.2570003E+08 4.7355823E-25 + 8.2580000E+08 4.7354482E-25 + 8.2589997E+08 4.7353146E-25 + 8.2600000E+08 4.7351805E-25 + 8.2610003E+08 4.7350464E-25 + 8.2620000E+08 4.7349128E-25 + 8.2629997E+08 4.7347787E-25 + 8.2640000E+08 4.7346450E-25 + 8.2650003E+08 4.7345109E-25 + 8.2660000E+08 4.7343768E-25 + 8.2669997E+08 4.7342432E-25 + 8.2680000E+08 4.7341091E-25 + 8.2690003E+08 4.7339750E-25 + 8.2700000E+08 4.7338414E-25 + 8.2709997E+08 4.7337073E-25 + 8.2720000E+08 4.7335737E-25 + 8.2730003E+08 4.7334396E-25 + 8.2740000E+08 4.7333055E-25 + 8.2749997E+08 4.7331718E-25 + 8.2760000E+08 4.7330377E-25 + 8.2770003E+08 4.7329036E-25 + 8.2780000E+08 4.7327700E-25 + 8.2789997E+08 4.7326359E-25 + 8.2800000E+08 4.7325023E-25 + 8.2810003E+08 4.7323682E-25 + 8.2820000E+08 4.7322341E-25 + 8.2829997E+08 4.7321005E-25 + 8.2840000E+08 4.7319664E-25 + 8.2850003E+08 4.7318323E-25 + 8.2860000E+08 4.7316986E-25 + 8.2869997E+08 4.7315645E-25 + 8.2880000E+08 4.7314309E-25 + 8.2890003E+08 4.7312968E-25 + 8.2900000E+08 4.7311627E-25 + 8.2909997E+08 4.7310291E-25 + 8.2920000E+08 4.7308950E-25 + 8.2930003E+08 4.7307614E-25 + 8.2940000E+08 4.7306273E-25 + 8.2949997E+08 4.7304937E-25 + 8.2960000E+08 4.7303596E-25 + 8.2970003E+08 4.7302254E-25 + 8.2980000E+08 4.7300918E-25 + 8.2989997E+08 4.7299577E-25 + 8.3000000E+08 4.7298236E-25 + 8.3010003E+08 4.7296900E-25 + 8.3020000E+08 4.7295559E-25 + 8.3029997E+08 4.7294223E-25 + 8.3040000E+08 4.7292882E-25 + 8.3050003E+08 4.7291541E-25 + 8.3060000E+08 4.7290205E-25 + 8.3069997E+08 4.7288864E-25 + 8.3080000E+08 4.7287522E-25 + 8.3090003E+08 4.7286186E-25 + 8.3100000E+08 4.7284845E-25 + 8.3109997E+08 4.7283509E-25 + 8.3120000E+08 4.7282168E-25 + 8.3130003E+08 4.7280827E-25 + 8.3140000E+08 4.7279491E-25 + 8.3149997E+08 4.7278150E-25 + 8.3160000E+08 4.7276809E-25 + 8.3170003E+08 4.7275473E-25 + 8.3180000E+08 4.7274132E-25 + 8.3189997E+08 4.7272795E-25 + 8.3200000E+08 4.7271454E-25 + 8.3210003E+08 4.7270113E-25 + 8.3220000E+08 4.7268777E-25 + 8.3229997E+08 4.7267436E-25 + 8.3240000E+08 4.7266095E-25 + 8.3250003E+08 4.7264759E-25 + 8.3260000E+08 4.7263418E-25 + 8.3269997E+08 4.7262082E-25 + 8.3280000E+08 4.7260741E-25 + 8.3290003E+08 4.7259400E-25 + 8.3300000E+08 4.7258063E-25 + 8.3309997E+08 4.7256722E-25 + 8.3320000E+08 4.7255381E-25 + 8.3330003E+08 4.7254045E-25 + 8.3340000E+08 4.7252704E-25 + 8.3349997E+08 4.7251368E-25 + 8.3360000E+08 4.7250027E-25 + 8.3370003E+08 4.7248686E-25 + 8.3380000E+08 4.7247350E-25 + 8.3389997E+08 4.7246009E-25 + 8.3400000E+08 4.7244673E-25 + 8.3410003E+08 4.7243331E-25 + 8.3420000E+08 4.7241990E-25 + 8.3429997E+08 4.7240654E-25 + 8.3440000E+08 4.7239313E-25 + 8.3450003E+08 4.7237977E-25 + 8.3460000E+08 4.7236636E-25 + 8.3469997E+08 4.7235295E-25 + 8.3480000E+08 4.7233959E-25 + 8.3490003E+08 4.7232618E-25 + 8.3500000E+08 4.7231282E-25 + 8.3509997E+08 4.7229941E-25 + 8.3520000E+08 4.7228599E-25 + 8.3530003E+08 4.7227263E-25 + 8.3540000E+08 4.7225922E-25 + 8.3549997E+08 4.7224581E-25 + 8.3560000E+08 4.7223245E-25 + 8.3570003E+08 4.7221904E-25 + 8.3580000E+08 4.7220568E-25 + 8.3589997E+08 4.7219227E-25 + 8.3600000E+08 4.7217886E-25 + 8.3610003E+08 4.7216550E-25 + 8.3620000E+08 4.7215209E-25 + 8.3629997E+08 4.7213868E-25 + 8.3640000E+08 4.7212531E-25 + 8.3650003E+08 4.7211190E-25 + 8.3660000E+08 4.7209854E-25 + 8.3669997E+08 4.7208513E-25 + 8.3680000E+08 4.7207172E-25 + 8.3690003E+08 4.7205836E-25 + 8.3700000E+08 4.7204495E-25 + 8.3709997E+08 4.7203159E-25 + 8.3720000E+08 4.7201818E-25 + 8.3730003E+08 4.7200477E-25 + 8.3740000E+08 4.7199140E-25 + 8.3749997E+08 4.7197799E-25 + 8.3760000E+08 4.7196458E-25 + 8.3770003E+08 4.7195122E-25 + 8.3780000E+08 4.7193781E-25 + 8.3789997E+08 4.7192445E-25 + 8.3800000E+08 4.7191104E-25 + 8.3810003E+08 4.7189763E-25 + 8.3820000E+08 4.7188427E-25 + 8.3829997E+08 4.7187086E-25 + 8.3840000E+08 4.7185745E-25 + 8.3850003E+08 4.7184408E-25 + 8.3860000E+08 4.7183067E-25 + 8.3869997E+08 4.7181731E-25 + 8.3880000E+08 4.7180390E-25 + 8.3890003E+08 4.7179049E-25 + 8.3900000E+08 4.7177713E-25 + 8.3909997E+08 4.7176372E-25 + 8.3920000E+08 4.7175036E-25 + 8.3930003E+08 4.7173695E-25 + 8.3940000E+08 4.7172354E-25 + 8.3949997E+08 4.7171018E-25 + 8.3960000E+08 4.7169677E-25 + 8.3970003E+08 4.7168335E-25 + 8.3980000E+08 4.7166999E-25 + 8.3989997E+08 4.7165658E-25 + 8.4000000E+08 4.7164322E-25 + 8.4010003E+08 4.7162981E-25 + 8.4020000E+08 4.7161640E-25 + 8.4029997E+08 4.7160304E-25 + 8.4040000E+08 4.7158963E-25 + 8.4050003E+08 4.7157622E-25 + 8.4060000E+08 4.7156286E-25 + 8.4069997E+08 4.7154945E-25 + 8.4080000E+08 4.7153608E-25 + 8.4090003E+08 4.7152267E-25 + 8.4100000E+08 4.7150926E-25 + 8.4109997E+08 4.7149590E-25 + 8.4120000E+08 4.7148249E-25 + 8.4130003E+08 4.7146908E-25 + 8.4140000E+08 4.7145572E-25 + 8.4149997E+08 4.7144231E-25 + 8.4160000E+08 4.7142895E-25 + 8.4170003E+08 4.7141554E-25 + 8.4180000E+08 4.7140213E-25 + 8.4189997E+08 4.7138876E-25 + 8.4200000E+08 4.7137535E-25 + 8.4210003E+08 4.7136194E-25 + 8.4220000E+08 4.7134858E-25 + 8.4229997E+08 4.7133517E-25 + 8.4240000E+08 4.7132181E-25 + 8.4250003E+08 4.7130840E-25 + 8.4260000E+08 4.7129499E-25 + 8.4269997E+08 4.7128163E-25 + 8.4280000E+08 4.7126822E-25 + 8.4290003E+08 4.7125486E-25 + 8.4300000E+08 4.7124144E-25 + 8.4309997E+08 4.7122803E-25 + 8.4320000E+08 4.7121467E-25 + 8.4330003E+08 4.7120126E-25 + 8.4340000E+08 4.7118790E-25 + 8.4349997E+08 4.7117449E-25 + 8.4360000E+08 4.7116108E-25 + 8.4370003E+08 4.7114772E-25 + 8.4380000E+08 4.7113431E-25 + 8.4389997E+08 4.7112095E-25 + 8.4400000E+08 4.7110754E-25 + 8.4410003E+08 4.7109412E-25 + 8.4420000E+08 4.7108076E-25 + 8.4429997E+08 4.7106735E-25 + 8.4440000E+08 4.7105394E-25 + 8.4450003E+08 4.7104058E-25 + 8.4460000E+08 4.7102717E-25 + 8.4469997E+08 4.7101381E-25 + 8.4480000E+08 4.7100040E-25 + 8.4490003E+08 4.7098699E-25 + 8.4500000E+08 4.7097363E-25 + 8.4509997E+08 4.7096022E-25 + 8.4520000E+08 4.7094680E-25 + 8.4530003E+08 4.7093344E-25 + 8.4540000E+08 4.7092003E-25 + 8.4549997E+08 4.7090667E-25 + 8.4560000E+08 4.7089326E-25 + 8.4570003E+08 4.7087985E-25 + 8.4580000E+08 4.7086649E-25 + 8.4589997E+08 4.7085308E-25 + 8.4600000E+08 4.7083967E-25 + 8.4610003E+08 4.7082631E-25 + 8.4620000E+08 4.7081290E-25 + 8.4629997E+08 4.7079953E-25 + 8.4640000E+08 4.7078612E-25 + 8.4650003E+08 4.7077271E-25 + 8.4660000E+08 4.7075935E-25 + 8.4669997E+08 4.7074594E-25 + 8.4680000E+08 4.7073253E-25 + 8.4690003E+08 4.7071917E-25 + 8.4700000E+08 4.7070576E-25 + 8.4709997E+08 4.7069240E-25 + 8.4720000E+08 4.7067899E-25 + 8.4730003E+08 4.7066558E-25 + 8.4740000E+08 4.7065221E-25 + 8.4749997E+08 4.7063880E-25 + 8.4760000E+08 4.7062544E-25 + 8.4770003E+08 4.7061203E-25 + 8.4780000E+08 4.7059862E-25 + 8.4789997E+08 4.7058526E-25 + 8.4800000E+08 4.7057185E-25 + 8.4810003E+08 4.7055849E-25 + 8.4820000E+08 4.7054508E-25 + 8.4829997E+08 4.7053167E-25 + 8.4840000E+08 4.7051831E-25 + 8.4850003E+08 4.7050489E-25 + 8.4860000E+08 4.7049153E-25 + 8.4869997E+08 4.7047812E-25 + 8.4880000E+08 4.7046471E-25 + 8.4890003E+08 4.7045135E-25 + 8.4900000E+08 4.7043794E-25 + 8.4909997E+08 4.7042453E-25 + 8.4920000E+08 4.7041117E-25 + 8.4930003E+08 4.7039776E-25 + 8.4940000E+08 4.7038440E-25 + 8.4949997E+08 4.7037099E-25 + 8.4960000E+08 4.7035758E-25 + 8.4970003E+08 4.7034421E-25 + 8.4980000E+08 4.7033080E-25 + 8.4989997E+08 4.7031739E-25 + 8.5000000E+08 4.7030403E-25 + 8.5010003E+08 4.7029062E-25 + 8.5020000E+08 4.7027726E-25 + 8.5029997E+08 4.7026385E-25 + 8.5040000E+08 4.7025044E-25 + 8.5050003E+08 4.7023708E-25 + 8.5060000E+08 4.7022367E-25 + 8.5069997E+08 4.7021030E-25 + 8.5080000E+08 4.7019689E-25 + 8.5090003E+08 4.7018348E-25 + 8.5100000E+08 4.7017012E-25 + 8.5109997E+08 4.7015671E-25 + 8.5120000E+08 4.7014330E-25 + 8.5130003E+08 4.7012994E-25 + 8.5140000E+08 4.7011653E-25 + 8.5149997E+08 4.7010317E-25 + 8.5160000E+08 4.7008976E-25 + 8.5170003E+08 4.7007635E-25 + 8.5180000E+08 4.7006298E-25 + 8.5189997E+08 4.7004957E-25 + 8.5200000E+08 4.7003616E-25 + 8.5210003E+08 4.7002280E-25 + 8.5220000E+08 4.7000939E-25 + 8.5229997E+08 4.6999603E-25 + 8.5240000E+08 4.6998262E-25 + 8.5250003E+08 4.6996921E-25 + 8.5260000E+08 4.6995585E-25 + 8.5269997E+08 4.6994244E-25 + 8.5280000E+08 4.6992908E-25 + 8.5290003E+08 4.6991567E-25 + 8.5300000E+08 4.6990225E-25 + 8.5309997E+08 4.6988889E-25 + 8.5320000E+08 4.6987548E-25 + 8.5330003E+08 4.6986207E-25 + 8.5340000E+08 4.6984871E-25 + 8.5349997E+08 4.6983530E-25 + 8.5360000E+08 4.6982194E-25 + 8.5370003E+08 4.6980853E-25 + 8.5380000E+08 4.6979512E-25 + 8.5389997E+08 4.6978176E-25 + 8.5400000E+08 4.6976835E-25 + 8.5410003E+08 4.6975493E-25 + 8.5420000E+08 4.6974157E-25 + 8.5429997E+08 4.6972816E-25 + 8.5440000E+08 4.6971480E-25 + 8.5450003E+08 4.6970139E-25 + 8.5460000E+08 4.6968798E-25 + 8.5469997E+08 4.6967462E-25 + 8.5480000E+08 4.6966121E-25 + 8.5490003E+08 4.6964780E-25 + 8.5500000E+08 4.6963444E-25 + 8.5509997E+08 4.6962103E-25 + 8.5520000E+08 4.6960766E-25 + 8.5530003E+08 4.6959425E-25 + 8.5540000E+08 4.6958084E-25 + 8.5549997E+08 4.6956748E-25 + 8.5560000E+08 4.6955407E-25 + 8.5570003E+08 4.6954066E-25 + 8.5580000E+08 4.6952730E-25 + 8.5589997E+08 4.6951389E-25 + 8.5600000E+08 4.6950053E-25 + 8.5610003E+08 4.6948712E-25 + 8.5620000E+08 4.6947371E-25 + 8.5629997E+08 4.6946034E-25 + 8.5640000E+08 4.6944693E-25 + 8.5650003E+08 4.6943352E-25 + 8.5660000E+08 4.6942016E-25 + 8.5669997E+08 4.6940675E-25 + 8.5680000E+08 4.6939339E-25 + 8.5690003E+08 4.6937998E-25 + 8.5700000E+08 4.6936657E-25 + 8.5709997E+08 4.6935321E-25 + 8.5720000E+08 4.6933980E-25 + 8.5730003E+08 4.6932639E-25 + 8.5740000E+08 4.6931302E-25 + 8.5749997E+08 4.6929966E-25 + 8.5760000E+08 4.6928625E-25 + 8.5770003E+08 4.6927284E-25 + 8.5780000E+08 4.6925948E-25 + 8.5789997E+08 4.6924607E-25 + 8.5800000E+08 4.6923266E-25 + 8.5810003E+08 4.6921930E-25 + 8.5820000E+08 4.6920589E-25 + 8.5829997E+08 4.6919253E-25 + 8.5840000E+08 4.6917912E-25 + 8.5850003E+08 4.6916570E-25 + 8.5860000E+08 4.6915234E-25 + 8.5869997E+08 4.6913893E-25 + 8.5880000E+08 4.6912552E-25 + 8.5890003E+08 4.6911216E-25 + 8.5900000E+08 4.6909875E-25 + 8.5909997E+08 4.6908539E-25 + 8.5920000E+08 4.6907198E-25 + 8.5930003E+08 4.6905857E-25 + 8.5940000E+08 4.6904521E-25 + 8.5949997E+08 4.6903180E-25 + 8.5960000E+08 4.6901839E-25 + 8.5970003E+08 4.6900502E-25 + 8.5980000E+08 4.6899161E-25 + 8.5989997E+08 4.6897825E-25 + 8.6000000E+08 4.6896484E-25 + 8.6010003E+08 4.6895143E-25 + 8.6020000E+08 4.6893807E-25 + 8.6029997E+08 4.6892466E-25 + 8.6040000E+08 4.6891125E-25 + 8.6050003E+08 4.6889789E-25 + 8.6060000E+08 4.6888448E-25 + 8.6069997E+08 4.6887111E-25 + 8.6080000E+08 4.6885770E-25 + 8.6090003E+08 4.6884429E-25 + 8.6100000E+08 4.6883093E-25 + 8.6109997E+08 4.6881752E-25 + 8.6120000E+08 4.6880411E-25 + 8.6130003E+08 4.6879075E-25 + 8.6140000E+08 4.6877734E-25 + 8.6149997E+08 4.6876398E-25 + 8.6160000E+08 4.6875057E-25 + 8.6170003E+08 4.6873716E-25 + 8.6180000E+08 4.6872379E-25 + 8.6189997E+08 4.6871038E-25 + 8.6200000E+08 4.6869697E-25 + 8.6210003E+08 4.6868361E-25 + 8.6220000E+08 4.6867020E-25 + 8.6229997E+08 4.6865684E-25 + 8.6240000E+08 4.6864343E-25 + 8.6250003E+08 4.6863007E-25 + 8.6260000E+08 4.6861666E-25 + 8.6269997E+08 4.6860325E-25 + 8.6280000E+08 4.6858989E-25 + 8.6290003E+08 4.6857648E-25 + 8.6300000E+08 4.6856311E-25 + 8.6309997E+08 4.6854970E-25 + 8.6320000E+08 4.6853629E-25 + 8.6330003E+08 4.6852293E-25 + 8.6340000E+08 4.6850952E-25 + 8.6349997E+08 4.6849611E-25 + 8.6360000E+08 4.6848275E-25 + 8.6370003E+08 4.6846934E-25 + 8.6380000E+08 4.6845598E-25 + 8.6389997E+08 4.6844257E-25 + 8.6400000E+08 4.6842916E-25 + 8.6410003E+08 4.6841579E-25 + 8.6420000E+08 4.6840238E-25 + 8.6429997E+08 4.6838897E-25 + 8.6440000E+08 4.6837561E-25 + 8.6450003E+08 4.6836220E-25 + 8.6460000E+08 4.6834884E-25 + 8.6469997E+08 4.6833543E-25 + 8.6480000E+08 4.6832202E-25 + 8.6490003E+08 4.6830866E-25 + 8.6500000E+08 4.6829525E-25 + 8.6509997E+08 4.6828188E-25 + 8.6520000E+08 4.6826847E-25 + 8.6530003E+08 4.6825506E-25 + 8.6540000E+08 4.6824170E-25 + 8.6549997E+08 4.6822829E-25 + 8.6560000E+08 4.6821488E-25 + 8.6570003E+08 4.6820152E-25 + 8.6580000E+08 4.6818811E-25 + 8.6589997E+08 4.6817475E-25 + 8.6600000E+08 4.6816134E-25 + 8.6610003E+08 4.6814793E-25 + 8.6620000E+08 4.6813457E-25 + 8.6629997E+08 4.6812115E-25 + 8.6640000E+08 4.6810779E-25 + 8.6650003E+08 4.6809438E-25 + 8.6660000E+08 4.6808097E-25 + 8.6669997E+08 4.6806761E-25 + 8.6680000E+08 4.6805420E-25 + 8.6690003E+08 4.6804079E-25 + 8.6700000E+08 4.6802743E-25 + 8.6709997E+08 4.6801402E-25 + 8.6720000E+08 4.6800066E-25 + 8.6730003E+08 4.6798725E-25 + 8.6740000E+08 4.6797383E-25 + 8.6749997E+08 4.6796047E-25 + 8.6760000E+08 4.6794706E-25 + 8.6770003E+08 4.6793365E-25 + 8.6780000E+08 4.6792029E-25 + 8.6789997E+08 4.6790688E-25 + 8.6800000E+08 4.6789352E-25 + 8.6810003E+08 4.6788011E-25 + 8.6820000E+08 4.6786670E-25 + 8.6829997E+08 4.6785334E-25 + 8.6840000E+08 4.6783993E-25 + 8.6850003E+08 4.6782651E-25 + 8.6860000E+08 4.6781315E-25 + 8.6869997E+08 4.6779974E-25 + 8.6880000E+08 4.6778638E-25 + 8.6890003E+08 4.6777297E-25 + 8.6900000E+08 4.6775956E-25 + 8.6909997E+08 4.6774620E-25 + 8.6920000E+08 4.6773279E-25 + 8.6930003E+08 4.6771938E-25 + 8.6940000E+08 4.6770602E-25 + 8.6949997E+08 4.6769261E-25 + 8.6960000E+08 4.6767924E-25 + 8.6970003E+08 4.6766583E-25 + 8.6980000E+08 4.6765242E-25 + 8.6989997E+08 4.6763906E-25 + 8.7000000E+08 4.6762565E-25 + 8.7010003E+08 4.6761224E-25 + 8.7020000E+08 4.6759888E-25 + 8.7029997E+08 4.6758547E-25 + 8.7040000E+08 4.6757211E-25 + 8.7050003E+08 4.6755870E-25 + 8.7060000E+08 4.6754529E-25 + 8.7069997E+08 4.6753192E-25 + 8.7080000E+08 4.6751851E-25 + 8.7090003E+08 4.6750510E-25 + 8.7100000E+08 4.6749174E-25 + 8.7109997E+08 4.6747838E-25 + 8.7120000E+08 4.6746497E-25 + 8.7130003E+08 4.6745156E-25 + 8.7140000E+08 4.6743815E-25 + 8.7149997E+08 4.6742479E-25 + 8.7160000E+08 4.6741138E-25 + 8.7170003E+08 4.6739802E-25 + 8.7180000E+08 4.6738460E-25 + 8.7189997E+08 4.6737124E-25 + 8.7200000E+08 4.6735783E-25 + 8.7210003E+08 4.6734442E-25 + 8.7220000E+08 4.6733106E-25 + 8.7229997E+08 4.6731765E-25 + 8.7240000E+08 4.6730424E-25 + 8.7250003E+08 4.6729088E-25 + 8.7260000E+08 4.6727747E-25 + 8.7269997E+08 4.6726411E-25 + 8.7280000E+08 4.6725070E-25 + 8.7290003E+08 4.6723729E-25 + 8.7300000E+08 4.6722392E-25 + 8.7309997E+08 4.6721051E-25 + 8.7320000E+08 4.6719710E-25 + 8.7330003E+08 4.6718374E-25 + 8.7340000E+08 4.6717033E-25 + 8.7349997E+08 4.6715697E-25 + 8.7360000E+08 4.6714356E-25 + 8.7370003E+08 4.6713015E-25 + 8.7380000E+08 4.6711679E-25 + 8.7389997E+08 4.6710338E-25 + 8.7400000E+08 4.6708997E-25 + 8.7410003E+08 4.6707660E-25 + 8.7420000E+08 4.6706319E-25 + 8.7429997E+08 4.6704983E-25 + 8.7440000E+08 4.6703642E-25 + 8.7450003E+08 4.6702301E-25 + 8.7460000E+08 4.6700965E-25 + 8.7469997E+08 4.6699624E-25 + 8.7480000E+08 4.6698283E-25 + 8.7490003E+08 4.6696947E-25 + 8.7500000E+08 4.6695606E-25 + 8.7509997E+08 4.6694269E-25 + 8.7520000E+08 4.6692928E-25 + 8.7530003E+08 4.6691587E-25 + 8.7540000E+08 4.6690251E-25 + 8.7549997E+08 4.6688910E-25 + 8.7560000E+08 4.6687569E-25 + 8.7570003E+08 4.6686233E-25 + 8.7580000E+08 4.6684892E-25 + 8.7589997E+08 4.6683556E-25 + 8.7600000E+08 4.6682215E-25 + 8.7610003E+08 4.6680874E-25 + 8.7620000E+08 4.6679538E-25 + 8.7629997E+08 4.6678196E-25 + 8.7640000E+08 4.6676860E-25 + 8.7650003E+08 4.6675519E-25 + 8.7660000E+08 4.6674178E-25 + 8.7669997E+08 4.6672842E-25 + 8.7680000E+08 4.6671501E-25 + 8.7690003E+08 4.6670165E-25 + 8.7700000E+08 4.6668824E-25 + 8.7709997E+08 4.6667483E-25 + 8.7720000E+08 4.6666147E-25 + 8.7730003E+08 4.6664806E-25 + 8.7740000E+08 4.6663469E-25 + 8.7749997E+08 4.6662128E-25 + 8.7760000E+08 4.6660787E-25 + 8.7770003E+08 4.6659451E-25 + 8.7780000E+08 4.6658110E-25 + 8.7789997E+08 4.6656769E-25 + 8.7800000E+08 4.6655433E-25 + 8.7810003E+08 4.6654092E-25 + 8.7820000E+08 4.6652756E-25 + 8.7829997E+08 4.6651415E-25 + 8.7840000E+08 4.6650074E-25 + 8.7850003E+08 4.6648737E-25 + 8.7860000E+08 4.6647396E-25 + 8.7869997E+08 4.6646060E-25 + 8.7880000E+08 4.6644719E-25 + 8.7890003E+08 4.6643378E-25 + 8.7900000E+08 4.6642042E-25 + 8.7909997E+08 4.6640701E-25 + 8.7920000E+08 4.6639360E-25 + 8.7930003E+08 4.6638024E-25 + 8.7940000E+08 4.6636683E-25 + 8.7949997E+08 4.6635347E-25 + 8.7960000E+08 4.6634005E-25 + 8.7970003E+08 4.6632664E-25 + 8.7980000E+08 4.6631328E-25 + 8.7989997E+08 4.6629987E-25 + 8.8000000E+08 4.6628646E-25 + 8.8010003E+08 4.6627310E-25 + 8.8020000E+08 4.6625969E-25 + 8.8029997E+08 4.6624633E-25 + 8.8040000E+08 4.6623292E-25 + 8.8050003E+08 4.6621951E-25 + 8.8060000E+08 4.6620615E-25 + 8.8069997E+08 4.6619273E-25 + 8.8080000E+08 4.6617932E-25 + 8.8090003E+08 4.6616596E-25 + 8.8100000E+08 4.6615255E-25 + 8.8109997E+08 4.6613919E-25 + 8.8120000E+08 4.6612578E-25 + 8.8130003E+08 4.6611237E-25 + 8.8140000E+08 4.6609901E-25 + 8.8149997E+08 4.6608560E-25 + 8.8160000E+08 4.6607224E-25 + 8.8170003E+08 4.6605883E-25 + 8.8180000E+08 4.6604541E-25 + 8.8189997E+08 4.6603205E-25 + 8.8200000E+08 4.6601864E-25 + 8.8210003E+08 4.6600523E-25 + 8.8220000E+08 4.6599187E-25 + 8.8229997E+08 4.6597846E-25 + 8.8240000E+08 4.6596510E-25 + 8.8250003E+08 4.6595169E-25 + 8.8260000E+08 4.6593828E-25 + 8.8269997E+08 4.6592492E-25 + 8.8280000E+08 4.6591151E-25 + 8.8290003E+08 4.6589810E-25 + 8.8300000E+08 4.6588473E-25 + 8.8309997E+08 4.6587132E-25 + 8.8320000E+08 4.6585796E-25 + 8.8330003E+08 4.6584455E-25 + 8.8340000E+08 4.6583114E-25 + 8.8349997E+08 4.6581778E-25 + 8.8360000E+08 4.6580437E-25 + 8.8370003E+08 4.6579096E-25 + 8.8380000E+08 4.6577760E-25 + 8.8389997E+08 4.6576419E-25 + 8.8400000E+08 4.6575082E-25 + 8.8410003E+08 4.6573741E-25 + 8.8420000E+08 4.6572400E-25 + 8.8429997E+08 4.6571064E-25 + 8.8440000E+08 4.6569723E-25 + 8.8450003E+08 4.6568382E-25 + 8.8460000E+08 4.6567046E-25 + 8.8469997E+08 4.6565705E-25 + 8.8480000E+08 4.6564369E-25 + 8.8490003E+08 4.6563028E-25 + 8.8500000E+08 4.6561687E-25 + 8.8509997E+08 4.6560350E-25 + 8.8520000E+08 4.6559009E-25 + 8.8530003E+08 4.6557673E-25 + 8.8540000E+08 4.6556332E-25 + 8.8549997E+08 4.6554991E-25 + 8.8560000E+08 4.6553655E-25 + 8.8570003E+08 4.6552314E-25 + 8.8580000E+08 4.6550978E-25 + 8.8589997E+08 4.6549637E-25 + 8.8600000E+08 4.6548296E-25 + 8.8610003E+08 4.6546960E-25 + 8.8620000E+08 4.6545619E-25 + 8.8629997E+08 4.6544282E-25 + 8.8640000E+08 4.6542941E-25 + 8.8650003E+08 4.6541600E-25 + 8.8660000E+08 4.6540264E-25 + 8.8669997E+08 4.6538923E-25 + 8.8680000E+08 4.6537582E-25 + 8.8690003E+08 4.6536246E-25 + 8.8700000E+08 4.6534905E-25 + 8.8709997E+08 4.6533569E-25 + 8.8720000E+08 4.6532228E-25 + 8.8730003E+08 4.6530887E-25 + 8.8740000E+08 4.6529550E-25 + 8.8749997E+08 4.6528209E-25 + 8.8760000E+08 4.6526868E-25 + 8.8770003E+08 4.6525532E-25 + 8.8780000E+08 4.6524191E-25 + 8.8789997E+08 4.6522855E-25 + 8.8800000E+08 4.6521514E-25 + 8.8810003E+08 4.6520173E-25 + 8.8820000E+08 4.6518837E-25 + 8.8829997E+08 4.6517496E-25 + 8.8840000E+08 4.6516155E-25 + 8.8850003E+08 4.6514818E-25 + 8.8860000E+08 4.6513477E-25 + 8.8869997E+08 4.6512141E-25 + 8.8880000E+08 4.6510800E-25 + 8.8890003E+08 4.6509459E-25 + 8.8900000E+08 4.6508123E-25 + 8.8909997E+08 4.6506782E-25 + 8.8920000E+08 4.6505441E-25 + 8.8930003E+08 4.6504105E-25 + 8.8940000E+08 4.6502764E-25 + 8.8949997E+08 4.6501428E-25 + 8.8960000E+08 4.6500086E-25 + 8.8970003E+08 4.6498745E-25 + 8.8980000E+08 4.6497409E-25 + 8.8989997E+08 4.6496068E-25 + 8.9000000E+08 4.6494732E-25 + 8.9010003E+08 4.6493391E-25 + 8.9020000E+08 4.6492050E-25 + 8.9029997E+08 4.6490714E-25 + 8.9040000E+08 4.6489373E-25 + 8.9050003E+08 4.6488037E-25 + 8.9060000E+08 4.6486696E-25 + 8.9069997E+08 4.6485354E-25 + 8.9080000E+08 4.6484018E-25 + 8.9090003E+08 4.6482677E-25 + 8.9100000E+08 4.6481341E-25 + 8.9109997E+08 4.6480000E-25 + 8.9120000E+08 4.6478659E-25 + 8.9130003E+08 4.6477323E-25 + 8.9140000E+08 4.6475982E-25 + 8.9149997E+08 4.6474641E-25 + 8.9160000E+08 4.6473305E-25 + 8.9170003E+08 4.6471964E-25 + 8.9180000E+08 4.6470627E-25 + 8.9189997E+08 4.6469286E-25 + 8.9200000E+08 4.6467945E-25 + 8.9210003E+08 4.6466609E-25 + 8.9220000E+08 4.6465268E-25 + 8.9229997E+08 4.6463927E-25 + 8.9240000E+08 4.6462591E-25 + 8.9250003E+08 4.6461250E-25 + 8.9260000E+08 4.6459914E-25 + 8.9269997E+08 4.6458573E-25 + 8.9280000E+08 4.6457232E-25 + 8.9290003E+08 4.6455895E-25 + 8.9300000E+08 4.6454554E-25 + 8.9309997E+08 4.6453218E-25 + 8.9320000E+08 4.6451877E-25 + 8.9330003E+08 4.6450536E-25 + 8.9340000E+08 4.6449200E-25 + 8.9349997E+08 4.6447859E-25 + 8.9360000E+08 4.6446518E-25 + 8.9370003E+08 4.6445182E-25 + 8.9380000E+08 4.6443841E-25 + 8.9389997E+08 4.6442505E-25 + 8.9400000E+08 4.6441163E-25 + 8.9410003E+08 4.6439822E-25 + 8.9420000E+08 4.6438486E-25 + 8.9429997E+08 4.6437145E-25 + 8.9440000E+08 4.6435804E-25 + 8.9450003E+08 4.6434468E-25 + 8.9460000E+08 4.6433127E-25 + 8.9469997E+08 4.6431791E-25 + 8.9480000E+08 4.6430450E-25 + 8.9490003E+08 4.6429109E-25 + 8.9500000E+08 4.6427773E-25 + 8.9509997E+08 4.6426431E-25 + 8.9520000E+08 4.6425095E-25 + 8.9530003E+08 4.6423754E-25 + 8.9540000E+08 4.6422413E-25 + 8.9549997E+08 4.6421077E-25 + 8.9560000E+08 4.6419736E-25 + 8.9570003E+08 4.6418395E-25 + 8.9580000E+08 4.6417059E-25 + 8.9589997E+08 4.6415718E-25 + 8.9600000E+08 4.6414382E-25 + 8.9610003E+08 4.6413041E-25 + 8.9620000E+08 4.6411700E-25 + 8.9629997E+08 4.6410363E-25 + 8.9640000E+08 4.6409022E-25 + 8.9650003E+08 4.6407681E-25 + 8.9660000E+08 4.6406345E-25 + 8.9669997E+08 4.6405004E-25 + 8.9680000E+08 4.6403668E-25 + 8.9690003E+08 4.6402327E-25 + 8.9700000E+08 4.6400986E-25 + 8.9709997E+08 4.6399650E-25 + 8.9720000E+08 4.6398309E-25 + 8.9730003E+08 4.6396968E-25 + 8.9740000E+08 4.6395631E-25 + 8.9749997E+08 4.6394290E-25 + 8.9760000E+08 4.6392954E-25 + 8.9770003E+08 4.6391613E-25 + 8.9780000E+08 4.6390272E-25 + 8.9789997E+08 4.6388936E-25 + 8.9800000E+08 4.6387595E-25 + 8.9810003E+08 4.6386254E-25 + 8.9820000E+08 4.6384918E-25 + 8.9829997E+08 4.6383577E-25 + 8.9840000E+08 4.6382240E-25 + 8.9850003E+08 4.6380899E-25 + 8.9860000E+08 4.6379558E-25 + 8.9869997E+08 4.6378222E-25 + 8.9880000E+08 4.6376881E-25 + 8.9890003E+08 4.6375540E-25 + 8.9900000E+08 4.6374204E-25 + 8.9909997E+08 4.6372863E-25 + 8.9920000E+08 4.6371527E-25 + 8.9930003E+08 4.6370186E-25 + 8.9940000E+08 4.6368850E-25 + 8.9949997E+08 4.6367509E-25 + 8.9960000E+08 4.6366167E-25 + 8.9970003E+08 4.6364826E-25 + 8.9980000E+08 4.6363490E-25 + 8.9989997E+08 4.6362154E-25 + 9.0000000E+08 4.6360813E-25 + 9.0010003E+08 4.6359472E-25 + 9.0020000E+08 4.6358136E-25 + 9.0029997E+08 4.6356795E-25 + 9.0040000E+08 4.6355454E-25 + 9.0050003E+08 4.6354118E-25 + 9.0060000E+08 4.6352777E-25 + 9.0069997E+08 4.6351440E-25 + 9.0080000E+08 4.6350099E-25 + 9.0090003E+08 4.6348758E-25 + 9.0100000E+08 4.6347422E-25 + 9.0109997E+08 4.6346081E-25 + 9.0120000E+08 4.6344740E-25 + 9.0130003E+08 4.6343404E-25 + 9.0140000E+08 4.6342063E-25 + 9.0149997E+08 4.6340727E-25 + 9.0160000E+08 4.6339386E-25 + 9.0170003E+08 4.6338045E-25 + 9.0180000E+08 4.6336708E-25 + 9.0189997E+08 4.6335367E-25 + 9.0200000E+08 4.6334026E-25 + 9.0210003E+08 4.6332690E-25 + 9.0220000E+08 4.6331349E-25 + 9.0229997E+08 4.6330013E-25 + 9.0240000E+08 4.6328672E-25 + 9.0250003E+08 4.6327331E-25 + 9.0260000E+08 4.6325995E-25 + 9.0269997E+08 4.6324654E-25 + 9.0280000E+08 4.6323313E-25 + 9.0290003E+08 4.6321976E-25 + 9.0300000E+08 4.6320635E-25 + 9.0309997E+08 4.6319299E-25 + 9.0320000E+08 4.6317958E-25 + 9.0330003E+08 4.6316617E-25 + 9.0340000E+08 4.6315281E-25 + 9.0349997E+08 4.6313940E-25 + 9.0360000E+08 4.6312599E-25 + 9.0370003E+08 4.6311263E-25 + 9.0380000E+08 4.6309922E-25 + 9.0389997E+08 4.6308586E-25 + 9.0400000E+08 4.6307244E-25 + 9.0410003E+08 4.6305908E-25 + 9.0420000E+08 4.6304567E-25 + 9.0429997E+08 4.6303226E-25 + 9.0440000E+08 4.6301890E-25 + 9.0450003E+08 4.6300549E-25 + 9.0460000E+08 4.6299213E-25 + 9.0469997E+08 4.6297872E-25 + 9.0480000E+08 4.6296531E-25 + 9.0490003E+08 4.6295195E-25 + 9.0500000E+08 4.6293854E-25 + 9.0509997E+08 4.6292512E-25 + 9.0520000E+08 4.6291176E-25 + 9.0530003E+08 4.6289835E-25 + 9.0540000E+08 4.6288499E-25 + 9.0549997E+08 4.6287158E-25 + 9.0560000E+08 4.6285817E-25 + 9.0570003E+08 4.6284481E-25 + 9.0580000E+08 4.6283140E-25 + 9.0589997E+08 4.6281799E-25 + 9.0600000E+08 4.6280463E-25 + 9.0610003E+08 4.6279122E-25 + 9.0620000E+08 4.6277785E-25 + 9.0629997E+08 4.6276444E-25 + 9.0640000E+08 4.6275103E-25 + 9.0650003E+08 4.6273767E-25 + 9.0660000E+08 4.6272426E-25 + 9.0669997E+08 4.6271090E-25 + 9.0680000E+08 4.6269749E-25 + 9.0690003E+08 4.6268408E-25 + 9.0700000E+08 4.6267072E-25 + 9.0709997E+08 4.6265731E-25 + 9.0720000E+08 4.6264390E-25 + 9.0730003E+08 4.6263053E-25 + 9.0740000E+08 4.6261712E-25 + 9.0749997E+08 4.6260376E-25 + 9.0760000E+08 4.6259035E-25 + 9.0770003E+08 4.6257694E-25 + 9.0780000E+08 4.6256358E-25 + 9.0789997E+08 4.6255017E-25 + 9.0800000E+08 4.6253676E-25 + 9.0810003E+08 4.6252340E-25 + 9.0820000E+08 4.6250999E-25 + 9.0829997E+08 4.6249663E-25 + 9.0840000E+08 4.6248321E-25 + 9.0850003E+08 4.6246980E-25 + 9.0860000E+08 4.6245644E-25 + 9.0869997E+08 4.6244303E-25 + 9.0880000E+08 4.6242967E-25 + 9.0890003E+08 4.6241626E-25 + 9.0900000E+08 4.6240285E-25 + 9.0909997E+08 4.6238949E-25 + 9.0920000E+08 4.6237608E-25 + 9.0930003E+08 4.6236267E-25 + 9.0940000E+08 4.6234931E-25 + 9.0949997E+08 4.6233590E-25 + 9.0960000E+08 4.6232253E-25 + 9.0970003E+08 4.6230912E-25 + 9.0980000E+08 4.6229571E-25 + 9.0989997E+08 4.6228235E-25 + 9.1000000E+08 4.6226894E-25 + 9.1010003E+08 4.6225553E-25 + 9.1020000E+08 4.6224217E-25 + 9.1029997E+08 4.6222876E-25 + 9.1040000E+08 4.6221540E-25 + 9.1050003E+08 4.6220199E-25 + 9.1060000E+08 4.6218858E-25 + 9.1069997E+08 4.6217521E-25 + 9.1080000E+08 4.6216180E-25 + 9.1090003E+08 4.6214839E-25 + 9.1100000E+08 4.6213503E-25 + 9.1109997E+08 4.6212162E-25 + 9.1120000E+08 4.6210826E-25 + 9.1130003E+08 4.6209485E-25 + 9.1140000E+08 4.6208144E-25 + 9.1149997E+08 4.6206808E-25 + 9.1160000E+08 4.6205467E-25 + 9.1170003E+08 4.6204126E-25 + 9.1180000E+08 4.6202789E-25 + 9.1189997E+08 4.6201448E-25 + 9.1200000E+08 4.6200112E-25 + 9.1210003E+08 4.6198771E-25 + 9.1220000E+08 4.6197430E-25 + 9.1229997E+08 4.6196094E-25 + 9.1240000E+08 4.6194753E-25 + 9.1250003E+08 4.6193412E-25 + 9.1260000E+08 4.6192076E-25 + 9.1269997E+08 4.6190735E-25 + 9.1280000E+08 4.6189399E-25 + 9.1290003E+08 4.6188057E-25 + 9.1300000E+08 4.6186721E-25 + 9.1309997E+08 4.6185380E-25 + 9.1320000E+08 4.6184039E-25 + 9.1330003E+08 4.6182698E-25 + 9.1340000E+08 4.6181362E-25 + 9.1349997E+08 4.6180026E-25 + 9.1360000E+08 4.6178685E-25 + 9.1370003E+08 4.6177344E-25 + 9.1380000E+08 4.6176008E-25 + 9.1389997E+08 4.6174667E-25 + 9.1400000E+08 4.6173325E-25 + 9.1410003E+08 4.6171989E-25 + 9.1420000E+08 4.6170648E-25 + 9.1429997E+08 4.6169312E-25 + 9.1440000E+08 4.6167971E-25 + 9.1450003E+08 4.6166630E-25 + 9.1460000E+08 4.6165294E-25 + 9.1469997E+08 4.6163953E-25 + 9.1480000E+08 4.6162612E-25 + 9.1490003E+08 4.6161276E-25 + 9.1500000E+08 4.6159935E-25 + 9.1509997E+08 4.6158598E-25 + 9.1520000E+08 4.6157257E-25 + 9.1530003E+08 4.6155916E-25 + 9.1540000E+08 4.6154580E-25 + 9.1549997E+08 4.6153239E-25 + 9.1560000E+08 4.6151898E-25 + 9.1570003E+08 4.6150562E-25 + 9.1580000E+08 4.6149221E-25 + 9.1589997E+08 4.6147885E-25 + 9.1600000E+08 4.6146544E-25 + 9.1610003E+08 4.6145203E-25 + 9.1620000E+08 4.6143866E-25 + 9.1629997E+08 4.6142525E-25 + 9.1640000E+08 4.6141184E-25 + 9.1650003E+08 4.6139848E-25 + 9.1660000E+08 4.6138507E-25 + 9.1669997E+08 4.6137171E-25 + 9.1680000E+08 4.6135830E-25 + 9.1690003E+08 4.6134489E-25 + 9.1700000E+08 4.6133153E-25 + 9.1709997E+08 4.6131812E-25 + 9.1720000E+08 4.6130471E-25 + 9.1730003E+08 4.6129134E-25 + 9.1740000E+08 4.6127793E-25 + 9.1749997E+08 4.6126457E-25 + 9.1760000E+08 4.6125116E-25 + 9.1770003E+08 4.6123775E-25 + 9.1780000E+08 4.6122439E-25 + 9.1789997E+08 4.6121098E-25 + 9.1800000E+08 4.6119757E-25 + 9.1810003E+08 4.6118421E-25 + 9.1820000E+08 4.6117080E-25 + 9.1829997E+08 4.6115744E-25 + 9.1840000E+08 4.6114402E-25 + 9.1850003E+08 4.6113066E-25 + 9.1860000E+08 4.6111725E-25 + 9.1869997E+08 4.6110384E-25 + 9.1880000E+08 4.6109048E-25 + 9.1890003E+08 4.6107707E-25 + 9.1900000E+08 4.6106371E-25 + 9.1909997E+08 4.6105030E-25 + 9.1920000E+08 4.6103689E-25 + 9.1930003E+08 4.6102353E-25 + 9.1940000E+08 4.6101012E-25 + 9.1949997E+08 4.6099671E-25 + 9.1960000E+08 4.6098334E-25 + 9.1970003E+08 4.6096993E-25 + 9.1980000E+08 4.6095657E-25 + 9.1989997E+08 4.6094316E-25 + 9.2000000E+08 4.6092975E-25 + 9.2010003E+08 4.6091639E-25 + 9.2020000E+08 4.6090298E-25 + 9.2029997E+08 4.6088957E-25 + 9.2040000E+08 4.6087621E-25 + 9.2050003E+08 4.6086280E-25 + 9.2060000E+08 4.6084943E-25 + 9.2069997E+08 4.6083602E-25 + 9.2080000E+08 4.6082261E-25 + 9.2090003E+08 4.6080925E-25 + 9.2100000E+08 4.6079584E-25 + 9.2109997E+08 4.6078248E-25 + 9.2120000E+08 4.6076907E-25 + 9.2130003E+08 4.6075566E-25 + 9.2140000E+08 4.6074230E-25 + 9.2149997E+08 4.6072889E-25 + 9.2160000E+08 4.6071548E-25 + 9.2170003E+08 4.6070211E-25 + 9.2180000E+08 4.6068870E-25 + 9.2189997E+08 4.6067534E-25 + 9.2200000E+08 4.6066193E-25 + 9.2210003E+08 4.6064852E-25 + 9.2220000E+08 4.6063516E-25 + 9.2229997E+08 4.6062175E-25 + 9.2240000E+08 4.6060834E-25 + 9.2250003E+08 4.6059498E-25 + 9.2260000E+08 4.6058157E-25 + 9.2269997E+08 4.6056821E-25 + 9.2280000E+08 4.6055480E-25 + 9.2290003E+08 4.6054138E-25 + 9.2300000E+08 4.6052802E-25 + 9.2309997E+08 4.6051461E-25 + 9.2320000E+08 4.6050120E-25 + 9.2330003E+08 4.6048784E-25 + 9.2340000E+08 4.6047443E-25 + 9.2349997E+08 4.6046107E-25 + 9.2360000E+08 4.6044766E-25 + 9.2370003E+08 4.6043425E-25 + 9.2380000E+08 4.6042089E-25 + 9.2389997E+08 4.6040748E-25 + 9.2400000E+08 4.6039411E-25 + 9.2410003E+08 4.6038070E-25 + 9.2420000E+08 4.6036729E-25 + 9.2429997E+08 4.6035393E-25 + 9.2440000E+08 4.6034052E-25 + 9.2450003E+08 4.6032711E-25 + 9.2460000E+08 4.6031375E-25 + 9.2469997E+08 4.6030034E-25 + 9.2480000E+08 4.6028698E-25 + 9.2490003E+08 4.6027357E-25 + 9.2500000E+08 4.6026016E-25 + 9.2509997E+08 4.6024679E-25 + 9.2520000E+08 4.6023338E-25 + 9.2530003E+08 4.6021997E-25 + 9.2540000E+08 4.6020661E-25 + 9.2549997E+08 4.6019320E-25 + 9.2560000E+08 4.6017984E-25 + 9.2570003E+08 4.6016643E-25 + 9.2580000E+08 4.6015302E-25 + 9.2589997E+08 4.6013966E-25 + 9.2600000E+08 4.6012625E-25 + 9.2610003E+08 4.6011284E-25 + 9.2620000E+08 4.6009947E-25 + 9.2629997E+08 4.6008606E-25 + 9.2640000E+08 4.6007270E-25 + 9.2650003E+08 4.6005929E-25 + 9.2660000E+08 4.6004588E-25 + 9.2669997E+08 4.6003252E-25 + 9.2680000E+08 4.6001911E-25 + 9.2690003E+08 4.6000570E-25 + 9.2700000E+08 4.5999234E-25 + 9.2709997E+08 4.5997898E-25 + 9.2720000E+08 4.5996557E-25 + 9.2730003E+08 4.5995215E-25 + 9.2740000E+08 4.5993874E-25 + 9.2749997E+08 4.5992538E-25 + 9.2760000E+08 4.5991197E-25 + 9.2770003E+08 4.5989861E-25 + 9.2780000E+08 4.5988520E-25 + 9.2789997E+08 4.5987179E-25 + 9.2800000E+08 4.5985843E-25 + 9.2810003E+08 4.5984502E-25 + 9.2820000E+08 4.5983166E-25 + 9.2829997E+08 4.5981825E-25 + 9.2840000E+08 4.5981021E-25 + 9.2850003E+08 4.5981021E-25 + 9.2860000E+08 4.5981021E-25 + 9.2869997E+08 4.5981021E-25 + 9.2880000E+08 4.5981021E-25 + 9.2890003E+08 4.5981021E-25 + 9.2900000E+08 4.5981021E-25 + 9.2909997E+08 4.5981021E-25 + 9.2920000E+08 4.5981021E-25 + 9.2930003E+08 4.5981021E-25 + 9.2940000E+08 4.5981021E-25 + 9.2949997E+08 4.5981021E-25 + 9.2960000E+08 4.5981021E-25 + 9.2970003E+08 4.5981021E-25 + 9.2980000E+08 4.5981021E-25 + 9.2989997E+08 4.5981021E-25 + 9.3000000E+08 4.5981021E-25 + 9.3010003E+08 4.5981021E-25 + 9.3020000E+08 4.5981021E-25 + 9.3029997E+08 4.5981021E-25 + 9.3040000E+08 4.5981021E-25 + 9.3050003E+08 4.5981021E-25 + 9.3060000E+08 4.5981021E-25 + 9.3069997E+08 4.5981021E-25 + 9.3080000E+08 4.5981021E-25 + 9.3090003E+08 4.5981026E-25 + 9.3100000E+08 4.5981026E-25 + 9.3109997E+08 4.5981026E-25 + 9.3120000E+08 4.5981026E-25 + 9.3130003E+08 4.5981026E-25 + 9.3140000E+08 4.5981026E-25 + 9.3149997E+08 4.5981026E-25 + 9.3160000E+08 4.5981026E-25 + 9.3170003E+08 4.5981026E-25 + 9.3180000E+08 4.5981026E-25 + 9.3189997E+08 4.5981026E-25 + 9.3200000E+08 4.5981026E-25 + 9.3210003E+08 4.5981026E-25 + 9.3220000E+08 4.5981026E-25 + 9.3229997E+08 4.5981026E-25 + 9.3240000E+08 4.5981026E-25 + 9.3250003E+08 4.5981026E-25 + 9.3260000E+08 4.5981026E-25 + 9.3269997E+08 4.5981026E-25 + 9.3280000E+08 4.5981026E-25 + 9.3290003E+08 4.5981026E-25 + 9.3300000E+08 4.5981026E-25 + 9.3309997E+08 4.5981026E-25 + 9.3320000E+08 4.5981026E-25 + 9.3330003E+08 4.5981026E-25 + 9.3340000E+08 4.5981026E-25 + 9.3349997E+08 4.5981026E-25 + 9.3360000E+08 4.5981026E-25 + 9.3370003E+08 4.5981026E-25 + 9.3380000E+08 4.5981026E-25 + 9.3389997E+08 4.5981026E-25 + 9.3400000E+08 4.5981026E-25 + 9.3410003E+08 4.5981026E-25 + 9.3420000E+08 4.5981026E-25 + 9.3429997E+08 4.5981026E-25 + 9.3440000E+08 4.5981026E-25 + 9.3450003E+08 4.5981026E-25 + 9.3460000E+08 4.5981026E-25 + 9.3469997E+08 4.5981026E-25 + 9.3480000E+08 4.5981026E-25 + 9.3490003E+08 4.5981026E-25 + 9.3500000E+08 4.5981026E-25 + 9.3509997E+08 4.5981026E-25 + 9.3520000E+08 4.5981026E-25 + 9.3530003E+08 4.5981026E-25 + 9.3540000E+08 4.5981026E-25 + 9.3549997E+08 4.5981026E-25 + 9.3560000E+08 4.5981026E-25 + 9.3570003E+08 4.5981026E-25 + 9.3580000E+08 4.5981026E-25 + 9.3589997E+08 4.5981026E-25 + 9.3600000E+08 4.5981031E-25 + 9.3610003E+08 4.5981031E-25 + 9.3620000E+08 4.5981031E-25 + 9.3629997E+08 4.5981031E-25 + 9.3640000E+08 4.5981031E-25 + 9.3650003E+08 4.5981031E-25 + 9.3660000E+08 4.5981031E-25 + 9.3669997E+08 4.5981031E-25 + 9.3680000E+08 4.5981031E-25 + 9.3690003E+08 4.5981031E-25 + 9.3700000E+08 4.5981031E-25 + 9.3709997E+08 4.5981031E-25 + 9.3720000E+08 4.5981031E-25 + 9.3730003E+08 4.5981031E-25 + 9.3740000E+08 4.5981031E-25 + 9.3749997E+08 4.5981031E-25 + 9.3760000E+08 4.5981031E-25 + 9.3770003E+08 4.5981031E-25 + 9.3780000E+08 4.5981031E-25 + 9.3789997E+08 4.5981031E-25 + 9.3800000E+08 4.5981031E-25 + 9.3810003E+08 4.5981031E-25 + 9.3820000E+08 4.5981031E-25 + 9.3829997E+08 4.5981031E-25 + 9.3840000E+08 4.5981031E-25 + 9.3850003E+08 4.5981031E-25 + 9.3860000E+08 4.5981031E-25 + 9.3869997E+08 4.5981031E-25 + 9.3880000E+08 4.5981031E-25 + 9.3890003E+08 4.5981031E-25 + 9.3900000E+08 4.5981031E-25 + 9.3909997E+08 4.5981031E-25 + 9.3920000E+08 4.5981031E-25 + 9.3930003E+08 4.5981031E-25 + 9.3940000E+08 4.5981031E-25 + 9.3949997E+08 4.5981031E-25 + 9.3960000E+08 4.5981031E-25 + 9.3970003E+08 4.5981031E-25 + 9.3980000E+08 4.5981031E-25 + 9.3989997E+08 4.5981031E-25 + 9.4000000E+08 4.5981031E-25 + 9.4010003E+08 4.5981031E-25 + 9.4020000E+08 4.5981031E-25 + 9.4029997E+08 4.5981031E-25 + 9.4040000E+08 4.5981031E-25 + 9.4050003E+08 4.5981031E-25 + 9.4060000E+08 4.5981031E-25 + 9.4069997E+08 4.5981031E-25 + 9.4080000E+08 4.5981031E-25 + 9.4090003E+08 4.5981031E-25 + 9.4100000E+08 4.5981036E-25 + 9.4109997E+08 4.5981036E-25 + 9.4120000E+08 4.5981036E-25 + 9.4130003E+08 4.5981036E-25 + 9.4140000E+08 4.5981036E-25 + 9.4149997E+08 4.5981036E-25 + 9.4160000E+08 4.5981036E-25 + 9.4170003E+08 4.5981036E-25 + 9.4180000E+08 4.5981036E-25 + 9.4189997E+08 4.5981036E-25 + 9.4200000E+08 4.5981036E-25 + 9.4210003E+08 4.5981036E-25 + 9.4220000E+08 4.5981036E-25 + 9.4229997E+08 4.5981036E-25 + 9.4240000E+08 4.5981036E-25 + 9.4250003E+08 4.5981036E-25 + 9.4260000E+08 4.5981036E-25 + 9.4269997E+08 4.5981036E-25 + 9.4280000E+08 4.5981036E-25 + 9.4290003E+08 4.5981036E-25 + 9.4300000E+08 4.5981036E-25 + 9.4309997E+08 4.5981036E-25 + 9.4320000E+08 4.5981036E-25 + 9.4330003E+08 4.5981036E-25 + 9.4340000E+08 4.5981036E-25 + 9.4349997E+08 4.5981036E-25 + 9.4360000E+08 4.5981036E-25 + 9.4370003E+08 4.5981036E-25 + 9.4380000E+08 4.5981036E-25 + 9.4389997E+08 4.5981036E-25 + 9.4400000E+08 4.5981036E-25 + 9.4410003E+08 4.5981036E-25 + 9.4420000E+08 4.5981036E-25 + 9.4429997E+08 4.5981036E-25 + 9.4440000E+08 4.5981036E-25 + 9.4450003E+08 4.5981036E-25 + 9.4460000E+08 4.5981036E-25 + 9.4469997E+08 4.5981036E-25 + 9.4480000E+08 4.5981036E-25 + 9.4490003E+08 4.5981036E-25 + 9.4500000E+08 4.5981036E-25 + 9.4509997E+08 4.5981036E-25 + 9.4520000E+08 4.5981036E-25 + 9.4530003E+08 4.5981036E-25 + 9.4540000E+08 4.5981036E-25 + 9.4549997E+08 4.5981036E-25 + 9.4560000E+08 4.5981036E-25 + 9.4570003E+08 4.5981036E-25 + 9.4580000E+08 4.5981036E-25 + 9.4589997E+08 4.5981036E-25 + 9.4600000E+08 4.5981041E-25 + 9.4610003E+08 4.5981041E-25 + 9.4620000E+08 4.5981041E-25 + 9.4629997E+08 4.5981041E-25 + 9.4640000E+08 4.5981041E-25 + 9.4650003E+08 4.5981041E-25 + 9.4660000E+08 4.5981041E-25 + 9.4669997E+08 4.5981041E-25 + 9.4680000E+08 4.5981041E-25 + 9.4690003E+08 4.5981041E-25 + 9.4700000E+08 4.5981041E-25 + 9.4709997E+08 4.5981041E-25 + 9.4720000E+08 4.5981041E-25 + 9.4730003E+08 4.5981041E-25 + 9.4740000E+08 4.5981041E-25 + 9.4749997E+08 4.5981041E-25 + 9.4760000E+08 4.5981041E-25 + 9.4770003E+08 4.5981041E-25 + 9.4780000E+08 4.5981041E-25 + 9.4789997E+08 4.5981041E-25 + 9.4800000E+08 4.5981041E-25 + 9.4810003E+08 4.5981041E-25 + 9.4820000E+08 4.5981041E-25 + 9.4829997E+08 4.5981041E-25 + 9.4840000E+08 4.5981041E-25 + 9.4850003E+08 4.5981041E-25 + 9.4860000E+08 4.5981041E-25 + 9.4869997E+08 4.5981041E-25 + 9.4880000E+08 4.5981041E-25 + 9.4890003E+08 4.5981041E-25 + 9.4900000E+08 4.5981041E-25 + 9.4909997E+08 4.5981041E-25 + 9.4920000E+08 4.5981041E-25 + 9.4930003E+08 4.5981041E-25 + 9.4940000E+08 4.5981041E-25 + 9.4949997E+08 4.5981041E-25 + 9.4960000E+08 4.5981041E-25 + 9.4970003E+08 4.5981041E-25 + 9.4980000E+08 4.5981041E-25 + 9.4989997E+08 4.5981041E-25 + 9.5000000E+08 4.5981041E-25 + 9.5010003E+08 4.5981041E-25 + 9.5020000E+08 4.5981041E-25 + 9.5029997E+08 4.5981041E-25 + 9.5040000E+08 4.5981041E-25 + 9.5050003E+08 4.5981041E-25 + 9.5060000E+08 4.5981041E-25 + 9.5069997E+08 4.5981041E-25 + 9.5080000E+08 4.5981041E-25 + 9.5090003E+08 4.5981041E-25 + 9.5100000E+08 4.5981046E-25 + 9.5109997E+08 4.5981046E-25 + 9.5120000E+08 4.5981046E-25 + 9.5130003E+08 4.5981046E-25 + 9.5140000E+08 4.5981046E-25 + 9.5149997E+08 4.5981046E-25 + 9.5160000E+08 4.5981046E-25 + 9.5170003E+08 4.5981046E-25 + 9.5180000E+08 4.5981046E-25 + 9.5189997E+08 4.5981046E-25 + 9.5200000E+08 4.5981046E-25 + 9.5210003E+08 4.5981046E-25 + 9.5220000E+08 4.5981046E-25 + 9.5229997E+08 4.5981046E-25 + 9.5240000E+08 4.5981046E-25 + 9.5250003E+08 4.5981046E-25 + 9.5260000E+08 4.5981046E-25 + 9.5269997E+08 4.5981046E-25 + 9.5280000E+08 4.5981046E-25 + 9.5290003E+08 4.5981046E-25 + 9.5300000E+08 4.5981046E-25 + 9.5309997E+08 4.5981046E-25 + 9.5320000E+08 4.5981046E-25 + 9.5330003E+08 4.5981046E-25 + 9.5340000E+08 4.5981046E-25 + 9.5349997E+08 4.5981046E-25 + 9.5360000E+08 4.5981046E-25 + 9.5370003E+08 4.5981046E-25 + 9.5380000E+08 4.5981046E-25 + 9.5389997E+08 4.5981046E-25 + 9.5400000E+08 4.5981046E-25 + 9.5410003E+08 4.5981046E-25 + 9.5420000E+08 4.5981046E-25 + 9.5429997E+08 4.5981046E-25 + 9.5440000E+08 4.5981046E-25 + 9.5450003E+08 4.5981046E-25 + 9.5460000E+08 4.5981046E-25 + 9.5469997E+08 4.5981046E-25 + 9.5480000E+08 4.5981046E-25 + 9.5490003E+08 4.5981046E-25 + 9.5500000E+08 4.5981046E-25 + 9.5509997E+08 4.5981046E-25 + 9.5520000E+08 4.5981046E-25 + 9.5530003E+08 4.5981046E-25 + 9.5540000E+08 4.5981046E-25 + 9.5549997E+08 4.5981046E-25 + 9.5560000E+08 4.5981046E-25 + 9.5570003E+08 4.5981046E-25 + 9.5580000E+08 4.5981046E-25 + 9.5589997E+08 4.5981046E-25 + 9.5600000E+08 4.5981046E-25 + 9.5610003E+08 4.5981050E-25 + 9.5620000E+08 4.5981050E-25 + 9.5629997E+08 4.5981050E-25 + 9.5640000E+08 4.5981050E-25 + 9.5650003E+08 4.5981050E-25 + 9.5660000E+08 4.5981050E-25 + 9.5669997E+08 4.5981050E-25 + 9.5680000E+08 4.5981050E-25 + 9.5690003E+08 4.5981050E-25 + 9.5700000E+08 4.5981050E-25 + 9.5709997E+08 4.5981050E-25 + 9.5720000E+08 4.5981050E-25 + 9.5730003E+08 4.5981050E-25 + 9.5740000E+08 4.5981050E-25 + 9.5749997E+08 4.5981050E-25 + 9.5760000E+08 4.5981050E-25 + 9.5770003E+08 4.5981050E-25 + 9.5780000E+08 4.5981050E-25 + 9.5789997E+08 4.5981050E-25 + 9.5800000E+08 4.5981050E-25 + 9.5810003E+08 4.5981050E-25 + 9.5820000E+08 4.5981050E-25 + 9.5829997E+08 4.5981050E-25 + 9.5840000E+08 4.5981050E-25 + 9.5850003E+08 4.5981050E-25 + 9.5860000E+08 4.5981050E-25 + 9.5869997E+08 4.5981050E-25 + 9.5880000E+08 4.5981050E-25 + 9.5890003E+08 4.5981050E-25 + 9.5900000E+08 4.5981050E-25 + 9.5909997E+08 4.5981050E-25 + 9.5920000E+08 4.5981050E-25 + 9.5930003E+08 4.5981050E-25 + 9.5940000E+08 4.5981050E-25 + 9.5949997E+08 4.5981050E-25 + 9.5960000E+08 4.5981050E-25 + 9.5970003E+08 4.5981050E-25 + 9.5980000E+08 4.5981050E-25 + 9.5989997E+08 4.5981050E-25 + 9.6000000E+08 4.5981050E-25 + 9.6010003E+08 4.5981050E-25 + 9.6020000E+08 4.5981050E-25 + 9.6029997E+08 4.5981050E-25 + 9.6040000E+08 4.5981050E-25 + 9.6050003E+08 4.5981050E-25 + 9.6060000E+08 4.5981050E-25 + 9.6069997E+08 4.5981050E-25 + 9.6080000E+08 4.5981050E-25 + 9.6090003E+08 4.5981050E-25 + 9.6100000E+08 4.5981050E-25 + 9.6109997E+08 4.5981055E-25 + 9.6120000E+08 4.5981055E-25 + 9.6130003E+08 4.5981055E-25 + 9.6140000E+08 4.5981055E-25 + 9.6149997E+08 4.5981055E-25 + 9.6160000E+08 4.5981055E-25 + 9.6170003E+08 4.5981055E-25 + 9.6180000E+08 4.5981055E-25 + 9.6189997E+08 4.5981055E-25 + 9.6200000E+08 4.5981055E-25 + 9.6210003E+08 4.5981055E-25 + 9.6220000E+08 4.5981055E-25 + 9.6229997E+08 4.5981055E-25 + 9.6240000E+08 4.5981055E-25 + 9.6250003E+08 4.5981055E-25 + 9.6260000E+08 4.5981055E-25 + 9.6269997E+08 4.5981055E-25 + 9.6280000E+08 4.5981055E-25 + 9.6290003E+08 4.5981055E-25 + 9.6300000E+08 4.5981055E-25 + 9.6309997E+08 4.5981055E-25 + 9.6320000E+08 4.5981055E-25 + 9.6330003E+08 4.5981055E-25 + 9.6340000E+08 4.5981055E-25 + 9.6349997E+08 4.5981055E-25 + 9.6360000E+08 4.5981055E-25 + 9.6370003E+08 4.5981055E-25 + 9.6380000E+08 4.5981055E-25 + 9.6389997E+08 4.5981055E-25 + 9.6400000E+08 4.5981055E-25 + 9.6410003E+08 4.5981055E-25 + 9.6420000E+08 4.5981055E-25 + 9.6429997E+08 4.5981055E-25 + 9.6440000E+08 4.5981055E-25 + 9.6450003E+08 4.5981055E-25 + 9.6460000E+08 4.5981055E-25 + 9.6469997E+08 4.5981055E-25 + 9.6480000E+08 4.5981055E-25 + 9.6490003E+08 4.5981055E-25 + 9.6500000E+08 4.5981055E-25 + 9.6509997E+08 4.5981055E-25 + 9.6520000E+08 4.5981055E-25 + 9.6530003E+08 4.5981055E-25 + 9.6540000E+08 4.5981055E-25 + 9.6549997E+08 4.5981055E-25 + 9.6560000E+08 4.5981055E-25 + 9.6570003E+08 4.5981055E-25 + 9.6580000E+08 4.5981055E-25 + 9.6589997E+08 4.5981055E-25 + 9.6600000E+08 4.5981055E-25 + 9.6610003E+08 4.5981060E-25 + 9.6620000E+08 4.5981060E-25 + 9.6629997E+08 4.5981060E-25 + 9.6640000E+08 4.5981060E-25 + 9.6650003E+08 4.5981060E-25 + 9.6660000E+08 4.5981060E-25 + 9.6669997E+08 4.5981060E-25 + 9.6680000E+08 4.5981060E-25 + 9.6690003E+08 4.5981060E-25 + 9.6700000E+08 4.5981060E-25 + 9.6709997E+08 4.5981060E-25 + 9.6720000E+08 4.5981060E-25 + 9.6730003E+08 4.5981060E-25 + 9.6740000E+08 4.5981060E-25 + 9.6749997E+08 4.5981060E-25 + 9.6760000E+08 4.5981060E-25 + 9.6770003E+08 4.5981060E-25 + 9.6780000E+08 4.5981060E-25 + 9.6789997E+08 4.5981060E-25 + 9.6800000E+08 4.5981060E-25 + 9.6810003E+08 4.5981060E-25 + 9.6820000E+08 4.5981060E-25 + 9.6829997E+08 4.5981060E-25 + 9.6840000E+08 4.5981060E-25 + 9.6850003E+08 4.5981060E-25 + 9.6860000E+08 4.5981060E-25 + 9.6869997E+08 4.5981060E-25 + 9.6880000E+08 4.5981060E-25 + 9.6890003E+08 4.5981060E-25 + 9.6900000E+08 4.5981060E-25 + 9.6909997E+08 4.5981060E-25 + 9.6920000E+08 4.5981060E-25 + 9.6930003E+08 4.5981060E-25 + 9.6940000E+08 4.5981060E-25 + 9.6949997E+08 4.5981060E-25 + 9.6960000E+08 4.5981060E-25 + 9.6970003E+08 4.5981060E-25 + 9.6980000E+08 4.5981060E-25 + 9.6989997E+08 4.5981060E-25 + 9.7000000E+08 4.5981060E-25 + 9.7010003E+08 4.5981060E-25 + 9.7020000E+08 4.5981060E-25 + 9.7029997E+08 4.5981060E-25 + 9.7040000E+08 4.5981060E-25 + 9.7050003E+08 4.5981060E-25 + 9.7060000E+08 4.5981060E-25 + 9.7069997E+08 4.5981060E-25 + 9.7080000E+08 4.5981060E-25 + 9.7090003E+08 4.5981060E-25 + 9.7100000E+08 4.5981060E-25 + 9.7109997E+08 4.5981060E-25 + 9.7120000E+08 4.5981065E-25 + 9.7130003E+08 4.5981065E-25 + 9.7140000E+08 4.5981065E-25 + 9.7149997E+08 4.5981065E-25 + 9.7160000E+08 4.5981065E-25 + 9.7170003E+08 4.5981065E-25 + 9.7180000E+08 4.5981065E-25 + 9.7189997E+08 4.5981065E-25 + 9.7200000E+08 4.5981065E-25 + 9.7210003E+08 4.5981065E-25 + 9.7220000E+08 4.5981065E-25 + 9.7229997E+08 4.5981065E-25 + 9.7240000E+08 4.5981065E-25 + 9.7250003E+08 4.5981065E-25 + 9.7260000E+08 4.5981065E-25 + 9.7269997E+08 4.5981065E-25 + 9.7280000E+08 4.5981065E-25 + 9.7290003E+08 4.5981065E-25 + 9.7300000E+08 4.5981065E-25 + 9.7309997E+08 4.5981065E-25 + 9.7320000E+08 4.5981065E-25 + 9.7330003E+08 4.5981065E-25 + 9.7340000E+08 4.5981065E-25 + 9.7349997E+08 4.5981065E-25 + 9.7360000E+08 4.5981065E-25 + 9.7370003E+08 4.5981065E-25 + 9.7380000E+08 4.5981065E-25 + 9.7389997E+08 4.5981065E-25 + 9.7400000E+08 4.5981065E-25 + 9.7410003E+08 4.5981065E-25 + 9.7420000E+08 4.5981065E-25 + 9.7429997E+08 4.5981065E-25 + 9.7440000E+08 4.5981065E-25 + 9.7450003E+08 4.5981065E-25 + 9.7460000E+08 4.5981065E-25 + 9.7469997E+08 4.5981065E-25 + 9.7480000E+08 4.5981065E-25 + 9.7490003E+08 4.5981065E-25 + 9.7500000E+08 4.5981065E-25 + 9.7509997E+08 4.5981065E-25 + 9.7520000E+08 4.5981065E-25 + 9.7530003E+08 4.5981065E-25 + 9.7540000E+08 4.5981065E-25 + 9.7549997E+08 4.5981065E-25 + 9.7560000E+08 4.5981065E-25 + 9.7570003E+08 4.5981065E-25 + 9.7580000E+08 4.5981065E-25 + 9.7589997E+08 4.5981065E-25 + 9.7600000E+08 4.5981065E-25 + 9.7610003E+08 4.5981065E-25 + 9.7620000E+08 4.5981070E-25 + 9.7629997E+08 4.5981070E-25 + 9.7640000E+08 4.5981070E-25 + 9.7650003E+08 4.5981070E-25 + 9.7660000E+08 4.5981070E-25 + 9.7669997E+08 4.5981070E-25 + 9.7680000E+08 4.5981070E-25 + 9.7690003E+08 4.5981070E-25 + 9.7700000E+08 4.5981070E-25 + 9.7709997E+08 4.5981070E-25 + 9.7720000E+08 4.5981070E-25 + 9.7730003E+08 4.5981070E-25 + 9.7740000E+08 4.5981070E-25 + 9.7749997E+08 4.5981070E-25 + 9.7760000E+08 4.5981070E-25 + 9.7770003E+08 4.5981070E-25 + 9.7780000E+08 4.5981070E-25 + 9.7789997E+08 4.5981070E-25 + 9.7800000E+08 4.5981070E-25 + 9.7810003E+08 4.5981070E-25 + 9.7820000E+08 4.5981070E-25 + 9.7829997E+08 4.5981070E-25 + 9.7840000E+08 4.5981070E-25 + 9.7850003E+08 4.5981070E-25 + 9.7860000E+08 4.5981070E-25 + 9.7869997E+08 4.5981070E-25 + 9.7880000E+08 4.5981070E-25 + 9.7890003E+08 4.5981070E-25 + 9.7900000E+08 4.5981070E-25 + 9.7909997E+08 4.5981070E-25 + 9.7920000E+08 4.5981070E-25 + 9.7930003E+08 4.5981070E-25 + 9.7940000E+08 4.5981070E-25 + 9.7949997E+08 4.5981070E-25 + 9.7960000E+08 4.5981070E-25 + 9.7970003E+08 4.5981070E-25 + 9.7980000E+08 4.5981070E-25 + 9.7989997E+08 4.5981070E-25 + 9.8000000E+08 4.5981070E-25 + 9.8010003E+08 4.5981070E-25 + 9.8020000E+08 4.5981070E-25 + 9.8029997E+08 4.5981070E-25 + 9.8040000E+08 4.5981070E-25 + 9.8050003E+08 4.5981070E-25 + 9.8060000E+08 4.5981070E-25 + 9.8069997E+08 4.5981070E-25 + 9.8080000E+08 4.5981070E-25 + 9.8090003E+08 4.5981070E-25 + 9.8100000E+08 4.5981070E-25 + 9.8109997E+08 4.5981070E-25 + 9.8120000E+08 4.5981075E-25 + 9.8130003E+08 4.5981075E-25 + 9.8140000E+08 4.5981075E-25 + 9.8149997E+08 4.5981075E-25 + 9.8160000E+08 4.5981075E-25 + 9.8170003E+08 4.5981075E-25 + 9.8180000E+08 4.5981075E-25 + 9.8189997E+08 4.5981075E-25 + 9.8200000E+08 4.5981075E-25 + 9.8210003E+08 4.5981075E-25 + 9.8220000E+08 4.5981075E-25 + 9.8229997E+08 4.5981075E-25 + 9.8240000E+08 4.5981075E-25 + 9.8250003E+08 4.5981075E-25 + 9.8260000E+08 4.5981075E-25 + 9.8269997E+08 4.5981075E-25 + 9.8280000E+08 4.5981075E-25 + 9.8290003E+08 4.5981075E-25 + 9.8300000E+08 4.5981075E-25 + 9.8309997E+08 4.5981075E-25 + 9.8320000E+08 4.5981075E-25 + 9.8330003E+08 4.5981075E-25 + 9.8340000E+08 4.5981075E-25 + 9.8349997E+08 4.5981075E-25 + 9.8360000E+08 4.5981075E-25 + 9.8370003E+08 4.5981075E-25 + 9.8380000E+08 4.5981075E-25 + 9.8389997E+08 4.5981075E-25 + 9.8400000E+08 4.5981075E-25 + 9.8410003E+08 4.5981075E-25 + 9.8420000E+08 4.5981075E-25 + 9.8429997E+08 4.5981075E-25 + 9.8440000E+08 4.5981075E-25 + 9.8450003E+08 4.5981075E-25 + 9.8460000E+08 4.5981075E-25 + 9.8469997E+08 4.5981075E-25 + 9.8480000E+08 4.5981075E-25 + 9.8490003E+08 4.5981075E-25 + 9.8500000E+08 4.5981075E-25 + 9.8509997E+08 4.5981075E-25 + 9.8520000E+08 4.5981075E-25 + 9.8530003E+08 4.5981075E-25 + 9.8540000E+08 4.5981075E-25 + 9.8549997E+08 4.5981075E-25 + 9.8560000E+08 4.5981075E-25 + 9.8570003E+08 4.5981075E-25 + 9.8580000E+08 4.5981075E-25 + 9.8589997E+08 4.5981075E-25 + 9.8600000E+08 4.5981075E-25 + 9.8610003E+08 4.5981075E-25 + 9.8620000E+08 4.5981080E-25 + 9.8629997E+08 4.5981080E-25 + 9.8640000E+08 4.5981080E-25 + 9.8650003E+08 4.5981080E-25 + 9.8660000E+08 4.5981080E-25 + 9.8669997E+08 4.5981080E-25 + 9.8680000E+08 4.5981080E-25 + 9.8690003E+08 4.5981080E-25 + 9.8700000E+08 4.5981080E-25 + 9.8709997E+08 4.5981080E-25 + 9.8720000E+08 4.5981080E-25 + 9.8730003E+08 4.5981080E-25 + 9.8740000E+08 4.5981080E-25 + 9.8749997E+08 4.5981080E-25 + 9.8760000E+08 4.5981080E-25 + 9.8770003E+08 4.5981080E-25 + 9.8780000E+08 4.5981080E-25 + 9.8789997E+08 4.5981080E-25 + 9.8800000E+08 4.5981080E-25 + 9.8810003E+08 4.5981080E-25 + 9.8820000E+08 4.5981080E-25 + 9.8829997E+08 4.5981080E-25 + 9.8840000E+08 4.5981080E-25 + 9.8850003E+08 4.5981080E-25 + 9.8860000E+08 4.5981080E-25 + 9.8869997E+08 4.5981080E-25 + 9.8880000E+08 4.5981080E-25 + 9.8890003E+08 4.5981080E-25 + 9.8900000E+08 4.5981080E-25 + 9.8909997E+08 4.5981080E-25 + 9.8920000E+08 4.5981080E-25 + 9.8930003E+08 4.5981080E-25 + 9.8940000E+08 4.5981080E-25 + 9.8949997E+08 4.5981080E-25 + 9.8960000E+08 4.5981080E-25 + 9.8970003E+08 4.5981080E-25 + 9.8980000E+08 4.5981080E-25 + 9.8989997E+08 4.5981080E-25 + 9.9000000E+08 4.5981080E-25 + 9.9010003E+08 4.5981080E-25 + 9.9020000E+08 4.5981080E-25 + 9.9029997E+08 4.5981080E-25 + 9.9040000E+08 4.5981080E-25 + 9.9050003E+08 4.5981080E-25 + 9.9060000E+08 4.5981080E-25 + 9.9069997E+08 4.5981080E-25 + 9.9080000E+08 4.5981080E-25 + 9.9090003E+08 4.5981080E-25 + 9.9100000E+08 4.5981080E-25 + 9.9109997E+08 4.5981080E-25 + 9.9120000E+08 4.5981080E-25 + 9.9130003E+08 4.5981085E-25 + 9.9140000E+08 4.5981085E-25 + 9.9149997E+08 4.5981085E-25 + 9.9160000E+08 4.5981085E-25 + 9.9170003E+08 4.5981085E-25 + 9.9180000E+08 4.5981085E-25 + 9.9189997E+08 4.5981085E-25 + 9.9200000E+08 4.5981085E-25 + 9.9210003E+08 4.5981085E-25 + 9.9220000E+08 4.5981085E-25 + 9.9229997E+08 4.5981085E-25 + 9.9240000E+08 4.5981085E-25 + 9.9250003E+08 4.5981085E-25 + 9.9260000E+08 4.5981085E-25 + 9.9269997E+08 4.5981085E-25 + 9.9280000E+08 4.5981085E-25 + 9.9290003E+08 4.5981085E-25 + 9.9300000E+08 4.5981085E-25 + 9.9309997E+08 4.5981085E-25 + 9.9320000E+08 4.5981085E-25 + 9.9330003E+08 4.5981085E-25 + 9.9340000E+08 4.5981085E-25 + 9.9349997E+08 4.5981085E-25 + 9.9360000E+08 4.5981085E-25 + 9.9370003E+08 4.5981085E-25 + 9.9380000E+08 4.5981085E-25 + 9.9389997E+08 4.5981085E-25 + 9.9400000E+08 4.5981085E-25 + 9.9410003E+08 4.5981085E-25 + 9.9420000E+08 4.5981085E-25 + 9.9429997E+08 4.5981085E-25 + 9.9440000E+08 4.5981085E-25 + 9.9450003E+08 4.5981085E-25 + 9.9460000E+08 4.5981085E-25 + 9.9469997E+08 4.5981085E-25 + 9.9480000E+08 4.5981085E-25 + 9.9490003E+08 4.5981085E-25 + 9.9500000E+08 4.5981085E-25 + 9.9509997E+08 4.5981085E-25 + 9.9520000E+08 4.5981085E-25 + 9.9530003E+08 4.5981085E-25 + 9.9540000E+08 4.5981085E-25 + 9.9549997E+08 4.5981085E-25 + 9.9560000E+08 4.5981085E-25 + 9.9570003E+08 4.5981085E-25 + 9.9580000E+08 4.5981085E-25 + 9.9589997E+08 4.5981085E-25 + 9.9600000E+08 4.5981085E-25 + 9.9610003E+08 4.5981085E-25 + 9.9620000E+08 4.5981085E-25 + 9.9629997E+08 4.5981090E-25 + 9.9640000E+08 4.5981090E-25 + 9.9650003E+08 4.5981090E-25 + 9.9660000E+08 4.5981090E-25 + 9.9669997E+08 4.5981090E-25 + 9.9680000E+08 4.5981090E-25 + 9.9690003E+08 4.5981090E-25 + 9.9700000E+08 4.5981090E-25 + 9.9709997E+08 4.5981090E-25 + 9.9720000E+08 4.5981090E-25 + 9.9730003E+08 4.5981090E-25 + 9.9740000E+08 4.5981090E-25 + 9.9749997E+08 4.5981090E-25 + 9.9760000E+08 4.5981090E-25 + 9.9770003E+08 4.5981090E-25 + 9.9780000E+08 4.5981090E-25 + 9.9789997E+08 4.5981090E-25 + 9.9800000E+08 4.5981090E-25 + 9.9810003E+08 4.5981090E-25 + 9.9820000E+08 4.5981090E-25 + 9.9829997E+08 4.5981090E-25 + 9.9840000E+08 4.5981090E-25 + 9.9850003E+08 4.5981090E-25 + 9.9860000E+08 4.5981090E-25 + 9.9869997E+08 4.5981090E-25 + 9.9880000E+08 4.5981090E-25 + 9.9890003E+08 4.5981090E-25 + 9.9900000E+08 4.5981090E-25 + 9.9909997E+08 4.5981090E-25 + 9.9920000E+08 4.5981090E-25 + 9.9930003E+08 4.5981090E-25 + 9.9940000E+08 4.5981090E-25 + 9.9949997E+08 4.5981090E-25 + 9.9960000E+08 4.5981090E-25 + 9.9970003E+08 4.5981090E-25 + 9.9980000E+08 4.5981090E-25 + 9.9989997E+08 4.5981090E-25 + 1.0000000E+09 4.5981090E-25 + 1.0001000E+09 4.5981090E-25 From fb4731a7a36b39ba6acfa52c9223cc4c69fb3b91 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 22 Aug 2024 11:26:53 +0800 Subject: [PATCH 60/73] Update file location --- example/test_problem/Hydro/FermiBubble/manual | 8 ++++---- .../plot_scripts/gamma_ray_spectrum/get_spectrum.sh | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/example/test_problem/Hydro/FermiBubble/manual b/example/test_problem/Hydro/FermiBubble/manual index 7746ad8fab..5322301723 100644 --- a/example/test_problem/Hydro/FermiBubble/manual +++ b/example/test_problem/Hydro/FermiBubble/manual @@ -58,7 +58,7 @@ mpirun -map-by ppr:2:socket:pe=8 --report-bindings ./gamer_single 1>>log 2>&1 #---------------------------------------------------------------------------------------------------- # Please execute the following commands before the analysis cd plot_scripts -mv ../robitaille_DL07_PAHISMMix.dat ./ +ln -s ../R12 ln -s ../../../tool/analysis/PerspectiveProjection @@ -109,7 +109,7 @@ cd ../ cp PerspectiveProjection/bin/Project ./ # 3. Execute the projection tool -./Project FRB_Data_000035.h5 100e9 1e6 2.4 robitaille_DL07_PAHISMMix.dat +./Project FRB_Data_000035.h5 100e9 1e6 2.4 R12/robitaille_DL07_PAHISMMix.dat # NOTE : arg1: name of fixed resolution data in Step1 # arg2: observed photon energy (eV) # arg3: the cut-off Lorentz factor of CR @@ -141,14 +141,14 @@ cp PerspectiveProjection/bin/Project gamma_ray_spectrum/ # 3-1. synchrotron emissivities cd synchrotron_spectrum ln -s ../FRB_Data_000035.h5 -ln -s ../robitaille_DL07_PAHISMMix.dat +ln -s ../../R12 sh get_spectrum.sh cd ../ # 3-2. gamma ray emissivities cd gamma_ray_spectrum ln -s ../FRB_Data_000035.h5 -ln -s ../robitaille_DL07_PAHISMMix.dat +ln -s ../../R12 sh get_spectrum.sh cd ../ diff --git a/example/test_problem/Hydro/FermiBubble/plot_scripts/gamma_ray_spectrum/get_spectrum.sh b/example/test_problem/Hydro/FermiBubble/plot_scripts/gamma_ray_spectrum/get_spectrum.sh index 4960ebab86..b8940b05db 100755 --- a/example/test_problem/Hydro/FermiBubble/plot_scripts/gamma_ray_spectrum/get_spectrum.sh +++ b/example/test_problem/Hydro/FermiBubble/plot_scripts/gamma_ray_spectrum/get_spectrum.sh @@ -18,7 +18,7 @@ do echo "${FileName} exist !!" else echo "Running with (ObservedEngyEv=${ObservedEngyEv}, CRindex=${CRindex})" - ./Project FRB_Data_000035.h5 $ObservedEngyEv 1.1e6 $CRindex robitaille_DL07_PAHISMMix.dat >& log-$CRindex-$ObservedEngyEv + ./Project FRB_Data_000035.h5 $ObservedEngyEv 1.1e6 R12/$CRindex robitaille_DL07_PAHISMMix.dat >& log-$CRindex-$ObservedEngyEv fi done < "${temp_file}" done From 796f162066699f7e0562a4065b287f42600b61c0 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 22 Aug 2024 11:28:11 +0800 Subject: [PATCH 61/73] Rename --- example/test_problem/Hydro/FermiBubble/{manual => README.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename example/test_problem/Hydro/FermiBubble/{manual => README.md} (100%) diff --git a/example/test_problem/Hydro/FermiBubble/manual b/example/test_problem/Hydro/FermiBubble/README.md similarity index 100% rename from example/test_problem/Hydro/FermiBubble/manual rename to example/test_problem/Hydro/FermiBubble/README.md From 8ad27627d31057f0014b7268254717f473290a31 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 22 Aug 2024 11:39:53 +0800 Subject: [PATCH 62/73] Change to md style --- .../test_problem/Hydro/FermiBubble/README.md | 220 +++++++++++------- 1 file changed, 139 insertions(+), 81 deletions(-) diff --git a/example/test_problem/Hydro/FermiBubble/README.md b/example/test_problem/Hydro/FermiBubble/README.md index 5322301723..3a47968030 100644 --- a/example/test_problem/Hydro/FermiBubble/README.md +++ b/example/test_problem/Hydro/FermiBubble/README.md @@ -1,156 +1,214 @@ # Simulation -#---------------------------------------------------------------------------------------------------- -# 1. Generate makefile (double precision) +1. Generate makefile (double precision) +```shell python3 configure.py --flu_scheme=MHM_RP --gravity=true --pot_scheme=SOR --store_pot_ghost=true --unsplit_gravity=false --slope=PLM --flux=HLLC --srhd=true --cosmic_ray=true --double=true --hdf5=true --nlevel=14 --fftw=FFTW2 --passive=3 --mpi=true --gpu=true +``` -# 2. Compile GAMER +2. Compile GAMER +```shell make clean make -j mv ../bin/gamer ../bin/gamer_double +``` -# 3. Generate makefile (single precision) +3. Generate makefile (single precision) +```shell python3 configure.py --flu_scheme=MHM_RP --gravity=true --pot_scheme=SOR --store_pot_ghost=true --unsplit_gravity=false --slope=PLM --flux=HLLC --srhd=true --cosmic_ray=true --double=false --hdf5=true --nlevel=14 --fftw=FFTW2 --passive=3 --mpi=true --gpu=true +``` -# 4. Compile GAMER +4. Compile GAMER +```shell make clean make -j mv ../bin/gamer ../bin/gamer_single +``` -# 5. Copy simulation files +5. Copy simulation files +```shell cd ../bin cp -r ../example/test_problem/Hydro/FermiBubble ./ cd FermiBubble cp ../gamer_* ./ sh download_ic.sh +``` -# 6. Run the simulation (stage 1) -# 6-1. Change the parameters to below as follows: - Input__Parameter: - END_T 3.14872516940871e+01 - OUTPUT_DT 2 - OPT__INIT 1 +6. Run the simulation (stage 1) + 1. Change the parameters to below as follows: + - `Input__Parameter`: + - `END_T`: 3.14872516940871e+01 + - `OUTPUT_DT`: 2 + - `OPT__INIT`: 1 - Input__TestProb: - Jet_Fire 3 + - `Input__TestProb`: + - `Jet_Fire`: 3 -# 6-2. Execute gamer -mpirun -map-by ppr:2:socket:pe=8 --report-bindings ./gamer_double 1>>log 2>&1 + 2. Execute gamer + ```shell + mpirun -map-by ppr:2:socket:pe=8 --report-bindings ./gamer_double 1>>log 2>&1 + ``` -# 7. Run the simulation (stage 2) -# 7-1. Change the parameters to below as follows: - Input__Parameter: - END_T 3.8e3 - OUTPUT_DT 200 - OPT__INIT 2 +7. Run the simulation (stage 2) + 1. Change the parameters to below as follows: + - `Input__Parameter`: + - `END_T`: 3.8e3 + - `OUTPUT_DT`: 200 + - `OPT__INIT`: 2 - Input__TestProb: - Jet_Fire 0 + - `Input__TestProb`: + - `Jet_Fire`: 0 -# 7-2. Link the last file from stage 1 -ln -fs Data_000016 RESTART + 2. Link the lastest file from stage 1 + ```shell + ln -fs Data_000016 RESTART + ``` -# 7-3. Execute gamer -mpirun -map-by ppr:2:socket:pe=8 --report-bindings ./gamer_single 1>>log 2>&1 + 3. Execute gamer + ```shell + mpirun -map-by ppr:2:socket:pe=8 --report-bindings ./gamer_single 1>>log 2>&1 + ``` # Analysis -#---------------------------------------------------------------------------------------------------- -# Please execute the following commands before the analysis +> [!WARNING] +> Please execute the following commands before the analysis +```shell cd plot_scripts ln -s ../R12 ln -s ../../../tool/analysis/PerspectiveProjection +``` ## Slice plot +```shell python plot_slice.py -s 0 -e 35 - +``` ## Profile plot along z axis of the lower jet +```shell python plot_profile.py -s 0 -e 35 +``` - -## Generate the fixed resolution data (Data_000035) +## Generate the fixed resolution data (`Data_000035`) +```shell python AMR2FR.py +``` -## Generate x-ray perspective projection map (Data_000035) -# 1. If you do not have FRB_Data_000035.h5, please execute the following command +## Generate x-ray perspective projection map (`Data_000035`) +1. If you do not have `FRB_Data_000035.h5`, please execute the following command +```shell python AMR2FR.py +``` -# 2. Compile the projection tool +2. Compile the projection tool +```shell cd PerspectiveProjection make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DXRAY_EROSITA cd ../ cp PerspectiveProjection/bin/Project ./ +``` -# 3. Execute the projection tool +3. Execute the projection tool +```shell ./Project FRB_Data_000035.h5 +``` -# 4. Plot the map +4. Plot the map +```shell python plot_map.py -t x_ray +``` -## Generate x-ray profile (Data_000035) -# 1. If you do not have FRB_Data_000035.h5, please execute the following command +## Generate x-ray profile (`Data_000035`) +1. If you do not have `FRB_Data_000035.h5`, please execute the following command +```shell python AMR2FR.py +``` -# 2. Plot the x-ray profile +2. Plot the x-ray profile +```shell python plot_xray_profile.py +``` -## Generate gamma ray perspective projection map (Data_000035) -# 1. If you do not have FRB_Data_000035.h5, please execute the following command +## Generate gamma ray perspective projection map (`Data_000035`) +1. If you do not have `FRB_Data_000035.h5`, please execute the following command +```shell python AMR2FRB.py +``` -# 2. Compile the projection tool +2. Compile the projection tool +```shell cd PerspectiveProjection make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DLEPTONIC_GAMMARAY cd ../ cp PerspectiveProjection/bin/Project ./ +``` -# 3. Execute the projection tool +3. Execute the projection tool +```shell ./Project FRB_Data_000035.h5 100e9 1e6 2.4 R12/robitaille_DL07_PAHISMMix.dat -# NOTE : arg1: name of fixed resolution data in Step1 -# arg2: observed photon energy (eV) -# arg3: the cut-off Lorentz factor of CR -# arg4: spectral index of CR -# arg5: the path of ISRF data +``` +> [!NOTE] +> `arg1`: name of fixed resolution data in Step1 +> +> `arg2`: observed photon energy (eV) +> +> `arg3`: the cut-off Lorentz factor of CR +> +> `arg4`: spectral index of CR +> +> `arg5`: the path of ISRF data # 4. Plot the map +```shell python plot_map.py -t gamma_ray +``` ## Generate spectrum -# 1. If you do not have FRB_Data_000035.h5, please execute the following command +1. If you do not have `FRB_Data_000035.h5`, please execute the following command +```shell python AMR2FR.py - -# 2. Compile the projection tool -# 2.1 synchrotron emissivities -cd PerspectiveProjection -make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DSYNCHROTRON -cd ../ -cp PerspectiveProjection/bin/Project synchrotron_spectrum/ - -# 2.2 gamma-ray emissivities -cd PerspectiveProjection -make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DLEPTONIC_GAMMARAY -cd ../ -cp PerspectiveProjection/bin/Project gamma_ray_spectrum/ - -# 3. Calculate spectrums -# 3-1. synchrotron emissivities -cd synchrotron_spectrum -ln -s ../FRB_Data_000035.h5 -ln -s ../../R12 -sh get_spectrum.sh -cd ../ - -# 3-2. gamma ray emissivities -cd gamma_ray_spectrum -ln -s ../FRB_Data_000035.h5 -ln -s ../../R12 -sh get_spectrum.sh -cd ../ - -# 4. Plot the spectrum +``` + +2. Compile the projection tool + 1. synchrotron emissivities + ```shell + cd PerspectiveProjection + make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DSYNCHROTRON + cd ../ + cp PerspectiveProjection/bin/Project synchrotron_spectrum/ + ``` + + 2. gamma-ray emissivities + ```shell + cd PerspectiveProjection + make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DLEPTONIC_GAMMARAY + cd ../ + cp PerspectiveProjection/bin/Project gamma_ray_spectrum/ + ``` + +3. Calculate spectrums + 1. synchrotron emissivities + ```shell + cd synchrotron_spectrum + ln -s ../FRB_Data_000035.h5 + ln -s ../../R12 + sh get_spectrum.sh + cd ../ + ``` + + 2. gamma ray emissivities + ```shell + cd gamma_ray_spectrum + ln -s ../FRB_Data_000035.h5 + ln -s ../../R12 + sh get_spectrum.sh + cd ../ + ``` + +4. Plot the spectrum +```shell python plot_spectrum.py +``` From 462b115b9f5f641f3ef50b2f46bf295198b93fca Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 22 Aug 2024 12:22:39 +0800 Subject: [PATCH 63/73] Change `==` to `is` --- src/configure.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configure.py b/src/configure.py index 1edbd08e8a..1f75c485a5 100755 --- a/src/configure.py +++ b/src/configure.py @@ -740,7 +740,7 @@ def set_conditional_defaults( args ): if args["flux"] is None: args["flux"] = "HLLD" if args["mhd"] else "HLLC" - if args["eos"] == None: + if args["eos"] is None: # The order does matter in this if if args["srhd"] : args["eos"] = "TAUBMATHEWS" elif args["cosmic_ray"]: args["eos"] = "COSMIC_RAY" From 6b4093095d6cdbf067b47012c2aff205ac8a6cc9 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 22 Aug 2024 13:02:39 +0800 Subject: [PATCH 64/73] Restore the test problem --- .../Init_TestProb_Hydro_CR_SoundWave.cpp | 5 ----- .../Riemann/Init_TestProb_Hydro_Riemann.cpp | 20 +------------------ 2 files changed, 1 insertion(+), 24 deletions(-) diff --git a/src/TestProblem/Hydro/CR_SoundWave/Init_TestProb_Hydro_CR_SoundWave.cpp b/src/TestProblem/Hydro/CR_SoundWave/Init_TestProb_Hydro_CR_SoundWave.cpp index 012bc5d3c6..5c4e0b5cbc 100644 --- a/src/TestProblem/Hydro/CR_SoundWave/Init_TestProb_Hydro_CR_SoundWave.cpp +++ b/src/TestProblem/Hydro/CR_SoundWave/Init_TestProb_Hydro_CR_SoundWave.cpp @@ -240,13 +240,8 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co // set the output array of passive scaler fluid[CRAY] = CRay; -# ifdef SRHD - Eint = Pres / (GAMMA - 1.0); // SRHD assuming that P_gas >> P_cr - Etot = 0.5*(MomX*MomX + MomY*MomY + MomZ*MomZ)/Dens + Eint; -# else Eint = EoS_DensPres2Eint_CPUPtr( Dens, Pres, fluid+NCOMP_FLUID, EoS_AuxArray_Flt, EoS_AuxArray_Int, h_EoS_Table ); Etot = Hydro_ConEint2Etot( Dens, MomX, MomY, MomZ, Eint, 0.0 ); // do NOT include magnetic energy here -# endif // set the output array fluid[DENS] = Dens; diff --git a/src/TestProblem/Hydro/Riemann/Init_TestProb_Hydro_Riemann.cpp b/src/TestProblem/Hydro/Riemann/Init_TestProb_Hydro_Riemann.cpp index 1ab21a52c6..400e950671 100644 --- a/src/TestProblem/Hydro/Riemann/Init_TestProb_Hydro_Riemann.cpp +++ b/src/TestProblem/Hydro/Riemann/Init_TestProb_Hydro_Riemann.cpp @@ -50,10 +50,6 @@ static double Riemann_MagL_T2; // left-state transverse B field 2 static double Riemann_MagR_T1; // right-state transverse B field 1 static double Riemann_MagR_T2; // right-state transverse B field 2 #endif -#ifdef COSMIC_RAY -static double Riemann_PreL_CR; // left-state cosmic ray pressure -static double Riemann_PreR_CR; // right-state cosmic ray pressure -#endif // ======================================================================================= @@ -153,10 +149,6 @@ void SetParameter() ReadPara->Add( "Riemann_MagR_T1", &Riemann_MagR_T1, __DBL_MAX__, -__DBL_MAX__, __DBL_MAX__ ); ReadPara->Add( "Riemann_MagR_T2", &Riemann_MagR_T2, __DBL_MAX__, -__DBL_MAX__, __DBL_MAX__ ); # endif -# ifdef COSMIC_RAY - ReadPara->Add( "Riemann_PreL_CR", &Riemann_PreL_CR, __DBL_MIN__, __DBL_MIN__, __DBL_MAX__ ); - ReadPara->Add( "Riemann_PreR_CR", &Riemann_PreR_CR, __DBL_MIN__, __DBL_MIN__, __DBL_MAX__ ); -# endif ReadPara->Read( FileName ); @@ -416,17 +408,7 @@ void SetGridIC( real fluid[], const double x, const double y, const double z, co Prim[ MomIdx[0] ] = (real)(aVel + dVel*Tanh); Prim[ MomIdx[1] ] = (real)(aVT1 + dVT1*Tanh); Prim[ MomIdx[2] ] = (real)(aVT2 + dVT2*Tanh); - Prim[ ENGY ] = (real)(aPre + dPre*Tanh); // gas pressure -# ifdef COSMIC_RAY - const double dPre_CR = 0.5*( Riemann_PreR_CR - Riemann_PreL_CR ); - const double aPre_CR = 0.5*( Riemann_PreR_CR + Riemann_PreL_CR ); - Prim[ CRAY ] = (real)(aPre_CR + dPre_CR*Tanh); // cosmic ray pressure - Prim[ ENGY ] += Prim[CRAY]; // Note that p_gas >> p_cr in SRHD, so it should be fine. - -// should be replaced by the EoS - const double GAMMA_CR_m1_inv = 1.0 / (GAMMA_CR - 1.0); - fluid[CRAY] = Prim[CRAY] * GAMMA_CR_m1_inv; -# endif + Prim[ ENGY ] = (real)(aPre + dPre*Tanh); // pressure # ifdef SRHD Hydro_Pri2Con( Prim, fluid, NULL_BOOL, NULL_INT, NULL, NULL, From 680c4bbd6b07f07f31be29d6fb7dc1c94bc949e7 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 22 Aug 2024 13:20:23 +0800 Subject: [PATCH 65/73] Add download script --- .../test_problem/Hydro/FermiBubble/download_ic.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 example/test_problem/Hydro/FermiBubble/download_ic.sh diff --git a/example/test_problem/Hydro/FermiBubble/download_ic.sh b/example/test_problem/Hydro/FermiBubble/download_ic.sh new file mode 100644 index 0000000000..aa2cd0080a --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/download_ic.sh @@ -0,0 +1,13 @@ +API_URL="https://girder.hub.yt/api/v1" +FILE_ID="66c6bdb532f323dee1b80149" +LOCAL_FOLDER="./" + +# download +girder-cli --api-url ${API_URL} download --parent-type item ${FILE_ID} ${LOCAL_FOLDER} + +# unzip +tar zxvf FermiBubble.tar.gz +rm FermiBubble.tar.gz +mv IC/FermiBubble_IC ./ +mv IC/R12 ./ +rm -rf IC From cc8aac2f020ebc393ec882867225b21031573a28 Mon Sep 17 00:00:00 2001 From: Chun-Yen Chen <70311975+ChunYen-Chen@users.noreply.github.com> Date: Thu, 22 Aug 2024 13:27:45 +0800 Subject: [PATCH 66/73] Alignment --- .../test_problem/Hydro/FermiBubble/README.md | 202 +++++++++--------- 1 file changed, 101 insertions(+), 101 deletions(-) diff --git a/example/test_problem/Hydro/FermiBubble/README.md b/example/test_problem/Hydro/FermiBubble/README.md index 3a47968030..8ee9bad385 100644 --- a/example/test_problem/Hydro/FermiBubble/README.md +++ b/example/test_problem/Hydro/FermiBubble/README.md @@ -1,36 +1,36 @@ # Simulation 1. Generate makefile (double precision) -```shell -python3 configure.py --flu_scheme=MHM_RP --gravity=true --pot_scheme=SOR --store_pot_ghost=true --unsplit_gravity=false --slope=PLM --flux=HLLC --srhd=true --cosmic_ray=true --double=true --hdf5=true --nlevel=14 --fftw=FFTW2 --passive=3 --mpi=true --gpu=true -``` + ```shell + python3 configure.py --flu_scheme=MHM_RP --gravity=true --pot_scheme=SOR --store_pot_ghost=true --unsplit_gravity=false --slope=PLM --flux=HLLC --srhd=true --cosmic_ray=true --double=true --hdf5=true --nlevel=14 --fftw=FFTW2 --passive=3 --mpi=true --gpu=true + ``` 2. Compile GAMER -```shell -make clean -make -j -mv ../bin/gamer ../bin/gamer_double -``` + ```shell + make clean + make -j + mv ../bin/gamer ../bin/gamer_double + ``` 3. Generate makefile (single precision) -```shell -python3 configure.py --flu_scheme=MHM_RP --gravity=true --pot_scheme=SOR --store_pot_ghost=true --unsplit_gravity=false --slope=PLM --flux=HLLC --srhd=true --cosmic_ray=true --double=false --hdf5=true --nlevel=14 --fftw=FFTW2 --passive=3 --mpi=true --gpu=true -``` + ```shell + python3 configure.py --flu_scheme=MHM_RP --gravity=true --pot_scheme=SOR --store_pot_ghost=true --unsplit_gravity=false --slope=PLM --flux=HLLC --srhd=true --cosmic_ray=true --double=false --hdf5=true --nlevel=14 --fftw=FFTW2 --passive=3 --mpi=true --gpu=true + ``` 4. Compile GAMER -```shell -make clean -make -j -mv ../bin/gamer ../bin/gamer_single -``` + ```shell + make clean + make -j + mv ../bin/gamer ../bin/gamer_single + ``` 5. Copy simulation files -```shell -cd ../bin -cp -r ../example/test_problem/Hydro/FermiBubble ./ -cd FermiBubble -cp ../gamer_* ./ -sh download_ic.sh -``` + ```shell + cd ../bin + cp -r ../example/test_problem/Hydro/FermiBubble ./ + cd FermiBubble + cp ../gamer_* ./ + sh download_ic.sh + ``` 6. Run the simulation (stage 1) 1. Change the parameters to below as follows: @@ -43,9 +43,9 @@ sh download_ic.sh - `Jet_Fire`: 3 2. Execute gamer - ```shell - mpirun -map-by ppr:2:socket:pe=8 --report-bindings ./gamer_double 1>>log 2>&1 - ``` + ```shell + mpirun -map-by ppr:2:socket:pe=8 --report-bindings ./gamer_double 1>>log 2>&1 + ``` 7. Run the simulation (stage 2) 1. Change the parameters to below as follows: @@ -58,19 +58,19 @@ sh download_ic.sh - `Jet_Fire`: 0 2. Link the lastest file from stage 1 - ```shell - ln -fs Data_000016 RESTART - ``` + ```shell + ln -fs Data_000016 RESTART + ``` 3. Execute gamer - ```shell - mpirun -map-by ppr:2:socket:pe=8 --report-bindings ./gamer_single 1>>log 2>&1 - ``` + ```shell + mpirun -map-by ppr:2:socket:pe=8 --report-bindings ./gamer_single 1>>log 2>&1 + ``` # Analysis -> [!WARNING] +> [!CAUTION] > Please execute the following commands before the analysis ```shell cd plot_scripts @@ -97,58 +97,58 @@ python AMR2FR.py ## Generate x-ray perspective projection map (`Data_000035`) 1. If you do not have `FRB_Data_000035.h5`, please execute the following command -```shell -python AMR2FR.py -``` + ```shell + python AMR2FR.py + ``` 2. Compile the projection tool -```shell -cd PerspectiveProjection -make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DXRAY_EROSITA -cd ../ -cp PerspectiveProjection/bin/Project ./ -``` + ```shell + cd PerspectiveProjection + make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DXRAY_EROSITA + cd ../ + cp PerspectiveProjection/bin/Project ./ + ``` 3. Execute the projection tool -```shell -./Project FRB_Data_000035.h5 -``` + ```shell + ./Project FRB_Data_000035.h5 + ``` 4. Plot the map -```shell -python plot_map.py -t x_ray -``` + ```shell + python plot_map.py -t x_ray + ``` ## Generate x-ray profile (`Data_000035`) 1. If you do not have `FRB_Data_000035.h5`, please execute the following command -```shell -python AMR2FR.py -``` + ```shell + python AMR2FR.py + ``` 2. Plot the x-ray profile -```shell -python plot_xray_profile.py -``` + ```shell + python plot_xray_profile.py + ``` ## Generate gamma ray perspective projection map (`Data_000035`) 1. If you do not have `FRB_Data_000035.h5`, please execute the following command -```shell -python AMR2FRB.py -``` + ```shell + python AMR2FRB.py + ``` 2. Compile the projection tool -```shell -cd PerspectiveProjection -make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DLEPTONIC_GAMMARAY -cd ../ -cp PerspectiveProjection/bin/Project ./ -``` + ```shell + cd PerspectiveProjection + make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DLEPTONIC_GAMMARAY + cd ../ + cp PerspectiveProjection/bin/Project ./ + ``` 3. Execute the projection tool -```shell -./Project FRB_Data_000035.h5 100e9 1e6 2.4 R12/robitaille_DL07_PAHISMMix.dat -``` + ```shell + ./Project FRB_Data_000035.h5 100e9 1e6 2.4 R12/robitaille_DL07_PAHISMMix.dat + ``` > [!NOTE] > `arg1`: name of fixed resolution data in Step1 > @@ -161,54 +161,54 @@ cp PerspectiveProjection/bin/Project ./ > `arg5`: the path of ISRF data # 4. Plot the map -```shell -python plot_map.py -t gamma_ray -``` + ```shell + python plot_map.py -t gamma_ray + ``` ## Generate spectrum 1. If you do not have `FRB_Data_000035.h5`, please execute the following command -```shell -python AMR2FR.py -``` + ```shell + python AMR2FR.py + ``` 2. Compile the projection tool 1. synchrotron emissivities - ```shell - cd PerspectiveProjection - make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DSYNCHROTRON - cd ../ - cp PerspectiveProjection/bin/Project synchrotron_spectrum/ - ``` + ```shell + cd PerspectiveProjection + make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DSYNCHROTRON + cd ../ + cp PerspectiveProjection/bin/Project synchrotron_spectrum/ + ``` 2. gamma-ray emissivities - ```shell - cd PerspectiveProjection - make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DLEPTONIC_GAMMARAY - cd ../ - cp PerspectiveProjection/bin/Project gamma_ray_spectrum/ - ``` + ```shell + cd PerspectiveProjection + make clean && make CFLAGS+=-DNUM_THREADS=32 CFLAGS+=-DLEPTONIC_GAMMARAY + cd ../ + cp PerspectiveProjection/bin/Project gamma_ray_spectrum/ + ``` 3. Calculate spectrums 1. synchrotron emissivities - ```shell - cd synchrotron_spectrum - ln -s ../FRB_Data_000035.h5 - ln -s ../../R12 - sh get_spectrum.sh - cd ../ - ``` + ```shell + cd synchrotron_spectrum + ln -s ../FRB_Data_000035.h5 + ln -s ../../R12 + sh get_spectrum.sh + cd ../ + ``` 2. gamma ray emissivities - ```shell - cd gamma_ray_spectrum - ln -s ../FRB_Data_000035.h5 - ln -s ../../R12 - sh get_spectrum.sh - cd ../ - ``` + ```shell + cd gamma_ray_spectrum + ln -s ../FRB_Data_000035.h5 + ln -s ../../R12 + sh get_spectrum.sh + cd ../ + ``` 4. Plot the spectrum -```shell -python plot_spectrum.py -``` + ```shell + python plot_spectrum.py + ``` From 2115a9fef665ef45ae76bfb7deaf0bb65e0628b8 Mon Sep 17 00:00:00 2001 From: Actionbot Date: Thu, 22 Aug 2024 05:28:11 +0000 Subject: [PATCH 67/73] chore(docs): Sync wiki to doc/wiki [skip-cd] --- doc/wiki/Installation:-External-Libraries.md | 12 ++++++------ doc/wiki/Installation:-Simulation-Options.md | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/wiki/Installation:-External-Libraries.md b/doc/wiki/Installation:-External-Libraries.md index ed67f31d7b..afa800f55e 100644 --- a/doc/wiki/Installation:-External-Libraries.md +++ b/doc/wiki/Installation:-External-Libraries.md @@ -73,9 +73,9 @@ Follow the installation instructions in the [GRACKLE website](http://grackle.readthedocs.io/en/latest/index.html). Note that it must be configured with a consistent floating-point accuracy as GAMER using - - > make precision-{32,64} - +``` +make precision-{32,64} +``` Specifically, configure GRACKLE with `make precision-64/32` when compiling GAMER with/without the option [[FLOAT8 | Installation: Simulation-Options#FLOAT8]], respectively. @@ -84,9 +84,9 @@ In addition, when enabling OpenMP in GAMER (i.e., with the compile-time option [[OPENMP | Installation: Simulation-Options#OPENMP]]), GRACKLE must be configured with OpenMP support as well using - - > make omp-on - +``` +make omp-on +``` ### HDF5 GAMER uses [HDF5](https://support.hdfgroup.org/HDF5/) for storing snapshots. It is not necessary to enable either `--enable-cxx` or `--enable-parallel` when diff --git a/doc/wiki/Installation:-Simulation-Options.md b/doc/wiki/Installation:-Simulation-Options.md index b149821f1a..0ef9099098 100644 --- a/doc/wiki/Installation:-Simulation-Options.md +++ b/doc/wiki/Installation:-Simulation-Options.md @@ -63,7 +63,7 @@ disabled). See the "Restriction" of each option carefully.** | NCOMP_PASSIVE_USER | ≥ 0 | Number of user-defined passive scalars | See [[here\|Adding-New-Simulations#v-add-problem-specific-grid-fields-and-particle-attributes]] for details; not supported for FLU_SCHEME=RTVD | | MHD | | Magnetohydrodynamics | | | SRHD | | Special relativistic hydrodynamics | Must adopt `EOS=EOS_TAUBMATHEWS` | -| COSMIC_RAY | | Cosmic rays | Must adopt `EOS=EOS_COSMIC_RAY` | +| COSMIC_RAY | | Cosmic rays | Must adopt `EOS=EOS_COSMIC_RAY` for `HYDRO` and `MHD`. Must adopt `EOS=EOS_TAUBMATHEWS` for `SRHD` | | CR_DIFFUSION | | Cosmic-ray diffusion | Must enable both `COSMIC_RAY` and `MHD` | | EOS | EOS_GAMMA
EOS_ISOTHERMAL
EOS_COSMIC_RAY
EOS_TAUBMATHEWS
EOS_USER | [[Equation of state \|equation-of-state]] | The following options only support `EOS_GAMMA`: `FLU_SCHEME=RTVD/CTU`, `RSOLVER=EXACT/ROE`, `COMOVING`, `DUAL_ENERGY`; see also [BAROTROPIC_EOS](#BAROTROPIC_EOS) | | BAROTROPIC_EOS || Is [EOS](#EOS) barotropic? | Must be disabled for `EOS_GAMMA` and enabled for `EOS_ISOTHERMAL` | From 2118524d938e3d8ebcd19d13a3ac60d44a587b11 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Tue, 27 Aug 2024 15:34:18 +0800 Subject: [PATCH 68/73] Remove debug msg --- src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp b/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp index 1611af72bb..1773667dd2 100644 --- a/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp +++ b/src/TestProblem/Hydro/FermiBubble/Init_TestProb_FermiBubble.cpp @@ -630,7 +630,6 @@ void SetArrayHVC() ReadBinFile( TableFileName, &buffer ); int headerSize = (int)buffer[0]; - printf( "MY_DEBUG: %s has header size of %d\n", TableFileName, headerSize ); Header_hvc = (real*)malloc( (size_t)headerSize*sizeof(real) ); From 1dafc31d4211e81936cae2b3ae75d17101ade42a Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 5 Dec 2024 13:43:50 +0800 Subject: [PATCH 69/73] Add generate_make.sh --- example/test_problem/Hydro/FermiBubble/generate_make.sh | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 example/test_problem/Hydro/FermiBubble/generate_make.sh diff --git a/example/test_problem/Hydro/FermiBubble/generate_make.sh b/example/test_problem/Hydro/FermiBubble/generate_make.sh new file mode 100644 index 0000000000..5afb53c5db --- /dev/null +++ b/example/test_problem/Hydro/FermiBubble/generate_make.sh @@ -0,0 +1,7 @@ +# This script should run in the same directory as configure.py + +PYTHON=python3 + +${PYTHON} configure.py --flu_scheme=MHM_RP --gravity=true --pot_scheme=SOR --store_pot_ghost=true \ + --unsplit_gravity=false --slope=PLM --flux=HLLC --srhd=true --cosmic_ray=true \ + --double=true --hdf5=true --nlevel=14 --fftw=FFTW2 --passive=3 --mpi=true --gpu=true From 53e322ed0e653010a8714b5a28deae5af023733f Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Sat, 28 Dec 2024 16:06:21 +0800 Subject: [PATCH 70/73] Remove useless variable --- src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp b/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp index 5e6543d21c..8ab6e44397 100644 --- a/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp +++ b/src/Model_Hydro/CPU_HydroGravity/CPU_HydroGravitySolver.cpp @@ -385,7 +385,6 @@ void CPU_HydroGravitySolver( } const real minPres = TINY_NUMBER; - const real minJeansPres = TINY_NUMBER; Hydro_Con2Pri( Cons_new, Prim_new, minPres, NULL_BOOL, NULL_INT, NULL, NULL_BOOL, NULL_REAL, EoS.DensEint2Pres_FuncPtr, EoS.DensPres2Eint_FuncPtr, EoS.GuessHTilde_FuncPtr, EoS.HTilde2Temp_FuncPtr, EoS.AuxArrayDevPtr_Flt, From 814da14825e3888e38c210b4ca10e0c62f2efbdd Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Wed, 8 Jan 2025 18:45:01 +0800 Subject: [PATCH 71/73] Minor --- example/test_problem/Hydro/FermiBubble/generate_make.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/test_problem/Hydro/FermiBubble/generate_make.sh b/example/test_problem/Hydro/FermiBubble/generate_make.sh index 5afb53c5db..45672b42ae 100644 --- a/example/test_problem/Hydro/FermiBubble/generate_make.sh +++ b/example/test_problem/Hydro/FermiBubble/generate_make.sh @@ -4,4 +4,4 @@ PYTHON=python3 ${PYTHON} configure.py --flu_scheme=MHM_RP --gravity=true --pot_scheme=SOR --store_pot_ghost=true \ --unsplit_gravity=false --slope=PLM --flux=HLLC --srhd=true --cosmic_ray=true \ - --double=true --hdf5=true --nlevel=14 --fftw=FFTW2 --passive=3 --mpi=true --gpu=true + --double=true --hdf5=true --nlevel=14 --fftw=FFTW2 --passive=3 --mpi=true --gpu=true "$@" From 664d7e890183be89cfe91bce03936e55ab9cccf0 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Wed, 8 Jan 2025 18:48:28 +0800 Subject: [PATCH 72/73] Update link --- .../Hydro/FermiBubble/download_ic.sh | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/example/test_problem/Hydro/FermiBubble/download_ic.sh b/example/test_problem/Hydro/FermiBubble/download_ic.sh index aa2cd0080a..89fa8ed450 100644 --- a/example/test_problem/Hydro/FermiBubble/download_ic.sh +++ b/example/test_problem/Hydro/FermiBubble/download_ic.sh @@ -1,13 +1,14 @@ -API_URL="https://girder.hub.yt/api/v1" -FILE_ID="66c6bdb532f323dee1b80149" -LOCAL_FOLDER="./" +#!/bin/bash -# download -girder-cli --api-url ${API_URL} download --parent-type item ${FILE_ID} ${LOCAL_FOLDER} +LOCAL_FILENAME="FermiBubble" +FILE_ID="677d3e9e999605c485c8de8c" -# unzip -tar zxvf FermiBubble.tar.gz -rm FermiBubble.tar.gz +# 1. download +curl https://hub.yt/api/v1/item/${FILE_ID}/download -o "${LOCAL_FILENAME}.tar.gz" + +# 2. unzip +tar zxvf ${LOCAL_FILENAME}.tar.gz +rm ${LOCAL_FILENAME}.tar.gz mv IC/FermiBubble_IC ./ mv IC/R12 ./ rm -rf IC From d71f05e594a681e91ac93d248d7e2f7e4fc85cb5 Mon Sep 17 00:00:00 2001 From: ChunYen-Chen Date: Thu, 16 Jan 2025 11:54:18 +0000 Subject: [PATCH 73/73] [Workflow] Update all parameters wiki page --- doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md b/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md index af754c96b2..ec8e2b9113 100644 --- a/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md +++ b/doc/wiki/Runtime-Parameters-related/Runtime-Parameters:-All.md @@ -401,7 +401,7 @@ For variables with `Default/Min/Max` labeled as `Depend`, click the parameter na # T | Name | Default | Min | Max | Short description | | :--- | :--- | :--- | :--- | :--- | -| [[ TESTPROB_ID \| Runtime-Parameters:-General#TESTPROB_ID ]] | 0 | 0 | None | test problem ID [0]
0: none
1: HYDRO blast wave [+MHD]
2: HYDRO acoustic wave
3: HYDRO Bondi accretion (+GRAVITY)
4: HYDRO cluster merger vs. Flash (+GRAVITY & PARTICLE)
5: HYDRO AGORA isolated galaxy (+GRAVITY & PARTICLE & STAR_FORMATION & GRACKLE)
6: HYDRO caustic wave
7: HYDRO spherical collapse (+GRAVITY & COMOVING)
8: HYDRO Kelvin Helmholtz instability
9: HYDRO Riemann problems [+MHD]
10: HYDRO jet(s)
11: HYDRO Plummer cloud(s) (+GRAVITY & PARTICLE)
12: HYDRO gravity (+GRAVITY)
13: HYDRO MHD Arnold-Beltrami-Childress (ABC) flow (+MHD)
14: HYDRO MHD Orszag-Tang vortex (+MHD)
15: HYDRO MHD linear wave (+MHD)
16: HYDRO Jeans instability (+GRAVITY) [+MHD]
17: HYDRO particle in equilibrium (+GRAVITY & PARTICLE)
19: HYDRO energy power spectrum
20: HYDRO MHD Cosmic Ray Soundwave
21: HYDRO MHD Cosmic Ray Shocktube
23: HYDRO MHD Cosmic Ray Diffusion
100: HYDRO CDM cosmological simulation (+GRAVITY & COMOVING & PARTICLE)
101: HYDRO Zeldovich pancake collapse (+GRAVITY & COMOVING & PARTICLE)
1000: ELBDM external potential (+GRAVITY)
1001: ELBDM Jeans instability in the comoving frame (+GRAVITY, +COMOVING)
1002: ELBDM Jeans instability in the physical frame (+GRAVITY)
1003: ELBDM soliton merger (+GRAVITY)
1004: ELBDM self-similar halo (+GRAVITY, +COMOVING)
1005: ELBDM rotating vortex pair
1006: ELBDM vortex pair in linear motion
1007: ELBDM halo extracted from a large-scale structure simulation (+GRAVITY)
1008: ELBDM 1D Gaussian wave packet
1009: ELBDM large-scale structure simulation (+GRAVITY, +COMOVING)
1010: ELBDM plane wave
1011: ELBDM small wave perturbations on homogeneous background | +| [[ TESTPROB_ID \| Runtime-Parameters:-General#TESTPROB_ID ]] | 0 | 0 | None | test problem ID [0]
0: none
1: HYDRO blast wave [+MHD]
2: HYDRO acoustic wave
3: HYDRO Bondi accretion (+GRAVITY)
4: HYDRO cluster merger vs. Flash (+GRAVITY & PARTICLE)
5: HYDRO AGORA isolated galaxy (+GRAVITY & PARTICLE & STAR_FORMATION & GRACKLE)
6: HYDRO caustic wave
7: HYDRO spherical collapse (+GRAVITY & COMOVING)
8: HYDRO Kelvin Helmholtz instability
9: HYDRO Riemann problems [+MHD]
10: HYDRO jet(s)
11: HYDRO Plummer cloud(s) (+GRAVITY & PARTICLE)
12: HYDRO gravity (+GRAVITY)
13: HYDRO MHD Arnold-Beltrami-Childress (ABC) flow (+MHD)
14: HYDRO MHD Orszag-Tang vortex (+MHD)
15: HYDRO MHD linear wave (+MHD)
16: HYDRO Jeans instability (+GRAVITY) [+MHD]
17: HYDRO particle in equilibrium (+GRAVITY & PARTICLE)
19: HYDRO energy power spectrum
20: HYDRO MHD Cosmic Ray Soundwave
21: HYDRO MHD Cosmic Ray Shocktube
23: HYDRO MHD Cosmic Ray Diffusion
24: HYDRO SRHD Fermi Bubble
100: HYDRO CDM cosmological simulation (+GRAVITY & COMOVING & PARTICLE)
101: HYDRO Zeldovich pancake collapse (+GRAVITY & COMOVING & PARTICLE)
1000: ELBDM external potential (+GRAVITY)
1001: ELBDM Jeans instability in the comoving frame (+GRAVITY, +COMOVING)
1002: ELBDM Jeans instability in the physical frame (+GRAVITY)
1003: ELBDM soliton merger (+GRAVITY)
1004: ELBDM self-similar halo (+GRAVITY, +COMOVING)
1005: ELBDM rotating vortex pair
1006: ELBDM vortex pair in linear motion
1007: ELBDM halo extracted from a large-scale structure simulation (+GRAVITY)
1008: ELBDM 1D Gaussian wave packet
1009: ELBDM large-scale structure simulation (+GRAVITY, +COMOVING)
1010: ELBDM plane wave
1011: ELBDM small wave perturbations on homogeneous background | # U | Name | Default | Min | Max | Short description |