Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • dumux dumux
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 101
    • Issues 101
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 92
    • Merge requests 92
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • dumux-repositoriesdumux-repositories
  • dumuxdumux
  • Merge requests
  • !796

[assembly][newton] reimplement partial reassembly

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Bernd Flemisch requested to merge feature/partial-reassembly into master Feb 13, 2018
  • Overview 26
  • Commits 2
  • Pipelines 0
  • Changes 9

Transfer the partial reassembly functionality to the current structure.

On the topmost level, the NewtonSolver uses the functionality in the methods solve, newtonUpdate and assembleLinearSystem by calls to new methods assemblerResetColors_, assemblerNewtonUpdate_ and assembleLinearSystem_. In these new methods, new member functions of the FVAssembler are called: resetColors, updateDistanceFromLastLinearization and computeColors as well as assembleJacobianAndResidual with a second argument. Use SFINAE and enable_if such that not all assemblers are required to implement the extended interface. The FVAssembler forwards the work to a new class PartialReassembler. This class also holds the required data.

After each Newton iteration, the PartialReassembler colors the geometrical degrees of freedom depending on the shift of the primary variables from the last time that the derivatives have been calculated. For green-colored entities, the entries in the Jacobian are kept, while for the other entities, they are recalculated.

Use an enum class EntityColor for the coloring, enable read access to the color of an entity via the Assembler.

Implement the functionality for Box and TPFA. The correspnding local assemblers have to be adapted such that no calculations are performed for green elements.

Still missing (while also not present in Dumux 2.x):

  • Parametrize the thresholds in the NewtonSolver
  • Throw if called with mpfa

Fixes #379 (closed).

Edited Feb 16, 2018 by Bernd Flemisch
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: feature/partial-reassembly