I want to solve $K u = b$ where $K$ is my stiffness matrix. However some constraints may be missing an therefore some rigid body motion may be still present in the system (due to eigenvalue zero). Since I'm using CG for solving the linear system this is not acceptable since sometimes CG doesn't converge on semi-positive problems (but I may sometimes converges).
Actually I'm using a penalized displacement approach in the sense that I'm adding a penalty of the form $ \alpha ||u||^2$ to the elastic energy. So the energy reads \begin{equation} \mathcal W(u) := \frac{1}{2} u^T (K + \alpha I) u - b^t u \end{equation} where $\alpha$ taken as a proportional to some diagonal entry of the stiffness matrix. But actually this has the effect to damp some deformation mode that I would sometime like to have.
Some my question is:
a) could I transform the original system so has to make it free of singularity and positive definite (such as coordinate transformation or congruence transformation or whatever) ? My idea is to use such transformation to still use CG on the transformed problem
b) Is there any standard way to deal with those singularities ?
Thank you very much !
Kind regards,
Tom