Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

De koppeling tussen het 1D en 2D mesh gaat via de 1D2D links. Deze verbindingen zijn vergelijkbaar met de ‘normale’ flowlinks tussen 1D-rekenpunten en 2D-rekenpunten: de volledige stromingsvergelijking met momentum worden opgelost. De link wordt dus niet gesimuleerd met een overlaatvergelijking, zoals dit bij SOBEK gebeurde. Dit is overigens in D-Hydro HYDRO wel mogelijk door een landboundary te specificeren die de 1D2D-link kruist.

Het genereren van de linkjes met D-Hydamo HyDAMO gaat met de functies links1d2d_add_links_1d_to_2d, links1d2d_add_links_2d_to_1d_embedded en links1d2d_add_links_2d_to_1d_lateral. De eerste functie probeert links te leggen vanuit de 1D rekenpunten naar de 2D cellen; de tweede en derde functie doen dat omgekeerd. Deze functies zijn in principe in combinatie te gebruiken. Voor ‘Embedded’ en “Lateral” links zou dat wel logisch zijn. Deze combinaties zijn echter nog niet grondig getest.

Hieronder geven we meer infomatie over de mogelijkheden van elk van de drie functies, en geven we fictieve voorbeelden van het gebruik ervan.

...

Code Block
# generate 1d
branch = LineString([[-9, -3], [0, 4]])
branchids = mesh.mesh1d_add_branch_from_linestring(network, branch, node_distance=1)
# Generate 2d
areas = MultiPolygon([box(-8, -10, 8, -2), box(-8, 2, 8, 10)])
hole = box(-6, -6, 6, -4)
mesh.mesh2d_add_rectilinear(network, areas, dx=0.5, dy=0.5)
mesh.mesh2d_clip(network, hole)
within = box(-10, -10, 12, 10).difference(
     LineString([[-2, -10], [2, 10]]).buffer(2)
)
mesh.links1d2d_add_links_2d_to_1d_lateral(network, within=within)

Via onderstaande functie kunnen links die zijn aangemaakt binnen een bepaald polygon weer worden verwijderd.

Code Block
def links1d2d_remove_within(
    network: Network, within: Union[Polygon, MultiPolygon]
) -> None:
    """Remove 1d2d links within a given polygon or multipolygon

    Args:
        network (Network): The network from which the links are removed
        within (Union[Polygon, MultiPolygon]): The polygon that indicates which to remove
    """

1d2d links die zijn aangemaakt op een uiteinde van het netwerk moeten ook worden verwijderd omdat anders randvoorwaarden op die punten niet goed werken,. Gebruik darvoor onderstaande functie.

Code Block
def links1d2d_remove_1d_endpoints(network: Network) -> None:
    """Method to remove 1d2d links from end points of the 1d mesh. The GUI
    will interpret every endpoint as a boundary conditions, which does not
    allow a 1d 2d link at the same node. To avoid problems with this, use
    this metho