LOOS  v2.3.2
loos::TinkerArc Class Reference

Class for handling Tinker ARC files (concatenation of .xyz files) More...

#include <tinker_arc.hpp>

Inheritance diagram for loos::TinkerArc:
Collaboration diagram for loos::TinkerArc:

Public Member Functions

 TinkerArc (const std::string &s)
 
 TinkerArc (std::istream &is)
 
std::string description () const
 Return a string describing trajectory format.
 
virtual uint nframes (void) const
 Number of frames in the trajectory.
 
virtual uint natoms (void) const
 

of atoms per frame


 
virtual std::vector< GCoordcoords (void)
 Returns the current frames coordinates as a vector of GCoords. More...
 
virtual bool hasPeriodicBox (void) const
 
virtual GCoord periodicBox (void) const
 Returns the periodic box for the current frame/trajectory.
 
virtual float timestep (void) const
 Timestep per frame.
 
TinkerXYZ currentFrame (void) const
 Returns the contained TinkerXYZ object. More...
 
virtual bool parseFrame (void)
 Parse an actual frame. More...
 
- Public Member Functions inherited from loos::Trajectory
 Trajectory (const std::string &s)
 Automatically open the file named s.
 
 Trajectory (std::istream &fs)
 Open using the given stream...
 
bool rewind (void)
 Rewinds the readFrame() iterator.
 
void updateGroupCoords (AtomicGroup &g)
 Update the coordinates in an AtomicGroup with the current frame. More...
 
void seekNextFrame (void)
 
void seekFrame (const uint i)
 
bool readFrame (void)
 Reads the next frame in a trajectory, returning false if at the end.
 
bool readFrame (const int i)
 Reads a specific frame in a trajectory. More...
 

Static Public Member Functions

static pTraj create (const std::string &fname, const AtomicGroup &model)
 

Additional Inherited Members

- Protected Attributes inherited from loos::Trajectory
StreamWrapper ifs
 
bool cached_first
 
std::string _filename
 

Detailed Description

Class for handling Tinker ARC files (concatenation of .xyz files)

This class reads a concatenated .xyz tinker trajectory (i.e. an ARC file). In order to determine the number of frames present, the trajectory is scanned from beginning to end upon instantiation. A list of seek indices for each frame is also built.

The first frame is read in by init(), so there is no explicit readFrame() during initialization.

There seems to be an issue with some .ARC files where reading the end of the contained TinkerXYZ object does not put the input stream into an EOF state. So, we can't depend on checking eof() in parseFrame() to flag when we've iterated off the end. TinkerArc therefore keeps track of what index into the Trajectory it's at and uses that to check to see if it's at the end or not.

It is possible to get the contained TinkerXYZ object out of a TinkerArc, but with certain caveats. See CCPDB::currentFrame() for more details.

Definition at line 60 of file tinker_arc.hpp.

Member Function Documentation

std::vector< GCoord > loos::TinkerArc::coords ( void  )
virtual

Returns the current frames coordinates as a vector of GCoords.

Some formats, notably DCDs, do not interleave their coordinates. This means that this could be a potentially expensive operation.

Implements loos::Trajectory.

Definition at line 87 of file tinker_arc.cpp.

TinkerXYZ loos::TinkerArc::currentFrame ( void  ) const
inline

Returns the contained TinkerXYZ object.

See CCPDB::currentFrame() for some important notes about using this function.

Definition at line 87 of file tinker_arc.hpp.

virtual bool loos::TinkerArc::hasPeriodicBox ( void  ) const
inlinevirtual

Tests whether or not the given frame/trajectory has periodic boundary information. The presence of periodic box information does not necessarily indicate that said information has been read in yet. For example, the presence of crystal data is in the header so this can be detected before any frame is read, but the crystal data itself is only read when a frame is read in.

Implements loos::Trajectory.

Definition at line 78 of file tinker_arc.hpp.

bool loos::TinkerArc::parseFrame ( void  )
virtual

Parse an actual frame.

parseFrame() is expected to read in a frame through the Trajectory's StreamWrapper. It returns a bool indicating whether or not it was able to actually read a frame (i.e. false indicates EOF).

Implements loos::Trajectory.

Definition at line 71 of file tinker_arc.cpp.


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