Swarm-NG  1.1
TutorialIntegrator< Monitor, Gravitation > Class Template Reference

The integrator does not have to be a template, but defining it as. More...

#include <tutorial_integrator.hpp>

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

Public Member Functions

 TutorialIntegrator (const config &cfg)
 Constructor for TutorialIntegrator.
 
virtual void launch_integrator ()
 Integrater implementation provided by derived instance.
 
template<class T >
__device__ void kernel (T compile_time_param)
 CUDA kernal for integration process.
 
- 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 TutorialIntegrator< Monitor, Gravitation >

The integrator does not have to be a template, but defining it as.

Name the integrator, and implement swarm::gpu::bppt::integrator

Definition at line 48 of file tutorial_integrator.hpp.


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