How we can solve block matrix in FEniCS. Provide some reference.
a = inner(grad(u), grad(v)) * dx
I have two set of nodes: Let us assume i have 5 nodes
I = {1,2,3}
J = {4,5}
[ a(I,I) a(I,J)
a(J,I) a(J,J)]
Can i do this thing in FEniCS.
How we can solve block matrix in FEniCS. Provide some reference.
a = inner(grad(u), grad(v)) * dx
I have two set of nodes: Let us assume i have 5 nodes
I = {1,2,3}
J = {4,5}
[ a(I,I) a(I,J)
a(J,I) a(J,J)]
Can i do this thing in FEniCS.
Yep, it’s entirely possible for subsets of DoFs, but rather esoteric and therefore you’d need to implement it yourself.
As a starting point you could consider the Stokes demo dolfinx/demo_stokes.py at main · FEniCS/dolfinx · GitHub and perhaps the static condensation demo dolfinx/demo_static-condensation.py at main · FEniCS/dolfinx · GitHub
A crude but effective way may be to assemble into a PETSc matrix, and then extract the sub blocks using an index set.