Skip to content

Commit ba20804

Browse files
committed
Delete mapper and replace its function with lookup registries
1 parent f449c74 commit ba20804

File tree

5 files changed

+9
-113
lines changed

5 files changed

+9
-113
lines changed

src/classy_blocks/lookup/cell_registry.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44

55
class CellRegistry:
6+
# Works for both quads and hexas
67
def __init__(self, addressing: list[IndexType]):
78
self.addressing = addressing
89

src/classy_blocks/optimize/grid.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,11 @@
1818
QuadConnectionRegistry,
1919
)
2020
from classy_blocks.lookup.face_registry import FaceRegistryBase, HexFaceRegistry, QuadFaceRegistry
21-
from classy_blocks.lookup.point_registry import HexPointRegistry
21+
from classy_blocks.lookup.point_registry import HexPointRegistry, QuadPointRegistry
2222
from classy_blocks.optimize.cell import CellBase, HexCell, QuadCell
2323
from classy_blocks.optimize.clamps.clamp import ClampBase
2424
from classy_blocks.optimize.junction import Junction
2525
from classy_blocks.optimize.links import LinkBase
26-
from classy_blocks.optimize.mapper import Mapper
2726
from classy_blocks.util import functions as f
2827
from classy_blocks.util.constants import TOL
2928

@@ -153,18 +152,15 @@ class QuadGrid(GridBase):
153152
face_registry_class = QuadFaceRegistry
154153

155154
@classmethod
156-
def from_sketch(cls, sketch: Sketch) -> "QuadGrid":
155+
def from_sketch(cls, sketch: Sketch, merge_tol: float = TOL) -> "QuadGrid":
157156
if isinstance(sketch, MappedSketch):
158157
# Use the mapper's indexes (provided by the user!)
159158
return cls(sketch.positions, sketch.indexes)
160159

161160
# automatically create a mapping for arbitrary sketches
162-
# TODO: replace Mapper with assemble.*registry, then delete the whole Mapper business
163-
mapper = Mapper()
164-
for face in sketch.faces:
165-
mapper.add(face)
161+
preg = QuadPointRegistry.from_sketch(sketch, merge_tol)
166162

167-
return cls(np.array(mapper.points), mapper.indexes)
163+
return cls(preg.unique_points, preg.cell_addressing)
168164

169165

170166
class HexGrid(GridBase):

src/classy_blocks/optimize/mapper.py

Lines changed: 0 additions & 58 deletions
This file was deleted.

src/classy_blocks/optimize/optimizer.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
from classy_blocks.optimize.clamps.surface import PlaneClamp
1414
from classy_blocks.optimize.grid import GridBase, HexGrid, QuadGrid
1515
from classy_blocks.optimize.links import LinkBase
16-
from classy_blocks.optimize.mapper import Mapper
1716
from classy_blocks.optimize.record import (
1817
ClampRecord,
1918
IterationRecord,
@@ -208,19 +207,15 @@ def _backport(self):
208207

209208
class ShapeOptimizer(OptimizerBase):
210209
def __init__(self, operations: list[Operation], report: bool = True, merge_tol: float = TOL):
211-
self.mapper = Mapper(merge_tol)
212-
213-
for operation in operations:
214-
self.mapper.add(operation)
215-
216-
grid = HexGrid(np.array(self.mapper.points), self.mapper.indexes)
210+
grid = HexGrid.from_elements(operations, merge_tol)
217211

218212
super().__init__(grid, report)
213+
self.operations = operations
219214

220215
def _backport(self) -> None:
221216
# Move every point of every operation to wherever it is now
222-
for iop, indexes in enumerate(self.mapper.indexes):
223-
operation = self.mapper.elements[iop]
217+
for iop, indexes in enumerate(self.grid.addressing):
218+
operation = self.operations[iop]
224219

225220
for ipnt, i in enumerate(indexes):
226221
operation.points[ipnt].move_to(self.grid.points[i])

tests/test_optimize/test_mapper.py

Lines changed: 0 additions & 38 deletions
This file was deleted.

0 commit comments

Comments
 (0)