Matrix not factorable:¶
The solution matrix is not factorable. This might be caused by an unconstrained rigid body motion or by overconstrained degrees of freedom due to multiple linear relations at at least one node.
The solution couldn’t proceed since the matrix is singular (non-invertible matrix).
What could be the possible reason?¶
This error may occur due to several possible reasons, some of which are stated below:
- Some nodes are overconstrained due to multiple constraint assignment in same direction.
- Multiple contact assignment in reverse order e.g. master and slave are assigned two times on the same surfaces in reverse order.
- One of the structure is hold only by the contact.
- One of the structure under contact is free to move in any direction without deformation (unconstrained rigid body motion).
- Only load boundary condition is applied without any constraint.
- Material parameter units are inconsistent with geometry units.
- Slave surfaces sharing nodes.
- Using Multfront or LDLT for non-positive defined matrices (negative or zero eigenvalues) under Numerics.
- Use of smaller value for Precision singularity detection under Numerics.
What can I do now?¶
Since this error is quite general and can happen due to several reasons, you can do the following that may solve your problem:
- Make sure that the nodes are not overconstrained. Which means that assigning a constraint boundary condition to a node in same direction multiple time. As an example, let’s consider a case where we need to constrain a cube in all directions from bottom and also need to apply the symmetry boundary condition on one of the side. The red higlighted faces in the figure below represent those faces. Now if we fix the bottom face in all directions, than applying a symmetry boundary condition will lead to overconstrained nodes. In order to solve it, we must have to fix the bottom in only x and z direction, since in this case it will be restricted in y direction automatically due to symmetry boundary condition.
- Make sure that the contact is not defined multiple times on the same surfaces in the reverse order. Since by assigning once the contact with master and slave will fulfill the requirement of the contact between two bodies. For example, if Contact 1 is created between two bodies by selecting a face of body 1 as master and face of body 2 as slave, than making another contact Contact 2 by selecting the same face of body 1 as slave and that of body 2 as master will lead to an error.
- Make sure that one of the structure in linear sliding or nonlinear physical contact is not hold or restricted only by the contact. As an example, please see Noninvertible matrix error case.
- Make sure that one of the structure in linear sliding or nonlinear physical contact on which some load boundary condition is applied is constrained such that it can’t move without deforming (unconstrained rigid body motion). As an example, let’s consider two cubes in contact where a pressure is applied on the upper cube while constraining the lower beam from bottom in all directions (highlighted red in the figure below) may lead to the error since the upper beam is unconstrained initially under low pressure.
- Make sure that not only the load boundary condition is applied on a structure. It should have to be constrained also. As an example, please see Noninvertible matrix error case.
- Make sure material parameter units are consistent with geometry units.
- Make sure multiple slave surfaces don’t share nodes. One has to be master among these surfaces. As an example, please see 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 matrices better than Multfront and LDLT.
- Increase the value of Precision singularity detection under Numerics so that singularity can be detected more precisely allowing solution to may not stop due to initial nonprecise detection of singularity.