diff --git a/examples/Basic_Simulation/.swiftest/param.in b/examples/Basic_Simulation/.swiftest/param.in new file mode 100644 index 000000000..0ee870562 --- /dev/null +++ b/examples/Basic_Simulation/.swiftest/param.in @@ -0,0 +1,37 @@ +! VERSION Swiftest input file +T0 0.0 +TSTART 0.0 +TSTOP 10.0 +DT 0.005 +ISTEP_OUT 200 +ISTEP_DUMP 200 +NC_IN init_cond.nc +IN_TYPE NETCDF_DOUBLE +IN_FORM EL +BIN_OUT bin.nc +OUT_FORM XVEL +OUT_TYPE NETCDF_DOUBLE +OUT_STAT REPLACE +CHK_QMIN 0.004650467260962157 +CHK_RMIN 0.004650467260962157 +CHK_RMAX 10000.0 +CHK_EJECT 10000.0 +CHK_QMIN_COORD HELIO +CHK_QMIN_RANGE 0.004650467260962157 10000.0 +MU2KG 1.988409870698051e+30 +TU2S 31557600.0 +DU2M 149597870700.0 +GMTINY 9.869231602224408e-07 +RESTART NO +CHK_CLOSE YES +GR YES +FRAGMENTATION YES +ROTATION YES +ENERGY NO +EXTRA_FORCE NO +BIG_DISCARD NO +RHILL_PRESENT NO +INTERACTION_LOOPS TRIANGULAR +ENCOUNTER_CHECK TRIANGULAR +TIDES NO +MIN_GMFRAG 9.869231602224408e-10 diff --git a/examples/Basic_Simulation/initial_conditions.ipynb b/examples/Basic_Simulation/initial_conditions.ipynb index cef068fa0..384c55c1d 100644 --- a/examples/Basic_Simulation/initial_conditions.ipynb +++ b/examples/Basic_Simulation/initial_conditions.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "2c4f59ea-1251-49f6-af1e-5695d7e25500", "metadata": {}, "outputs": [], @@ -14,10 +14,100 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "6054c7ab-c748-4b39-9fee-d8b27326f497", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "codename Swiftest\n", + "integrator symba\n", + "param_file /home/daminton/git_debug/swiftest/examples/Basic_Simulation/.swiftest/param.in\n", + "driver_executable /home/daminton/git_debug/swiftest/bin/swiftest_driver\n", + "gmtiny 9.869231602224408e-07 AU^3 / y^2 \n", + "mtiny 2.5e-08 MSun\n", + "t0 0.0 y\n", + "tstart 0.0 y\n", + "tstop 10.0 y\n", + "dt 0.005 y\n", + "istep_out 200 \n", + "istep_dump 200 \n", + "tstep_out 1.0 y\n", + "init_cond_file_type NETCDF_DOUBLE\n", + "init_cond_format EL\n", + "init_cond_file_name init_cond.nc\n", + "output_file_type NETCDF_DOUBLE\n", + "output_file_name bin.nc\n", + "output_format XVEL\n", + "restart REPLACE\n", + "rmin 0.004650467260962157 AU\n", + "rmax 10000.0 AU\n", + "qmin_coord HELIO\n", + "MU: MSun 1.988409870698051e+30 kg / MSun\n", + "DU: AU 149597870700.0 m / AU\n", + "TU: y 31557600.0 s / y\n", + "close_encounter_check True\n", + "fragmentation True\n", + "minimum_fragment_gmass 9.869231602224408e-10 AU^3 / y^2 \n", + "minimum_fragment_mass 2.5e-11 MSun\n", + "rotation True\n", + "general_relativity True\n", + "compute_conservation_values False\n", + "rhill_present False\n", + "extra_force False\n", + "big_discard False\n", + "interaction_loops TRIANGULAR\n", + "encounter_check_loops TRIANGULAR\n", + "restart False\n", + "ephemeris_date 2027-04-30\n" + ] + }, + { + "data": { + "text/plain": [ + "{'GMTINY': 9.869231602224408e-07,\n", + " 'T0': 0.0,\n", + " 'TSTART': 0.0,\n", + " 'TSTOP': 10.0,\n", + " 'DT': 0.005,\n", + " 'ISTEP_OUT': 200,\n", + " 'ISTEP_DUMP': 200,\n", + " 'IN_TYPE': 'NETCDF_DOUBLE',\n", + " 'IN_FORM': 'EL',\n", + " 'NC_IN': 'init_cond.nc',\n", + " 'OUT_TYPE': 'NETCDF_DOUBLE',\n", + " 'BIN_OUT': 'bin.nc',\n", + " 'OUT_FORM': 'XVEL',\n", + " 'OUT_STAT': 'REPLACE',\n", + " 'CHK_RMIN': 0.004650467260962157,\n", + " 'CHK_RMAX': 10000.0,\n", + " 'CHK_QMIN_COORD': 'HELIO',\n", + " 'CHK_QMIN': 0.004650467260962157,\n", + " 'CHK_QMIN_RANGE': '0.004650467260962157 10000.0',\n", + " 'MU2KG': 1.988409870698051e+30,\n", + " 'DU2M': 149597870700.0,\n", + " 'TU2S': 31557600.0,\n", + " 'CHK_CLOSE': True,\n", + " 'FRAGMENTATION': True,\n", + " 'MIN_GMFRAG': 9.869231602224408e-10,\n", + " 'ROTATION': True,\n", + " 'GR': True,\n", + " 'ENERGY': False,\n", + " 'RHILL_PRESENT': False,\n", + " 'EXTRA_FORCE': False,\n", + " 'BIG_DISCARD': False,\n", + " 'INTERACTION_LOOPS': 'TRIANGULAR',\n", + " 'ENCOUNTER_CHECK': 'TRIANGULAR',\n", + " 'RESTART': False}" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Initialize the simulation object as a variable\n", "sim = swiftest.Simulation(tstart=0.0, tstop=10.0, dt=0.005, tstep_out=1.0, fragmentation=True, minimum_fragment_mass = 2.5e-11, mtiny=2.5e-8)\n", @@ -26,10 +116,459 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "1c122676-bacb-447c-bc37-5ef8019be0d0", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Creating the Sun as a central body\n", + "Fetching ephemerides data for Mercury from JPL/Horizons\n", + "Fetching ephemerides data for Venus from JPL/Horizons\n", + "Fetching ephemerides data for Earth from JPL/Horizons\n", + "Fetching ephemerides data for Mars from JPL/Horizons\n", + "Fetching ephemerides data for Jupiter from JPL/Horizons\n", + "Fetching ephemerides data for Saturn from JPL/Horizons\n", + "Fetching ephemerides data for Uranus from JPL/Horizons\n", + "Fetching ephemerides data for Neptune from JPL/Horizons\n", + "Fetching ephemerides data for Pluto from JPL/Horizons\n", + "Writing initial conditions to file /home/daminton/git_debug/swiftest/examples/Basic_Simulation/.swiftest/init_cond.nc\n", + "Writing parameter inputs to file /home/daminton/git_debug/swiftest/examples/Basic_Simulation/.swiftest/param.in\n" + ] + }, + { + "data": { + "text/html": [ + "
<xarray.Dataset>\n", + "Dimensions: (name: 10, time: 1)\n", + "Coordinates:\n", + " * name (name) <U32 'Sun' 'Mercury' 'Venus' ... 'Neptune' 'Pluto'\n", + " * time (time) float64 0.0\n", + "Data variables: (12/20)\n", + " particle_type (name) <U32 'Central Body' 'Massive Body' ... 'Massive Body'\n", + " id (name) int64 0 1 2 3 4 5 6 7 8 9\n", + " a (time, name) float64 nan 0.3871 0.7233 ... 19.24 30.04 39.37\n", + " e (time, name) float64 nan 0.2056 0.006718 ... 0.008956 0.2487\n", + " inc (time, name) float64 nan 7.003 3.394 ... 0.773 1.771 17.17\n", + " capom (time, name) float64 nan 48.3 76.6 ... 74.01 131.8 110.3\n", + " ... ...\n", + " roty (time, name) float64 -38.76 -18.38 ... -2.177e+03 261.3\n", + " rotz (time, name) float64 82.25 34.36 8.703 ... 2.33e+03 -38.57\n", + " j2rp2 (time, name) float64 4.754e-12 nan nan nan ... nan nan nan\n", + " j4rp4 (time, name) float64 -2.247e-18 nan nan nan ... nan nan nan\n", + " ntp (time) int64 0\n", + " npl (time) int64 9
array(['Sun', 'Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn',\n", + " 'Uranus', 'Neptune', 'Pluto'], dtype='<U32')
array([0.])
array(['Central Body', 'Massive Body', 'Massive Body', 'Massive Body',\n", + " 'Massive Body', 'Massive Body', 'Massive Body', 'Massive Body',\n", + " 'Massive Body', 'Massive Body'], dtype='<U32')
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
array([[ nan, 0.38709858, 0.72332976, 0.99999049, 1.52371193,\n", + " 5.2027278 , 9.53201195, 19.24498838, 30.03895991, 39.36791815]])
array([[ nan, 0.2056234 , 0.00671761, 0.016714 , 0.09344151,\n", + " 0.04824498, 0.0548633 , 0.04796175, 0.00895557, 0.24871785]])
array([[ nan, 7.00330251e+00, 3.39443927e+00, 3.63786261e-03,\n", + " 1.84744167e+00, 1.30363113e+00, 2.48790636e+00, 7.73010260e-01,\n", + " 1.77111935e+00, 1.71705506e+01]])
array([[ nan, 48.29611837, 76.60235892, 175.0251726 ,\n", + " 49.47285721, 100.51925884, 113.63057817, 74.01258098,\n", + " 131.82211597, 110.3314333 ]])
array([[ nan, 29.20442404, 54.96037946, 287.96196288,\n", + " 286.73797713, 273.58984029, 339.54673564, 93.59554912,\n", + " 284.47484297, 113.08266359]])
array([[ nan, 338.33948747, 200.47893396, 114.3482934 ,\n", + " 209.33967735, 129.55367007, 290.89958066, 262.86586373,\n", + " 308.45137205, 55.11416408]])
array([[3.94769264e+01, 6.55370981e-06, 9.66331340e-05, 1.20026936e-04,\n", + " 1.27398020e-05, 3.76922511e-02, 1.12858998e-02, 1.72365895e-03,\n", + " 2.03361005e-03, 2.92421677e-07]])
array([[4.65046726e-03, 1.63063818e-05, 4.04537843e-05, 4.25875607e-05,\n", + " 2.26574081e-05, 4.67326170e-04, 3.89256877e-04, 1.69534499e-04,\n", + " 1.64587904e-04, 7.94329488e-06]])
array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
array([[0.07 , 0.346 , 0.4 , 0.3307, 0.3644, 0.2756, 0.22 , 0.23 ,\n", + " 0.23 , 0.4 ]])
array([[ 1.12093063e+01, 3.57301808e+00, 1.76502820e-01,\n", + " 6.15723963e+00, 9.97922435e+02, -8.09864397e+01,\n", + " 4.41959548e+02, -6.77300026e+02, 1.23222411e+03,\n", + " -2.43594050e+02]])
array([[-3.87593720e+01, -1.83803171e+01, -3.66124758e+00,\n", + " 5.72230591e-02, -9.09554903e+02, -2.38802461e+03,\n", + " 3.78526388e+02, -3.00810991e+03, -2.17730408e+03,\n", + " 2.61286630e+02]])
array([[ 82.25088158, 34.3614385 , 8.70286627, 2301.20825284,\n", + " 1783.3823046 , 5008.72231853, 5135.90911593, -836.30132662,\n", + " 2329.82278781, -38.57352022]])
array([[4.75358069e-12, nan, nan, nan,\n", + " nan, nan, nan, nan,\n", + " nan, nan]])
array([[-2.2473968e-18, nan, nan, nan,\n", + " nan, nan, nan, nan,\n", + " nan, nan]])
array([0])
array([9])
<xarray.Dataset>\n", + "Dimensions: (name: 5, time: 1)\n", + "Coordinates:\n", + " * name (name) <U14 'MassiveBody_01' ... 'MassiveBody_05'\n", + " * time (time) float64 0.0\n", + "Data variables: (12/18)\n", + " particle_type (name) <U14 'Massive Body' 'Massive Body' ... 'Massive Body'\n", + " id (name) int64 10 11 12 13 14\n", + " a (time, name) float64 1.311 0.4269 0.999 0.8757 0.6402\n", + " e (time, name) float64 0.2241 0.1367 0.1002 0.1051 0.07477\n", + " inc (time, name) float64 59.21 8.384 79.9 38.54 18.64\n", + " capom (time, name) float64 248.3 69.55 197.0 300.4 103.7\n", + " ... ...\n", + " Ip3 (time, name) float64 0.4 0.4 0.4 0.4 0.4\n", + " rotx (time, name) float64 0.0 0.0 0.0 0.0 0.0\n", + " roty (time, name) float64 0.0 0.0 0.0 0.0 0.0\n", + " rotz (time, name) float64 0.0 0.0 0.0 0.0 0.0\n", + " ntp (time) int64 0\n", + " npl (time) int64 4
array(['MassiveBody_01', 'MassiveBody_02', 'MassiveBody_03', 'MassiveBody_04',\n", + " 'MassiveBody_05'], dtype='<U14')
array([0.])
array(['Massive Body', 'Massive Body', 'Massive Body', 'Massive Body',\n", + " 'Massive Body'], dtype='<U14')
array([10, 11, 12, 13, 14])
array([[1.31092466, 0.42694913, 0.99901466, 0.87568753, 0.64016204]])
array([[0.22414984, 0.13668981, 0.10015862, 0.10510991, 0.07476703]])
array([[59.20983 , 8.38435245, 79.8964056 , 38.54397835, 18.64120911]])
array([[248.31067222, 69.54574809, 197.01152229, 300.38127671,\n", + " 103.69459133]])
array([[303.27030237, 26.65629079, 216.23412262, 39.611278 ,\n", + " 234.96546946]])
array([[300.86583445, 37.20231243, 313.7251191 , 323.39474294,\n", + " 137.60013525]])
array([[1.19121094e-05, 1.58828125e-05, 1.98535156e-05, 5.95605468e-05,\n", + " 9.92675781e-05]])
array([[2.42505569e-05, 2.66911916e-05, 2.87522145e-05, 4.14678690e-05,\n", + " 4.91655952e-05]])
array([[0.4, 0.4, 0.4, 0.4, 0.4]])
array([[0.4, 0.4, 0.4, 0.4, 0.4]])
array([[0.4, 0.4, 0.4, 0.4, 0.4]])
array([[0., 0., 0., 0., 0.]])
array([[0., 0., 0., 0., 0.]])
array([[0., 0., 0., 0., 0.]])
array([0])
array([4])
<xarray.Dataset>\n", + "Dimensions: (name: 10, time: 1)\n", + "Coordinates:\n", + " * name (name) <U15 'TestParticle_01' ... 'TestParticle_10'\n", + " * time (time) float64 0.0\n", + "Data variables:\n", + " particle_type (name) <U15 'Test Particle' ... 'Test Particle'\n", + " id (name) int64 15 16 17 18 19 20 21 22 23 24\n", + " a (time, name) float64 0.5963 0.7501 1.242 ... 0.6646 0.4335\n", + " e (time, name) float64 0.2692 0.1215 0.144 ... 0.08782 0.1085\n", + " inc (time, name) float64 31.01 21.79 71.4 ... 49.32 11.98 82.34\n", + " capom (time, name) float64 14.83 71.52 313.1 ... 55.01 264.6 27.41\n", + " omega (time, name) float64 263.9 53.24 270.9 ... 129.9 55.52 322.0\n", + " capm (time, name) float64 203.5 276.4 200.6 ... 296.5 199.3 11.76\n", + " ntp int64 10\n", + " npl int64 0
array(['TestParticle_01', 'TestParticle_02', 'TestParticle_03',\n", + " 'TestParticle_04', 'TestParticle_05', 'TestParticle_06',\n", + " 'TestParticle_07', 'TestParticle_08', 'TestParticle_09',\n", + " 'TestParticle_10'], dtype='<U15')
array([0.])
array(['Test Particle', 'Test Particle', 'Test Particle', 'Test Particle',\n", + " 'Test Particle', 'Test Particle', 'Test Particle', 'Test Particle',\n", + " 'Test Particle', 'Test Particle'], dtype='<U15')
array([15, 16, 17, 18, 19, 20, 21, 22, 23, 24])
array([[0.59631179, 0.75008793, 1.24185544, 0.62602644, 0.69730282,\n", + " 0.32948067, 0.31362784, 0.69892357, 0.66463388, 0.43349961]])
array([[0.26921123, 0.1215152 , 0.14396695, 0.18952849, 0.0603352 ,\n", + " 0.22507284, 0.24524356, 0.19100371, 0.08781973, 0.10846506]])
array([[31.01350615, 21.79323513, 71.40398247, 2.70632187, 76.19404633,\n", + " 62.45672435, 37.46112145, 49.31962322, 11.98079975, 82.3362664 ]])
array([[ 14.82889002, 71.51627639, 313.06382867, 116.55699856,\n", + " 26.22180285, 232.41078363, 187.37268858, 55.0089463 ,\n", + " 264.62720196, 27.40508155]])
array([[263.89130712, 53.23775329, 270.87926161, 75.13357984,\n", + " 191.99876618, 127.85699342, 226.32159313, 129.90946353,\n", + " 55.51836695, 322.01108558]])
array([[203.45218595, 276.39938759, 200.57304014, 103.18520557,\n", + " 88.6142597 , 245.08624901, 278.08040949, 296.45429424,\n", + " 199.33979003, 11.76336086]])
array(10)
array(0)