Calculates a stars position and velocity in the cartesian coordinate system.
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.
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.
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.
- Expand the number of available operation
- Batch processing by taking file inputs
- Rust crate version
- Organizing/file structure options for batch output
- The ability to forward information from input files to the output files (example: Luminosity)