Skip to content
/ SPV Public
forked from AlbinSjoegren/SPV

Calculates a stars position and velocity in the cartesian coordinate system.

License

Notifications You must be signed in to change notification settings

HolmanDev/SPV

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SPV

Calculates a stars position and velocity in the cartesian coordinate system.

Screenshot_20211126_212905

Building and running

To build SPV you need rust, you can install it with these instructions.

Then simply run:

cargo run --release

in the directory with the src directory and Cargo.toml.

I HIGHLY recommend you build from the latest created tag an not the main branch.

If you don't want to build it, then you can download the program from the Releases panel.

On Linux simply give the AppImage executable rights (properties of the file if you right click on it) and double click it in your file manager. You could also run it as a script with ./filename.AppImage in the terminal.

On Windows simply download the .exe and double click to run it.

The data will ALLWAYS be in directories based on the name given under General. These directories will ALLWAYS be in the same directory as the actual .exe or .Appimage file.

How to use

Give the fields the inputs they want with correct units. You need to press enter after you finished your input. The row below will reflect your input if you did it correctly. Remember that the string to f64 conversion is very strict. No spaces allowed, only numbers and dots to signify decimals. Absolutely nothing else. Apart from that, it is pretty straightforward.

If you have any questions what so ever feel free to submit an issue and I will get to answering as quickly as possible

Feature requests are also welcome.

How it works

SPV can currently do position and velocity calculations based on raw input data (spherical coordinates and velocities) but this is only really good for singular bodies and not for when you need multiple bodies to have a good enough accuracy to interact in a simulation of some kind. This is NOT due to SPV, the input data is just not good enough in most cases even for close stars. However, we have a system if you need the position and velocity of several interacting bodies using the orbital elements of the orbits. This uses eulers angle transforms to get a plane in which we have the intended ellipse, a is parallel with x, b with y, and z with the normal. We can take every point on the actual orbit and then draw a line from each point to the proposed position by the first method (the position we get here is the position for the companion and we might need to give the position of the primary to change the origin of the system). Then we can check for the shortest line and pick the point that it belongs to. That will be our new position relative to the primary. We can then use a velocity equation meant for satellites but defining mu with the orbital period, this is good enough to get the initial velocity.

Todo

  1. Expand the number of available operation
  2. Batch processing by taking file inputs
  3. Rust crate version
  4. Organizing/file structure options for batch output
  5. The ability to forward information from input files to the output files (example: Luminosity)

About

Calculates a stars position and velocity in the cartesian coordinate system.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 100.0%