Loading...
Searching...
No Matches
BALL::DCDFile Class Reference
Molecular Modeling » File Formats » Molecular Dynamics Trajectory File Formats

`#include <BALL/FORMAT/DCDFile.h>`

Inheritance diagram for BALL::DCDFile:

## Public Member Functions

Constructors and Destructor
| DCDFile ()
| Default constructor.
| DCDFile (const String &name, File::OpenMode open_mode=std::ios::in)
virtual | ~DCDFile ()
| Destructor.
Assignment
virtual void | clear ()
| Clear method.
Predicates
bool | operator== (const DCDFile &file) const
| Equality operator.
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)
Public Member Functions inherited from BALL::TrajectoryFile
| TrajectoryFile ()
| Default constructor.
| TrajectoryFile (const String &filename, File::OpenMode open_mode=std::ios::in)
virtual | ~TrajectoryFile ()
| Destructor.
bool | operator== (const TrajectoryFile &file) const
| Equality operator.
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 String & | getName () const
void | setName (const String &name)
const String & | getOriginalName () 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 ()
TransformationManager & | getTransformationManager ()
const TransformationManager & | getTransformationManager () 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

## Accessors

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< Size > | adapt_size_
BinaryFileAdaptor< float > | adapt_float_
void | enableVelocityStorage ()
void | disableVelocityStorage ()
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)

## 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 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).
static const OpenMode | MODE_OUT
| Open for output.
static const OpenMode | MODE_APP
| Append. Seek to end before each write operation.
static const OpenMode | MODE_BINARY
| Binary mode.
static const OpenMode | MODE_ATE
| Seek to end directly after opening.
static const OpenMode | MODE_TRUNC
| Truncate an existing file.
static const String | TRANSFORMATION_EXEC_PREFIX
| Prefix for filenames that are created through the execution of commands "exec:".
static const String | TRANSFORMATION_FILE_PREFIX
| Prefix for files (to mimick URL-like behavior) "file:".
static const String | TRANSFORMATION_FTP_PREFIX
| Prefix for FTP-transfers "ftp://".
static const String | TRANSFORMATION_HTTP_PREFIX
| Prefix for HTTP-transfer "http://".
Size | number_of_snapshots_
Size | number_of_atoms_
String | name_
String | original_name_
OpenMode | open_mode_
bool | is_open_
bool | is_temporary_
static HashSet< String > | created_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

## DCDFile() [1/2]

BALL::DCDFile::DCDFile | ( |  | ) |

Default constructor.

## DCDFile() [2/2]

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

Detailed constructor

Exceptions

  Exception::FileNotFound | if the file could not be openend

## ~DCDFile()

virtual BALL::DCDFile::~DCDFile | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## append()

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

  snapshot | the snapshot we want to save

Returns
  true, if writing was successful

Reimplemented from BALL::TrajectoryFile.

## clear()

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

virtual

Clear method.

Reimplemented from BALL::TrajectoryFile.

## disableVelocityStorage()

void BALL::DCDFile::disableVelocityStorage | ( |  | ) |

## enableVelocityStorage()

void BALL::DCDFile::enableVelocityStorage | ( |  | ) |

## flushToDisk()

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

virtual

Write several SnapShots to disk.

Parameters

  buffer | a vector of snapshots

Returns
  true, if flushing was successful, false ow.

Exceptions

  File::CannotWrite | if writing to the file failed

Reimplemented from BALL::TrajectoryFile.

## hasVelocities()

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

## init()

bool BALL::DCDFile::init | ( |  | ) |

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

## isSwappingBytes()

bool BALL::DCDFile::isSwappingBytes | ( |  | ) | const

## open()

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

virtual

open a DCDFile

Exceptions

  Exception::FileNotFound | if the file could not be openend

## operator==()

bool BALL::DCDFile::operator== | ( | const DCDFile & | file | ) | const

Equality operator.

## read()

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

virtual

Read the next snapshot from the file

Parameters

  snapshot | a buffer for result delivery

Returns
  true, if a snapshot could be read, false ow.

Reimplemented from BALL::TrajectoryFile.

## readFloat_()

float BALL::DCDFile::readFloat_ | ( |  | ) |

protected

## readHeader()

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.

## readSize_() [1/2]

Size BALL::DCDFile::readSize_ | ( |  | ) |

protected

## readSize_() [2/2]

bool BALL::DCDFile::readSize_ | ( | Size | expected_size,
|  | const String & | what )

protected

## readVector_()

bool BALL::DCDFile::readVector_ | ( | vector< Vector3 > & | v | ) |

protected

## seekAndWriteHeader()

virtual bool BALL::DCDFile::seekAndWriteHeader | ( |  | ) |

virtual

## writeFloat_()

void BALL::DCDFile::writeFloat_ | ( | const float & | data | ) |

inline protected

Definition at line 148 of file DCDFile.h.

## writeHeader()

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

virtual

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

Reimplemented from BALL::TrajectoryFile.

## writeSize_()

void BALL::DCDFile::writeSize_ | ( | const Size & | data | ) |

inline protected

Definition at line 144 of file DCDFile.h.

## writeVector_()

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

protected

## Member Data Documentation

## adapt_float_

BinaryFileAdaptor<float> BALL::DCDFile::adapt_float_

protected

Definition at line 204 of file DCDFile.h.

## adapt_size_

BinaryFileAdaptor<Size> BALL::DCDFile::adapt_size_

protected

Definition at line 203 of file DCDFile.h.

## charmm_extra_block_A_

bool BALL::DCDFile::charmm_extra_block_A_

protected

Definition at line 176 of file DCDFile.h.

## charmm_extra_block_B_

bool BALL::DCDFile::charmm_extra_block_B_

protected

Definition at line 179 of file DCDFile.h.

## CORD_

String BALL::DCDFile::CORD_

protected

Definition at line 182 of file DCDFile.h.

## current_snapshot_

Position BALL::DCDFile::current_snapshot_

protected

Definition at line 201 of file DCDFile.h.

## has_velocities_

bool BALL::DCDFile::has_velocities_

protected

Definition at line 173 of file DCDFile.h.

## number_of_comments_

Size BALL::DCDFile::number_of_comments_

protected

Definition at line 194 of file DCDFile.h.

## step_number_of_starting_time_

Size BALL::DCDFile::step_number_of_starting_time_

protected

Definition at line 185 of file DCDFile.h.

## steps_between_saves_

Size BALL::DCDFile::steps_between_saves_

protected

Definition at line 188 of file DCDFile.h.

## swap_bytes_

bool BALL::DCDFile::swap_bytes_

protected

Definition at line 170 of file DCDFile.h.

## time_step_length_

double BALL::DCDFile::time_step_length_

protected

Definition at line 191 of file DCDFile.h.

## verbosity_

Size BALL::DCDFile::verbosity_

protected

Definition at line 167 of file DCDFile.h.