This work presents the modification and improvement of an existing 2D unstructured finite element mesh generator, based on the advancing front concept. The original version of this mesh generator was developed in Fortran language and, in this study, it is ported to C++ and improved in terms of robustness, efficiency and speed. The C++ code is object oriented and uses classes to describe each object. Besides generating the mesh, the code also enables some post-processing operations: mesh smoothing, edge swap and edge collapse algorithms are implemented based on triangle quality criteria. A R-tree algorithm is used to speed up interpolation and increase robustness. Various mesh generation strategies for the finite element analysis of shallow water flow are presented. The mesh generation is based on a series of criteria or size functions defining the mesh node density, which take into account the hydrodynamic, physical and geometrical features of the domain, such as the bathymetry and topographical length scales. The implemented algorithms create efficient automated unstructured meshes in which the triangular elements do not require further manual processing.
The methodology is tested in a real complex domain, in the simulation of an extreme flood event in the Douro estuary, using the ADCIRC shallow water model, and proves to be successful. Computed results are in agreement with the historical records of water level for this estuary.