From c2564c92e60d6cc163621867d45d1f8685c03eeb Mon Sep 17 00:00:00 2001 From: rieger Date: Wed, 21 May 2008 18:05:06 +0200 Subject: [PATCH] implemented a frist try to include symmetry into interactionAssessment routine included iterator for symmetry class in lattice runnin through all symmetry operations, giving x and y value of the symmetry operation using this as multipliers for the interaction vectors coded in the interaction definition --- Lattice.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Lattice.cpp b/Lattice.cpp index 56c2963..ca8d21c 100644 --- a/Lattice.cpp +++ b/Lattice.cpp @@ -59,14 +59,20 @@ Lattice::assessInteractions(Interactions &interactions) for (Directions::iterator direction = interaction->directions.begin(); direction != interaction->directions.end(); direction++) { // FIXME: what about symmetry operations?? - int x = (i.position()[firstDim] + (int)(direction->x / UnitCellSizeX)) % - (UnitCellSizeX * Longitude); - int y = (i.position()[secondDim] + (int)(direction->y / UnitCellSizeY)) % - (UnitCellSizeY * Latitude); + for (Directions::iterator symmetry_operation = lattice.symmetry.begin(); + symmetry_operation != lattice.symmetry.end()) { + + int x = (i.position()[firstDim] + (int)((direction->x / UnitCellSizeX)* + symmetry_operation->direction.x) % + (UnitCellSizeX * Longitude); + int y = (i.position()[secondDim] + (int)((direction->y / UnitCellSizeY)* + symmetry_operation->direction.y)) % + (UnitCellSizeY * Latitude); cout << "(" << x << "/" << y << ") "; if (adsorbates(x, y) != empty) { interaction->multiplicity++; cout << "HIT "; + } } } cout << endl; -- 2.11.4.GIT