{
"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",
" values | \n",
"
\n",
" \n",
" \n",
" \n",
" x_distance | \n",
" 149600000000.0 meter | \n",
"
\n",
" \n",
" y_distance | \n",
" 0 meter | \n",
"
\n",
" \n",
" v_init | \n",
" 0.0 meter / second | \n",
"
\n",
" \n",
" angle | \n",
" 90 degree | \n",
"
\n",
" \n",
" G | \n",
" 6.67e-11 meter ** 3 / kilogram / second ** 2 | \n",
"
\n",
" \n",
" mass_earth | \n",
" 5.972e+24 kilogram | \n",
"
\n",
" \n",
" mass_sun | \n",
" 1.9890000000000002e+30 kilogram | \n",
"
\n",
" \n",
"
\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",
" values | \n",
"
\n",
" \n",
" \n",
" \n",
" x_distance | \n",
" 149600000000.0 meter | \n",
"
\n",
" \n",
" y_distance | \n",
" 0 meter | \n",
"
\n",
" \n",
" v_init | \n",
" 0.0 meter / second | \n",
"
\n",
" \n",
" angle | \n",
" 90 degree | \n",
"
\n",
" \n",
" G | \n",
" 6.67e-11 meter ** 3 / kilogram / second ** 2 | \n",
"
\n",
" \n",
" mass_earth | \n",
" 5.972e+24 kilogram | \n",
"
\n",
" \n",
" mass_sun | \n",
" 1.9890000000000002e+30 kilogram | \n",
"
\n",
" \n",
" init | \n",
" R [149600000000.0 meter, 0.0 meter]\n",
"... | \n",
"
\n",
" \n",
" t_end | \n",
" 31540000.0 second | \n",
"
\n",
" \n",
" dt | \n",
" 3154.0 second | \n",
"
\n",
" \n",
"
\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",
" values | \n",
"
\n",
" \n",
" \n",
" \n",
" success | \n",
" True | \n",
"
\n",
" \n",
" message | \n",
" The solver successfully reached the end of the... | \n",
"
\n",
" \n",
"
\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",
" R | \n",
" V | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" [149600000000.0 meter, 0.0 meter] | \n",
" [0.0 meter / second, 0.0 meter / second] | \n",
"
\n",
" \n",
" 3154 | \n",
" [149599970515.70062 meter, 0.0 meter] | \n",
" [-18.696448559795822 meter / second, 0.0 meter... | \n",
"
\n",
" \n",
" 6308 | \n",
" [149599882062.79086 meter, 0.0 meter] | \n",
" [-37.392911858950995 meter / second, 0.0 meter... | \n",
"
\n",
" \n",
" 9462 | \n",
" [149599734641.201 meter, 0.0 meter] | \n",
" [-56.0894046368866 meter / second, 0.0 meter /... | \n",
"
\n",
" \n",
" 12616 | \n",
" [149599528250.8148 meter, 0.0 meter] | \n",
" [-74.78594163315154 meter / second, 0.0 meter ... | \n",
"
\n",
" \n",
"
\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",
" R | \n",
" V | \n",
"
\n",
" \n",
" \n",
" \n",
" 31527384 | \n",
" [9.466097861076322e+16 meter, 0.0 meter] | \n",
" [3650327520.4039083 meter / second, 0.0 meter ... | \n",
"
\n",
" \n",
" 31530538 | \n",
" [9.467249174376258e+16 meter, 0.0 meter] | \n",
" [3650327520.4039083 meter / second, 0.0 meter ... | \n",
"
\n",
" \n",
" 31533692 | \n",
" [9.468400487676194e+16 meter, 0.0 meter] | \n",
" [3650327520.4039083 meter / second, 0.0 meter ... | \n",
"
\n",
" \n",
" 31536846 | \n",
" [9.46955180097613e+16 meter, 0.0 meter] | \n",
" [3650327520.4039083 meter / second, 0.0 meter ... | \n",
"
\n",
" \n",
" 31540000 | \n",
" [9.470703114276066e+16 meter, 0.0 meter] | \n",
" [3650327520.4039083 meter / second, 0.0 meter ... | \n",
"
\n",
" \n",
"
\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
}