aboutsummaryrefslogtreecommitdiff
path: root/boltzgen/kernel/target/index.py
blob: e89e9ee7b9fcded7a65b63c319a7f9637cb0a09d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class CellIndex:
    def __init__(self, geometry):
        self.geometry   = geometry

    def neighbor(self, c_i):
        return self.gid(*[ c for _, c in enumerate(c_i) ])

class XYZ(CellIndex):
    pass

    def gid(self, x, y, z=0):
        return x*self.geometry.size_y*self.geometry.size_z + y*self.geometry.size_z + z

class ZYX(CellIndex):
    pass

    def gid(self, x, y, z=0):
        return z*self.geometry.size_x*self.geometry.size_y + y*self.geometry.size_x + x