In elastic problem, we often solve K * u = f, where K is the stiffness matrix, f the external force vector and u the displacement vector.
I'm trying decompose the mesh to domains, using Lagrange multipliers to enforce the displacement continuity on the interface between domains. Then for every domain, we have:
K_s * u_s = f_s + B_s * lambda
lambda is the vector of the Lagrange multipliers, and B is a signed boolean matrix to pick out the multipliers related to domain s.
Thus K * u = f turns to
|K1 B1| |u1| |f1|
| K2 B2| |u2| |f2|
| K3 B3| * |u3| = |f3|
| K4 B4| |u4| |f4|
|B1' B2' B3' B4' | |L | |0 |
here B1' mean the transpose of B1, L is the lambda vector.
When more than two domains intersect at a point, the multipliers at that point will be redundant:
1 | | 2
------ -------
x
------ -------
3 | | 4
Like in the above condition, four domains intersect at the point X, and it needs 6 multipliers to enforce continuity: 1-2, 1-3, 1-4, 2-3, 2-4, 3-4. Write in row vector form:
1 2 3 4
--------------
+1 -1
+1 -1
+1 -1
+1 -1
+1 -1
+1 -1
It's an example of rows of (B1' B2' B3' B4'). The problem is that these rows are linear dependent, only three of them can be linear independent, makes the whole matrix singular.
I know there's methods like FETI, which uses iterative methods to solve such problem. But I want to know whether there are some direct methods, for factorizing is much fast than PCG. I found a lot math papers on Lagrange multiplier based domain decomposed problem, but all of them discussing iterative method. Is there any work on direct method of this problem?
Thanks.
You should consider the SuperLU or the you can download the Pardiso. These provide good direct solvers for large system.