1 #ifndef _INTERACTIONS_H
2 #define _INTERACTIONS_H
10 #include "Combination.hpp"
14 Directions directions
;
15 vector
<Directions
> symmetryDirections
;
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
=
26 name(name
), multiplicity(multiplicity
), energy(energy
) {
35 class Interactions
: public vector
<Interaction
> {
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();