# Is there any direct method for Lagrange multiplier based domain decomposed problem?

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.

## migrated from mathematica.stackexchange.comOct 28 '14 at 15:54

This question came from our site for users of Wolfram Mathematica.

• This is a question that people working on parallel algorithms in numerical linear algebra will be able to answer, so I've re-tagged your question. Is there a particular reason you seek a direct method? Once your system matrices becomes large enough, iterative is the way to go anyway. – user_of_math Oct 28 '14 at 17:43
• Thanks @user_of_math . The memory (like 8GB) of a desk PC is enough for nearly most meshes I will use, and I find factorization like LDLT is much faster than a PCG solver. Based on my experiences, for a 50k * 50k sparse linear system, a direct solver only needed several seconds, but a PCG solver costs tens of seconds. – Yue Xie Oct 29 '14 at 7:05