Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • hyteg hyteg
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 48
    • Issues 48
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 2
    • Merge requests 2
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • hyteg
  • hyteghyteg
  • Merge requests
  • !524

Adaptive mesh refinement for DG

  • Review changes

  • Download
  • Patches
  • Plain diff
Merged Nils Kohl requested to merge kohl/storage-refinement into master Aug 18, 2022
  • Overview 0
  • Commits 54
  • Pipelines 11
  • Changes 106

This merge request adds the functionality to perform adaptive mesh refinement (AMR) in 2D for the discontinuous Galerkin method with hanging nodes.

At this point we are not feature complete, but the most important basic functionality is implemented. Especially 3D and parallel support is (yet) missing. The implementation is designed with these extensions in mind.

Most important changes:

PrimitiveID tree structure

Extended the internal representation to model tree-like relationships between IDs. Children of IDs can be created, ensuring that no duplicate IDs are created even in parallel settings. This is vital to parallel/distributed AMR. Similar to what is done in walberla's BlockID class but tailored to the requirements in HyTeG.

PrimitiveStorage refinement

Macro-primitives can now be refined, creating a hierarchy with potentially hanging nodes. The storage is now organized in a tree-like structure. Methods have been implemented that allow refinement while maintaining a 2:1 balance among neighboring volume macros.

VolumeDoFFunction

The VolumeDoFFunction has been extended to support the ghost-layer allocation and communication mechanisms required for DG AMR. Also various new indexing functions allow for translation of indices between macro- and micro-refinement levels.

DG

The DGOperator was augmented to take care of correct element integration and ghost-layer accesses so that AMR is now seamlessly integrated into the matrix-vector multiplication and sparse assembly.

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: kohl/storage-refinement