• Chris Cantwell's avatar
    Merge branch 'feature/IncNSOpt' into 'master' · 1e362fda
    Chris Cantwell authored
    Improve performance of incompressible solver
    
    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.
    
    
    See merge request !645
    1e362fda
Name
Last commit
Last update
cmake Loading commit data...
docs Loading commit data...
library Loading commit data...
pkg Loading commit data...
solvers Loading commit data...
templates/executable Loading commit data...
tests Loading commit data...
utilities Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
CHANGELOG.md Loading commit data...
CMakeLists.txt Loading commit data...
CONTRIBUTING.md Loading commit data...
LICENSE.txt Loading commit data...
README.md Loading commit data...
VERSION Loading commit data...