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
Example #2
0
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