geodynamics / aspect

A parallel, extensible finite element code to simulate convection in both 2D and 3D models.
https://aspect.geodynamics.org/
Other
228 stars 237 forks source link

Change Weighted BFBT preconditioner pressure scaling factor #6078

Closed quangx closed 1 month ago

quangx commented 1 month ago

The Schur complement is S=BA^{-1}B^T, so if we are trying to approximate S^{-1} the pressure scaling factor should be 1/(pressure_scaling^2). The current implementation in Aspect has a factor of 1/(pressure_scaling^4). This pull request changes it to 1/(pressure_scaling^2).

tjhei commented 1 month ago

Thank you.

gassmoeller commented 1 month ago

I am curious why this hasnt affected any of our tests, at least in terms of the number of Stokes iterations. Did you see a difference for some of your models @quangx?

quangx commented 1 month ago

I am curious why this hasnt affected any of our tests, at least in terms of the number of Stokes iterations. Did you see a difference for some of your models @quangx?

The differences in iteration counts I have seen from running tests on my machine are at most a handful of iterations, though I tested with spherical nsinker and the change does seem to bring the iteration count from 65 to >500 (which I have not seen occur for other models).

Also, I changed the pressure scaling values from 1,10,...,1E8 and with both pressure scaling factors, nonconvergence occured at the same values.

tjhei commented 1 month ago

@gassmoeller we currently only have 1 or 2 BFBT tests and if the pressure scaling is close to 1, I don't expect a big difference (no difference here, apparently).

We are still investigating why BFBT doesn't work for many problems.