Swarm-NG
1.1
|
CPU implementation of mixed variables symplectic propagator: template<class Monitor> EXPERIMENTAL: This class is not thoroughly tested. More...
#include <mvs_cpu.hpp>
Public Member Functions | |
mvs_cpu (const config &cfg) | |
Construct for class mvs_cpu. | |
virtual void | launch_integrator () |
Integrater implementation provided by derived instance. | |
void | calcForces (ensemble::SystemRef &sys, double acc[][3]) |
Method for calculating forces. | |
void | convert_internal_to_std_coord (ensemble::SystemRef sys) |
Standardized member name to call convert_helio_pos_bary_vel_to_std_coord. | |
GPUAPI void | convert_std_to_internal_coord (ensemble::SystemRef sys) |
Standardized member name to call convert_std_to_helio_pos_bary_vel_coord() | |
void | convert_std_to_helio_pos_bary_vel_coord (ensemble::SystemRef sys) |
Shift to funky coordinate system (see A. Quillen's qymsym's tobary) | |
void | convert_helio_pos_bary_vel_to_std_coord (ensemble::SystemRef sys) |
Shift back from funky coordinate system (see A. Quillen's qymsym's frombary) | |
void | drift_step (ensemble::SystemRef sys, const double hby2) |
Drift step for MVS integrator. | |
void | integrate_system (ensemble::SystemRef sys) |
Integrating an ensemble. | |
Public Member Functions inherited from swarm::integrator | |
integrator (const config &cfg) | |
Inetgrator class should be configurable. Derived instances should also have a constructor with similar signature and pass on the config parameter. | |
virtual void | integrate () |
Interfaces function to integrate, for use by general user. More... | |
virtual void | flush_log () |
Flush the host log. | |
virtual defaultEnsemble & | get_ensemble () |
Access the ensemble subject to integration. | |
virtual void | set_ensemble (defaultEnsemble &ens) |
Set the ensemble subject to integration. | |
virtual void | set_destination_time (const double &destination_time) |
Set the time marker to end the integration. | |
virtual void | set_log_manager (log::Pmanager &l) |
accessor function to set the manager for log output | |
Static Public Member Functions | |
static double | inner_product (const double a[3], const double b[3]) |
Method for calculating inner product of two arrays. | |
Static Public Member Functions inherited from swarm::integrator | |
static shared_ptr< integrator > | create (const config &cfg) |
Loads an integrator using the plugin system. More... | |
Additional Inherited Members | |
Static Public Attributes inherited from swarm::integrator | |
static const int | _default_max_iterations = 10000000 |
Default value for maximum number of iterations. c.f. _max_iterations. | |
static const int | _default_max_attempts = 1000000 |
Default value for maximum number of attempts. c.f. _max_attempts. | |
Protected Attributes inherited from swarm::integrator | |
defaultEnsemble | _ens |
ensemble to be integrated | |
double | _destination_time |
the timestamp at which the integration should finish | |
log::Pmanager | _logman |
log manager for log output, set to manager::default() by default | |
gpulog::host_log * | _log |
log object, obtained from log manager | |
int | _max_iterations |
Maximum number of iterations per each integration step. c.f. integrate for usage. | |
int | _max_attempts |
Maximum number of attempts to complete the integration. c.f. integrate for usage. | |
CPU implementation of mixed variables symplectic propagator: template<class Monitor> EXPERIMENTAL: This class is not thoroughly tested.
This is used as a reference implementation to test the GPU implementation of the mvs integrator
This integrator can be used as an example of CPU integrator
Definition at line 52 of file mvs_cpu.hpp.