-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathatomsite.h
51 lines (32 loc) · 1.24 KB
/
atomsite.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
47
48
49
50
51
//
// Created by Jon on 24/08/2015.
//
#ifndef XYZ_ATOMSITE_H
#define XYZ_ATOMSITE_H
#include <string>
#include "utilities.h"
#include "symmetryoperation.h"
namespace CIF {
class AtomSite {
public:
AtomSite() {}
AtomSite(std::vector<Symmetry> symmetryvector, std::string namein, std::string labelin, double xin, double yin, double zin,
double occin = 1.0);
void applySymmetry(Symmetry symmetry);
void applySymmetry(std::vector<Symmetry> symmetryvector);
void addAtom(std::string namein, std::string labelin, double occin);
bool setIsoU(std::string lbl, double u_iso);
bool setU(std::string lbl, double u, int i);
std::vector<double> getOccupancies() { return occupancy; }
std::vector<std::vector<double>> getPositions() { return positions; }
std::vector<std::string> getElements() { return element; }
std::vector<Eigen::Vector3d> getThermals() {return thermal_u;}
private:
std::vector<double> occupancy;
std::vector<Eigen::Vector3d> thermal_u;
std::vector<std::vector<double>> positions;
std::vector<std::string> element, label;
double wrapPosition(double pos);
};
}
#endif //XYZ_ATOMSITE_H