I have modeled a simple reinforced concrete column that is subjected to a set of groundmotions, and had some questions. I chose to use forcebeamcolumn elements along with fiber sections using concrete07 and reinforcingsteel materials as you can see in my attached code.
Before I moved to dynamic analysis, I made sure to perform simpler static analyses and to check the column eigenvalues - all looks reasonable.
Issues arise when running multiple ground motions - I have a set of around 50 for my research and am trying to have as many records run successfully for a parametric study which has multiple other columns. The most common error I incur is the following:
WARNING - ForceBeamColumn2d::update - failed to get compatible element forces & deformations for element: 1(dW: << 1.29063e-12)
Domain::update - domain failed in update
Newmark::update() - failed to update the domain
WARNING NewtonRaphson::solveCurrentStep() -the Integrator failed in update()
DirectIntegrationAnalysis::analyze() - the Algorithm failed at time 27.97
OpenSees > analyze failed, returned: -3 error flag
Can someone explain to me what causes this issue, or provide more insight? I do not understand what the dW: << 1.29063e-12 part means and I figure I should also mention that some ground motions will run to completion on one column model but not another. I am unsure of how to address this.
As a side note, some analyses will output a fairly long sequence of numbers that converge to 1.0:
0.999915
0.999945
0.999967
0.999983
0.999995
0.999999
1
Can someone explain what this is and if I can suppress this message?
Lastly, my code is attached below for your reference. Appreciate it.
Code: Select all
wipe
model basic -ndm 2 -ndf 3
#Structural Parameters (N, mm, sec.)
set nPc 5
#Column Parameters
set Dcol 1500.00 ; #mm
set Lcol 7500.00 ; #mm
set Dcore 1400 ; #mm
set Abar 1000 ; #mm2
set Nbar 32 ; #number of bar
set Cover 50.00 ; #mm
set Mass 630
set Weight -6185011
#Concrete (confined)
set fc -40.203
set ec -0.00348657
set Ec 31105.6563
set ft 3.931162
set et 0.000253
set xp 2
set xn 30
set rc 1.589063
#Concrete (unconfined)
set fcu -35.00
set ecu -0.002
set Ecu 31105.6563
set ftu 3.667969
set etu 0.000236
set xpu 2
set xnu 2.3
set rcu 4.830769
#Steel
set fys 400
set fus 600
set Es 200000
set Esh 6000
set esh 0.01
set eult 0.12
set lsr 2.101
#model Builder
wipe
model basic -ndm 2 -ndf 3
#Column Confined Concrete
uniaxialMaterial Concrete07 1 $fc $ec $Ec $ft $et $xp $xn $rc
#Column Unconfined Concrete
uniaxialMaterial Concrete07 2 $fcu $ecu $Ecu $ftu $etu $xpu $xnu $rcu
#Column Reinforcing Steel
uniaxialMaterial ReinforcingSteel 3 $fys $fus $Es $Esh $esh $eult -GABuck $lsr 1 0.4 0.5 -CMFatigue 0.26 0.506 0.389
#Uniaxial Torsional Stiffness
uniaxialMaterial Elastic 4 1e9;
# Type of geometric nonlinearity (1-linear, 2-Pdelta, 3-Corotational)
geomTransf Linear 1;
set ColTransf 1;
#node ID X Y
node 1 0 0
node 2 0 $Lcol
set TopNode 2
#Node Fixities
# nTag X Y MZ
fix 1 1 1 1
#Element fiber sections
section Fiber 1 {
#core concrete
patch circ 1 12 4 0. 0. 0. [expr $Dcore/2.] 0. 360.
#cover concrete
patch circ 2 12 1 0. 0. [expr $Dcore/2.] [expr $Dcol/2.] 0. 360.
#Reinf. Steel
layer circ 3 $Nbar $Abar 0. 0. [expr $Dcore/2.]
}
section Aggregator 2 4 T -section 1;
#Define Elements
# tag ndI ndJ nPts secID transf
element forceBeamColumn 1 1 2 5 2 $ColTransf
#Define Masses
# node Mx My Mz
mass $TopNode $Mass 1e-9 1e-9
# Gravity
pattern Plain 100 Linear {
#Axial Load on Column
load $TopNode 0 $Weight 0
}
#Apply gravity in 10 steps and freeze loading
constraints Plain
numberer Plain
system BandGeneral
test NormDispIncr 1.0e-8 10
algorithm Newton
integrator LoadControl 0.1
analysis Static
analyze 10
loadConst -time 0.0
# Apply Rayleigh Damping
set ww [eigen 2]
set wi [expr sqrt([lindex $ww 0])]
set wj [expr sqrt([lindex $ww 1])]
set xi 0.05; #damping coefficient in first 2 modes
set alpha [expr $xi*(2.0*$wi*$wj)/($wi+$wj)]
set beta [expr $xi*(2.0)/($wi+$wj)]
rayleigh $alpha 0.0 $beta 0.0
#recorders for Time History analysis
recorder Node -file NLTHA_Force.txt -time -node 1 -dof 1 reaction
recorder Node -file NLTHA_Disp.txt -time -node $TopNode -dof 1 disp
# Define earthquake record
set dnt 0.0200;
set step 17003
set scale [expr 9810]
set Out_ID "2475_GM_10.acc"
timeSeries Path 300 -dt $dnt -filePath Groundmotions/$Out_ID -factor $scale
# tag dir -accel TimeHistory
pattern UniformExcitation 2 1 -accel 300
wipeAnalysis
# Create a new analysis type
constraints Plain
numberer Plain
system FullGeneral
test NormDispIncr 1.0e-6 500 0
algorithm Newton
integrator Newmark 0.5 0.25
analysis Transient
set ok [analyze $step $dnt]
if {$ok != 0} {
# Additional attempts to reach convergence if an error occurs
set ok 0;
set controlTime [getTime];
while {$controlTime < [expr $step*$dnt] && $ok == 0} {
set ok [analyze 1 $dnt]
set controlTime [getTime]
set ok [analyze 1 $dnt]
if {$ok != 0} {
algorithm NewtonLineSearch
set ok [analyze 1 $dnt]
test EnergyIncr 1e-5 1000 0
algorithm Newton
}
if {$ok != 0} {
algorithm Broyden 8
set ok [analyze 1 $dnt]
algorithm Newton
}
if {$ok != 0} {
algorithm KrylovNewton
set ok [analyze 1 $dnt]
algorithm Newton
}
}
}
- Boris