# AceFEM: Matrix condensation and elimination of local unknowns

Lately I have been working with non-linear mixed hybrid elements. The basic article that I took for my research is one by T.H.H. Pian dn K. Sumihara: Rational approach for assumed stress finite elements, which considers the plane stress finite elements and introduces 5 independent hybrid stresses, which are condensed, using the commands and procedure described in the help under the "Elimination of Local Unknowns" and "Mixed 3D Solid FE, Elimination of Local Unknowns".

My first question is regarding how to view all the parts of the tangent matrix and residual before the elimination of local unknowns. The documentation gives the following structure of the matrix

So taking a simple example of one finite element, I assume that in order to see the whole tangent matrix, one has to use command

SMTData["MatrixLocal"]


Further, in order to see individual parts Kuu, Kuh, Khu and Khh, one has to use

Take[SMTData["MatrixLocal"],nDOF,nDOF]
Take[SMTData["MatrixLocal"],nDOF,-nDOFCondense]
Take[SMTData["MatrixLocal"],-nDOFCondense,nDOF]
Take[SMTData["MatrixLocal"],-nDOFCondense,-nDOFCondense]


respectively, where nDof is number of degrees of freedom of element and nDOFCondense is number of degrees of freedom per element that need to be condensed. Using the command

SMTData["MatrixGlobal"]


returns the global condensed matrix, Kcond.

Using the command

SMTData["VectorLocal"]


returns the vector (-Ru, -Rh)

Help documentation that I have is a little unclear on the commands above, which is the reason I want to make sure I am using the right procedure.

Going from the simple case of 5 independent stresses that need to be condensed, to a case where we have 14 independent stresses and 14 independent strains that need to be condensed, is where I encountered a problem. The element is described in an article by W. Wagner and F. Gruttmann: A robust non-linear mixed hybrid quadrilateral shell element. The independent stresses and strains are chosen and interpolated in such a way, that some diagonal elements in the non-condensed tangent matrix are 0. The thing that baffles me is that depending on the ordering of the unknowns that need to be condensed (either 1-14 are stresses and 15-28 are strains or vice-versa), the matrix Khh is singular in one case or "only" badly conditioned in the other. The first case we obtain a singular Kcond matrix, while in the second case the Kcond matrix is not singular and element converges quadratically, giving results that are in good agreement with some results from benchmark tests.

Anyone has any idea what the reason for this could be? The position of the unknowns that need to be condensed apparently matters, but is there a way to avoid guessing which ordering is OK?