STORMM Source Documentation
Loading...
Searching...
No Matches
write_frame.h
1// -*-c++-*-
2#ifndef STORMM_WRITE_FRAME_H
3#define STORMM_WRITE_FRAME_H
4
5#include <fstream>
6#include <string>
7#include <vector>
8#include "copyright.h"
9#include "FileManagement/file_util.h"
10#include "Parsing/textfile.h"
11#include "Topology/atomgraph_enumerators.h"
12#include "trajectory_enumerators.h"
13
14namespace stormm {
15namespace trajectory {
16
17using diskutil::PrintSituation;
18using topology::UnitCellType;
19using parse::TextFile;
20
28PrintSituation adjustTrajectoryOpeningProtocol(const PrintSituation expectation,
29 const CoordinateFileKind output_kind,
30 const char* caller = nullptr,
31 const char* method = nullptr);
32
39void initializeTrajectory(std::ofstream *foutp, const CoordinateFileKind output_kind,
40 int atom_count = 0, double current_time = 0.0);
41
67void writeFrame(std::ofstream *foutp, const std::string &filename, CoordinateFileKind kind,
68 int natom, const double* x_crd, const double* y_crd, const double* z_crd,
69 const double* x_vel, const double* y_vel, const double* z_vel,
70 UnitCellType unit_cell, const double* box_dimensions);
71
72void writeFrame(std::ofstream *foutp, const std::string &filename, CoordinateFileKind kind,
73 const std::vector<double> &x_crd, const std::vector<double> &y_crd,
74 const std::vector<double> &z_crd, const std::vector<double> &x_vel,
75 const std::vector<double> &y_vel, const std::vector<double> &z_vel,
76 UnitCellType unit_cell, const std::vector<double> &box_dimensions);
77
78void writeFrame(std::ofstream *foutp, const std::string &filename, const TextFile &tf);
80
81} // namespace trajectory
82} // namespace stormm
83
84#include "write_frame.h"
85
86#endif
Structure for translating a text file into a compact, rapidly parsable vector of characters in CPU RA...
Definition textfile.h:45