ddemidov/amgcl

blocksystems with different sized blocks

magsell opened this issue · 2 comments

Hi @ddemidov ,
I recently came across this repository and would like to use it to solve linear elasticity problems in 3D. However, the problem is that I can apply my boundary conditions independently to the X, Y, and Z coordinates, resulting in a 3x3 block system with blocks of different sizes. I looked at the "Structural Problem" example in the tutorials, but there the dimension of the matrix is divisible by 3. How can I set up a general block solver?

Block solvers in amgcl are using statically sized blocks, so there is no way to use dynamic block sizes. You could try to split the matrix into the regular and irregular parts, and then use the Schur pressure correction solver, with the 'P' solver defined as block solver for the regular part, and the 'U' solver - as some simple single-level solver (e.g. cg/bicgstab with ilu0 relaxation) for the irregular part of the matrix.

Hi @ddemidov ,
thank you for the fast reply! I'll give it a try!