Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

blocksystems with different sized blocks #260

Open
magsell opened this issue Aug 4, 2023 · 2 comments
Open

blocksystems with different sized blocks #260

magsell opened this issue Aug 4, 2023 · 2 comments

Comments

@magsell
Copy link

magsell commented Aug 4, 2023

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?

@ddemidov
Copy link
Owner

ddemidov commented Aug 5, 2023

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.

@magsell
Copy link
Author

magsell commented Aug 5, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants