reordering
See original GitHub issueIn reviewing the example of forced convection #162, some suggestions were made to reduce the five-minute run-time. These concern the Navier–Stokes solver rather than forced convection per se, so new issues are being launched to take them up. The first suggestion was:
Maybe precalculating Reverse Cuthill-McKee reordering for the rows and columns of self.S would help a bit but can’t say for sure.
Does reordering help in general? Does it help specifically with meshes imported from Gmsh and systems solved with scipy.sparse.linalg.solve
? Does it depend on the block-structure of the matrix? (The Stokes problem as assembled in ex24 has the classic symmetric semidefinite saddle-point structure of the Taylor–Hood velocity–pressure mixed finite elements.) What about iterative solvers like GMRES as in the second suggestion?
The reordering is implemented in skfem.utils.rcm
, but is not yet used in the examples.
Issue Analytics
- State:
- Created 4 years ago
- Comments:7 (7 by maintainers)
Top GitHub Comments
I suppose it could be possible to have an option to reorder mesh during initialization as an attempt to reduce fill in. However, I think it should not be enabled by default because it will cause surprising interpretation of the rows/cols of the resulting matrices.
What you say is most certainly true, but I suppose
scipy.sparse.linalg.solve
will compute some (possibly better) reordering quite quickly before each solve anyways.