Swarm-NG
1.1
|
Allocator based version of ensemble containing memory management routines It takes an allocator as a parameter and uses the allocator for allocate, deallocate and copying the ensemble. More...
#include <ensemble_alloc.hpp>
Public Member Functions | |
EnsembleAlloc | clone () |
Deep copy of this ensemble. | |
template<class Other > | |
Other | cloneTo () |
Clone to a different memory (e.g. GPU) | |
template<class Other > | |
void | copyTo (Other &o) |
Copy to another ensemble located on a different memory. | |
Public Member Functions inherited from swarm::EnsembleBase< W > | |
GENERIC const int & | nbod () const |
Number of bodies per system. | |
GENERIC const int & | nsys () const |
Number of systems. | |
BodyArray & | bodies () |
Coalsed array of bodies. For INTERNAL use only. | |
SysArray & | systems () |
Coalsed array of systems. For INTERNAL use only. | |
GENERIC SystemRef | operator[] (const int &i) |
Index into systems array to access a system. More... | |
GENERIC void | get_barycenter (const int &sys, double &x, double &y, double &z, double &vx, double &vy, double &vz, const int &max_body_id=MAX_NBODIES) const |
Deprecated function: this function uses a very bad signature and too many arguments. More... | |
GENERIC double | calc_total_energy (int sys) const |
Total energy (potential+kinetic) of a system. | |
GENERIC void | calc_total_energy (double *E) const |
Calculate the total energy of a system and store it in E. More... | |
GENERIC range_t | time_ranges () const |
Range of times of systems (average,min,max) Averages the time for all systems and finds min and max Useful to find the best value for destination time. | |
Static Public Member Functions | |
static EnsembleAlloc | create (const int &nbod, const int &nsys) |
Create a new ensemble that can accomodate nsys systems with nbod bodies Arrays are allocated on the heap but ensemble structure is value-copied. | |
Static Public Member Functions inherited from swarm::EnsembleBase< W > | |
static GENERIC size_t | body_element_count (const int &nbod, const int &nsys) |
Size of Body[] array required for an ensemble of size nbod,nsys. | |
static GENERIC size_t | sys_element_count (const int &nsys) |
Size of Sys[] array required for an ensemble of size nsys. | |
Additional Inherited Members | |
Public Types inherited from swarm::EnsembleBase< W > | |
typedef CoalescedStructArray < Body, double, CHUNK_SIZE > | BodyArray |
Type of array that we want to use for Body. | |
typedef CoalescedStructArray < Sys, double, CHUNK_SIZE > | SysArray |
Type of array that we want to use for Sys. | |
Static Public Attributes inherited from swarm::EnsembleBase< W > | |
static const int | CHUNK_SIZE |
CHUNK_SIZE for Coalesced access. c.f CoalescedStructArray. | |
static const int | NUM_BODY_ATTRIBUTES |
Number of extra attributes. | |
static const int | NUM_SYS_ATTRIBUTES |
Number of extra attributes per system. | |
Protected Member Functions inherited from swarm::EnsembleBase< W > | |
GENERIC | EnsembleBase () |
Trivial constructor, creates an invalid ensemble. More... | |
GENERIC | EnsembleBase (const int &nbod, const int &nsys, PBody body_array, PSys sys_array) |
Create an ensemble from pre-allocated body_array and sys_array arrays. | |
Protected Attributes inherited from swarm::EnsembleBase< W > | |
int | _nbod |
Number of bodies. | |
int | _nsys |
Number of systems. | |
BodyArray | _body |
Coalesced array of Body. | |
SysArray | _sys |
Coalesced array of Sys. | |
Allocator based version of ensemble containing memory management routines It takes an allocator as a parameter and uses the allocator for allocate, deallocate and copying the ensemble.
The allocated memories are protected by shared pointers.
Definition at line 12 of file ensemble_alloc.hpp.