-
Notifications
You must be signed in to change notification settings - Fork 1
/
ambersystem.h
46 lines (33 loc) · 1019 Bytes
/
ambersystem.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#pragma once
#ifndef AMBERSYSTEM_H_
#define AMBERSYSTEM_H_
#include "mdsystem.h"
#include "crdfile.h"
#include "forcefile.h"
#include "topfile.h"
#include "graph.h"
class AmberSystem : public MDSystem {
private:
AmberSystem () { }
//Atom_ptr_vec _atoms;
TOPFile _topfile;
CRDFile _coords;
ForceFile _forces;
void _ParseAtomInformation ();
void _ParseAtomVectors ();
void _ParseMolecules ();
public:
// constructors
AmberSystem (const std::string& prmtop, const std::string& mdcrd, const bool periodic=true, const std::string& mdvel = "");
~AmberSystem ();
// Controller & Calculation methods
void LoadNext (); // Update the system to the next timestep
void LoadFirst ();
bool eof () const { return _coords.eof(); }
// Output
VecR Dims () const { return _coords.Dims(); } // returns the system size.
int Current () const { return _coords.Current(); }
void PrintCRDFile () const; // to output a frame of the system in .crd format
bondgraph::BondGraph graph;
};
#endif