removed getEnergy() function... it's a feature of structure class
[cluster_expansion.git] / Lattice.h
blob71e3938b5d8bc3fcee46c3c263bc0293dd3daa49
1 #ifndef _LATTICE_H
2 #define _LATTICE_H
4 #include <blitz/array.h>
5 using namespace blitz;
7 #include "Symmetry.h"
8 #include "Interactions.h"
10 enum Occupation {
11 empty = 0,
12 CO,
16 class LatticeLayer : public Array<Occupation, 2> {
17 public:
18 LatticeLayer& operator=(Occupation const& o);
20 friend ostream& operator<<(ostream& output, const LatticeLayer&);
24 class Lattice {
25 public:
27 Lattice(int Longitude = 0, int Latitude = 0, int UnitCellSizeX = 0, int UnitCellSizeY = 0) :
28 Latitude(Latitude), Longitude(Longitude),
29 UnitCellSizeX(UnitCellSizeX), UnitCellSizeY(UnitCellSizeY),
30 adsorbates(),
31 // XXX: this is crap...!!
32 surface() { adsorbates(2,2); };
34 int Latitude, Longitude;
35 int UnitCellSizeX, UnitCellSizeY;
37 LatticeLayer adsorbates;
38 LatticeLayer surface;
40 SymmetryOperations symmetry;
42 void extendUnitCell(void);
43 void assessInteractions(Interactions&);
44 double getEnergy(void);
46 private:
47 void extendUnitCell(LatticeLayer, int, int);
49 friend ostream& operator<<(ostream& output, const Lattice&);
53 #endif