Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_extrude_rotate():
p = pygalmesh.Polygon2D([[-0.5, -0.3], [0.5, -0.3], [0.0, 0.5]])
edge_size = 0.1
domain = pygalmesh.Extrude(p, [0.0, 0.0, 1.0], 0.5 * 3.14159265359, edge_size)
mesh = pygalmesh.generate_mesh(
domain, cell_size=0.1, edge_size=edge_size, verbose=False
)
tol = 1.0e-3
assert abs(max(mesh.points[:, 0]) - 0.583012701892) < tol
assert abs(min(mesh.points[:, 0]) + 0.5) < tol
assert abs(max(mesh.points[:, 1]) - 0.5) < tol
assert abs(min(mesh.points[:, 1]) + 0.583012701892) < tol
assert abs(max(mesh.points[:, 2]) - 1.0) < tol
assert abs(min(mesh.points[:, 2]) + 0.0) < tol
vol = sum(helpers.compute_volumes(mesh.points, mesh.cells["tetra"]))
assert abs(vol - 0.4) < 0.05
def test_extrude():
p = pygalmesh.Polygon2D([[-0.5, -0.3], [0.5, -0.3], [0.0, 0.5]])
domain = pygalmesh.Extrude(p, [0.0, 0.3, 1.0])
mesh = pygalmesh.generate_mesh(domain, cell_size=0.1, edge_size=0.1, verbose=False)
tol = 1.0e-3
assert abs(max(mesh.points[:, 0]) - 0.5) < tol
assert abs(min(mesh.points[:, 0]) + 0.5) < tol
assert abs(max(mesh.points[:, 1]) - 0.8) < tol
assert abs(min(mesh.points[:, 1]) + 0.3) < tol
# Relax tolerance for debian, see
assert abs(max(mesh.points[:, 2]) - 1.0) < 1.1e-3
assert abs(min(mesh.points[:, 2]) + 0.0) < tol
vol = sum(helpers.compute_volumes(mesh.points, mesh.cells["tetra"]))
assert abs(vol - 0.4) < tol
return
def test_ring_extrude():
p = pygalmesh.Polygon2D([[0.5, -0.3], [1.5, -0.3], [1.0, 0.5]])
edge_size = 0.1
domain = pygalmesh.RingExtrude(p, edge_size)
mesh = pygalmesh.generate_mesh(
domain, cell_size=0.1, edge_size=edge_size, verbose=False
)
tol = 1.0e-2
assert abs(max(mesh.points[:, 0]) - 1.5) < tol
assert abs(min(mesh.points[:, 0]) + 1.5) < tol
assert abs(max(mesh.points[:, 1]) - 1.5) < tol
assert abs(min(mesh.points[:, 1]) + 1.5) < tol
assert abs(max(mesh.points[:, 2]) - 0.5) < tol
assert abs(min(mesh.points[:, 2]) + 0.3) < tol
vol = sum(helpers.compute_volumes(mesh.points, mesh.cells["tetra"]))
assert abs(vol - 2 * numpy.pi * 0.4) < 0.05