diff --git a/Makefile.Defines b/Makefile.Defines index 820ad6d7d..07126f842 100644 --- a/Makefile.Defines +++ b/Makefile.Defines @@ -65,8 +65,8 @@ GPAR = -fopenmp -ftree-parallelize-loops=4 GMEM = -fsanitize=undefined -fsanitize=address -fsanitize=leak GWARNINGS = -Wall -Warray-bounds -Wimplicit-interface -Wextra -Warray-temporaries -#FFLAGS = $(IDEBUG) $(HEAPARR) -FFLAGS = -init=snan,arrays -no-wrap-margin -O3 $(STRICTREAL) $(SIMDVEC) $(PAR) +FFLAGS = $(IDEBUG) $(HEAPARR) +#FFLAGS = -init=snan,arrays -no-wrap-margin -O3 $(STRICTREAL) $(SIMDVEC) $(PAR) FORTRAN = ifort #AR = xiar diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/.idea/.gitignore b/examples/helio_swifter_comparison/1pl_1tp_encounter/.idea/.gitignore new file mode 100644 index 000000000..26d33521a --- /dev/null +++ b/examples/helio_swifter_comparison/1pl_1tp_encounter/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/cb.swiftest.in b/examples/helio_swifter_comparison/1pl_1tp_encounter/cb.swiftest.in new file mode 100644 index 000000000..2386b53c8 Binary files /dev/null and b/examples/helio_swifter_comparison/1pl_1tp_encounter/cb.swiftest.in differ diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/check_init_cond.ipynb b/examples/helio_swifter_comparison/1pl_1tp_encounter/check_init_cond.ipynb new file mode 100644 index 000000000..b8794b9f0 --- /dev/null +++ b/examples/helio_swifter_comparison/1pl_1tp_encounter/check_init_cond.ipynb @@ -0,0 +1,929 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import swiftestio as swio\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swifter file param.swifter.in\n" + ] + } + ], + "source": [ + "inparfile = 'param.swifter.in'\n", + "paramgr = swio.read_swifter_param(inparfile)\n", + "swifterdat = swio.swifter2xr(paramgr)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "swifterdat.plot.scatter(x='px', y='py', hue='id', hue_style=\"discrete\", marker='.')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swiftest file param.swiftest.in\n" + ] + } + ], + "source": [ + "param_file_name = 'param.swiftest.in'\n", + "config = swio.read_swiftest_config(param_file_name)\n", + "swiftestdat = swio.swiftest2xr(config)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ,\n", + " ]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "swiftestdat.plot.scatter(x='px', y='py', hue='id', hue_style=\"discrete\", marker='.')" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset>\n",
+       "Dimensions:   (id: 2, time: 41)\n",
+       "Coordinates:\n",
+       "  * id        (id) int64 2 100\n",
+       "    time (y)  (time) float64 0.0 0.0006845 0.001369 ... 0.02601 0.02669 0.02738\n",
+       "Dimensions without coordinates: time\n",
+       "Data variables:\n",
+       "    Mass      (time, id) float64 0.0 nan 0.0 nan 0.0 nan ... nan 0.0 nan 0.0 nan\n",
+       "    Radius    (time, id) float64 0.0 nan 0.0 nan 0.0 nan ... nan 0.0 nan 0.0 nan\n",
+       "    delta x   (time, id) float64 0.0 0.0 0.0 0.0 ... -4.108e-15 0.0 -4.441e-15\n",
+       "    delta y   (time, id) float64 0.0 0.0 0.0 0.0 ... -3.886e-16 0.0 -3.886e-16\n",
+       "    pz        (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
+       "    vx        (time, id) float64 0.0 0.0 0.0 ... -2.984e-13 0.0 -3.062e-13\n",
+       "    vy        (time, id) float64 0.0 0.0 0.0 0.0 ... -3.553e-14 0.0 -3.73e-14\n",
+       "    vz        (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0
" + ], + "text/plain": [ + "\n", + "Dimensions: (id: 2, time: 41)\n", + "Coordinates:\n", + " * id (id) int64 2 100\n", + " time (y) (time) float64 0.0 0.0006845 0.001369 ... 0.02601 0.02669 0.02738\n", + "Dimensions without coordinates: time\n", + "Data variables:\n", + " Mass (time, id) float64 0.0 nan 0.0 nan 0.0 nan ... nan 0.0 nan 0.0 nan\n", + " Radius (time, id) float64 0.0 nan 0.0 nan 0.0 nan ... nan 0.0 nan 0.0 nan\n", + " delta x (time, id) float64 0.0 0.0 0.0 0.0 ... -4.108e-15 0.0 -4.441e-15\n", + " delta y (time, id) float64 0.0 0.0 0.0 0.0 ... -3.886e-16 0.0 -3.886e-16\n", + " pz (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n", + " vx (time, id) float64 0.0 0.0 0.0 ... -2.984e-13 0.0 -3.062e-13\n", + " vy (time, id) float64 0.0 0.0 0.0 0.0 ... -3.553e-14 0.0 -3.73e-14\n", + " vz (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "swiftdiff = swiftestdat - swifterdat\n", + "swiftdiff = swiftdiff.rename_vars({'time' : 'time (y)','px' : 'delta x','py' : 'delta y'})\n", + "swiftdiff" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "swiftdiff.plot.scatter(x='delta x', y='delta y', hue='id', hue_style=\"discrete\", marker='.')" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.savefig('rmvsdiff.png')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/init_cond.py b/examples/helio_swifter_comparison/1pl_1tp_encounter/init_cond.py new file mode 100644 index 000000000..5b5f5e76e --- /dev/null +++ b/examples/helio_swifter_comparison/1pl_1tp_encounter/init_cond.py @@ -0,0 +1,228 @@ +""" +For testing RMVS, the code generates clones of test particles based on one that is fated to impact Mercury. +To use the script, modify the variables just after the "if __name__ == '__main__':" line +""" +import numpy as np +from astroquery.jplhorizons import Horizons +import astropy.constants as const +import swiftestio as swio +from scipy.io import FortranFile +import sys + +#Values from JPL Horizons +AU2M = np.longdouble(const.au.value) +GMSunSI = np.longdouble(const.GM_sun.value) +Rsun = np.longdouble(const.R_sun.value) +GC = np.longdouble(const.G.value) +JD = 86400 +year = np.longdouble(365.25 * JD) +c = np.longdouble(299792458.0) +MSun_over_Mpl = np.array([6023600.0, + 408523.71, + 328900.56, + 3098708., + 1047.3486, + 3497.898, + 22902.98, + 19412.24, + 1.35e8], dtype=np.longdouble) + +MU2KG = np.longdouble(GMSunSI / GC) #Conversion from mass unit to kg +DU2M = np.longdouble(AU2M) #Conversion from radius unit to centimeters +TU2S = np.longdouble(year) #Conversion from time unit to seconds +GU = np.longdouble(GC / (DU2M**3 / (MU2KG * TU2S**2))) +GMSun = np.longdouble(GMSunSI / (DU2M**3 / TU2S**2)) + +# Solar oblatenes values: From Mecheri et al. (2004), using Corbard (b) 2002 values (Table II) +J2 = np.longdouble(2.198e-7) * (Rsun / DU2M)**2 +J4 = np.longdouble(-4.805e-9) * (Rsun / DU2M)**4 + +#Planet Msun/M ratio +MSun_over_Mpl = { + 'mercury' : np.longdouble(6023600.0), + 'venus' : np.longdouble(408523.71), + 'earthmoon' : np.longdouble(328900.56), + 'mars' : np.longdouble(3098708.), + 'jupiter' : np.longdouble(1047.3486), + 'saturn' : np.longdouble(3497.898), + 'uranus' : np.longdouble(22902.98), + 'neptune' : np.longdouble(19412.24), + 'plutocharon' : np.longdouble(1.35e8) +} + +#Planet radii in meters +Rpl = { + 'mercury' : np.longdouble(2439.4e3), + 'venus' : np.longdouble(6051.8e3), + 'earthmoon' : np.longdouble(6371.0084e3), # Earth only for radius + 'mars' : np.longdouble(3389.50e3), + 'jupiter' : np.longdouble(69911e3), + 'saturn' : np.longdouble(58232.0e3), + 'uranus' : np.longdouble(25362.e3), + 'neptune' : np.longdouble(24622.e3), + 'plutocharon' : np.longdouble(1188.3e3) +} + +THIRDLONG = np.longdouble(1.0) / np.longdouble(3.0) + +swifter_input = "param.swifter.in" +swifter_pl = "pl.swifter.in" +swifter_tp = "tp.swifter.in" +swifter_bin = "bin.swifter.dat" +swifter_enc = "enc.swifter.dat" + +swiftest_input = "param.swiftest.in" +swiftest_pl = "pl.swiftest.in" +swiftest_tp = "tp.swiftest.in" +swiftest_cb = "cb.swiftest.in" +swiftest_bin = "bin.swiftest.dat" +swiftest_enc = "enc.swiftest.dat" + +# Simple initial conditions of a circular planet with one test particle in a close encounter state +# Simulation start, stop, and output cadence times +t_0 = 0 # simulation start time +deltaT = 0.25 * JD / TU2S # simulation step size +end_sim = year / TU2S #10 * JD / TU2S # simulation end time +t_print = deltaT #output interval to print results + +iout = int(np.ceil(t_print / deltaT)) +rmin = Rsun / DU2M +rmax = 1000.0 + +npl = 1 +plid = 2 +tpid = 100 + +radius = np.double(Rpl['earthmoon'] / DU2M) +mass = np.double(GMSun * MSun_over_Mpl['earthmoon']**-1) +apl = np.longdouble(1.0) +atp = np.longdouble(1.01) +vpl = np.longdouble(2 * np.pi) +vtp = np.longdouble(2 * np.pi / np.sqrt(atp)) + +p_pl = np.array([apl, 0.0, 0.0], dtype=np.double) +v_pl = np.array([0.0, vpl, 0.0], dtype=np.double) + +p_tp = np.array([atp, 0.0, 0.0], dtype=np.double) +v_tp = np.array([0.0, vtp, 0.0], dtype=np.double) + +Rhill = apl * ((3 * MSun_over_Mpl['earthmoon'])**(-THIRDLONG)) + +#Make Swifter files +plfile = open(swifter_pl, 'w') +print(npl+1, f'! Planet input file generated using init_cond.py',file=plfile) +print(1,GMSun,file=plfile) +print('0.0 0.0 0.0',file=plfile) +print('0.0 0.0 0.0',file=plfile) +print(plid,"{:.23g}".format(mass),Rhill, file=plfile) +print(radius, file=plfile) +print(*p_pl, file=plfile) +print(*v_pl, file=plfile) +plfile.close() + +tpfile = open(swifter_tp, 'w') +print(1,file=tpfile) +print(tpid, file=tpfile) +print(*p_tp, file=tpfile) +print(*v_tp, file=tpfile) +tpfile.close() + +sys.stdout = open(swifter_input, "w") +print(f'! Swifter input file generated using init_cond.py') +print(f'T0 {t_0} ') +print(f'TSTOP {end_sim}') +print(f'DT {deltaT}') +print(f'PL_IN {swifter_pl}') +print(f'TP_IN {swifter_tp}') +print(f'IN_TYPE ASCII') +print(f'ISTEP_OUT {iout:d}') +print(f'ISTEP_DUMP {iout:d}') +print(f'BIN_OUT {swifter_bin}') +print(f'OUT_TYPE REAL8') +print(f'OUT_FORM XV') +print(f'OUT_STAT NEW') +print(f'J2 {J2}') +print(f'J4 {J4}') +print(f'CHK_CLOSE yes') +print(f'CHK_RMIN {rmin}') +print(f'CHK_RMAX {rmax}') +print(f'CHK_EJECT {rmax}') +print(f'CHK_QMIN {rmin}') +print(f'CHK_QMIN_COORD HELIO') +print(f'CHK_QMIN_RANGE {rmin} {rmax}') +print(f'ENC_OUT {swifter_enc}') +print(f'EXTRA_FORCE no') +print(f'BIG_DISCARD no') +print(f'RHILL_PRESENT yes') +sys.stdout = sys.__stdout__ + +#Now make Swiftest files +cbfile = FortranFile(swiftest_cb, 'w') +Msun = np.double(1.0) +cbfile.write_record(np.double(GMSun)) +cbfile.write_record(np.double(rmin)) +cbfile.write_record(np.double(J2)) +cbfile.write_record(np.double(J4)) +cbfile.close() + +plfile = FortranFile(swiftest_pl, 'w') +plfile.write_record(npl) + +plfile.write_record(plid) +plfile.write_record(p_pl[0]) +plfile.write_record(p_pl[1]) +plfile.write_record(p_pl[2]) +plfile.write_record(v_pl[0]) +plfile.write_record(v_pl[1]) +plfile.write_record(v_pl[2]) +plfile.write_record(mass) +plfile.write_record(radius) +plfile.close() +tpfile = FortranFile(swiftest_tp, 'w') +ntp = 1 +tpfile.write_record(ntp) +tpfile.write_record(tpid) +tpfile.write_record(p_tp[0]) +tpfile.write_record(p_tp[1]) +tpfile.write_record(p_tp[2]) +tpfile.write_record(v_tp[0]) +tpfile.write_record(v_tp[1]) +tpfile.write_record(v_tp[2]) + +tpfile.close() + +sys.stdout = open(swiftest_input, "w") +print(f'! Swiftest input file generated using init_cond.py') +print(f'T0 {t_0} ') +print(f'TSTOP {end_sim}') +print(f'DT {deltaT}') +print(f'CB_IN {swiftest_cb}') +print(f'PL_IN {swiftest_pl}') +print(f'TP_IN {swiftest_tp}') +print(f'IN_TYPE REAL8') +print(f'ISTEP_OUT {iout:d}') +print(f'ISTEP_DUMP {iout:d}') +print(f'BIN_OUT {swiftest_bin}') +print(f'OUT_TYPE REAL8') +print(f'OUT_FORM XV') +print(f'OUT_STAT REPLACE') +print(f'CHK_CLOSE yes') +print(f'CHK_RMIN {rmin}') +print(f'CHK_RMAX {rmax}') +print(f'CHK_EJECT {rmax}') +print(f'CHK_QMIN {rmin}') +print(f'CHK_QMIN_COORD HELIO') +print(f'CHK_QMIN_RANGE {rmin} {rmax}') +print(f'ENC_OUT {swiftest_enc}') +print(f'EXTRA_FORCE no') +print(f'BIG_DISCARD no') +print(f'ROTATION no') +print(f'GR no') +print(f'MU2KG {MU2KG}') +print(f'DU2M {DU2M}') +print(f'TU2S {TU2S}') + + + + + diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/param.swifter.in b/examples/helio_swifter_comparison/1pl_1tp_encounter/param.swifter.in new file mode 100644 index 000000000..40cedba41 --- /dev/null +++ b/examples/helio_swifter_comparison/1pl_1tp_encounter/param.swifter.in @@ -0,0 +1,26 @@ +! Swifter input file generated using init_cond.py +T0 0 +TSTOP 0.2 +DT 0.00034223134839151266 +PL_IN pl.swifter.in +TP_IN tp.swifter.in +IN_TYPE ASCII +ISTEP_OUT 1 +ISTEP_DUMP 1 +BIN_OUT bin.swifter.dat +OUT_TYPE REAL8 +OUT_FORM XV +OUT_STAT UNKNOWN +J2 4.7535806948127355e-12 +J4 -2.2473967953572827e-18 +CHK_CLOSE yes +CHK_RMIN 0.004650467260962157 +CHK_RMAX 1000.0 +CHK_EJECT 1000.0 +CHK_QMIN 0.004650467260962157 +CHK_QMIN_COORD HELIO +CHK_QMIN_RANGE 0.004650467260962157 1000.0 +ENC_OUT enc.swifter.dat +EXTRA_FORCE no +BIG_DISCARD no +RHILL_PRESENT yes diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/param.swiftest.in b/examples/helio_swifter_comparison/1pl_1tp_encounter/param.swiftest.in new file mode 100644 index 000000000..914af3324 --- /dev/null +++ b/examples/helio_swifter_comparison/1pl_1tp_encounter/param.swiftest.in @@ -0,0 +1,29 @@ +! Swiftest input file generated using init_cond.py +T0 0 +TSTOP 0.2 +DT 0.00034223134839151266 +CB_IN cb.swiftest.in +PL_IN pl.swiftest.in +TP_IN tp.swiftest.in +IN_TYPE REAL8 +ISTEP_OUT 1 +ISTEP_DUMP 1 +BIN_OUT bin.swiftest.dat +OUT_TYPE REAL8 +OUT_FORM XV +OUT_STAT REPLACE +CHK_CLOSE yes +CHK_RMIN 0.004650467260962157 +CHK_RMAX 1000.0 +CHK_EJECT 1000.0 +CHK_QMIN 0.004650467260962157 +CHK_QMIN_COORD HELIO +CHK_QMIN_RANGE 0.004650467260962157 1000.0 +ENC_OUT enc.swiftest.dat +EXTRA_FORCE no +BIG_DISCARD no +ROTATION no +GR no +MU2KG 1.988409870698051e+30 +DU2M 149597870700.0 +TU2S 31557600.0 diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/pl.swifter.in b/examples/helio_swifter_comparison/1pl_1tp_encounter/pl.swifter.in new file mode 100644 index 000000000..6f91ef4c9 --- /dev/null +++ b/examples/helio_swifter_comparison/1pl_1tp_encounter/pl.swifter.in @@ -0,0 +1,8 @@ +2 ! Planet input file generated using init_cond.py +1 39.47692640889762629 +0.0 0.0 0.0 +0.0 0.0 0.0 +2 0.00012002693582795246295385 0.010044724833237895015 +4.25875607065041e-05 +1.0 0.0 0.0 +0.0 6.283185307179586 0.0 diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/pl.swiftest.in b/examples/helio_swifter_comparison/1pl_1tp_encounter/pl.swiftest.in new file mode 100644 index 000000000..d3786c3df Binary files /dev/null and b/examples/helio_swifter_comparison/1pl_1tp_encounter/pl.swiftest.in differ diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/swiftest_vs_swifter.ipynb b/examples/helio_swifter_comparison/1pl_1tp_encounter/swiftest_vs_swifter.ipynb new file mode 100644 index 000000000..7c8fb177a --- /dev/null +++ b/examples/helio_swifter_comparison/1pl_1tp_encounter/swiftest_vs_swifter.ipynb @@ -0,0 +1,145 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import swiftest\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swifter file param.swifter.in\n", + "Reading in time 2.002e-01\n", + "Creating Dataset\n", + "Successfully converted 586 output frames.\n", + "Swifter simulation data stored as xarray DataSet .ds\n" + ] + } + ], + "source": [ + "swiftersim = swiftest.Simulation(param_file=\"param.swifter.in\", codename=\"Swifter\")\n", + "swiftersim.bin2xr()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swiftest file param.swiftest.in\n", + "Reading in time 2.002e-01\n", + "Creating Dataset\n", + "Successfully converted 586 output frames.\n", + "Swiftest simulation data stored as xarray DataSet .ds\n" + ] + } + ], + "source": [ + "swiftestsim = swiftest.Simulation(param_file=\"param.swiftest.in\")\n", + "swiftestsim.bin2xr()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "swiftdiff = swiftestsim.ds - swiftersim.ds" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "swiftdiff = swiftdiff.rename({'time' : 'time (y)'})\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "swiftdiff['px'].plot.line(x=\"time (y)\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "swiftestOOF", + "language": "python", + "name": "swiftestoof" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/tp.swifter.in b/examples/helio_swifter_comparison/1pl_1tp_encounter/tp.swifter.in new file mode 100644 index 000000000..9c026369e --- /dev/null +++ b/examples/helio_swifter_comparison/1pl_1tp_encounter/tp.swifter.in @@ -0,0 +1,4 @@ +1 +100 +1.01 0.0 0.0 +0.0 6.252003053624663 0.0 diff --git a/examples/helio_swifter_comparison/1pl_1tp_encounter/tp.swiftest.in b/examples/helio_swifter_comparison/1pl_1tp_encounter/tp.swiftest.in new file mode 100644 index 000000000..e1506974a Binary files /dev/null and b/examples/helio_swifter_comparison/1pl_1tp_encounter/tp.swiftest.in differ diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/.idea/.gitignore b/examples/helio_swifter_comparison/9pl_18tp_encounters/.idea/.gitignore new file mode 100644 index 000000000..26d33521a --- /dev/null +++ b/examples/helio_swifter_comparison/9pl_18tp_encounters/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/cb.swiftest.in b/examples/helio_swifter_comparison/9pl_18tp_encounters/cb.swiftest.in new file mode 100644 index 000000000..689d47628 --- /dev/null +++ b/examples/helio_swifter_comparison/9pl_18tp_encounters/cb.swiftest.in @@ -0,0 +1,4 @@ +0.0002959122081920778 +0.004650467260962157 +4.7535806948127355e-12 +-2.2473967953572827e-18 diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/init_cond.py b/examples/helio_swifter_comparison/9pl_18tp_encounters/init_cond.py new file mode 100644 index 000000000..314e59420 --- /dev/null +++ b/examples/helio_swifter_comparison/9pl_18tp_encounters/init_cond.py @@ -0,0 +1,184 @@ +import numpy as np +import swiftest.io as swio +import astropy.constants as const +import sys +import xarray as xr + +# Both codes use the same tp input file +tpin = "tp.in" + +swifter_input = "param.swifter.in" +swifter_pl = "pl.swifter.in" +swifter_bin = "bin.swifter.dat" +swifter_enc = "enc.swifter.dat" + +swiftest_input = "param.swiftest.in" +swiftest_pl = "pl.swiftest.in" +swiftest_cb = "cb.swiftest.in" +swiftest_bin = "bin.swiftest.dat" +swiftest_enc = "enc.swiftest.dat" + +#Values from JPL Horizons +AU2M = np.longdouble(const.au.value) +GMSunSI = np.longdouble(const.GM_sun.value) +Rsun = np.longdouble(const.R_sun.value) +GC = np.longdouble(const.G.value) +JD = 86400 +year = np.longdouble(365.25 * JD) +c = np.longdouble(299792458.0) + +MU2KG = np.longdouble(GMSunSI / GC) #Conversion from mass unit to kg +DU2M = np.longdouble(AU2M) #Conversion from radius unit to centimeters +TU2S = np.longdouble(JD) #Conversion from time unit to seconds +GU = np.longdouble(GC / (DU2M**3 / (MU2KG * TU2S**2))) +GMSun = np.longdouble(GMSunSI / (DU2M**3 / TU2S**2)) + +t_0 = 0 # simulation start time +deltaT = 1.00 * JD / TU2S # simulation step size +end_sim = year / TU2S # simulation end time +t_print = deltaT #output interval to print results + +iout = int(np.ceil(t_print / deltaT)) +rmin = Rsun / DU2M +rmax = 1000.0 + +sys.stdout = open(swiftest_input, "w") +print(f'! VERSION Swiftest input file generated using init_cond.py') +print(f'T0 {t_0} ') +print(f'TSTOP {end_sim}') +print(f'DT {deltaT}') +print(f'CB_IN {swiftest_cb}') +print(f'PL_IN {swiftest_pl}') +print(f'TP_IN {tpin}') +print(f'IN_TYPE ASCII') +print(f'ISTEP_OUT {iout:d}') +print(f'ISTEP_DUMP {iout:d}') +print(f'BIN_OUT {swiftest_bin}') +print(f'OUT_TYPE REAL8') +print(f'OUT_FORM XV') +print(f'OUT_STAT REPLACE') +print(f'CHK_CLOSE yes') +print(f'CHK_RMIN {rmin}') +print(f'CHK_RMAX {rmax}') +print(f'CHK_EJECT {rmax}') +print(f'CHK_QMIN {rmin}') +print(f'CHK_QMIN_COORD HELIO') +print(f'CHK_QMIN_RANGE {rmin} {rmax}') +print(f'ENC_OUT {swiftest_enc}') +print(f'EXTRA_FORCE no') +print(f'BIG_DISCARD no') +print(f'ROTATION no') +print(f'GR no') +print(f'MU2KG {MU2KG}') +print(f'DU2M {DU2M}') +print(f'TU2S {TU2S}') +sys.stdout = sys.__stdout__ +param = swio.read_swiftest_param(swiftest_input) + +# Dates to fetch planet ephemerides from JPL Horizons +tstart = '2021-06-15' +ds = swio.solar_system_pl(param, tstart) +cb = ds.sel(id=0) +pl = ds.where(ds.id > 0, drop=True) +npl = pl.id.size + +ntp = 18 +dims = ['time', 'id', 'vec'] +tp = [] +t = np.array([0.0]) +clab, plab, tlab = swio.make_swiftest_labels(param) + +# For each planet, we will initialize a pair of test particles. One on its way in, and one on its way out. We will also initialize two additional particles that don't encounter anything +tpnames = np.arange(101, 101 + ntp) +tpxv1 = np.empty((6)) +tpxv2 = np.empty((6)) + +p1 = [] +p2 = [] +p3 = [] +p4 = [] +p5 = [] +p6 = [] + +for i in pl.id: + pli = pl.sel(id=i) + rstart = 2 * np.double(pli['Radius']) # Start the test particles at a multiple of the planet radius away + vstart = 1.5 * np.sqrt(2 * np.double(pli['Mass']) / rstart) # Start the test particle velocities at a multiple of the escape speed + xvstart = np.array([rstart / np.sqrt(2.0), rstart / np.sqrt(2.0), 0.0, vstart, 0.0, 0.0]) + # The positions and velocities of each pair of test particles will be in reference to a planet + plvec = np.array([np.double(pli['px']), + np.double(pli['py']), + np.double(pli['pz']), + np.double(pli['vx']), + np.double(pli['vy']), + np.double(pli['vz'])]) + tpxv1 = plvec + xvstart + tpxv2 = plvec - xvstart + p1.append(tpxv1[0]) + p1.append(tpxv2[0]) + p2.append(tpxv1[1]) + p2.append(tpxv2[1]) + p3.append(tpxv1[2]) + p3.append(tpxv2[2]) + p4.append(tpxv1[3]) + p4.append(tpxv2[3]) + p5.append(tpxv1[4]) + p5.append(tpxv2[4]) + p6.append(tpxv1[5]) + p6.append(tpxv2[5]) + +tvec = np.vstack([p1, p2, p3, p4, p5, p6]) +tpframe = np.expand_dims(tvec.T, axis=0) +tpxr = xr.DataArray(tpframe, dims = dims, coords = {'time' : t, 'id' : tpnames, 'vec' : tlab}) + +tp = [tpxr] +tpda = xr.concat(tp,dim='time') +tpds = tpda.to_dataset(dim = 'vec') + +ds = xr.combine_by_coords([ds, tpds]) +swio.swiftest_xr2infile(ds, param) + +# Swifter PL file +plfile = open(swifter_pl, 'w') +print(npl + 1, file=plfile) +print(0,GMSun,file=plfile) +print('0.0 0.0 0.0',file=plfile) +print('0.0 0.0 0.0',file=plfile) +for i in pl.id: + pli = pl.sel(id=i) + print(f"{int(i)} {pli['Mass'].values[0]} {pli['Rhill'].values[0]}", file=plfile) + print(f"{pli['Radius'].values[0]}", file=plfile) + print(f"{pli['px'].values[0]} {pli['py'].values[0]} {pli['pz'].values[0]}", file=plfile) + print(f"{pli['vx'].values[0]} {pli['vy'].values[0]} {pli['vz'].values[0]}", file=plfile) +plfile.close() + +# Swifter parameter file +sys.stdout = open(swifter_input, "w") +print(f"! VERSION Swifter input file generated using init_cond.py") +print(f"T0 {t_0} ") +print(f"TSTOP {end_sim}") +print(f"DT {deltaT}") +print(f"PL_IN {swifter_pl}") +print(f"TP_IN {tpin}") +print(f"IN_TYPE ASCII") +print(f"ISTEP_OUT {iout:d}") +print(f"ISTEP_DUMP {iout:d}") +print(f"BIN_OUT {swifter_bin}") +print(f"OUT_TYPE REAL8") +print(f"OUT_FORM XV") +print(f"OUT_STAT UNKNOWN") +print(f"J2 {param['J2']}") +print(f"J4 {param['J4']}") +print(f"CHK_CLOSE yes") +print(f"CHK_RMIN {rmin}") +print(f"CHK_RMAX {rmax}") +print(f"CHK_EJECT {rmax}") +print(f"CHK_QMIN {rmin}") +print(f"CHK_QMIN_COORD HELIO") +print(f"CHK_QMIN_RANGE {rmin} {rmax}") +print(f"ENC_OUT {swifter_enc}") +print(f"EXTRA_FORCE no") +print(f"BIG_DISCARD no") +print(f"RHILL_PRESENT yes") +sys.stdout = sys.__stdout__ + diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/param.swifter.in b/examples/helio_swifter_comparison/9pl_18tp_encounters/param.swifter.in new file mode 100644 index 000000000..ec31caa63 --- /dev/null +++ b/examples/helio_swifter_comparison/9pl_18tp_encounters/param.swifter.in @@ -0,0 +1,26 @@ +! Swifter input file generated using init_cond.py +T0 0 +TSTOP 365.25 +DT 1.0 +PL_IN pl.swifter.in +TP_IN tp.in +IN_TYPE ASCII +ISTEP_OUT 1 +ISTEP_DUMP 1 +BIN_OUT bin.swifter.dat +OUT_TYPE REAL8 +OUT_FORM XV +OUT_STAT UNKNOWN +J2 4.7535806948127355e-12 +J4 -2.2473967953572827e-18 +CHK_CLOSE yes +CHK_RMIN 0.004650467260962157 +CHK_RMAX 1000.0 +CHK_EJECT 1000.0 +CHK_QMIN 0.004650467260962157 +CHK_QMIN_COORD HELIO +CHK_QMIN_RANGE 0.004650467260962157 1000.0 +ENC_OUT enc.swifter.dat +EXTRA_FORCE no +BIG_DISCARD no +RHILL_PRESENT yes diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/param.swiftest.in b/examples/helio_swifter_comparison/9pl_18tp_encounters/param.swiftest.in new file mode 100644 index 000000000..fff05bacf --- /dev/null +++ b/examples/helio_swifter_comparison/9pl_18tp_encounters/param.swiftest.in @@ -0,0 +1,29 @@ +! VERSION Swiftest input file generated using init_cond.py +T0 0 +TSTOP 365.25 +DT 1.0 +CB_IN cb.swiftest.in +PL_IN pl.swiftest.in +TP_IN tp.in +IN_TYPE ASCII +ISTEP_OUT 1 +ISTEP_DUMP 1 +BIN_OUT bin.swiftest.dat +OUT_TYPE REAL8 +OUT_FORM XV +OUT_STAT REPLACE +CHK_CLOSE yes +CHK_RMIN 0.004650467260962157 +CHK_RMAX 1000.0 +CHK_EJECT 1000.0 +CHK_QMIN 0.004650467260962157 +CHK_QMIN_COORD HELIO +CHK_QMIN_RANGE 0.004650467260962157 1000.0 +ENC_OUT enc.swiftest.dat +EXTRA_FORCE no +BIG_DISCARD no +ROTATION no +GR no +MU2KG 1.988409870698051e+30 +DU2M 149597870700.0 +TU2S 86400.0 diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/pl.swifter.in b/examples/helio_swifter_comparison/9pl_18tp_encounters/pl.swifter.in new file mode 100644 index 000000000..f02f6bc6f --- /dev/null +++ b/examples/helio_swifter_comparison/9pl_18tp_encounters/pl.swifter.in @@ -0,0 +1,40 @@ +10 +0 0.00029591220819207776388 +0.0 0.0 0.0 +0.0 0.0 0.0 +1 4.9125474498983625e-11 0.0014751258227142052 +1.6306381826061646e-05 +0.008059842448018334 -0.4616051037329109 -0.03846017738329229 +0.02248719132054853 0.001934639213990692 -0.001904656977422976 +2 7.243452483873647e-10 0.006759134232034941 +4.0453784346544176e-05 +-0.5115875215389065 0.5030818749037324 0.03642547299277956 +-0.01425515725454357 -0.01452868630179309 0.0006232072038298823 +3 8.997011382166019e-10 0.010044625087011915 +4.25875607065041e-05 +-0.1090020607540907 -1.009893805009766 4.823302918632528e-05 +0.01682491922568941 -0.001910549762056979 3.992660742687128e-08 +4 9.549535102761465e-11 0.0072467897902424765 +2.2657408050928896e-05 +-1.342897929331636 0.9778655112682739 0.05343398538723887 +-0.007712315645393206 -0.01011917844182223 -2.287744801261131e-05 +5 2.825345908631355e-07 0.3552720805286442 +0.0004673261703049093 +3.923184193414315 -3.168419770483168 -0.0746147877972047 +0.004655552638985802 0.006232623300954468 -0.0001300429201057457 +6 8.459715183006416e-08 0.4376460836930155 +0.00038925687730393614 +6.185794462795267 -7.804174837804826 -0.110498432926239 +0.004066833203985018 0.003458637040736611 -0.0002219310939327014 +7 1.2920249163736674e-08 0.46946272948265794 +0.00016953449859497232 +14.9290976575471 12.92949673572929 -0.1454099139559955 +-0.002599557960646664 0.002795888198858545 4.391864857782088e-05 +8 1.5243589003230834e-08 0.78119478483336 +0.00016458790412449367 +29.54416169025338 -4.716921603714237 -0.5838030174427992 +0.0004792636209523189 0.00312573757291745 -7.53264045199501e-05 +9 2.1919422829042796e-12 0.05379680851617536 +7.943294877391593e-06 +14.54448346259197 -31.05223519593471 -0.8828000265625595 +0.002923077617691739 0.0006625916902153526 -0.0009142553677224461 diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/pl.swiftest.in b/examples/helio_swifter_comparison/9pl_18tp_encounters/pl.swiftest.in new file mode 100644 index 000000000..0920f9b2e --- /dev/null +++ b/examples/helio_swifter_comparison/9pl_18tp_encounters/pl.swiftest.in @@ -0,0 +1,37 @@ +9 +1 4.9125474498983625056e-11 +1.6306381826061645943e-05 +0.008059842448018333591 -0.46160510373291091524 -0.038460177383292291908 +0.02248719132054852949 0.0019346392139906921279 -0.0019046569774229759606 +2 7.243452483873647106e-10 +4.0453784346544178454e-05 +-0.51158752153890652004 0.5030818749037323512 0.036425472992779560355 +-0.01425515725454356988 -0.014528686301793089943 0.00062320720382988232425 +3 8.997011382166018993e-10 +4.25875607065040958e-05 +-0.109002060754090704386 -1.0098938050097661101 4.8233029186325282966e-05 +0.016824919225689409317 -0.0019105497620569790936 3.9926607426871282392e-08 +4 9.549535102761465872e-11 +2.265740805092889601e-05 +-1.3428979293316360977 0.97786551126827392366 0.053433985387238869258 +-0.007712315645393206092 -0.0101191784418222296525 -2.2877448012611311785e-05 +5 2.8253459086313549713e-07 +0.00046732617030490929307 +3.923184193414314791 -3.1684197704831680298 -0.07461478779720470689 +0.0046555526389858022113 0.006232623300954467766 -0.00013004292010574569365 +6 8.45971518300641563e-08 +0.00038925687730393611812 +6.1857944627952665684 -7.804174837804826126 -0.11049843292623899582 +0.0040668332039850179674 0.0034586370407366113193 -0.00022193109393270141328 +7 1.2920249163736673984e-08 +0.00016953449859497231466 +14.929097657547099942 12.9294967357292893695 -0.14540991395599550673 +-0.0025995579606466640267 0.0027958881988585450113 4.391864857782088156e-05 +8 1.5243589003230834746e-08 +0.000164587904124493665 +29.544161690253378794 -4.7169216037142369657 -0.58380301744279916587 +0.00047926362095231893815 0.00312573757291745008 -7.532640451995010825e-05 +9 2.1919422829042797324e-12 +7.943294877391593783e-06 +14.544483462591969669 -31.052235195934709822 -0.88280002656255951443 +0.0029230776176917390448 0.0006625916902153525834 -0.0009142553677224461557 diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb b/examples/helio_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb new file mode 100644 index 000000000..0a95cb75e --- /dev/null +++ b/examples/helio_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb @@ -0,0 +1,697 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import xarray as xr\n", + "import swiftest\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swifter file param.swifter.in\n", + "Reading in time 3.660e+02\n", + "Creating Dataset\n", + "Successfully converted 367 output frames.\n", + "Swifter simulation data stored as xarray DataSet .ds\n" + ] + } + ], + "source": [ + "inparfile = 'param.swifter.in'\n", + "swiftersim = swiftest.Simulation(param_file=inparfile, codename=\"Swifter\")\n", + "swiftersim.bin2xr()\n", + "swifterdat = swiftersim.ds" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swiftest file param.swiftest.in\n", + "Reading in time 3.660e+02\n", + "Creating Dataset\n", + "Successfully converted 367 output frames.\n", + "Swiftest simulation data stored as xarray DataSet .ds\n" + ] + } + ], + "source": [ + "inparfile = 'param.swiftest.in'\n", + "swiftestsim = swiftest.Simulation(param_file=inparfile)\n", + "swiftestsim.bin2xr()\n", + "swiftestdat = swiftestsim.ds" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "swiftdiff = swiftestdat - swifterdat" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "swiftdiff = swiftdiff.rename({'time' : 'time (d)'})" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "swiftdiff['rmag'] = np.sqrt(swiftdiff['px']**2 + swiftdiff['py']**2 + swiftdiff['pz']**2)\n", + "swiftdiff['vmag'] = np.sqrt(swiftdiff['vx']**2 + swiftdiff['vy']**2 + swiftdiff['vz']**2)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "plidx = swiftdiff.id.values[swiftdiff.id.values < 10]\n", + "tpidx = swiftdiff.id.values[swiftdiff.id.values > 10]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.DataArray 'px' (time (d): 367)>\n",
+       "array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
+       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])\n",
+       "Coordinates:\n",
+       "    id        int64 4\n",
+       "  * time (d)  (time (d)) float64 0.0 1.0 2.0 3.0 4.0 ... 363.0 364.0 365.0 366.0
" + ], + "text/plain": [ + "\n", + "array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])\n", + "Coordinates:\n", + " id int64 4\n", + " * time (d) (time (d)) float64 0.0 1.0 2.0 3.0 4.0 ... 363.0 364.0 365.0 366.0" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "swiftdiff['px'].sel(id=4)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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28LyI4HB6WMi8NsaxGRmGWtsQqr3pqQ8qVliiIhHgXdaWGUccF0kngR6S9q5NtGZWVbqvcaQR3nqfN4FWFDwvCGd9yGSJkqaIWnGkiVLahKcmbUPdz7nT54SQ6nztEp+UiLiyogYExFj+vTp085hmVl72tiU5BpDbuQpMTQA/Que9wMWZhSLmVndylNimAqcosQBwN8jYlHWQZlZ+3JTUv7ULDFIugl4AthTUoOkCZLOkHRGuso04FVgHnAV8K1axWZm2XFTUmW+9rWvscMOOzBixIeuAihbza5jiIjxm1gewLdrFI6Z5UTjGElODOU59dRTOfPMMznllFOqVmaempLMrI7V+yB65TrooIPYdtttq1qmh8Qws0xtrCl08ArDBXfM5sWFy6ta5rC+W/Ojzw+vapmt4RqDmWXKfQz54xqDmWWqs1z5nMUv+/biGoOZZcqnq+aPE4OZZcpNSZUZP348H//4x5k7dy79+vXj97//fcVluinJzKwDu+mmm6pepmsMZpYpD7udP04MZpapztL53Jk4MZhZptz5nD9ODGaWKXc+548Tg5llyk1J+ePEYGaZ2tiE5LyQG04MZpapxprCBjyIXlstWLCAQw89lKFDhzJ8+HAmT55clXJ9HYOZZcqnq5ava9eu/OpXv2LUqFGsWLGC0aNHc/jhhzNs2LCKynWNwcwy5T6G8u28886MGjUKgF69ejF06FDeeOONist1jcHMcqHDJ4a7z4U3X6humTvtBUde1KpVX3vtNZ577jn233//infrGoOZZcqdz5VbuXIlxx13HJdccglbb711xeW5xmBmmeo0TUmt/GVfbWvXruW4447jpJNO4thjj61Kma4xmFmmfOVz+SKCCRMmMHToUH7wgx9UrVwnBjPLlK98Lt/06dO5/vrreeihhxg5ciQjR45k2rRpFZfrpiQzy1SnaUrKwIEHHtguNS3XGMwsF9yUlB9ODGaWqQ3hK57zxonBzDLlPob8cWIws0z5rKT8cWIws0xtHETPTUq54cRgZtlyRSF3apoYJI2VNFfSPEnnlli+jaQ7JD0vabak02oZn5nVnk9XLd/q1avZb7/92GeffRg+fDg/+tGPqlJuza5jkNQFuAw4HGgAnpY0NSJeLFjt28CLEfF5SX2AuZJujIg1tYrTzGrLfQzl23zzzXnooYfo2bMna9eu5cADD+TI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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "swiftdiff['rmag'].sel(id=plidx).plot.line(ax=ax, x=\"time (d)\")\n", + "ax.set_ylabel(\"$|\\mathbf{r}_{swiftest} - \\mathbf{r}_{swifter}|$\")\n", + "ax.set_title(\"Heliocentric position differences \\n Planets only\")\n", + "fig.savefig(\"rmvs_swifter_comparison-mars_ejecta-planets-rmag.png\", facecolor='white', transparent=False, dpi=300)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "swiftdiff['vmag'].sel(id=plidx).plot.line(ax=ax, x=\"time (d)\")\n", + "ax.set_ylabel(\"$|\\mathbf{v}_{swiftest} - \\mathbf{v}_{swifter}|$\")\n", + "ax.set_title(\"Heliocentric velocity differences \\n Planets only\")\n", + "fig.savefig(\"rmvs_swifter_comparison-mars_ejecta-planets-vmag.png\", facecolor='white', transparent=False, dpi=300)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No handles with labels found to put in legend.\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "swiftdiff['rmag'].sel(id=tpidx).plot.line(ax=ax, x=\"time (d)\")\n", + "ax.set_ylabel(\"$|\\mathbf{r}_{swiftest} - \\mathbf{r}_{swifter}|$\")\n", + "ax.set_title(\"Heliocentric position differences \\n Test Particles only\")\n", + "legend = ax.legend()\n", + "legend.remove()\n", + "fig.savefig(\"rmvs_swifter_comparison-mars_ejecta-testparticles-rmag.png\", facecolor='white', transparent=False, dpi=300)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No handles with labels found to put in legend.\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "swiftdiff['vmag'].sel(id=tpidx).plot.line(ax=ax, x=\"time (d)\")\n", + "ax.set_ylabel(\"$|\\mathbf{v}_{swiftest} - \\mathbf{v}_{swifter}|$\")\n", + "ax.set_title(\"Heliocentric velocity differences \\n Test Particles only\")\n", + "legend = ax.legend()\n", + "legend.remove()\n", + "fig.savefig(\"rmvs_swifter_comparison-mars_ejecta-testparticles-vmag.png\", facecolor='white', transparent=False, dpi=300)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "swiftestOOF", + "language": "python", + "name": "swiftestoof" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/helio_swifter_comparison/9pl_18tp_encounters/tp.in b/examples/helio_swifter_comparison/9pl_18tp_encounters/tp.in new file mode 100644 index 000000000..6ae12da23 --- /dev/null +++ b/examples/helio_swifter_comparison/9pl_18tp_encounters/tp.in @@ -0,0 +1,55 @@ +18 +101 +0.0080829031543499848395 -0.46158204302657929174 -0.038460177383292291908 +0.025090740792557679473 0.00193463921399069207 -0.0019046569774229759036 +102 +0.008036781741686682343 -0.46162816443924253873 -0.038460177383292291908 +0.01988364184853937816 0.00193463921399069207 -0.0019046569774229759036 +103 +-0.51153031124843428845 0.50313908519420458276 0.036425472992779560355 +-0.007907923549198175514 -0.014528686301793089508 0.0006232072038298823056 +104 +-0.5116447318293787516 0.5030246646132601196 0.036425472992779560355 +-0.020602390959888965127 -0.014528686301793089508 0.0006232072038298823056 +105 +-0.10894183284815117663 -1.0098335771038264852 4.8233029186325282966e-05 +0.023719359459963285097 -0.0019105497620569790364 3.9926607426871281197e-08 +106 +-0.109062288660030232146 -1.009954032915705735 4.8233029186325282966e-05 +0.00993047899141553253 -0.0019105497620569790364 3.9926607426871281197e-08 +107 +-1.3428658869178822233 0.97789755368202779806 0.053433985387238869258 +-0.0046328365471693128824 -0.01011917844182222935 -2.28774480126113111e-05 +108 +-1.3429299717453899721 0.97783346885452004926 0.053433985387238869258 +-0.0107917947436170988396 -0.01011917844182222935 -2.28774480126113111e-05 +109 +3.9238450924224119731 -3.1677588714750708476 -0.07461478779720470689 +0.041537769840633231855 0.0062326233009544675795 -0.00013004292010574568976 +110 +3.9225232944062176088 -3.169080669491265212 -0.07461478779720470689 +-0.03222666456266162771 0.0062326233009544675795 -0.00013004292010574568976 +111 +6.1863449551503970625 -7.8036243454496956318 -0.11049843292623899582 +0.026180002087518607773 0.0034586370407366112158 -0.00022193109393270140663 +112 +6.1852439704401360743 -7.80472533015995662 -0.11049843292623899582 +-0.018046335679548570347 0.0034586370407366112158 -0.00022193109393270140663 +113 +14.92933741553430238 12.9297364937164918075 -0.14540991395599550673 +0.010495205578015229936 0.0027958881988585449277 4.3918648577820880246e-05 +114 +14.928857899559897504 12.9292569777420869315 -0.14540991395599550673 +-0.015694321499308556966 0.0027958881988585449277 4.3918648577820880246e-05 +115 +29.544394452699595632 -4.7166888412680219034 -0.58380301744279916587 +0.014914899434230450767 0.0031257375729174499863 -7.532640451995010599e-05 +116 +29.543928927807161955 -4.717154366160452028 -0.58380301744279916587 +-0.013956372192325811402 0.0031257375729174499863 -7.532640451995010599e-05 +117 +14.544494696107316045 -31.052223962419365222 -0.88280002656255951443 +0.0037110399802695879026 0.00066259169021535256356 -0.0009142553677224461283 +118 +14.544472229076623293 -31.052246429450054421 -0.88280002656255951443 +0.002135115255113890012 0.00066259169021535256356 -0.0009142553677224461283 diff --git a/examples/helio_swifter_comparison/mars_ejecta/.idea/.gitignore b/examples/helio_swifter_comparison/mars_ejecta/.idea/.gitignore new file mode 100644 index 000000000..26d33521a --- /dev/null +++ b/examples/helio_swifter_comparison/mars_ejecta/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/examples/helio_swifter_comparison/mars_ejecta/cb.swiftest.in b/examples/helio_swifter_comparison/mars_ejecta/cb.swiftest.in new file mode 100644 index 000000000..2aafc8408 --- /dev/null +++ b/examples/helio_swifter_comparison/mars_ejecta/cb.swiftest.in @@ -0,0 +1,4 @@ +0.00029591220828563 +0.004650467260962157 +0.0 +0.0 diff --git a/examples/helio_swifter_comparison/mars_ejecta/config.swiftest.in b/examples/helio_swifter_comparison/mars_ejecta/config.swiftest.in new file mode 100644 index 000000000..3f459514f --- /dev/null +++ b/examples/helio_swifter_comparison/mars_ejecta/config.swiftest.in @@ -0,0 +1,33 @@ +! +! Parameter file for the CHO run of the 4 giant planets and Pluto. +! +!NPLMAX -1 ! not used +!NTPMAX -1 ! not used +T0 0.0e0 +TSTOP 6000.000 ! simulation length in days +DT 1e0 ! stepsize in days +ISTEP_OUT 1 ! output cadence +ISTEP_DUMP 1 ! system dump cadence +CB_IN cb.swiftest.in +PL_IN pl.swiftest.in +TP_IN tp.in +IN_TYPE ASCII +BIN_OUT bin.swiftest.dat +OUT_TYPE REAL8 ! double precision real output +OUT_FORM XV ! osculating element output +OUT_STAT REPLACE +CHK_CLOSE yes ! check for planetary close encounters +CHK_RMIN 0.005e0 ! check for close solar encounters +CHK_RMAX 10000.0e0 ! discard outside of +CHK_EJECT -1.0 ! ignore this check +CHK_QMIN -1.0 ! ignore this check +!CHK_QMIN_COORD HELIO ! commented out here +!CHK_QMIN_RANGE 1.0 1000.0 ! commented out here +ENC_OUT enc.swiftest.dat +EXTRA_FORCE no ! no extra user-defined forces +BIG_DISCARD yes ! output all planets if anything discarded +ROTATION no +GR no +MU2KG 1.988409870698051e+30 +DU2M 149597870700.0 +TU2S 86400.0000 diff --git a/examples/helio_swifter_comparison/mars_ejecta/param.swifter.in b/examples/helio_swifter_comparison/mars_ejecta/param.swifter.in new file mode 100644 index 000000000..f4035c4c0 --- /dev/null +++ b/examples/helio_swifter_comparison/mars_ejecta/param.swifter.in @@ -0,0 +1,30 @@ +! +! Parameter file for the CHO run of the 4 giant planets and Pluto. +! +!NPLMAX -1 ! not used +!NTPMAX -1 ! not used +T0 0.0e0 +TSTOP 6000.000 ! simulation length in days +DT 1e0 ! stepsize in days +ISTEP_OUT 1 ! output cadence +ISTEP_DUMP 1 ! system dump cadence +PL_IN pl.swifter.in +TP_IN tp.in +IN_TYPE ASCII +BIN_OUT bin.swifter.dat +OUT_TYPE REAL8 ! double precision real output +OUT_FORM XV ! osculating element output +OUT_STAT NEW +J2 0.0 ! no J2 term +J4 0.0 ! no J4 term +CHK_CLOSE yes ! check for planetary close encounters +CHK_RMIN 0.005 ! check for close solar encounters +CHK_RMAX 10000.0 ! discard outside of +CHK_EJECT -1.0 ! ignore this check +CHK_QMIN -1.0 ! ignore this check +!CHK_QMIN_COORD HELIO ! commented out here +!CHK_QMIN_RANGE 1.0 1000.0 ! commented out here +ENC_OUT enc.swifter.dat +EXTRA_FORCE no ! no extra user-defined forces +BIG_DISCARD yes ! output all planets if anything discarded +RHILL_PRESENT yes ! Hill's sphere radii in input file diff --git a/examples/helio_swifter_comparison/mars_ejecta/pl.swifter.in b/examples/helio_swifter_comparison/mars_ejecta/pl.swifter.in new file mode 100644 index 000000000..ab7f6ec08 --- /dev/null +++ b/examples/helio_swifter_comparison/mars_ejecta/pl.swifter.in @@ -0,0 +1,36 @@ + 9 ! Solar system. Taken from JPL Horizons on 10-31-2012 00:00 (JD 2456231.5) + 1 2.9591220828563E-04 + .0 .0 .0 + .0 .0 .0 + 2 4.912576812862670E-11 1.475E-03 ! Mercury / Mass (Msun) / Rhill (AU) + 1.63104E-05 ! Radius (AU) + 3.347381871776144E-01 -2.106110537919978E-01 -4.792146121659843E-02 + 9.457239437449661E-03 2.510612575783642E-02 1.183593414707043E-03 + 3 7.243495778974390E-10 6.758E-03 ! Venus + 4.04538E-05 + -4.641166544325086E-01 5.473160240817795E-01 3.428518329144122E-02 + -1.549753193570599E-02 -1.319081534035637E-02 7.136685719563098E-04 + 4 8.997065158526820E-10 1.004E-02 ! Earth + Moon + 4.2587571E-05 + 7.844742229036105E-01 6.083466458892074E-01 -1.996912082982283E-05 + -1.081828010368904E-02 1.352675083743791E-02 2.330162751015549E-07 + 5 9.549592181631700E-11 7.246E-03 ! Mars + 2.26601E-05 + 3.248808297463504E-01 -1.392041319192106E+00 -3.714224198825128E-02 + 1.415678377567019E-02 4.380992498628390E-03 -2.558013868476858E-04 + 6 2.825362796108150E-07 0.3553 ! Jupiter + 4.67326E-04 + 1.873343037544675E+00 4.683322528183729E+00 -6.137078942429344E-02 + -7.104028854569467E-03 3.164193073442964E-03 1.458211211387848E-04 + 7 8.459765747874750E-08 0.4356 ! Saturn + 3.89257E-04 + -8.251865479985982E+00 -5.225008639958182E+00 4.193935221241906E-01 + 2.677374423933877E-03 -4.723961471952217E-03 -2.458643348128228E-05 + 8 1.292032638982330E-08 0.4686 ! Uranus + 1.69534E-04 + 1.992234896320000E+01 2.342619564376139E+00 -2.493547557095487E-01 + -4.936420700174518E-04 3.724868172847281E-03 2.027439791557233E-05 + 9 1.524368011623570E-08 0.7757 ! Neptune + 1.64601E-04 + 2.647158936403647E+01 -1.409652133490650E+01 -3.196444184043846E-01 + 1.449117851099529E-03 2.791630281764020E-03 -9.063088654405710E-05 diff --git a/examples/helio_swifter_comparison/mars_ejecta/pl.swiftest.in b/examples/helio_swifter_comparison/mars_ejecta/pl.swiftest.in new file mode 100644 index 000000000..e1931fc7f --- /dev/null +++ b/examples/helio_swifter_comparison/mars_ejecta/pl.swiftest.in @@ -0,0 +1,33 @@ +8 +2 4.91257681286267e-11 +1.63104e-05 +0.3347381871776144 -0.2106110537919978 -0.04792146121659843 +0.00945723943744966 0.02510612575783642 0.001183593414707043 +3 7.24349577897439e-10 +4.04538e-05 +-0.4641166544325086 0.5473160240817795 0.03428518329144122 +-0.01549753193570599 -0.01319081534035637 0.0007136685719563098 +4 8.99706515852682e-10 +4.2587571e-05 +0.7844742229036105 0.6083466458892074 -1.996912082982283e-05 +-0.01081828010368904 0.01352675083743791 2.330162751015549e-07 +5 9.5495921816317e-11 +2.26601e-05 +0.3248808297463504 -1.392041319192106 -0.03714224198825128 +0.01415678377567019 0.00438099249862839 -0.0002558013868476858 +6 2.82536279610815e-07 +0.000467326 +1.873343037544675 4.683322528183729 -0.06137078942429344 +-0.007104028854569467 0.003164193073442964 0.0001458211211387848 +7 8.45976574787475e-08 +0.000389257 +-8.251865479985982 -5.225008639958182 0.4193935221241906 +0.002677374423933877 -0.004723961471952217 -2.458643348128228e-05 +8 1.29203263898233e-08 +0.000169534 +19.9223489632 2.342619564376139 -0.2493547557095487 +-0.0004936420700174518 0.003724868172847281 2.027439791557233e-05 +9 1.52436801162357e-08 +0.000164601 +26.47158936403647 -14.0965213349065 -0.3196444184043846 +0.001449117851099529 0.00279163028176402 -9.06308865440571e-05 diff --git a/examples/helio_swifter_comparison/mars_ejecta/profmaker.sh b/examples/helio_swifter_comparison/mars_ejecta/profmaker.sh new file mode 100755 index 000000000..9b1adcd8c --- /dev/null +++ b/examples/helio_swifter_comparison/mars_ejecta/profmaker.sh @@ -0,0 +1,2 @@ +#!/bin/bash +gprof ./swiftest_driver | /home/daminton/git/gprof2dot/gprof2dot.py | dot -Tpng -o swiftest_profile.png diff --git a/examples/helio_swifter_comparison/mars_ejecta/profswifter.sh b/examples/helio_swifter_comparison/mars_ejecta/profswifter.sh new file mode 100755 index 000000000..a03493f54 --- /dev/null +++ b/examples/helio_swifter_comparison/mars_ejecta/profswifter.sh @@ -0,0 +1,2 @@ +#!/bin/bash +gprof ./swifter_rmvs | /home/daminton/git/gprof2dot/gprof2dot.py | dot -Tpng -o swifter_profile.png diff --git a/examples/helio_swifter_comparison/mars_ejecta/start.in b/examples/helio_swifter_comparison/mars_ejecta/start.in new file mode 100644 index 000000000..d6d7c3850 --- /dev/null +++ b/examples/helio_swifter_comparison/mars_ejecta/start.in @@ -0,0 +1 @@ +param.in diff --git a/examples/helio_swifter_comparison/mars_ejecta/swiftest_rmvs_vs_swifter_rmvs.ipynb b/examples/helio_swifter_comparison/mars_ejecta/swiftest_rmvs_vs_swifter_rmvs.ipynb new file mode 100644 index 000000000..2ef9e28a5 --- /dev/null +++ b/examples/helio_swifter_comparison/mars_ejecta/swiftest_rmvs_vs_swifter_rmvs.ipynb @@ -0,0 +1,241 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import swiftestio as swio\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swifter file param.swifter.in\n" + ] + } + ], + "source": [ + "inparfile = 'param.swifter.in'\n", + "param = swio.read_swifter_param(inparfile)\n", + "swifterdat = swio.swifter2xr(param)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swiftest file param.swiftest.in\n" + ] + } + ], + "source": [ + "param_file_name = 'param.swiftest.in'\n", + "config = swio.read_swiftest_config(param_file_name)\n", + "swiftestdat = swio.swiftest2xr(config)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "swiftdiff = swiftestdat - swifterdat" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "swiftdiff = swiftdiff.rename({'time' : 'time (d)'})" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "swiftdiff['rmag'] = np.sqrt(swiftdiff['px']**2 + swiftdiff['py']**2 + swiftdiff['pz']**2)\n", + "swiftdiff['vmag'] = np.sqrt(swiftdiff['vx']**2 + swiftdiff['vy']**2 + swiftdiff['vz']**2)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "plidx = swiftdiff.id.values[swiftdiff.id.values < 10]\n", + "tpidx = swiftdiff.id.values[swiftdiff.id.values > 10]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "swiftdiff['rmag'].sel(id=plidx).plot.line(ax=ax, x=\"time (d)\")\n", + "ax.set_ylabel(\"$|\\mathbf{r}_{swiftest} - \\mathbf{r}_{swifter}|$\")\n", + "ax.set_title(\"Heliocentric position differences \\n Planets only\")\n", + "fig.savefig(\"rmvs_swifter_comparison-mars_ejecta-planets-rmag.png\", facecolor='white', transparent=False, dpi=300)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "swiftdiff['vmag'].sel(id=plidx).plot.line(ax=ax, x=\"time (d)\")\n", + "ax.set_ylabel(\"$|\\mathbf{v}_{swiftest} - \\mathbf{v}_{swifter}|$\")\n", + "ax.set_title(\"Heliocentric velocity differences \\n Planets only\")\n", + "fig.savefig(\"rmvs_swifter_comparison-mars_ejecta-planets-vmag.png\", facecolor='white', transparent=False, dpi=300)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No handles with labels found to put in legend.\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "swiftdiff['rmag'].sel(id=tpidx).plot.line(ax=ax, x=\"time (d)\")\n", + "ax.set_ylabel(\"$|\\mathbf{r}_{swiftest} - \\mathbf{r}_{swifter}|$\")\n", + "ax.set_title(\"Heliocentric position differences \\n Test Particles only\")\n", + "legend = ax.legend()\n", + "legend.remove()\n", + "fig.savefig(\"rmvs_swifter_comparison-mars_ejecta-testparticles-rmag.png\", facecolor='white', transparent=False, dpi=300)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No handles with labels found to put in legend.\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "swiftdiff['vmag'].sel(id=tpidx).plot.line(ax=ax, x=\"time (d)\")\n", + "ax.set_ylabel(\"$|\\mathbf{v}_{swiftest} - \\mathbf{v}_{swifter}|$\")\n", + "ax.set_title(\"Heliocentric velocity differences \\n Test Particles only\")\n", + "legend = ax.legend()\n", + "legend.remove()\n", + "fig.savefig(\"rmvs_swifter_comparison-mars_ejecta-testparticles-vmag.png\", facecolor='white', transparent=False, dpi=300)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/helio_swifter_comparison/mars_ejecta/tp.in b/examples/helio_swifter_comparison/mars_ejecta/tp.in new file mode 100644 index 000000000..d5eb0e3f8 --- /dev/null +++ b/examples/helio_swifter_comparison/mars_ejecta/tp.in @@ -0,0 +1,601 @@ + 200 + 6000200 + 0.321794727714005 -1.39371227734394 -3.555372224179648E-002 + 1.263074812292130E-002 3.554726326213714E-003 5.297001107625803E-004 + 6000201 + 0.327226184487893 -1.39016803345029 -3.472777857996821E-002 + 1.531652992677778E-002 5.307306923696688E-003 9.381180638637231E-004 + 6000202 + 0.327531202012097 -1.39478453402311 -3.768059236489047E-002 + 1.546735696093592E-002 3.024509922426058E-003 -5.220083559665117E-004 + 6000203 + 0.322202594471783 -1.39306474804903 -3.456946701305916E-002 + 1.283243270995610E-002 3.874920791552106E-003 1.016400989319078E-003 + 6000204 + 0.323275102327213 -1.39231827262319 -4.063286630727199E-002 + 1.336277331700188E-002 4.244042778378470E-003 -1.981867830972686E-003 + 6000205 + 0.325545380653237 -1.39090814848439 -3.352094137611809E-002 + 1.448539519756952E-002 4.941330064430509E-003 1.534882714168952E-003 + 6000206 + 0.322100032022230 -1.38941601200018 -3.760532734717235E-002 + 1.278171696789352E-002 5.679171344404378E-003 -4.847908241938090E-004 + 6000207 + 0.325337949472342 -1.39379280734375 -3.374182250017822E-002 + 1.438282328833895E-002 3.514905332112549E-003 1.425659990227191E-003 + 6000208 + 0.326082121124172 -1.39530189188417 -3.547938702480286E-002 + 1.475080609012429E-002 2.768683467912135E-003 5.664578686714714E-004 + 6000209 + 0.327275685332658 -1.39441408865592 -3.527833381550945E-002 + 1.534100742400883E-002 3.207690138697890E-003 6.658759573365761E-004 + 6000210 + 0.327855145958387 -1.39318452150569 -3.930697139978061E-002 + 1.562754285445135E-002 3.815694439606817E-003 -1.326230758891795E-003 + 6000211 + 0.328078710851062 -1.39251497560023 -3.504731288890989E-002 + 1.573809266562045E-002 4.146775820637334E-003 7.801126762871974E-004 + 6000212 + 0.321277816542297 -1.39195915492794 -3.578170284173104E-002 + 1.237514255024041E-002 4.421621614318133E-003 4.169667921656008E-004 + 6000213 + 0.324665498950826 -1.39490683098100 -3.970778222771389E-002 + 1.405030561400833E-002 2.964035733299919E-003 -1.524426284193035E-003 + 6000214 + 0.324929781829885 -1.39405065211182 -4.042853272331495E-002 + 1.418098991790633E-002 3.387404586890700E-003 -1.880827641470143E-003 + 6000215 + 0.327555988964697 -1.39432357646482 -3.871524764041770E-002 + 1.547961377324917E-002 3.252447191181946E-003 -1.033631374975754E-003 + 6000216 + 0.321438220244275 -1.39139099683337 -3.554066697282077E-002 + 1.245446000814854E-002 4.702568096196656E-003 5.361557644332466E-004 + 6000217 + 0.327269239795964 -1.39111145972877 -3.426641502936644E-002 + 1.533782019342066E-002 4.840795408002274E-003 1.166256090318398E-003 + 6000218 + 0.323989604933645 -1.39344910147082 -4.061548100580529E-002 + 1.371608517771453E-002 3.684863230669170E-003 -1.973271034886913E-003 + 6000219 + 0.321638711062574 -1.39087780679511 -3.541758920393877E-002 + 1.255360000208438E-002 4.956333618793669E-003 5.970160540173710E-004 + 6000220 + 0.322548442178556 -1.38969900689356 -3.516409557966647E-002 + 1.300344971633673E-002 5.539234202882858E-003 7.223652175672305E-004 + 6000221 + 0.326425905823290 -1.38912149826721 -3.516059934460978E-002 + 1.492080296716386E-002 5.824804396075300E-003 7.240940584451341E-004 + 6000222 + 0.325686803560988 -1.39394570042399 -4.039235894274407E-002 + 1.455532690983334E-002 3.439301774920795E-003 -1.862940196963350E-003 + 6000223 + 0.327419177059503 -1.39257520407836 -3.429421078579946E-002 + 1.541196213929194E-002 4.116993654016758E-003 1.152511465264746E-003 + 6000224 + 0.324490052620445 -1.39553030085443 -3.872774571953116E-002 + 1.396354978011187E-002 2.655738325987235E-003 -1.039811505806850E-003 + 6000225 + 0.321731345032329 -1.39031854790183 -3.853949894445081E-002 + 1.259940624537157E-002 5.232879566177696E-003 -9.467260253928260E-004 + 6000226 + 0.325601002353804 -1.39413056037783 -3.398693779254160E-002 + 1.451289937508628E-002 3.347891031734538E-003 1.304453798319087E-003 + 6000227 + 0.325825665573909 -1.38837078808078 -3.783072474317082E-002 + 1.462399229429218E-002 6.196020414654821E-003 -5.962467834347196E-004 + 6000228 + 0.328007765778950 -1.39171771880483 -3.491579285982123E-002 + 1.570301128843478E-002 4.541008506865058E-003 8.451475491903844E-004 + 6000229 + 0.326038941297358 -1.38837178473418 -3.696108906496336E-002 + 1.472945425064948E-002 6.195527583046642E-003 -1.662237200565085E-004 + 6000230 + 0.324865697509285 -1.38818972404806 -3.707510223923227E-002 + 1.414930108941243E-002 6.285554126260012E-003 -2.226016903873118E-004 + 6000231 + 0.326890450931510 -1.39246034816528 -3.388258567264032E-002 + 1.515051423076515E-002 4.173788347277624E-003 1.356054508127195E-003 + 6000232 + 0.325593633813168 -1.38828971482136 -3.764909195799739E-002 + 1.450925573155059E-002 6.236110043272472E-003 -5.064318314410409E-004 + 6000233 + 0.326626976582762 -1.39216397200456 -3.371070451979964E-002 + 1.502022973415419E-002 4.320342344240131E-003 1.441047410021331E-003 + 6000234 + 0.327898875134393 -1.39098636673654 -3.929119504411583E-002 + 1.564916633966053E-002 4.902652198234570E-003 -1.318429564711382E-003 + 6000235 + 0.325772175388830 -1.39276944665725 -4.081849758657961E-002 + 1.459754212231259E-002 4.020943329837438E-003 -2.073659984154833E-003 + 6000236 + 0.325970862049605 -1.39573308065969 -3.729140206480187E-002 + 1.469578998479103E-002 2.555466459007209E-003 -3.295590242806717E-004 + 6000237 + 0.323334466127931 -1.38903625723277 -3.899099401712434E-002 + 1.339212791235488E-002 5.866954932989258E-003 -1.169984223183693E-003 + 6000238 + 0.321058043138336 -1.39159433514890 -3.730357920900053E-002 + 1.226646757888280E-002 4.602020053452453E-003 -3.355804571435673E-004 + 6000239 + 0.321631711087942 -1.39236740484015 -3.509861335813708E-002 + 1.255013860944605E-002 4.219747562605665E-003 7.547452891357343E-004 + 6000240 + 0.321306936119327 -1.39062854909901 -3.740848791004924E-002 + 1.238954178664758E-002 5.079588173238877E-003 -3.874563887900095E-004 + 6000241 + 0.322359878582366 -1.39481226441940 -3.804012263745659E-002 + 1.291020757217519E-002 3.010797617075125E-003 -6.997912057971096E-004 + 6000242 + 0.323817379375385 -1.38838475633633 -3.772374286905647E-002 + 1.363092197200557E-002 6.189113301486290E-003 -5.433456957891204E-004 + 6000243 + 0.327623726544369 -1.39464240098381 -3.788413992758530E-002 + 1.551310908886966E-002 3.094792785121600E-003 -6.226598686018013E-004 + 6000244 + 0.322826324940355 -1.38886200520861 -3.642775302359531E-002 + 1.314085897803487E-002 5.953120198633154E-003 9.750372819152632E-005 + 6000245 + 0.322612433934003 -1.39373086883468 -3.975745217634516E-002 + 1.303509277261627E-002 3.545533085870808E-003 -1.548987400995745E-003 + 6000246 + 0.321924589943174 -1.39047906318775 -3.905523030161998E-002 + 1.269496323622005E-002 5.153506931519558E-003 -1.201748195765625E-003 + 6000247 + 0.325483402999438 -1.39432969787986 -3.410254622383869E-002 + 1.445474808727309E-002 3.249420234359466E-003 1.247286994996116E-003 + 6000248 + 0.324075789932299 -1.39390925319708 -3.387081182165206E-002 + 1.375870249214517E-002 3.457324434934150E-003 1.361876517960287E-003 + 6000249 + 0.325555351421543 -1.39061734515993 -3.362701221631959E-002 + 1.449032560743936E-002 5.085128369354139E-003 1.482432120453008E-003 + 6000250 + 0.326533132333845 -1.39533418173792 -3.601686458585766E-002 + 1.497382502421540E-002 2.752716572605950E-003 3.006824950365570E-004 + 6000251 + 0.328077463583129 -1.39411605620772 -3.770484336908437E-002 + 1.573747590852224E-002 3.355063147389858E-003 -5.340001490527292E-004 + 6000252 + 0.321651628711733 -1.39378675143995 -3.597380335900138E-002 + 1.255998760462024E-002 3.517899894512744E-003 3.219756884387962E-004 + 6000253 + 0.324493522176533 -1.38860008548191 -3.882967355197441E-002 + 1.396526542860112E-002 6.082635955702965E-003 -1.090213438304715E-003 + 6000254 + 0.324521711140188 -1.39586389310030 -3.745606427432058E-002 + 1.397920448930016E-002 2.490781479023323E-003 -4.109822564850102E-004 + 6000255 + 0.323857759005521 -1.39310641830337 -4.070010820644245E-002 + 1.365088915215276E-002 3.854315415219456E-003 -2.015118039299293E-003 + 6000256 + 0.324036458712472 -1.39214287853430 -4.089940117322854E-002 + 1.373925373669473E-002 4.330772779566417E-003 -2.113665711887594E-003 + 6000257 + 0.322090781783657 -1.39468966511415 -3.693872754859708E-002 + 1.277714285021657E-002 3.071421312874804E-003 -1.551662531073200E-004 + 6000258 + 0.328092592928615 -1.39374096057231 -3.586344633457473E-002 + 1.574495716493310E-002 3.540542858309311E-003 3.765457421963371E-004 + 6000259 + 0.324548049062538 -1.39233312653552 -3.331554270885758E-002 + 1.399222823514643E-002 4.236697719935751E-003 1.636449572938168E-003 + 6000260 + 0.324887975354043 -1.39268402922437 -4.094045138727274E-002 + 1.416031718188453E-002 4.063181093387097E-003 -2.133964486694073E-003 + 6000261 + 0.321944774836254 -1.39352845277138 -3.514035858345473E-002 + 1.270494439243692E-002 3.645625087381753E-003 7.341028406686787E-004 + 6000262 + 0.327218902932329 -1.38903404006224 -3.771600840082730E-002 + 1.531292929618219E-002 5.868051293781019E-003 -5.395211060156568E-004 + 6000263 + 0.325421465012036 -1.39138633273825 -4.089966505983452E-002 + 1.442412059147267E-002 4.704874428056443E-003 -2.113796200239817E-003 + 6000264 + 0.324143614425125 -1.39411979216184 -3.398376362544507E-002 + 1.379224078514325E-002 3.353215768678313E-003 1.306023380953205E-003 + 6000265 + 0.324251383572956 -1.39481065425279 -3.453953133960193E-002 + 1.384553116897805E-002 3.011593822657939E-003 1.031203774355344E-003 + 6000266 + 0.323082300628443 -1.39404098553295 -3.438431714855358E-002 + 1.326743548852136E-002 3.392184579203928E-003 1.107955089402535E-003 + 6000267 + 0.325299655987546 -1.39040136408079 -4.060268324575995E-002 + 1.436388767880525E-002 5.191928087451827E-003 -1.966942715894272E-003 + 6000268 + 0.328389849750416 -1.39205995084950 -3.873156679977102E-002 + 1.589194663687427E-002 4.371779396419775E-003 -1.041700978227703E-003 + 6000269 + 0.325793463819930 -1.38928905744628 -3.967831695053032E-002 + 1.460806896313280E-002 5.741948651668003E-003 -1.509856103742432E-003 + 6000270 + 0.326601355314686 -1.39233804164542 -4.057608377821496E-002 + 1.500756036413905E-002 4.234267264663880E-003 -1.953789639491635E-003 + 6000271 + 0.321827451960849 -1.39213071131237 -3.479524070321862E-002 + 1.264692981972560E-002 4.336789306004781E-003 9.047589577125814E-004 + 6000272 + 0.321663381504649 -1.39142897193463 -3.917019157646589E-002 + 1.256579920152172E-002 4.683789923007624E-003 -1.258594988989431E-003 + 6000273 + 0.324648930551282 -1.39538104296497 -3.904801998382525E-002 + 1.404211276485815E-002 2.729544330582880E-003 -1.198182791282209E-003 + 6000274 + 0.321223963022878 -1.39253230185508 -3.603509083528145E-002 + 1.234851271435078E-002 4.138208222307412E-003 2.916698615769088E-004 + 6000275 + 0.321349228011334 -1.39221979031449 -3.561402108543606E-002 + 1.241045455438754E-002 4.292740946056133E-003 4.998831493500657E-004 + 6000276 + 0.324379742702741 -1.38833977818834 -3.620042042538130E-002 + 1.390900301999063E-002 6.211354386424082E-003 2.099166187150847E-004 + 6000277 + 0.321457479810322 -1.39117525342277 -3.868176372657838E-002 + 1.246398360268161E-002 4.809250290424065E-003 -1.017074033132608E-003 + 6000278 + 0.325405274076550 -1.39361725382059 -3.366648162894059E-002 + 1.441611439318668E-002 3.601714171383542E-003 1.462915030537829E-003 + 6000279 + 0.321794234123648 -1.39021314640619 -3.573859188553418E-002 + 1.263050404917571E-002 5.284999178073548E-003 4.382845760531595E-004 + 6000280 + 0.326444232064343 -1.39553980455841 -3.753707767299938E-002 + 1.492986504512957E-002 2.651038873102111E-003 -4.510422847790933E-004 + 6000281 + 0.322277249464589 -1.39203923743843 -3.998141216047151E-002 + 1.286934859267273E-002 4.382021897621130E-003 -1.659732579536102E-003 + 6000282 + 0.328312462659902 -1.39188336185765 -3.539912210963739E-002 + 1.585367976884838E-002 4.459100260935347E-003 6.061477820066648E-004 + 6000283 + 0.325347229643059 -1.39100999963996 -4.082441159349795E-002 + 1.438741220705580E-002 4.890966047611239E-003 -2.076584380468826E-003 + 6000284 + 0.325755425615411 -1.38888217640230 -3.916570950307285E-002 + 1.458925958623789E-002 5.943145816580859E-003 -1.256378664407702E-003 + 6000285 + 0.325383104362951 -1.39054381044671 -4.065574588764872E-002 + 1.440515177010779E-002 5.121490288988412E-003 -1.993181473557695E-003 + 6000286 + 0.325529431096013 -1.39548980174177 -3.555264887114687E-002 + 1.447750835756422E-002 2.675764588624088E-003 5.302308780096619E-004 + 6000287 + 0.321386839414644 -1.39364212905941 -3.740484666220886E-002 + 1.242905288386607E-002 3.589413702731343E-003 -3.856558410548179E-004 + 6000288 + 0.325609144161828 -1.39058365051225 -3.365164289696592E-002 + 1.451692538887061E-002 5.101789916224030E-003 1.470252582503900E-003 + 6000289 + 0.325746594379357 -1.39018221747378 -3.388130434928219E-002 + 1.458489265963108E-002 5.300293116209953E-003 1.356688105171851E-003 + 6000290 + 0.328670099790430 -1.39148012214160 -3.754968804313675E-002 + 1.603052648558429E-002 4.658496838509829E-003 -4.572779420004985E-004 + 6000291 + 0.327050766991314 -1.39494919091028 -3.584795596588932E-002 + 1.522978835080585E-002 2.943089322051995E-003 3.842055196892361E-004 + 6000292 + 0.324537148578145 -1.39587795189979 -3.718291882528427E-002 + 1.398683809326467E-002 2.483829593105807E-003 -2.759155317796403E-004 + 6000293 + 0.325510509540737 -1.38957080345959 -3.425440936567027E-002 + 1.446815190477895E-002 5.602629064425047E-003 1.172192728395570E-003 + 6000294 + 0.325364297568245 -1.39459990856101 -3.430333353770083E-002 + 1.439585206486989E-002 3.115804712620871E-003 1.148000388020130E-003 + 6000295 + 0.323644249841663 -1.39514928477911 -3.905298580505075E-002 + 1.354531176267529E-002 2.844145614251118E-003 -1.200638322614567E-003 + 6000296 + 0.322252155329533 -1.39173521301220 -3.994150826731383E-002 + 1.285693988279573E-002 4.532357858282674E-003 -1.640000644880718E-003 + 6000297 + 0.326793296706268 -1.39091455480311 -4.029063745626598E-002 + 1.510247278236859E-002 4.938162226599772E-003 -1.812640299750235E-003 + 6000298 + 0.328394129335298 -1.39145794911307 -3.861054959678920E-002 + 1.589406283363007E-002 4.669461100775097E-003 -9.818596105701817E-004 + 6000299 + 0.325717727002889 -1.39559209734865 -3.590486599481333E-002 + 1.457061813298568E-002 2.625180796653218E-003 3.560642812509859E-004 + 6000300 + 0.321281416206461 -1.39340867720813 -3.702359920936095E-002 + 1.237692253541057E-002 3.704852481010806E-003 -1.971341397410737E-004 + 6000301 + 0.326826923545244 -1.39251344124293 -4.043303848440993E-002 + 1.511910079875579E-002 4.147534539539541E-003 -1.883055679299622E-003 + 6000302 + 0.325221626988922 -1.39387263555342 -3.377034941755341E-002 + 1.432530339591360E-002 3.475431363727050E-003 1.411553815991447E-003 + 6000303 + 0.322406645286088 -1.39162516754770 -4.006538258520391E-002 + 1.293333307369588E-002 4.586773849880030E-003 -1.701254817159826E-003 + 6000304 + 0.327187048763822 -1.39463651865951 -3.547316576113219E-002 + 1.529717784133024E-002 3.097701514809212E-003 5.695341992875920E-004 + 6000305 + 0.327480662501029 -1.39487649003504 -3.693682090078323E-002 + 1.544236585728670E-002 2.979038920099771E-003 -1.542234415895329E-004 + 6000306 + 0.328551533470727 -1.39151193343580 -3.818397457052056E-002 + 1.597189704651028E-002 4.642766584423178E-003 -7.709240381764704E-004 + 6000307 + 0.322630404860865 -1.38945264563622 -3.538899387690294E-002 + 1.304397915252749E-002 5.661056507596596E-003 6.111560559036752E-004 + 6000308 + 0.328374974048021 -1.39213603553404 -3.876134862395392E-002 + 1.588459080353605E-002 4.334156550504728E-003 -1.056427686881741E-003 + 6000309 + 0.324324666115425 -1.38831319086554 -3.634772132746308E-002 + 1.388176839359332E-002 6.224501457414479E-003 1.370783178738140E-004 + 6000310 + 0.327780384205777 -1.39040540380995 -3.520423097607128E-002 + 1.559057418045742E-002 5.189930496106032E-003 7.025188076919263E-004 + 6000311 + 0.326421010606110 -1.39541002836368 -3.608433683151303E-002 + 1.491838234857564E-002 2.715211443533721E-003 2.673183834932795E-004 + 6000312 + 0.324795021294935 -1.39575370968382 -3.816709106533256E-002 + 1.411435265874821E-002 2.545265686000613E-003 -7.625753735535234E-004 + 6000313 + 0.325813555169143 -1.39541693890006 -3.874684061627268E-002 + 1.461800386317468E-002 2.711794276901274E-003 -1.049253673599004E-003 + 6000314 + 0.322857896534282 -1.38930726976145 -3.533330948140715E-002 + 1.315647070358410E-002 5.732942908509505E-003 6.386912352132688E-004 + 6000315 + 0.326219515200231 -1.39471810186507 -3.471690125726086E-002 + 1.481874559968870E-002 3.057359724732503E-003 9.434967526056666E-004 + 6000316 + 0.321329945274699 -1.39230542391461 -3.567221135978340E-002 + 1.240091950231233E-002 4.250396290733629E-003 4.711088468913174E-004 + 6000317 + 0.324943199595914 -1.39100652024179 -4.085233942880207E-002 + 1.418762482145983E-002 4.892686562876645E-003 -2.090394316735189E-003 + 6000318 + 0.326617044426315 -1.39248593326675 -4.055213917054404E-002 + 1.501531841732557E-002 4.161136861160018E-003 -1.941949355335786E-003 + 6000319 + 0.322850100717639 -1.38930020663682 -3.535283888796843E-002 + 1.315261577785102E-002 5.736435527964740E-003 6.290342082008193E-004 + 6000320 + 0.327167129230231 -1.39467550377465 -3.550717986735132E-002 + 1.528732790178609E-002 3.078423903439586E-003 5.527146844942592E-004 + 6000321 + 0.326175366886518 -1.39179718675643 -3.352228413895547E-002 + 1.479691485656030E-002 4.501712681218141E-003 1.534218736134025E-003 + 6000322 + 0.323968917553573 -1.39007740521288 -3.395618173788408E-002 + 1.370585554848606E-002 5.352121359507512E-003 1.319662250746563E-003 + 6000323 + 0.323157023880416 -1.38871984144043 -3.622802058959314E-002 + 1.330438512447146E-002 6.023418256348253E-003 1.962687113654486E-004 + 6000324 + 0.322467171269080 -1.39052754228481 -3.454951097363686E-002 + 1.296326235244168E-002 5.129534674689875E-003 1.026268980502423E-003 + 6000325 + 0.328300367708115 -1.39034678218645 -3.766648081609209E-002 + 1.584769897901974E-002 5.218918094875141E-003 -5.150303862311877E-004 + 6000326 + 0.327360300143949 -1.39032093899113 -3.953640998478093E-002 + 1.538284830205775E-002 5.231697204908905E-003 -1.439685031354920E-003 + 6000327 + 0.326573187554760 -1.39309481142322 -4.043854310486605E-002 + 1.499363178839726E-002 3.860054860233954E-003 -1.885777639553315E-003 + 6000328 + 0.325274808255286 -1.39252110692220 -3.334038631599733E-002 + 1.435160081177285E-002 4.143743964976811E-003 1.624164745722223E-003 + 6000329 + 0.322448036910301 -1.39211775354247 -4.012807498610159E-002 + 1.295380067120641E-002 4.343196747700902E-003 -1.732255360214964E-003 + 6000330 + 0.326810673793556 -1.38893153269665 -3.834409546944328E-002 + 1.511106551665390E-002 5.918739797571082E-003 -8.501016538046097E-004 + 6000331 + 0.326775470290585 -1.38869840010547 -3.741564841183009E-002 + 1.509365786127752E-002 6.034020706053717E-003 -3.909971599293355E-004 + 6000332 + 0.326271250871605 -1.39390875709412 -4.021126897748652E-002 + 1.484432818840653E-002 3.457569751128591E-003 -1.773393662065399E-003 + 6000333 + 0.321666944784208 -1.39307414833960 -3.528651321326542E-002 + 1.256756119499773E-002 3.870272475198349E-003 6.618313559388317E-004 + 6000334 + 0.325766832048710 -1.39507466523029 -3.493921370497112E-002 + 1.459489991300033E-002 2.881043970394314E-003 8.335662585066534E-004 + 6000335 + 0.321552673105825 -1.39151724509758 -3.527455850230447E-002 + 1.251105539788419E-002 4.640140039617423E-003 6.677427985786109E-004 + 6000336 + 0.326440517111881 -1.39496814513121 -3.518250039097470E-002 + 1.492802805145723E-002 2.933716716541827E-003 7.132642876744128E-004 + 6000337 + 0.328149349552533 -1.39379829625323 -3.817632697865712E-002 + 1.577302254667368E-002 3.512191140723280E-003 -7.671424075890959E-004 + 6000338 + 0.324135308775169 -1.38971487157048 -3.416375884586458E-002 + 1.378813375374246E-002 5.531389335037621E-003 1.217018182548996E-003 + 6000339 + 0.324286880142571 -1.38901868791716 -3.482913889326955E-002 + 1.386308374183996E-002 5.875642721572888E-003 8.879967618943014E-004 + 6000340 + 0.328695490885568 -1.39186332148561 -3.764840312220126E-002 + 1.604308203819967E-002 4.469009953454875E-003 -5.060912114703549E-004 + 6000341 + 0.326127505166542 -1.39330528092113 -3.372351078671609E-002 + 1.477324788433473E-002 3.755980544394189E-003 1.434714884496157E-003 + 6000342 + 0.323411133267291 -1.38892035601416 -3.885662321348482E-002 + 1.343003877428764E-002 5.924266515672206E-003 -1.103539680879768E-003 + 6000343 + 0.323443535356482 -1.38878773000395 -3.566309895402712E-002 + 1.344606116849591E-002 5.989848281256044E-003 4.756148081073266E-004 + 6000344 + 0.326161896812670 -1.39219123381745 -4.077210626406107E-002 + 1.479025408749908E-002 4.306861747038268E-003 -2.050720103554825E-003 + 6000345 + 0.327496529611136 -1.39347379619798 -3.470387250659136E-002 + 1.545021192830949E-002 3.672652022584027E-003 9.499392933331112E-004 + 6000346 + 0.326907660359911 -1.39442320185806 -3.939126722457996E-002 + 1.515902406000240E-002 3.203183783680173E-003 -1.367913902440976E-003 + 6000347 + 0.327627930876646 -1.39427354730877 -3.562233577430311E-002 + 1.551518807423184E-002 3.277185931186497E-003 4.957716483304529E-004 + 6000348 + 0.325119576127018 -1.39376660753008 -3.370627018966749E-002 + 1.427484062701359E-002 3.527860785085645E-003 1.443240126207252E-003 + 6000349 + 0.321582888441476 -1.39198483014723 -3.515228871706261E-002 + 1.252599647208718E-002 4.408925566155315E-003 7.282035511970817E-004 + 6000350 + 0.328649590429548 -1.39230144150209 -3.789609952169283E-002 + 1.602038488443426E-002 4.252365539779506E-003 -6.285737258914244E-004 + 6000351 + 0.325091488310059 -1.39588396719579 -3.697135848001232E-002 + 1.426095158198591E-002 2.480855110709554E-003 -1.713018066956808E-004 + 6000352 + 0.323629747250521 -1.38958719080047 -3.983511560394539E-002 + 1.353814042779786E-002 5.594525746332192E-003 -1.587390913967920E-003 + 6000353 + 0.321678639713746 -1.38999980605140 -3.649592552125010E-002 + 1.257334417924268E-002 5.390493093753963E-003 6.379335151967012E-005 + 6000354 + 0.321979789899611 -1.39044531600697 -3.911106486620910E-002 + 1.272225886697657E-002 5.170194455300030E-003 -1.229357631657783E-003 + 6000355 + 0.325389900698438 -1.39279507601704 -4.088553189135913E-002 + 1.440851246594727E-002 4.008269958578387E-003 -2.106807539867057E-003 + 6000356 + 0.325843612080240 -1.38834809342622 -3.662007773836583E-002 + 1.463286659858156E-002 6.207242613925633E-003 2.401761837715437E-006 + 6000357 + 0.321369009956186 -1.39207775902686 -3.555942305231640E-002 + 1.242023645816423E-002 4.362973493929667E-003 5.268811371797942E-004 + 6000358 + 0.325504520827021 -1.39403046328794 -4.038166123959698E-002 + 1.446519056696509E-002 3.397387686834489E-003 -1.857650327660951E-003 + 6000359 + 0.321990553923499 -1.38951059135313 -3.685720838148137E-002 + 1.272758153098724E-002 5.632403135476837E-003 -1.148561291719788E-004 + 6000360 + 0.324610041911226 -1.38980909225812 -3.401440587559276E-002 + 1.402288285910944E-002 5.484798481249997E-003 1.290871203314320E-003 + 6000361 + 0.328509070048447 -1.39256561942476 -3.832567067658864E-002 + 1.595089945937337E-002 4.121733135395790E-003 -8.409908433077421E-004 + 6000362 + 0.324576175323637 -1.39320821636194 -4.080080161764887E-002 + 1.400613629028089E-002 3.803977654144154E-003 -2.064909567216185E-003 + 6000363 + 0.322653205268223 -1.39479071554500 -3.866475003855334E-002 + 1.305525364512712E-002 3.021453243581057E-003 -1.008660994860108E-003 + 6000364 + 0.325278470241920 -1.39300006526267 -4.085198724804461E-002 + 1.435341161456094E-002 3.906905553258331E-003 -2.090220168121022E-003 + 6000365 + 0.327882444238280 -1.39058964691285 -3.907161492253900E-002 + 1.564104148409440E-002 5.098824777354270E-003 -1.209850168875113E-003 + 6000366 + 0.327925534924085 -1.39112239948916 -3.496856334495498E-002 + 1.566234924454749E-002 4.835385844669870E-003 8.190532590849669E-004 + 6000367 + 0.327291588883165 -1.38906313116244 -3.674455074075982E-002 + 1.534887151431583E-002 5.853666138781197E-003 -5.914845181920610E-005 + 6000368 + 0.326403910822977 -1.39105116007004 -3.374528293181369E-002 + 1.490992673743835E-002 4.870612772465192E-003 1.423948853656114E-003 + 6000369 + 0.328034117962957 -1.39191633393057 -3.935146673723238E-002 + 1.571604208647744E-002 4.442796017492191E-003 -1.348233100558018E-003 + 6000370 + 0.323887294249176 -1.39308506929055 -3.356970859695257E-002 + 1.366549393007587E-002 3.864872212877050E-003 1.510767984034018E-003 + 6000371 + 0.324195814984085 -1.39153924083899 -4.089966051523319E-002 + 1.381805325447577E-002 4.629263443433466E-003 -2.113793952996017E-003 + 6000372 + 0.323696388851772 -1.38910872113090 -3.494303980046445E-002 + 1.357109379693476E-002 5.831122516909043E-003 8.316743061108993E-004 + 6000373 + 0.328595123870093 -1.39262055299375 -3.630079724885421E-002 + 1.599345190855066E-002 4.094569229621872E-003 1.602816391441369E-004 + 6000374 + 0.326120765455020 -1.39220930951942 -3.349891101613327E-002 + 1.476991518827874E-002 4.297923557253797E-003 1.545776428773127E-003 + 6000375 + 0.325484317791356 -1.39317547361155 -4.077391072541323E-002 + 1.445520043948558E-002 3.820168500697788E-003 -2.051612385251454E-003 + 6000376 + 0.325938226310969 -1.39515654081679 -3.513803924942247E-002 + 1.467965205409683E-002 2.840557601902009E-003 7.352497199315036E-004 + 6000377 + 0.321076313569735 -1.39158800158611 -3.754184390774611E-002 + 1.227550205973084E-002 4.605151914460645E-003 -4.533991233011673E-004 + 6000378 + 0.322061849593275 -1.38999211007948 -3.550101842230587E-002 + 1.276283627396840E-002 5.394298647622158E-003 5.557614356104747E-004 + 6000379 + 0.328448014596534 -1.39176878090750 -3.857068065062026E-002 + 1.592070836541795E-002 4.515758988744939E-003 -9.621449567273610E-004 + 6000380 + 0.327573537859497 -1.39067587171533 -3.953481342703309E-002 + 1.548829146402245E-002 5.056187780465731E-003 -1.438895555174500E-003 + 6000381 + 0.325341975557433 -1.39322163371681 -4.078006057193613E-002 + 1.438481413288207E-002 3.797342953904623E-003 -2.054653401055379E-003 + 6000382 + 0.326945407039128 -1.39080439717213 -3.413440781683218E-002 + 1.517768928158405E-002 4.992633682997575E-003 1.231531868836375E-003 + 6000383 + 0.326864905896984 -1.38950094451344 -3.503286762493725E-002 + 1.513788255720786E-002 5.637173367032906E-003 7.872556636559166E-004 + 6000384 + 0.321872038730314 -1.39444412969432 -3.725713409567794E-002 + 1.266897737328358E-002 3.192835252123807E-003 -3.126139777195664E-004 + 6000385 + 0.325656830678744 -1.38929012479731 -3.972454209455978E-002 + 1.454050572555626E-002 5.741420861043140E-003 -1.532713811330532E-003 + 6000386 + 0.321381796697484 -1.39297273615133 -3.582742182750125E-002 + 1.242655932853529E-002 3.920419428636525E-003 3.943593729806181E-004 + 6000387 + 0.325031722246969 -1.38871352884892 -3.520767103604314E-002 + 1.423139807333841E-002 6.026539747343834E-003 7.008177446325606E-004 + 6000388 + 0.321818492658012 -1.39053648944325 -3.893028585473215E-002 + 1.264249956582932E-002 5.125110426032039E-003 -1.139964859192371E-003 + 6000389 + 0.328229706719982 -1.39063530392342 -3.842585640223736E-002 + 1.581275807751381E-002 5.076248004065306E-003 -8.905313275931080E-004 + 6000390 + 0.327031282654416 -1.39046595458131 -3.436136073991577E-002 + 1.522015361013151E-002 5.159988959845626E-003 1.119306722521987E-003 + 6000391 + 0.326576412217448 -1.39384168926042 -3.418873736070407E-002 + 1.499522634041712E-002 3.490733886441843E-003 1.204666645302896E-003 + 6000392 + 0.322057300552805 -1.39399573472489 -3.539654307306134E-002 + 1.276058683507447E-002 3.414560490852700E-003 6.074230806596391E-004 + 6000393 + 0.327117831128816 -1.39014808504543 -3.464203976347065E-002 + 1.526295065839501E-002 5.317171139694695E-003 9.805147472618755E-004 + 6000394 + 0.323831937101924 -1.38978966102672 -4.008662335125708E-002 + 1.363812057058993E-002 5.494406961976909E-003 -1.711758088260099E-003 + 6000395 + 0.323291350089045 -1.39111881770597 -4.052780949033966E-002 + 1.337080761514683E-002 4.837156987941165E-003 -1.929918658028077E-003 + 6000396 + 0.322050969058998 -1.39140096523577 -3.967628168503533E-002 + 1.275745599714884E-002 4.697638856237326E-003 -1.508849692523487E-003 + 6000397 + 0.322065436123730 -1.39461505964254 -3.660470991700977E-002 + 1.276460976469764E-002 3.108312708032919E-003 1.000094133619592E-005 + 6000398 + 0.325123972979440 -1.39448560316462 -4.010971214210824E-002 + 1.427701481097967E-002 3.172327182835760E-003 -1.723175182590891E-003 + 6000399 + 0.327666613656848 -1.39046306711613 -3.928421544112214E-002 + 1.553431618507078E-002 5.161416772263869E-003 -1.314978245571975E-003 diff --git a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/check_init_cond.ipynb b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/check_init_cond.ipynb index b8794b9f0..33b054177 100644 --- a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/check_init_cond.ipynb +++ b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/check_init_cond.ipynb @@ -7,7 +7,7 @@ "outputs": [], "source": [ "import numpy as np\n", - "import swiftestio as swio\n", + "import swiftest\n", "import matplotlib.pyplot as plt" ] }, @@ -20,14 +20,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "Reading Swifter file param.swifter.in\n" + "Reading Swifter file param.swifter.in\n", + "Reading in time 1.355e-01\n", + "Creating Dataset\n", + "Successfully converted 397 output frames.\n", + "Swifter simulation data stored as xarray DataSet .ds\n" ] } ], "source": [ - "inparfile = 'param.swifter.in'\n", - "paramgr = swio.read_swifter_param(inparfile)\n", - "swifterdat = swio.swifter2xr(paramgr)" + "swiftersim = swiftest.Simulation(param_file=\"param.swifter.in\", codename=\"Swifter\")\n", + "swiftersim.bin2xr()" ] }, { @@ -38,8 +41,8 @@ { "data": { "text/plain": [ - "[,\n", - " ]" + "[,\n", + " ]" ] }, "execution_count": 3, @@ -48,7 +51,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -60,7 +63,7 @@ } ], "source": [ - "swifterdat.plot.scatter(x='px', y='py', hue='id', hue_style=\"discrete\", marker='.')" + "swiftersim.ds.plot.scatter(x='px', y='py', hue='id', hue_style=\"discrete\", marker='.')" ] }, { @@ -72,14 +75,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "Reading Swiftest file param.swiftest.in\n" + "Reading Swiftest file param.swiftest.in\n", + "Reading in time 2.002e-01\n", + "Creating Dataset\n", + "Successfully converted 586 output frames.\n", + "Swiftest simulation data stored as xarray DataSet .ds\n" ] } ], "source": [ - "param_file_name = 'param.swiftest.in'\n", - "config = swio.read_swiftest_config(param_file_name)\n", - "swiftestdat = swio.swiftest2xr(config)" + "swiftestsim = swiftest.Simulation(param_file=\"param.swiftest.in\")\n", + "swiftestsim.bin2xr()" ] }, { @@ -90,9 +96,9 @@ { "data": { "text/plain": [ - "[,\n", - " ,\n", - " ]" + "[,\n", + " ,\n", + " ]" ] }, "execution_count": 5, @@ -101,7 +107,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -113,12 +119,12 @@ } ], "source": [ - "swiftestdat.plot.scatter(x='px', y='py', hue='id', hue_style=\"discrete\", marker='.')" + "swiftestsim.ds.plot.scatter(x='px', y='py', hue='id', hue_style=\"discrete\", marker='.')" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -476,25 +482,20 @@ " fill: currentColor;\n", "}\n", "
<xarray.Dataset>\n",
-       "Dimensions:   (id: 2, time: 41)\n",
+       "Dimensions:   (id: 2, time: 397)\n",
        "Coordinates:\n",
        "  * id        (id) int64 2 100\n",
-       "    time (y)  (time) float64 0.0 0.0006845 0.001369 ... 0.02601 0.02669 0.02738\n",
+       "    time (y)  (time) float64 0.0 0.0003422 0.0006845 ... 0.1348 0.1352 0.1355\n",
        "Dimensions without coordinates: time\n",
        "Data variables:\n",
        "    Mass      (time, id) float64 0.0 nan 0.0 nan 0.0 nan ... nan 0.0 nan 0.0 nan\n",
        "    Radius    (time, id) float64 0.0 nan 0.0 nan 0.0 nan ... nan 0.0 nan 0.0 nan\n",
-       "    delta x   (time, id) float64 0.0 0.0 0.0 0.0 ... -4.108e-15 0.0 -4.441e-15\n",
-       "    delta y   (time, id) float64 0.0 0.0 0.0 0.0 ... -3.886e-16 0.0 -3.886e-16\n",
-       "    pz        (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n",
-       "    vx        (time, id) float64 0.0 0.0 0.0 ... -2.984e-13 0.0 -3.062e-13\n",
-       "    vy        (time, id) float64 0.0 0.0 0.0 0.0 ... -3.553e-14 0.0 -3.73e-14\n",
-       "    vz        (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0
  • " ], "text/plain": [ "\n", - "Dimensions: (id: 2, time: 41)\n", + "Dimensions: (id: 2, time: 397)\n", "Coordinates:\n", " * id (id) int64 2 100\n", - " time (y) (time) float64 0.0 0.0006845 0.001369 ... 0.02601 0.02669 0.02738\n", + " time (y) (time) float64 0.0 0.0003422 0.0006845 ... 0.1348 0.1352 0.1355\n", "Dimensions without coordinates: time\n", "Data variables:\n", " Mass (time, id) float64 0.0 nan 0.0 nan 0.0 nan ... nan 0.0 nan 0.0 nan\n", " Radius (time, id) float64 0.0 nan 0.0 nan 0.0 nan ... nan 0.0 nan 0.0 nan\n", - " delta x (time, id) float64 0.0 0.0 0.0 0.0 ... -4.108e-15 0.0 -4.441e-15\n", - " delta y (time, id) float64 0.0 0.0 0.0 0.0 ... -3.886e-16 0.0 -3.886e-16\n", - " pz (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0\n", - " vx (time, id) float64 0.0 0.0 0.0 ... -2.984e-13 0.0 -3.062e-13\n", - " vy (time, id) float64 0.0 0.0 0.0 0.0 ... -3.553e-14 0.0 -3.73e-14\n", - " vz (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 0.0" + " delta x (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 nan\n", + " delta y (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 nan\n", + " pz (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 nan\n", + " vx (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 nan\n", + " vy (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 nan\n", + " vz (time, id) float64 0.0 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0 nan" ] }, - "execution_count": 21, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "swiftdiff = swiftestdat - swifterdat\n", + "swiftdiff = swiftestsim.ds - swiftersim.ds\n", "swiftdiff = swiftdiff.rename_vars({'time' : 'time (y)','px' : 'delta x','py' : 'delta y'})\n", "swiftdiff" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[,\n", - " ]" + "[,\n", + " ]" ] }, - "execution_count": 23, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] @@ -880,7 +881,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -907,9 +908,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "swiftestOOF", "language": "python", - "name": "python3" + "name": "swiftestoof" }, "language_info": { "codemirror_mode": { @@ -921,7 +922,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.7.10" } }, "nbformat": 4, diff --git a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/param.swifter.in b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/param.swifter.in index 927ac2883..40cedba41 100644 --- a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/param.swifter.in +++ b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/param.swifter.in @@ -10,7 +10,7 @@ ISTEP_DUMP 1 BIN_OUT bin.swifter.dat OUT_TYPE REAL8 OUT_FORM XV -OUT_STAT NEW +OUT_STAT UNKNOWN J2 4.7535806948127355e-12 J4 -2.2473967953572827e-18 CHK_CLOSE yes diff --git a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/swiftest_rmvs_vs_swifter_rmvs.ipynb b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/swiftest_rmvs_vs_swifter_rmvs.ipynb deleted file mode 100644 index f6fdec6fd..000000000 --- a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/swiftest_rmvs_vs_swifter_rmvs.ipynb +++ /dev/null @@ -1,603 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import swiftestio as swio\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reading Swifter file param.swifter.in\n" - ] - } - ], - "source": [ - "inparfile = 'param.swifter.in'\n", - "paramgr = swio.read_swifter_param(inparfile)\n", - "swifterdat = swio.swifter2xr(paramgr)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reading Swiftest file param.swiftest.in\n" - ] - } - ], - "source": [ - "param_file_name = 'param.swiftest.in'\n", - "config = swio.read_swiftest_config(param_file_name)\n", - "swiftestdat = swio.swiftest2xr(config)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "swiftdiff = swiftestdat - swifterdat" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "swiftdiff = swiftdiff.rename({'time' : 'time (y)'})\n" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "swiftdiff['px'].sel(id=100).plot.line(x=\"time (y)\")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
    \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
    <xarray.DataArray 'vx' (time (y): 397)>\n",
    -       "array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,\n",
    -       "        0.,  0.,  0.,  0.,  0.,  0., nan])\n",
    -       "Coordinates:\n",
    -       "    id        int64 100\n",
    -       "  * time (y)  (time (y)) float64 0.0 0.0003422 0.0006845 ... 0.1352 0.1355
    " - ], - "text/plain": [ - "\n", - "array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", - " 0., 0., 0., 0., 0., 0., nan])\n", - "Coordinates:\n", - " id int64 100\n", - " * time (y) (time (y)) float64 0.0 0.0003422 0.0006845 ... 0.1352 0.1355" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "swiftdiff.sel(id=100)['vx']" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.6" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/examples/rmvs_swifter_comparison/1pl_1tp_encounter/swiftest_vs_swifter.ipynb b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/swiftest_vs_swifter.ipynb new file mode 100644 index 000000000..8232207e5 --- /dev/null +++ b/examples/rmvs_swifter_comparison/1pl_1tp_encounter/swiftest_vs_swifter.ipynb @@ -0,0 +1,138 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import swiftest\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swifter file param.swifter.in\n", + "Reading in time 1.355e-01\n", + "Creating Dataset\n", + "Successfully converted 397 output frames.\n", + "Swifter simulation data stored as xarray DataSet .ds\n" + ] + } + ], + "source": [ + "swiftersim = swiftest.Simulation(param_file=\"param.swifter.in\", codename=\"Swifter\")\n", + "swiftersim.bin2xr()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading Swiftest file param.swiftest.in\n", + "Reading in time 2.002e-01\n", + "Creating Dataset\n", + "Successfully converted 586 output frames.\n", + "Swiftest simulation data stored as xarray DataSet .ds\n" + ] + } + ], + "source": [ + "swiftestsim = swiftest.Simulation(param_file=\"param.swiftest.in\")\n", + "swiftestsim.bin2xr()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "swiftdiff = swiftestsim.ds - swiftersim.ds" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "swiftdiff = swiftdiff.rename({'time' : 'time (y)'})\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "swiftdiff['px'].plot.line(x=\"time (y)\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "swiftestOOF", + "language": "python", + "name": "swiftestoof" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/src/discard/discard.f90 b/src/discard/discard.f90 index daee4b15a..4843f9603 100644 --- a/src/discard/discard.f90 +++ b/src/discard/discard.f90 @@ -12,28 +12,32 @@ module subroutine discard_system(self, param) class(swiftest_nbody_system), intent(inout) :: self !! Swiftest system object class(swiftest_parameters), intent(in) :: param !! Current run configuration parameters - if (self%tp%nbody == 0) return - select type(system => self) - class is (whm_nbody_system) - associate(cb => system%cb, pl => system%pl, npl => system%pl%nbody, tp => system%tp, ntp => system%tp%nbody) - if ((param%rmin >= 0.0_DP) .or. (param%rmax >= 0.0_DP) .or. & - (param%rmaxu >= 0.0_DP) .or. ((param%qmin >= 0.0_DP) .and. (param%qmin_coord == "BARY"))) then - if (npl > 0) call pl%h2b(cb) - if (ntp > 0) call tp%h2b(cb) - end if - if ((param%rmin >= 0.0_DP) .or. (param%rmax >= 0.0_DP) .or. (param%rmaxu >= 0.0_DP)) then - if (ntp > 0) call tp%discard_sun(system, param) - end if - if (param%qmin >= 0.0_DP .and. ntp > 0) call tp%discard_peri(system, param) - if (param%lclose .and. ntp > 0) call tp%discard_pl(system, param) + associate(tp => self%tp) + call tp%discard(self, param) + if (any(tp%ldiscard(1:ntp))) then + ! Spill the discards to the spill list + call tp%spill(system%tp_discards, tp%ldiscard) + call self%write_discard(param, system%tp_discards) + end if + end associate + + !if (self%tp%nbody == 0) return + !select type(system => self) + !class is (whm_nbody_system) + ! associate(cb => system%cb, pl => system%pl, npl => system%pl%nbody, tp => system%tp, ntp => system%tp%nbody) + ! if ((param%rmin >= 0.0_DP) .or. (param%rmax >= 0.0_DP) .or. & + ! (param%rmaxu >= 0.0_DP) .or. ((param%qmin >= 0.0_DP) .and. (param%qmin_coord == "BARY"))) then + ! if (npl > 0) call pl%h2b(cb) + ! if (ntp > 0) call tp%h2b(cb) + ! end if + ! if ((param%rmin >= 0.0_DP) .or. (param%rmax >= 0.0_DP) .or. (param%rmaxu >= 0.0_DP)) then + ! if (ntp > 0) call tp%discard_sun(system, param) + ! end if + ! if (param%qmin >= 0.0_DP .and. ntp > 0) call tp%discard_peri(system, param) + ! if (param%lclose .and. ntp > 0) call tp%discard_pl(system, param) - if (any(tp%ldiscard(1:ntp))) then - ! Spill the discards to the spill list - call tp%spill(system%tp_discards, tp%ldiscard) - call self%write_discard(param, system%tp_discards) - end if + end associate - end select return end subroutine discard_system diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index f7ed5beb2..4476b1e7e 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -157,8 +157,9 @@ module swiftest_classes !! component list, such as setup_body and util_spill contains private - procedure(abstract_set_mu), public, deferred :: set_mu - procedure(abstract_step_body), public, deferred :: step + procedure(abstract_discard_body), public, deferred :: discard + procedure(abstract_set_mu), public, deferred :: set_mu + procedure(abstract_step_body), public, deferred :: step ! These are concrete because the implementation is the same for all types of particles procedure, public :: initialize => io_read_body_in !! Read in body initial conditions from a file procedure, public :: read_frame => io_read_frame_body !! I/O routine for writing out a single frame of time-series data for the central body @@ -283,19 +284,25 @@ subroutine abstract_copy(self, src, mask) logical, dimension(:), intent(in) :: mask end subroutine abstract_copy + subroutine abstract_discard_body(self, param) + import swiftest_body, swiftest_parameters + class(swiftest_body), intent(inout) :: self !! Swiftest particle object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + end subroutine abstract_discard_body + subroutine abstract_initialize(self, param) import swiftest_base, swiftest_parameters - class(swiftest_base), intent(inout) :: self !! Swiftest base object - class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters + class(swiftest_base), intent(inout) :: self !! Swiftest base object + class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters end subroutine abstract_initialize subroutine abstract_read_frame(self, iu, param, form, ierr) import DP, I4B, swiftest_base, swiftest_parameters - class(swiftest_base), intent(inout) :: self !! Swiftest base object - integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to + class(swiftest_base), intent(inout) :: self !! Swiftest base object + integer(I4B), intent(inout) :: iu !! Unit number for the output file to write frame to class(swiftest_parameters), intent(inout) :: param !! Current run configuration parameters - character(*), intent(in) :: form !! Input format code ("XV" or "EL") - integer(I4B), intent(out) :: ierr !! Error code + character(*), intent(in) :: form !! Input format code ("XV" or "EL") + integer(I4B), intent(out) :: ierr !! Error code end subroutine abstract_read_frame subroutine abstract_set_mu(self, cb)