-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathForceField.hpp
39 lines (30 loc) · 866 Bytes
/
ForceField.hpp
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
#pragma once
// For now, only consider truncated Lennard-Jones potential...
#include <functional>
#include <vector>
#include <memory>
#include <string>
#include "GridayTypes.hpp"
#include "GridayException.hpp"
#include "Vector.hpp"
#include "Cell.hpp"
#include "AtomTypeMap.hpp"
#include "PairEnergy.hpp"
class ForceField
{
public:
using PairEnergies = std::vector< std::unique_ptr<PairEnergy> >;
ForceField(const AtomTypeMap& map, const Cell& box = Cell {});
ForceField(const ForceField& other);
ForceField& operator = (const ForceField& other);
~ForceField() = default;
void read(std::string filename);
void print();
void setSimulationBox(const Cell& box);
PairEnergy& getPairEnergy(int i, int j);
GReal getMaxRcut();
private:
PairEnergies mPairEnergies;
AtomTypeMap mAtomTypeMap;
Cell mBox;
};