Swarm-NG  1.1
swarm::gpu::bppt::hermite< Monitor, Gravitation > Class Template Reference

GPU implementation of PEC2 Hermite integrator. More...

#include <hermite_integrator.hpp>

Inheritance diagram for swarm::gpu::bppt::hermite< Monitor, Gravitation >:
swarm::gpu::bppt::integrator swarm::gpu::integrator swarm::integrator

Public Member Functions

 hermite (const config &cfg)
 Construct for class hermite integrator.
 
virtual void launch_integrator ()
 Integrater implementation provided by derived instance.
 
GPUAPI void convert_internal_to_std_coord ()
 Convert internal coordinates to std coordinates.
 
GPUAPI void convert_std_to_internal_coord ()
 Convert std coordinates to internal coordinates.
 
template<class T >
__device__ void kernel (T compile_time_param)
 
- Public Member Functions inherited from swarm::gpu::bppt::integrator
 integrator (const config &cfg)
 Constructor.
 
const int & override_system_per_block () const
 User specified value of system_per_block. More...
 
- Public Member Functions inherited from swarm::gpu::integrator
 integrator (const config &cfg)
 Pass on constructor.
 
virtual void integrate ()
 Interfaces function to integrate, for use by general user. More...
 
virtual void core_integrate ()
 To integrate without any bookkeeping. More...
 
virtual void set_log_manager (log::Pmanager &l)
 Read the GPU log object from log manager and set it.
 
void set_log (gpulog::device_log *log)
 Set the GPU log object used for loggin output.
 
gpulog::device_log * get_device_log ()
 Get the GPU log object used for logging output.
 
void set_ensemble (defaultEnsemble &ens)
 Set the ensemble, only provide an ensemble on host. This cals automatically creates a copy of ensemble on GPU and keeps it in sync. Refer to set_ensemble(host_ens,device_ens) if you wish to manage the GPU memory allocation.
 
void set_ensemble (defaultEnsemble &host_ens, deviceEnsemble &device_ens)
 Set two host and device ensembles, two ensembles should match. More...
 
void upload_ensemble ()
 Synchronize device ensemble with host ensemble.
 
void download_ensemble ()
 Synchronize host ensemble with device 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 flush_log ()
 Flush the host log.
 
virtual defaultEnsembleget_ensemble ()
 Access the ensemble subject to integration.
 
virtual void set_destination_time (const double &destination_time)
 Set the time marker to end the integration.
 

Additional Inherited Members

- Static Public Member Functions inherited from swarm::gpu::bppt::integrator
template<class T >
static GENERIC int thread_per_system (T compile_time_param)
 Calculate number of worker threads needed for each system. More...
 
template<class T >
static GENERIC int shmem_per_system (T compile_time_param)
 Helper Function: Logical amount of shared memory needed for force calculations per thread This value is calculated from number of bodies, if this is used in a kernel, the actual amount of shared memory allocated might be different. More...
 
- 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::gpu::bppt::integrator
int _override_system_per_block
 Number of systems allocated in a block. Should be a multiple of SHMEM_CHUNK_SIZE for better coalescing.
 

Detailed Description

template<class Monitor, template< class T > class Gravitation>
class swarm::gpu::bppt::hermite< Monitor, Gravitation >

GPU implementation of PEC2 Hermite integrator.

Definition at line 35 of file hermite_integrator.hpp.

Member Function Documentation

template<class Monitor , template< class T > class Gravitation>
template<class T >
__device__ void swarm::gpu::bppt::hermite< Monitor, Gravitation >::kernel ( compile_time_param)
inline

The documentation for this class was generated from the following file: