def test_halfspace(show=False): geo = dmsh.Intersection([ dmsh.HalfSpace(np.sqrt(0.5) * np.array([1.0, 1.0])), dmsh.Circle([0.0, 0.0], 1.0), ]) X, cells = dmsh.generate(geo, 0.1, show=show, max_steps=100) ref_norms = [ 1.6399670188761661e02, 1.0011048291798387e01, 9.9959986881486440e-01 ] assert_norm_equality(X.flatten(), ref_norms, 1.0e-6) return X, cells
def test_halfspace(show=False): geo = dmsh.Intersection([ dmsh.HalfSpace(numpy.sqrt(0.5) * numpy.array([1.0, 1.0]), 0.0), dmsh.Circle([0.0, 0.0], 1.0), ]) X, cells = dmsh.generate(geo, 0.1, show=show) ref_norms = [ 1.6445971629723411e02, 1.0032823867864321e01, 9.9962000746451751e-01 ] assert_norm_equality(X.flatten(), ref_norms, 1.0e-12) return X, cells
angles = np.pi * np.array([3.0 / 6.0, 7.0 / 6.0, 11.0 / 6.0]) geo = dmsh.Intersection( [ dmsh.Circle([np.cos(angles[0]), np.sin(angles[0])], 1.5), dmsh.Circle([np.cos(angles[1]), np.sin(angles[1])], 1.5), dmsh.Circle([np.cos(angles[2]), np.sin(angles[2])], 1.5), ] ) X, cells = dmsh.generate(geo, 0.1, tol=1.0e-10) save(X, cells, "intersection-three-circles.svg") geo = dmsh.Intersection( [ dmsh.HalfSpace(np.sqrt(0.5) * np.array([1.0, 1.0]), 0.0), dmsh.Circle([0.0, 0.0], 1.0), ] ) X, cells = dmsh.generate(geo, 0.1) save(X, cells, "intersection-circle-halfspace.svg") geo = dmsh.Rotation(dmsh.Rectangle(-1.0, +2.0, -1.0, +1.0), 0.1 * np.pi) X, cells = dmsh.generate(geo, 0.1, tol=1.0e-10) save(X, cells, "rotation.svg") geo = dmsh.Scaling(dmsh.Rectangle(-1.0, +2.0, -1.0, +1.0), 2.0) X, cells = dmsh.generate(geo, 0.1, tol=1.0e-5) save(X, cells, "scaling.svg")