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.