The solution matrix is not factorizable. This might be caused by unconstrained rigid body motion or by overconstrained degrees of freedom due to multiple linear relations at least one node.
The solution matrix is singular. This may be caused by an unconstrained rigid body motion, a physical contact definition with an open gap in a nonlinear static analysis or incoherent material parameters.
The solution couldn’t proceed since the matrix is singular (non-invertible matrix).
What could be the possible reason?
This error has several possible reasons, some of which are stated below:
- Some nodes are overconstrained, due to multiple constraints assigned in the same direction from different boundary conditions, contacts, physical contacts, or a combination of those.
- Duplicated contact assignment on the same pair of faces, with reversed order of master/slave.
- One of the body’s rigid body motion is restricted only by physical contact.
- One of the bodies under contact is totally rigid.
- Only load boundary conditions are applied without any movement constraint.
- Material parameter units are inconsistent with geometry units or physically unrealistic.
- Node belongs to multiple contact slave assignments.
- Using Multfront or LDLT for non-positive-definite matrices (negative or zero eigenvalues) under Numerics.
- Use of smaller value for Precision singularity detection under Numerics.
What Can I Do Now?
Since this singular matrix error is quite general and can happen due to several reasons, you can perform the following checks to try to fix the error:
- Nodes should not be overconstrained, which means that a node has been assigned a constraint boundary condition in the same direction multiple times with different types of boundary conditions. These conditions happens often to nodes on edges shared by adjacent faces.
- Two contacts should not be defined on the same pair surfaces with reverse order of master/slave assignments. One contact is enough to fulfill the requirement. Consider running automatic contact detection again.
- Bodies with sliding or nonlinear physical contact should not be held in place only by the contact.
- Bodies with sliding or nonlinear physical contact should not be constrained in such a way that they can’t deform. This happens when a fixed constraint or rotating motion is applied to the whole volume.
- Bodies should not have only loading boundary conditions applied to them. They must have their movement completely constrained.
- Material parameter units must be consistent with geometry units and physically realistic.
- Multiple slave surfaces from different contact definitions should not share nodes. One has to be master among these surfaces. As an example, please see the Shared slave nodes error case.
- In the case of zero or negative eigenvalues, make sure that you are using MUMPS which can handle non-positive-definite matrices better than Multfront and LDLT.
- Increase the value of Precision singularity detection under Numerics, allowing the solution to not stop due to the initial imprecise detection of singularity.