Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • A amdis-core
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Graph
    • Compare revisions
  • Issues 6
    • Issues 6
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 6
    • Merge requests 6
  • Deployments
    • Deployments
    • Releases
  • External wiki
    • External wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • amdis
  • amdis-core
  • Merge requests
  • !25

Rewrite adaption interface to allow to attach bases to the grid-transfer

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Praetorius, Simon requested to merge feature/transfer_interface into master Mar 26, 2019
  • Overview 14
  • Commits 6
  • Changes 13

The GlobalBasis needs to be updated after each grid change. So, we have added a list of callbacks that are called in the GridTransfer class in preAdapt(), after adapt() and in postAdapt(). There are two types of supported data:

  1. Classes with preAdapt(bool) and postAdapt(bool)
  2. Classes with update(gridView())

The first one is typically implemented by data containers that need interpolation. The second one is implemented by a basis.

The DOFVector and its basis are automatically registered in the GridTransfer in construction of the DOFVector. If you have a data-container or a basis independent of a DOFVector you have to attach (and detach before destruction) yourself. Therefore, simply call

GridTransferManager::attach(grid, data); // or
GridTransferManager::detach(grid, data);

where data must implement on of the interface 1. or 2., described also in the AdaptionInterface.hh.

Note, the adaption cycle works as follows:

  1. preAdapt
  2. adapt
  3. update
  4. postAdapt

So, in the postAdapt step we can assume that all update callbacks are executed. The order of the update methods could be random, though. And also the order of the pre/postAdapt callbacks is arbitrary.

Edited Mar 29, 2019 by Praetorius, Simon
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: feature/transfer_interface