Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inconsistent behavior with Gmsh tests #57

Open
KeiganMacLean opened this issue May 24, 2021 · 0 comments
Open

Inconsistent behavior with Gmsh tests #57

KeiganMacLean opened this issue May 24, 2021 · 0 comments
Labels
testfail Test known to currently fail

Comments

@KeiganMacLean
Copy link
Contributor

KeiganMacLean commented May 24, 2021

The current framework for mesh adaption based on a continuous mesh model relies on Gmsh to perform the domain remeshing step. However, some discrepancies have been observed between versions during these steps. Primarily, the current code has been tested with v4.6.0, although this behavior also varied between users, e.g. Mine vs. Dougs. This problem becomes more severe in the case of goal-oriented adaption where the new mesh is generated as an iterative update. Therefore, if the series of adaptations leads to non-suitable intermediary mesh, it may not be able to find a reasonable update (leading to an error).

This primarily affects the following set of tests:

  • 2D_GMSH_ADJOINT_SSHOCK_P1
  • 2D_GMSH_ADJOINT_SSHOCK_P2
  • 2D_GMSH_ADJOINT_BOUNDARYLAYER_P2
  • 2D_GMSH_ADJOINT_BOUNDARYLAYER_P3

Additionally, in some rare cases during these iterations, the Blossom-Quad recombination step may not fully merge the mesh to form an all-quad mesh. The remaining triangular elements prevent Deal.II from reading the mesh and hence the iterations from continuing. In some cases, these issue have been relieved by slightly perturbing the otherwise failing step size. However, this is a highly version/user dependent fix. An example of this can seen in

set complexity_scale = 2.01 # perturbed to prevent triangles appearing

This issue could be addressed by including a subdivision step in the Gmsh call with the .geo command

Mesh.SubdivisionAlgorithm = 1;

as also used in some related deal.II library function. This could be applied either as the default or a backup when the remeshing would otherwise fail. However, this comes with the tradeoff that the mesh size field resolution can only be controlled on a coarser H=2h grid. Other adjustments would also be needed to src/grid_refinement/field.cpp to generate this grid.

Appearance of triangles may impact all tests involving Gmsh in a loop (some duplication from above):

  • 2D_GMSH_ANISO_SSHOCK_P1
  • 2D_GMSH_ANISO_SSHOCK_P2
  • 2D_GMSH_ANISO_BOUNDARYLAYER_P2
  • 2D_GMSH_ANISO_BOUNDARYLAYER_P3
  • 2D_GMSH_ADJOINT_SSHOCK_P1
  • 2D_GMSH_ADJOINT_SSHOCK_P2
  • 2D_GMSH_ADJOINT_BOUNDARYLAYER_P2
  • 2D_GMSH_ADJOINT_BOUNDARYLAYER_P3

Resolving this issue could potentially be linked with changes to adopt Gmsh header files as in Issue #56.

@dougshidong dougshidong added the testfail Test known to currently fail label May 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
testfail Test known to currently fail
Projects
None yet
Development

No branches or pull requests

2 participants