def quarter_annulus(h): rect = SeismicMesh.Rectangle((0.0, 1.0, 0.0, 1.0)) disk0 = SeismicMesh.Disk([0.0, 0.0], 0.25) diff0 = SeismicMesh.Difference([rect, disk0]) disk1 = SeismicMesh.Disk([0.0, 0.0], 1.0) quarter = SeismicMesh.Intersection([diff0, disk1]) points, cells = SeismicMesh.generate_mesh( domain=quarter, edge_length=lambda x: h + 0.1 * numpy.abs(disk0.eval(x)), h0=h, verbose=0, ) return points, cells
def test_smooth_diff(): cube1 = sm.Cube((-0.5, 0.5, -0.5, 0.5, -0.5, 0.5)) ball1 = sm.Ball((0.0, 0.0, 0.5), 0.85) domain = sm.Difference([ball1, cube1], smoothness=0.20) points, cells = sm.generate_mesh( domain=domain, edge_length=0.10, ) points, cells = sm.sliver_removal( points=points, domain=domain, edge_length=0.10, ) assert np.abs(cells.shape[0] - 9004) < 100