test commit and push upstream to origin
[cluster_expansion_mc.git] / Interactions.h
blob888590217a041c683fb1c71c6b034e2145fe8451
1 #ifndef _INTERACTIONS_H
2 #define _INTERACTIONS_H
4 #include <string>
5 #include <vector>
7 using namespace std;
9 #include "Direction.h"
10 #include "Combination.hpp"
12 struct Interaction {
13 string name;
14 Directions directions;
15 vector<Directions> symmetryDirections;
16 double multiplicity;
17 double energy;
18 void generateSymmetryEquivalentVecC2v(Directions directions, vector<Directions>& symmetryDirections);
19 friend bool operator==(Directions& firstDirections, Directions& secondDirections);
20 Direction mirrorXZ(Directions::iterator direction);
21 Direction mirrorYZ(Directions::iterator direction);
22 // Direction rotate90degreeZ (Directions::iterator direction);
23 vector<Directions> rotate90degreeZ (Directions& directions);
24 Interaction(const string name = "", int multiplicity = 0, double energy =
25 0.0) :
26 name(name), multiplicity(multiplicity), energy(energy) {
35 class Interactions: public vector<Interaction> {
36 public:
37 static bool compareInteraction (const Interaction a, const Interaction b);
38 friend ostream& operator<<(ostream& output, const Interactions&);
39 void symmetrizeInteractions (Interactions& interactions);
40 void joinSymmetryEquivalent (Interactions& interactions);
41 void generateCombinations();
45 #endif