Skip to content

[Rebased, 2nd time] MicroMesh & iso-/super-/sub-parametric elements

Nils Kohl requested to merge kohl/micro-mesh-rebased-2 into master

Rebased. Old MRs: !814 (closed) (original), !821 (closed) (first rebase)

Overview

This MR introduces utilities to work with iso-, sub-, and super-parametric meshes.

Mainly it enables/simplifies working with meshes the node-positions of which are specified as finite element functions. Instead of using the blending function feature, the geometry can be interpolated into a (vector-valued) P1 or P2 space. Using the HOG, the local Jacobians can be computed straightforwardly by evaluation of the gradients of the shape functions (see hog!24 (merged)).

Functions to generate appropriate volume meshes from either surface meshes or analytical descriptions of curved geometries are not yet included in this MR.

For more details see docstring of MicroMesh.

Concrete changes

  • MicroMesh class and several centralized functions to compute node positions
  • corresponding VTK output adaptions
  • some tests
  • new operators via hyteg_operators update

TODOs

Necessary

  • generate isoparametric operators necessary for the tests and update hyteg-operators afterwards
  • proper VTK test before merging this (specifically, #278 (closed) would be very nice)

Nice to have / next steps

  • proper, stable mesh improvement
  • semi-automated meshing from surface representations (e.g., via OpenMesh or gmsh)
  • tutorial
  • more operators

Images

2D, piecewise quadratic mesh (P2, level 3)

(left: coarse mesh, middle: projected, right: projected and corrected with diffusion)

curved_mesh_2D

3D, piecewise quadratic mesh (P2, level 3)

(left: coarse mesh, middle: projected, right: projected with edges)

curved_mesh_3D

Merge request reports