BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Protected Member Functions | Protected Attributes | List of all members
BALL::DCDFile Class Reference

#include <BALL/FORMAT/DCDFile.h>

Inheritance diagram for BALL::DCDFile:
BALL::TrajectoryFile BALL::File

Public Member Functions

Constructors and Destructor
 DCDFile ()
 Default constructor. More...
 
 DCDFile (const String &name, File::OpenMode open_mode=std::ios::in)
 
virtual ~DCDFile ()
 Destructor. More...
 
Assignment
virtual void clear ()
 Clear method. More...
 
Predicates
bool operator== (const DCDFile &file) const
 Equality operator. More...
 
bool isSwappingBytes () const
 
bool hasVelocities () const
 
Public methods for file handling
virtual bool open (const String &name, File::OpenMode open_mode=std::ios::in)
 
bool init ()
 
virtual bool readHeader ()
 
virtual bool writeHeader ()
 
virtual bool seekAndWriteHeader ()
 
virtual bool append (const SnapShot &snapshot)
 
virtual bool read (SnapShot &snapshot)
 
virtual bool flushToDisk (const std::vector< SnapShot > &buffer)
 
Accessors
void enableVelocityStorage ()
 
void disableVelocityStorage ()
 
- Public Member Functions inherited from BALL::TrajectoryFile
 TrajectoryFile ()
 Default constructor. More...
 
 TrajectoryFile (const String &filename, File::OpenMode open_mode=std::ios::in)
 
virtual ~TrajectoryFile ()
 Destructor. More...
 
bool operator== (const TrajectoryFile &file) const
 Equality operator. More...
 
virtual Size getNumberOfSnapShots ()
 
Size getNumberOfAtoms () const
 
- Public Member Functions inherited from BALL::File
 File ()
 
 File (const String &name, OpenMode open_mode=std::ios::in)
 
virtual ~File ()
 
bool isValid () const
 
bool open (const String &name, File::OpenMode open_mode=std::ios::in)
 
bool reopen ()
 
bool reopen (File::OpenMode open_mode)
 
void close ()
 
const StringgetName () const
 
void setName (const String &name)
 
const StringgetOriginalName () const
 
Size getSize ()
 
File::OpenMode getOpenMode () const
 
Type getType (bool trace_link) const
 
bool copyTo (const String &destination_name, Size buffer_size=4096)
 
bool moveTo (const String &destination_name)
 
bool remove ()
 
bool renameTo (const String &new_path)
 
bool truncate (Size size=0)
 
std::fstream & getFileStream ()
 
TransformationManagergetTransformationManager ()
 
const TransformationManagergetTransformationManager () const
 
bool operator== (const File &file) const
 
bool operator!= (const File &file) const
 
bool isOpen () const
 
bool isClosed () const
 
bool isAccessible () const
 
bool isCanonized () const
 
bool isReadable () const
 
bool isWritable () const
 
bool isExecutable () const
 

Protected Member Functions

void writeSize_ (const Size &data)
 
void writeFloat_ (const float &data)
 
void writeVector_ (const vector< Vector3 > &v)
 
float readFloat_ ()
 
Size readSize_ ()
 
bool readSize_ (Size expected_size, const String &what)
 
bool readVector_ (vector< Vector3 > &v)
 

Protected Attributes

Size verbosity_
 
bool swap_bytes_
 
bool has_velocities_
 
bool charmm_extra_block_A_
 
bool charmm_extra_block_B_
 
String CORD_
 
Size step_number_of_starting_time_
 
Size steps_between_saves_
 
double time_step_length_
 
Size number_of_comments_
 
Position current_snapshot_
 
BinaryFileAdaptor< Sizeadapt_size_
 
BinaryFileAdaptor< floatadapt_float_
 
- Protected Attributes inherited from BALL::TrajectoryFile
Size number_of_snapshots_
 
Size number_of_atoms_
 
- Protected Attributes inherited from BALL::File
String name_
 
String original_name_
 
OpenMode open_mode_
 
bool is_open_
 
bool is_temporary_
 

Additional Inherited Members

- Public Types inherited from BALL::File
typedef std::ios::openmode OpenMode
 
enum  Transformation { TRANSFORMATION__EXEC = 1, TRANSFORMATION__FILTER = 2, TRANSFORMATION__URL = 3 }
 
enum  Type {
  TYPE__UNKNOWN = 0, TYPE__DIRECTORY = 1, TYPE__CHAR_SPECIAL_FILE = 2, TYPE__BLOCK_SPECIAL_FILE = 3,
  TYPE__REGULAR_FILE = 4, TYPE__SYMBOLIC_LINK = 5, TYPE__SOCKET = 6, TYPE__FIFO_SPECIAL_FILE = 7
}
 
- Static Public Member Functions inherited from BALL::File
static Size getSize (String name)
 
static Type getType (String name, bool trace_link)
 
static bool copy (String source_name, String destination_name, Size buffer_size=4096)
 
static bool move (const String &source_name, const String &destination_name)
 
static bool remove (String name)
 
static bool rename (String old_path, String new_path)
 
static bool truncate (String path, Size size=0)
 
static bool createTemporaryFilename (String &temporary, const String &suffix=".TMP")
 
static void enableTransformation (Transformation transformation)
 
static void disableTransformation (Transformation transformation)
 
static bool isTransformationEnabled (Transformation transformation)
 
static void registerTransformation (const String &pattern, const String &exec)
 
static void unregisterTransformation (const String &pattern)
 
static bool isAccessible (String name)
 
static bool isReadable (String name)
 
static bool isWritable (String name)
 
static bool isExecutable (String name)
 
- Static Public Attributes inherited from BALL::File
static const OpenMode MODE_IN
 Open for input (default) More...
 
static const OpenMode MODE_OUT
 Open for output. More...
 
static const OpenMode MODE_APP
 Append. Seek to end before each write operation. More...
 
static const OpenMode MODE_BINARY
 Binary mode. More...
 
static const OpenMode MODE_ATE
 Seek to end directly after opening. More...
 
static const OpenMode MODE_TRUNC
 Truncate an existing file. More...
 
static const String TRANSFORMATION_EXEC_PREFIX
 Prefix for filenames that are created through the execution of commands "exec:". More...
 
static const String TRANSFORMATION_FILE_PREFIX
 Prefix for files (to mimick URL-like behavior) "file:". More...
 
static const String TRANSFORMATION_FTP_PREFIX
 Prefix for FTP-transfers "ftp://". More...
 
static const String TRANSFORMATION_HTTP_PREFIX
 Prefix for HTTP-transfer "http://". More...
 
- Static Protected Attributes inherited from BALL::File
static HashSet< Stringcreated_temp_filenames_
 
static TransformationManager transformation_manager_
 
static Size transformation_methods_
 

Detailed Description

DCD Trajectory file format. This class enables BALL to write DCD files that can be read by VMD. The format stems from the xplor package. This format is NOT portable.

The header is described in the documentation for the nested DCDHeader class.
Header of a DCD file: Got this description from http://www.arl.hpc.mil/PET/cta/ccm/software/fmd/Docs/html/fmd_ug.html. Quote: "The exact format of these files is quite ugly, as it reproduces the binary record format of unformatted FORTRAN files. Each such "record" begins with 4 bytes containing the integer value of the number of bytes in the following record. It ends with a record containing the same 4 bytes."
The header consists of several blocks. Each block starts and ends with the number of bytes enclosed between those numbers, i. e. a block consisting of 8 bytes starts with the number 8 followed by 8 bytes of data and ends with the number 8.
TODO: complete header description

Definition at line 37 of file DCDFile.h.

Constructor & Destructor Documentation

BALL::DCDFile::DCDFile ( )

Default constructor.

BALL::DCDFile::DCDFile ( const String name,
File::OpenMode  open_mode = std::ios::in 
)

Detailed constructor

Exceptions
Exception::FileNotFoundif the file could not be openend
virtual BALL::DCDFile::~DCDFile ( )
virtual

Destructor.

Member Function Documentation

virtual bool BALL::DCDFile::append ( const SnapShot snapshot)
virtual

Append a SnapShot to an existing file. Note that this method does not update the header.

Parameters
snapshotthe snapshot we want to save
Returns
true, if writing was successful

Reimplemented from BALL::TrajectoryFile.

virtual void BALL::DCDFile::clear ( )
virtual

Clear method.

Reimplemented from BALL::TrajectoryFile.

void BALL::DCDFile::disableVelocityStorage ( )
void BALL::DCDFile::enableVelocityStorage ( )
virtual bool BALL::DCDFile::flushToDisk ( const std::vector< SnapShot > &  buffer)
virtual

Write several SnapShots to disk.

Parameters
buffera vector of snapshots
Returns
true, if flushing was successful, false ow.
Exceptions
File::CannotWriteif writing to the file failed

Reimplemented from BALL::TrajectoryFile.

bool BALL::DCDFile::hasVelocities ( ) const
bool BALL::DCDFile::init ( )

Initialize this instance, i. e. read the header and update members

bool BALL::DCDFile::isSwappingBytes ( ) const
virtual bool BALL::DCDFile::open ( const String name,
File::OpenMode  open_mode = std::ios::in 
)
virtual

open a DCDFile

Exceptions
Exception::FileNotFoundif the file could not be openend
bool BALL::DCDFile::operator== ( const DCDFile file) const

Equality operator.

virtual bool BALL::DCDFile::read ( SnapShot snapshot)
virtual

Read the next snapshot from the file

Parameters
snapshota buffer for result delivery
Returns
true, if a snapshot could be read, false ow.

Reimplemented from BALL::TrajectoryFile.

float BALL::DCDFile::readFloat_ ( )
protected
virtual bool BALL::DCDFile::readHeader ( )
virtual

Read the header of an existing file. Return true if the header could be read successfully, false ow.

Reimplemented from BALL::TrajectoryFile.

Size BALL::DCDFile::readSize_ ( )
protected
bool BALL::DCDFile::readSize_ ( Size  expected_size,
const String what 
)
protected
bool BALL::DCDFile::readVector_ ( vector< Vector3 > &  v)
protected
virtual bool BALL::DCDFile::seekAndWriteHeader ( )
virtual
void BALL::DCDFile::writeFloat_ ( const float data)
inlineprotected

Definition at line 148 of file DCDFile.h.

virtual bool BALL::DCDFile::writeHeader ( )
virtual

Write a header Return true if the header could be written successfully, false ow.

Reimplemented from BALL::TrajectoryFile.

void BALL::DCDFile::writeSize_ ( const Size data)
inlineprotected

Definition at line 144 of file DCDFile.h.

void BALL::DCDFile::writeVector_ ( const vector< Vector3 > &  v)
protected

Member Data Documentation

BinaryFileAdaptor<float> BALL::DCDFile::adapt_float_
protected

Definition at line 204 of file DCDFile.h.

BinaryFileAdaptor<Size> BALL::DCDFile::adapt_size_
protected

Definition at line 203 of file DCDFile.h.

bool BALL::DCDFile::charmm_extra_block_A_
protected

Definition at line 176 of file DCDFile.h.

bool BALL::DCDFile::charmm_extra_block_B_
protected

Definition at line 179 of file DCDFile.h.

String BALL::DCDFile::CORD_
protected

Definition at line 182 of file DCDFile.h.

Position BALL::DCDFile::current_snapshot_
protected

Definition at line 201 of file DCDFile.h.

bool BALL::DCDFile::has_velocities_
protected

Definition at line 173 of file DCDFile.h.

Size BALL::DCDFile::number_of_comments_
protected

Definition at line 194 of file DCDFile.h.

Size BALL::DCDFile::step_number_of_starting_time_
protected

Definition at line 185 of file DCDFile.h.

Size BALL::DCDFile::steps_between_saves_
protected

Definition at line 188 of file DCDFile.h.

bool BALL::DCDFile::swap_bytes_
protected

Definition at line 170 of file DCDFile.h.

double BALL::DCDFile::time_step_length_
protected

Definition at line 191 of file DCDFile.h.

Size BALL::DCDFile::verbosity_
protected

Definition at line 167 of file DCDFile.h.