Screenshot of internal boundary demo.

Buildings, Bridges and Dams

A new feature in ANUGA 1.2 lets you create create arbitrary geometry to represent solid structures. These take the form of holes within the mesh, and can be given arbitrary boundary properties, just like the edges of the domain.

The demo code can be found within demos/buildings.py, part of which is reproduced here:

length = 50
width = 10
resolution = 0.15 # make this number smaller to make the simulation more accurate

# Create the "world" as a long, skinny channel
boundary_poly = poly_from_box(0, length, 0, width)

# Place 3 buildings downstream
building_polys = [  poly_from_box(10, 15, 2.5, 7.5),        # upstream box
                    poly_from_box(22.5, 27.5, 1.5, 6.5),    # middle box
                    poly_from_box(35, 40, 3.5, 8.5)]        # downstream box

# create a domain mesh, with 3 building holes in it
domain = anuga.create_domain_from_regions(boundary_poly,
                                            boundary_tags={'left': [0],
                                                   'bottom': [1],
                                                   'right': [2],
                                                   'top': [3]},
                                            maximum_triangle_area = resolution,
                                            mesh_filename = 'building.msh',
                                            interior_holes = building_polys,
                                            use_cache=True, # to speed it up
                                            verbose=True)   # log output on

Note the new parameter to create_domain_from_regions:

interior_holes = building_polys

This lets you specify a list of polygons to be cut out of the mesh.

The internal boundaries have their own boundary tag: exterior which can be set just like any other boundary.

Attachments