{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "# Configure Jupyter so figures appear in the notebook\n", "%matplotlib inline\n", "\n", "# Configure Jupyter to display the assigned value after an assignment\n", "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", "\n", "# import functions from the modsim.py module\n", "from modsim import *" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "km = UNITS.kilometer\n", "m = UNITS.meter\n", "s = UNITS.second\n", "kg = UNITS.kilogram\n", "days = UNITS.day\n", "degree = UNITS.degree" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "params = Params(distance = 149.6*10**9 *m,\n", " v_init = 0 * m/ s,\n", " G = 6.67 * 10**-11 * (m**3/(s**2 * kg)),\n", " mass_earth = 5.972 * 10**24* kg,\n", " mass_sun = 1.989 * 10**30 * kg)\n", " " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
values
x_distance149600000000.0 meter
y_distance0 meter
v_init0.0 meter / second
angle90 degree
G6.67e-11 meter ** 3 / kilogram / second ** 2
mass_earth5.972e+24 kilogram
mass_sun1.9890000000000002e+30 kilogram
\n", "
" ], "text/plain": [ "x_distance 149600000000.0 meter\n", "y_distance 0 meter\n", "v_init 0.0 meter / second\n", "angle 90 degree\n", "G 6.67e-11 meter ** 3 / kilogram / second ** 2\n", "mass_earth 5.972e+24 kilogram\n", "mass_sun 1.9890000000000002e+30 kilogram\n", "dtype: object" ] }, "execution_count": 4, "metadata": { }, "output_type": "execute_result" } ], "source": [ "params2 = Params(x_distance = 149.6*10**9 *m,\n", " y_distance = 0 *m,\n", " v_init = 0 * m/ s,\n", " angle = 90 * degree,\n", " G = 6.67 * 10**-11 * (m**3/(s**2 * kg)),\n", " mass_earth = 5.972 * 10**24* kg,\n", " mass_sun = 1.989 * 10**30 * kg)\n", " " ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "def make_system2(params2):\n", " \"\"\"Makes a System object for the given conditions.\n", " \n", " params: Params object\n", " \n", " returns: System object\n", " \"\"\"\n", " angle, v_init = params2.angle, params2.v_init\n", " x_distance = params2.x_distance\n", " y_distance = params2.y_distance\n", " \n", " theta = np.deg2rad(angle)\n", " vx, vy = pol2cart(theta, v_init)\n", " \n", " R = Vector(x_distance, y_distance)\n", " V = Vector(vx, vy)\n", " \n", " init = State(R=R, V=V)\n", " \n", " t_end = 3.154 *10**7 *s\n", " dt = t_end / 10**4\n", " \n", " return System(params2, init=init, t_end=t_end, dt=dt)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "def make_system(params):\n", " \"\"\"Makes a System object for the given conditions.\n", " \n", " params: Params object\n", " \n", " returns: System object\n", " \"\"\"\n", " \n", " distance = params.distance\n", " v_init = params.v_init\n", " \n", " init = State(r=distance, v=v_init)\n", " t_end = 9.072* 10**6 *s\n", " dt = t_end / 10**4\n", " \n", " return System(params, init=init, t_end=t_end, dt=dt)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
values
x_distance149600000000.0 meter
y_distance0 meter
v_init0.0 meter / second
angle90 degree
G6.67e-11 meter ** 3 / kilogram / second ** 2
mass_earth5.972e+24 kilogram
mass_sun1.9890000000000002e+30 kilogram
initR [149600000000.0 meter, 0.0 meter]\n", "...
t_end31540000.0 second
dt3154.0 second
\n", "
" ], "text/plain": [ "x_distance 149600000000.0 meter\n", "y_distance 0 meter\n", "v_init 0.0 meter / second\n", "angle 90 degree\n", "G 6.67e-11 meter ** 3 / kilogram / second ** 2\n", "mass_earth 5.972e+24 kilogram\n", "mass_sun 1.9890000000000002e+30 kilogram\n", "init R [149600000000.0 meter, 0.0 meter]\n", "...\n", "t_end 31540000.0 second\n", "dt 3154.0 second\n", "dtype: object" ] }, "execution_count": 7, "metadata": { }, "output_type": "execute_result" } ], "source": [ "system = make_system2(params2)" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "def slope_func2(state, t, system):\n", " \n", " \n", "\n", " R,V = state\n", " mass_sun = system.mass_sun\n", " G = system.G\n", " r_mag = R.mag\n", " r_unit_vector = R.hat()\n", " \n", " drdt = V\n", " dvdt = ((-G* mass_sun)/(r_mag**2))*r_unit_vector\n", " \n", " return drdt, dvdt" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "def slope_func(state, t, system):\n", " \"\"\"Compute derivatives of the state.\n", " \n", " state: position, velocity\n", " t: time\n", " system: System object\n", " \n", " returns: derivatives of y and v\n", " \"\"\"\n", " r, v = state\n", " mass_sun = system.mass_sun\n", " G = system.G\n", " \n", " drdt = v\n", " dvdt = (-G* mass_sun)/(r**2)\n", " \n", " return drdt, dvdt" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(array([0., 0.]) ,\n", " array([-0.00592785, -0. ]) )" ] }, "execution_count": 10, "metadata": { }, "output_type": "execute_result" } ], "source": [ "slope_func2(system.init, 0, system)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "def event_func(state, t, system):\n", "\n", " R, V = state\n", " surfaces_touching = R.mag - ((6.371 *10**6 * m) + 695.51 *10**6 * m)\n", " \n", " return surfaces_touching" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
values
successTrue
messageThe solver successfully reached the end of the...
\n", "
" ], "text/plain": [ "success True\n", "message The solver successfully reached the end of the...\n", "dtype: object" ] }, "execution_count": 12, "metadata": { }, "output_type": "execute_result" } ], "source": [ "results, details = run_ode_solver(system, slope_func2, events=event_func)\n", "details" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
RV
0[149600000000.0 meter, 0.0 meter][0.0 meter / second, 0.0 meter / second]
3154[149599970515.70062 meter, 0.0 meter][-18.696448559795822 meter / second, 0.0 meter...
6308[149599882062.79086 meter, 0.0 meter][-37.392911858950995 meter / second, 0.0 meter...
9462[149599734641.201 meter, 0.0 meter][-56.0894046368866 meter / second, 0.0 meter /...
12616[149599528250.8148 meter, 0.0 meter][-74.78594163315154 meter / second, 0.0 meter ...
\n", "
" ], "text/plain": [ " R \\\n", "0 [149600000000.0 meter, 0.0 meter] \n", "3154 [149599970515.70062 meter, 0.0 meter] \n", "6308 [149599882062.79086 meter, 0.0 meter] \n", "9462 [149599734641.201 meter, 0.0 meter] \n", "12616 [149599528250.8148 meter, 0.0 meter] \n", "\n", " V \n", "0 [0.0 meter / second, 0.0 meter / second] \n", "3154 [-18.696448559795822 meter / second, 0.0 meter... \n", "6308 [-37.392911858950995 meter / second, 0.0 meter... \n", "9462 [-56.0894046368866 meter / second, 0.0 meter /... \n", "12616 [-74.78594163315154 meter / second, 0.0 meter ... " ] }, "execution_count": 13, "metadata": { }, "output_type": "execute_result" } ], "source": [ "results.head()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
RV
31527384[9.466097861076322e+16 meter, 0.0 meter][3650327520.4039083 meter / second, 0.0 meter ...
31530538[9.467249174376258e+16 meter, 0.0 meter][3650327520.4039083 meter / second, 0.0 meter ...
31533692[9.468400487676194e+16 meter, 0.0 meter][3650327520.4039083 meter / second, 0.0 meter ...
31536846[9.46955180097613e+16 meter, 0.0 meter][3650327520.4039083 meter / second, 0.0 meter ...
31540000[9.470703114276066e+16 meter, 0.0 meter][3650327520.4039083 meter / second, 0.0 meter ...
\n", "
" ], "text/plain": [ " R \\\n", "31527384 [9.466097861076322e+16 meter, 0.0 meter] \n", "31530538 [9.467249174376258e+16 meter, 0.0 meter] \n", "31533692 [9.468400487676194e+16 meter, 0.0 meter] \n", "31536846 [9.46955180097613e+16 meter, 0.0 meter] \n", "31540000 [9.470703114276066e+16 meter, 0.0 meter] \n", "\n", " V \n", "31527384 [3650327520.4039083 meter / second, 0.0 meter ... \n", "31530538 [3650327520.4039083 meter / second, 0.0 meter ... \n", "31533692 [3650327520.4039083 meter / second, 0.0 meter ... \n", "31536846 [3650327520.4039083 meter / second, 0.0 meter ... \n", "31540000 [3650327520.4039083 meter / second, 0.0 meter ... " ] }, "execution_count": 14, "metadata": { }, "output_type": "execute_result" } ], "source": [ "results.tail()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 15, "metadata": { }, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 15, "metadata": { "needs_background": "light" }, "output_type": "execute_result" } ], "source": [ "x = results.R.extract('x')\n", "y = results.R.extract('y')\n", "\n", "plot(x,y, label='trajectory')" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "collapsed": false }, "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.7.3" } }, "nbformat": 4, "nbformat_minor": 0 }