Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • Nektar Nektar
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 91
    • Issues 91
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 62
    • Merge requests 62
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Nektar
  • NektarNektar
  • Merge requests
  • !645

Improve performance of incompressible solver

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Douglas Serson requested to merge feature/IncNSOpt into master Jun 05, 2016
  • Overview 11
  • Commits 38
  • Changes 34

This MR contains improvements to the performance of the incompressible solver (some of the changes might also help in other cases).

I worked on these changes based on a profiling of the Cyl.xml example (2D, N=5, using both tris and quads). For this particular case (in serial), I got a reduction of computational cost close to 30%, although I suspect simulations with higher order or in 3D will get more modest improvements.

The main changes are:

  • Use a virtual function to make UnsteadySystem skip the FwdTrans it performs after each time step, since this is completely redundant for the incompressible solver
  • Introduce a parameter to choose the frequency at which the solver checks for NaNs
  • Tweak the default value of the mdswitch parameter for the multilevelstaticcond, and also allow to specify it in the session file
  • Include PhysDeriv in a single direction in the Collections, since we need it to compute div(u) for the pressure forcing
  • Use symmetric matrices for the interior part of the static cond (whenever possible)
  • Several small changes to reduce overhead costs, especially in matrix vector multiplications.
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: feature/IncNSOpt