From a2a3ff1dcc0538a09259cb909869349601801045 Mon Sep 17 00:00:00 2001 From: "Penn, John M 047828115" Date: Wed, 24 Feb 2021 22:40:56 -0600 Subject: [PATCH] SAIntegrtor: Add example sim for RKF45 called AsteroidFlyBy. #1114 --- .../examples/AsteroidFlyBy/Flyby.cpp | 59 ++++++++++++++++++ .../examples/AsteroidFlyBy/README.md | 48 ++++++++++++++ .../AsteroidFlyBy/images/Figure_1.png | Bin 0 -> 42543 bytes .../AsteroidFlyBy/images/Figure_2.png | Bin 0 -> 61067 bytes .../examples/AsteroidFlyBy/makefile | 20 ++++++ .../examples/AsteroidFlyBy/plot_position.py | 18 ++++++ .../examples/AsteroidFlyBy/plot_stepsize.py | 18 ++++++ 7 files changed, 163 insertions(+) create mode 100644 trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/Flyby.cpp create mode 100644 trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/README.md create mode 100644 trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/images/Figure_1.png create mode 100644 trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/images/Figure_2.png create mode 100644 trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/makefile create mode 100755 trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/plot_position.py create mode 100755 trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/plot_stepsize.py diff --git a/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/Flyby.cpp b/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/Flyby.cpp new file mode 100644 index 00000000..529db19d --- /dev/null +++ b/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/Flyby.cpp @@ -0,0 +1,59 @@ +#include +#include +#include "SAIntegrator.hh" + +#define GRAVITATIONAL_CONSTANT 6.674e-11 +#define EARTH_MASS 5.9723e24 +#define EARTH_RADIUS 6367500.0 + +struct Flyby { + double pos[2]; + double vel[2]; + double planet_mass; + Flyby(double px, double py, double vx, double vy, double m); +}; +Flyby::Flyby(double px, double py, double vx, double vy, double m) { + pos[0] = px; + pos[1] = py; + vel[0] = vx; + vel[1] = vy; + planet_mass = m; +} +void print_header() { + printf ("time, dt, flyby.pos[0], flyby.pos[1], flyby.vel[0], flyby.vel[1]\n"); +} +void print_state( double t, double dt, Flyby& flyby ) { + printf ("%10.10f, %10.10f, %10.10f, %10.10f, %10.10f, %10.10f\n", + t, dt, flyby.pos[0], flyby.pos[1], flyby.vel[0], flyby.vel[1]); +} +void G( double t, double* state, double derivs[], void* udata) { + Flyby* flyby = (Flyby*)udata; + double d = sqrt( state[0]*state[0] + state[1]*state[1]); + derivs[0] = state[2]; + derivs[1] = state[3]; + derivs[2] = -state[0] * GRAVITATIONAL_CONSTANT * flyby->planet_mass / (d*d*d); + derivs[3] = -state[1] * GRAVITATIONAL_CONSTANT * flyby->planet_mass / (d*d*d); +} +int main ( int argc, char* argv[]) { + + double sim_duration = 25000.0; // s + double dt = 60.0; // s + double epsilon = 0.000000001; + Flyby flyby(-20.0 * EARTH_RADIUS, 2.0 * EARTH_RADIUS, 10000.0 , 0.0, EARTH_MASS); + double* state_p[4] = { &flyby.pos[0], &flyby.pos[1], &flyby.vel[0], &flyby.vel[1] }; + + double time = 0.0; // s + print_header(); + print_state(time, dt, flyby); + + SA::RKF45Integrator integ(epsilon, dt, 4, state_p, G, &flyby); + while (time < sim_duration) { + integ.integrate(); + double last_h = integ.getLastStepSize(); + time = integ.getIndyVar(); + + double r = sqrt( flyby.pos[0]*flyby.pos[0] + flyby.pos[1]*flyby.pos[1]); + if (r < 500000.0) { printf("Collision\n"); } + print_state(time, last_h, flyby); + } +} diff --git a/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/README.md b/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/README.md new file mode 100644 index 00000000..06d7e868 --- /dev/null +++ b/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/README.md @@ -0,0 +1,48 @@ +# Flyby + +The Flyby program uses the **SA::RKF45Integrator** class to simulate +an asteroid passing near Earth. + +The RKF45Integrator is an adaptive step-size integrator. It adapts the +integration step-size to maintain a specified accuracy. If a particular step-size +doesn't produce the needed accuracy then the step-size is reduced and the integration step is performed again. If the needed accuracy is being produced then the step-size can be increased. There is some over-head in the extra calculations, that estimate the local-error. But, this can be more than made up for by the fact that the step-size is small **only** when necessary. + +For each numerical integration time-step, the simulation program prints: + +1. time (s) +2. the size of the last time step +2. 2D position vector (m) +3. 2D velocity vector (m/s) + +to ```stdout```, in Comma Separated Values (CSV) format. + +### Building & Running the Simulation Program + +Generate the results as follows: + +``` +$ make +$ ./Flyby > flyby.csv +``` +### Plotting the Results +The Python script, ```plot_position.py``` is provided to plot the results +in ```flyby.csv ``` using (Python) matplotlib. + +Plot the asteroid path as follows: + +``` +$ python plot_position.py +``` +The following shows the path of the asteroid for 25000 seconds (about 7 hours). +The asteroid starts about 20 Earth-radii from the Earth, traveling at 10000 meters per second ( about 22000 miles per hour). The Earth is at 0,0. +![Orbit](images/Figure_1.png) + +The normal (maximum) step-size (dt) for this simulation is 60 seconds. As the asteroid approaches Earth, and gravitational acceleration increases, the RKF45Integrator decreases its step-size to maintain accurancy. The step-size reaches a minimum of about 3 seconds when closest to Earth. As the asteroid retreats, the step-size returns to normal. + +With RKF45, a max step-size of 60 seconds, and epsilon = 0.000000001, this 25000 second simulation requires 1513 steps. With RK4 and a step-size of 3 seconds (to maintain the required accuracy), this simulation would require about 8300 steps. So, it would appear that the overhead of RKF45 can be a worthwhile investment in time. + +In a simulation where the asteroid were mostly flying through open space, and rarely encountering another planet, the payoff would be much bigger. + +![Orbit](images/Figure_2.png) + + diff --git a/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/images/Figure_1.png b/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/images/Figure_1.png new file mode 100644 index 0000000000000000000000000000000000000000..27d7152399aa23dd5a4e18b8072308d620b8dbb1 GIT binary patch literal 42543 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%0AKH0b|U>+qpN?49Em^=&TQ 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 literal 0 HcmV?d00001 diff --git a/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/images/Figure_2.png b/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/images/Figure_2.png new file mode 100644 index 0000000000000000000000000000000000000000..8a1519adfe1011953bf55489eb6ad6dd121d9fa4 GIT binary patch literal 61067 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%0A3qTLpv5cMn#8Kq$uD6sKUuEIWsT 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
--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 R7#V;xdb;|#taD0e0sspx?1=yX literal 0 HcmV?d00001 diff --git a/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/makefile b/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/makefile new file mode 100644 index 00000000..0e628f44 --- /dev/null +++ b/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/makefile @@ -0,0 +1,20 @@ + +RM = rm -rf +CC = cc +CPP = c++ + +CXXFLAGS = -g -Wall +INCLUDE_DIRS = -I../../include +LIBDIR = ../../lib + +all: Flyby + +Flyby: Flyby.cpp + $(CPP) $(CXXFLAGS) Flyby.cpp ${INCLUDE_DIRS} -L${LIBDIR} -lSAInteg -o Flyby + +clean: + ${RM} Flyby.dSYM + +spotless: clean + ${RM} Flyby + ${RM} flyby.csv diff --git a/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/plot_position.py b/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/plot_position.py new file mode 100755 index 00000000..7eb8255e --- /dev/null +++ b/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/plot_position.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python + +import matplotlib.pyplot as plt +import numpy as np +data = np.genfromtxt('flyby.csv', + delimiter=',', + skip_header=1, + skip_footer=1, + names=['t', 'dt', 'posx','posy','velx','vely'], + dtype=(float, float, float, float, float, float) + ) + +curve1 = plt.plot(data['posx'], data['posy'], 'C1-') +plt.title('Flyby') +plt.xlabel('position') +plt.ylabel('position') +plt.grid(True) +plt.show() diff --git a/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/plot_stepsize.py b/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/plot_stepsize.py new file mode 100755 index 00000000..8ef44b8a --- /dev/null +++ b/trick_source/trick_utils/SAIntegrator/examples/AsteroidFlyBy/plot_stepsize.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python + +import matplotlib.pyplot as plt +import numpy as np +data = np.genfromtxt('flyby.csv', + delimiter=',', + skip_header=1, + skip_footer=1, + names=['t', 'dt', 'posx','posy','velx','vely'], + dtype=(float, float, float, float, float, float) + ) + +curve1 = plt.plot(data['t'], data['dt'], 'C1-') +plt.title('Time-step Adaptation') +plt.xlabel('t') +plt.ylabel('dt') +plt.grid(True) +plt.show()