removed counters for edges etc..

这个提交包含在:
jasminium
2016-05-18 15:55:00 +01:00
父节点 9c6af8b5d5
当前提交 bca1817679

查看文件

@@ -6,7 +6,15 @@ import numpy as np
from gprMax.grid import Grid from gprMax.grid import Grid
class ListCounter():
def __init__(self, npArray):
self.array = npArray
self.count = 0
def add(self, item):
self.array[self.count] = item
self.count += 1
class Edges: class Edges:
@@ -17,52 +25,50 @@ class Edges:
grid grid
""" """
self.total_edges = grid.n_edges() self.total_edges = grid.n_edges()
self.edges = np.zeros((self.total_edges, 2), np.float32)
self.edge_count = 0
self.grid = grid self.grid = grid
""" self.edges = np.zeros((self.total_edges, 2), np.float32)
Adds the the edge specified by in_node and the i,j,k position of the outnode self.edge_counter = ListCounter(self.edges)
"""
def add_edge(self, in_label, i, j, k):
def add_edge(self, in_label, i, j, k):
"""
Adds the the edge specified by in_node and the i,j,k position of the outnode
"""
out_label = self.grid.get(i, j, k) out_label = self.grid.get(i, j, k)
self.edges[self.edge_count] = np.array([in_label, out_label]) edge = np.array([in_label, out_label])
self.edge_count += 1 self.edge_counter.add(edge)
class Coordinates: class Coordinates:
def __init__(self, grid): def __init__(self, grid):
self.total_coordinates = grid.nx * grid.ny * grid.nz self.total_coordinates = grid.nx * grid.ny * grid.nz
self.coordinate_count = 0
self.coordinates = np.zeros((self.total_coordinates, 3), np.float32) self.coordinates = np.zeros((self.total_coordinates, 3), np.float32)
self.coord_counter = ListCounter(self.coordinates)
def add_coordinate(self, x, y, z): def add_coordinate(self, x, y, z):
self.coordinates[self.coordinate_count] = np.array([x, y, z]) self.coord_counter.add(np.array([x, y, z]))
self.coordinate_count += 1
class Solids: class Solids:
def __init__(self, fdtd_grid): def __init__(self, fdtd_grid):
self.count = 0
self.fdtd_grid = fdtd_grid self.fdtd_grid = fdtd_grid
self.total_solids = fdtd_grid.n_cells() self.total_solids = fdtd_grid.n_cells()
self.solids = np.zeros((self.total_solids), np.float32) self.solids = np.zeros((self.total_solids), np.float32)
self.solid_counter = ListCounter(self.solids)
def add_solid(self, i, j, k): def add_solid(self, i, j, k):
self.solids[self.count] = self.fdtd_grid.solid[i][j][k] self.solid_counter.add(self.fdtd_grid.solid[i][j][k])
self.count += 1
class SolidLabels(): class SolidLabels():
def __init__(self, label_grid): def __init__(self, label_grid):
self.count = 0
self.label_grid = label_grid self.label_grid = label_grid
self.total_solids = label_grid.n_cells() self.total_solids = label_grid.n_cells()
self.solid_labels = np.zeros((self.total_solids, 8), np.float32) self.solid_labels = np.zeros((self.total_solids, 8), np.float32)
self.label_counter = ListCounter(self.solid_labels)
def hexCellPicker(self, grid, i, j, k): def hexCellPicker(self, grid, i, j, k):
@@ -102,8 +108,7 @@ class SolidLabels():
def add(self, i, j, k): def add(self, i, j, k):
solid_labels = self.hexCellPicker(self.label_grid.grid, i, j, k) solid_labels = self.hexCellPicker(self.label_grid.grid, i, j, k)
self.solid_labels[self.count] = solid_labels self.label_counter(solid_labels)
self.count += 1
class Materials: class Materials:
@@ -112,15 +117,13 @@ class Materials:
self.fdtd_grid = fdtd_grid self.fdtd_grid = fdtd_grid
self.n_edges = fdtd_grid.n_edges() self.n_edges = fdtd_grid.n_edges()
self.materials = np.zeros((self.n_edges), np.float32) self.materials = np.zeros((self.n_edges), np.float32)
self.material_count = 0 self.materialCounter = ListCounter(self.materials)
# direction x->0 y->1 z->2 # direction x->0 y->1 z->2
def add_material(self, i, j, k, direction): def add_material(self, i, j, k, direction):
material = self.fdtd_grid.ID[direction, i, j, k] material = self.fdtd_grid.ID[direction, i, j, k]
self.materials[self.material_count] = material self.materialCounter.add(material)
self.material_count += 1
def process_grid(fdtd_grid, res): def process_grid(fdtd_grid, res):