Singular Matrix Error - for Shearwall Pushover Analysis
Moderators: silvia, selimgunay, Moderators
Singular Matrix Error - for Shearwall Pushover Analysis
Hello,
I have modeled a cantilever 20-story shearwall with shear-flexure interaction elements (SFI_MVLEM). I have 1 element per story, 6 fibers per element.
For materials, I am using ConcreteCM and Steel02. I received the compiled Opensees file directly from the SFI_MVLEM author (Kolozvari), so this version of executable file doesn't have bugs. The periods look okay and the push-over analysis (drift-controlled, up to 5%) responses look okay as well.
I am using the same 20-story shearwalls as above (two of them now), joined with a coupling beam.
The coupling beams are elastic beamcolumn elements.
I have modeled plastic hinges at the ends of the beams using uniaxial ModIMKPeakOriented materials.
I have zero-length elements at the hinge locations and have constrained them using equalDOF commands.
I have modeled rigid beams to join the coupling beams to the centerline of the walls.
The base is fixed.
When I run push-over analysis for this coupled wall system, the responses are okay up to 2% drift and the solutions converge. At this point, only the wall yields and beams are still elastic. I am running pushover analysis using all solution algorithms, and progressively lowering tolerance if solutions do not converge. I'm also using Umfpack -lvalueFact 100 (I've tried values between 0 to 100).
At higher drifts (beyond 2%), the solution does not converge and I get this error:
UMD2FA: matrix is singular. Only 402 pivots found.
WARNING UmfpackGenLinSolver::solve(void)- 4 returned in factorization UMD2FA()
WARNING NewtonLineSearch::solveGurrentStep()- the LinearSysOfEqn failed in solve()
....
ModifiedNewton::solveCurrentStep() -the ConvergenceTest object failed in test()
StaticAnalysis::analyze() - the Algorithm failed at iteration: 0 with domain at load factor -1.#IND
Will you give me some insight on why I'm getting this singular matrix error?
Also, is there a way to code an if-statement to flag singularity error?
So far, I've tried to find words "QNAN" or "IND" in my displacement recorders to flag singularity but this doesn't work very well.
Thank you.
I have modeled a cantilever 20-story shearwall with shear-flexure interaction elements (SFI_MVLEM). I have 1 element per story, 6 fibers per element.
For materials, I am using ConcreteCM and Steel02. I received the compiled Opensees file directly from the SFI_MVLEM author (Kolozvari), so this version of executable file doesn't have bugs. The periods look okay and the push-over analysis (drift-controlled, up to 5%) responses look okay as well.
I am using the same 20-story shearwalls as above (two of them now), joined with a coupling beam.
The coupling beams are elastic beamcolumn elements.
I have modeled plastic hinges at the ends of the beams using uniaxial ModIMKPeakOriented materials.
I have zero-length elements at the hinge locations and have constrained them using equalDOF commands.
I have modeled rigid beams to join the coupling beams to the centerline of the walls.
The base is fixed.
When I run push-over analysis for this coupled wall system, the responses are okay up to 2% drift and the solutions converge. At this point, only the wall yields and beams are still elastic. I am running pushover analysis using all solution algorithms, and progressively lowering tolerance if solutions do not converge. I'm also using Umfpack -lvalueFact 100 (I've tried values between 0 to 100).
At higher drifts (beyond 2%), the solution does not converge and I get this error:
UMD2FA: matrix is singular. Only 402 pivots found.
WARNING UmfpackGenLinSolver::solve(void)- 4 returned in factorization UMD2FA()
WARNING NewtonLineSearch::solveGurrentStep()- the LinearSysOfEqn failed in solve()
....
ModifiedNewton::solveCurrentStep() -the ConvergenceTest object failed in test()
StaticAnalysis::analyze() - the Algorithm failed at iteration: 0 with domain at load factor -1.#IND
Will you give me some insight on why I'm getting this singular matrix error?
Also, is there a way to code an if-statement to flag singularity error?
So far, I've tried to find words "QNAN" or "IND" in my displacement recorders to flag singularity but this doesn't work very well.
Thank you.
Re: Singular Matrix Error - for Shearwall Pushover Analysis
you could try using one of the other genreal solvers (BandGeneral) to see if you get the same error; typically you will but not always as the different solver decompose differently and if close to being singular this can result in different paths. if you do have the same issue, it is your model but you could try throwing in a duplicate elastic element with small stifness or get rid of the ModIMK stuff and replace with hysteretic (for unless there is a lot of cycles yoour degredatio will be minimal)
Re: Singular Matrix Error - for Shearwall Pushover Analysis
Hi SunaiKim,
I am working in a 25 - Dual System (Coupled Walls - Moment Frame) with shear-flexure interaction elements (SFI_MVLEM) model.
For the moment frame, I have used beamcolumn elements modeled with plastic hinges at the ends of the beams using uniaxial ModIMKPeakOriented materials.
For the walls I have used 2 SFI _MVLEM elements per story, 6 fibers per element.
I am using the same 20-story shearwalls as above (two of them now), joined with a coupling beam.
The coupling beams are elastic beamcolumn elements with plastic hinges at the ends of the beams using uniaxial ModIMKPeakOriented materials.
I have zero-length elements at the hinge locations and have constrained them using equalDOF commands.
But, I am not sure how to connect the coupling beams to the centerline of the walls.
I have modeled rigid beams to join the coupling beams to the centerline of the walls but depends on the axial and flexural stiffness of the rigid beam elements, when I try to run a dynamic analysis, I get a building period that makes no sense, and then I am getting the singular matrix error.
I really appreciate it if you could give me some insight on how to approach this issue with the coupled walls model.
I am working in a 25 - Dual System (Coupled Walls - Moment Frame) with shear-flexure interaction elements (SFI_MVLEM) model.
For the moment frame, I have used beamcolumn elements modeled with plastic hinges at the ends of the beams using uniaxial ModIMKPeakOriented materials.
For the walls I have used 2 SFI _MVLEM elements per story, 6 fibers per element.
I am using the same 20-story shearwalls as above (two of them now), joined with a coupling beam.
The coupling beams are elastic beamcolumn elements with plastic hinges at the ends of the beams using uniaxial ModIMKPeakOriented materials.
I have zero-length elements at the hinge locations and have constrained them using equalDOF commands.
But, I am not sure how to connect the coupling beams to the centerline of the walls.
I have modeled rigid beams to join the coupling beams to the centerline of the walls but depends on the axial and flexural stiffness of the rigid beam elements, when I try to run a dynamic analysis, I get a building period that makes no sense, and then I am getting the singular matrix error.
I really appreciate it if you could give me some insight on how to approach this issue with the coupled walls model.
Re: Singular Matrix Error - for Shearwall Pushover Analysis
Backtrack and make things elastic, e.g., the ModIMK materials, until you eliminate the error. https://wp.me/pbejzW-1C
Re: Singular Matrix Error - for Shearwall Pushover Analysis
Dear mhscott
Thank you for your advice. I found that I have a modeling issue. I am not sure how to attach the coupling beam element to the SFI-MVLEM (shear walls elements).
I tried to do this using the following script:
1. Create nodes on the edge of the walls
2. Create rigid link beam elements from the centerline of the wall to the edge of the wall
3. Create the link beam elements between walls attached to the rigid link elements
But in this approach, the link beams elements have the constraint to move with the centroid of the shear wall, and it seems like these beams are not connected to the edge.
Could you please give some insight on how to model the joint between link beams and SFI_MVLEM elements
# Step 1
# =======================================
# #Create nodes on the edge of the wall
for {set i 1} {$i <= $numFloor} {incr i} {
#Create rigid offset nodes coordinates
node [expr 310000 + 2*$i] [expr $Lw/2.0] [expr $i*$storyHeight]; # Wall 1 offset
node [expr 330000 + 2*$i] [expr $Lcb+$Lw/2.0] [expr $i*$storyHeight]; # Wall 2 offset
}
# =======================================
# Step 2
# =======================================
# Define rigid link offset from the centerline of the wall to the edge of the wall
for {set i 1} {$i <= $numFloor} {incr i} {
rigidLink beam [expr 300000 + 2*$i] [expr 310000 + 2*$i]; # Wall 1 rigid offset element
rigidLink beam [expr 330000 + 2*$i] [expr 320000 + 2*$i]; # Wall 2 rigid offset element
}
puts "Rigid Link offset defined."
# =======================================
# Step 3
# =======================================
# Define beam elements
# Command: element elasticBeamColumn $eleID $iNode $jNode $A $E $I $transfID
for {set i 1} {$i <= $numFloor} {incr i} {
set pos [lindex $CBeam_List [expr $i-1]];
set Abeam [lindex $CBeamA [expr $pos-1]];
set Ebeam [lindex $CBeamE [expr $pos-1]];
set Ibeam [lindex $CBeamI [expr $pos-1]];
element elasticBeamColumn [expr 32100 + $i] [expr 310000 + 2*$i] [expr 340000+ $i] $Abeam $Ebeam $Ibeam $BeamTransTag; # 1x - Axis 1 @ Hinge
element elasticBeamColumn [expr 32300 + $i] [expr 341000 + $i] [expr 342000+ $i] $Abeam $Ebeam $Ibeam $BeamTransTag; # 1x - Axis 1 @ Hinge
element elasticBeamColumn [expr 32400 + $i] [expr 343000 + $i] [expr 330000+ 2*$i] $Abeam $Ebeam $Ibeam $BeamTransTag; # 1x - Axis 1 @ Hinge
}
puts "Coupling Beam elements defined."
Thank you for your advice. I found that I have a modeling issue. I am not sure how to attach the coupling beam element to the SFI-MVLEM (shear walls elements).
I tried to do this using the following script:
1. Create nodes on the edge of the walls
2. Create rigid link beam elements from the centerline of the wall to the edge of the wall
3. Create the link beam elements between walls attached to the rigid link elements
But in this approach, the link beams elements have the constraint to move with the centroid of the shear wall, and it seems like these beams are not connected to the edge.
Could you please give some insight on how to model the joint between link beams and SFI_MVLEM elements
# Step 1
# =======================================
# #Create nodes on the edge of the wall
for {set i 1} {$i <= $numFloor} {incr i} {
#Create rigid offset nodes coordinates
node [expr 310000 + 2*$i] [expr $Lw/2.0] [expr $i*$storyHeight]; # Wall 1 offset
node [expr 330000 + 2*$i] [expr $Lcb+$Lw/2.0] [expr $i*$storyHeight]; # Wall 2 offset
}
# =======================================
# Step 2
# =======================================
# Define rigid link offset from the centerline of the wall to the edge of the wall
for {set i 1} {$i <= $numFloor} {incr i} {
rigidLink beam [expr 300000 + 2*$i] [expr 310000 + 2*$i]; # Wall 1 rigid offset element
rigidLink beam [expr 330000 + 2*$i] [expr 320000 + 2*$i]; # Wall 2 rigid offset element
}
puts "Rigid Link offset defined."
# =======================================
# Step 3
# =======================================
# Define beam elements
# Command: element elasticBeamColumn $eleID $iNode $jNode $A $E $I $transfID
for {set i 1} {$i <= $numFloor} {incr i} {
set pos [lindex $CBeam_List [expr $i-1]];
set Abeam [lindex $CBeamA [expr $pos-1]];
set Ebeam [lindex $CBeamE [expr $pos-1]];
set Ibeam [lindex $CBeamI [expr $pos-1]];
element elasticBeamColumn [expr 32100 + $i] [expr 310000 + 2*$i] [expr 340000+ $i] $Abeam $Ebeam $Ibeam $BeamTransTag; # 1x - Axis 1 @ Hinge
element elasticBeamColumn [expr 32300 + $i] [expr 341000 + $i] [expr 342000+ $i] $Abeam $Ebeam $Ibeam $BeamTransTag; # 1x - Axis 1 @ Hinge
element elasticBeamColumn [expr 32400 + $i] [expr 343000 + $i] [expr 330000+ 2*$i] $Abeam $Ebeam $Ibeam $BeamTransTag; # 1x - Axis 1 @ Hinge
}
puts "Coupling Beam elements defined."
Re: Singular Matrix Error - for Shearwall Pushover Analysis
Your question is pretty detailed. I recommend a 1-on-1 with Silvia who has some experience with wall modeling.
https://www.silviasbrainery.com/one-on-one-training
https://www.silviasbrainery.com/one-on-one-training
-
- Posts: 917
- Joined: Mon Sep 09, 2013 8:50 pm
- Location: University of California, Berkeley
Re: Singular Matrix Error - for Shearwall Pushover Analysis
You can try directly using the rigid link command instead of a rigid element
https://opensees.berkeley.edu/wiki/inde ... nk_command
https://opensees.berkeley.edu/wiki/inde ... nk_command