Skip to content

Commit 3f3e72f

Browse files
committed
Merge with feature/autochop
2 parents 3690cd7 + 848dbd3 commit 3f3e72f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+845
-638
lines changed

classy_blocks.code-workspace

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@
1212
"Pylance",
1313
"scipy"
1414
],
15-
"editor.autoClosingBrackets": "never"
15+
"editor.autoClosingBrackets": "never",
16+
"isort.importStrategy": "fromEnvironment",
17+
"editor.defaultFormatter": null,
18+
"ruff.organizeImports": false
1619
},
1720
"extensions": {
1821
"recommendations": [

examples/advanced/edge_grading.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# NOT FINISHED!
2+
# TODO: add operation.grade_edge() and show its usage in this example
13
import os
24

35
import classy_blocks as cb
Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
1+
# A terrible blocking of a rectangle for displaying SmoothGrader capabilities
2+
13
import os
24

5+
import numpy as np
6+
37
import classy_blocks as cb
4-
from classy_blocks.grading.autograding.grader import HighReGrader
58

69
mesh = cb.Mesh()
710

811
base = cb.Grid([0, 0, 0], [3, 2, 0], 3, 2)
912

1013
shape = cb.ExtrudedShape(base, 1)
14+
15+
# turn one block around to test grader's skillz
16+
shape.grid[1][0].rotate(np.pi, [0, 0, 1])
17+
1118
mesh.add(shape)
19+
20+
# move some points to get a mesh with uneven blocks
1221
mesh.assemble()
1322
finder = cb.GeometricFinder(mesh)
1423

@@ -19,11 +28,8 @@
1928
vertex.translate([0, 0.8, 0])
2029

2130
mesh.set_default_patch("walls", "wall")
22-
23-
# TODO: Hack! mesh.assemble() won't work here but wires et. al. must be updated
2431
mesh.block_list.update()
25-
26-
grader = HighReGrader(mesh, 0.05)
32+
grader = cb.SmoothGrader(mesh, 0.05)
2733
grader.grade()
2834

2935
mesh.write(os.path.join("..", "case", "system", "blockMeshDict"), debug_path="debug.vtk")

examples/chaining/labyrinth.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from typing import List
33

44
import classy_blocks as cb
5-
from classy_blocks.grading.autograding.grader import FixedCountGrader
65
from classy_blocks.util import functions as f
76

87
mesh = cb.Mesh()
@@ -34,7 +33,7 @@
3433

3534
mesh.set_default_patch("walls", "wall")
3635

37-
grader = FixedCountGrader(mesh, 5)
36+
grader = cb.FixedCountGrader(mesh, 5)
3837
grader.grade()
3938

4039
mesh.write(os.path.join("..", "case", "system", "blockMeshDict"), debug_path="debug.vtk")

examples/chaining/tank.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import os
22

33
import classy_blocks as cb
4-
from classy_blocks.grading.autograding.grader import SimpleGrader
54

65
# a cylindrical tank with round end caps
76
diameter = 0.5
@@ -25,7 +24,7 @@
2524
mesh.add(start_cap)
2625
mesh.add(end_cap)
2726

28-
grader = SimpleGrader(mesh, 0.05)
27+
grader = cb.SimpleGrader(mesh, 0.05)
2928
grader.grade()
3029

3130
mesh.write(os.path.join("..", "case", "system", "blockMeshDict"), debug_path="debug.vtk")

examples/optimization/duct.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,10 @@
2828

2929
optimizer.optimize(tolerance=0.01)
3030

31-
# Quick'n'dirty chopping, don't do this at home
32-
for operation in shape.operations:
33-
for axis in range(3):
34-
operation.chop(axis, count=10)
35-
3631
mesh.add(shape)
3732

33+
grader = cb.SmoothGrader(mesh, 0.08)
34+
grader.grade()
35+
3836
mesh.set_default_patch("walls", "wall")
3937
mesh.write(os.path.join("..", "case", "system", "blockMeshDict"), debug_path="debug.vtk")

examples/shape/custom.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,8 @@ def add_edges(self) -> None:
6969
mesh.add(shape)
7070
mesh.assemble()
7171

72+
grader = cb.SmoothGrader(mesh, 0.03)
73+
grader.grade(take="max")
74+
7275
mesh.set_default_patch("walls", "wall")
7376
mesh.write(os.path.join("..", "case", "system", "blockMeshDict"), debug_path="debug.vtk")

examples/shape/cylinder.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import classy_blocks as cb
44
from classy_blocks.construct.flat.sketches.disk import DiskBase
5-
from classy_blocks.grading.autograding.grader import HighReGrader
65

76
DiskBase.core_ratio = 0.4 # Default is 0.8
87

@@ -23,21 +22,19 @@
2322
# remove them with this method:
2423
cylinder.remove_inner_edges(start=False, end=True)
2524

26-
bl_thickness = 0.05
27-
core_size = 0.2
25+
bl_thickness = 1e-3
26+
core_size = 0.1
2827

2928
# manual grading
3029
# cylinder.chop_axial(count=30)
3130
# cylinder.chop_radial(start_size=core_size, end_size=bl_thickness)
3231
# cylinder.chop_tangential(start_size=core_size)
3332

3433
mesh.add(cylinder)
35-
36-
mesh.assemble()
37-
mesh.block_list.update()
34+
mesh.modify_patch("walls", "wall")
3835

3936
# automatic grading
40-
grader = HighReGrader(mesh, 0.1)
37+
grader = cb.SmoothGrader(mesh, 0.1)
4138
grader.grade()
4239

4340
mesh.write(os.path.join("..", "case", "system", "blockMeshDict"), debug_path="debug.vtk")

examples/shape/quarter_cylinder.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import classy_blocks as cb
44
from classy_blocks.construct.flat.sketches.disk import QuarterDisk
5-
from classy_blocks.grading.autograding.grader import HighReGrader
65
from classy_blocks.util import functions as f
76

87
mesh = cb.Mesh()
@@ -21,7 +20,7 @@
2120

2221
mesh.assemble()
2322

24-
grader = HighReGrader(mesh, 0.05)
23+
grader = cb.SmoothGrader(mesh, 0.05)
2524
grader.grade()
2625

2726
mesh.set_default_patch("walls", "wall")

src/classy_blocks/__init__.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@
3232
from .construct.shapes.shell import Shell
3333
from .construct.shapes.sphere import Hemisphere
3434
from .construct.stack import ExtrudedStack, RevolvedStack, TransformedStack
35+
from .grading.autograding.fixed.grader import FixedCountGrader
36+
from .grading.autograding.simple.grader import SimpleGrader
37+
from .grading.autograding.smooth.grader import SmoothGrader
3538
from .mesh import Mesh
3639
from .modify.find.geometric import GeometricFinder
3740
from .modify.find.shape import RoundSolidFinder
@@ -123,4 +126,7 @@
123126
"ViewpointReorienter",
124127
"Wedge",
125128
"WrappedDisk",
129+
"FixedCountGrader",
130+
"SimpleGrader",
131+
"SmoothGrader",
126132
]

0 commit comments

Comments
 (0)