Store the coordinates and box information for a series of frames, in one of several levels of precision. Individual frames can be extracted into CoordinateFrame, and PhaseSpace, and PhaseSpaceSynthesis objects, or new frames can be added from CoordinateFrame objects. This object is not the CoordinateFrame equivalent of a PhaseSpaceSynthesis object, however: its purpose is to collect only the coordinates of many frames of a single system at the appropriate level of precision.
More...
|
| | CoordinateSeries (const CoordinateSeries &original, HybridFormat format_in) |
| | A special copy constructor can create an object with an altered memory format.
|
| |
|
HybridFormat | getFormat () const |
| | Get the memory format.
|
| |
|
int | getAtomCount () const |
| | Get the number of atoms in each frame of the series.
|
| |
|
int | getFrameCount () const |
| | Get the number of frames in the series.
|
| |
|
int | getFrameCapacity () const |
| | Get the maximum number of frames that the object can hold.
|
| |
|
UnitCellType | getUnitCellType () const |
| | Get the unit cell type of the coordinate system.
|
| |
|
int | getFixedPrecisionBits () const |
| | Get the fixed precision bits after the decimal (if applicable, warn if the data type is non-integer).
|
| |
| std::vector< double > | getBoxSpaceTransform (int frame_index, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| | Get the transformation matrix to take coordinates into box (fractional) space. The result should be interpreted as a 3x3 matrix in column-major format.
|
| |
| std::vector< double > | getInverseTransform (int frame_index, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| | Get the transformation matrix to take coordinates from fractional space back into real space. The result should be interpreted as a 3x3 matrix in column-major format.
|
| |
| CoordinateFrame | exportFrame (size_t frame_index, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| | Prepare a CoordinateFrame object based on one frame of the series, accomplishing any necessary data conversions to put the coordinates back into the familiar double-precision format.
|
| |
| PhaseSpace | exportPhaseSpace (size_t frame_index, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| | Prepare a PhaseSpace object based on one frame of the series, accomplishing any data conversions needed to put the coordinates back into the familiar double-precision format.
|
| |
| void | exportToFile (const std::string &file_name, CoordinateFileKind output_kind=CoordinateFileKind::AMBER_CRD, PrintSituation expectation=PrintSituation::UNKNOWN, int low_index=0, int high_index=0, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| | Export the contents of this coordinate series to a trajectory file.
|
| |
| const Hybrid< T > & | getCoordinateReference (CartesianDimension dim) const |
| | Get a const reference to the one of the Cartesian coordinate arrays.
|
| |
| const Hybrid< T > * | getCoordinatePointer (CartesianDimension dim) const |
| | Get a const pointer to one of the Cartesian coordinate arrays.
|
| |
|
const Hybrid< double > & | getBoxTransforms () const |
| | Get a const reference to the box space transformation matrices.
|
| |
|
const Hybrid< double > * | getBoxTransformPointer () const |
| | Get a const pointer to the box space transformation matrices.
|
| |
|
const Hybrid< double > & | getInverseTransforms () const |
| | Get a const reference to the box space transformation matrices.
|
| |
|
const Hybrid< double > * | getInverseTransformPointer () const |
| | Get a const pointer to the box space transformation matrices.
|
| |
|
const Hybrid< double > * | getBoxDimensionPointer () const |
| | Get a const pointer to the list of box dimensions for all frames.
|
| |
|
const CoordinateSeries< T > * | getSelfPointer () const |
| | Get a const pointer to the object iself, so that it may be passed to functions by const reference and still emit a const poiner.
|
| |
| void | importFromFile (const std::string &file_name, CoordinateFileKind file_kind=CoordinateFileKind::UNKNOWN, const std::vector< int > &frame_numbers={}, int replica_count=1, int frame_index_start=-1) |
| | Import coordinates from a file. This function accepts directives to read a subset of the coordinates and integrate them into the series at a specified point.
|
| |
| void | reserve (const int new_frame_capacity) |
| | Reserve capacity in this series. The new frames will be uninitialized.
|
| |
|
void | shrinkToFit () |
| | Shrink the object's various arrays to accommodate only the current frame and atom counts. Mimics the Standard Template Library vector shrink_to_fit() member function.
|
| |
|
| | CoordinateSeries (int natom_in=0, int nframe_in=0, UnitCellType unit_cell_in=UnitCellType::NONE, int globalpos_scale_bits_in=0, HybridFormat format_in=default_hpc_format) |
| | There are several options for constructing this collection of coordinate frames.
|
| |
|
| CoordinateSeries (const std::string &file_name, int atom_count_in=0, CoordinateFileKind file_kind=CoordinateFileKind::UNKNOWN, const std::vector< int > &frame_numbers={}, int replica_count=1, UnitCellType unit_cell_in=UnitCellType::NONE, int globalpos_scale_bits_in=0, HybridFormat format_in=default_hpc_format) |
| |
|
| CoordinateSeries (PhaseSpace *ps, int nframe_in, int globalpos_scale_bits_in=0, HybridFormat format_in=default_hpc_format) |
| |
|
| CoordinateSeries (const PhaseSpace &ps, int nframe_in, int globalpos_scale_bits_in=0, HybridFormat format_in=default_hpc_format) |
| |
|
| CoordinateSeries (CoordinateFrame *cf, int nframe_in, int globalpos_scale_bits_in=0, HybridFormat format_in=default_hpc_format) |
| |
|
| CoordinateSeries (const CoordinateFrame &cf, int nframe_in, int globalpos_scale_bits_in=0, HybridFormat format_in=default_hpc_format) |
| |
|
| | CoordinateSeries (const CoordinateSeries &original)=default |
| | Use the default copy and move constructors, copy and move assignment operators. This object has no const members to trigger implicit deletions and no POINTER-kind Hybrid objects to repair.
|
| |
|
| CoordinateSeries (CoordinateSeries &&original)=default |
| |
|
CoordinateSeries & | operator= (const CoordinateSeries &other)=default |
| |
|
CoordinateSeries & | operator= (CoordinateSeries &&other)=default |
| |
|
| template<typename Toriginal> |
| | CoordinateSeries (const CoordinateSeries< Toriginal > &original, int globalpos_scale_bits_in=0, HybridFormat format_in=default_hpc_format) |
| | Special copy constructor to take a CoordinateSeries of one data type into another. The implementation requires a special declaration (template <typename T> template <typename Toriginal>...) with two uses of the template keyword because of the nested nature of these templates. In other contexts template <typename T, typename Toriginal> would suffice.
|
| |
|
| template<typename Treport> |
| std::vector< Treport > | getInterlacedCoordinates (int frame_index, int globalpos_bits_out=-1, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| | Get the interlaced coordinates of one frame.
|
| |
|
template<typename Treport> |
| std::vector< Treport > | getInterlacedCoordinates (int frame_index, int low_index, int high_index, int globalpos_bits_out=-1, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| |
|
| std::vector< double > | getBoxDimensions (int frame_index, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| | Get the box dimensions in their pure form for a particular frame.
|
| |
|
const Hybrid< double > & | getBoxDimensions () const |
| |
|
| void | extractFrame (CoordinateFrame *cf, size_t frame_index, const GpuDetails &gpu) const |
| | Extract coordinates to a pre-existing object.
|
| |
|
void | extractFrame (PhaseSpace *ps, size_t frame_index, TrajectoryKind kind, CoordinateCycle time_point, const GpuDetails &gpu) const |
| |
|
void | extractFrame (PhaseSpace *ps, size_t frame_index, TrajectoryKind kind, const GpuDetails &gpu) const |
| |
|
void | extractFrame (PhaseSpace *ps, size_t frame_index, const GpuDetails &gpu) const |
| |
|
void | extractFrame (CoordinateFrame *cf, size_t frame_index, HybridTargetLevel tier) const |
| |
|
void | extractFrame (PhaseSpace *ps, size_t frame_index, TrajectoryKind kind, CoordinateCycle time_point, HybridTargetLevel tier) const |
| |
|
void | extractFrame (PhaseSpace *ps, size_t frame_index, TrajectoryKind kind, HybridTargetLevel tier) const |
| |
|
void | extractFrame (PhaseSpace *ps, size_t frame_index, HybridTargetLevel tier) const |
| |
|
| const Hybrid< T > * | getFramesHandle (CartesianDimension dim) const |
| | Get a pointer to one of the coordinate arrays.
|
| |
|
Hybrid< T > * | getFramesHandle (CartesianDimension dim) |
| |
|
|
const Hybrid< double > * | getBoxTransformsHandle () const |
| | Get a pointer to the box space transform. Overloading follows from getCoordinateHandle(), above.
|
| |
|
Hybrid< double > * | getBoxTransformsHandle () |
| |
|
|
const Hybrid< double > * | getInverseTransformsHandle () const |
| | Get a pointer to the inverse transform that takes coordinates back into real space. Overloading follows from getCoordinateHandle(), above.
|
| |
|
Hybrid< double > * | getInverseTransformsHandle () |
| |
|
|
const Hybrid< double > * | getBoxDimensionsHandle () const |
| | Get a pointer to the transform that takes coordinates back into real space. Overloading follows from getCoordinateHandle(), above.
|
| |
|
Hybrid< double > * | getBoxDimensionsHandle () |
| |
|
| const CoordinateSeriesReader< T > | data (HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| | Get the abstract for this object, containing C-style pointers for the most rapid access to any of its member variables.
|
| |
|
CoordinateSeriesWriter< T > | data (HybridTargetLevel tier=HybridTargetLevel::HOST) |
| |
|
|
const CoordinateSeriesReader< void > | templateFreeData (HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| | Get the object's abstract, with all templated type pointers cast to void pointers. The true data type can be encoded in a separate 64-bit unsigned integer code (use std::type_index() as seen in DataTypes/common_types.h). Parameter descriptions and overloading match those in data() above.
|
| |
|
CoordinateSeriesWriter< void > | templateFreeData (HybridTargetLevel tier=HybridTargetLevel::HOST) |
| |
|
| void | importFrame (const CoordinateFrameReader &cfr, int atom_start, int atom_end, int frame_index=-1) |
| | Import coordinates from a CoordinateFrame or PhaseSpace object. The original object must have the same number of atoms as the CoordinateSeries itself, or else a range of atoms within the original coordinate object must be specified that fits the CoordinateSeries. The default behavior is to push the new coordinates to the back of the list, but any frame index within the bounds of the current list may also be specified.
|
| |
|
void | importFrame (const CoordinateFrameReader &cfr, int frame_index=-1) |
| |
|
void | importFrame (const CoordinateFrameWriter &cfw, int atom_start, int atom_end, int frame_index=-1) |
| |
|
void | importFrame (const CoordinateFrameWriter &cfw, int frame_index=-1) |
| |
|
void | importFrame (const CoordinateFrame &cf, int atom_start, int atom_end, int frame_index=-1) |
| |
|
void | importFrame (const CoordinateFrame &cf, int frame_index=-1) |
| |
|
void | importFrame (const CoordinateFrame *cf, int atom_start, int atom_end, int frame_index=-1) |
| |
|
void | importFrame (const CoordinateFrame *cf, int frame_index=-1) |
| |
|
void | importFrame (const PhaseSpace &ps, int atom_start, int atom_end, int frame_index=-1, TrajectoryKind kind=TrajectoryKind::POSITIONS, CoordinateCycle orientation=CoordinateCycle::WHITE) |
| |
|
void | importFrame (const PhaseSpace &ps, int frame_index=-1, TrajectoryKind kind=TrajectoryKind::POSITIONS, CoordinateCycle orientation=CoordinateCycle::WHITE) |
| |
|
void | importFrame (const PhaseSpace *ps, int atom_start, int atom_end, int frame_index=-1, TrajectoryKind kind=TrajectoryKind::POSITIONS, CoordinateCycle orientation=CoordinateCycle::WHITE) |
| |
|
void | importFrame (const PhaseSpace *ps, int frame_index=-1, TrajectoryKind kind=TrajectoryKind::POSITIONS, CoordinateCycle orientation=CoordinateCycle::WHITE) |
| |
|
| void | resize (int new_frame_count) |
| | Resize the series, allocating new capacity if needed, initializing new frames with the provided coordinate set. ("New" frames are defined as any frames with indices greater than the original maximum index, regardless of whether new capacity was allocated to hold them or if the size simply increased within the existing space available.)
|
| |
|
void | resize (int new_frame_count, const CoordinateFrameReader &cfr, int atom_start=0, int atom_end=0) |
| |
|
void | resize (int new_frame_count, const CoordinateFrameWriter &cfw, int atom_start=0, int atom_end=0) |
| |
|
void | resize (int new_frame_count, const CoordinateFrame &cf, int atom_start=0, int atom_end=0) |
| |
|
void | resize (int new_frame_count, CoordinateFrame *cf, int atom_start=0, int atom_end=0) |
| |
|
void | resize (int new_frame_count, const PhaseSpace &ps, int atom_start=0, int atom_end=0) |
| |
|
void | resize (int new_frame_count, PhaseSpace *ps, int atom_start=0, int atom_end=0) |
| |
|
| void | pushBack (const CoordinateFrameReader &cfr, int atom_start=0, int atom_end=0) |
| | Push a coordinate set to the back of the list. This invokes the import member function after reallocating the frame series with 25% spare capacity if the original capacity is insufficient.
|
| |
|
void | pushBack (const CoordinateFrameWriter &cfw, int atom_start=0, int atom_end=0) |
| |
|
void | pushBack (const CoordinateFrame &cf, int atom_start=0, int atom_end=0) |
| |
|
void | pushBack (CoordinateFrame *cf, int atom_start=0, int atom_end=0) |
| |
|
void | pushBack (const PhaseSpace &ps, int atom_start=0, int atom_end=0) |
| |
|
void | pushBack (PhaseSpace *ps, int atom_start=0, int atom_end=0) |
| |