Condense the data format, and possibly offer a reduced representation of coordinates, along with work units detailing which systems should be imported by each block on a given GPU.
More...
|
HybridFormat | getFormat () const |
| Get the memory layout of the object.
|
|
PrecisionModel | getMode () const |
| Get the compression mode.
|
|
StructureSource | getBasis () const |
| Get the basis for the coordinates in the object: synthesis or series.
|
|
int | getSystemCount () const |
| Get the number of systems found in the condensate.
|
|
bool | ownsCoordinates () const |
| Get an indication of whether the Condensate keeps its own copy of the coordinates.
|
|
size_t | getAtomOffset (int system_index) const |
| Get the starting index of atoms for one of the systems, using its index.
|
|
int | getAtomCount (int system_index) const |
| Get the number of atoms in one of the systems, using its index.
|
|
size_t | getCoordinateSeriesTypeID () const |
| Get the data type of the CoordinateSeries upon which this object is based.
|
|
template<typename T> |
const CoordinateSeries< T > * | getSeriesPointer () const |
| Get a const pointer to the original coordinate series. The developer must supply the template type for the CoordinateSeries in order to re-interpret the arbitrarily stored <int> type for the CoordinateSeries pointer.
|
|
const PhaseSpaceSynthesis * | getSynthesisPointer () const |
| Get a const pointer to the original coordinate synthesis.
|
|
CoordinateFrame | exportCoordinateFrame (int system_index, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| Export a single frame as double-precision coordinates.
|
|
std::vector< double > | getInterlacedCoordinates (int system_index, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| Produce the interlaced coordinates of a specific system. As is the case with other coordinate objects, this will not include the box transformation matrices.
|
|
const Condensate * | getSelfPointer () const |
| Get a pointer to the original object, useful if a pointer is needed but the object was passed into a function by const reference.
|
|
const CondensateBorders | borders (HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| Get the read-only summary of the system sizes. The data is never needed in as a collection of device viewable pointers to host-side data, as this information is constant as of the creation of the object and therefore consistent on both the CPU host and GPU device.
|
|
|
| Condensate (HybridFormat format_in=default_hpc_format) |
|
| Condensate (const PhaseSpaceSynthesis *poly_ps_in, PrecisionModel mode_in, const GpuDetails &gpu=null_gpu) |
|
| Condensate (const PhaseSpaceSynthesis &poly_ps_in, PrecisionModel mode_in, const GpuDetails &gpu=null_gpu) |
|
template<typename T> |
| Condensate (const CoordinateSeries< T > *cs_in, PrecisionModel mode_in, const GpuDetails &gpu=null_gpu) |
|
template<typename T> |
| Condensate (const CoordinateSeries< T > &cs_in, PrecisionModel mode_in, const GpuDetails &gpu=null_gpu) |
|
|
| Condensate (const Condensate &original) |
| Copy and move constructors as well as copy and move assignment operator overloads are defined in the code, but there is no copy constructor to create objects with a different memory format as the mechanics of the Condensate are more complex than those of other coordinate objects.
|
|
| Condensate (Condensate &&original) |
|
Condensate & | operator= (const Condensate &original) |
|
Condensate & | operator= (Condensate &&original) |
|
|
const CondensateReader | data (HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| Get the appropriate abstract based on the const-ness of the object.
|
|
CondensateWriter | data (HybridTargetLevel tier=HybridTargetLevel::HOST) |
|
|
void | rebuild (const PhaseSpaceSynthesis *poly_ps_in, PrecisionModel mode_in=PrecisionModel::SINGLE, const GpuDetails &gpu=null_gpu) |
| Rebuild the object using a different PhaseSpaceSynthesis or CoordinateSeries, and possibly a new compression mode.
|
|
void | rebuild (const PhaseSpaceSynthesis &poly_ps_in, PrecisionModel mode_in=PrecisionModel::SINGLE, const GpuDetails &gpu=null_gpu) |
|
template<typename T> |
void | rebuild (const CoordinateSeries< T > *cs_in, const PrecisionModel mode_in=PrecisionModel::SINGLE, const GpuDetails &gpu=null_gpu) |
|
|
void | update (HybridTargetLevel tier=HybridTargetLevel::HOST, const GpuDetails &gpu=null_gpu) |
| Reload the coordinates based on an updated coordinate synthesis or series, without re-computing the block instructions or changing the compression level.
|
|
template<typename T> |
void | update (const CoordinateSeries< T > *cs_basis, HybridTargetLevel tier=HybridTargetLevel::HOST, const GpuDetails &gpu=null_gpu) |
|
template<typename T> |
void | update (const CoordinateSeries< T > &cs_basis, HybridTargetLevel tier=HybridTargetLevel::HOST, const GpuDetails &gpu=null_gpu) |
|
Condense the data format, and possibly offer a reduced representation of coordinates, along with work units detailing which systems should be imported by each block on a given GPU.