idaholab / moose

Multiphysics Object Oriented Simulation Environment
https://www.mooseframework.org
GNU Lesser General Public License v2.1
1.77k stars 1.05k forks source link

Explore pressure smoothing for removing checkerboards #25452

Open GiudGiud opened 1 year ago

GiudGiud commented 1 year ago

Reason

With average interpolation the pressure equations between neighboring cells ends up decoupled. As such a checkerboard patterns appears in the solution We could just smooth it away in our output. It has little influence over incompressible properties

Design

A new functor material that can smooth any functor. We can output it using a FunctorElementalAux auxiliary kernel Use the perks of the functor system to grab neighbor element or face values Use compile time assertions to only enable the functor arguments where it makes sense

Impact

Average interpolation helps us precondition the system easier as the diagonal of the D matrix in a FSP is 0 Average interpolation is second order on paper (hence the instability) Average interpolation does not require the computation of RC coefficients so there's less work to be done by kernels during assembly. Similarly, it holds less non-linearity (so likely should converge in less non-linear iterations) for the same reason

lindsayad commented 1 year ago

To add on: Schur complement field split preconditioning is much more developed for cases in which the D matrix is 0. There are some papers for Schur complement preconditioning in which there are pressure on-diagonals, but they are almost all for finite elements. So, being able to solve a system with a zero pressure on-diagonal would be good for us in terms of having effective field-split preconditioning