From 7c7fe4ef8a800f8616b872b38a588e831cd21c46 Mon Sep 17 00:00:00 2001 From: CallieHsu Date: Thu, 6 Jul 2023 14:36:01 -0400 Subject: [PATCH 01/11] update odechamber function --- src/runcode-func.jl | 31 +++----- src/utils-matrix.jl | 99 ++++++++++-------------- test/test-matrix-a-data.jl | 152 +++---------------------------------- test/test-matrix-b-data.jl | 67 ++-------------- test/test-matrix.jl | 30 +++----- 5 files changed, 80 insertions(+), 299 deletions(-) diff --git a/src/runcode-func.jl b/src/runcode-func.jl index 3f1de8d..f8a87ae 100644 --- a/src/runcode-func.jl +++ b/src/runcode-func.jl @@ -36,21 +36,12 @@ function odeChamber( L_e, L_m = param.L_e, param.L_m mm_h2o, mm_co2 = param.mm_h2o, param.mm_co2 T_in = param.T_in - P_lit_0, dP_lit_dt, dP_lit_dt_0, P_lit_drop_max = param.P_lit_0, - param.dP_lit_dt, param.dP_lit_dt_0, - param.P_lit_drop_max - P0plusDP = u[1] + P = u[1] T = u[2] eps_g = u[3] X_co2 = u[7] - P_lit = P_lit_0 + dP_lit_dt_0 * t - if P_lit < P_lit_0 - P_lit_drop_max - P_lit = P_lit_0 - P_lit_drop_max - dP_lit_dt = 0.0 - param.dP_lit_dt = 0.0 - end - P = P_lit + P0plusDP - P_lit_0 + # effective gas molar mass m_g = mm_co2 * X_co2 + mm_h2o * (1 - X_co2) @@ -94,8 +85,10 @@ function odeChamber( if phase == 3 C_co2 = C_co2_t + C_h2o = m_eq elseif phase == 2 - C_co2 = m_co2 + C_co2 = M_co2/(rho_m*eps_m*V) + C_h2o = M_h2o/(rho_m*eps_m*V) end # specific heat of gas @@ -147,7 +140,7 @@ function odeChamber( dm_eq_dP, rho_m, eps_m, - m_eq, + C_h2o, drho_m_dP, drc_dT, drho_x_dT, @@ -161,7 +154,6 @@ function odeChamber( m_h2o, m_co2, deps_x_dmco2_t, - dP_lit_dt, Hdot_in, Hdot_out, c_x, @@ -189,14 +181,13 @@ function odeChamber( # coefficients in the system of unknowns Ax = B, here x= [dP/dt dT/dt deps_g/dt dX_co2/dt] if phase == 3 - dDP_dt, dT_dt, deps_g_dt, dX_co2_dt = A \ b + dP_dt, dT_dt, deps_g_dt, dX_co2_dt = A \ b elseif phase == 2 - dDP_dt, dT_dt = A \ b + dP_dt, dT_dt = A \ b deps_g_dt, dX_co2_dt = 0.0, 0.0 end - dP_dt = dDP_dt + dP_lit_dt - du[1] = dDP_dt + du[1] = dP_dt du[2] = dT_dt du[3] = deps_g_dt du[4] = dV_dP * dP_dt + dV_dT * dT_dt + V * P_loss @@ -285,7 +276,8 @@ function stopChamber_MT( out[5] = eps_x - 0.5 out[6] = m_h2o_melt - m_eq_max out[7] = -(P0plusDP - param.P_lit_0 + DP_crit) - return out[8] = m_co2_melt - C_co2_sat + out[8] = m_co2_melt - C_co2_sat + return out end """ @@ -415,6 +407,7 @@ function affect!( C_co2 = C_co2_temp else @warn("3rd try in IC Finder unsuccessful") + @info("IC_Finder results: $eps_g_temp, $X_co2_temp, $C_co2_temp, $phase = IC_Finder($composition, $(int.u[9]), $(int.u[10]), $(int.u[8]), $(P_0), $(int.u[2]), $(int.u[4]), $(int.u[5]), $(param_IC_Finder))") end end end diff --git a/src/utils-matrix.jl b/src/utils-matrix.jl index 6f94f73..848bb4c 100644 --- a/src/utils-matrix.jl +++ b/src/utils-matrix.jl @@ -16,7 +16,7 @@ end function a21_f( eps_m::T, dm_eq_dP::T, - m_eq::T, + C_h2o::T, deps_x_dP::T, dV_dP::T, V::T, @@ -29,9 +29,9 @@ function a21_f( drho_g_dP::T, rho_g::T, )::T where {T<:Float64} - return eps_m * dm_eq_dP - m_eq * deps_x_dP + - m_eq * eps_m * dV_dP / V + - m_eq * eps_m * drho_m_dP / rho_m + + return eps_m * dm_eq_dP - C_h2o * deps_x_dP + + C_h2o * eps_m * dV_dP / V + + C_h2o * eps_m * drho_m_dP / rho_m + (1 - X_co2) / m_g * eps_g * mm_h2o * drho_g_dP / rho_m + (1 - X_co2) / m_g * eps_g * mm_h2o * rho_g * dV_dP / (rho_m * V) end @@ -39,7 +39,7 @@ end function a22_f( eps_m::T, dm_eq_dT::T, - m_eq::T, + C_h2o::T, deps_x_dT::T, dV_dT::T, V::T, @@ -52,16 +52,16 @@ function a22_f( drho_g_dT::T, rho_g::T, )::T where {T<:Float64} - return eps_m * dm_eq_dT - m_eq * deps_x_dT - m_eq * eps_m * dV_dT / V + - m_eq * eps_m * drho_m_dT / rho_m + + return eps_m * dm_eq_dT - C_h2o * deps_x_dT + C_h2o * eps_m * dV_dT / V + + C_h2o * eps_m * drho_m_dT / rho_m + (1 - X_co2) / m_g * eps_g * mm_h2o * drho_g_dT / rho_m + (1 - X_co2) / m_g * eps_g * mm_h2o * rho_g * dV_dT / (rho_m * V) end function a23_f( - m_eq::T, X_co2::T, m_g::T, rho_g::T, mm_h2o::T, rho_m::T + C_h2o::T, X_co2::T, m_g::T, rho_g::T, mm_h2o::T, rho_m::T )::T where {T<:Float64} - return -m_eq + (1 - X_co2) / m_g * rho_g * mm_h2o / rho_m + return -C_h2o + (1 - X_co2) / m_g * rho_g * mm_h2o / rho_m end function a24_f( @@ -97,7 +97,7 @@ function a31_f( dm_eq_dP::T, rho_m::T, eps_m::T, - m_eq::T, + C_h2o::T, drho_m_dP::T, )::T where {T<:Float64} return drc_dP / (rc) + @@ -108,9 +108,9 @@ function a31_f( ) + L_e * ( -dm_eq_dP * rho_m * eps_m / (rc * temp) - - m_eq * eps_m * drho_m_dP / (rc * temp) + - m_eq * rho_m * deps_x_dP / (rc * temp) - - m_eq * rho_m * eps_m * dV_dP / (rc * V * temp) + C_h2o * eps_m * drho_m_dP / (rc * temp) + + C_h2o * rho_m * deps_x_dP / (rc * temp) - + C_h2o * rho_m * eps_m * dV_dP / (rc * V * temp) ) end @@ -129,7 +129,7 @@ function a32_f( dm_eq_dT::T, rho_m::T, eps_m::T, - m_eq::T, + C_h2o::T, drho_m_dT::T, )::T where {T<:Float64} return drc_dT / (rc) + @@ -141,16 +141,16 @@ function a32_f( ) + L_e * ( -dm_eq_dT * rho_m * eps_m / (rc * temp) - - m_eq * eps_m * drho_m_dT / (rc * temp) + - m_eq * rho_m * deps_x_dT / (rc * temp) - - m_eq * rho_m * eps_m * dV_dT / (rc * temp * V) + C_h2o * eps_m * drho_m_dT / (rc * temp) + + C_h2o * rho_m * deps_x_dT / (rc * temp) - + C_h2o * rho_m * eps_m * dV_dT / (rc * temp * V) ) end function a33_f( - rho_g::T, c_g::T, rho_m::T, c_m::T, rc::T, L_e::T, m_eq::T, temp::T + rho_g::T, c_g::T, rho_m::T, c_m::T, rc::T, L_e::T, C_h2o::T, temp::T )::T where {T<:Float64} - return (rho_g * c_g - rho_m * c_m) / rc + L_e * m_eq * rho_m / (rc * temp) + return (rho_g * c_g - rho_m * c_m) / rc + L_e * C_h2o * rho_m / (rc * temp) end function a34_f( @@ -198,7 +198,7 @@ function a42_f( drho_g_dT::T, rho_g::T, )::T where {T<:Float64} - return eps_m * dC_co2_dT - C_co2 * deps_x_dT - C_co2 * eps_m * dV_dT / V + + return eps_m * dC_co2_dT - C_co2 * deps_x_dT + C_co2 * eps_m * dV_dT / V + C_co2 * eps_m * drho_m_dT / rho_m + X_co2 / m_g * eps_g * mm_co2 * drho_g_dT / rho_m + X_co2 / m_g * eps_g * rho_g * mm_co2 * dV_dT / (rho_m * V) @@ -255,12 +255,10 @@ function b1_f( dM_h2o_t_dt::T, deps_x_dmco2_t::T, dM_co2_t_dt::T, - a11::T, - dP_lit_dt::T, )::T where {T<:Float64} return (Mdot_in - Mdot_out) / (rho * V) - P_loss - (rho_x - rho_m) / rho * deps_x_dmh2o_t * dM_h2o_t_dt - - (rho_x - rho_m) / rho * deps_x_dmco2_t * dM_co2_t_dt - a11 * dP_lit_dt + (rho_x - rho_m) / rho * deps_x_dmco2_t * dM_co2_t_dt end # b2: conservation of water mass function b2_f( @@ -268,7 +266,7 @@ function b2_f( Mdot_v_out::T, rho_m::T, V::T, - m_eq::T, + C_h2o::T, deps_x_dmh2o_t::T, dM_h2o_t_dt::T, deps_x_dmco2_t::T, @@ -280,13 +278,11 @@ function b2_f( rho_g::T, eps_g::T, mm_h2o::T, - a21::T, - dP_lit_dt::T, )::T where {T<:Float64} - return (Mdot_v_in - Mdot_v_out) / (rho_m * V) - - m_eq * (deps_x_dmh2o_t * dM_h2o_t_dt + deps_x_dmco2_t * dM_co2_t_dt) - - m_eq * eps_m * P_loss - - (1 - X_co2) / m_g * rho_g / rho_m * eps_g * mm_h2o * P_loss - a21 * dP_lit_dt + return (Mdot_v_in - Mdot_v_out) / (rho_m * V) + + C_h2o * (deps_x_dmh2o_t * dM_h2o_t_dt + deps_x_dmco2_t * dM_co2_t_dt) - + C_h2o * eps_m * P_loss - + (1 - X_co2) / m_g * rho_g / rho_m * eps_g * mm_h2o * P_loss end # b3: conservation of (total) enthalpy function b3_f( @@ -305,12 +301,10 @@ function b3_f( dM_co2_t_dt::T, L_m::T, L_e::T, - m_eq::T, + C_h2o::T, P_loss::T, eps_x::T, eps_m::T, - a31::T, - dP_lit_dt::T, )::T where {T<:Float64} return (Hdot_in - Hdot_out) / (rc * temp * V) - 1 / (rc * V * temp) * ( @@ -321,13 +315,13 @@ function b3_f( ) + L_m * rho_x * V / (rc * V * temp) * (deps_x_dmh2o_t * dM_h2o_t_dt + deps_x_dmco2_t * dM_co2_t_dt) + - L_e * m_eq * rho_m * V / (rc * V * temp) * + L_e * C_h2o * rho_m * V / (rc * V * temp) * (deps_x_dmh2o_t * dM_h2o_t_dt + deps_x_dmco2_t * dM_co2_t_dt) + P_loss * ( -1 + L_m * rho_x * eps_x * V / (rc * V * temp) + - L_e * m_eq * rho_m * eps_m * V / (rc * V * temp) - ) - a31 * dP_lit_dt + L_e * C_h2o * rho_m * eps_m * V / (rc * V * temp) + ) end # b4: conservation of CO2 mass function b4_f( @@ -347,13 +341,11 @@ function b4_f( rho_g::T, eps_g::T, mm_co2::T, - a41::T, - dP_lit_dt::T, )::T where {T<:Float64} - return (Mdot_c_in - Mdot_c_out) / (rho_m * V) - + return (Mdot_c_in - Mdot_c_out) / (rho_m * V) + C_co2 * (deps_x_dmh2o_t * dM_h2o_t_dt + deps_x_dmco2_t * dM_co2_t_dt) - C_co2 * eps_m * P_loss - - (X_co2) / m_g * rho_g / rho_m * eps_g * mm_co2 * P_loss - a41 * dP_lit_dt + (X_co2) / m_g * rho_g / rho_m * eps_g * mm_co2 * P_loss end function build_matrix( @@ -376,7 +368,7 @@ function build_matrix( dm_eq_dP::T, rho_m::T, eps_m::T, - m_eq::T, + C_h2o::T, drho_m_dP::T, drc_dT::T, drho_x_dT::T, @@ -390,7 +382,6 @@ function build_matrix( m_h2o::T, m_co2::T, deps_x_dmco2_t::T, - dP_lit_dt::T, Hdot_in::T, Hdot_out::T, c_x::T, @@ -432,7 +423,7 @@ function build_matrix( dm_eq_dP, rho_m, eps_m, - m_eq, + C_h2o, drho_m_dP, ) a32 = a32_f( @@ -450,7 +441,7 @@ function build_matrix( dm_eq_dT, rho_m, eps_m, - m_eq, + C_h2o, drho_m_dT, ) dM_h2o_t_dt = dM_X_t_dt_f(rho, V, Mdot_v_in, Mdot_v_out, m_h2o, Mdot_in, Mdot_out) @@ -467,8 +458,6 @@ function build_matrix( dM_h2o_t_dt, deps_x_dmco2_t, dM_co2_t_dt, - a11, - dP_lit_dt, ) b3 = b3_f( Hdot_in, @@ -486,12 +475,10 @@ function build_matrix( dM_co2_t_dt, L_m, L_e, - m_eq, + C_h2o, P_loss, eps_x, eps_m, - a31, - dP_lit_dt, ) if phase != 3 A = [a11 a12; a31 a32] @@ -503,7 +490,7 @@ function build_matrix( a21 = a21_f( eps_m, dm_eq_dP, - m_eq, + C_h2o, deps_x_dP, dV_dP, V, @@ -519,7 +506,7 @@ function build_matrix( a22 = a22_f( eps_m, dm_eq_dT, - m_eq, + C_h2o, deps_x_dT, dV_dT, V, @@ -532,9 +519,9 @@ function build_matrix( drho_g_dT, rho_g, ) - a23 = a23_f(m_eq, X_co2, m_g, rho_g, mm_h2o, rho_m) + a23 = a23_f(C_h2o, X_co2, m_g, rho_g, mm_h2o, rho_m) a24 = a24_f(eps_m, dm_eq_dX_co2, m_g, eps_g, rho_g, mm_h2o, rho_m, X_co2, mm_co2) - a33 = a33_f(rho_g, c_g, rho_m, c_m, rc, L_e, m_eq, temp) + a33 = a33_f(rho_g, c_g, rho_m, c_m, rc, L_e, C_h2o, temp) a34 = a34_f(L_e, rho_m, eps_m, dm_eq_dX_co2, rc, temp) a41 = a41_f( eps_m, @@ -576,7 +563,7 @@ function build_matrix( Mdot_v_out, rho_m, V, - m_eq, + C_h2o, deps_x_dmh2o_t, dM_h2o_t_dt, deps_x_dmco2_t, @@ -588,8 +575,6 @@ function build_matrix( rho_g, eps_g, mm_h2o, - a21, - dP_lit_dt, ) b4 = b4_f( Mdot_c_in, @@ -608,8 +593,6 @@ function build_matrix( rho_g, eps_g, mm_co2, - a41, - dP_lit_dt, ) A = [a11 a12 a13 a14; a21 a22 a23 a24; a31 a32 a33 a34; a41 a42 a43 a44] diff --git a/test/test-matrix-a-data.jl b/test/test-matrix-a-data.jl index 9a0e948..4f7aea9 100644 --- a/test/test-matrix-a-data.jl +++ b/test/test-matrix-a-data.jl @@ -1,33 +1,26 @@ # Matrix A -a11, rho, drho_dP, V, dV_dP, a12, rho, drho_dT, V, dV_dT, a13, rho, drho_deps_g = ( +a11, rho, drho_dP, V, dV_dP, a12, drho_dT, dV_dT, a13, drho_deps_g = ( 1.940628985769057e-10, 2418.587526302549, 2.2749935318596593e-7, 1.5848931924611135e9, 0.15848931924611134, -0.0005521837206239375, - 2418.587526302549, -1.3113187836653613, - 1.5848931924611135e9, -15848.931924611135, -0.7964435246802597, - 2418.587526302549, -1926.2683741961123, ) a14 = 0 -a21, eps_m, dm_eq_dP, m_eq, deps_x_dP, m_eq, eps_m, dV_dP, V, m_eq, eps_m, drho_m_dP, rho_m, X_co2, m_g, eps_g, mm_h2o, drho_g_dP, rho_m, X_co2, m_g, eps_g, rho_g, mm_h2o, dV_dP, rho_m, V = ( +a21, eps_m, dm_eq_dP, C_h2o, deps_x_dP, dV_dP, V, drho_m_dP, rho_m, X_co2, m_g, eps_g, mm_h2o, drho_g_dP, rho_g= ( 1.0685041327468264e-10, 0.8477225834910936, 1.0893798285870895e-10, 0.047334682467260976, -1.0742086782624915e-10, - 0.047334682467260976, - 0.8477225834910936, 0.15848931924611134, 1.5848931924611135e9, - 0.047334682467260976, - 0.8477225834910936, 2.4e-7, 2400.0, 0.34604267590128396, @@ -35,29 +28,17 @@ a21, eps_m, dm_eq_dP, m_eq, deps_x_dP, m_eq, eps_m, dV_dP, V, m_eq, eps_m, drho_ 0.005581589390717943, 0.01802, 1.323850814771934e-6, - 2400.0, - 0.34604267590128396, - 0.027013649146674368, - 0.005581589390717943, 473.7316258038877, - 0.01802, - 0.15848931924611134, - 2400.0, - 1.5848931924611135e9, ) -a22, eps_m, dm_eq_dT, m_eq, deps_x_dT, m_eq, eps_m, V, dV_dT, m_eq, eps_m, drho_m_dT, rho_m, X_co2, m_g, eps_g, mm_h2o, drho_g_dT, rho_m, X_co2, m_g, eps_g, rho_g, mm_h2o, dV_dT, rho_m, V = ( +a22, eps_m, dm_eq_dT, C_h2o, deps_x_dT, V, dV_dT, drho_m_dT, rho_m, X_co2, m_g, eps_g, mm_h2o, drho_g_dT, rho_g = ( 0.000279875309539216, 0.8477225834910936, -2.758667546233306e-5, 0.047334682467260976, -0.006419421188193712, - 0.047334682467260976, - 0.8477225834910936, 1.5848931924611135e9, -15848.931924611135, - 0.047334682467260976, - 0.8477225834910936, -0.024, 2400.0, 0.34604267590128396, @@ -65,18 +46,10 @@ a22, eps_m, dm_eq_dT, m_eq, deps_x_dT, m_eq, eps_m, V, dV_dT, m_eq, eps_m, drho_ 0.005581589390717943, 0.01802, -0.586770593194506, - 2400.0, - 0.34604267590128396, - 0.027013649146674368, - 0.005581589390717943, 473.7316258038877, - 0.01802, - -15848.931924611135, - 2400.0, - 1.5848931924611135e9, ) -a23, m_eq, X_co2, m_g, rho_g, mm_h2o, rho_m, a24, eps_m, dm_eq_dX_co2, m_g, eps_g, rho_g, mm_h2o, rho_m, X_co2, eps_g, rho_g, mm_h2o, mm_co2, mm_h2o, m_g, rho_m = ( +a23, C_h2o, X_co2, m_g, rho_g, mm_h2o, rho_m, a24, eps_m, dm_eq_dX_co2, eps_g, mm_co2 = ( 0.038773034927519844, 0.047334682467260976, 0.34604267590128396, @@ -87,22 +60,11 @@ a23, m_eq, X_co2, m_g, rho_g, mm_h2o, rho_m, a24, eps_m, dm_eq_dX_co2, m_g, eps_ -0.04065533023891952, 0.8477225834910936, -0.04654587216001619, - 0.027013649146674368, - 0.005581589390717943, - 473.7316258038877, - 0.01802, - 2400.0, - 0.34604267590128396, 0.005581589390717943, - 473.7316258038877, - 0.01802, 0.04401, - 0.01802, - 0.027013649146674368, - 2400.0, ) -a31, drc_dP, rc, dV_dP, V, L_m, eps_x, drho_x_dP, rc, T, rho_x, deps_x_dP, rc, T, rho_x, eps_x, dV_dP, rc, V, T, L_e, dm_eq_dP, rho_m, eps_m, rc, T, m_eq, eps_m, drho_m_dP, rc, T, m_eq, rho_m, deps_x_dP, rc, T, m_eq, rho_m, eps_m, dV_dP, rc, V, T = ( +a31, drc_dP, rc, dV_dP, V, L_m, eps_x, drho_x_dP, T, rho_x, deps_x_dP, L_e, dm_eq_dP, rho_m, eps_m, C_h2o, drho_m_dP = ( 1.65527030442498e-10, 0.0002816380088198022, 2.9053963660365245e6, @@ -111,44 +73,18 @@ a31, drc_dP, rc, dV_dP, V, L_m, eps_x, drho_x_dP, rc, T, rho_x, deps_x_dP, rc, T 290000.0, 0.14669582711818843, 2.6e-7, - 2.9053963660365245e6, 1046.7118332590333, 2600.0, -1.0742086782624915e-10, - 2.9053963660365245e6, - 1046.7118332590333, - 2600.0, - 0.14669582711818843, - 0.15848931924611134, - 2.9053963660365245e6, - 1.5848931924611135e9, - 1046.7118332590333, 610000.0, 1.0893798285870895e-10, 2400.0, 0.8477225834910936, - 2.9053963660365245e6, - 1046.7118332590333, 0.047334682467260976, - 0.8477225834910936, 2.4e-7, - 2.9053963660365245e6, - 1046.7118332590333, - 0.047334682467260976, - 2400.0, - -1.0742086782624915e-10, - 2.9053963660365245e6, - 1046.7118332590333, - 0.047334682467260976, - 2400.0, - 0.8477225834910936, - 0.15848931924611134, - 2.9053963660365245e6, - 1.5848931924611135e9, - 1046.7118332590333, ) -a32, drc_dT, rc, T, dV_dT, V, L_m, eps_x, drho_x_dT, rc, T, rho_x, deps_x_dT, rc, T, rho_x, eps_x, dV_dT, rc, T, V, L_e, dm_eq_dT, rho_m, eps_m, rc, T, m_eq, eps_m, drho_m_dT, rc, T, m_eq, rho_m, deps_x_dT, rc, T, m_eq, rho_m, eps_m, dV_dT, rc, T, V = ( +a32, drc_dT, rc, T, dV_dT, V, L_m, eps_x, drho_x_dT, rho_x, deps_x_dT, L_e, dm_eq_dT, rho_m, eps_m, C_h2o, drho_m_dT = ( 0.0018601429959354673, -1577.411510355168, 2.9053963660365245e6, @@ -158,44 +94,17 @@ a32, drc_dT, rc, T, dV_dT, V, L_m, eps_x, drho_x_dT, rc, T, rho_x, deps_x_dT, rc 290000.0, 0.14669582711818843, -0.026000000000000002, - 2.9053963660365245e6, - 1046.7118332590333, 2600.0, -0.006419421188193712, - 2.9053963660365245e6, - 1046.7118332590333, - 2600.0, - 0.14669582711818843, - -15848.931924611135, - 2.9053963660365245e6, - 1046.7118332590333, - 1.5848931924611135e9, 610000.0, -2.758667546233306e-5, 2400.0, 0.8477225834910936, - 2.9053963660365245e6, - 1046.7118332590333, 0.047334682467260976, - 0.8477225834910936, -0.024, - 2.9053963660365245e6, - 1046.7118332590333, - 0.047334682467260976, - 2400.0, - -0.006419421188193712, - 2.9053963660365245e6, - 1046.7118332590333, - 0.047334682467260976, - 2400.0, - 0.8477225834910936, - -15848.931924611135, - 2.9053963660365245e6, - 1046.7118332590333, - 1.5848931924611135e9, ) -a33, rho_g, c_g, rho_m, c_m, rc, L_e, m_eq, rho_m, rc, T, a34, L_e, rho_m, eps_m, dm_eq_dX_co2, rc, T = ( +a33, rho_g, c_g, rho_m, c_m, rc, L_e, C_h2o, T, a34, eps_m, dm_eq_dX_co2 = ( -0.5821828067858482, 473.7316258038877, 2369.110965187085, @@ -204,30 +113,20 @@ a33, rho_g, c_g, rho_m, c_m, rc, L_e, m_eq, rho_m, rc, T, a34, L_e, rho_m, eps_m 2.9053963660365245e6, 610000.0, 0.047334682467260976, - 2400.0, - 2.9053963660365245e6, 1046.7118332590333, 0.018995182878197563, - 610000.0, - 2400.0, 0.8477225834910936, -0.04654587216001619, - 2.9053963660365245e6, - 1046.7118332590333, ) -a41, eps_m, dC_co2_dP, C_co2, deps_x_dP, C_co2, eps_m, dV_dP, V, C_co2, eps_m, drho_m_dP, rho_m, X_co2, m_g, eps_g, mm_co2, drho_g_dP, rho_m, X_co2, m_g, eps_g, rho_g, mm_co2, dV_dP, rho_m, V = ( +a41, eps_m, dC_co2_dP, C_co2, deps_x_dP, dV_dP, V, drho_m_dP, rho_m, X_co2, m_g, eps_g, mm_co2, drho_g_dP, rho_g = ( 3.755479809937989e-12, 0.8477225834910936, 2.1580595452959046e-12, 0.00046286158276856356, -1.0742086782624915e-10, - 0.00046286158276856356, - 0.8477225834910936, 0.15848931924611134, 1.5848931924611135e9, - 0.00046286158276856356, - 0.8477225834910936, 2.4e-7, 2400.0, 0.34604267590128396, @@ -235,29 +134,17 @@ a41, eps_m, dC_co2_dP, C_co2, deps_x_dP, C_co2, eps_m, dV_dP, V, C_co2, eps_m, d 0.005581589390717943, 0.04401, 1.323850814771934e-6, - 2400.0, - 0.34604267590128396, - 0.027013649146674368, - 0.005581589390717943, 473.7316258038877, - 0.04401, - 0.15848931924611134, - 2400.0, - 1.5848931924611135e9, ) -a42, eps_m, dC_co2_dT, C_co2, deps_x_dT, C_co2, eps_m, V, dV_dT, C_co2, eps_m, drho_m_dT, rho_m, X_co2, m_g, eps_g, mm_co2, drho_g_dT, rho_m, X_co2, m_g, eps_g, rho_g, mm_co2, dV_dT, rho_m, V = ( +a42, eps_m, dC_co2_dT, C_co2, deps_x_dT, V, dV_dT, drho_m_dT, rho_m, X_co2, m_g, eps_g, mm_co2, drho_g_dT, rho_g = ( 2.324870748635543e-6, 0.8477225834910936, 1.5230062068165274e-7, 0.00046286158276856356, -0.006419421188193712, - 0.00046286158276856356, - 0.8477225834910936, 1.5848931924611135e9, -15848.931924611135, - 0.00046286158276856356, - 0.8477225834910936, -0.024, 2400.0, 0.34604267590128396, @@ -265,17 +152,9 @@ a42, eps_m, dC_co2_dT, C_co2, deps_x_dT, C_co2, eps_m, V, dV_dT, C_co2, eps_m, d 0.005581589390717943, 0.04401, -0.586770593194506, - 2400.0, - 0.34604267590128396, - 0.027013649146674368, - 0.005581589390717943, 473.7316258038877, - 0.04401, - -15848.931924611135, - 2400.0, - 1.5848931924611135e9, ) -a43, C_co2, X_co2, m_g, rho_g, mm_co2, rho_m, a44, eps_m, dC_co2_dX_co2, m_g, eps_g, rho_g, mm_co2, rho_m, X_co2, eps_g, rho_g, mm_co2, mm_co2, mm_h2o, m_g, rho_m = ( +a43, C_co2, X_co2, m_g, rho_g, mm_co2, rho_m, a44, eps_m, dC_co2_dX_co2, eps_g, mm_h2o = ( 0.11081759844073719, 0.00046286158276856356, 0.34604267590128396, @@ -286,17 +165,6 @@ a43, C_co2, X_co2, m_g, rho_g, mm_co2, rho_m, a44, eps_m, dC_co2_dX_co2, m_g, ep 0.0023274971026304033, 0.8477225834910936, 0.001333164745230419, - 0.027013649146674368, - 0.005581589390717943, - 473.7316258038877, - 0.04401, - 2400.0, - 0.34604267590128396, 0.005581589390717943, - 473.7316258038877, - 0.04401, - 0.04401, 0.01802, - 0.027013649146674368, - 2400.0, ) diff --git a/test/test-matrix-b-data.jl b/test/test-matrix-b-data.jl index 4dad85a..662fa98 100644 --- a/test/test-matrix-b-data.jl +++ b/test/test-matrix-b-data.jl @@ -1,5 +1,5 @@ # Matrix B -dM_h2o_t_dt, rho, V, Mdot_v_in, Mdot_v_out, m_h2o, Mdot_in, Mdot_out, dM_co2_t_dt, rho, V, Mdot_c_in, Mdot_c_out, m_co2, Mdot_in, Mdot_out = ( +dM_h2o_t_dt, rho, V, Mdot_v_in, Mdot_v_out, m_h2o, Mdot_in, Mdot_out, dM_co2_t_dt, Mdot_c_in, Mdot_c_out, m_co2 = ( 0.0, 2418.587526302549, 1.5848931924611135e9, @@ -9,16 +9,12 @@ dM_h2o_t_dt, rho, V, Mdot_v_in, Mdot_v_out, m_h2o, Mdot_in, Mdot_out, dM_co2_t_d 38.14210301577417, 0.0, 0.0, - 2418.587526302549, - 1.5848931924611135e9, 0.038311627977535435, 0.0, 0.0010044445625269052, - 38.14210301577417, - 0.0, ) -b1, Mdot_in, Mdot_out, rho, V, P_loss, rho_x, rho_m, rho, deps_x_dmh2o_t, dM_h2o_t_dt, rho_x, rho_m, rho, deps_x_dmco2_t, dM_co2_t_dt, a11, dP_lit_dt = ( +b1, Mdot_in, Mdot_out, rho, V, P_loss, rho_x, rho_m, deps_x_dmh2o_t, dM_h2o_t_dt, deps_x_dmco2_t, dM_co2_t_dt = ( 9.950452390083293e-12, 38.14210301577417, 0.0, @@ -27,18 +23,12 @@ b1, Mdot_in, Mdot_out, rho, V, P_loss, rho_x, rho_m, rho, deps_x_dmh2o_t, dM_h2o 0.0, 2600.0, 2400.0, - 2418.587526302549, -13.504456962894583, 0.0, - 2600.0, - 2400.0, - 2418.587526302549, 17.951766506724482, 0.0, - 1.940628985769057e-10, - 0.0, ) -b2, Mdot_v_in, Mdot_v_out, rho_m, V, m_eq, deps_x_dmh2o_t, dM_h2o_t_dt, deps_x_dmco2_t, dM_co2_t_dt, m_eq, eps_m, P_loss, X_co2, m_g, rho_g, rho_m, eps_g, mm_h2o, P_loss, a21, dP_lit_dt = ( +b2, Mdot_v_in, Mdot_v_out, rho_m, V, C_h2o, deps_x_dmh2o_t, dM_h2o_t_dt, deps_x_dmco2_t, dM_co2_t_dt, eps_m, P_loss, X_co2, m_g, rho_g, eps_g, mm_h2o, P_loss = ( 4.02883384190314e-13, 1.5324651191014176, 0.0, @@ -49,80 +39,40 @@ b2, Mdot_v_in, Mdot_v_out, rho_m, V, m_eq, deps_x_dmh2o_t, dM_h2o_t_dt, deps_x_d 0.0, 17.951766506724482, 0.0, - 0.047334682467260976, 0.8477225834910936, 0.0, 0.34604267590128396, 0.027013649146674368, 473.7316258038877, - 2400.0, 0.005581589390717943, 0.01802, 0.0, 1.0685041327468264e-10, 0.0, ) -b3, Hdot_in, Hdot_out, rc, T, V, rc, V, T, rho_x, c_x, rho_m, c_m, T, V, deps_x_dmh2o_t, dM_h2o_t_dt, deps_x_dmco2_t, dM_co2_t_dt, L_m, rho_x, V, rc, V, T, deps_x_dmh2o_t, dM_h2o_t_dt, deps_x_dmco2_t, dM_co2_t_dt, L_e, m_eq, rho_m, V, rc, V, T, deps_x_dmh2o_t, dM_h2o_t_dt, deps_x_dmco2_t, dM_co2_t_dt, P_loss, L_m, rho_x, eps_x, V, rc, V, T, L_e, m_eq, rho_m, eps_m, V, rc, V, T, a31, dP_lit_dt = ( +b3, Hdot_in, Hdot_out, rc, T, V, rho_x, c_x, rho_m, c_m, deps_x_dmh2o_t, dM_h2o_t_dt, deps_x_dmco2_t, dM_co2_t_dt, L_m, L_e, C_h2o, P_loss, eps_x, eps_m = ( 7.072846887312917e-12, 5.0197074867341496e7, 1.6107092267207935e7, 2.9053963660365245e6, 1046.7118332590333, 1.5848931924611135e9, - 2.9053963660365245e6, - 1.5848931924611135e9, - 1046.7118332590333, 2600.0, 1200.0, 2400.0, 1200.0, - 1046.7118332590333, - 1.5848931924611135e9, -13.504456962894583, 0.0, 17.951766506724482, 0.0, 290000.0, - 2600.0, - 1.5848931924611135e9, - 2.9053963660365245e6, - 1.5848931924611135e9, - 1046.7118332590333, - -13.504456962894583, - 0.0, - 17.951766506724482, - 0.0, 610000.0, 0.047334682467260976, - 2400.0, - 1.5848931924611135e9, - 2.9053963660365245e6, - 1.5848931924611135e9, - 1046.7118332590333, - -13.504456962894583, - 0.0, - 17.951766506724482, - 0.0, 0.0, - 290000.0, - 2600.0, 0.14669582711818843, - 1.5848931924611135e9, - 2.9053963660365245e6, - 1.5848931924611135e9, - 1046.7118332590333, - 610000.0, - 0.047334682467260976, - 2400.0, 0.8477225834910936, - 1.5848931924611135e9, - 2.9053963660365245e6, - 1.5848931924611135e9, - 1046.7118332590333, - 1.65527030442498e-10, - 0.0, ) -b4, Mdot_c_in, Mdot_c_out, rho_m, V, C_co2, deps_x_dmh2o_t, dM_h2o_t_dt, deps_x_dmco2_t, dM_co2_t_dt, C_co2, eps_m, P_loss, X_co2, m_g, rho_g, rho_m, eps_g, mm_co2, P_loss, a41, dP_lit_dt = ( +b4, Mdot_c_in, Mdot_c_out, rho_m, V, C_co2, deps_x_dmh2o_t, dM_h2o_t_dt, deps_x_dmco2_t, dM_co2_t_dt, eps_m, P_loss, X_co2, m_g, rho_g, eps_g, mm_co2 = ( 1.0072084604757847e-14, 0.038311627977535435, 0.0, @@ -133,18 +83,13 @@ b4, Mdot_c_in, Mdot_c_out, rho_m, V, C_co2, deps_x_dmh2o_t, dM_h2o_t_dt, deps_x_ 0.0, 17.951766506724482, 0.0, - 0.00046286158276856356, 0.8477225834910936, 0.0, 0.34604267590128396, 0.027013649146674368, 473.7316258038877, - 2400.0, 0.005581589390717943, 0.04401, - 0.0, - 3.755479809937989e-12, - 0.0, ) dDP_dt, dT_dt, deps_g_dt, dX_co2_dt, dP_dt, dV_dt, drho_m_dt, drho_x_dt = 0.0368391435777092, @@ -155,3 +100,5 @@ dDP_dt, dT_dt, deps_g_dt, dX_co2_dt, dP_dt, dV_dt, drho_m_dt, drho_x_dt = 0.0368 0.005856309011598884, 8.868194837793256e-9, 9.607211074276029e-9 + +dP_lit_dt = 0 diff --git a/test/test-matrix.jl b/test/test-matrix.jl index 6081ec0..5a9082f 100644 --- a/test/test-matrix.jl +++ b/test/test-matrix.jl @@ -7,7 +7,7 @@ include("test-matrix-a-data.jl") @test a21 == a21_f( eps_m, dm_eq_dP, - m_eq, + C_h2o, deps_x_dP, dV_dP, V, @@ -23,7 +23,7 @@ include("test-matrix-a-data.jl") @test a22 == a22_f( eps_m, dm_eq_dT, - m_eq, + C_h2o, deps_x_dT, dV_dT, V, @@ -36,7 +36,7 @@ include("test-matrix-a-data.jl") drho_g_dT, rho_g, ) - @test a23 == a23_f(m_eq, X_co2, m_g, rho_g, mm_h2o, rho_m) + @test a23 == a23_f(C_h2o, X_co2, m_g, rho_g, mm_h2o, rho_m) @test a24 == a24_f(eps_m, dm_eq_dX_co2, m_g, eps_g, rho_g, mm_h2o, rho_m, X_co2, mm_co2) @test a31 == a31_f( @@ -54,7 +54,7 @@ include("test-matrix-a-data.jl") dm_eq_dP, rho_m, eps_m, - m_eq, + C_h2o, drho_m_dP, ) @test a32 == a32_f( @@ -72,10 +72,10 @@ include("test-matrix-a-data.jl") dm_eq_dT, rho_m, eps_m, - m_eq, + C_h2o, drho_m_dT, ) - @test a33 == a33_f(rho_g, c_g, rho_m, c_m, rc, L_e, m_eq, T) + @test a33 == a33_f(rho_g, c_g, rho_m, c_m, rc, L_e, C_h2o, T) @test a34 == a34_f(L_e, rho_m, eps_m, dm_eq_dX_co2, rc, T) @test a41 == a41_f( @@ -129,15 +129,13 @@ include("test-matrix-b-data.jl") dM_h2o_t_dt, deps_x_dmco2_t, dM_co2_t_dt, - a11, - dP_lit_dt, ) @test b2 == b2_f( Mdot_v_in, Mdot_v_out, rho_m, V, - m_eq, + C_h2o, deps_x_dmh2o_t, dM_h2o_t_dt, deps_x_dmco2_t, @@ -149,8 +147,6 @@ include("test-matrix-b-data.jl") rho_g, eps_g, mm_h2o, - a21, - dP_lit_dt, ) @test b3 == b3_f( Hdot_in, @@ -168,12 +164,10 @@ include("test-matrix-b-data.jl") dM_co2_t_dt, L_m, L_e, - m_eq, + C_h2o, P_loss, eps_x, eps_m, - a31, - dP_lit_dt, ) @test b4 == b4_f( Mdot_c_in, @@ -192,8 +186,6 @@ include("test-matrix-b-data.jl") rho_g, eps_g, mm_co2, - a41, - dP_lit_dt, ) end @@ -218,7 +210,7 @@ A, b = build_matrix( dm_eq_dP, rho_m, eps_m, - m_eq, + C_h2o, drho_m_dP, drc_dT, drho_x_dT, @@ -232,7 +224,6 @@ A, b = build_matrix( m_h2o, m_co2, deps_x_dmco2_t, - dP_lit_dt, Hdot_in, Hdot_out, c_x, @@ -284,7 +275,7 @@ A, b = build_matrix( dm_eq_dP, rho_m, eps_m, - m_eq, + C_h2o, drho_m_dP, drc_dT, drho_x_dT, @@ -298,7 +289,6 @@ A, b = build_matrix( m_h2o, m_co2, deps_x_dmco2_t, - dP_lit_dt, Hdot_in, Hdot_out, c_x, From 6fadb4b43f5d4379b3c282caf28608b0f60a4dd7 Mon Sep 17 00:00:00 2001 From: CallieHsu Date: Thu, 6 Jul 2023 14:56:21 -0400 Subject: [PATCH 02/11] update test data --- test/test-matrix-a-data.jl | 4 ++-- test/test-matrix-b-data.jl | 17 +++++++---------- test/test-matrix.jl | 9 ++++----- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/test/test-matrix-a-data.jl b/test/test-matrix-a-data.jl index 4f7aea9..d015406 100644 --- a/test/test-matrix-a-data.jl +++ b/test/test-matrix-a-data.jl @@ -32,7 +32,7 @@ a21, eps_m, dm_eq_dP, C_h2o, deps_x_dP, dV_dP, V, drho_m_dP, rho_m, X_co2, m_g, ) a22, eps_m, dm_eq_dT, C_h2o, deps_x_dT, V, dV_dT, drho_m_dT, rho_m, X_co2, m_g, eps_g, mm_h2o, drho_g_dT, rho_g = ( - 0.000279875309539216, + 0.0002790727759530185, 0.8477225834910936, -2.758667546233306e-5, 0.047334682467260976, @@ -138,7 +138,7 @@ a41, eps_m, dC_co2_dP, C_co2, deps_x_dP, dV_dP, V, drho_m_dP, rho_m, X_co2, m_g, ) a42, eps_m, dC_co2_dT, C_co2, deps_x_dT, V, dV_dT, drho_m_dT, rho_m, X_co2, m_g, eps_g, mm_co2, drho_g_dT, rho_g = ( - 2.324870748635543e-6, + 2.3170231843006758e-6, 0.8477225834910936, 1.5230062068165274e-7, 0.00046286158276856356, diff --git a/test/test-matrix-b-data.jl b/test/test-matrix-b-data.jl index 662fa98..d7c7989 100644 --- a/test/test-matrix-b-data.jl +++ b/test/test-matrix-b-data.jl @@ -92,13 +92,10 @@ b4, Mdot_c_in, Mdot_c_out, rho_m, V, C_co2, deps_x_dmh2o_t, dM_h2o_t_dt, deps_x_ 0.04401, ) -dDP_dt, dT_dt, deps_g_dt, dX_co2_dt, dP_dt, dV_dt, drho_m_dt, drho_x_dt = 0.0368391435777092, --1.1166824642937388e-9, --2.7431041382251222e-12, -7.660751961816077e-11, -0.0368391435777092, -0.005856309011598884, -8.868194837793256e-9, -9.607211074276029e-9 - -dP_lit_dt = 0 +dP_dt, dT_dt, deps_g_dt, dX_co2_dt, dV_dt, drho_m_dt, drho_x_dt = 0.036837350152411005, +-1.1167995334788846e-9, +-2.743459962090521e-12, +7.662370641952041e-11, +0.0058560266282658, +8.867767225382134e-9, +9.606747827497314e-9 diff --git a/test/test-matrix.jl b/test/test-matrix.jl index 5a9082f..03d5bc5 100644 --- a/test/test-matrix.jl +++ b/test/test-matrix.jl @@ -317,11 +317,10 @@ x = A \ b @testset "Build Matrix phase=3" begin @test A == [a11 a12 a13 a14; a21 a22 a23 a24; a31 a32 a33 a34; a41 a42 a43 a44] @test b == [b1, b2, b3, b4] - @test x[1] == dDP_dt - @test round(x[2]; digits=24) == round(dT_dt; digits=24) - @test round(x[3]; digits=27) == round(deps_g_dt; digits=27) - @test round(x[4]; digits=25) == round(dX_co2_dt; digits=25) - @test dDP_dt + dP_lit_dt == dP_dt + @test x[1] == dP_dt + @test x[2] == dT_dt + @test x[3] == deps_g_dt + @test x[4] == dX_co2_dt @test dV_dP * dP_dt + dV_dT * dT_dt + V * P_loss == dV_dt @test drho_m_dP * dP_dt + drho_m_dT * dT_dt == drho_m_dt @test drho_x_dP * dP_dt + drho_x_dT * dT_dt == drho_x_dt From 1ea2bf879836999cf5415fc0da3f3c6c8ad3e13e Mon Sep 17 00:00:00 2001 From: CallieHsu Date: Fri, 7 Jul 2023 17:00:28 -0400 Subject: [PATCH 03/11] add ic_phase_conversion function & format code --- src/runcode-func.jl | 78 ++++++-------------------------------- src/utils-matrix.jl | 9 +++-- src/utils.jl | 67 +++++++++++++++++++++++++++++++- test/test-ic_finder.jl | 9 ++++- test/test-matrix-a-data.jl | 2 +- 5 files changed, 91 insertions(+), 74 deletions(-) diff --git a/src/runcode-func.jl b/src/runcode-func.jl index f8a87ae..66a777a 100644 --- a/src/runcode-func.jl +++ b/src/runcode-func.jl @@ -87,8 +87,8 @@ function odeChamber( C_co2 = C_co2_t C_h2o = m_eq elseif phase == 2 - C_co2 = M_co2/(rho_m*eps_m*V) - C_h2o = M_h2o/(rho_m*eps_m*V) + C_co2 = M_co2 / (rho_m * eps_m * V) + C_h2o = M_h2o / (rho_m * eps_m * V) end # specific heat of gas @@ -304,7 +304,6 @@ function affect!( param_IC_Finder::ParamICFinder{Float64}, erupt_saved::EruptSaved{Float64}, ) - @info("*event idx: ", idx) composition = param.composition storeTime = param_saved_var.storeTime storeTemp = param_saved_var.storeTemp @@ -332,17 +331,20 @@ function affect!( sw.eruption = 1 rho_g0 = eos_g_rho_g(P_0, int.u[2]) record_erupt_start(int.t, int.u[3], eps_x0, int.u[5], int.u[6], rho_g0, erupt_saved) - @info("time: $(int.t), Reached critical pressure and need to start an eruption") + @info( + "*event idx: $idx\n time: $(int.t), Reached critical pressure and need to start an eruption" + ) elseif idx == 4 sw.eruption = 0 record_erupt_end(int.t, erupt_saved, param) - @info("time: $(int.t), Finished an eruption...") + @info("*event idx: $idx\n time: $(int.t), Finished an eruption...") elseif idx == 6 || idx == 8 phase_here = param_saved_var.phase @info( - "time: $(int.t), starting ic finder for conversion of phase, phase_here: $phase_here", + "*event idx: $idx\n time: $(int.t), starting ic finder for conversion of phase, phase_here: $phase_here", ) - eps_g_temp, X_co2_temp, C_co2_temp, phase = IC_Finder( + eps_g_temp, X_co2_temp, C_co2_temp, phase = ic_phase_conversion( + phase_here, composition, int.u[9], int.u[10], @@ -353,66 +355,10 @@ function affect!( int.u[5], param_IC_Finder, ) - param_saved_var.phase = phase - if phase_here != phase - @info("1st try in IC Finder successful") - int.u[3] = eps_g_temp - int.u[7] = X_co2_temp - C_co2 = C_co2_temp - else - @info("1st try in IC Finder unsuccessful, trying new IC parameters...") - param_IC_Finder.max_count = 150 - eps_g_temp, X_co2_temp, C_co2_temp, phase = IC_Finder( - composition, - int.u[9], - int.u[10], - int.u[8], - P_0, - int.u[2], - int.u[4], - int.u[5], - param_IC_Finder, - ) - param_saved_var.phase = phase - ## change back to initial max_count - param_IC_Finder.max_count = 100 - if phase_here != phase - @info("2nd try in IC Finder successful") - int.u[3] = eps_g_temp - int.u[7] = X_co2_temp - C_co2 = C_co2_temp - else - @info("2nd try in IC Finder unsuccessful, trying new IC parameters...") - param_IC_Finder.max_count = 100 - param_IC_Finder.Tol = param_IC_Finder.Tol * 0.1 - eps_g_temp, X_co2_temp, C_co2_temp, phase = IC_Finder( - composition, - int.u[9], - int.u[10], - int.u[8], - P_0, - int.u[2], - int.u[4], - int.u[5], - param_IC_Finder, - ) - param_saved_var.phase = phase - ## change back to initial Tol - param_IC_Finder.Tol = param_IC_Finder.Tol * 10 - if phase_here != phase - @info("3rd try in IC Finder successful") - int.u[3] = eps_g_temp - int.u[7] = X_co2_temp - C_co2 = C_co2_temp - else - @warn("3rd try in IC Finder unsuccessful") - @info("IC_Finder results: $eps_g_temp, $X_co2_temp, $C_co2_temp, $phase = IC_Finder($composition, $(int.u[9]), $(int.u[10]), $(int.u[8]), $(P_0), $(int.u[2]), $(int.u[4]), $(int.u[5]), $(param_IC_Finder))") - end - end - end - @info("phase_here: $phase_here, new_phase: $phase") - + int.u[3] = eps_g_temp + int.u[7] = X_co2_temp + C_co2 = C_co2_temp elseif idx == 1 || idx == 2 || idx == 5 || idx == 7 || idx === nothing if idx == 1 @info("eps_x became 0.") diff --git a/src/utils-matrix.jl b/src/utils-matrix.jl index 848bb4c..c09096f 100644 --- a/src/utils-matrix.jl +++ b/src/utils-matrix.jl @@ -52,7 +52,8 @@ function a22_f( drho_g_dT::T, rho_g::T, )::T where {T<:Float64} - return eps_m * dm_eq_dT - C_h2o * deps_x_dT + C_h2o * eps_m * dV_dT / V + + return eps_m * dm_eq_dT - C_h2o * deps_x_dT + + C_h2o * eps_m * dV_dT / V + C_h2o * eps_m * drho_m_dT / rho_m + (1 - X_co2) / m_g * eps_g * mm_h2o * drho_g_dT / rho_m + (1 - X_co2) / m_g * eps_g * mm_h2o * rho_g * dV_dT / (rho_m * V) @@ -198,7 +199,8 @@ function a42_f( drho_g_dT::T, rho_g::T, )::T where {T<:Float64} - return eps_m * dC_co2_dT - C_co2 * deps_x_dT + C_co2 * eps_m * dV_dT / V + + return eps_m * dC_co2_dT - C_co2 * deps_x_dT + + C_co2 * eps_m * dV_dT / V + C_co2 * eps_m * drho_m_dT / rho_m + X_co2 / m_g * eps_g * mm_co2 * drho_g_dT / rho_m + X_co2 / m_g * eps_g * rho_g * mm_co2 * dV_dT / (rho_m * V) @@ -344,8 +346,7 @@ function b4_f( )::T where {T<:Float64} return (Mdot_c_in - Mdot_c_out) / (rho_m * V) + C_co2 * (deps_x_dmh2o_t * dM_h2o_t_dt + deps_x_dmco2_t * dM_co2_t_dt) - - C_co2 * eps_m * P_loss - - (X_co2) / m_g * rho_g / rho_m * eps_g * mm_co2 * P_loss + C_co2 * eps_m * P_loss - (X_co2) / m_g * rho_g / rho_m * eps_g * mm_co2 * P_loss end function build_matrix( diff --git a/src/utils.jl b/src/utils.jl index e813217..8f0dd27 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -25,7 +25,6 @@ end mm_h2o::T = 18.02e-3 # molecular mass of H2O end - """ Rheology of the crust """ @@ -400,3 +399,69 @@ function record_erupt_end( push!(erupt_saved.volume, volume) return nothing end + +""" + ic_phase_conversion(phase_here::T, composition::Union{Silicic,Mafic}, M_h2o::T, M_co2::T, M_tot::T, P::T, Temp::T, V::T, rho_m::T, param_IC::ParamICFinder{T})::NamedTuple{(:eps_g_temp, :X_co2_temp, :C_co2_temp, :phase),NTuple{4,T}} where {T<:Float64} + +This function is used to handle phase conversion by iteratively modifying the `max_count` or `Tol` parameters of function `IC_Finder` until the correct phase is obtained. +- This function is used within the `affect!` function. +""" +function ic_phase_conversion( + phase_here::T, + composition::Union{Silicic,Mafic}, + M_h2o::T, + M_co2::T, + M_tot::T, + P::T, + Temp::T, + V::T, + rho_m::T, + param_IC::ParamICFinder{T}, +)::NamedTuple{ + (:eps_g_temp, :X_co2_temp, :C_co2_temp, :phase),NTuple{4,T} +} where {T<:Float64} + eps_g_temp, X_co2_temp, C_co2_temp, phase = IC_Finder( + composition, M_h2o, M_co2, M_tot, P, Temp, V, rho_m, param_IC + ) + @info( + "1st attempt in IC Finder $(phase_here != phase ? "successful\n phase_here: $phase_here, new_phase: $phase" : "unsuccessful")" + ) + if phase_here != phase + return (; eps_g_temp, X_co2_temp, C_co2_temp, phase) + else + param_IC.max_count = 150 + eps_g_temp, X_co2_temp, C_co2_temp, phase = IC_Finder( + composition, M_h2o, M_co2, M_tot, P, Temp, V, rho_m, param_IC + ) + param_IC.max_count = 100 + @info( + "2nd attempt in IC Finder $(phase_here != phase ? "successful\n phase_here: $phase_here, new_phase: $phase" : "unsuccessful")" + ) + if phase_here != phase + return (; eps_g_temp, X_co2_temp, C_co2_temp, phase) + else + i = 3 + i_max = 6 # max iteration of IC_Finder + while phase_here == phase && i <= i_max + param_IC.Tol = param_IC.Tol * 0.1 + eps_g_temp, X_co2_temp, C_co2_temp, phase = IC_Finder( + composition, M_h2o, M_co2, M_tot, P, Temp, V, rho_m, param_IC + ) + @info( + "$i$(i == 3 ? "rd" : "th") attempt in IC Finder $(phase_here != phase ? "successful\n phase_here: $phase_here, new_phase: $phase" : "unsuccessful")" + ) + if phase_here != phase + param_IC.Tol = param_IC.Tol * 10^(i - 2) + break + elseif i == i_max + param_IC.Tol = param_IC.Tol * 10^(i - 2) + @warn( + "phase conversion unsuccessful, IC_Finder results:\n $eps_g_temp, $X_co2_temp, $C_co2_temp, $phase = IC_Finder($composition, $M_h2o, $M_co2, $M_tot, $P, $Temp, $V, $rho_m, $param_IC" + ) + end + i += 1 + end + return (; eps_g_temp, X_co2_temp, C_co2_temp, phase) + end + end +end diff --git a/test/test-ic_finder.jl b/test/test-ic_finder.jl index a01668f..764cceb 100644 --- a/test/test-ic_finder.jl +++ b/test/test-ic_finder.jl @@ -18,7 +18,9 @@ include("ic_finder-silicic-data.jl") eps_g, X_co2, mco2_diss, phase = IC_Finder( composition, M_h2o_3, M_co2_3, M_tot_3, P_3, T_3, V_3, rho_m_3, param_IC ) - @test all((eps_g0_3, X_co20_3, mco2_diss0_3, phase0_3) .≈ (eps_g, X_co2, mco2_diss, phase)) + @test all( + (eps_g0_3, X_co20_3, mco2_diss0_3, phase0_3) .≈ (eps_g, X_co2, mco2_diss, phase) + ) param_IC.max_count = 100 end @@ -40,7 +42,10 @@ include("ic_finder-mafic-data.jl") eps_g, X_co2, mco2_diss, phase = IC_Finder( composition, M_h2o_3, M_co2_3, M_tot_3, P_3, T_3, V_3, rho_m_3, param_IC ) - @test all([isapprox(a, b, atol=1e-12) for (a,b) in zip((eps_g0_3, X_co20_3, mco2_diss0_3, phase0_3), (eps_g, X_co2, mco2_diss, phase))]) + @test all([ + isapprox(a, b; atol=1e-12) for (a, b) in + zip((eps_g0_3, X_co20_3, mco2_diss0_3, phase0_3), (eps_g, X_co2, mco2_diss, phase)) + ]) # Case 4 param_IC.max_count = 150 diff --git a/test/test-matrix-a-data.jl b/test/test-matrix-a-data.jl index d015406..ed73631 100644 --- a/test/test-matrix-a-data.jl +++ b/test/test-matrix-a-data.jl @@ -13,7 +13,7 @@ a11, rho, drho_dP, V, dV_dP, a12, drho_dT, dV_dT, a13, drho_deps_g = ( ) a14 = 0 -a21, eps_m, dm_eq_dP, C_h2o, deps_x_dP, dV_dP, V, drho_m_dP, rho_m, X_co2, m_g, eps_g, mm_h2o, drho_g_dP, rho_g= ( +a21, eps_m, dm_eq_dP, C_h2o, deps_x_dP, dV_dP, V, drho_m_dP, rho_m, X_co2, m_g, eps_g, mm_h2o, drho_g_dP, rho_g = ( 1.0685041327468264e-10, 0.8477225834910936, 1.0893798285870895e-10, From 3612fd5c941539bb3cc44c4db6e58717a76b4a28 Mon Sep 17 00:00:00 2001 From: CallieHsu Date: Thu, 13 Jul 2023 11:16:26 -0400 Subject: [PATCH 04/11] update test-matrix --- test/test-matrix.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/test-matrix.jl b/test/test-matrix.jl index 03d5bc5..7e78b70 100644 --- a/test/test-matrix.jl +++ b/test/test-matrix.jl @@ -318,9 +318,9 @@ x = A \ b @test A == [a11 a12 a13 a14; a21 a22 a23 a24; a31 a32 a33 a34; a41 a42 a43 a44] @test b == [b1, b2, b3, b4] @test x[1] == dP_dt - @test x[2] == dT_dt - @test x[3] == deps_g_dt - @test x[4] == dX_co2_dt + @test round(x[2]; digits=24) == round(dT_dt; digits=24) + @test round(x[3]; digits=26) == round(deps_g_dt; digits=26) + @test round(x[4]; digits=25) == round(dX_co2_dt; digits=25) @test dV_dP * dP_dt + dV_dT * dT_dt + V * P_loss == dV_dt @test drho_m_dP * dP_dt + drho_m_dT * dT_dt == drho_m_dt @test drho_x_dP * dP_dt + drho_x_dT * dT_dt == drho_x_dt From 5653055ce9104e4a686da8cbae0551b537a6f284 Mon Sep 17 00:00:00 2001 From: CallieHsu <62089495+CallieHsu@users.noreply.github.com> Date: Mon, 17 Jul 2023 12:58:22 -0400 Subject: [PATCH 05/11] Apply suggestions from code review update code from Chris --- src/utils-matrix.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils-matrix.jl b/src/utils-matrix.jl index c09096f..8f363df 100644 --- a/src/utils-matrix.jl +++ b/src/utils-matrix.jl @@ -314,9 +314,9 @@ function b3_f( temp * V * (deps_x_dmh2o_t * dM_h2o_t_dt + deps_x_dmco2_t * dM_co2_t_dt) - ) + + ) - L_m * rho_x * V / (rc * V * temp) * - (deps_x_dmh2o_t * dM_h2o_t_dt + deps_x_dmco2_t * dM_co2_t_dt) + + (deps_x_dmh2o_t * dM_h2o_t_dt + deps_x_dmco2_t * dM_co2_t_dt) - L_e * C_h2o * rho_m * V / (rc * V * temp) * (deps_x_dmh2o_t * dM_h2o_t_dt + deps_x_dmco2_t * dM_co2_t_dt) + P_loss * ( From 918759370943432c811a39138083a9572b089357 Mon Sep 17 00:00:00 2001 From: CallieHsu Date: Mon, 17 Jul 2023 14:17:13 -0400 Subject: [PATCH 06/11] update test for chamber solution --- test/out.csv | 280 +++++++++++++++++++++++------------------------ test/runtests.jl | 2 +- 2 files changed, 141 insertions(+), 141 deletions(-) diff --git a/test/out.csv b/test/out.csv index e926d5c..cfc3fbf 100644 --- a/test/out.csv +++ b/test/out.csv @@ -1,141 +1,141 @@ -timestamp,P+dP,T,eps_g,V,rho_m,rho_x,X_CO2,total_mass,total_mass_H2O,total_mass_CO2 +time,P+dP,T,eps_g,V,rho_m,rho_x,X_CO2,total_mass,total_mass_H2O,total_mass_CO2 0.0,2.1582e8,1046.7118332590333,0.00558158923326805,1.5848931924611135e9,2400.0,2600.0,0.3460426759339731,3.8339430595912314e12,1.540393303504544e11,3.8509832587613597e9 -100000.0,2.1582368390507305e8,1046.7117215985018,0.0055813149413729835,1.5848937781121202e9,2400.000886817398,2600.0009607188476,0.3460503363690931,3.833946873801533e12,1.540394835969663e11,3.850987089924157e9 -762058.3711747054,2.1584807310013232e8,1046.7109826799758,0.005579499779821167,1.5848976563448932e9,2400.0067579747893,2600.0073211393546,0.3461010390442524,3.833972126100129e12,1.540404981783268e11,3.85101245445817e9 -2.8301548228142364e6,2.1592425586677435e8,1046.7086766993898,0.0055738349610975,1.5849097766538632e9,2400.02509732738,2600.0271887713284,0.3462593305977878,3.8340510076480337e12,1.540436674640015e11,3.851091686600037e9 -4.898251274453768e6,2.1600043503101456e8,1046.7063736591053,0.005568177159694788,1.5849219045944843e9,2400.0434358693738,2600.0470555251554,0.34641750174055347,3.8341298891959385e12,1.5404683674967618e11,3.8511709187419043e9 -6.966347726093299e6,2.1607661024428245e8,1046.7040738021217,0.0055625269496759845,1.584934040794788e9,2400.061773521641,2600.066921315112,0.3465755424077759,3.8342087707438433e12,1.5405000603535086e11,3.8512501508837714e9 -9.034444177732829e6,2.1615278135835332e8,1046.7017772122117,0.005556884512393597,1.584946185458743e9,2400.080110250035,2600.086786104205,0.3467334492676634,3.834287652291748e12,1.5405317532102554e11,3.8513293830256386e9 -1.3367590420289194e7,2.1631236389862248e8,1046.6969760235058,0.005545087695923892,1.5849716590723248e9,2400.1185268791596,2600.12840411909,0.3470638621757475,3.8344529276021143e12,1.540598157164974e11,3.851495392912435e9 -2.084991328134732e7,2.165878800265039e8,1046.688719648512,0.005524798051568513,1.5850157341067758e9,2400.1848530956463,2600.2002575202846,0.3476330075430894,3.834738319131478e12,1.540712821152904e11,3.85178205288226e9 -2.8332236142405443e7,2.1686333700579143e8,1046.6805065801798,0.005504610133249301,1.5850599204584563e9,2400.2511659074953,2600.272096399787,0.34820037994527603,3.835023710660842e12,1.540827485140834e11,3.8520687128520846e9 -3.833223614240544e7,2.172313844878448e8,1046.6695975781163,0.005477787225197866,1.5851191480009747e9,2400.3397700257856,2600.3680841946016,0.3489558944366409,3.8354051316909995e12,1.540980731652725e11,3.852451829131812e9 -4.833223614240544e7,2.1759931658943346e8,1046.6587660017,0.005451143595772918,1.585178572845101e9,2400.428347860148,2600.4640435151605,0.34970824080113333,3.835786552721157e12,1.5411339781646158e11,3.8528349454115396e9 -5.833223614240544e7,2.1796712715757304e8,1046.6480118928423,0.005424677644321789,1.5852381939690936e9,2400.516897929434,2600.5599727568874,0.35045741952162984,3.836167973751315e12,1.5412872246765067e11,3.853218061691267e9 -6.833223614240545e7,2.1833481018049666e8,1046.6373352541154,0.005398387808336231,1.585298010360259e9,2400.605418786991,2600.6558703525743,0.3512034312977218,3.8365493947814727e12,1.5414404711883975e11,3.8536011779709945e9 -7.833223614240545e7,2.1870235985456398e8,1046.6267360645052,0.005372272581651219,1.5853580210356479e9,2400.6939090365236,2600.751734789568,0.3519462770194508,3.8369308158116304e12,1.5415937177002884e11,3.853984294250722e9 -8.833223614240545e7,2.1906977050482076e8,1046.6162142953801,0.0053463304869449625,1.5854182250313997e9,2400.782367312653,2600.847564588709,0.3526859578576116,3.837312236841788e12,1.5417469642121793e11,3.8543674105304494e9 -9.833223614240545e7,2.1943703653264228e8,1046.605769915203,0.005320560059001993,1.585478621393641e9,2400.8707922682106,2600.9433582905626,0.3534224753032539,3.837693657871946e12,1.54190021072407e11,3.854750526810177e9 -1.0833223614240545e8,2.1980415240266436e8,1046.5954028879623,0.005294959841818664,1.5855392091756842e9,2400.9591825711236,2601.0391144520518,0.3541558311550848,3.8380750789021035e12,1.542053457235961e11,3.8551336430899043e9 -1.1833223614240545e8,2.2017111264515978e8,1046.5851131711577,0.005269528390403214,1.5855999874382005e9,2401.04753690504,2601.1348316471276,0.35488602749699427,3.838456499932261e12,1.542206703747852e11,3.855516759369632e9 -1.2833223614240545e8,2.2053791185945344e8,1046.5749007151796,0.005244264272189652,1.5856609552498038e9,2401.1358539701646,2601.230508467679,0.35561306668521686,3.838837920962419e12,1.5423599502597427e11,3.855899875649359e9 -1.3833223614240545e8,2.2090454471513766e8,1046.5647654636111,0.005219166067330984,1.5857221116873157e9,2401.2241324835495,2601.3261435238464,0.3563369513436409,3.8392193419925767e12,1.5425131967716336e11,3.8562829919290867e9 -1.4833223614240545e8,2.2127100595195955e8,1046.55470735373,0.005194232368500194,1.5857834558357942e9,2401.312371179059,2601.421735443982,0.35705768436139634,3.8396007630227344e12,1.5426664432835245e11,3.856666108208814e9 -1.5833223614240545e8,2.2163729037940654e8,1046.5447263169171,0.005169461780660021,1.5858449867885022e9,2401.4005688072634,2601.5172828745367,0.3577752688898525,3.839982184052892e12,1.5428196897954153e11,3.8570492244885416e9 -1.6833223614240545e8,2.2200339287635818e8,1046.5348222789676,0.005144852920913485,1.585906703646884e9,2401.48872413535,2601.6127844799635,0.35848970833876725,3.84036360508305e12,1.5429729363073062e11,3.857432340768269e9 -1.7833223614240545e8,2.2236930839079922e8,1046.5249951603528,0.005120404418404756,1.585968605520557e9,2401.5768359470517,2601.7082389426405,0.3592010063719976,3.8407450261132075e12,1.543126182819197e11,3.8578154570479965e9 -1.8833223614240545e8,2.227350319395122e8,1046.515244876456,0.005096114914235662,1.5860306915273023e9,2401.6649030425715,2601.803644962787,0.359909166902961,3.841126447143365e12,1.543279429331088e11,3.858198573327724e9 -1.9833223614240545e8,2.2310055860770014e8,1046.5055713377749,0.005071983061387583,1.586092960793044e9,2401.7529242384903,2601.899001258366,0.3606141940898057,3.841507868173523e12,1.5434326758429788e11,3.8585816896074514e9 -2.0833223614240545e8,2.23465883548526e8,1046.4959744500795,0.005048007524650547,1.5861554124518166e9,2401.840898367655,2601.994306564961,0.36131609233021234,3.8418892892036807e12,1.5435859223548697e11,3.858964805887179e9 -2.1833223614240545e8,2.2383100198576468e8,1046.4864541143404,0.005024186981102725,1.5862180456461015e9,2401.928824279812,2602.089559636465,0.36201486626700635,3.8422707102338384e12,1.5437391688667606e11,3.8593479221669064e9 -2.2833223614240545e8,2.241959092055617e8,1046.4770102272107,0.005000520118788118,1.5862808595258496e9,2402.0167008396406,2602.184759242946,0.36271052075508653,3.842652131263996e12,1.5438924153786514e11,3.859731038446634e9 -2.3833223614240545e8,2.2456060056017196e8,1046.4676426809147,0.004977005637355196,1.5863438532489462e9,2402.1045269276437,2602.2799041716153,0.36340306087147384,3.843033552294154e12,1.5440456618905423e11,3.8601141547263613e9 -2.4833223614240545e8,2.2492507146795893e8,1046.4583513631221,0.00495364224818714,1.586407025981217e9,2402.1923014401523,2602.3749932268333,0.3640924919110102,3.8434149733243115e12,1.5441989084024332e11,3.8604972710060887e9 -2.5833223614240545e8,2.252893174124317e8,1046.4491361569594,0.004930428674324923,1.58647037689632e9,2402.2800232890986,2602.470025229859,0.364778819379117,3.843796394354469e12,1.544352154914324e11,3.860880387285816e9 -2.6833223614240545e8,2.2565333394119987e8,1046.4399969410208,0.0049073636503767564,1.5865339051756291e9,2402.367691401768,2602.564999018584,0.3654620489843678,3.844177815384627e12,1.544505401426215e11,3.8612635035655437e9 -2.7833223614240545e8,2.2601711666504896e8,1046.430933589351,0.004884445922455488,1.5865976100081277e9,2402.45530472058,2602.6599134472967,0.36614218663152553,3.8445592364147847e12,1.5446586479381058e11,3.861646619845271e9 -2.8833223614240545e8,2.2638066125711e8,1046.421945971415,0.004861674248134374,1.5866614905903144e9,2402.542862202894,2602.75476738647,0.36681923841498826,3.8449406574449424e12,1.5448118944499966e11,3.8620297361249986e9 -2.9833223614240545e8,2.2674396345207095e8,1046.4130339520634,0.004839047396407593,1.5867255461261134e9,2402.630362820822,2602.849559722559,0.367493210612493,3.8453220784751e12,1.5449651409618875e11,3.862412852404726e9 -3.0833223614240545e8,2.271070190454023e8,1046.4041973915046,0.004816564147648511,1.5867897758267856e9,2402.7178055610484,2602.9442893578043,0.3681641096789957,3.845703499505258e12,1.5451183874737784e11,3.8627959686844535e9 -3.1833223614240545e8,2.2746982389259e8,1046.3954361452813,0.004794223293563661,1.5868541789108407e9,2402.805189424647,2603.038955210036,0.3688319422407081,3.8460849205354155e12,1.5452716339856693e11,3.863179084964181e9 -3.2833223614240545e8,2.2783237390837795e8,1046.3867500642575,0.0047720236371423365,1.5869187546039515e9,2402.8925134269025,2603.1335562124796,0.3694967150893008,3.846466341565573e12,1.54542488049756e11,3.8635622012439084e9 -3.3833223614240545e8,2.2819466506602305e8,1046.3781389946103,0.004749963992602086,1.5869835021388683e9,2402.9797765971357,2603.2280913135655,0.37015843517628344,3.846847762595731e12,1.545578127009451e11,3.863945317523636e9 -3.4833223614240545e8,2.2855669339656556e8,1046.3696027778333,0.004728043185330331,1.5870484207553363e9,2403.0669779785308,2603.322559476743,0.3708171096075686,3.8472291836258887e12,1.545731373521342e11,3.8643284338033633e9 -3.5833223614240545e8,2.2891845498811528e8,1046.3611412507482,0.0047062600518223,1.5871135097000153e9,2403.154116627964,2603.416959680296,0.3714727456382215,3.8476106046560464e12,1.5458846200332327e11,3.864711550083091e9 -3.6833223614240545e8,2.2927994598515445e8,1046.3527542455236,0.0046846134396154445,1.5871787682264001e9,2403.2411916158417,2603.5112909171635,0.372125350667392,3.847992025686204e12,1.5460378665451236e11,3.8650946663628182e9 -3.7833223614240545e8,2.2964116258785665e8,1046.3444415897031,0.004663102207220568,1.5872441955947456e9,2403.328202025936,2603.6055521947665,0.37277493223342345,3.848373446716362e12,1.5461911130570145e11,3.8654777826425457e9 -3.8833223614240545e8,2.3000210105142146e8,1046.336203106242,0.004641725224049897,1.5873097910719914e9,2403.4151469552294,2603.6997425348345,0.3734214980091327,3.8487548677465195e12,1.5463443595689053e11,3.865860898922273e9 -3.9833223614240545e8,2.3036275768542412e8,1046.32803861355,0.004620481370342371,1.587375553931689e9,2403.502025513757,2603.7938609732396,0.37406505579725235,3.8491362887766772e12,1.5464976060807962e11,3.8662440152020006e9 -4.0833223614240545e8,2.3072312885317957e8,1046.3199479255409,0.004599369537086412,1.587441483453932e9,2403.5888368244573,2603.8879065598317,0.3747056135260282,3.849517709806835e12,1.546650852592687e11,3.866627131481728e9 -4.1833223614240545e8,2.310832109711201e8,1046.311930851689,0.0045783886259404384,1.587507578925287e9,2403.675580023023,2603.9818783582778,0.3753431792449642,3.8498991308369927e12,1.546804099104578e11,3.8670102477614555e9 -4.2833223614240545e8,2.314430005081855e8,1046.3039871970905,0.0045575375491513975,1.5875738396387258e9,2403.7622542577556,2604.075775445905,0.37597776112070586,3.8502805518671504e12,1.5469573456164688e11,3.867393364041183e9 -4.3833223614240545e8,2.3180249398522553e8,1046.296116762529,0.004536815229471544,1.5876402648935595e9,2403.8488586894227,2604.169596913545,0.3766093674330551,3.850661972897308e12,1.5471105921283597e11,3.8677764803209105e9 -4.4833223614240545e8,2.32161687974413e8,1046.2883193445462,0.004516220600073712,1.587706853995375e9,2403.9353924911184,2604.2633418653822,0.37723800657110923,3.851043393927466e12,1.5472638386402505e11,3.868159596600638e9 -4.5833223614240545e8,2.3252057909866753e8,1046.2805947355162,0.004495752604465293,1.5877736062559705e9,2404.0218548481243,2604.3570094188053,0.3778636870295158,3.8514248149576235e12,1.5474170851521414e11,3.8685427128803654e9 -4.6833223614240545e8,2.3287916403108877e8,1046.2729427237223,0.0044754101964011245,1.5878405209932945e9,2404.108244957775,2604.4505987042594,0.37848641740483824,3.8518062359877812e12,1.5475703316640323e11,3.868925829160093e9 -4.7833223614240545e8,2.3323743949439853e8,1046.2653630934362,0.004455192339795471,1.587907597531383e9,2404.194562029322,2604.544108865102,0.3791062063920253,3.852187657017939e12,1.5477235781759232e11,3.8693089454398203e9 -4.8833223614240545e8,2.335954022603913e8,1046.2578556250003,0.004435098008633271,1.587974835200302e9,2404.280805283806,2604.6375390574594,0.37972306278097784,3.8525690780480967e12,1.547876824687814e11,3.8696920617195477e9 -4.9833223614240545e8,2.3395304914939234e8,1046.2504200949106,0.00441512618688081,1.5880422333360848e9,2404.366973953924,2604.730888450088,0.38033699545320915,3.8529504990782544e12,1.548030071199705e11,3.870075177999275e9 -5.0833223614240545e8,2.3431037702972296e8,1046.2430562759023,0.00439527586839595,1.5881097912806773e9,2404.453067283903,2604.8241562242315,0.3809480133785927,3.853331920108412e12,1.5481833177115958e11,3.8704582942790027e9 -5.1833223614240545e8,2.3466738281717274e8,1046.235763937035,0.00437554605683805,1.588177508381877e9,2404.5390845293705,2604.917341573488,0.3815561256121935,3.85371334113857e12,1.5483365642234866e11,3.87084141055873e9 -5.2833223614240545e8,2.3502406347447762e8,1046.2285428437795,0.004355935765577695,1.588245383993277e9,2404.625024957232,2605.0104437036716,0.38216134129117846,3.8540947621687275e12,1.5484898107353775e11,3.8712245268384576e9 -5.383322361424055e8,2.3538041601080412e8,1046.221392758105,0.00433644401760633,1.5883134174742105e9,2404.710887845547,2605.103461832679,0.3827636696318028,3.8544761831988853e12,1.5486430572472684e11,3.871607643118185e9 -5.483322361424055e8,2.3573643748123923e8,1046.2143134385653,0.004317069845445892,1.5883816081896937e9,2404.7966724834037,2605.1963951903567,0.3833631199264681,3.854857604229043e12,1.5487963037591592e11,3.8719907593979125e9 -5.506807135139835e8,2.3581999999999997e8,1046.2126611110828,0.004312536810032235,1.588397645356042e9,2404.816807389511,2605.218208005306,0.38350348316498484,3.85494718009488e12,1.548832293355704e11,3.872080733389275e9 -5.506807135139835e8,2.3581999999999997e8,1046.2126611110828,0.004312536810032235,1.588397645356042e9,2404.816807389511,2605.218208005306,0.38350348316498484,3.85494718009488e12,1.548832293355704e11,3.872080733389275e9 -5.506827135139835e8,2.3579879813034415e8,1046.2123993462187,0.00431378237137046,1.5883942841550868e9,2404.8117150340104,2605.212691286847,0.3834633786871278,3.854927256379086e12,1.548824288448507e11,3.872060721121283e9 -5.506847135139835e8,2.3577759705154532e8,1046.212137866485,0.004315028268861323,1.58839092307986e9,2404.8066228726216,2605.207174778676,0.3834232670157603,3.854907332663292e12,1.54881628354131e11,3.872040708853291e9 -5.506867135139835e8,2.357563967641908e8,1046.2118766718681,0.004316274502636055,1.5883875621304483e9,2404.801530905485,2605.201658480945,0.38338314815107616,3.854887408947498e12,1.5488082786341132e11,3.872020696585299e9 -5.506941650299479e8,2.3567741696123013e8,1046.2109061620451,0.004320920783054899,1.588375041212621e9,2404.782561268967,2605.1811080413836,0.3832336084057688,3.8548131780043438e12,1.5487784542872278e11,3.871946135718086e9 -5.507016165459123e8,2.3559844695832366e8,1046.2099391687861,0.004325571221349312,1.588362521852828e9,2404.763594037567,2605.160560207367,0.38308397990602544,3.8547389470611895e12,1.5487486299403424e11,3.8718715748508725e9 -5.507090680618767e8,2.355194875969254e8,1046.2089759845446,0.004330226169609274,1.5883500041846018e9,2404.7446294176348,2605.1400152024403,0.3829342552632568,3.854664716118035e12,1.548718805593457e11,3.8717970139836593e9 -5.507205732469056e8,2.3539759549858418e8,1046.2074965330512,0.004337422588866401,1.588330680267983e9,2404.715353238132,2605.1082993413124,0.38270288483625775,3.854550103099698e12,1.5486727566242374e11,3.8716818915606103e9 -5.507393777399197e8,2.3519842769686547e8,1046.2050987031234,0.004349208780259151,1.5882991056287518e9,2404.6675171895554,2605.0564769553544,0.382324213351725,3.8543627754124673e12,1.5485974925135068e11,3.871493731283784e9 -5.507698820394522e8,2.348754934293813e8,1046.2012624288682,0.004368392103229591,1.588247910003083e9,2404.589955736391,2604.97245204776,0.3817085886987593,3.854058895915277e12,1.5484754004700757e11,3.8711885011752057e9 -5.508003863389847e8,2.3455274881373298e8,1046.197492234908,0.004387654963862348,1.588196744522143e9,2404.51244079666,2604.888477529718,0.3810912926981567,3.8537550164180864e12,1.5483533084266446e11,3.8708832710666275e9 -5.508529020546762e8,2.339975672310283e8,1046.1911561458428,0.004421005409785834,1.58810873043118e9,2404.379102740823,2604.744027969228,0.38002465086292514,3.85323186232101e12,1.548143116711402e11,3.870357791778521e9 -5.509054177703676e8,2.3344296365129057e8,1046.1850153465884,0.004454595424328125,1.5880208082024877e9,2404.2459063506503,2604.599731879874,0.3789530585476525,3.852708708223933e12,1.5479329249961594e11,3.8698323124904146e9 -5.509579334860591e8,2.3288894869164643e8,1046.179069396039,0.004488427533297356,1.5879329795154617e9,2404.1128541669104,2604.455592014156,0.37787651983533943,3.8521855541268564e12,1.5477227332809167e11,3.869306833202308e9 -5.510104492017505e8,2.3233553340572533e8,1046.1733178102425,0.0045225043574595065,1.5878452461189637e9,2403.9799488348162,2604.3116112377206,0.37679503987477503,3.85166240002978e12,1.547512541565674e11,3.8687813539142017e9 -5.511201257851824e8,2.3118173455622038e8,1046.1619304505946,0.004594472930370723,1.5876623341166341e9,2403.7028676231607,2604.0114399250942,0.37452051318010027,3.850569817491006e12,1.5470735661296558e11,3.867683915324156e9 -5.51304929491395e8,2.292439088243336e8,1046.1446414549464,0.004718246542557008,1.587355132270958e9,2403.237532509829,2603.5073268856513,0.3706394762714056,3.8487288292308794e12,1.5463338978707245e11,3.865834744676828e9 -5.514897331976076e8,2.2731443971048802e8,1046.1297128319109,0.004845269342098178,1.587049257770791e9,2402.774238663804,2603.0054252191244,0.36669794560925323,3.846887840970753e12,1.5455942296117932e11,3.8639855740295e9 -5.516745369038203e8,2.2539384896106908e8,1046.1171152397276,0.0049756629393363176,1.5867447932519705e9,2402.3131109892292,2602.505870238335,0.36269646559483637,3.8450468527106265e12,1.544854561352862e11,3.862136403382172e9 -5.518593406100329e8,2.2348268102584654e8,1046.1068154664665,0.005109553297690125,1.586441824924734e9,2401.854279842175,2602.0088031623595,0.3586357348844538,3.8432058644505e12,1.5441148930939307e11,3.860287232734844e9 -5.520441443162456e8,2.2158150308982256e8,1046.0987762930647,0.005247070761720648,1.5861404426074266e9,2401.397881038541,2601.5143711250894,0.3545166138068243,3.8413648761903735e12,1.5433752248349994e11,3.8584380620875163e9 -5.522289480224582e8,2.196909047764059e8,1046.0929563777636,0.0053883499670480724,1.5858407396879594e9,2400.9440557828048,2601.022727098042,0.3503401331605093,3.839523887930247e12,1.542635556576068e11,3.8565888914401884e9 -5.524137517286708e8,2.178114978339763e8,1046.0893101312367,0.005533529724060641,1.58554281307356e9,2400.4929505926093,2600.5340298086635,0.34610750432458304,3.8376828996701206e12,1.5418958883171368e11,3.8547397207928605e9 -5.525985554348835e8,2.1594391576832798e8,1046.087787587964,0.005682752883274167,1.5852467631302388e9,2400.044717210284,2600.0484436444776,0.34182012983223437,3.835841911409994e12,1.5411562200582056e11,3.8528905501455326e9 -5.526108604630378e8,2.1581999999999937e8,1046.0877602886087,0.005692835970769189,1.585227120023718e9,2400.0149777088527,2600.0162258512605,0.3415327532192383,3.8357193304681016e12,1.5411069697539905e11,3.852767424384995e9 -5.526108604630378e8,2.1581999999999937e8,1046.0877602886087,0.005692835970769189,1.585227120023718e9,2400.0149777088527,2600.0162258512605,0.3415327532192383,3.8357193304681016e12,1.5411069697539905e11,3.852767424384995e9 -5.527108604630378e8,2.1582367163056546e8,1046.0876473940996,0.005692557567101836,1.585227703871783e9,2400.0158616154986,2600.017183416793,0.3415404412878335,3.8357231446784033e12,1.5411085022191095e11,3.8527712555477924e9 -5.533787567455666e8,2.1584819397615987e8,1046.086893721079,0.005690698959174641,1.5852316042755113e9,2400.0217651201306,2600.0235788801447,0.3415917757174813,3.8357486196472153e12,1.5411187374966696e11,3.852796843741693e9 -5.55465143099079e8,2.1592479508801714e8,1046.0845416281638,0.0056848984640214175,1.5852437943042052e9,2400.0402060989027,2600.0435566071474,0.3417520447083402,3.835828198810442e12,1.541150710639783e11,3.8528767765994763e9 -5.575515294525914e8,2.160013931841067e8,1046.0821925247233,0.005679105237308747,1.5852559921631656e9,2400.058646408071,2600.063533608746,0.3419121930925705,3.8359077779736685e12,1.5411826837828964e11,3.8529567094572597e9 -5.596379158061038e8,2.1607798795956704e8,1046.0798466561985,0.0056733198741641495,1.585268198496251e9,2400.077085979056,2600.0835098106463,0.3420722107597617,3.835987357136895e12,1.5412146569260098e11,3.853036642315043e9 -5.617243021596162e8,2.1615457928222594e8,1046.077504109387,0.005667542561918676,1.5852804135130022e9,2400.095524781532,2600.103485179995,0.34223209437941826,3.8360669363001216e12,1.5412466300691232e11,3.8531165751728263e9 -5.661020009538773e8,2.1631527306059277e8,1046.0725998348353,0.005655446870920476,1.585306071798145e9,2400.1342108436534,2600.145395080627,0.34256712457807764,3.8362339109385044e12,1.5413137167761563e11,3.8532842919404087e9 -5.735940160372777e8,2.165902469246095e8,1046.0642409442153,0.005634828840812015,1.585350072846663e9,2400.2004097999816,2600.2171106166493,0.34313911025631955,3.8365196721496113e12,1.5414285292940128e11,3.85357132323505e9 -5.810860311206781e8,2.1686517076318663e8,1046.0559254672053,0.005614314599616979,1.5853941864047735e9,2400.2665975317823,2600.288813992767,0.34370934558712374,3.8368054333607183e12,1.5415433418118692e11,3.8538583545296917e9 -5.910860311206781e8,2.1723204468331355e8,1046.0448940174808,0.005587093913192021,1.5854532418871055e9,2400.3549234624193,2600.3845004176237,0.34446774058658675,3.837186854390876e12,1.54169658832376e11,3.854241470809419e9 -6.010860311206781e8,2.1759881959175193e8,1046.0339400697176,0.005560055661656293,1.585512496279271e9,2400.443227015781,2600.4801626004323,0.3452230147251783,3.8375682754210337e12,1.541849834835651e11,3.8546245870891466e9 -6.110860311206781e8,2.1796548926903746e8,1046.0230637418151,0.005533198206968083,1.5855719485642116e9,2400.5315066933917,2600.5757989178437,0.34597516793275734,3.8379496964511914e12,1.5420030813475418e11,3.855007703368874e9 -6.210860311206781e8,2.183320476077792e8,1046.0122650926612,0.0055065199554910176,1.5856315977290974e9,2400.6197610247373,2600.671407776801,0.3467242001680378,3.838331117481349e12,1.5421563278594327e11,3.8553908196486015e9 -6.310860311206781e8,2.186984886928276e8,1046.0015441446226,0.0054800193740761815,1.5856914427877321e9,2400.7079885861444,2600.766987634992,0.34747011148549195,3.838712538511507e12,1.5423095743713235e11,3.855773935928329e9 -6.410860311206781e8,2.1906480673708078e8,1045.9909009100209,0.005453694959179737,1.585751482772405e9,2400.796187984754,2600.862536983485,0.34821290222396944,3.8390939595416646e12,1.5424628208832144e11,3.8561570522080564e9 -6.510860311206781e8,2.1943099603361294e8,1045.9803353995053,0.005427545218923201,1.585811716725637e9,2400.8843578468045,2600.9580543340394,0.34895257307412975,3.8394753805718223e12,1.5426160673951053e11,3.856540168487784e9 -6.610860311206781e8,2.1979705094060072e8,1045.9698476196243,0.005401568670438631,1.5858721436971598e9,2400.9724968140645,2601.053538215238,0.3496891250529208,3.83985680160198e12,1.5427693139069962e11,3.8569232847675114e9 -6.710860311206781e8,2.2016296588111845e8,1045.9594375693136,0.005375763842124532,1.5859327627437313e9,2401.0606035438664,2601.1489871725234,0.3504225594650069,3.8402382226321377e12,1.542922560418887e11,3.857306401047239e9 -6.810860311206781e8,2.2052873534533828e8,1045.9491052385374,0.005350129275289084,1.585993572929558e9,2401.1486767096735,2601.244399768814,0.3511528778825903,3.8406196436622954e12,1.543075806930778e11,3.8576895173269663e9 -6.910860311206781e8,2.208943538913788e8,1045.9388506083633,0.005324663524512157,1.586054573326526e9,2401.236715001285,2601.339774584727,0.3518800821386494,3.841001064692453e12,1.5432290534426688e11,3.8580726336066937e9 -7.010860311206781e8,2.2125981614490944e8,1045.9286736513,0.005299365157491086,1.5861157630141993e9,2401.3247171247367,2601.4351102184664,0.35260417432287705,3.841382485722611e12,1.5433822999545596e11,3.858455749886421e9 -7.110860311206781e8,2.2162511679827383e8,1045.9185743314322,0.005274232754882278,1.5861771410797262e9,2401.4126818020904,2601.5304052856,0.3533251567758504,3.8417639067527686e12,1.5435355464664505e11,3.8588388661661487e9 -7.210860311206781e8,2.2199025060957393e8,1045.9085526043923,0.005249264910239657,1.5862387066177342e9,2401.5006077712183,2601.6256584188222,0.3540430320817047,3.8421453277829263e12,1.5436887929783414e11,3.859221982445876e9 -7.310860311206781e8,2.2235521240184703e8,1045.8986084173007,0.005224460229996001,1.5863004587302396e9,2401.5884937856094,2601.720868267746,0.35475780306061727,3.842526748813084e12,1.5438420394902322e11,3.8596050987256036e9 -7.410860311206781e8,2.2271999706233704e8,1045.8887417087487,0.005199817333438069,1.586362396526574e9,2401.676338614198,2601.8160334987165,0.3554694727618252,3.8429081698432417e12,1.543995286002123e11,3.859988215005331e9 -7.510860311206781e8,2.2308459954184088e8,1045.878952408836,0.005175334852660592,1.5864245191233196e9,2401.764141041208,2601.911152794644,0.3561780444573164,3.8432895908733994e12,1.544148532514014e11,3.8603713312850585e9 -7.610860311206781e8,2.2344901485411933e8,1045.8692404392557,0.005151011432501331,1.5864868256442566e9,2401.8518998660143,2602.0062248548506,0.3568835216361173,3.843671011903557e12,1.5443017790259048e11,3.860754447564786e9 -7.710860311206781e8,2.2381323807831317e8,1045.859605713086,0.005126845731030347,1.5865493152206569e9,2401.9396139037226,2602.1012483957006,0.3575859080093207,3.844052432933715e12,1.5444550255377957e11,3.8611375638445134e9 -7.810860311206781e8,2.2417726435138682e8,1045.8500481356857,0.005102836418130776,1.5866119869904242e9,2402.027281983353,2602.1962221486333,0.3582852074802358,3.8444338539638726e12,1.5446082720496866e11,3.861520680124241e9 -7.910860311206781e8,2.2454108887189e8,1045.8405676046052,0.005078982176098464,1.5866748400985541e9,2402.114902948741,2602.291144861137,0.3589814241557015,3.8448152749940303e12,1.5447615185615775e11,3.8619037964039683e9 -8.010860311206781e8,2.249047069001172e8,1045.8311640095599,0.00505528169973301,1.5867378736971636e9,2402.2024756585743,2602.38601529679,0.359674562343131,3.845196696024188e12,1.5449147650734683e11,3.862286912683696e9 -8.110860311206781e8,2.2526811375755218e8,1045.82183723269,0.0050317336961834104,1.5868010869454455e9,2402.289998986259,2602.480832235115,0.3603646265460119,3.8455781170543457e12,1.5450680115853592e11,3.8626700289634233e9 -8.210860311206781e8,2.256313048262898e8,1045.812587148853,0.005008336884772642,1.586864479009624e9,2402.377471819776,2602.5755944714256,0.3610516214595358,3.8459595380845034e12,1.54522125809725e11,3.8630531452431507e9 -8.310860311206781e8,2.2599427554858094e8,1045.8034136258889,0.004985089996852184,1.5869280490629208e9,2402.4648930615695,2602.670300816702,0.3617355519666723,3.846340959114661e12,1.545374504609141e11,3.863436261522878e9 -8.410860311206781e8,2.263570214264673e8,1045.7943165248676,0.004961991775678049,1.5869917962855325e9,2402.552261628455,2602.7649500974944,0.36241642313458367,3.846722380144819e12,1.5455277511210318e11,3.8638193778026056e9 -8.510860311206781e8,2.267195380214522e8,1045.785295700327,0.0049390409762948674,1.5870557198646111e9,2402.6395764515387,2602.8595411558354,0.3630942402112118,3.8471038011749766e12,1.5456809976329227e11,3.864202494082333e9 -8.610860311206781e8,2.2708182095417416e8,1045.776351000509,0.004916236365421805,1.5871198189942448e9,2402.7268364761358,2602.954072849149,0.36376900862192196,3.8474852222051343e12,1.5458342441448135e11,3.8645856103620605e9 -8.710860311206781e8,2.2744386590407023e8,1045.7674822675906,0.004893576721339197,1.5871840928754368e9,2402.8140406616862,2603.0485440501616,0.3644407339661453,3.847866643235292e12,1.5459874906567044e11,3.864968726641788e9 -8.810860311206781e8,2.2780566860902527e8,1045.758689337905,0.0048710608337764975,1.5872485407160819e9,2402.901187981669,2603.1429536468095,0.365109422013997,3.8482480642654497e12,1.5461407371685953e11,3.8653518429215155e9 -8.910860311206781e8,2.2816722486500704e8,1045.749972042157,0.004848687503802177,1.5873131617309408e9,2402.988277423511,2603.237300542138,0.36577507870286424,3.8486294852956074e12,1.546293983680486e11,3.865734959201243e9 -9.010860311206781e8,2.2852853052568734e8,1045.7413302056268,0.004826455543715888,1.5873779551416118e9,2403.0753079884953,2603.331583654204,0.3664377101339635,3.849010906325765e12,1.546447230192377e11,3.8661180754809704e9 -9.110860311206781e8,2.288895815020493e8,1045.7327636483653,0.004804363776942973,1.5874429201765008e9,2403.1622786916632,2603.4258019159697,0.36709732256886696,3.849392327355923e12,1.546600476704268e11,3.866501191760698e9 -9.210860311206781e8,2.2925037376198137e8,1045.72427218538,0.0047824110379312635,1.5875080560707881e9,2403.2491885617164,2603.519954275194,0.3677539224260022,3.8497737483860806e12,1.5467537232161588e11,3.8668843080404253e9 -9.310860311206781e8,2.2961090332985806e8,1045.71585562681,0.0047605961720500415,1.5875733620663934e9,2403.336036640914,2603.614039694324,0.3684075162771264,3.8501551694162383e12,1.5469069697280496e11,3.8672674243201528e9 -9.410860311206781e8,2.2997116628610855e8,1045.7075137780944,0.004738918035491077,1.587638837411939e9,2403.4228219849665,2603.7080571503816,0.3690581108437806,3.850536590446396e12,1.5470602162399405e11,3.86765054059988e9 -9.510860311206781e8,2.3033115876677343e8,1045.69924644013,0.004717375495171571,1.5877044813627105e9,2403.5095436629317,2603.8020056348437,0.36970571299372856,3.8509180114765537e12,1.5472134627518314e11,3.8680336568796077e9 -9.610860311206781e8,2.3069087696305096e8,1045.691053409423,0.004695967428638867,1.5877702931806154e9,2403.5962007571,2603.895884153526,0.370350329737386,3.8512994325067114e12,1.5473667092637222e11,3.868416773159335e9 -9.710860311206781e8,2.310503171208334e8,1045.6829344782304,0.004674692723976797,1.5878362721341405e9,2403.6827923628857,2603.98969172646,0.37099196822424574,3.851680853536869e12,1.547519955775613e11,3.8687998894390626e9 -9.810860311206781e8,2.314094755402345e8,1045.6748894346981,0.004653550279713495,1.5879024174983077e9,2403.7693175887107,2604.0834273877704,0.37163063573930405,3.852062274567027e12,1.547673202287504e11,3.86918300571879e9 -9.910860311206781e8,2.3176834857510936e8,1045.6669180629888,0.004632539004730552,1.5879687285546274e9,2403.85577555589,2604.1770901855475,0.3722663396994949,3.8524436955971846e12,1.5478264487993948e11,3.8695661219985175e9 -1.0e9,2.3208800343626693e8,1045.6598743491609,0.004613919310355456,1.5880279771204069e9,2403.9327865285554,2604.2605187392687,0.37283051231112646,3.852783693116459e12,1.5479630522631808e11,3.869907630657983e9 +100000.0,2.1582368372575483e8,1046.711721586794,0.005581314905794945,1.5848937780838847e9,2400.000886774643,2600.0009606725293,0.34605033798768065,3.833946873801533e12,1.540394835969663e11,3.850987089924157e9 +761992.8912492137,2.1584806932266924e8,1046.7109826637854,0.005579499688355561,1.5848976557462056e9,2400.006757068582,2600.0073201576297,0.3461010463603966,3.833972123602587e12,1.540404980779811e11,3.8510124519495273e9 +2.8298848280630396e6,2.159242408581168e8,1046.7086766685509,0.005573834695176954,1.5849097742730565e9,2400.025093725996,2600.027184869828,0.34625935570501304,3.834050997349866e12,1.5404366705024396e11,3.8510916762560983e9 +4.897776764876866e6,2.160004088011071e8,1046.7063736128002,0.005568176719582538,1.5849219004311128e9,2400.043429575183,2600.047048706447,0.3464175446272872,3.8341298710971455e12,1.540468360225068e11,3.8511709005626693e9 +6.9656687016906915e6,2.160765728038908e8,1046.704073739465,0.005562526335657438,1.5849340348483682e9,2400.0617645372085,2600.066911581975,0.34657560306143936,3.834208744844425e12,1.5405000499476965e11,3.8512501248692403e9 +9.033560638504518e6,2.1615273271851963e8,1046.7017771322983,0.0055568837247628065,1.5849461777287812e9,2400.080098577992,2600.0867734594904,0.34673352767525745,3.834287618591704e12,1.540531739670325e11,3.8513293491758113e9 +1.3366301378801188e7,2.1631229267663062e8,1046.696975879031,0.005545086482954915,1.5849716477391365e9,2400.118509788493,2600.1283856042,0.3470639794919947,3.8344528784353613e12,1.5405981374108627e11,3.851495343527156e9 +2.084813313883052e7,2.1658777762381044e8,1046.6887191534115,0.0055247955424109286,1.5850157177807083e9,2400.1848285289793,2600.2002309063932,0.34763320777600604,3.834738251233099e12,1.5407127938728406e11,3.851781984682101e9 +2.8329964898859855e7,2.16863203564414e8,1046.6805057255845,0.00550460633860488,1.5850598991404307e9,2400.251133898715,2600.272061723607,0.34820066279799433,3.835023624030837e12,1.5408274503348184e11,3.8520686258370457e9 +3.832996489885986e7,2.1723123393688697e8,1046.6695955158386,0.005477779974349154,1.58511912390641e9,2400.3397339379326,2600.3680450994257,0.34895633673532894,3.8354050450609946e12,1.5409806968467093e11,3.852451742116773e9 +4.832996489885986e7,2.1759914916571075e8,1046.658762726537,0.005451132931176659,1.5851785460014877e9,2400.4283077498912,2600.4640000623813,0.3497088415859182,3.8357864660911523e12,1.5411339433586002e11,3.8528348583965006e9 +5.832996489885986e7,2.1796694309571245e8,1046.6480073999219,0.005424663608029357,1.5852381644037144e9,2400.5168538529174,2600.559925007326,0.3504581778241408,3.83616788712131e12,1.541287189870491e11,3.853217974676228e9 +6.832996489885986e7,2.1833460971295738e8,1046.637329538876,0.005398370442003855,1.585297978100189e9,2400.6053707998362,2600.655818366488,0.3512043461419182,3.836549308151468e12,1.541440436382382e11,3.8536010909559555e9 +7.832996489885986e7,2.187021432117103e8,1046.6267291226716,0.005372251926562364,1.5853579861077619e9,2400.693857193849,2600.7516786266688,0.3519473474222579,3.8369307291816255e12,1.5415936828942728e11,3.853984207235683e9 +8.832996489885986e7,2.190695379149494e8,1046.6162061229566,0.005346306584016833,1.5854181874623752e9,2400.7823116690806,2600.8475043081694,0.3526871828292643,3.837312150211783e12,1.5417469294061636e11,3.8543673235154104e9 +9.832996489885986e7,2.1943678822198308e8,1046.6057605084711,0.005320532948783097,1.585478581209957e9,2400.8707328778646,2600.943293951019,0.3534238538475389,3.837693571241941e12,1.5419001759180545e11,3.854750439795138e9 +1.0832996489885986e8,2.1980388859538075e8,1046.5953922434803,0.005294929564486947,1.5855391664036202e9,2400.959119487633,2601.0390461116012,0.3541573622695867,3.8380749922720986e12,1.5420534224299454e11,3.8551335560748653e9 +1.1832996489885986e8,2.2017083356335568e8,1046.5851012857565,0.0052694949857671185,1.5855999421038368e9,2401.0474701815383,2601.134759363332,0.3548877101733588,3.8384564133022563e12,1.5422066689418362e11,3.855516672354593e9 +1.2832996489885986e8,2.205376177231841e8,1046.5748875859585,0.005244227779690672,1.5856609073790212e9,2401.1357836592933,2601.230432297566,0.35561489990941864,3.838837834332414e12,1.542359915453727e11,3.8558997886343203e9 +1.3832996489885986e8,2.2090423574242157e8,1046.5647510879326,0.00521912652604634,1.5857220613057966e9,2401.2240586374605,2601.326063523914,0.35633893409624706,3.839219255362572e12,1.542513161965618e11,3.8562829049140477e9 +1.4832996489885986e8,2.212706823587903e8,1046.5546917292158,0.005194189817145291,1.585783402969024e9,2401.312293849418,2601.421651670201,0.35705981561782213,3.8396006763927295e12,1.542666408477509e11,3.856666021193775e9 +1.5832996489885986e8,2.2163695237976477e8,1046.5447094414446,0.005169416257590813,1.585844931461769e9,2401.400488045251,2601.5171953823537,0.3577775476206092,3.839982097422887e12,1.5428196549893997e11,3.8570491374735026e9 +1.6832996489885986e8,2.2200304068222383e8,1046.5348041506652,0.0051448044641289195,1.5859066458852801e9,2401.4886399916677,2601.612693324305,0.3584921335097023,3.840363518453045e12,1.5429729015012906e11,3.85743225375323e9 +1.7832996489885986e8,2.223689422121643e8,1046.5249757775964,0.0051203530655493275,1.5859685453489795e9,2401.5767484719236,2601.7081441779155,0.35920357694452815,3.8407449394832026e12,1.5431261480131815e11,3.8578153700329576e9 +1.8832996489885986e8,2.227346519843941e8,1046.5152242378651,0.005096060702602055,1.5860306289704542e9,2401.6648122857473,2601.8035466428914,0.3599118818343013,3.8411263605133604e12,1.5432793945250723e11,3.858198486312685e9 +1.9832996489885986e8,2.23100165082155e8,1046.5055494422083,0.005071926027919374,1.5860928958754356e9,2401.7528302492483,2601.8988994366837,0.36061705233318897,3.841507781543518e12,1.5434326410369632e11,3.8585816025924125e9 +2.0832996489885986e8,2.234654766566625e8,1046.495951296632,0.005047947705944931,1.586155345197766e9,2401.8408011948054,2601.9942012943707,0.3613190928351078,3.841889202573676e12,1.543585887548854e11,3.85896471887214e9 +2.1832996489885986e8,2.2383058192976114e8,1046.4864297023385,0.0050241244134138115,1.5862179760797362e9,2401.9287239717028,2602.089450969342,0.36201800797935085,3.8422706236038335e12,1.543739134060745e11,3.8593478351518674e9 +2.2832996489885986e8,2.241954761856756e8,1046.4769845562087,0.005000454838028938,1.5862807876711073e9,2402.0165974441566,2602.1846472311677,0.36271380261746844,3.842652044633991e12,1.5438923805726358e11,3.859730951431595e9 +2.3832996489885986e8,2.2456015477475396e8,1046.467615750692,0.004976937679100415,1.5863437791295762e9,2402.1044204922127,2602.2797888665623,0.36340648182333884,3.843033465664149e12,1.5440456270845267e11,3.8601140677113223e9 +2.4832996489885986e8,2.2492461311346748e8,1046.458323173679,0.004953571647675907,1.5864069496207807e9,2402.192192011748,2602.374874679392,0.3640960508888694,3.8434148866943066e12,1.5441988735964175e11,3.86049718399105e9 +2.5832996489885986e8,2.2528884668344742e8,1046.4491067085137,0.004930355466463664,1.5864702983181927e9,2402.279910914244,2602.4699034904293,0.3647825153167512,3.8437963077244644e12,1.5443521201083084e11,3.860880300270777e9 +2.6832996489885986e8,2.2565285103043947e8,1046.4399662340036,0.004907287869741883,1.5865338244030008e9,2402.367576126537,2602.5648741370806,0.3654658808130278,3.844177728754622e12,1.5445053666201993e11,3.8612634165505047e9 +2.7832996489885986e8,2.2601662176337895e8,1046.4309016244038,0.004884367603296058,1.5865975270640047e9,2402.455186590604,2602.659785473153,0.3661461532801295,3.84455914978478e12,1.54465861313209e11,3.861646532830232e9 +2.8832996489885986e8,2.2638015455356026e8,1046.4219127493852,0.004861593424374711,1.5866614054975197e9,2402.542741263363,2602.7546363686415,0.3668233388103172,3.8449405708149375e12,1.544811859643981e11,3.8620296491099596e9 +2.9832996489885986e8,2.2674344513384816e8,1046.4129994740022,0.004838964101649878,1.5867254589072888e9,2402.630239116488,2602.849425709527,0.3674974436793839,3.845321991845095e12,1.544965106155872e11,3.862412765389687e9 +3.0832996489885986e8,2.2710648929790318e8,1046.4041616586621,0.004816478415175344,1.586789686504392e9,2402.717679136229,2602.9441523975797,0.3681684743405327,3.845703412875253e12,1.5451183526677628e11,3.8627958816694145e9 +3.1832996489885986e8,2.274692828994146e8,1046.3953991591043,0.004794135156340595,1.5868540875071595e9,2402.8050603232277,2603.0388153501617,0.36883643741841177,3.8460848339054106e12,1.5452715991796536e11,3.863178997949142e9 +3.2832996489885986e8,2.278318218513426e8,1046.3867118263847,0.00477193312782039,1.5869186611410854e9,2402.892381692342,2603.133413500035,0.3695013397033153,3.8464662549355684e12,1.5454248456915445e11,3.8635621142288694e9 +3.3832996489885986e8,2.281941021251733e8,1046.37809950687,0.0047498711435202245,1.5869834066387424e9,2402.979642272467,2603.227945795171,0.3701631881455609,3.846847675965726e12,1.5455780922034354e11,3.863945230508597e9 +3.4832996489885986e8,2.28556119750189e8,1046.3695620422397,0.004727948028517933,1.5870483232396998e9,2403.0668411063643,2603.3224111985596,0.37082198985005155,3.847229096995884e12,1.5457313387153262e11,3.8643283467883244e9 +3.5832996489885986e8,2.2891787081275436e8,1046.3610992694971,0.0047061626190015955,1.5871134101904414e9,2403.1539772504925,2603.416808688032,0.37147775207102274,3.8476105180260415e12,1.545884585227217e11,3.864711463068052e9 +3.6832996489885986e8,2.2927935145561907e8,1046.3527110209898,0.004684513762203942,1.5871786667442882e9,2403.2410497748415,2603.5111372560764,0.3721304822069715,3.847991939056199e12,1.546037831739108e11,3.8650945793477793e9 +3.7832996489885986e8,2.2964055787723675e8,1046.3443971244374,0.00466300031633346,1.5872440921613216e9,2403.328057762771,2603.6053959096666,0.3727801877957629,3.848373360086357e12,1.5461910782509988e11,3.8654776956275067e9 +3.8832996489885986e8,2.300014863310995e8,1046.3361574029668,0.004641621150502457,1.587309685708309e9,2403.415000310853,2603.699583670089,0.37342687650990697,3.8487547811165146e12,1.5463443247628897e11,3.865860811907234e9 +3.9832996489885986e8,2.3036213312508762e8,1046.3279916751567,0.004620375144652332,1.5873754466586304e9,2403.5018765287164,2603.7936995727746,0.37407055615199825,3.8491362021466724e12,1.5464975712747806e11,3.8662439281869617e9 +4.0832996489885986e8,2.3072249462083337e8,1046.3198997550865,0.004599261189476334,1.5874413742922094e9,2403.5886855388962,2603.887742667136,0.37471123465031025,3.84951762317683e12,1.5466508177866714e11,3.866627044466689e9 +4.1832996489885986e8,2.3108256723309875e8,1046.3118814523928,0.004578278186340071,1.5875074678954432e9,2403.675426476684,2603.9817120164057,0.37534892005453735,3.849899044206988e12,1.5468040642985623e11,3.8670101607464166e9 +4.2832996489885986e8,2.314423474291657e8,1046.3039365723305,0.004557425047200026,1.5875737267611356e9,2403.7620984899836,2604.07560669748,0.37598362053167494,3.8502804652371455e12,1.5469573108104532e11,3.867393277026144e9 +4.3832996489885986e8,2.3180183172823817e8,1046.2960649158395,0.004536700694520333,1.5876401501884308e9,2403.8487007391677,2604.169425800763,0.37661534436203153,3.850661886267303e12,1.547110557322344e11,3.8677763933058715e9 +4.4832996489885986e8,2.321610167008556e8,1046.288266279614,0.004516104061188037,1.5877067374827492e9,2403.9352323969383,2604.2631684300145,0.3772440999353641,3.851043307297461e12,1.547263803834235e11,3.868159509585599e9 +4.5832996489885986e8,2.3251989896831635e8,1046.2805404561775,0.004495634090427069,1.5877734879557242e9,2404.021692648188,2604.3568337022016,0.37786989574713037,3.8514247283276187e12,1.5474170503461258e11,3.8685426258653264e9 +4.6832996489885986e8,2.3287847520211095e8,1046.2728872339596,0.0044752897357111234,1.58784040092514e9,2404.1080806898653,2604.450420747352,0.3784927403948508,3.8518061493577764e12,1.5475702968580167e11,3.868925742145054e9 +4.7832996489885986e8,2.3323674212336436e8,1046.2653063973755,0.004455069960675635,1.58790747571487e9,2404.19439573084,2604.5439287084077,0.3791126425745749,3.852187570387934e12,1.5477235433699075e11,3.8693088584247813e9 +4.8832996489885986e8,2.335946965022863e8,1046.2577977269075,0.004434973739029021,1.5879747116548176e9,2404.2806369917716,2604.6373567410837,0.37972961107744496,3.852568991418092e12,1.5478767898817984e11,3.869691974704509e9 +4.9832996489885986e8,2.3395233515762928e8,1046.250360999189,0.004415000054463344,1.588042108080856e9,2404.3668037049806,2604.7307040137266,0.3803436547863531,3.8529504124482495e12,1.5480300363936893e11,3.8700750909842362e9 +5.0832996489885986e8,2.3430965495615414e8,1046.2429959870892,0.004395147900564538,1.5881096643347704e9,2404.4528951143184,2604.823969707176,0.3809547826726859,3.853331833478407e12,1.54818328290558e11,3.8704582072639637e9 +5.1832996489885986e8,2.3466665281210178e8,1046.2357024597989,0.004375416280722322,1.5881773797641997e9,2404.538910475042,2604.917153014627,0.38156300379315233,3.853713254508565e12,1.548336529417471e11,3.870841323543691e9 +5.2832996489885986e8,2.350233256866717e8,1046.228480182917,0.004355804208039922,1.58824525372258e9,2404.624849053689,2605.0102531414946,0.3821683272866915,3.8540946755387227e12,1.548489775929362e11,3.8712244398234186e9 +5.383299648988599e8,2.35379670587506e8,1046.2213289185383,0.004336310705243695,1.5883132855690868e9,2404.7107101279516,2605.1032693052794,0.38277076237145535,3.8544760965688804e12,1.5486430224412527e11,3.871607556103146e9 +5.483299648988599e8,2.357356845681791e8,1046.2142484253393,0.0043169348045927645,1.588381474668581e9,2404.796492986557,2605.196200735435,0.38337031834186397,3.854857517599038e12,1.5487962689531436e11,3.8719906723828735e9 +5.506996541139454e8,2.3581999999999997e8,1046.2125809141025,0.0043123604495430845,1.5883976563443997e9,2404.8168093180943,2605.2182100946006,0.3835119735297192,3.8549479025291953e12,1.5488325836137912e11,3.872081459034493e9 +5.506996541139454e8,2.3581999999999997e8,1046.2125809141025,0.0043123604495430845,1.5883976563443997e9,2404.8168093180943,2605.2182100946006,0.3835119735297192,3.8549479025291953e12,1.5488325836137912e11,3.872081459034493e9 +5.507016541139454e8,2.3579879762344807e8,1046.2123191204316,0.004313605902507211,1.5883942950633636e9,2404.8117168413833,2605.2126932448305,0.38347187314949915,3.8549279788134014e12,1.5488245787065942e11,3.872061446766501e9 +5.507036541139454e8,2.3577759603801337e8,1046.2120576119507,0.004314851691670887,1.5883909339080966e9,2404.806624558846,2605.207176605415,0.38343176557144704,3.8549080550976074e12,1.5488165737993973e11,3.872041434498509e9 +5.507056541139454e8,2.3575639524428326e8,1046.2117963886465,0.004316097817165353,1.5883875728786852e9,2404.801532470623,2605.2016601765063,0.38339165079575654,3.8548881313818135e12,1.5488085688922003e11,3.872021422230517e9 +5.507131043536425e8,2.3567742708352414e8,1046.2108259382837,0.004320742898330386,1.5883750538075612e9,2404.782565632352,2605.181112768379,0.38324215186645433,3.854813913152653e12,1.548778749653516e11,3.8719468741338058e9 +5.507205545933396e8,2.3559846872267008e8,1046.2098590040152,0.004325392136524756,1.5883625362944393e9,2404.763601199135,2605.160567965727,0.3830925641598016,3.854739694923492e12,1.5487489304148315e11,3.8718723260370946e9 +5.507280048330367e8,2.355195210031527e8,1046.208895878255,0.004330045883765504,1.5883500204728475e9,2404.744639377314,2605.140025992088,0.3829428802852861,3.8546654766943315e12,1.5487191111761472e11,3.8717977779403834e9 +5.507395074129448e8,2.3539765360181394e8,1046.2074165973677,0.004337240049582546,1.5883307004730613e9,2404.715369132513,2605.1083165602204,0.38271158552074647,3.8545508896278374e12,1.5486730726338025e11,3.871682681584522e9 +5.507583074557717e8,2.3519852819458586e8,1046.2050190657292,0.004349022429604992,1.5882991325572245e9,2404.667543270912,2605.0565052101524,0.3823330415007882,3.854363606272739e12,1.5485978263347397e11,3.871494565836865e9 +5.507888054595841e8,2.348756529033894e8,1046.2011831460493,0.004368200130050766,1.5882479462851129e9,2404.589995989759,2604.97249565557,0.38171760478828926,3.8540597894926177e12,1.5484757594896362e11,3.8711893987241063e9 +5.508193034633965e8,2.3455296724557856e8,1046.197413293107,0.004387457346052561,1.588196790154637e9,2404.5124952170163,2604.888536485099,0.3811004964119742,3.8537559727124966e12,1.5483536926445328e11,3.8708842316113477e9 +5.50871806015134e8,2.339979116879157e8,1046.1910780355759,0.004420796539766604,1.5881087960487556e9,2404.3791874393673,2604.7441197259795,0.38003422417943655,3.8532329497528594e12,1.5481435536174054e11,3.8703588840435295e9 +5.509243085668714e8,2.334434340183696e8,1046.1849380102528,0.00445437521314822,1.5880208937864237e9,2404.246021297804,2604.5998564059523,0.37896300096176816,3.852709926793222e12,1.547933414590278e11,3.8698335364757113e9 +5.509768111186088e8,2.3288954484694347e8,1046.1789927760135,0.004488195890276899,1.587933085045912e9,2404.112999331391,2604.4557492756717,0.37788683083707414,3.852186903833585e12,1.5477232755631506e11,3.869308188907893e9 +5.510293136703463e8,2.3233625521974796e8,1046.1732418489062,0.004522261190103734,1.5878453715748947e9,2403.980124183545,2604.3118011988386,0.37680571894876247,3.8516638808739478e12,1.5475131365360233e11,3.868782841340075e9 +5.511389859044658e8,2.3118247516942972e8,1046.1618533648596,0.004594220688983598,1.587662462561263e9,2403.703047497473,2604.0116347889275,0.3745314770913832,3.850571341662404e12,1.547074178507925e11,3.8676854462698298e9 +5.513237761500176e8,2.2924474645433074e8,1046.1445632404236,0.004717974946417784,1.5873552761058497e9,2403.237735691891,2603.5075469995463,0.37065102417565876,3.8487304874954673e12,1.546334564124664e11,3.865836410311677e9 +5.515085663955694e8,2.2731537523354903e8,1046.1296336118075,0.004844978283969838,1.5870494171297996e9,2402.774465352359,2603.0056707983867,0.3667100491857738,3.846889633328531e12,1.545594949741403e11,3.863987374353524e9 +5.516933566411213e8,2.2539488316750658e8,1046.11703512684,0.004975352291688379,1.5867449682554417e9,2402.313361362572,2602.506141476117,0.36270909647722605,3.845048779161594e12,1.5448553353581418e11,3.8621383383953714e9 +5.518781468866731e8,2.2348381461320356e8,1046.1067345634187,0.0051092229117485,1.5864420156784372e9,2401.8545540565333,2602.009100227908,0.3586488646933403,3.8432079249946577e12,1.5441157209748807e11,3.8602893024372187e9 +5.520629371322249e8,2.2158273665593308e8,1046.098694692582,0.005246720466512549,1.5861406492014651e9,2401.398179226427,2601.5146941619596,0.35453021418447994,3.841367070827721e12,1.5433761065916196e11,3.858440266479066e9 +5.522477273777767e8,2.1969223881236377e8,1046.0928741629987,0.005387979568458061,1.5858409621956646e9,2400.9443780513443,2601.0230762222864,0.3503541758072907,3.8395262166607847e12,1.5426364922083585e11,3.856591230520913e9 +5.524325176233286e8,2.178129327170084e8,1046.0892273761542,0.005533139003901434,1.5855430515503712e9,2400.4932970218483,2600.5344051069987,0.3461219610372811,3.837685362493848e12,1.5418968778250974e11,3.8547421945627604e9 +5.526173078688804e8,2.1594545175458264e8,1046.087704357789,0.0056823415983756715,1.5852470176125689e9,2400.045087851475,2600.0488451724273,0.34183497254438,3.8358445083269116e12,1.5411572634418362e11,3.8528931586046076e9 +5.526297652275522e8,2.1581999999999982e8,1046.0876767463483,0.005692548974934729,1.5852271310202427e9,2400.014979713882,2600.016228023368,0.34154404068320293,3.8357204098900513e12,1.5411074034417932e11,3.8527685086045003e9 +5.526297652275522e8,2.1581999999999982e8,1046.0876767463483,0.005692548974934729,1.5852271310202427e9,2400.014979713882,2600.016228023368,0.34154404068320293,3.8357204098900513e12,1.5411074034417932e11,3.8527685086045003e9 +5.527297652275522e8,2.1582367149013716e8,1046.0875638383427,0.00569227054587127,1.5852277148462634e9,2400.0158635871494,2600.017185552741,0.3415517303750734,3.835724224100353e12,1.5411089359069122e11,3.8527723397672977e9 +5.533975756211736e8,2.1584818974542394e8,1046.0868101720512,0.005690412007412432,1.585231614601196e9,2400.02176610994,2600.0235799524307,0.3416030690407485,3.8357496957931816e12,1.541119169868255e11,3.8527979246706543e9 +5.554836904517195e8,2.15924777968224e8,1046.0844581031138,0.005684611737879291,1.5852438025835416e9,2400.0402039947103,2600.043554327599,0.341763351009143,3.835829264599951e12,1.5411511388503735e11,3.8528778471259503e9 +5.575698052822654e8,2.160013631840597e8,1046.0821090227505,0.005678818736316384,1.5852559983950665e9,2400.0586412119696,2600.0635279796297,0.3419235123611231,3.8359088334067207e12,1.541183107832492e11,3.8529577695812464e9 +5.596559201128113e8,2.1607794508879474e8,1046.079763176325,0.005673033597813877,1.5852682026795382e9,2400.07707769331,2600.083500834415,0.34208354298543514,3.83598840221349e12,1.5412150768146106e11,3.8530376920365424e9 +5.617420349433572e8,2.161545235505115e8,1046.077420650612,0.005667256509693308,1.5852804156464698e9,2400.095513408467,2600.103472859168,0.3422434395512079,3.83606797102026e12,1.541247045796729e11,3.8531176144918385e9 +5.661191825268948e8,2.1631519105513862e8,1046.072516396355,0.005655161236209581,1.5853060697352192e9,2400.134193163868,2600.145375927519,0.3425784982926397,3.836234924634306e12,1.54131412405665e11,3.8532853101416407e9 +5.736105636862535e8,2.1659013141005152e8,1046.0641571861474,0.005634543066619091,1.585350065409879e9,2400.2003840845227,2600.217082758229,0.3431505562836948,3.836520661666217e12,1.541428926859842e11,3.85357231714962e9 +5.811019448456123e8,2.1686502186301288e8,1046.055841380653,0.005614028688834908,1.5853941735888014e9,2400.266563810062,2600.288777460896,0.34372086361904286,3.8368063986981274e12,1.5415437296630338e11,3.8538593241575994e9 +5.911019448456123e8,2.1723188245098183e8,1046.044808548505,0.005586805528950769,1.5854532268880973e9,2400.3548865724506,2600.3844604534843,0.34447941829440043,3.837187819728285e12,1.5416969761749246e11,3.854242440437327e9 +6.011019448456123e8,2.175986442297573e8,1046.0338532159847,0.005559764839988641,1.5855124791214507e9,2400.443187005995,2600.4801192564905,0.34523485102014706,3.837569240758443e12,1.5418502226868155e11,3.8546255567170544e9 +6.111019448456123e8,2.1796530097805238e8,1046.0229755013145,0.005532904983546288,1.585571929271633e9,2400.531463611779,2600.57575224609,0.3459871617189516,3.8379506617886006e12,1.5420034691987064e11,3.855008672996782e9 +6.211019448456123e8,2.1833184658663028e8,1046.012175463669,0.005506224365637473,1.5856315763256354e9,2400.6197149188447,2600.671357828744,0.3467363503432651,3.8383320828187583e12,1.5421567157105972e11,3.8553917892765093e9 +6.311019448456123e8,2.186982751385345e8,1046.0014531256659,0.00547972145278858,1.5856914192970877e9,2400.707939503084,2600.7669344616706,0.3474824169419088,3.838713503848916e12,1.542309962222488e11,3.8557749055562367e9 +6.411019448456123e8,2.190645808448744e8,1045.9908084998685,0.005453394741137204,1.5857514572181056e9,2400.7961359712085,2600.862480635472,0.348225361848398,3.8390949248790737e12,1.542463208734379e11,3.856158021835964e9 +6.511019448456123e8,2.1943075799693912e8,1045.980241597172,0.005427242738481803,1.5858116891310377e9,2400.8843029490276,2600.9579948614423,0.3489651857482995,3.8394763459092314e12,1.5426164552462698e11,3.8565411381156917e9 +6.611019448456123e8,2.1979680095112202e8,1045.969752424372,0.005401263961628092,1.5858721140854418e9,2400.9724390778806,2601.0534756677,0.3497018896537194,3.839857766939389e12,1.5427697017581607e11,3.856924254395419e9 +6.711019448456123e8,2.2016270412871945e8,1045.9593409806491,0.005375456938648845,1.5859327311379013e9,2401.0605430146725,2601.148921599224,0.3504354748647434,3.840239187969547e12,1.5429229482700516e11,3.8573073706751466e9 +6.811019448456123e8,2.20528462018133e8,1045.9490072562062,0.005349820210528931,1.5859935393524497e9,2401.1486134324405,2601.244331218473,0.35116594294926357,3.8406206089997046e12,1.5430761947819424e11,3.857690486954874e9 +6.911019448456123e8,2.2089406917571887e8,1045.9387512323456,0.005324352331527303,1.5860545378007987e9,2401.23664902056,2601.339703105602,0.3518932957362168,3.8410020300298623e12,1.5432294412938333e11,3.8580736032346015e9 +7.011019448456123e8,2.212595202253925e8,1045.9285728818063,0.005299051869022288,1.5861157255623393e9,2401.324648484646,2601.435035858361,0.35261753531152196,3.84138345106002e12,1.5433826878057242e11,3.858456719514329e9 +7.111019448456123e8,2.2162480985775137e8,1045.9184721688996,0.005273917403352936,1.5861771017240474e9,2401.4126105463397,2601.5303280918624,0.3533386640122474,3.8417648720901777e12,1.543535934317615e11,3.8588398357940564e9 +7.211019448456123e8,2.2198993282915917e8,1045.9084490494809,0.005248947527757421,1.5862386653803775e9,2401.500533943096,2601.6255784383484,0.35405668441928223,3.8421462931203354e12,1.543689180829506e11,3.859222952073784e9 +7.311019448456123e8,2.2235488396092245e8,1045.8985034708896,0.005224140848354419,1.5863004156331737e9,2401.5884174279877,2601.720785546981,0.3547715993498177,3.842527714150493e12,1.5438424273413968e11,3.8596060683535113e9 +7.411019448456123e8,2.2271965813856205e8,1045.8886353719324,0.005199495984118258,1.5863623515915954e9,2401.6762597695347,2601.8159480836566,0.3554834118503621,3.842909135180651e12,1.5439956738532877e11,3.859989184633239e9 +7.511019448456123e8,2.2308425031115943e8,1045.8788446829199,0.005175011566832919,1.5864244723720534e9,2401.764059751549,2601.9110647308394,0.35619212519042837,3.8432905562108086e12,1.5441489203651785e11,3.8603723009129663e9 +7.611019448456123e8,2.2344865549076763e8,1045.8691313257525,0.005150686241027107,1.586486777098156e9,2401.8518161729958,2602.0061341874066,0.35689774285681897,3.8436719772409663e12,1.5443021668770694e11,3.8607554171926937e9 +7.711019448456123e8,2.2381286875483108e8,1045.859495213712,0.005126518664464202,1.5865492649010043e9,2401.939527848572,2602.101155169281,0.3576002685586696,3.844053398271124e12,1.5444554133889603e11,3.861138533472421e9 +7.811019448456123e8,2.241768852386209e8,1045.8499362523567,0.005102507506721528,1.5866119349183311e9,2402.027193606892,2602.1961264074607,0.35829970619754425,3.8444348193012817e12,1.544608659900851e11,3.8615216497521486e9 +7.911019448456123e8,2.245407001390023e8,1045.8404543394329,0.00507865144979087,1.5866747862949617e9,2402.114812291386,2602.2910466489957,0.35899605987877203,3.8448162403314395e12,1.544761906412742e11,3.861904766031876e9 +8.011019448456123e8,2.2490430871459433e8,1045.831049364849,0.0050549491881697675,1.5867378181828427e9,2402.2023827603393,2602.3859146570285,0.35968933390849156,3.845197661361597e12,1.544915152924633e11,3.8622878823116035e9 +8.111019448456123e8,2.252677062852147e8,1045.8217212109332,0.005031399428707163,1.5868010297409978e9,2402.289903886758,2602.4807292106484,0.3603795327891436,3.845579082391755e12,1.5450683994365237e11,3.862670998591331e9 +8.211019448456123e8,2.2563088823130143e8,1045.8124697527273,0.00500800089042798,1.5868644201354818e9,2402.377374558225,2602.5754891047377,0.36106666121509284,3.8459605034219126e12,1.5452216459484146e11,3.8630541148710585e9 +8.311019448456123e8,2.2599384999345815e8,1045.803294858253,0.00498475230438766,1.5869279885393481e9,2402.4647936767883,2602.6701931498483,0.3617507240686952,3.8463419244520703e12,1.5453748924603055e11,3.863437231150786e9 +8.411019448456123e8,2.263565870720891e8,1045.794196388757,0.004961652413548246,1.5869917341326253e9,2402.552160158871,2602.7648401721044,0.3624317264167058,3.846723345482228e12,1.5455281389721964e11,3.8638203474305134e9 +8.511019448456123e8,2.2671909502707008e8,1045.7851741989514,0.004938699972662514,1.587055656102299e9,2402.639472935188,2602.8594290131145,0.36310967350686035,3.8471047665123857e12,1.5456813854840872e11,3.864203463710241e9 +8.611019448456123e8,2.2708136947742248e8,1045.7762281372486,0.0049158937481599396,1.5871197536422908e9,2402.7267309506665,2602.953958529882,0.3637845707645132,3.8474861875425435e12,1.545834631995978e11,3.8645865799899683e9 +8.711019448456123e8,2.2744340610097668e8,1045.767358045992,0.004893232518033381,1.5871840259534385e9,2402.81393316436,2603.048427594717,0.3644564237892739,3.847867608572701e12,1.545987878507869e11,3.8649696962696958e9 +8.811019448456123e8,2.278052006340217e8,1045.7585637616785,0.004870715071727065,1.5872484722434723e9,2402.901078549365,2603.142835095139,0.36512523835162003,3.848249029602859e12,1.5461411250197598e11,3.865352812549423e9 +8.911019448456123e8,2.2816674887094048e8,1045.7498451151725,0.00484834021002652,1.587313091726989e9,2402.988166092728,2603.237179933783,0.36579102038948,3.8486304506330166e12,1.5462943715316507e11,3.8657359288291507e9 +9.011019448456123e8,2.285280466638311e8,1045.741201931911,0.004826106744950777,1.5873778836254241e9,2403.075194795354,2603.3314610282946,0.3664537760047845,3.8490118716631743e12,1.5464476180435416e11,3.866119045108878e9 +9.111019448456123e8,2.288890899221145e8,1045.7326340320985,0.004804013499646906,1.5874428471670218e9,2403.1621636719096,2603.4256773112297,0.36711351145998866,3.849393292693332e12,1.5466008645554324e11,3.8665021613886056e9 +9.211019448456123e8,2.292498746121282e8,1045.724141230892,0.004782059308286825,1.587507981586801e9,2403.249071750724,2603.519827729945,0.36777023317456614,3.8497747137234897e12,1.5467541110673233e11,3.866885277668333e9 +9.311019448456123e8,2.296103967567076e8,1045.7157233385778,0.004760243015966301,1.5875732861265218e9,2403.3359180736866,2603.6139112464875,0.368423947721479,3.8501561347536475e12,1.5469073575792142e11,3.8672683939480605e9 +9.411019448456123e8,2.2997065243475443e8,1045.707380160739,0.004738563478605992,1.5876387600346475e9,2403.4227016961427,2603.7079268374814,0.36907466182362725,3.850537555783805e12,1.547060604091105e11,3.867651510227788e9 +9.511019448456123e8,2.3033063778079376e8,1045.6991114984125,0.004717019562854403,1.5877044025663054e9,2403.509421686784,2603.80187349401,0.3697223823502833,3.850918976813963e12,1.547213850602996e11,3.8680346265075154e9 +9.611019448456123e8,2.3069034898452008e8,1045.6909171482416,0.004695610145992615,1.5877702129832466e9,2403.5960771275422,2603.895750221498,0.37036711631351715,3.8513003978441206e12,1.5473670971148868e11,3.868417742787243e9 +9.711019448456123e8,2.3104978229033402e8,1045.6827969026187,0.004674334115840625,1.587836190553802e9,2403.6826671134727,2603.9895560395894,0.37100887086461687,3.8516818188742783e12,1.5475203436267776e11,3.8688008590669703e9 +9.811019448456123e8,2.3140893399686965e8,1045.6747505498204,0.004653190370665174,1.5879023345528388e9,2403.7691907526428,2604.083289982024,0.3716476532905117,3.852063239904436e12,1.5476735901386685e11,3.869183975346698e9 +9.911019448456123e8,2.317678004565145e8,1045.6667778741373,0.004632177819088902,1.5879686442617137e9,2403.855647166015,2604.1769510965105,0.3722834710102016,3.8524446609345938e12,1.5478268366505594e11,3.8695670916264253e9 +1.0e9,2.3208687912240884e8,1045.6597455277583,0.004613590158236053,1.5880277857528248e9,2403.9325193478444,2604.2602292934926,0.3728467387790435,3.8527840514709326e12,1.5479631962420618e11,3.869907990605181e9 diff --git a/test/runtests.jl b/test/runtests.jl index 5d5758f..cd11bfc 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -43,5 +43,5 @@ include("matrix-a-data.jl") include("test-initial.jl") include("test-exsolve.jl") include("test-ic_finder.jl") - # include("test-sol.jl") + include("test-sol.jl") end From 325b5ff402daf6b1a6133383eb24dfa275c6cb9c Mon Sep 17 00:00:00 2001 From: CallieHsu Date: Mon, 17 Jul 2023 14:59:58 -0400 Subject: [PATCH 07/11] update .gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 1f343b1..1d1360b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ /.vscode 202* sysimage_chamber*.so -docs/build/ \ No newline at end of file +docs/build/ +src/pplot.jl From b1d356dbe39c09bb9f505686290234882a95e6a1 Mon Sep 17 00:00:00 2001 From: CallieHsu Date: Mon, 17 Jul 2023 15:57:08 -0400 Subject: [PATCH 08/11] runtest test-sol debug --- test/test-sol.jl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/test-sol.jl b/test/test-sol.jl index 9f19c41..5639086 100644 --- a/test/test-sol.jl +++ b/test/test-sol.jl @@ -3,6 +3,9 @@ using DelimitedFiles, DataFrames solve_exp = Float64.(readdlm("out.csv", ',')[2:end, :]) df = chamber(Silicic(), 1e9, 0.2, 0.04, 0.001, -3.3, 8e3) +println(solve_exp) +println(Matrix(df)) +println(solve_exp .- Matrix(df)) @testset "solve_ode" begin - @test all(abs.(solve_exp .- Matrix(df)) .< 0.00005) + @test all(abs.(solve_exp .- Matrix(df)) .< 1) end From 4d99965dbce6727fc12df75cf07c6aaf49ec4217 Mon Sep 17 00:00:00 2001 From: CallieHsu Date: Mon, 17 Jul 2023 16:42:51 -0400 Subject: [PATCH 09/11] runtest test-sol debug --- test/test-sol.jl | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/test/test-sol.jl b/test/test-sol.jl index 5639086..e8ae829 100644 --- a/test/test-sol.jl +++ b/test/test-sol.jl @@ -3,9 +3,26 @@ using DelimitedFiles, DataFrames solve_exp = Float64.(readdlm("out.csv", ',')[2:end, :]) df = chamber(Silicic(), 1e9, 0.2, 0.04, 0.001, -3.3, 8e3) -println(solve_exp) -println(Matrix(df)) -println(solve_exp .- Matrix(df)) +println("1: ", solve_exp[:, 1] .- Matrix(df)[:, 1]) +println("2: ", solve_exp[:, 2] .- Matrix(df)[:, 2]) +println("3: ", solve_exp[:, 3] .- Matrix(df)[:, 3]) +println("4: ", solve_exp[:, 4] .- Matrix(df)[:, 4]) +println("5: ", solve_exp[:, 5] .- Matrix(df)[:, 5]) +println("6: ", solve_exp[:, 6] .- Matrix(df)[:, 6]) +println("7: ", solve_exp[:, 7] .- Matrix(df)[:, 7]) +println("8: ", solve_exp[:, 8] .- Matrix(df)[:, 8]) +println("9: ", solve_exp[:, 9] .- Matrix(df)[:, 9]) +println("10: ", solve_exp[:, 10] .- Matrix(df)[:, 10]) @testset "solve_ode" begin @test all(abs.(solve_exp .- Matrix(df)) .< 1) + @test all(abs.(solve_exp[:, 1] .- Matrix(df)[:, 1]) .< 100.0) + @test all(abs.(solve_exp[:, 2] .- Matrix(df)[:, 2]) .< abs(solve_exp[end, 2]*1e-5)) + @test all(abs.(solve_exp[:, 3] .- Matrix(df)[:, 3]) .< abs(solve_exp[end, 3]*1e-5)) + @test all(abs.(solve_exp[:, 4] .- Matrix(df)[:, 4]) .< abs(solve_exp[end, 4]*1e-5)) + @test all(abs.(solve_exp[:, 5] .- Matrix(df)[:, 5]) .< abs(solve_exp[end, 5]*1e-5)) + @test all(abs.(solve_exp[:, 6] .- Matrix(df)[:, 6]) .< abs(solve_exp[end, 6]*1e-5)) + @test all(abs.(solve_exp[:, 7] .- Matrix(df)[:, 7]) .< abs(solve_exp[end, 7]*1e-5)) + @test all(abs.(solve_exp[:, 8] .- Matrix(df)[:, 8]) .< abs(solve_exp[end, 8]*1e-5)) + @test all(abs.(solve_exp[:, 9] .- Matrix(df)[:, 9]) .< abs(solve_exp[end, 9]*1e-5)) + @test all(abs.(solve_exp[:, 10] .- Matrix(df)[:, 10]) .< abs(solve_exp[end, 10]*1e-5)) end From 1c598aca9771df06d4e1ffa0def874830efc034b Mon Sep 17 00:00:00 2001 From: CallieHsu Date: Mon, 17 Jul 2023 17:38:56 -0400 Subject: [PATCH 10/11] runtest test-sol debug --- test/test-sol.jl | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/test/test-sol.jl b/test/test-sol.jl index e8ae829..1e9d500 100644 --- a/test/test-sol.jl +++ b/test/test-sol.jl @@ -3,26 +3,9 @@ using DelimitedFiles, DataFrames solve_exp = Float64.(readdlm("out.csv", ',')[2:end, :]) df = chamber(Silicic(), 1e9, 0.2, 0.04, 0.001, -3.3, 8e3) -println("1: ", solve_exp[:, 1] .- Matrix(df)[:, 1]) -println("2: ", solve_exp[:, 2] .- Matrix(df)[:, 2]) -println("3: ", solve_exp[:, 3] .- Matrix(df)[:, 3]) -println("4: ", solve_exp[:, 4] .- Matrix(df)[:, 4]) -println("5: ", solve_exp[:, 5] .- Matrix(df)[:, 5]) -println("6: ", solve_exp[:, 6] .- Matrix(df)[:, 6]) -println("7: ", solve_exp[:, 7] .- Matrix(df)[:, 7]) -println("8: ", solve_exp[:, 8] .- Matrix(df)[:, 8]) -println("9: ", solve_exp[:, 9] .- Matrix(df)[:, 9]) -println("10: ", solve_exp[:, 10] .- Matrix(df)[:, 10]) @testset "solve_ode" begin - @test all(abs.(solve_exp .- Matrix(df)) .< 1) - @test all(abs.(solve_exp[:, 1] .- Matrix(df)[:, 1]) .< 100.0) - @test all(abs.(solve_exp[:, 2] .- Matrix(df)[:, 2]) .< abs(solve_exp[end, 2]*1e-5)) - @test all(abs.(solve_exp[:, 3] .- Matrix(df)[:, 3]) .< abs(solve_exp[end, 3]*1e-5)) - @test all(abs.(solve_exp[:, 4] .- Matrix(df)[:, 4]) .< abs(solve_exp[end, 4]*1e-5)) - @test all(abs.(solve_exp[:, 5] .- Matrix(df)[:, 5]) .< abs(solve_exp[end, 5]*1e-5)) - @test all(abs.(solve_exp[:, 6] .- Matrix(df)[:, 6]) .< abs(solve_exp[end, 6]*1e-5)) - @test all(abs.(solve_exp[:, 7] .- Matrix(df)[:, 7]) .< abs(solve_exp[end, 7]*1e-5)) - @test all(abs.(solve_exp[:, 8] .- Matrix(df)[:, 8]) .< abs(solve_exp[end, 8]*1e-5)) - @test all(abs.(solve_exp[:, 9] .- Matrix(df)[:, 9]) .< abs(solve_exp[end, 9]*1e-5)) - @test all(abs.(solve_exp[:, 10] .- Matrix(df)[:, 10]) .< abs(solve_exp[end, 10]*1e-5)) + for i in 1:10 + println("$i: ", maximum!([1.0], abs.(solve_exp[:, i] .- Matrix(df)[:, i]))) + @test all(abs.(solve_exp[:, i] .- Matrix(df)[:, i]) .< abs(solve_exp[end, i]*1e-9)) + end end From 94a582e2cd0158323ca01d067c9c492dac2f925d Mon Sep 17 00:00:00 2001 From: CallieHsu Date: Mon, 17 Jul 2023 17:59:24 -0400 Subject: [PATCH 11/11] runtest test-sol debug --- test/test-sol.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test-sol.jl b/test/test-sol.jl index 1e9d500..757c163 100644 --- a/test/test-sol.jl +++ b/test/test-sol.jl @@ -4,8 +4,8 @@ solve_exp = Float64.(readdlm("out.csv", ',')[2:end, :]) df = chamber(Silicic(), 1e9, 0.2, 0.04, 0.001, -3.3, 8e3) @testset "solve_ode" begin - for i in 1:10 - println("$i: ", maximum!([1.0], abs.(solve_exp[:, i] .- Matrix(df)[:, i]))) + for i in 1:11 + println("col$i maximum diff: ", maximum!([1.0], abs.(solve_exp[:, i] .- Matrix(df)[:, i]))) @test all(abs.(solve_exp[:, i] .- Matrix(df)[:, i]) .< abs(solve_exp[end, i]*1e-9)) end end