Page 1 of 1

OpenSees Static Analysis: BandGenLinLapackSolver::solve() – matrix singular U(i,i) = 0 error

Posted: Mon Aug 25, 2025 7:21 am
by qkrghdrl7759
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.

Re: OpenSees Static Analysis: BandGenLinLapackSolver::solve() – matrix singular U(i,i) = 0 error

Posted: Mon Aug 25, 2025 8:34 am
by STKO Team
That error says that your model is singular.
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.

OpenSees still gives singular matrix error – do I need to constrain out-of-plane DOFs?

Posted: Mon Aug 25, 2025 10:52 am
by qkrghdrl7759
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.

Re: OpenSees Static Analysis: BandGenLinLapackSolver::solve() – matrix singular U(i,i) = 0 error

Posted: Wed Aug 27, 2025 11:00 am
by STKO Team
Both your models in the attached zip files still contain the same errors (separated geometries, and constraint not in constraint pattern)