1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
import numpy as np
from helpers import assert_norm_equality
import dmsh
def generate_quarter_annulus():
h = 0.05
disk0 = dmsh.Circle([0.0, 0.0], 0.25)
disk1 = dmsh.Circle([0.0, 0.0], 1.0)
diff0 = dmsh.Difference(disk1, disk0)
rect = dmsh.Rectangle(0.0, 1.0, 0.0, 1.0)
quarter = dmsh.Intersection([diff0, rect])
points, cells = dmsh.generate(
quarter,
lambda x: h + 0.1 * np.abs(disk0.dist(x)),
tol=1.0e-10,
max_steps=100,
)
return points, cells
def test_quarter_annulus():
points, cells = generate_quarter_annulus()
ref_norms = [7.7455372708027483e01, 6.5770003813066431e00, 1.0000000000000000e00]
assert_norm_equality(points.flatten(), ref_norms, 1.0e-2)
if __name__ == "__main__":
import meshio
test_quarter_annulus()
points, cells = generate_quarter_annulus()
meshio.Mesh(points, {"triangle": cells}).write("out.vtk")
|