-
Notifications
You must be signed in to change notification settings - Fork 0
/
LRL_ReadLatticeData.h
37 lines (30 loc) · 1.75 KB
/
LRL_ReadLatticeData.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
#ifndef LRL_READLATTICEDATA_H
#define LRL_READLATTICEDATA_H
#include "LRL_Cell.h"
#include "CellInputData.h"
#include "GenerateRandomLattice.h"
class LRL_ReadLatticeData : public CellInputData {
public:
LRL_ReadLatticeData( const int seed = 0);
LRL_ReadLatticeData read();
LRL_ReadLatticeData CreateLatticeData(const std::string& s);
std::vector<LRL_ReadLatticeData> ReadLatticeData();
void CellReader( const std::string& s );
void CellReader(const std::string& lattice, const std::string& cell);
std::vector<double> GetFieldsForCellFromString(const std::string& s);
bool StringToCell(const std::vector<double>& fields);
static std::vector<CellInputData> ReadAllLatticeData(const int seed);
static std::vector<CellInputData> ReadAllLatticeDataAndMakePrimitive(const int seed);
protected:
GenerateRandomLattice<S6> generator;
std::pair<std::vector<double>, std::vector<double> > SplitFields(const int n, const std::vector<double>& fields);
bool SetRandomCell( const std::string& inputDataType );
bool SetG6Data( const std::string& inputDataType, const std::vector<double>& fields );
bool SetD7Data( const std::string& inputDataType, const std::vector<double>& fields );
bool SetS6Data( const std::string& inputDataType, const std::vector<double>& fields );
bool SetC3Data( const std::string& inputDataType, const std::vector<double>& fields );
bool SetUnitCellTypeData( const std::string& inputDataType, const std::pair<std::vector<double>, std::vector<double> >& params );
bool IsLatticeName(const std::string inputName, const std::vector<std::string>& nameList);
bool IsLatticeName(const std::vector<std::string>& nameList, const std::string inputName);
};
#endif // LRL_READLATTICEDATA_H