diff --git a/Make.Microphysics_extern b/Make.Microphysics_extern index 31d3643440..64ca8faefe 100644 --- a/Make.Microphysics_extern +++ b/Make.Microphysics_extern @@ -140,6 +140,7 @@ ifeq ($(USE_NSE_NET), TRUE) EXTERN_CORE += $(MICROPHYSICS_HOME)/nse_solver EXTERN_CORE += $(MICROPHYSICS_HOME)/util/hybrj endif +EXTERN_CORE += $(MICROPHYSICS_HOME)/util/approx_math # we can't have both NSE solvers ifeq ($(USE_NSE_TABLE), TRUE) diff --git a/screening/screen.H b/screening/screen.H index a068061692..340fd892a0 100644 --- a/screening/screen.H +++ b/screening/screen.H @@ -19,6 +19,7 @@ #include #include #include +#include using namespace amrex::literals; @@ -660,7 +661,7 @@ void chugunov2009_f0 (const amrex::Real gamma, const amrex::Real dlog_dT, amrex: dterm2_dgamma = 1.0_rt / (2.0_rt * term1); } - term3 = gamma_12 - std::atan(gamma_12); + term3 = gamma_12 - fast_atan(gamma_12); if constexpr (do_T_derivatives) { dterm3_dgamma = 0.5_rt * gamma_12 / (1.0_rt + gamma); } @@ -817,7 +818,7 @@ void chabrier1998_helmholtz_F(const amrex::Real gamma, const amrex::Real dgamma_ f = A_1 * (sqrt_gamma_A2_gamma - A_2 * std::log(sqrt_gamma_A2 + sqrt_1_gamma_A2)) + - 2.0_rt * A_3 * (sqrt_gamma - std::atan(sqrt_gamma)); + 2.0_rt * A_3 * (sqrt_gamma - fast_atan(sqrt_gamma)); if constexpr (do_T_derivatives) { df_dT = A_1 * ((A_2 + 2.0_rt * gamma) / (2.0_rt * sqrt_gamma_A2_gamma) - diff --git a/unit_test/test_ase/ci-benchmarks/ase_nse_net_unit_test.out b/unit_test/test_ase/ci-benchmarks/ase_nse_net_unit_test.out index b981f99eac..bd6ed56539 100644 --- a/unit_test/test_ase/ci-benchmarks/ase_nse_net_unit_test.out +++ b/unit_test/test_ase/ci-benchmarks/ase_nse_net_unit_test.out @@ -1,4 +1,5 @@ -AMReX (23.05-4-ga393d7ff7e32) initialized +Initializing AMReX (23.07-395-ge6c93bf22695)... +AMReX (23.07-395-ge6c93bf22695) initialized starting the single zone burn... reading in network electron-capture / beta-decay tables... chemical potential of proton is -3 @@ -7,28 +8,28 @@ State Density (g/cm^3): 10000000 State Temperature (K): 6000000000 electron fraction is 0.5 NSE state: -n : 0.0006075658986 -H1 : 0.001992231785 -He4 : 0.5191546413 -C12 : 1.326178988e-05 -N13 : 9.476614056e-11 -N14 : 2.565265841e-09 -O16 : 3.224715368e-05 -F18 : 5.420149548e-11 -Ne20 : 7.424231652e-07 -Ne21 : 4.996678197e-08 -Na22 : 2.606751428e-09 -Na23 : 1.008351077e-06 -Mg24 : 0.0001021744034 -Al27 : 0.000554657875 -Si28 : 0.03679926049 -P31 : 0.04228638044 -S32 : 0.03865876461 -Ar36 : 0.02465328319 -Ca40 : 0.02885085912 -Ti44 : 0.001660132226 -Cr48 : 0.009959852831 -Fe52 : 0.05964589202 -Ni56 : 0.2350269888 +n : 0.0006075693495 +H1 : 0.001992432534 +He4 : 0.519007877 +C12 : 1.326102e-05 +N13 : 9.477376691e-11 +N14 : 2.565486854e-09 +O16 : 3.225455246e-05 +F18 : 5.422064179e-11 +Ne20 : 7.427509432e-07 +Ne21 : 4.998912611e-08 +Na22 : 2.608008186e-09 +Na23 : 1.00884295e-06 +Mg24 : 0.0001022222509 +Al27 : 0.0005548826609 +Si28 : 0.03680966846 +P31 : 0.04229223791 +S32 : 0.03865771985 +Ar36 : 0.02464742443 +Ca40 : 0.02885152622 +Ti44 : 0.00166123105 +Cr48 : 0.009967017598 +Fe52 : 0.05968005236 +Ni56 : 0.2351208159 We're in NSE. -AMReX (23.05-4-ga393d7ff7e32) finalized +AMReX (23.07-395-ge6c93bf22695) finalized diff --git a/unit_test/test_ase/make_table/ci-benchmarks/ase_nse_net_make_table_unit_test.out b/unit_test/test_ase/make_table/ci-benchmarks/ase_nse_net_make_table_unit_test.out index a2661d3b63..18a8c9846f 100644 --- a/unit_test/test_ase/make_table/ci-benchmarks/ase_nse_net_make_table_unit_test.out +++ b/unit_test/test_ase/make_table/ci-benchmarks/ase_nse_net_make_table_unit_test.out @@ -2,354 +2,354 @@ Initializing AMReX (23.07-395-ge6c93bf22695)... AMReX (23.07-395-ge6c93bf22695) initialized starting the single zone burn... reading in network electron-capture / beta-decay tables... - 1.0000000000e+06 4.0000000000e+09 0.4000000000 -12.9554947343 -4.7372062226 0 - 1.0000000000e+06 4.4286927156e+09 0.4000000000 -12.4096799410 -5.3017300148 1 - 1.0000000000e+06 4.9033297922e+09 0.4000000000 -11.8124742295 -5.9247174684 1 - 1.0000000000e+06 5.4288352332e+09 0.4000000000 -11.2186148994 -6.5894796055 1 - 1.0000000000e+06 6.0106607628e+09 0.4000000000 -10.8221238399 -7.3603510803 1 - 1.0000000000e+06 6.6548423840e+09 0.4000000000 -10.4363399350 -8.2252368745 1 - 1.0000000000e+06 7.3680629973e+09 0.4000000000 -10.1444749822 -9.0849628651 1 - 1.0000000000e+06 8.1577217310e+09 0.4000000000 -10.2582729098 -9.7983255911 1 - 1.0000000000e+06 9.0320107014e+09 0.4000000000 -11.0251835300 -10.7011614674 1 - 1.0000000000e+06 1.0000000000e+10 0.4000000000 -12.3061845155 -11.9583138919 1 - 1.0000000000e+07 4.0000000000e+09 0.4000000000 -13.7539515651 -3.9436985097 0 - 1.0000000000e+07 4.4286927156e+09 0.4000000000 -13.2910164651 -4.4245064461 1 - 1.0000000000e+07 4.9033297922e+09 0.4000000000 -12.7738646322 -4.9622426967 1 - 1.0000000000e+07 5.4288352332e+09 0.4000000000 -12.2022577663 -5.5597814641 1 - 1.0000000000e+07 6.0106607628e+09 0.4000000000 -11.5968595012 -6.2091493900 1 - 1.0000000000e+07 6.6548423840e+09 0.4000000000 -11.0839441741 -6.9172942301 1 - 1.0000000000e+07 7.3680629973e+09 0.4000000000 -10.7118071859 -7.7493029625 1 - 1.0000000000e+07 8.1577217310e+09 0.4000000000 -10.3609046321 -8.6311911599 1 - 1.0000000000e+07 9.0320107014e+09 0.4000000000 -10.2511246484 -9.4182694244 1 - 1.0000000000e+07 1.0000000000e+10 0.4000000000 -10.6007602523 -10.1495148191 1 - 1.0000000000e+08 4.0000000000e+09 0.4000000000 -14.5607979132 -3.1500296808 0 - 1.0000000000e+08 4.4286927156e+09 0.4000000000 -14.1824298687 -3.5459082965 1 - 1.0000000000e+08 4.9033297922e+09 0.4000000000 -13.7577579914 -3.9903921670 1 - 1.0000000000e+08 5.4288352332e+09 0.4000000000 -13.2819456405 -4.4889812764 1 - 1.0000000000e+08 6.0106607628e+09 0.4000000000 -12.7514849068 -5.0464184898 1 - 1.0000000000e+08 6.6548423840e+09 0.4000000000 -12.1712458969 -5.6630141684 1 - 1.0000000000e+08 7.3680629973e+09 0.4000000000 -11.5722805481 -6.3289558604 1 - 1.0000000000e+08 8.1577217310e+09 0.4000000000 -11.0956065264 -7.0732199212 1 - 1.0000000000e+08 9.0320107014e+09 0.4000000000 -10.7314991018 -7.9307107447 1 - 1.0000000000e+08 1.0000000000e+10 0.4000000000 -10.4460220425 -8.7985576055 1 - 1.0000000000e+09 4.0000000000e+09 0.4000000000 -15.3871576696 -2.3563444192 0 - 1.0000000000e+09 4.4286927156e+09 0.4000000000 -15.0933196910 -2.6671723144 1 - 1.0000000000e+09 4.9033297922e+09 0.4000000000 -14.7621585644 -3.0175641919 1 - 1.0000000000e+09 5.4288352332e+09 0.4000000000 -14.3892675597 -3.4124048329 1 - 1.0000000000e+09 6.0106607628e+09 0.4000000000 -13.9696444922 -3.8570452646 1 - 1.0000000000e+09 6.6548423840e+09 0.4000000000 -13.4991007866 -4.3569659599 1 - 1.0000000000e+09 7.3680629973e+09 0.4000000000 -12.9751181065 -4.9165784019 1 - 1.0000000000e+09 8.1577217310e+09 0.4000000000 -12.4029752670 -5.5362858141 1 - 1.0000000000e+09 9.0320107014e+09 0.4000000000 -11.8075801910 -6.2097745679 1 - 1.0000000000e+09 1.0000000000e+10 0.4000000000 -11.2832972469 -6.9502984483 1 - 1.0000000000e+10 4.0000000000e+09 0.4000000000 -16.2582562530 -1.5626567046 0 - 1.0000000000e+10 4.4286927156e+09 0.4000000000 -16.0486711081 -1.7884208141 1 - 1.0000000000e+10 4.9033297922e+09 0.4000000000 -15.8108264166 -2.0446360382 1 - 1.0000000000e+10 5.4288352332e+09 0.4000000000 -15.5412394564 -2.3352407364 1 - 1.0000000000e+10 6.0106607628e+09 0.4000000000 -15.2357460773 -2.6646601290 1 - 1.0000000000e+10 6.6548423840e+09 0.4000000000 -14.8903598511 -3.0378300883 1 - 1.0000000000e+10 7.3680629973e+09 0.4000000000 -14.5003306450 -3.4601448286 1 - 1.0000000000e+10 8.1577217310e+09 0.4000000000 -14.0614681108 -3.9371819380 1 - 1.0000000000e+10 9.0320107014e+09 0.4000000000 -13.5711877029 -4.4739432772 1 - 1.0000000000e+10 1.0000000000e+10 0.4000000000 -13.0312386754 -5.0733642178 1 - 1.0000000000e+06 4.0000000000e+09 0.4500000000 -12.6199543736 -5.0493824190 0 - 1.0000000000e+06 4.4286927156e+09 0.4500000000 -12.0411482213 -5.6445830902 1 - 1.0000000000e+06 4.9033297922e+09 0.4500000000 -11.4232159716 -6.2868523465 1 - 1.0000000000e+06 5.4288352332e+09 0.4500000000 -10.8518105923 -6.9298763762 1 - 1.0000000000e+06 6.0106607628e+09 0.4500000000 -10.4348297029 -7.7172920606 1 - 1.0000000000e+06 6.6548423840e+09 0.4500000000 -10.0424249563 -8.5877937252 1 - 1.0000000000e+06 7.3680629973e+09 0.4500000000 -9.8849653900 -9.3214540021 1 - 1.0000000000e+06 8.1577217310e+09 0.4500000000 -10.1350525687 -9.9053582090 1 - 1.0000000000e+06 9.0320107014e+09 0.4500000000 -10.9317596585 -10.7720005415 1 - 1.0000000000e+06 1.0000000000e+10 0.4500000000 -12.2046515153 -12.0333675716 1 - 1.0000000000e+07 4.0000000000e+09 0.4500000000 -13.4183067124 -4.2562147927 0 - 1.0000000000e+07 4.4286927156e+09 0.4500000000 -12.9196253111 -4.7702514864 1 - 1.0000000000e+07 4.9033297922e+09 0.4500000000 -12.3646798479 -5.3431230745 1 - 1.0000000000e+07 5.4288352332e+09 0.4500000000 -11.7608031981 -5.9706929851 1 - 1.0000000000e+07 6.0106607628e+09 0.4500000000 -11.1530046224 -6.6222736065 1 - 1.0000000000e+07 6.6548423840e+09 0.4500000000 -10.6534174043 -7.3144509606 1 - 1.0000000000e+07 7.3680629973e+09 0.4500000000 -10.2538965632 -8.1710984837 1 - 1.0000000000e+07 8.1577217310e+09 0.4500000000 -9.9754563017 -8.9846245459 1 - 1.0000000000e+07 9.0320107014e+09 0.4500000000 -10.0361947962 -9.6116151439 1 - 1.0000000000e+07 1.0000000000e+10 0.4500000000 -10.4770374349 -10.2529619723 1 - 1.0000000000e+08 4.0000000000e+09 0.4500000000 -14.2257617981 -3.4625787856 0 - 1.0000000000e+08 4.4286927156e+09 0.4500000000 -13.8113611353 -3.8919431260 1 - 1.0000000000e+08 4.9033297922e+09 0.4500000000 -13.3469541526 -4.3733519727 1 - 1.0000000000e+08 5.4288352332e+09 0.4500000000 -12.8281493966 -4.9118954345 1 - 1.0000000000e+08 6.0106607628e+09 0.4500000000 -12.2549726661 -5.5090632193 1 - 1.0000000000e+08 6.6548423840e+09 0.4500000000 -11.6452622755 -6.1532022605 1 - 1.0000000000e+08 7.3680629973e+09 0.4500000000 -11.0519684487 -6.8137720961 1 - 1.0000000000e+08 8.1577217310e+09 0.4500000000 -10.5745251704 -7.5537015416 1 - 1.0000000000e+08 9.0320107014e+09 0.4500000000 -10.2098733315 -8.4106723241 1 - 1.0000000000e+08 1.0000000000e+10 0.4500000000 -10.0528602602 -9.1577966909 1 - 1.0000000000e+09 4.0000000000e+09 0.4500000000 -15.0536284246 -2.6688948494 0 - 1.0000000000e+09 4.4286927156e+09 0.4500000000 -14.7237208310 -3.0132309342 1 - 1.0000000000e+09 4.9033297922e+09 0.4500000000 -14.3526253361 -3.4007197681 1 - 1.0000000000e+09 5.4288352332e+09 0.4500000000 -13.9355986039 -3.8365577594 1 - 1.0000000000e+09 6.0106607628e+09 0.4500000000 -13.4676000928 -4.3261359502 1 - 1.0000000000e+09 6.6548423840e+09 0.4500000000 -12.9456743294 -4.8738179092 1 - 1.0000000000e+09 7.3680629973e+09 0.4500000000 -12.3724911307 -5.4792920690 1 - 1.0000000000e+09 8.1577217310e+09 0.4500000000 -11.7661836238 -6.1311745614 1 - 1.0000000000e+09 9.0320107014e+09 0.4500000000 -11.1669155513 -6.8085285932 1 - 1.0000000000e+09 1.0000000000e+10 0.4500000000 -10.6514142713 -7.5351733688 1 - 1.0000000000e+10 4.0000000000e+09 0.4500000000 -15.9281445899 -1.8752022461 0 - 1.0000000000e+10 4.4286927156e+09 0.4500000000 -15.6824823683 -2.1344670462 1 - 1.0000000000e+10 4.9033297922e+09 0.4500000000 -15.4046979653 -2.4277705662 1 - 1.0000000000e+10 5.4288352332e+09 0.4500000000 -15.0909180355 -2.7594143869 1 - 1.0000000000e+10 6.0106607628e+09 0.4500000000 -14.7366100988 -3.1341695947 1 - 1.0000000000e+10 6.6548423840e+09 0.4500000000 -14.3375679190 -3.5571895726 1 - 1.0000000000e+10 7.3680629973e+09 0.4500000000 -13.8893312262 -4.0336361824 1 - 1.0000000000e+10 8.1577217310e+09 0.4500000000 -13.3893379519 -4.5676593433 1 - 1.0000000000e+10 9.0320107014e+09 0.4500000000 -12.8393808466 -5.1603486786 1 - 1.0000000000e+10 1.0000000000e+10 0.4500000000 -12.2492320353 -5.8073388839 1 - 1.0000000000e+06 4.0000000000e+09 0.5000000000 -8.0664317757 -9.4890217169 0 - 1.0000000000e+06 4.4286927156e+09 0.5000000000 -8.2111465939 -9.3756929062 1 - 1.0000000000e+06 4.9033297922e+09 0.5000000000 -8.3919084838 -9.2343918753 1 - 1.0000000000e+06 5.4288352332e+09 0.5000000000 -8.7773123130 -8.9447986850 1 - 1.0000000000e+06 6.0106607628e+09 0.5000000000 -9.0636971266 -9.0647301287 1 - 1.0000000000e+06 6.6548423840e+09 0.5000000000 -9.3058452720 -9.3069927942 1 - 1.0000000000e+06 7.3680629973e+09 0.5000000000 -9.5983657195 -9.5996435478 1 - 1.0000000000e+06 8.1577217310e+09 0.5000000000 -10.0168321557 -10.0182538933 1 - 1.0000000000e+06 9.0320107014e+09 0.5000000000 -10.8474057609 -10.8489864867 1 - 1.0000000000e+06 1.0000000000e+10 0.5000000000 -12.1138078856 -12.1155643114 1 - 1.0000000000e+07 4.0000000000e+09 0.5000000000 -7.8838449286 -9.6537507052 0 - 1.0000000000e+07 4.4286927156e+09 0.5000000000 -8.0018343167 -9.5631208647 1 - 1.0000000000e+07 4.9033297922e+09 0.5000000000 -8.1353350061 -9.4610650286 1 - 1.0000000000e+07 5.4288352332e+09 0.5000000000 -8.2961438737 -9.3385453388 1 - 1.0000000000e+07 6.0106607628e+09 0.5000000000 -8.5443378758 -9.1484338694 1 - 1.0000000000e+07 6.6548423840e+09 0.5000000000 -8.9669747860 -8.9715398642 1 - 1.0000000000e+07 7.3680629973e+09 0.5000000000 -9.2004551899 -9.2016374148 1 - 1.0000000000e+07 8.1577217310e+09 0.5000000000 -9.4726511139 -9.4739817151 1 - 1.0000000000e+07 9.0320107014e+09 0.5000000000 -9.8195004526 -9.8209945436 1 - 1.0000000000e+07 1.0000000000e+10 0.5000000000 -10.3608512465 -10.3625253187 1 - 1.0000000000e+08 4.0000000000e+09 0.5000000000 -7.7564635611 -9.7786466431 0 - 1.0000000000e+08 4.4286927156e+09 0.5000000000 -7.8492763579 -9.7095990635 1 - 1.0000000000e+08 4.9033297922e+09 0.5000000000 -7.9529169254 -9.6329125968 1 - 1.0000000000e+08 5.4288352332e+09 0.5000000000 -8.0694190683 -9.5474409151 1 - 1.0000000000e+08 6.0106607628e+09 0.5000000000 -8.2066035695 -9.4471394392 1 - 1.0000000000e+08 6.6548423840e+09 0.5000000000 -8.3860881357 -9.3158422735 1 - 1.0000000000e+08 7.3680629973e+09 0.5000000000 -8.6892437536 -9.0969874246 1 - 1.0000000000e+08 8.1577217310e+09 0.5000000000 -9.0475144219 -9.0502776312 1 - 1.0000000000e+08 9.0320107014e+09 0.5000000000 -9.2986737640 -9.2998952971 1 - 1.0000000000e+08 1.0000000000e+10 0.5000000000 -9.5981915345 -9.5996058103 1 - 1.0000000000e+09 4.0000000000e+09 0.5000000000 -7.7470582309 -9.8201530179 0 - 1.0000000000e+09 4.4286927156e+09 0.5000000000 -7.8147637648 -9.7725403911 1 - 1.0000000000e+09 4.9033297922e+09 0.5000000000 -7.8899500568 -9.7201179870 1 - 1.0000000000e+09 5.4288352332e+09 0.5000000000 -7.9729585399 -9.6630823945 1 - 1.0000000000e+09 6.0106607628e+09 0.5000000000 -8.0659516378 -9.5999490816 1 - 1.0000000000e+09 6.6548423840e+09 0.5000000000 -8.1710772495 -9.5300491525 1 - 1.0000000000e+09 7.3680629973e+09 0.5000000000 -8.2980543785 -9.4462317565 1 - 1.0000000000e+09 8.1577217310e+09 0.5000000000 -8.4688710479 -9.3329296172 1 - 1.0000000000e+09 9.0320107014e+09 0.5000000000 -8.7322406970 -9.1628339258 1 - 1.0000000000e+09 1.0000000000e+10 0.5000000000 -9.0635016774 -9.0827447536 1 - 1.0000000000e+10 4.0000000000e+09 0.5000000000 -7.9880272557 -9.6879106960 1 - 1.0000000000e+10 4.4286927156e+09 0.5000000000 -8.0302696474 -9.6618908304 1 - 1.0000000000e+10 4.9033297922e+09 0.5000000000 -8.0763742388 -9.6342230413 1 - 1.0000000000e+10 5.4288352332e+09 0.5000000000 -8.1258835551 -9.6057742567 1 - 1.0000000000e+10 6.0106607628e+09 0.5000000000 -8.1795419863 -9.5762098441 1 - 1.0000000000e+10 6.6548423840e+09 0.5000000000 -8.2365366758 -9.5472108046 1 - 1.0000000000e+10 7.3680629973e+09 0.5000000000 -8.2988812197 -9.5177059654 1 - 1.0000000000e+10 8.1577217310e+09 0.5000000000 -8.3695718400 -9.4863655522 1 - 1.0000000000e+10 9.0320107014e+09 0.5000000000 -8.4559729888 -9.4487584443 1 - 1.0000000000e+10 1.0000000000e+10 0.5000000000 -8.5724346511 -9.3960244850 1 - 1.0000000000e+06 4.0000000000e+09 0.5500000000 -4.9263369033 -12.6306991229 0 - 1.0000000000e+06 4.4286927156e+09 0.5500000000 -5.5125794075 -12.0760117447 1 - 1.0000000000e+06 4.9033297922e+09 0.5500000000 -6.1678880230 -11.4605474992 1 - 1.0000000000e+06 5.4288352332e+09 0.5500000000 -6.9002340114 -10.8361710742 1 - 1.0000000000e+06 6.0106607628e+09 0.5500000000 -7.7162632258 -10.4358694518 1 - 1.0000000000e+06 6.6548423840e+09 0.5500000000 -8.5866490982 -10.0435826755 1 - 1.0000000000e+06 7.3680629973e+09 0.5500000000 -9.3201805488 -9.8862508722 1 - 1.0000000000e+06 8.1577217310e+09 0.5500000000 -9.9039408492 -10.1364796926 1 - 1.0000000000e+06 9.0320107014e+09 0.5500000000 -10.7704221564 -10.9333429139 1 - 1.0000000000e+06 1.0000000000e+10 0.5500000000 -12.0316130148 -12.2064099075 1 - 1.0000000000e+07 4.0000000000e+09 0.5500000000 -4.1327873425 -13.4067940597 0 - 1.0000000000e+07 4.4286927156e+09 0.5500000000 -4.6339615873 -12.9331122213 1 - 1.0000000000e+07 4.9033297922e+09 0.5500000000 -5.1950956671 -12.4035778037 1 - 1.0000000000e+07 5.4288352332e+09 0.5500000000 -5.8232748740 -11.8138732079 1 - 1.0000000000e+07 6.0106607628e+09 0.5500000000 -6.5262585182 -11.1696969507 1 - 1.0000000000e+07 6.6548423840e+09 0.5500000000 -7.3117723586 -10.6534501954 1 - 1.0000000000e+07 7.3680629973e+09 0.5500000000 -8.1699241075 -10.2551099308 1 - 1.0000000000e+07 8.1577217310e+09 0.5500000000 -8.9833050266 -9.9768125323 1 - 1.0000000000e+07 9.0320107014e+09 0.5500000000 -9.6101346126 -10.0377081441 1 - 1.0000000000e+07 1.0000000000e+10 0.5500000000 -10.2512990115 -10.4787244894 1 - 1.0000000000e+08 4.0000000000e+09 0.5500000000 -3.3395294614 -14.1985091452 0 - 1.0000000000e+08 4.4286927156e+09 0.5500000000 -3.7556211129 -13.8063047778 1 - 1.0000000000e+08 4.9033297922e+09 0.5500000000 -4.2225575557 -13.3664586051 1 - 1.0000000000e+08 5.4288352332e+09 0.5500000000 -4.7464569311 -12.8737340419 1 - 1.0000000000e+08 6.0106607628e+09 0.5500000000 -5.3341586508 -12.3230218673 1 - 1.0000000000e+08 6.6548423840e+09 0.5500000000 -5.9932142011 -11.7120192934 1 - 1.0000000000e+08 7.3680629973e+09 0.5500000000 -6.7312740939 -11.0587814040 1 - 1.0000000000e+08 8.1577217310e+09 0.5500000000 -7.5517647764 -10.5751302476 1 - 1.0000000000e+08 9.0320107014e+09 0.5500000000 -8.4094767863 -10.2111788015 1 - 1.0000000000e+08 1.0000000000e+10 0.5500000000 -9.1564178443 -10.0543418771 1 - 1.0000000000e+09 4.0000000000e+09 0.5500000000 -2.5471792340 -15.0250737442 0 - 1.0000000000e+09 4.4286927156e+09 0.5500000000 -2.8781457135 -14.7143122751 1 - 1.0000000000e+09 4.9033297922e+09 0.5500000000 -3.2508433967 -14.3645031475 1 - 1.0000000000e+09 5.4288352332e+09 0.5500000000 -3.6704135757 -13.9710426772 1 - 1.0000000000e+09 6.0106607628e+09 0.5500000000 -4.1426202066 -13.5288366447 1 - 1.0000000000e+09 6.6548423840e+09 0.5500000000 -4.6739222912 -13.0328629966 1 - 1.0000000000e+09 7.3680629973e+09 0.5500000000 -5.2715265950 -12.4783162167 1 - 1.0000000000e+09 8.1577217310e+09 0.5500000000 -5.9431601704 -11.8633422921 1 - 1.0000000000e+09 9.0320107014e+09 0.5500000000 -6.6951903227 -11.2024393392 1 - 1.0000000000e+09 1.0000000000e+10 0.5500000000 -7.5250445973 -10.6480279212 1 - 1.0000000000e+10 4.0000000000e+09 0.5500000000 -1.7576064613 -15.9280297643 1 - 1.0000000000e+10 4.4286927156e+09 0.5500000000 -2.0033251793 -15.6986341820 1 - 1.0000000000e+10 4.9033297922e+09 0.5500000000 -2.2816656622 -15.4388423280 1 - 1.0000000000e+10 5.4288352332e+09 0.5500000000 -2.5967921128 -15.1448998968 1 - 1.0000000000e+10 6.0106607628e+09 0.5500000000 -2.9533867658 -14.8125336426 1 - 1.0000000000e+10 6.6548423840e+09 0.5500000000 -3.3567130943 -14.4373436119 1 - 1.0000000000e+10 7.3680629973e+09 0.5500000000 -3.8126863432 -14.0143366420 1 - 1.0000000000e+10 8.1577217310e+09 0.5500000000 -4.3279484412 -13.5384665928 1 - 1.0000000000e+10 9.0320107014e+09 0.5500000000 -4.9099066607 -13.0050429593 1 - 1.0000000000e+10 1.0000000000e+10 0.5500000000 -5.5664069945 -12.4111326173 1 - 1.0000000000e+06 4.0000000000e+09 0.6000000000 -4.6874165136 -12.8713479120 0 - 1.0000000000e+06 4.4286927156e+09 0.6000000000 -5.2480529162 -12.3425020495 1 - 1.0000000000e+06 4.9033297922e+09 0.6000000000 -5.8750189176 -11.7561773546 1 - 1.0000000000e+06 5.4288352332e+09 0.6000000000 -6.5760720473 -11.1834050694 1 - 1.0000000000e+06 6.0106607628e+09 0.6000000000 -7.3593255584 -10.8231744063 1 - 1.0000000000e+06 6.6548423840e+09 0.6000000000 -8.2240941595 -10.4375089965 1 - 1.0000000000e+06 7.3680629973e+09 0.6000000000 -9.0836917064 -10.1457704334 1 - 1.0000000000e+06 8.1577217310e+09 0.6000000000 -9.7969116843 -10.2597064350 1 - 1.0000000000e+06 9.0320107014e+09 0.6000000000 -10.6995852342 -11.0267695004 1 - 1.0000000000e+06 1.0000000000e+10 0.6000000000 -11.9565611188 -12.3079449877 1 - 1.0000000000e+07 4.0000000000e+09 0.6000000000 -3.8938729799 -13.6478113053 0 - 1.0000000000e+07 4.4286927156e+09 0.6000000000 -4.3694406395 -13.1998942033 1 - 1.0000000000e+07 4.9033297922e+09 0.6000000000 -4.9022241228 -12.6989361707 1 - 1.0000000000e+07 5.4288352332e+09 0.6000000000 -5.4990224461 -12.1411348669 1 - 1.0000000000e+07 6.0106607628e+09 0.6000000000 -6.1674007373 -11.5348085299 1 - 1.0000000000e+07 6.6548423840e+09 0.6000000000 -6.9155791409 -11.0832126080 1 - 1.0000000000e+07 7.3680629973e+09 0.6000000000 -7.7481347721 -10.7130540104 1 - 1.0000000000e+07 8.1577217310e+09 0.6000000000 -8.6298769843 -10.3622929044 1 - 1.0000000000e+07 9.0320107014e+09 0.6000000000 -9.4167978001 -10.2526624418 1 - 1.0000000000e+07 1.0000000000e+10 0.6000000000 -10.1478611775 -10.6024621613 1 - 1.0000000000e+08 4.0000000000e+09 0.6000000000 -3.1006339717 -14.4403951859 0 - 1.0000000000e+08 4.4286927156e+09 0.6000000000 -3.4911181289 -14.0739395658 1 - 1.0000000000e+08 4.9033297922e+09 0.6000000000 -3.9297028508 -13.6626090555 1 - 1.0000000000e+08 5.4288352332e+09 0.6000000000 -4.4222123678 -13.2014851108 1 - 1.0000000000e+08 6.0106607628e+09 0.6000000000 -4.9751654485 -12.6858764885 1 - 1.0000000000e+08 6.6548423840e+09 0.6000000000 -5.5958360597 -12.1142407615 1 - 1.0000000000e+08 7.3680629973e+09 0.6000000000 -6.2921951714 -11.5102071505 1 - 1.0000000000e+08 8.1577217310e+09 0.6000000000 -7.0718360599 -11.0958536312 1 - 1.0000000000e+08 9.0320107014e+09 0.6000000000 -7.9295315145 -10.7329003290 1 - 1.0000000000e+08 1.0000000000e+10 0.6000000000 -8.7971964146 -10.4475907912 1 - 1.0000000000e+09 4.0000000000e+09 0.6000000000 -2.3083421545 -15.2688921202 0 - 1.0000000000e+09 4.4286927156e+09 0.6000000000 -2.6136984528 -14.9838716952 1 - 1.0000000000e+09 4.9033297922e+09 0.6000000000 -2.9580418277 -14.6625632172 1 - 1.0000000000e+09 5.4288352332e+09 0.6000000000 -3.3462194558 -14.3006607811 1 - 1.0000000000e+09 6.0106607628e+09 0.6000000000 -3.7836697385 -13.8934059181 1 - 1.0000000000e+09 6.6548423840e+09 0.6000000000 -4.2764929007 -13.4361690878 1 - 1.0000000000e+09 7.3680629973e+09 0.6000000000 -4.8315235512 -12.9246342546 1 - 1.0000000000e+09 8.1577217310e+09 0.6000000000 -5.4563462465 -12.3575678826 1 - 1.0000000000e+09 9.0320107014e+09 0.6000000000 -6.1589447365 -11.7514543532 1 - 1.0000000000e+09 1.0000000000e+10 0.6000000000 -6.9457106947 -11.2744531510 1 - 1.0000000000e+10 4.0000000000e+09 0.6000000000 -1.5189462566 -16.1760562434 0 - 1.0000000000e+10 4.4286927156e+09 0.6000000000 -1.7390472875 -15.9723983637 1 - 1.0000000000e+10 4.9033297922e+09 0.6000000000 -1.9890261737 -15.7411015474 1 - 1.0000000000e+10 5.4288352332e+09 0.6000000000 -2.2727530048 -15.4787066920 1 - 1.0000000000e+10 6.0106607628e+09 0.6000000000 -2.5945843809 -15.1812674187 1 - 1.0000000000e+10 6.6548423840e+09 0.6000000000 -2.9594232510 -14.8447471117 1 - 1.0000000000e+10 7.3680629973e+09 0.6000000000 -3.3727859513 -14.4645589678 1 - 1.0000000000e+10 8.1577217310e+09 0.6000000000 -3.8408764922 -14.0361183312 1 - 1.0000000000e+10 9.0320107014e+09 0.6000000000 -4.3706596739 -13.5552479368 1 - 1.0000000000e+10 1.0000000000e+10 0.6000000000 -4.9698574038 -13.0193487012 1 - 1.0000000000e+06 4.0000000000e+09 0.6500000000 -4.5476580930 -13.0130202034 0 - 1.0000000000e+06 4.4286927156e+09 0.6500000000 -5.0933157552 -12.4994327198 1 - 1.0000000000e+06 4.9033297922e+09 0.6500000000 -5.7036990969 -11.9307166976 1 - 1.0000000000e+06 5.4288352332e+09 0.6500000000 -6.3864064622 -11.4022025298 1 - 1.0000000000e+06 6.0106607628e+09 0.6500000000 -7.1496914530 -11.0673499321 1 - 1.0000000000e+06 6.6548423840e+09 0.6500000000 -7.9986226626 -10.7004084978 1 - 1.0000000000e+06 7.3680629973e+09 0.6500000000 -8.8932097423 -10.3705250404 1 - 1.0000000000e+06 8.1577217310e+09 0.6500000000 -9.6962265137 -10.3881460497 1 - 1.0000000000e+06 9.0320107014e+09 0.6500000000 -10.6339946188 -11.1316988307 1 - 1.0000000000e+06 1.0000000000e+10 0.6500000000 -11.8875095425 -12.4230319679 1 - 1.0000000000e+07 4.0000000000e+09 0.6500000000 -3.7541203409 -13.7898292563 0 - 1.0000000000e+07 4.4286927156e+09 0.6500000000 -4.2147089444 -13.3570741629 1 - 1.0000000000e+07 4.9033297922e+09 0.6500000000 -4.7309081291 -12.8729670978 1 - 1.0000000000e+07 5.4288352332e+09 0.6500000000 -5.3093462594 -12.3341760024 1 - 1.0000000000e+07 6.0106607628e+09 0.6500000000 -5.9574209617 -11.7528797740 1 - 1.0000000000e+07 6.6548423840e+09 0.6500000000 -6.6832983514 -11.3537044043 1 - 1.0000000000e+07 7.3680629973e+09 0.6500000000 -7.4941774412 -11.0089926750 1 - 1.0000000000e+07 8.1577217310e+09 0.6500000000 -8.3792738789 -10.6556306624 1 - 1.0000000000e+07 9.0320107014e+09 0.6500000000 -9.2440179595 -10.4606562865 1 - 1.0000000000e+07 1.0000000000e+10 0.6500000000 -10.0502406161 -10.7352829903 1 - 1.0000000000e+08 4.0000000000e+09 0.6500000000 -2.9608994246 -14.5832354025 0 - 1.0000000000e+08 4.4286927156e+09 0.6500000000 -3.3364036594 -14.2319236606 1 - 1.0000000000e+08 4.9033297922e+09 0.6500000000 -3.7584032094 -13.8373692863 1 - 1.0000000000e+08 5.4288352332e+09 0.6500000000 -4.2325502936 -13.3948564059 1 - 1.0000000000e+08 6.0106607628e+09 0.6500000000 -4.7651740780 -12.9000091061 1 - 1.0000000000e+08 6.6548423840e+09 0.6500000000 -5.3633523299 -12.3521395256 1 - 1.0000000000e+08 7.3680629973e+09 0.6500000000 -6.0349472166 -11.7846818829 1 - 1.0000000000e+08 8.1577217310e+09 0.6500000000 -6.7881653002 -11.4262640491 1 - 1.0000000000e+08 9.0320107014e+09 0.6500000000 -7.6263287226 -11.0865974800 1 - 1.0000000000e+08 1.0000000000e+10 0.6500000000 -8.5198307046 -10.7737583776 1 - 1.0000000000e+09 4.0000000000e+09 0.6500000000 -2.1686635684 -15.4135609987 0 - 1.0000000000e+09 4.4286927156e+09 0.6500000000 -2.4590373756 -15.1436767292 1 - 1.0000000000e+09 4.9033297922e+09 0.6500000000 -2.7867931091 -14.8391278543 1 - 1.0000000000e+09 5.4288352332e+09 0.6500000000 -3.1566058958 -14.4957853118 1 - 1.0000000000e+09 6.0106607628e+09 0.6500000000 -3.5737236636 -14.1090945370 1 - 1.0000000000e+09 6.6548423840e+09 0.6500000000 -4.0440360423 -13.6746806784 1 - 1.0000000000e+09 7.3680629973e+09 0.6500000000 -4.5741488964 -13.1886121533 1 - 1.0000000000e+09 8.1577217310e+09 0.6500000000 -5.1714413089 -12.6505373110 1 - 1.0000000000e+09 9.0320107014e+09 0.6500000000 -5.8439870541 -12.0827712623 1 - 1.0000000000e+09 1.0000000000e+10 0.6500000000 -6.5997012180 -11.6763885997 1 - 1.0000000000e+10 4.0000000000e+09 0.6500000000 -1.3794369480 -16.3247058049 0 - 1.0000000000e+10 4.4286927156e+09 0.6500000000 -1.5845483336 -16.1361809551 1 - 1.0000000000e+10 4.9033297922e+09 0.6500000000 -1.8179326271 -15.9216381534 1 - 1.0000000000e+10 5.4288352332e+09 0.6500000000 -2.0832878753 -15.6777918971 1 - 1.0000000000e+10 6.0106607628e+09 0.6500000000 -2.3847801940 -15.4008882990 1 - 1.0000000000e+10 6.6548423840e+09 0.6500000000 -2.7271016331 -15.0871059081 1 - 1.0000000000e+10 7.3680629973e+09 0.6500000000 -3.1155350678 -14.7321023190 1 - 1.0000000000e+10 8.1577217310e+09 0.6500000000 -3.5560266674 -14.3315833730 1 - 1.0000000000e+10 9.0320107014e+09 0.6500000000 -4.0552631768 -13.8817475631 1 - 1.0000000000e+10 1.0000000000e+10 0.6500000000 -4.6207235745 -13.3805488907 1 - 1.0000000000e+06 4.0000000000e+09 0.7000000000 -4.4484985948 -13.1143423592 0 - 1.0000000000e+06 4.4286927156e+09 0.7000000000 -4.9835286252 -12.6117239065 1 - 1.0000000000e+06 4.9033297922e+09 0.7000000000 -5.5821458225 -12.0561590628 1 - 1.0000000000e+06 5.4288352332e+09 0.7000000000 -6.2518304170 -11.5720025581 1 - 1.0000000000e+06 6.0106607628e+09 0.7000000000 -7.0008152023 -11.2561319487 1 - 1.0000000000e+06 6.6548423840e+09 0.7000000000 -7.8361158290 -10.9067031303 1 - 1.0000000000e+06 7.3680629973e+09 0.7000000000 -8.7392063207 -10.5687519060 1 - 1.0000000000e+06 8.1577217310e+09 0.7000000000 -9.6021715720 -10.5229664642 1 - 1.0000000000e+06 9.0320107014e+09 0.7000000000 -10.5729780670 -11.2517541081 1 - 1.0000000000e+06 1.0000000000e+10 0.7000000000 -11.8235708727 -12.5558647155 1 - 1.0000000000e+07 4.0000000000e+09 0.7000000000 -3.6549664050 -13.8914751934 0 - 1.0000000000e+07 4.4286927156e+09 0.7000000000 -4.1049270940 -13.4695635343 1 - 1.0000000000e+07 4.9033297922e+09 0.7000000000 -4.6093594143 -12.9975458241 1 - 1.0000000000e+07 5.4288352332e+09 0.7000000000 -5.1747701304 -12.4726202080 1 - 1.0000000000e+07 6.0106607628e+09 0.7000000000 -5.8084293207 -11.9132729430 1 - 1.0000000000e+07 6.6548423840e+09 0.7000000000 -6.5184076940 -11.5627682654 1 - 1.0000000000e+07 7.3680629973e+09 0.7000000000 -7.3127256418 -11.2391949804 1 - 1.0000000000e+07 8.1577217310e+09 0.7000000000 -8.1900933034 -10.8968168857 1 - 1.0000000000e+07 9.0320107014e+09 0.7000000000 -9.0920365408 -10.6614850113 1 - 1.0000000000e+07 1.0000000000e+10 0.7000000000 -9.9582648664 -10.8798139119 1 - 1.0000000000e+08 4.0000000000e+09 0.7000000000 -2.8617628882 -14.6856624958 0 - 1.0000000000e+08 4.4286927156e+09 0.7000000000 -3.2266383769 -14.3451727037 1 - 1.0000000000e+08 4.9033297922e+09 0.7000000000 -3.6368702524 -13.9626120306 1 - 1.0000000000e+08 5.4288352332e+09 0.7000000000 -4.0979886750 -13.5334267500 1 - 1.0000000000e+08 6.0106607628e+09 0.7000000000 -4.6161879545 -13.0535436297 1 - 1.0000000000e+08 6.6548423840e+09 0.7000000000 -5.1984011458 -12.5233557134 1 - 1.0000000000e+08 7.3680629973e+09 0.7000000000 -5.8523647846 -11.9934410804 1 - 1.0000000000e+08 8.1577217310e+09 0.7000000000 -6.5864090457 -11.6821329272 1 - 1.0000000000e+08 9.0320107014e+09 0.7000000000 -7.4067994674 -11.3654233907 1 - 1.0000000000e+08 1.0000000000e+10 0.7000000000 -8.3013506744 -11.0538131470 1 - 1.0000000000e+09 4.0000000000e+09 0.7000000000 -2.0695808226 -15.5177258691 0 - 1.0000000000e+09 4.4286927156e+09 0.7000000000 -2.3493234195 -15.2586555433 1 - 1.0000000000e+09 4.9033297922e+09 0.7000000000 -2.6653091091 -14.9660813613 1 - 1.0000000000e+09 5.4288352332e+09 0.7000000000 -3.0220909467 -14.6360026400 1 - 1.0000000000e+09 6.0106607628e+09 0.7000000000 -3.4247817098 -14.2640178900 1 - 1.0000000000e+09 6.6548423840e+09 0.7000000000 -3.8791214907 -13.8459607121 1 - 1.0000000000e+09 7.3680629973e+09 0.7000000000 -4.3915520640 -13.3782750928 1 - 1.0000000000e+09 8.1577217310e+09 0.7000000000 -4.9692868399 -12.8617505258 1 - 1.0000000000e+09 9.0320107014e+09 0.7000000000 -5.6203220400 -12.3289973448 1 - 1.0000000000e+09 1.0000000000e+10 0.7000000000 -6.3529920078 -11.9887939867 1 - 1.0000000000e+10 4.0000000000e+09 0.7000000000 -1.2805167507 -16.4326522907 0 - 1.0000000000e+10 4.4286927156e+09 0.7000000000 -1.4749900822 -16.2549383589 1 - 1.0000000000e+10 4.9033297922e+09 0.7000000000 -1.6965976793 -16.0523644525 1 - 1.0000000000e+10 5.4288352332e+09 0.7000000000 -1.9489155237 -15.8217692617 1 - 1.0000000000e+10 6.0106607628e+09 0.7000000000 -2.2359745808 -15.5595370145 1 - 1.0000000000e+10 6.6548423840e+09 0.7000000000 -2.5623172649 -15.2620020378 1 - 1.0000000000e+10 7.3680629973e+09 0.7000000000 -2.9330607877 -14.9250032130 1 - 1.0000000000e+10 8.1577217310e+09 0.7000000000 -3.3539681051 -14.5444748367 1 - 1.0000000000e+10 9.0320107014e+09 0.7000000000 -3.8315255551 -14.1169505317 1 - 1.0000000000e+10 1.0000000000e+10 0.7000000000 -4.3730119545 -13.6410263405 1 + 1.0000000000e+06 4.0000000000e+09 0.4000000000 -12.9555025202 -4.7372062842 0 + 1.0000000000e+06 4.4286927156e+09 0.4000000000 -12.4096892933 -5.3017297034 1 + 1.0000000000e+06 4.9033297922e+09 0.4000000000 -11.8124863348 -5.9247157509 1 + 1.0000000000e+06 5.4288352332e+09 0.4000000000 -11.2186398048 -6.5894751704 1 + 1.0000000000e+06 6.0106607628e+09 0.4000000000 -10.8221627699 -7.3603511110 1 + 1.0000000000e+06 6.6548423840e+09 0.4000000000 -10.4363763722 -8.2252373664 1 + 1.0000000000e+06 7.3680629973e+09 0.4000000000 -10.1445056150 -9.0849662772 1 + 1.0000000000e+06 8.1577217310e+09 0.4000000000 -10.2582950656 -9.7983309243 1 + 1.0000000000e+06 9.0320107014e+09 0.4000000000 -11.0251962339 -10.7011623998 1 + 1.0000000000e+06 1.0000000000e+10 0.4000000000 -12.3061952746 -11.9583139126 1 + 1.0000000000e+07 4.0000000000e+09 0.4000000000 -13.7539410029 -3.9436985166 0 + 1.0000000000e+07 4.4286927156e+09 0.4000000000 -13.2910063983 -4.4245064972 1 + 1.0000000000e+07 4.9033297922e+09 0.4000000000 -12.7738571042 -4.9622430425 1 + 1.0000000000e+07 5.4288352332e+09 0.4000000000 -12.2022519651 -5.5597835137 1 + 1.0000000000e+07 6.0106607628e+09 0.4000000000 -11.5968451663 -6.2091582807 1 + 1.0000000000e+07 6.6548423840e+09 0.4000000000 -11.0838653205 -6.9172956472 1 + 1.0000000000e+07 7.3680629973e+09 0.4000000000 -10.7117195040 -7.7493017684 1 + 1.0000000000e+07 8.1577217310e+09 0.4000000000 -10.3608224687 -8.6311809609 1 + 1.0000000000e+07 9.0320107014e+09 0.4000000000 -10.2512028838 -9.4182840029 1 + 1.0000000000e+07 1.0000000000e+10 0.4000000000 -10.6008153727 -10.1495273727 1 + 1.0000000000e+08 4.0000000000e+09 0.4000000000 -14.5607973473 -3.1500296845 0 + 1.0000000000e+08 4.4286927156e+09 0.4000000000 -14.1824332319 -3.5459083093 1 + 1.0000000000e+08 4.9033297922e+09 0.4000000000 -13.7577662165 -3.9903922193 1 + 1.0000000000e+08 5.4288352332e+09 0.4000000000 -13.2819583479 -4.4889815353 1 + 1.0000000000e+08 6.0106607628e+09 0.4000000000 -12.7514980401 -5.0464198084 1 + 1.0000000000e+08 6.6548423840e+09 0.4000000000 -12.1712468684 -5.6630196539 1 + 1.0000000000e+08 7.3680629973e+09 0.4000000000 -11.5722427309 -6.3289690262 1 + 1.0000000000e+08 8.1577217310e+09 0.4000000000 -11.0954919154 -7.0732199085 1 + 1.0000000000e+08 9.0320107014e+09 0.4000000000 -10.7313790717 -7.9307043937 1 + 1.0000000000e+08 1.0000000000e+10 0.4000000000 -10.4459234785 -8.7985272846 1 + 1.0000000000e+09 4.0000000000e+09 0.4000000000 -15.3871516209 -2.3563444183 0 + 1.0000000000e+09 4.4286927156e+09 0.4000000000 -15.0933118549 -2.6671723129 1 + 1.0000000000e+09 4.9033297922e+09 0.4000000000 -14.7621490218 -3.0175641914 1 + 1.0000000000e+09 5.4288352332e+09 0.4000000000 -14.3892566375 -3.4124048451 1 + 1.0000000000e+09 6.0106607628e+09 0.4000000000 -13.9696328300 -3.8570453479 1 + 1.0000000000e+09 6.6548423840e+09 0.4000000000 -13.4990892428 -4.3569663734 1 + 1.0000000000e+09 7.3680629973e+09 0.4000000000 -12.9751070003 -4.9165801597 1 + 1.0000000000e+09 8.1577217310e+09 0.4000000000 -12.4029615892 -5.5362921581 1 + 1.0000000000e+09 9.0320107014e+09 0.4000000000 -11.8075492526 -6.2097916682 1 + 1.0000000000e+09 1.0000000000e+10 0.4000000000 -11.2831770765 -6.9503077457 1 + 1.0000000000e+10 4.0000000000e+09 0.4000000000 -16.2582598091 -1.5626567041 0 + 1.0000000000e+10 4.4286927156e+09 0.4000000000 -16.0486738742 -1.7884208125 1 + 1.0000000000e+10 4.9033297922e+09 0.4000000000 -15.8108280364 -2.0446360334 1 + 1.0000000000e+10 5.4288352332e+09 0.4000000000 -15.5412395104 -2.3352407233 1 + 1.0000000000e+10 6.0106607628e+09 0.4000000000 -15.2357440910 -2.6646600961 1 + 1.0000000000e+10 6.6548423840e+09 0.4000000000 -14.8903553197 -3.0378300140 1 + 1.0000000000e+10 7.3680629973e+09 0.4000000000 -14.5003230698 -3.4601446829 1 + 1.0000000000e+10 8.1577217310e+09 0.4000000000 -14.0614570074 -3.9371817305 1 + 1.0000000000e+10 9.0320107014e+09 0.4000000000 -13.5711724139 -4.4739432697 1 + 1.0000000000e+10 1.0000000000e+10 0.4000000000 -13.0312175088 -5.0733655762 1 + 1.0000000000e+06 4.0000000000e+09 0.4500000000 -12.6199618051 -5.0493825987 0 + 1.0000000000e+06 4.4286927156e+09 0.4500000000 -12.0411581959 -5.6445822151 1 + 1.0000000000e+06 4.9033297922e+09 0.4500000000 -11.4232312197 -6.2868479094 1 + 1.0000000000e+06 5.4288352332e+09 0.4500000000 -10.8518428397 -6.9298657583 1 + 1.0000000000e+06 6.0106607628e+09 0.4500000000 -10.4348708730 -7.7172921982 1 + 1.0000000000e+06 6.6548423840e+09 0.4500000000 -10.0424621870 -8.5877955647 1 + 1.0000000000e+06 7.3680629973e+09 0.4500000000 -9.8849946892 -9.3214605955 1 + 1.0000000000e+06 8.1577217310e+09 0.4500000000 -10.1350747780 -9.9053651295 1 + 1.0000000000e+06 9.0320107014e+09 0.4500000000 -10.9317730375 -10.7720016856 1 + 1.0000000000e+06 1.0000000000e+10 0.4500000000 -12.2046629248 -12.0333675970 1 + 1.0000000000e+07 4.0000000000e+09 0.4500000000 -13.4182964403 -4.2562148091 0 + 1.0000000000e+07 4.4286927156e+09 0.4500000000 -12.9196141763 -4.7702516152 1 + 1.0000000000e+07 4.9033297922e+09 0.4500000000 -12.3646700488 -5.3431239685 1 + 1.0000000000e+07 5.4288352332e+09 0.4500000000 -11.7607919859 -5.9706982948 1 + 1.0000000000e+07 6.0106607628e+09 0.4500000000 -11.1529755125 -6.6222947523 1 + 1.0000000000e+07 6.6548423840e+09 0.4500000000 -10.6533363164 -7.3144541389 1 + 1.0000000000e+07 7.3680629973e+09 0.4500000000 -10.2538115130 -8.1710937198 1 + 1.0000000000e+07 8.1577217310e+09 0.4500000000 -9.9753897162 -8.9845986143 1 + 1.0000000000e+07 9.0320107014e+09 0.4500000000 -10.0361542054 -9.6115697957 1 + 1.0000000000e+07 1.0000000000e+10 0.4500000000 -10.4770937073 -10.2529776198 1 + 1.0000000000e+08 4.0000000000e+09 0.4500000000 -14.2257599744 -3.4625787946 0 + 1.0000000000e+08 4.4286927156e+09 0.4500000000 -13.8113628832 -3.8919431610 1 + 1.0000000000e+08 4.9033297922e+09 0.4500000000 -13.3469605423 -4.3733521392 1 + 1.0000000000e+08 5.4288352332e+09 0.4500000000 -12.8281601546 -4.9118963225 1 + 1.0000000000e+08 6.0106607628e+09 0.4500000000 -12.2549827756 -5.5090675692 1 + 1.0000000000e+08 6.6548423840e+09 0.4500000000 -11.6452553278 -6.1532183845 1 + 1.0000000000e+08 7.3680629973e+09 0.4500000000 -11.0519169738 -6.8138046104 1 + 1.0000000000e+08 8.1577217310e+09 0.4500000000 -10.5744119694 -7.5537001210 1 + 1.0000000000e+08 9.0320107014e+09 0.4500000000 -10.2097691952 -8.4106502242 1 + 1.0000000000e+08 1.0000000000e+10 0.4500000000 -10.0527955898 -9.1577337848 1 + 1.0000000000e+09 4.0000000000e+09 0.4500000000 -15.0536228361 -2.6688948469 0 + 1.0000000000e+09 4.4286927156e+09 0.4500000000 -14.7237134035 -3.0132309283 1 + 1.0000000000e+09 4.9033297922e+09 0.4500000000 -14.3526160830 -3.4007197563 1 + 1.0000000000e+09 5.4288352332e+09 0.4500000000 -13.9355877601 -3.8365577468 1 + 1.0000000000e+09 6.0106607628e+09 0.4500000000 -13.4675881527 -4.3261360138 1 + 1.0000000000e+09 6.6548423840e+09 0.4500000000 -12.9456617289 -4.8738185709 1 + 1.0000000000e+09 7.3680629973e+09 0.4500000000 -12.3724764750 -5.4792958153 1 + 1.0000000000e+09 8.1577217310e+09 0.4500000000 -11.7661588527 -6.1311892901 1 + 1.0000000000e+09 9.0320107014e+09 0.4500000000 -11.1668612108 -6.8085657270 1 + 1.0000000000e+09 1.0000000000e+10 0.4500000000 -10.6512855619 -7.5351949181 1 + 1.0000000000e+10 4.0000000000e+09 0.4500000000 -15.9281485212 -1.8752022449 0 + 1.0000000000e+10 4.4286927156e+09 0.4500000000 -15.6824856056 -2.1344670415 1 + 1.0000000000e+10 4.9033297922e+09 0.4500000000 -15.4047001726 -2.4277705489 1 + 1.0000000000e+10 5.4288352332e+09 0.4500000000 -15.0909188309 -2.7594143274 1 + 1.0000000000e+10 6.0106607628e+09 0.4500000000 -14.7366091017 -3.1341694060 1 + 1.0000000000e+10 6.6548423840e+09 0.4500000000 -14.3375648595 -3.5571890306 1 + 1.0000000000e+10 7.3680629973e+09 0.4500000000 -13.8893261386 -4.0336347956 1 + 1.0000000000e+10 8.1577217310e+09 0.4500000000 -13.3893312881 -4.5676563223 1 + 1.0000000000e+10 9.0320107014e+09 0.4500000000 -12.8393727491 -5.1603436520 1 + 1.0000000000e+10 1.0000000000e+10 0.4500000000 -12.2492192264 -5.8073345687 1 + 1.0000000000e+06 4.0000000000e+09 0.5000000000 -8.0664287239 -9.4890300703 0 + 1.0000000000e+06 4.4286927156e+09 0.5000000000 -8.2111123603 -9.3757297497 1 + 1.0000000000e+06 4.9033297922e+09 0.5000000000 -8.3918399879 -9.2344583805 1 + 1.0000000000e+06 5.4288352332e+09 0.5000000000 -8.7773708533 -8.9447667659 1 + 1.0000000000e+06 6.0106607628e+09 0.5000000000 -9.0637265807 -9.0647441208 1 + 1.0000000000e+06 6.6548423840e+09 0.5000000000 -9.3058731093 -9.3070059375 1 + 1.0000000000e+06 7.3680629973e+09 0.5000000000 -9.5983915599 -9.5996554213 1 + 1.0000000000e+06 8.1577217310e+09 0.5000000000 -10.0168541391 -10.0182626012 1 + 1.0000000000e+06 9.0320107014e+09 0.5000000000 -10.8474197344 -10.8489878418 1 + 1.0000000000e+06 1.0000000000e+10 0.5000000000 -12.1138199091 -12.1155643414 1 + 1.0000000000e+07 4.0000000000e+09 0.5000000000 -7.8839110912 -9.6536804797 0 + 1.0000000000e+07 4.4286927156e+09 0.5000000000 -8.0019179846 -9.5630334178 1 + 1.0000000000e+07 4.9033297922e+09 0.5000000000 -8.1354122155 -9.4609849129 1 + 1.0000000000e+07 5.4288352332e+09 0.5000000000 -8.2961986053 -9.3384887122 1 + 1.0000000000e+07 6.0106607628e+09 0.5000000000 -8.5443326059 -9.1484326222 1 + 1.0000000000e+07 6.6548423840e+09 0.5000000000 -8.9669523913 -8.9714790675 1 + 1.0000000000e+07 7.3680629973e+09 0.5000000000 -9.2004322393 -9.2015703723 1 + 1.0000000000e+07 8.1577217310e+09 0.5000000000 -9.4726257222 -9.4739144064 1 + 1.0000000000e+07 9.0320107014e+09 0.5000000000 -9.8194771269 -9.8209313702 1 + 1.0000000000e+07 1.0000000000e+10 0.5000000000 -10.3609081088 -10.3625443016 1 + 1.0000000000e+08 4.0000000000e+09 0.5000000000 -7.7564252814 -9.7786841044 0 + 1.0000000000e+08 4.4286927156e+09 0.5000000000 -7.8492022509 -9.7096714074 1 + 1.0000000000e+08 4.9033297922e+09 0.5000000000 -7.9527960406 -9.6330305743 1 + 1.0000000000e+08 5.4288352332e+09 0.5000000000 -8.0692464283 -9.5476093499 1 + 1.0000000000e+08 6.0106607628e+09 0.5000000000 -8.2063900231 -9.4473474699 1 + 1.0000000000e+08 6.6548423840e+09 0.5000000000 -8.3860213855 -9.3159021691 1 + 1.0000000000e+08 7.3680629973e+09 0.5000000000 -8.6892088458 -9.0970021782 1 + 1.0000000000e+08 8.1577217310e+09 0.5000000000 -9.0475207044 -9.0501554594 1 + 1.0000000000e+08 9.0320107014e+09 0.5000000000 -9.2986740371 -9.2997699354 1 + 1.0000000000e+08 1.0000000000e+10 0.5000000000 -9.5981877902 -9.5994826015 1 + 1.0000000000e+09 4.0000000000e+09 0.5000000000 -7.7470629179 -9.8201516603 0 + 1.0000000000e+09 4.4286927156e+09 0.5000000000 -7.8147769063 -9.7725305533 1 + 1.0000000000e+09 4.9033297922e+09 0.5000000000 -7.8899687970 -9.7201023871 1 + 1.0000000000e+09 5.4288352332e+09 0.5000000000 -7.9729788592 -9.6630648482 1 + 1.0000000000e+09 6.0106607628e+09 0.5000000000 -8.0659661802 -9.5999366178 1 + 1.0000000000e+09 6.6548423840e+09 0.5000000000 -8.1710732359 -9.5300539756 1 + 1.0000000000e+09 7.3680629973e+09 0.5000000000 -8.2980124985 -9.4462720725 1 + 1.0000000000e+09 8.1577217310e+09 0.5000000000 -8.4687660241 -9.3330282394 1 + 1.0000000000e+09 9.0320107014e+09 0.5000000000 -8.7320500817 -9.1630033340 1 + 1.0000000000e+09 1.0000000000e+10 0.5000000000 -9.0632943617 -9.0828318755 1 + 1.0000000000e+10 4.0000000000e+09 0.5000000000 -7.9880016295 -9.6879405752 1 + 1.0000000000e+10 4.4286927156e+09 0.5000000000 -8.0302317824 -9.6619334095 1 + 1.0000000000e+10 4.9033297922e+09 0.5000000000 -8.0763342363 -9.6342682341 1 + 1.0000000000e+10 5.4288352332e+09 0.5000000000 -8.1258456519 -9.6058178278 1 + 1.0000000000e+10 6.0106607628e+09 0.5000000000 -8.1795079441 -9.5762500117 1 + 1.0000000000e+10 6.6548423840e+09 0.5000000000 -8.2365071577 -9.5472468447 1 + 1.0000000000e+10 7.3680629973e+09 0.5000000000 -8.2988571017 -9.5177368528 1 + 1.0000000000e+10 8.1577217310e+09 0.5000000000 -8.3695493035 -9.4863947395 1 + 1.0000000000e+10 9.0320107014e+09 0.5000000000 -8.4559430779 -9.4487939792 1 + 1.0000000000e+10 1.0000000000e+10 0.5000000000 -8.5723778963 -9.3960835685 1 + 1.0000000000e+06 4.0000000000e+09 0.5500000000 -4.9263567583 -12.6306847766 0 + 1.0000000000e+06 4.4286927156e+09 0.5500000000 -5.5125982823 -12.0759967428 1 + 1.0000000000e+06 4.9033297922e+09 0.5500000000 -6.1679059616 -11.4605293762 1 + 1.0000000000e+06 5.4288352332e+09 0.5500000000 -6.9002510954 -10.8361899605 1 + 1.0000000000e+06 6.0106607628e+09 0.5500000000 -7.7162795920 -10.4358987388 1 + 1.0000000000e+06 6.6548423840e+09 0.5500000000 -8.5866665411 -10.0436084114 1 + 1.0000000000e+06 7.3680629973e+09 0.5500000000 -9.3202024829 -9.8862686067 1 + 1.0000000000e+06 8.1577217310e+09 0.5500000000 -9.9039624201 -10.1364903176 1 + 1.0000000000e+06 9.0320107014e+09 0.5500000000 -10.7704366546 -10.9333444696 1 + 1.0000000000e+06 1.0000000000e+10 0.5500000000 -12.0316256213 -12.2064099419 1 + 1.0000000000e+07 4.0000000000e+09 0.5500000000 -4.1328499285 -13.4067273016 0 + 1.0000000000e+07 4.4286927156e+09 0.5500000000 -4.6340211015 -12.9330486653 1 + 1.0000000000e+07 4.9033297922e+09 0.5500000000 -5.1951522570 -12.4035178556 1 + 1.0000000000e+07 5.4288352332e+09 0.5500000000 -5.8233286811 -11.8138168037 1 + 1.0000000000e+07 6.0106607628e+09 0.5500000000 -6.5263096328 -11.1696374781 1 + 1.0000000000e+07 6.6548423840e+09 0.5500000000 -7.3118205883 -10.6533164642 1 + 1.0000000000e+07 7.3680629973e+09 0.5500000000 -8.1699653523 -10.2549768923 1 + 1.0000000000e+07 8.1577217310e+09 0.5500000000 -8.9833218276 -9.9767011458 1 + 1.0000000000e+07 9.0320107014e+09 0.5500000000 -9.6101289590 -10.0376261257 1 + 1.0000000000e+07 1.0000000000e+10 0.5500000000 -10.2513560243 -10.4787469547 1 + 1.0000000000e+08 4.0000000000e+09 0.5500000000 -3.3394222565 -14.1986157627 0 + 1.0000000000e+08 4.4286927156e+09 0.5500000000 -3.7555058127 -13.8064185732 1 + 1.0000000000e+08 4.9033297922e+09 0.5500000000 -4.2224338348 -13.3665796903 1 + 1.0000000000e+08 5.4288352332e+09 0.5500000000 -4.7463244461 -12.8738625679 1 + 1.0000000000e+08 6.0106607628e+09 0.5500000000 -5.3340170370 -12.3231580820 1 + 1.0000000000e+08 6.6548423840e+09 0.5500000000 -5.9930630461 -11.7121630276 1 + 1.0000000000e+08 7.3680629973e+09 0.5500000000 -6.7314189358 -11.0586117870 1 + 1.0000000000e+08 8.1577217310e+09 0.5500000000 -7.5518998377 -10.5748765825 1 + 1.0000000000e+08 9.0320107014e+09 0.5500000000 -8.4095851779 -10.2109427834 1 + 1.0000000000e+08 1.0000000000e+10 0.5500000000 -9.1564767532 -10.0541540546 1 + 1.0000000000e+09 4.0000000000e+09 0.5500000000 -2.5470603942 -15.0251960068 0 + 1.0000000000e+09 4.4286927156e+09 0.5500000000 -2.8780137696 -14.7144476485 1 + 1.0000000000e+09 4.9033297922e+09 0.5500000000 -3.2506978411 -14.3646520097 1 + 1.0000000000e+09 5.4288352332e+09 0.5500000000 -3.6702538870 -13.9712053555 1 + 1.0000000000e+09 6.0106607628e+09 0.5500000000 -4.1424458457 -13.5290133661 1 + 1.0000000000e+09 6.6548423840e+09 0.5500000000 -4.6737326990 -13.0330537713 1 + 1.0000000000e+09 7.3680629973e+09 0.5500000000 -5.2713212051 -12.4785205527 1 + 1.0000000000e+09 8.1577217310e+09 0.5500000000 -5.9429385084 -11.8635582061 1 + 1.0000000000e+09 9.0320107014e+09 0.5500000000 -6.6949519372 -11.2026555846 1 + 1.0000000000e+09 1.0000000000e+10 0.5500000000 -7.5247904699 -10.6481506633 1 + 1.0000000000e+10 4.0000000000e+09 0.5500000000 -1.7575285284 -15.9281119439 1 + 1.0000000000e+10 4.4286927156e+09 0.5500000000 -2.0032273068 -15.6987367709 1 + 1.0000000000e+10 4.9033297922e+09 0.5500000000 -2.2815466527 -15.4389665423 1 + 1.0000000000e+10 5.4288352332e+09 0.5500000000 -2.5966508208 -15.1450468884 1 + 1.0000000000e+10 6.0106607628e+09 0.5500000000 -2.9532220856 -14.8127045048 1 + 1.0000000000e+10 6.6548423840e+09 0.5500000000 -3.3565239470 -14.4375393754 1 + 1.0000000000e+10 7.3680629973e+09 0.5500000000 -3.8124716667 -14.0145582470 1 + 1.0000000000e+10 8.1577217310e+09 0.5500000000 -4.3277071804 -13.5387148010 1 + 1.0000000000e+10 9.0320107014e+09 0.5500000000 -4.9096377919 -13.0053180906 1 + 1.0000000000e+10 1.0000000000e+10 0.5500000000 -5.5661097737 -12.4114337010 1 + 1.0000000000e+06 4.0000000000e+09 0.6000000000 -4.6874372498 -12.8713326826 0 + 1.0000000000e+06 4.4286927156e+09 0.6000000000 -5.2480726287 -12.3424870395 1 + 1.0000000000e+06 4.9033297922e+09 0.6000000000 -5.8750376557 -11.7561606656 1 + 1.0000000000e+06 5.4288352332e+09 0.6000000000 -6.5760898652 -11.1834318133 1 + 1.0000000000e+06 6.0106607628e+09 0.6000000000 -7.3593425290 -10.8232051193 1 + 1.0000000000e+06 6.6548423840e+09 0.6000000000 -8.2241108562 -10.4375374974 1 + 1.0000000000e+06 7.3680629973e+09 0.6000000000 -9.0837111803 -10.1457926302 1 + 1.0000000000e+06 8.1577217310e+09 0.6000000000 -9.7969327525 -10.2597190165 1 + 1.0000000000e+06 9.0320107014e+09 0.6000000000 -10.6996001970 -11.0267712343 1 + 1.0000000000e+06 1.0000000000e+10 0.6000000000 -11.9565742814 -12.3079450256 1 + 1.0000000000e+07 4.0000000000e+09 0.6000000000 -3.8939383372 -13.6477417068 0 + 1.0000000000e+07 4.4286927156e+09 0.6000000000 -4.3695027901 -13.1998278093 1 + 1.0000000000e+07 4.9033297922e+09 0.6000000000 -4.9022832206 -12.6988733371 1 + 1.0000000000e+07 5.4288352332e+09 0.6000000000 -5.4990786384 -12.1410754226 1 + 1.0000000000e+07 6.0106607628e+09 0.6000000000 -6.1674541533 -11.5347440361 1 + 1.0000000000e+07 6.6548423840e+09 0.6000000000 -6.9156298387 -11.0830753295 1 + 1.0000000000e+07 7.3680629973e+09 0.6000000000 -7.7481817497 -10.7129141315 1 + 1.0000000000e+07 8.1577217310e+09 0.6000000000 -8.6299116983 -10.3621615417 1 + 1.0000000000e+07 9.0320107014e+09 0.6000000000 -9.4168075327 -10.2525633805 1 + 1.0000000000e+07 1.0000000000e+10 0.6000000000 -10.1478709457 -10.6024085068 1 + 1.0000000000e+08 4.0000000000e+09 0.6000000000 -3.1005259273 -14.4405028517 0 + 1.0000000000e+08 4.4286927156e+09 0.6000000000 -3.4910018428 -14.0740545826 1 + 1.0000000000e+08 4.9033297922e+09 0.6000000000 -3.9295779936 -13.6627315281 1 + 1.0000000000e+08 5.4288352332e+09 0.6000000000 -4.4220785916 -13.2016151637 1 + 1.0000000000e+08 6.0106607628e+09 0.6000000000 -4.9750223847 -12.6860142992 1 + 1.0000000000e+08 6.6548423840e+09 0.6000000000 -5.5956833131 -12.1143859292 1 + 1.0000000000e+08 7.3680629973e+09 0.6000000000 -6.2923470974 -11.5100241148 1 + 1.0000000000e+08 8.1577217310e+09 0.6000000000 -7.0719798684 -11.0955902793 1 + 1.0000000000e+08 9.0320107014e+09 0.6000000000 -7.9296619961 -10.7326405101 1 + 1.0000000000e+08 1.0000000000e+10 0.6000000000 -8.7972934615 -10.4473618809 1 + 1.0000000000e+09 4.0000000000e+09 0.6000000000 -2.3082235666 -15.2690142111 0 + 1.0000000000e+09 4.4286927156e+09 0.6000000000 -2.6135665217 -14.9840071646 1 + 1.0000000000e+09 4.9033297922e+09 0.6000000000 -2.9578960344 -14.6627124614 1 + 1.0000000000e+09 5.4288352332e+09 0.6000000000 -3.3460592681 -14.3008241461 1 + 1.0000000000e+09 6.0106607628e+09 0.6000000000 -3.7834946070 -13.8935836474 1 + 1.0000000000e+09 6.6548423840e+09 0.6000000000 -4.2763022553 -13.4363611962 1 + 1.0000000000e+09 7.3680629973e+09 0.6000000000 -4.8313168012 -12.9248402102 1 + 1.0000000000e+09 8.1577217310e+09 0.6000000000 -5.4561228018 -12.3577854766 1 + 1.0000000000e+09 9.0320107014e+09 0.6000000000 -6.1587039832 -11.7516690091 1 + 1.0000000000e+09 1.0000000000e+10 0.6000000000 -6.9454524602 -11.2745753094 1 + 1.0000000000e+10 4.0000000000e+09 0.6000000000 -1.5188716432 -16.1761350955 0 + 1.0000000000e+10 4.4286927156e+09 0.6000000000 -1.7389525108 -15.9724978562 1 + 1.0000000000e+10 4.9033297922e+09 0.6000000000 -1.9889099828 -15.7412229527 1 + 1.0000000000e+10 5.4288352332e+09 0.6000000000 -2.2726142070 -15.4788512141 1 + 1.0000000000e+10 6.0106607628e+09 0.6000000000 -2.5944218273 -15.1814361997 1 + 1.0000000000e+10 6.6548423840e+09 0.6000000000 -2.9592358248 -14.8449412295 1 + 1.0000000000e+10 7.3680629973e+09 0.6000000000 -3.3725725549 -14.4647794117 1 + 1.0000000000e+10 8.1577217310e+09 0.6000000000 -3.8406360368 -14.0363659173 1 + 1.0000000000e+10 9.0320107014e+09 0.6000000000 -4.3703910761 -13.5555230690 1 + 1.0000000000e+10 1.0000000000e+10 0.6000000000 -4.9695596341 -13.0196506972 1 + 1.0000000000e+06 4.0000000000e+09 0.6500000000 -4.5476796742 -13.0130039942 0 + 1.0000000000e+06 4.4286927156e+09 0.6500000000 -5.0933362711 -12.4994174288 1 + 1.0000000000e+06 4.9033297922e+09 0.6500000000 -5.7037185995 -11.9307011919 1 + 1.0000000000e+06 5.4288352332e+09 0.6500000000 -6.3864250027 -11.4022341176 1 + 1.0000000000e+06 6.0106607628e+09 0.6500000000 -7.1497090923 -11.0673819183 1 + 1.0000000000e+06 6.6548423840e+09 0.6500000000 -7.9986396847 -10.7004385555 1 + 1.0000000000e+06 7.3680629973e+09 0.6500000000 -8.8932281298 -10.3705502418 1 + 1.0000000000e+06 8.1577217310e+09 0.6500000000 -9.6962470719 -10.3881605331 1 + 1.0000000000e+06 9.0320107014e+09 0.6500000000 -10.6340099963 -11.1317007071 1 + 1.0000000000e+06 1.0000000000e+10 0.6500000000 -11.8875232376 -12.4230320085 1 + 1.0000000000e+07 4.0000000000e+09 0.6500000000 -3.7541883557 -13.7897569618 0 + 1.0000000000e+07 4.4286927156e+09 0.6500000000 -4.2147736230 -13.3570050875 1 + 1.0000000000e+07 4.9033297922e+09 0.6500000000 -4.7309696317 -12.8729015419 1 + 1.0000000000e+07 5.4288352332e+09 0.6500000000 -5.3094047388 -12.3341136595 1 + 1.0000000000e+07 6.0106607628e+09 0.6500000000 -5.9574765589 -11.7528091110 1 + 1.0000000000e+07 6.6548423840e+09 0.6500000000 -6.6833511744 -11.3535641629 1 + 1.0000000000e+07 7.3680629973e+09 0.6500000000 -7.4942271332 -11.0088492096 1 + 1.0000000000e+07 8.1577217310e+09 0.6500000000 -8.3793161375 -10.6554902076 1 + 1.0000000000e+07 9.0320107014e+09 0.6500000000 -9.2440396955 -10.4605434294 1 + 1.0000000000e+07 1.0000000000e+10 0.6500000000 -10.0502569485 -10.7352236557 1 + 1.0000000000e+08 4.0000000000e+09 0.6500000000 -2.9607906231 -14.5833440150 0 + 1.0000000000e+08 4.4286927156e+09 0.6500000000 -3.3362864792 -14.2320397874 1 + 1.0000000000e+08 4.9033297922e+09 0.6500000000 -3.7582773168 -13.8374930268 1 + 1.0000000000e+08 5.4288352332e+09 0.6500000000 -4.2324153362 -13.3949878596 1 + 1.0000000000e+08 6.0106607628e+09 0.6500000000 -4.7650296834 -12.9001483736 1 + 1.0000000000e+08 6.6548423840e+09 0.6500000000 -5.3631981019 -12.3522858891 1 + 1.0000000000e+08 7.3680629973e+09 0.6500000000 -6.0351054434 -11.7844816590 1 + 1.0000000000e+08 8.1577217310e+09 0.6500000000 -6.7883154852 -11.4259937474 1 + 1.0000000000e+08 9.0320107014e+09 0.6500000000 -7.6264687220 -11.0863271604 1 + 1.0000000000e+08 1.0000000000e+10 0.6500000000 -8.5199483964 -10.7735064152 1 + 1.0000000000e+09 4.0000000000e+09 0.6500000000 -2.1685452784 -15.4136828613 0 + 1.0000000000e+09 4.4286927156e+09 0.6500000000 -2.4589055196 -15.1438122185 1 + 1.0000000000e+09 4.9033297922e+09 0.6500000000 -2.7866471567 -14.8392773843 1 + 1.0000000000e+09 5.4288352332e+09 0.6500000000 -3.1564453047 -14.4959492459 1 + 1.0000000000e+09 6.0106607628e+09 0.6500000000 -3.5735478744 -14.1092731334 1 + 1.0000000000e+09 6.6548423840e+09 0.6500000000 -4.0438444752 -13.6748739519 1 + 1.0000000000e+09 7.3680629973e+09 0.6500000000 -4.5739409490 -13.1888195069 1 + 1.0000000000e+09 8.1577217310e+09 0.6500000000 -5.1712163626 -12.6507561189 1 + 1.0000000000e+09 9.0320107014e+09 0.6500000000 -5.8437444563 -12.0829812993 1 + 1.0000000000e+09 1.0000000000e+10 0.6500000000 -6.5994405223 -11.6765113110 1 + 1.0000000000e+10 4.0000000000e+09 0.6500000000 -1.3793655230 -16.3247814599 0 + 1.0000000000e+10 4.4286927156e+09 0.6500000000 -1.5844565479 -16.1362774538 1 + 1.0000000000e+10 4.9033297922e+09 0.6500000000 -1.8178191786 -15.9217568225 1 + 1.0000000000e+10 5.4288352332e+09 0.6500000000 -2.0831515247 -15.6779339909 1 + 1.0000000000e+10 6.0106607628e+09 0.6500000000 -2.3846197509 -15.4010550070 1 + 1.0000000000e+10 6.6548423840e+09 0.6500000000 -2.7269159432 -15.0872983533 1 + 1.0000000000e+10 7.3680629973e+09 0.6500000000 -3.1153229995 -14.7323215373 1 + 1.0000000000e+10 8.1577217310e+09 0.6500000000 -3.5557871010 -14.3318302289 1 + 1.0000000000e+10 9.0320107014e+09 0.6500000000 -4.0549949959 -13.8820225099 1 + 1.0000000000e+10 1.0000000000e+10 0.6500000000 -4.6204256789 -13.3808512813 1 + 1.0000000000e+06 4.0000000000e+09 0.7000000000 -4.4485209891 -13.1143251178 0 + 1.0000000000e+06 4.4286927156e+09 0.7000000000 -4.9835499142 -12.6117081118 1 + 1.0000000000e+06 4.9033297922e+09 0.7000000000 -5.5821660601 -12.0561394500 1 + 1.0000000000e+06 5.4288352332e+09 0.7000000000 -6.2518496554 -11.5720368075 1 + 1.0000000000e+06 6.0106607628e+09 0.7000000000 -7.0008334983 -11.2561651451 1 + 1.0000000000e+06 6.6548423840e+09 0.7000000000 -7.8361333603 -10.9067344717 1 + 1.0000000000e+06 7.3680629973e+09 0.7000000000 -8.7392243787 -10.5687792382 1 + 1.0000000000e+06 8.1577217310e+09 0.7000000000 -9.6021916703 -10.5229827099 1 + 1.0000000000e+06 9.0320107014e+09 0.7000000000 -10.5729938190 -11.2517560750 1 + 1.0000000000e+06 1.0000000000e+10 0.7000000000 -11.8235850796 -12.5558647574 1 + 1.0000000000e+07 4.0000000000e+09 0.7000000000 -3.6550369761 -13.8914003268 0 + 1.0000000000e+07 4.4286927156e+09 0.7000000000 -4.1049942046 -13.4694919116 1 + 1.0000000000e+07 4.9033297922e+09 0.7000000000 -4.6094232303 -12.9974776841 1 + 1.0000000000e+07 5.4288352332e+09 0.7000000000 -5.1748308102 -12.4725550639 1 + 1.0000000000e+07 6.0106607628e+09 0.7000000000 -5.8084870128 -11.9131933888 1 + 1.0000000000e+07 6.6548423840e+09 0.7000000000 -6.5184625267 -11.5626253210 1 + 1.0000000000e+07 7.3680629973e+09 0.7000000000 -7.3127774909 -11.2390485970 1 + 1.0000000000e+07 8.1577217310e+09 0.7000000000 -8.1901397748 -10.8966710259 1 + 1.0000000000e+07 9.0320107014e+09 0.7000000000 -9.0920672122 -10.6613615921 1 + 1.0000000000e+07 1.0000000000e+10 0.7000000000 -9.9582875767 -10.8797496537 1 + 1.0000000000e+08 4.0000000000e+09 0.7000000000 -2.8616533998 -14.6857719683 0 + 1.0000000000e+08 4.4286927156e+09 0.7000000000 -3.2265203805 -14.3452898454 1 + 1.0000000000e+08 4.9033297922e+09 0.7000000000 -3.6367434104 -13.9627369356 1 + 1.0000000000e+08 5.4288352332e+09 0.7000000000 -4.0978526309 -13.5335594926 1 + 1.0000000000e+08 6.0106607628e+09 0.7000000000 -4.6160423318 -13.0536842219 1 + 1.0000000000e+08 6.6548423840e+09 0.7000000000 -5.1982455453 -12.5235029578 1 + 1.0000000000e+08 7.3680629973e+09 0.7000000000 -5.8525289991 -11.9932156996 1 + 1.0000000000e+08 8.1577217310e+09 0.7000000000 -6.5865650606 -11.6818564066 1 + 1.0000000000e+08 9.0320107014e+09 0.7000000000 -7.4069463043 -11.3651455549 1 + 1.0000000000e+08 1.0000000000e+10 0.7000000000 -8.3014810042 -11.0535468230 1 + 1.0000000000e+09 4.0000000000e+09 0.7000000000 -2.0694628671 -15.5178474580 0 + 1.0000000000e+09 4.4286927156e+09 0.7000000000 -2.3491916892 -15.2587909906 1 + 1.0000000000e+09 4.9033297922e+09 0.7000000000 -2.6651630628 -14.9662310977 1 + 1.0000000000e+09 5.4288352332e+09 0.7000000000 -3.0219300317 -14.6361670450 1 + 1.0000000000e+09 6.0106607628e+09 0.7000000000 -3.4246053575 -14.2641972346 1 + 1.0000000000e+09 6.6548423840e+09 0.7000000000 -3.8789291124 -13.8461550056 1 + 1.0000000000e+09 7.3680629973e+09 0.7000000000 -4.3913430474 -13.3784836488 1 + 1.0000000000e+09 8.1577217310e+09 0.7000000000 -4.9690605511 -12.8619701123 1 + 1.0000000000e+09 9.0320107014e+09 0.7000000000 -5.6200778084 -12.3291976559 1 + 1.0000000000e+09 1.0000000000e+10 0.7000000000 -6.3527292744 -11.9889184559 1 + 1.0000000000e+10 4.0000000000e+09 0.7000000000 -1.2804483934 -16.4327248683 0 + 1.0000000000e+10 4.4286927156e+09 0.7000000000 -1.4749011900 -16.2550319599 1 + 1.0000000000e+10 4.9033297922e+09 0.7000000000 -1.6964869001 -16.0524804559 1 + 1.0000000000e+10 5.4288352332e+09 0.7000000000 -1.9487815726 -15.8219089709 1 + 1.0000000000e+10 6.0106607628e+09 0.7000000000 -2.2358162268 -15.5597016643 1 + 1.0000000000e+10 6.6548423840e+09 0.7000000000 -2.5621333169 -15.2621927956 1 + 1.0000000000e+10 7.3680629973e+09 0.7000000000 -2.9328500817 -14.9252211581 1 + 1.0000000000e+10 8.1577217310e+09 0.7000000000 -3.3537294912 -14.5447208792 1 + 1.0000000000e+10 9.0320107014e+09 0.7000000000 -3.8312578883 -14.1172251618 1 + 1.0000000000e+10 1.0000000000e+10 0.7000000000 -4.3727140954 -13.6413288768 1 AMReX (23.07-395-ge6c93bf22695) finalized diff --git a/unit_test/test_nse/ci-benchmarks/aprox21_ci.out b/unit_test/test_nse/ci-benchmarks/aprox21_ci.out index 1fc3447ff8..7f8d29cdc2 100644 --- a/unit_test/test_nse/ci-benchmarks/aprox21_ci.out +++ b/unit_test/test_nse/ci-benchmarks/aprox21_ci.out @@ -1,7 +1,7 @@ -Initializing AMReX (23.12-21-gef38229189e3)... -AMReX (23.12-21-gef38229189e3) initialized +Initializing AMReX (23.07-395-ge6c93bf22695)... +AMReX (23.07-395-ge6c93bf22695) initialized starting the single zone burn... -0x7ffcb5676e40 +0x7ffee3940620 State Density (g/cm^3): 277355338.4 State Temperature (K): 5197769252 Mass Fraction (H1): 0.4 @@ -27,28 +27,28 @@ Mass Fraction (n): 0.01111111111 Mass Fraction (p): 0.01111111111 electron fraction is 0.5 After solving: -chemical potential of proton is -5.582021138 -chemical potential of neutron is -12.02471977 +chemical potential of proton is -5.581982204 +chemical potential of neutron is -12.02475811 NSE state: H1 : 0 -He3 : 6.728066857e-12 -He4 : 0.002681009009 -C12 : 2.088071581e-08 -N14 : 3.632384684e-13 -O16 : 8.47594681e-08 -Ne20 : 1.345962309e-09 -Mg24 : 5.594617425e-07 -Si28 : 0.001008098348 -S32 : 0.002046870355 -Ar36 : 0.002092144335 -Ca40 : 0.005240157608 -Ti44 : 0.0001839581247 -Cr48 : 0.002037991617 -Cr56 : 7.751434856e-22 -Fe52 : 0.03983919827 -Fe54 : 0.04497244709 -Fe56 : 1.686482626e-05 -Ni56 : 0.8982137413 -n : 9.442515318e-10 -p : 0.001666851761 -AMReX (23.12-21-gef38229189e3) finalized +He3 : 6.726596474e-12 +He4 : 0.002680193707 +C12 : 2.088656806e-08 +N14 : 3.63235315e-13 +O16 : 8.472971401e-08 +Ne20 : 1.346294741e-09 +Mg24 : 5.59648245e-07 +Si28 : 0.001008039758 +S32 : 0.002046314586 +Ar36 : 0.002091462927 +Ca40 : 0.005238622254 +Ti44 : 0.0001839172999 +Cr48 : 0.002037708693 +Cr56 : 7.745054363e-22 +Fe52 : 0.03983694038 +Fe54 : 0.04496220187 +Fe56 : 1.685809858e-05 +Ni56 : 0.898230601 +n : 9.44170726e-10 +p : 0.001666471828 +AMReX (23.07-395-ge6c93bf22695) finalized diff --git a/util/approx_math/Make.package b/util/approx_math/Make.package new file mode 100644 index 0000000000..671e6f25eb --- /dev/null +++ b/util/approx_math/Make.package @@ -0,0 +1 @@ +CEXE_headers += approx_math.H diff --git a/util/approx_math/approx_math.H b/util/approx_math/approx_math.H new file mode 100644 index 0000000000..5dea510c17 --- /dev/null +++ b/util/approx_math/approx_math.H @@ -0,0 +1,84 @@ +#ifndef APPROX_MATH_H +#define APPROX_MATH_H + +#include +#include + +using namespace amrex::literals; + +AMREX_GPU_HOST_DEVICE AMREX_INLINE +amrex::Real fast_atan_1(const amrex::Real x) { + /// + /// This calculates atan within [-1, 1] range. + /// + + /// + /// Approximation of atan for x in [-1, 1] + /// Max absolute error for this is ~0.0015 rad + /// See Ref: + /// Efficient Approximations for the Arctangent Function by Rajan 2006 + /// + + // constexpr amrex::Real PI_4 = GCEM_PI / 4.0_rt; + + // return PI_4*x - x*(std::abs(x) - 1.0_rt) * + // (0.2447_rt + 0.0663_rt*std::abs(x)); + + + /// + /// Another approximation of atan for x in [-1, 1] + /// Max absolute error for this is ~0.00063 rad + /// See Ref: + /// https://stackoverflow.com/questions/42537957/fast-accurate-atan-arctan-approximation-algorithm + /// + + constexpr amrex::Real A = 0.0776509570923569_rt; + constexpr amrex::Real B = -0.287434475393028_rt; + constexpr amrex::Real C = GCEM_PI / 4.0_rt - A - B; + + amrex::Real x2 = x*x; + return ((A*x2 + B)*x2 + C)*x; +} + + +AMREX_GPU_HOST_DEVICE AMREX_INLINE +amrex::Real fast_atan(const amrex::Real x) { + /// + /// Fast atan approximation calculations. + /// + + constexpr amrex::Real PI_2 = 0.5_rt * GCEM_PI; + + /// + /// If x < 0.113, then using arctan(x) ~ x + /// gives better answer than the approximation below. + /// And accuracy increase as x << 0.113. + /// Also significantly faster. + /// + + if (std::abs(x) < 0.113_rt) { + return x; + } + + // Check for large number, close to infinity. + // Error is ~1e-8 rad by not checking actual inf + + if (x > 1.e8_rt) { + return PI_2; + } + if (x < -1.e8_rt) { + return -PI_2; + } + + // Now calculate Atan(x) using approximations + + if (x > 1.0_rt) { + return PI_2 - fast_atan_1(1.0_rt / x); + } + if (x < -1.0_rt) { + return -PI_2 - fast_atan_1(1.0_rt / x); + } + return fast_atan_1(x); +} + +#endif diff --git a/util/approx_math/test_fast_atan/GNUmakefile b/util/approx_math/test_fast_atan/GNUmakefile new file mode 100644 index 0000000000..9a46591a74 --- /dev/null +++ b/util/approx_math/test_fast_atan/GNUmakefile @@ -0,0 +1,39 @@ +PRECISION = DOUBLE +PROFILE = FALSE + +DEBUG = FALSE + +DIM = 3 + +COMP = gnu + +USE_MPI = FALSE +USE_OMP = FALSE + +USE_REACT = TRUE + +EBASE = main + +# define the location of the Microphysics top directory +MICROPHYSICS_HOME ?= ../../.. + +# This sets the EOS directory +EOS_DIR := helmholtz + +# This sets the network directory +NETWORK_DIR := aprox21 + +CONDUCTIVITY_DIR := stellar + +INTEGRATOR_DIR = VODE + +ifeq ($(USE_CUDA), TRUE) + INTEGRATOR_DIR := VODE +endif + +EXTERN_SEARCH += . + +Bpack := ../Make.package ./Make.package +Blocs := ../ . + +include $(MICROPHYSICS_HOME)/unit_test/Make.unit_test diff --git a/util/approx_math/test_fast_atan/Make.package b/util/approx_math/test_fast_atan/Make.package new file mode 100644 index 0000000000..6b4b865e8f --- /dev/null +++ b/util/approx_math/test_fast_atan/Make.package @@ -0,0 +1 @@ +CEXE_sources += main.cpp diff --git a/util/approx_math/test_fast_atan/main.cpp b/util/approx_math/test_fast_atan/main.cpp new file mode 100644 index 0000000000..46790d533e --- /dev/null +++ b/util/approx_math/test_fast_atan/main.cpp @@ -0,0 +1,63 @@ +#include + +int main() { + + // Accuracy tests + + // Test values including edge cases and some typical values + + test_fast_atan_accuracy(0.0_rt); + test_fast_atan_accuracy(0.01_rt); + test_fast_atan_accuracy(0.08_rt); + test_fast_atan_accuracy(0.1_rt); + test_fast_atan_accuracy(0.5_rt); + test_fast_atan_accuracy(1.0_rt); + test_fast_atan_accuracy(5.0_rt); + test_fast_atan_accuracy(8.0_rt); + test_fast_atan_accuracy(10.0_rt); + test_fast_atan_accuracy(25.0_rt); + test_fast_atan_accuracy(100.0_rt); + test_fast_atan_accuracy(500.0_rt); + test_fast_atan_accuracy(5.0e8_rt); + + test_fast_atan_accuracy(-0.01_rt); + test_fast_atan_accuracy(-0.08_rt); + test_fast_atan_accuracy(-0.1_rt); + test_fast_atan_accuracy(-0.5_rt); + test_fast_atan_accuracy(-1.0_rt); + test_fast_atan_accuracy(-5.0_rt); + test_fast_atan_accuracy(-8.0_rt); + test_fast_atan_accuracy(-10.0_rt); + test_fast_atan_accuracy(-25.0_rt); + test_fast_atan_accuracy(-100.0_rt); + test_fast_atan_accuracy(-500.0_rt); + test_fast_atan_accuracy(-5.0e8_rt); + + // Inf Case + + test_fast_atan_accuracy(std::numeric_limits::infinity()); + test_fast_atan_accuracy(-std::numeric_limits::infinity()); + + std::cout << "Accuracy tests passed!" << std::endl; + + // Now performance test + + int iters = 5; + amrex::Real test_value = 160.0_rt; + test_fast_atan_speed(100, iters, test_value); + + iters = 10; + test_fast_atan_speed(100, iters, test_value); + + iters = 20; + test_fast_atan_speed(100, iters, test_value); + + iters = 30; + test_fast_atan_speed(100, iters, test_value); + + iters = 50; + test_fast_atan_speed(100, iters, test_value); + + iters = 70; + test_fast_atan_speed(100, iters, test_value); +} diff --git a/util/approx_math/test_fast_atan/test_fast_atan.H b/util/approx_math/test_fast_atan/test_fast_atan.H new file mode 100644 index 0000000000..30fd13b627 --- /dev/null +++ b/util/approx_math/test_fast_atan/test_fast_atan.H @@ -0,0 +1,92 @@ +#ifndef TEST_FAST_ATAN_H +#define TEST_FAST_ATAN_H + +#include +#include +#include +#include +#include +#include + + +template +void test_fast_atan_accuracy(T x) { + //This tests fast_atan accuracy + + T fast_atan_result = fast_atan(x); + T std_atan_result = std::atan(x); + + // Print results + std::cout << "x: " << x + << " fast_atan: " << fast_atan_result + << " std::atan: " << std_atan_result << std::endl; + + T abs_err = std::abs(fast_atan_result - std_atan_result); + T tolerance = 2.e-3_rt;; + + std::cout << "absolute error: " << abs_err << std::endl; + + assert(abs_err < tolerance); +} + + +template +void test_fast_atan_speed(int loops, int iter, T x) { + // This tests fast_atan performance + + std::cout << "Testing with loops: " << loops + << " with iter: " << iter + << " with initial x: " << x << std::endl; + + auto start = std::chrono::high_resolution_clock::now(); + { + T x_in; + T result; + for (int m = 0; m < loops; ++m) { + x_in = x; + result = 0.0; + for (int i = 0; i < iter; ++i) { + for (int j = 0; j < iter; ++j) { + for (int k = 0; k < iter; ++k) { + result += std::atan(x_in); + x_in *= 0.99999_rt; + } + } + } + } + // don't let the compiler elide this side-effect-free loop (at the cost of a memory write) + volatile T volatile_result; + volatile_result = result; + } + auto end = std::chrono::high_resolution_clock::now(); + std::chrono::duration std_atan_duration = end - start; + + + start = std::chrono::high_resolution_clock::now(); + { + T x_in; + T result; + for (int m = 0; m < loops; ++m) { + x_in = x; + result = 0.0; + for (int i = 0; i < iter; ++i) { + for (int j = 0; j < iter; ++j) { + for (int k = 0; k < iter; ++k) { + result += fast_atan(x_in); + x_in *= 0.99999_rt; + } + } + } + } + // don't let the compiler elide this side-effect-free loop (at the cost of a memory write) + volatile T volatile_result; + volatile_result = result; + } + end = std::chrono::high_resolution_clock::now(); + std::chrono::duration fast_atan_duration = end - start; + + + std::cout << "fast_atan duration: " << fast_atan_duration.count() << " seconds\n"; + std::cout << "std::atan duration: " << std_atan_duration.count() << " seconds\n"; +} +#endif