A library for building differential equations arising from physical problems
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
src
test
.codecov.yml
.gitignore
.travis.yml v1.0 Aug 13, 2018
LICENSE.md
README.md
REQUIRE
appveyor.yml

README.md

DiffEqPhysics

Join the chat at https://gitter.im/JuliaDiffEq/Lobby Build Status Build status Coverage Status codecov.io DiffEqPhysics

Simulation of gravitationally interacting bodies

In order to create bodies/particles for the problem, one needs to use the MassBody structure and its constructor, which accepts mass, initial coordinates and velocity of the body.

body1 = MassBody(2.0, SVector(0.0, 1.0, 0.0), SVector( 5.775e-6, 0.0, 0.0))
body2 = MassBody(2.0, SVector(0.0,-1.0, 0.0), SVector(-5.775e-6, 0.0, 0.0))

Usually we solve an n-body problem for a certain period of time:

tspan = (0.0, 1111150.0);

Solving gravitational problem one needs to specify the gravitational constant G.

G = 6.673e-11

In fact, now we have enough parameters to create an NBodyGravProblem object:

problem = NBodyGravProblem([body1,body2], G, tspan)

Solution to the problem might be evaluated using the standard solve function:

solution = solve(problem, Tsit5());

And, finally, we plot our solution showing two equal bodies rotating on the same orbit:

plot_xy_scattering(solution,"./anim_two_boddies_scattering.gif")

Here should appear a gif of rotating bodies