OpenSees Static Analysis: BandGenLinLapackSolver::solve() – matrix singular U(i,i) = 0 error
-
qkrghdrl7759
- Posts: 7
- Joined: Tue Aug 05, 2025 12:39 am
OpenSees Static Analysis: BandGenLinLapackSolver::solve() – matrix singular U(i,i) = 0 error
Hello everyone,
I am currently working on a 3D frame + slab model built in STKO, and I am trying to run a simple static analysis with a -Z 1 N nodal load (for checking structural response).
However, OpenSees fails to converge right at step 0, with the following error messages:
WARNING BandGenLinLapackSolver::solve() -factorization failed, matrix singular U(i,i) = 0, i= 0
WARNING: CTestNormDispIncr::test() - failed to converge
after: 10 iterations current Norm: 0.1 (max: 1e-06, Norm deltaR: 0.1)
NewtonRaphson::solveCurrentStep() - the ConvergenceTest object failed in test()
StaticAnalysis::analyze() - the Algorithm failed at step: 0 with domain at load factor 0.1
OpenSees > analyze failed, returned: -3 error flag
I have:
I have also attached my OpenSees input files (exported from STKO) as a compressed ZIP archive.
Assigned Physical + Element Properties (elasticBeamColumn with mass per length)
Applied Fix conditions at the bottom nodes of all columns
Built the mesh successfully
Defined a Linear TimeSeries → Plain Pattern → NodeForce (Fz = -1)
Created a Static Analysis Step with LoadControl (λ=1), Fixed time step, numIncr=1
But still I get the singular matrix / convergence error.
Execution command (Windows CMD):
cd /d "D:\OpenSTKO\STKO\modeling\CelMa"
"D:\OpenSTKO\OpenSees3.7.1\OpenSees3.7.1\bin\OpenSees.exe" main.tcl
Questions:
Does this error indicate that my nodal load is applied to an unconnected node (not part of the mesh)?
Or could it be due to missing constraints (e.g., out-of-plane DOFs not restrained)?
What would be the recommended way to debug this in OpenSees / STKO?
Any advice or similar experience would be greatly appreciated!
Thank you.
I am currently working on a 3D frame + slab model built in STKO, and I am trying to run a simple static analysis with a -Z 1 N nodal load (for checking structural response).
However, OpenSees fails to converge right at step 0, with the following error messages:
WARNING BandGenLinLapackSolver::solve() -factorization failed, matrix singular U(i,i) = 0, i= 0
WARNING: CTestNormDispIncr::test() - failed to converge
after: 10 iterations current Norm: 0.1 (max: 1e-06, Norm deltaR: 0.1)
NewtonRaphson::solveCurrentStep() - the ConvergenceTest object failed in test()
StaticAnalysis::analyze() - the Algorithm failed at step: 0 with domain at load factor 0.1
OpenSees > analyze failed, returned: -3 error flag
I have:
I have also attached my OpenSees input files (exported from STKO) as a compressed ZIP archive.
Assigned Physical + Element Properties (elasticBeamColumn with mass per length)
Applied Fix conditions at the bottom nodes of all columns
Built the mesh successfully
Defined a Linear TimeSeries → Plain Pattern → NodeForce (Fz = -1)
Created a Static Analysis Step with LoadControl (λ=1), Fixed time step, numIncr=1
But still I get the singular matrix / convergence error.
Execution command (Windows CMD):
cd /d "D:\OpenSTKO\STKO\modeling\CelMa"
"D:\OpenSTKO\OpenSees3.7.1\OpenSees3.7.1\bin\OpenSees.exe" main.tcl
Questions:
Does this error indicate that my nodal load is applied to an unconnected node (not part of the mesh)?
Or could it be due to missing constraints (e.g., out-of-plane DOFs not restrained)?
What would be the recommended way to debug this in OpenSees / STKO?
Any advice or similar experience would be greatly appreciated!
Thank you.
- Attachments
-
- 3D.zip
- (306.28 KiB) Downloaded 147 times
Re: OpenSees Static Analysis: BandGenLinLapackSolver::solve() – matrix singular U(i,i) = 0 error
That error says that your model is singular.
From a quick look I found:
From a quick look I found:
- Your lines are all separated from one another. Join them into a single geometry -> use the MakeWire command
- You defined the Fix condition, but you did not insert it in any constraint pattern.
-
qkrghdrl7759
- Posts: 7
- Joined: Tue Aug 05, 2025 12:39 am
OpenSees still gives singular matrix error – do I need to constrain out-of-plane DOFs?
Hello everyone,
I am building a 3D frame + slab model in STKO and trying to run a static analysis.
As suggested by the STKO team, I have already:
Used MakeWire to join the lines,
Added the Fix condition into a constraintPattern with a Constant TimeSeries,
Defined the nodal load in a loadPattern with a Linear TimeSeries,
Disabled loadConst and used wipeAnalysis = ON.
However, when I run the static step, I still get the following error:
WARNING BandGenLinLapackSolver::solve() - factorization failed, matrix singular U(i,i) = 0, i=0
WARNING: CTestNormDispIncr::test() - failed to converge
StaticAnalysis::analyze() - the Algorithm failed at step: 0 with domain at load factor 0.1
OpenSees > analyze failed, returned: -3 error flag
My current setup is:
Physical + Element Properties: elasticBeamColumn (with mass per length)
Fix condition: added via constraintPattern with Constant TS, ID=1 (Fix)
Load condition: added via loadPattern with Linear TS, ID=2 (Nodal Force)
Static Step: LoadControl (λ=1), Fixed step, numIncr=1
Mesh built successfully (after MakeWire)
Question:
Could this error still be happening because my model is essentially planar, leaving some out-of-plane DOFs (e.g., Uy, Ry) unconstrained?
If so, do I need to apply an SPC condition to all nodes to restrain those DOFs?
Any advice or similar experiences would be greatly appreciated.
I am building a 3D frame + slab model in STKO and trying to run a static analysis.
As suggested by the STKO team, I have already:
Used MakeWire to join the lines,
Added the Fix condition into a constraintPattern with a Constant TimeSeries,
Defined the nodal load in a loadPattern with a Linear TimeSeries,
Disabled loadConst and used wipeAnalysis = ON.
However, when I run the static step, I still get the following error:
WARNING BandGenLinLapackSolver::solve() - factorization failed, matrix singular U(i,i) = 0, i=0
WARNING: CTestNormDispIncr::test() - failed to converge
StaticAnalysis::analyze() - the Algorithm failed at step: 0 with domain at load factor 0.1
OpenSees > analyze failed, returned: -3 error flag
My current setup is:
Physical + Element Properties: elasticBeamColumn (with mass per length)
Fix condition: added via constraintPattern with Constant TS, ID=1 (Fix)
Load condition: added via loadPattern with Linear TS, ID=2 (Nodal Force)
Static Step: LoadControl (λ=1), Fixed step, numIncr=1
Mesh built successfully (after MakeWire)
Question:
Could this error still be happening because my model is essentially planar, leaving some out-of-plane DOFs (e.g., Uy, Ry) unconstrained?
If so, do I need to apply an SPC condition to all nodes to restrain those DOFs?
Any advice or similar experiences would be greatly appreciated.
- Attachments
-
- 3D (1).zip
- (306.28 KiB) Downloaded 132 times
-
- work tree.png (32.64 KiB) Viewed 3480 times
Re: OpenSees Static Analysis: BandGenLinLapackSolver::solve() – matrix singular U(i,i) = 0 error
Both your models in the attached zip files still contain the same errors (separated geometries, and constraint not in constraint pattern)