Skip to content

elprimato/OPI

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OPI - Orbital Propagation Interface
-----------------------------------

OPI is an interface with the goal to facilitate the implementation of orbital
propagators into different applications.

To calculate orbital motion, many different software programs exist emphasizing
on different aspects such as execution speed or accuracy. They often require
different input parameters and are written in different languages. This makes
comparing or exchanging them a challenging task. OPI aims at simplifying this
by providing a common way of handling propagation. Propagators using OPI are
designed as plugins/shared libraries that can be loaded by a host program via
the interface.

OPI currently supports C, C++ and Fortran, as well as CUDA  and OpenCL for
propagators. The C API can also be used for integration into other languages
like Python or C#. Hosts and plugins don't have to be written in the same
language in order to collaborate. OPI itself is written in C++, with
auto-generated bindings for C and Fortran. For GPU support, it supplies a plugin
that scans for capable devices and helps to initialize CUDA or OpenCL-enabled
propagators.

Please note that this software is still under development and the interface
functions are subject to change. Your feedback is appreciated.



BUILD INSTRUCTIONS
------------------

Building OPI has been tested on Linux (recent versions of Debian, Ubuntu and
OpenSuSE), Windows (Visual Studio 2013) and OSX. OPI uses CMake as a build
system, so simply follow the usual instructions below or use the GUI tool
(in-place builds are not allowed):

mkdir build
cd build
cmake .. #or 'cmake-gui ..' - whichever you prefer
make
make install
make doc #optional, to build the API documentation - requires Doxygen

You can set the CMAKE_INSTALL_PREFIX variable to a custom directory of you
don't want a system-wide install. In that case, you must make sure that the
lib directory is in your library path at runtime by setting the LD_LIBRARY_PATH
variable accordingly. If you require support for CUDA propagators, make sure
the CUDA SDK is installed and can be found by CMake.

To start using OPI, take a look at the documentation and the example code
provided with the library. If you have any questions, feel free to contact us.

About

Orbital Propagation Interface

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 70.9%
  • CMake 20.6%
  • C 7.9%
  • Shell 0.6%