static cycle analysis of simply supported beam.

Forum for OpenSees users to post questions, comments, etc. on the use of the OpenSees interpreter, OpenSees.exe

Moderators: silvia, selimgunay, Moderators

Post Reply
borjiajia
Posts: 91
Joined: Wed Jan 20, 2010 12:08 am
Location: DL, China

static cycle analysis of simply supported beam.

Post by borjiajia »

Hi,

I want to simulate simply supported beam applying static reversed cycle analysis.
Then the codes are as follows:


#--the model---------------------------------------------------------------------------
set L [expr 0.74*$m]; # beam length
set X1 0.;
set X3 [expr $X1 + $L];
set X5 [expr $X3 + $L];
set Y1 0.;

node 1 $X1 $Y1 # level 0
node 3 $X3 $Y1 # level 0
node 5 $X5 $Y1 # level 0

fix 1 1 1 0
fix 5 0 1 0

#--------------------------------------------------------------------
#---the cycle analysis-----------------------------------------------------------------
set IDctrlNode 3;
set IDctrlDOF 2;
# characteristics of cyclic analysis
set iDmax "0.00381 0.00762 0.01143 ";
set Dincr [expr 0.001];
set Fact [expr 2*$L]; # scale drift ratio by storey height for displacement cycles :?: I donot know how to define Fact in beam
set CycleType Full;
set Ncycles 3;


set iPushNode "3 ";
pattern Plain 200 Linear {;
foreach PushNode $iPushNode {
load $PushNode 0.0 $P1 0.0 0.0 0.0 0.0
}
}
#----------------------------------------------------------------

I have tried the elastic element, which worked well. However, when it comes to nonlinear beamcolumn element, it doesnot work and the result is null.

Any advices? :?: Thank you.
休息4 pm to 0 pm . 问问题at 1 am~2 pm.
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: static cycle analysis of simply supported beam.

Post by vesna »

Here is an example of static cyclic analysis for one cycle with the max. displacement of 2.0 (on a 1D element):

pattern Plain 1 Linear {
load 2 1.0;
}
# Set up analysis parameters
constraints Transformation ;
numberer RCM ;
system BandGeneral ;
test EnergyIncr 1.e-6 25 0 ;
algorithm Newton ;

set controlnode 2
set loaddirection 1
set currentDisp 0.0

foreach Dincr {0.002 -0.004 0.002} {
integrator DisplacementControl $controlnode $loaddirection $Dincr
analysis Static
set nSteps 1000
if { $Dincr > 0 } {
set Dmax [expr $Dincr*$nSteps]
set ok 0
while {$ok == 0 && $currentDisp < $Dmax} {
set ok [analyze 1]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr 1.0e-6 2000 0
algorithm Newton -initial
set ok [analyze 1]
test NormDispIncr 1.0e-6 6 2
algorithm Newton
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 ]
algorithm Newton
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch 0.8
set ok [analyze 1]
algorithm Newton
}
set currentDisp [nodeDisp $controlnode $loaddirection]
}
} elseif { $Dincr < 0 } {
set Dmax [expr $Dincr*$nSteps/2]
set ok 0
while {$ok == 0 && $currentDisp > $Dmax} {
set ok [analyze 1]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr 1.0e-6 2000 0
algorithm Newton -initial
set ok [analyze 1]
test NormDispIncr 1.0e-6 6 2
algorithm Newton
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 ]
algorithm Newton
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch 0.8
set ok [analyze 1]
algorithm Newton
}
set currentDisp [nodeDisp $controlnode $loaddirection]
}
}
}
Post Reply