I have a small FEM implementation program. And I want to add imposing multifreedom constraints (MFC) feature to it. The theory of master-slave method is given here (page 10 for general case).

Stiffness matrix (static truss) is given in a rearranged block form:

$ \begin{bmatrix} K_{uu} & K_{um} & K_{us} \\ K^{T}_{um} & K_{mm} & K_{ms} \\ K^{T}_{us} & K^{T}_{ms} & K_{ss} \end{bmatrix} \begin{bmatrix} u_{u}\\ u_{m}\\ u_{s} \end{bmatrix} = \begin{bmatrix} f_{u}\\ f_{m}\\ f_{s} \end{bmatrix} $

The form of the general constraints equations is a linear combination of DOFs:

$A_{m}u_{m} + A_{s}u_{s} = g_{A}$

We can find $u_{s}$ from this as follows:

$u_{s} = -A^{-1}_{s}A_{m}u_{m} + A^{-1}_{s}g_{A} = Tu_{m} + g$

Then I should "insert ($u_{s}$) into the partitioned stiffness matrix and symmetrize" to obtain:

$ \begin{bmatrix} K_{uu} & K_{um}+K_{us}T \\ symm & K_{mm}+T^{T}K^{T}_{ms}+K_{ms}T+T^{T}K_{ss}T \end{bmatrix} \begin{bmatrix} u_{u}\\ u_{m} \end{bmatrix} = \begin{bmatrix} f_{u}-K_{us}g\\ f_{m}-K_{ms}g \end{bmatrix} $

I wanted to reproduce the last step but couldn't get the result. What is "to symmetrize"?

  • $\begingroup$ Looking at the source, I see a different set of equations in the PDF. $\endgroup$ Commented Apr 10, 2012 at 21:17
  • $\begingroup$ My mistake. I have an old version of this book and it's a bit different. Now $K_{ss}$ and other $K$'s with $s$ subscript don't disappear which is closer to my results but i still can't reproduce it. I found Wikipedia article on symmetrizing but this is for tensors and I'm not sure how to apply it to my case. $\endgroup$
    – danny_23
    Commented Apr 10, 2012 at 21:44
  • $\begingroup$ @danny_23 isn't it just $\frac{1}{2}(K^T+K)$? Assuming $K_{\mu\mu}$ are already symmetric I would assume $symm=(K_{um}+K_{us}T)^T$. $\endgroup$ Commented Apr 13, 2012 at 18:16

2 Answers 2


It's the old trick... (first seen here as far as I know.)

For brevity I will introduce $Ku = f$ with \begin{align} K &= \begin{bmatrix} K_{uu} & K_{um} & K_{us} \\ K^{T}_{um} & K_{mm} & K_{ms} \\ K^{T}_{us} & K^{T}_{ms} & K_{ss} \end{bmatrix} & u &= \begin{bmatrix} u_{u}\\ u_{m}\\ u_{s} \end{bmatrix} & f = \begin{bmatrix} f_{u}\\ f_{m}\\ f_{s} \end{bmatrix} \end{align}

Let \begin{align} v &= \begin{bmatrix} u_u \\ u_m \end{bmatrix} & B &= \begin{bmatrix} I & 0 \\ 0 & I \\ 0 & T \\ \end{bmatrix} & b &= \begin{bmatrix} 0 \\ 0 \\ g \end{bmatrix} \end{align} so that \begin{equation} u = Bv + b \end{equation}


  1. first insert $u_s$ (which by this notation is substituting $u$ from the equation above) \begin{equation} K(Bv+b) = f \end{equation}
  2. then symmetrize by premultiplication by $B^T$ \begin{equation} B^T K(Bv+b) = B^T f \end{equation}

leading to \begin{equation} B^T K B \:v = B^T (f - Kb) \end{equation} which, with a few substitutions, is the result you are looking for.

  • 1
    $\begingroup$ Let me comment my own answer: although $KB$ is not symmetric, I would not call premultiplication by $B^T$ a symmetrization: the point here is that KB is not square, so you have to reduce the number of equations in a way that is constant with the FEM formulation: $\delta u^T K u = \delta u^Tf, \forall \delta u$ becomes $\delta v^T B^T K B v = \delta v^T (\dots), \forall \delta v$: this is the real reason for premultiplying by $B^T$. $\endgroup$
    – Stefano M
    Commented Jul 10, 2012 at 21:31

Just as an addendum to Stefano's answer, this is known in the recent structural mechanics literature as kinematic condensation. By adding the constraint K becomes linearly dependent. You remove one equation by expresing your vector of dependent degrees of freedom $u$ as vector of independent degrees of freedom $\nu$ using stefano's matrix $\; B$ (sometimes called $A$ in the literature: $\; A^T K A \nu = A^T f \;$).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.