Repeated ProfileSPDLinDirectSolver::solve() - aii < 0 (i, aii): (0,0) during Eigen analysis (model runs but shows hundre
Posted: Sun Aug 31, 2025 4:48 am
Title: Repeated ProfileSPDLinDirectSolver::solve() - aii < 0 (i, aii): (0,0) during Eigen analysis (model runs but shows hundreds of warnings)
Environment
OS: Windows 10 (22H2)
STKO: 4.1.0 (Pre/Post)
OpenSees: 3.8.0 64-bit (called from D:\OpenSTKO\OpenSees3.7.1\bin\OpenSees.exe, banner reports 3.8.0)
Analysis type: Eigen (modal)
Recorder: MPCO (displacement, rotation, acceleration, reactionForce enabled)
Problem
When I run the attached model from the command line, the console prints hundreds of identical messages:
ProfileSPDLinDirectSolver::solve() - aii < 0 (i, aii): (0,0)
and then finishes with:
ANALYSIS SUCCESSFULLY FINISHED
So the run completes, but I’m not sure if these messages are benign or if they indicate a modeling/constraint issue that will corrupt the eigen results (frequencies / mode shapes).
How to reproduce
Unzip CelMa.zip.
Run:
"D:\OpenSTKO\OpenSees3.8.0\bin\OpenSees.exe" main.tcl
(Path may differ; in my case the banner shows 3.8.0.)
Observe the repeated aii < 0 messages.
Model summary (very short)
3D frame mesh (beams/columns), supports applied at base nodes.
Boundary conditions created in STKO:
Fix(x,y) on base nodes (Ux=Uy fixed)
Fix(z) on perimeter/base (Uz fixed)
Geometry merged with Glue only coinciding subshapes in STKO.
Eigen step: numEigenvalues = 20, use_solver = off (default STKO eigen solver).
What I tried
Checked boundary conditions are assigned to the correct selection sets.
Used STKO “Merge” → Glue only coinciding subshapes to avoid duplicate nodes.
Verified MPCO recorder items.
Questions
What exactly triggers ProfileSPDLinDirectSolver::solve() - aii < 0 (i, aii): (0,0) in an Eigen analysis?
Does it mean the assembled matrix is not positive definite (e.g., due to unconstrained DOFs / rigid body modes / duplicate nodes), or is it harmless with the eigen procedure?
Is there a recommended solver option for this case (e.g., enabling use_solver and choosing MUMPS) to avoid the warnings?
Which modeling checks would you suggest (constraints handler, element orientation, accidental duplicate elements/nodes, zero-length members, etc.)?
Attachments
CelMa.zip (all TCL files + STKO model .scd)
Any hint on whether these warnings point to a real issue with my supports/merging, or are expected in this workflow, would be very appreciated.
Thanks!
Environment
OS: Windows 10 (22H2)
STKO: 4.1.0 (Pre/Post)
OpenSees: 3.8.0 64-bit (called from D:\OpenSTKO\OpenSees3.7.1\bin\OpenSees.exe, banner reports 3.8.0)
Analysis type: Eigen (modal)
Recorder: MPCO (displacement, rotation, acceleration, reactionForce enabled)
Problem
When I run the attached model from the command line, the console prints hundreds of identical messages:
ProfileSPDLinDirectSolver::solve() - aii < 0 (i, aii): (0,0)
and then finishes with:
ANALYSIS SUCCESSFULLY FINISHED
So the run completes, but I’m not sure if these messages are benign or if they indicate a modeling/constraint issue that will corrupt the eigen results (frequencies / mode shapes).
How to reproduce
Unzip CelMa.zip.
Run:
"D:\OpenSTKO\OpenSees3.8.0\bin\OpenSees.exe" main.tcl
(Path may differ; in my case the banner shows 3.8.0.)
Observe the repeated aii < 0 messages.
Model summary (very short)
3D frame mesh (beams/columns), supports applied at base nodes.
Boundary conditions created in STKO:
Fix(x,y) on base nodes (Ux=Uy fixed)
Fix(z) on perimeter/base (Uz fixed)
Geometry merged with Glue only coinciding subshapes in STKO.
Eigen step: numEigenvalues = 20, use_solver = off (default STKO eigen solver).
What I tried
Checked boundary conditions are assigned to the correct selection sets.
Used STKO “Merge” → Glue only coinciding subshapes to avoid duplicate nodes.
Verified MPCO recorder items.
Questions
What exactly triggers ProfileSPDLinDirectSolver::solve() - aii < 0 (i, aii): (0,0) in an Eigen analysis?
Does it mean the assembled matrix is not positive definite (e.g., due to unconstrained DOFs / rigid body modes / duplicate nodes), or is it harmless with the eigen procedure?
Is there a recommended solver option for this case (e.g., enabling use_solver and choosing MUMPS) to avoid the warnings?
Which modeling checks would you suggest (constraints handler, element orientation, accidental duplicate elements/nodes, zero-length members, etc.)?
Attachments
CelMa.zip (all TCL files + STKO model .scd)
Any hint on whether these warnings point to a real issue with my supports/merging, or are expected in this workflow, would be very appreciated.
Thanks!