Dear all,
I've modeled a steel structure using fiber dispBeamColumn elements (3D model). I want to apply cyclic displacement (with increasing amplitude at each cycle) to a column to obtain the buckling load of the column using nonlinear static analysis. I've written the following code. Is it correct?
I also want to record the axial displacement and force of the column at each cycle.
(The cyclic displacement is applied in y direction and the node No. of two ends of the column are 116 and 216)
pattern Plain 1 Linear {
load 216 0.0 1.0 0 0 0 0;
}
# Set up analysis parameters
constraints Transformation ;
numberer RCM ;
system UmfPack ;
test NormDispIncr 0.01 100 0;
algorithm Newton ;
set controlnode 216
set loaddirection 2
set currentDisp 0.0
set ratio [expr 1./1000.]
foreach DincrT {0.0000375 -0.000075 0.0000375 0.0000375 -0.000075 0.0000375 0.0000375 -0.000075 0.0000375 0.0000375 -0.000075 0.0000375 0.0000375 -0.000075 0.0000375 0.0000375 -0.000075 0.0000375 0.00005 -0.0001 0.00005 0.00005 -0.0001 0.00005 0.00005 -0.0001 0.00005 0.00005 -0.0001 0.00005 0.00005 -0.0001 0.00005 0.00005 -0.0001 0.00005 0.000075 -0.00015 0.000075 0.000075 -0.00015 0.000075 0.000075 -0.00015 0.000075 0.000075 -0.00015 0.000075 0.000075 -0.00015 0.000075 0.000075 -0.00015 0.000075 0.0001 -0.0002 0.0001 0.0001 -0.0002 0.0001 0.0001 -0.0002 0.0001 0.0001 -0.0002 0.0001 0.00015 -0.0003 0.00015 0.00015 -0.0003 0.00015 0.0002 -0.0004 0.0002 0.0002 -0.0004 0.0002 0.0003 -0.0006 0.0003 0.0003 -0.0006 0.0003 0.0004 -0.0008 0.0004 0.0004 -0.0008 0.0004} {
recorder Node -file Data/deformation_node216.txt -node 216 -dof 2 deformation
recorder Node -file Data/reaction_node116.txt -node 116 -dof 2 reaction
set nSteps 1
set Dincr [expr $ratio*$DincrT/$nSteps]
integrator DisplacementControl $controlnode $loaddirection $Dincr
analysis Static
if { $Dincr > 0 } {
set Dmax [expr $Dincr*$nSteps]
set ok 0
while {$ok == 0 && $currentDisp < $Dmax} {
set ok [analyze 1]
if {$ok != 0} {
}
} elseif { $Dincr < 0 } {
set Dmax [expr $Dincr*$nSteps/2]
set ok 0
while {$ok == 0 && $currentDisp > $Dmax} {
set ok [analyze 1]
if {$ok != 0} {
}
set currentDisp [nodeDisp $controlnode $loaddirection]
}
}
}
Looking forward to your guidance
Thank you
increasing cyclic displacement
Moderators: silvia, selimgunay, Moderators
Re: increasing cyclic displacement
I don't know if what you are doing is correct, but why are you defining the recorders inside the loop?
-
- Posts: 22
- Joined: Sun Jul 10, 2011 2:08 am
Re: increasing cyclic displacement
Dear Professor Michael H. Scott
Thank you very much for your concern
I just want to obtain displacements of the element at each cycle, to plot the displacement history of element due to cyclic loading.
Thank you very much for your concern
I just want to obtain displacements of the element at each cycle, to plot the displacement history of element due to cyclic loading.
Re: increasing cyclic displacement
you either need the recorder command outside the foreach or append a $DincrT to the filename .. if you don't and keep as is, the only data contained in the file at the end will be for the last DincrT
-
- Posts: 22
- Joined: Sun Jul 10, 2011 2:08 am
Re: increasing cyclic displacement
Dear fmk I appreciate your response.