Applying Accel Time Histories in Multi-Support Excitation

If you have a script you think might be useful to others post it
here. Hopefully we will be able to get the most useful of these incorporated in the manuals.

Moderators: silvia, Moderators

Applying Accel Time Histories in Multi-Support Excitation

Postby uxb5003 » Sun Nov 25, 2012 6:11 pm

Hello everyone,

I have to apply different sets of Bidirectional Earthquake ground motions at abutments and at foundation level of the bents of a bridge.
I was planning to use the Multi-Support Excitation pattern, which allows me to apply different ground motions at different supports. However, in the notes it was stated that one should be using Displacement Time Histories when using this pattern, as using Acceleration Time Histories, might yield erroneous results.

As I have a set of ground motions described by Acceleration Time Histories, what is the most advisable method for me to use? Uniform Excitation pattern will not allow me to apply different time histories at different supports. Is there any other possibility of defining the ground motions which can resolve this issue?

Also, for the relative displacements produced by Uniform Excitation pattern at a particular node, is it relative to the adjacent connected node? If a node is connected by beams to other nodes adjacent to it in longitudinal, transverse and vertical directions (for e.g the corner node of a building), the relative displacement in the transverse direction will be relative to the transverse displacement of the node vertically below or to those lying in the same horizontal plane?

Thanks for your help.

Sincerely,
Unmukt Bhatnagar.
uxb5003
 
Posts: 8
Joined: Sun Dec 18, 2011 12:04 am
Location: Penn State

Re: Applying Accel Time Histories in Multi-Support Excitatio

Postby fmk » Fri Nov 30, 2012 10:02 am

for multi-support you it is strongly advisable to provide the displacement history. we provide a simple trapezoidal integration strategy if nothing is provided.
we do no baseline correction. if you have a raw acceleration record you should. there are multiple methods available and the displacements obtained are can be very dependent on the method used. i STRONGLY suggest you do some research on the matter. you might even post some notes or comments for others when you are done.
fmk
Site Admin
 
Posts: 5727
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley

Re: Applying Accel Time Histories in Multi-Support Excitatio

Postby uxb5003 » Mon Dec 03, 2012 3:57 pm

Thank you Frank for addressing the issue.

For validation purposes, I have sets of acceleration as well as displacement time histories for a particular earthquake, which have been corrected and cleared of all noise signals. However, for running my main analysis, I have only acceleration time histories available. I'll try to examine different methods available, and try to determine a particular favorable method, through which the displacement time histories obtained are similar to those which have been recorded.

Again thanks for helping me solve the problem.
uxb5003
 
Posts: 8
Joined: Sun Dec 18, 2011 12:04 am
Location: Penn State

Re: Applying Accel Time Histories in Multi-Support Excitatio

Postby uxb5003 » Fri Dec 07, 2012 7:32 am

Hi,

I am facing a problem while running two different analysis cases. As stated before, I have to apply bi-directional earthquake for my seismic analysis. I'm considering Force-based beam column element for my columns. On using uniform excitation pattern, my analysis runs without any errors or convergence issues, and I obtain my output results. However, if I intend to use Multiple-support excitation pattern to assign different displacement time histories at different end supports, I get convergence issues.
As stated in some of the earlier posts I tried changing the fiber configurations, increased integration points, added -iter option for the element, and changed my element to displacement based element. I also tried different integrators, algorithms and test methods. However, I still faced convergence issues, for e.g. "failed to get compatible element forces & deformations for element". If I try to fix one element, this issue crops up at some other element. I can't locate the root cause of the problem.
Can you please tell me where I'm going wrong? Below, I've attached my description of my Excitation patterns, column definitions and error I'm facing.

Thanks.


Multiple Support Excitation Pattern
---------------------------------------------

set iSupportNode "10001 20001 10039 20039 50013 50033"; # support nodes where ground motions are input, for multiple-support excitation
set iGMdirection_Long "1 1 1 1 1 1";
set iGMdirection_Trans "2 2 2 2 2 2";
set iGMfile_Long "Chan18_D_out Chan18_D_out Chan15_D_out Chan15_D_out Chan12_D_out Chan12_D_out";
set iGMfile_Trans "Chan20_D_out Chan20_D_out Chan17_D_out Chan17_D_out Chan14_D_out Chan14_D_out ";

# multiple-support excitation: displacement input at individual nodes
pattern MultipleSupport $IDloadTag {
foreach SupportNode $iSupportNode GMfile_Long $iGMfile_Long GMfile_Trans $iGMfile_Trans GMdirection_Long $iGMdirection_Long GMdirection_Trans $iGMdirection_Trans {
set IDgmSeries_Long [expr $IDgmSeries_Long + 1]
set IDgmSeries_Trans [expr $IDgmSeries_Trans + 1]

set outFile_Long $GMdir/$GMfile_Long.txt; # set variable holding new filename
set outFile_Trans $GMdir/$GMfile_Trans.txt; # set variable holding new filename

set DispSeries_Long "Series -dt $DtAnalysis -filePath $outFile_Long "; # time series information for longitudinal direction
groundMotion $IDgmSeries_Long Plain -disp $DispSeries_Long
imposedMotion $SupportNode $GMdirection_Long $IDgmSeries_Long

set DispSeries_Trans "Series -dt $DtAnalysis -filePath $outFile_Trans "; # time series information for transverse direction
groundMotion $IDgmSeries_Trans Plain -disp $DispSeries_Trans
imposedMotion $SupportNode $GMdirection_Trans $IDgmSeries_Trans


}; # end foreach
}; # end pattern



Uniform Excitation Pattern
-----------------------------------
foreach GMdirection $iGMdirection GMfile $iGMfile GMfact $iGMfact GMseries $IDgmSeries {
incr IDloadTag;
set outFile $GMfile.txt; # set variable holding new filename
set AccelSeries "Series -dt $DtAnalysis -filePath $outFile -factor $iGMfact"; # time series information
pattern UniformExcitation $IDloadTag $GMdirection -accel $AccelSeries ; # create Uniform excitation

}


Column Definition
-----------------------

# Element Definition for Column underneath the Left Stick
element elasticBeamColumn 501 60003 50001 $RA $RBEc $RBG $RJ $RIy $RIz $IDColumn;
element nonlinearBeamColumn 502 50001 50002 5 $SecTag3D85 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 503 50002 50003 5 $SecTag3D75 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 504 50003 50004 5 $SecTag3D65 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 505 50004 50005 5 $SecTag3D55 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 506 50005 50006 10 $SecTag3D5 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 507 50006 50007 10 $SecTag3D5 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 508 50007 50008 10 $SecTag3D5 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 509 50008 50009 10 $SecTag3D5 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 510 50009 50010 10 $SecTag3D5 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 511 50010 50011 5 $SecTag3D5 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 512 50011 50012 5 $SecTag3D5 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 513 50012 50013 5 $SecTag3D5 $IDColumn -iter 1000 [expr pow(10,-3)];

# Element Definition for Column underneath the Right Stick
element elasticBeamColumn 601 60004 50021 $RA $RBEc $RBG $RJ $RIy $RIz $IDColumn;
element nonlinearBeamColumn 602 50021 50022 5 $SecTag3D85 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 603 50022 50023 5 $SecTag3D75 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 604 50023 50024 5 $SecTag3D65 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 605 50024 50025 5 $SecTag3D55 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 606 50025 50026 10 $SecTag3D5 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 607 50026 50027 10 $SecTag3D5 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 608 50027 50028 10 $SecTag3D5 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 609 50028 50029 10 $SecTag3D5 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 610 50029 50030 10 $SecTag3D5 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 611 50030 50031 5 $SecTag3D5 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 612 50031 50032 5 $SecTag3D5 $IDColumn -iter 1000 [expr pow(10,-3)];
element nonlinearBeamColumn 613 50032 50033 5 $SecTag3D5 $IDColumn -iter 1000 [expr pow(10,-3)];


Error when using Multiple support Excitation pattern (This is just 1 case. get similar errors after changes)
-------------------------------------------------------------------------------------------------------------------------------------
WARNING: CTestNormDispIncr::test() - failed to converge but going on - current
Norm: 34.4096 (max: 1e-008, Norm deltaR: 92662.6)
WARNING - ForceBeamColumn3d::update - failed to get compatible element forces &
deformations for element: 513(dW: << 1.#QNAN, dW0: 411.666)
WARNING - ForceBeamColumn3d::update - failed to get compatible element forces &
deformations for element: 613(dW: << -1.#IND, dW0: 1.#QNAN)
WARNING - ForceBeamColumn3d::update - failed to get compatible element forces &
deformations for element: 513(dW: << 1.#QNAN, dW0: 1.#QNAN)
WARNING - ForceBeamColumn3d::update - failed to get compatible element forces &
deformations for element: 613(dW: << -1.#IND, dW0: 1.#QNAN)
Domain::update - domain failed in update
Newmark::newStep() - failed to update the domain
DirectIntegrationAnalysis::analyze() - the Integrator failed at time 0.04
OpenSees > analyze failed, returned: -2 error flag
uxb5003
 
Posts: 8
Joined: Sun Dec 18, 2011 12:04 am
Location: Penn State

Re: Applying Accel Time Histories in Multi-Support Excitatio

Postby uxb5003 » Fri May 17, 2013 7:40 am

Hi,

I changed the element from nonlinearBeamColumn element (FBE) to Displacement-based beam column element (DBE).

As Vesna stated in her presentation, (http://opensees.berkeley.edu/wiki/image ... EvsDBE.pdf), using DBE gives you a higher error in the response when compared to the values obtained while using FBE. To reduce the error, increase the number of DBE elements you are using to define your particular beam or column. For instance, in my case, I had used 12 FBE elements to define my 24 ft column. However, when I used DBE, I increased the number of elements to 22.
uxb5003
 
Posts: 8
Joined: Sun Dec 18, 2011 12:04 am
Location: Penn State

Re: Applying Accel Time Histories in Multi-Support Excitatio

Postby punitbarwani » Wed Aug 07, 2013 1:31 am

# --------------------------------------------------------------------------------------------------
# Example4. 2D Portal Frame-- Dynamic EQ input analysis
#
# execute this file after you have built the model, and after you apply gravity
#

# Uniform Earthquake ground motion (uniform acceleration input at all support nodes)
set GMdirection 1; # ground-motion direction
set GMfile "H-E12140" ; # ground-motion filenames
set GMfact 0.005; # ground-motion scaling factor

# set up ground-motion-analysis parameters
set DtAnalysis [expr 1.0*$sec]; # time-step Dt for lateral analysis
set TmaxAnalysis [expr 40.0*$sec]; # maximum duration of ground-motion analysis -- should be 50*$sec

# ----------- set up analysis parameters
source LibAnalysisDynamicParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator

# define DAMPING--------------------------------------------------------------------------------------
# apply Rayleigh DAMPING from $xDamp
# D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit + $beatKinit*$Kinitial
set xDamp 0.05; # 2% damping ratio
set lambda [eigen 1]; # eigenvalue mode 1
set omega [expr pow($lambda,0.5)];
set alphaM 0.; # M-prop. damping; D = alphaM*M
set betaKcurr 0.; # K-proportional damping; +beatKcurr*KCurrent
set betaKcomm [expr 2.*$xDamp/($omega)]; # K-prop. damping parameter; +betaKcomm*KlastCommitt
set betaKinit 0.; # initial-stiffness proportional damping +beatKinit*Kini
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping

# --------------------------------- perform Dynamic Ground-Motion Analysis
# the following commands are unique to the Uniform Earthquake excitation
set IDloadTag 400; # for uniformSupport excitation
# read a PEER strong motion database file, extracts dt from the header and converts the file
# to the format OpenSees expects for Uniform/multiple-support ground motions
source ReadSMDFile.tcl; # read in procedure Multinition
# Uniform EXCITATION: acceleration input
set inFile $GMdir/$GMfile.at2
set outFile $GMdir/$GMfile.g3; # set variable holding new filename (PEER files have .at2/dt2 extension)
ReadSMDFile $inFile $outFile dt; # call procedure to convert the ground-motion file
set GMfatt [expr $g*$GMfact]; # data in input file is in g Unifts -- ACCELERATION TH
set AccelSeries "Series -dt $dt -filePath $outFile -factor $GMfatt"; # time series information
pattern UniformExcitation $IDloadTag $GMdirection -accel $AccelSeries ; # create Unifform excitation

set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
set ok [analyze $Nsteps $DtAnalysis]; # actually perform analysis; returns ok=0 if analysis was successful

if {$ok != 0} { ; # analysis was not successful.
# --------------------------------------------------------------------------------------------------
# change some analysis parameters to achieve convergence
# performance is slower inside this loop
# Time-controlled analysis
set ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 1000 0
algorithm Newton -initial
set ok [analyze 1 $DtAnalysis]
test $testTypeDynamic $TolDynamic $maxNumIterDynamic 0
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
}
}; # end if ok !0


puts "Ground Motion Done. End Time: [getTime]"
##############################################################################



file 2:-
--------------------------------------------------------------------------------------------------
# Example4. 2D Portal Frame-- Build Model
# nonlinearBeamColumn element, inelastic fiber section
#
#
# ^Y
# |
# 3____________(3)___________4 __
# | | |
# | | |
# | | |
# (1) (2) LCol
# | | |
# | | |
# | | |
# =1= =2= _|_ -------->X
# |----------LBeam-----------|
#

# SET UP ----------------------------------------------------------------------------
wipe; # clear memory of all past model definitions
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm=#dimension, ndf=#dofs
set dataDir Data; # set up name of data directory
file mkdir $dataDir; # create data directory
set GMdir "GMfiles"; # ground-motion file directory
source LibUnits.tcl; # define basic and system units

# define GEOMETRY -------------------------------------------------------------
set LCol [expr 6000*$mm]; # column length
set LBeam [expr 6000*$mm]; # beam length
set Weight [expr 5*$N/$mm]; # superstructure weight
# define section geometry
set HCol [expr 400.*$mm]; # Column Depth
set BCol [expr 400.*$mm]; # Column Width
set HBeam [expr 500.*$mm]; # Beam Depth
set BBeam [expr 300.*$mm]; # Beam Width

# calculated parameters
set PCol [expr $Weight]; # nodal dead-load weight per column
set Mass [expr $PCol/$g]; # nodal mass
set MCol [expr 1./12.*($Weight/$LBeam)*pow($LBeam,2)]; # beam-end moment due to distributed load.
# calculated geometry parameters
set ACol [expr $BCol*$HCol]; # cross-sectional area
set ABeam [expr $BBeam*$HBeam];
set IzCol [expr 1./12.*$BCol*pow($HCol,3)]; # Column moment of inertia
set IzBeam [expr 1./12.*$BBeam*pow($HBeam,3)]; # Beam moment of inertia

# nodal coordinates:
node 1 0 0; # node#, X, Y
node 2 $LBeam 0
node 3 0 $LCol
node 4 $LBeam $LCol

# Single point constraints -- Boundary Conditions
fix 1 1 1 0; # node DX DY RZ
fix 2 1 1 0; # node DX DY RZ
#fix 3 0 0 1
#fix 4 0 0 1

# nodal masses:
mass 3 $Mass 0. 0.; # node#, Mx My Mz, Mass=Weight/g, neglect rotational inertia at nodes
mass 4 $Mass 0. 0.

# Define ELEMENTS & SECTIONS -------------------------------------------------------------
set ColSecTag 1; # assign a tag number to the column section
set BeamSecTag 2; # assign a tag number to the beam section
# define section geometry
set coverCol [expr 40.*$mm]; # Column cover to reinforcing steel NA.
set numBarsCol 4; # number of longitudinal-reinforcement bars in each side of column section. (symmetric top & bot)
set barAreaCol [expr 1256*$mm*$mm]; # area of longitudinal-reinforcement bars
#set coverBeam [expr 40.*$mm]; # Column cover to reinforcing steel NA.
#set numBarsBeam 8; # number of longitudinal-reinforcement bars in each side of column section. (symmetric top & bot)
#set barAreaBeam [expr 2512*$mm*$mm]; # area of longitudinal-reinforcement bars

# MATERIAL parameters -------------------------------------------------------------------
set IDconcU 1; # material ID tag -- unconfined cover concrete
set IDreinf 2; # material ID tag -- reinforcement
# nominal concrete compressive strength
set fc [expr -25*$MPa]; # CONCRETE Compressive Strength, ksi (+Tension, -Compression)
set Ec [expr 5700*$MPa*sqrt(-$fc)]; # Concrete Elastic Modulus
# unconfined concrete
set fc1U $fc; # UNCONFINED concrete (todeschini parabolic model), maximum stress
set eps1U -0.003; # strain at maximum strength of unconfined concrete
set fc2U [expr 0.2*$fc1U]; # ultimate stress
set eps2U -0.05; # strain at ultimate stress
set lambda 0.1; # ratio between unloading slope at $eps2 and initial slope $Ec
# tensile-strength properties
set ftU [expr -0.14*$fc1U]; # tensile strength +tension
set Ets [expr $ftU/0.002]; # tension softening stiffness
# -----------
set Fy [expr 415*$MPa]; # STEEL yield stress
set Es [expr 200000.*$MPa]; # modulus of steel
set Bs 0.01; # strain-hardening ratio
set R0 18; # control the transition from elastic to plastic branches
set cR1 0.925; # control the transition from elastic to plastic branches
set cR2 0.15; # control the transition from elastic to plastic branches
uniaxialMaterial Concrete02 $IDconcU $fc1U $eps1U $fc2U $eps2U $lambda $ftU $Ets; # build cover concrete (unconfined)
uniaxialMaterial Steel02 $IDreinf $Fy $Es $Bs $R0 $cR1 $cR2; # build reinforcement material

# FIBER SECTION properties -------------------------------------------------------------
# symmetric section
# y
# ^
# |
# --------------------- -- --
# | o o o | | -- cover
# | | |
# | | |
# z <--- | + | H
# | | |
# | | |
# | o o o | | -- cover
# --------------------- -- --
# |-------- B --------|
#
# RC section:
set coverY [expr $HCol/2.0]; # The distance from the section z-axis to the edge of the cover concrete -- outer edge of cover concrete
set coverZ [expr $BCol/2.0]; # The distance from the section y-axis to the edge of the cover concrete -- outer edge of cover concrete
set coreY [expr $coverY-$coverCol]
set coreZ [expr $coverZ-$coverCol]
set nfY 16; # number of fibers for concrete in y-direction
set nfZ 16; # number of fibers for concrete in z-direction
section fiberSec $ColSecTag {; # Define the fiber section
patch quadr $IDconcU $nfZ $nfY -$coverY $coverZ -$coverY -$coverZ $coverY -$coverZ $coverY $coverZ; # Define the concrete patch
layer straight $IDreinf $numBarsCol $barAreaCol -$coreY $coreZ -$coreY -$coreZ; # top layer reinfocement
layer straight $IDreinf $numBarsCol $barAreaCol $coreY $coreZ $coreY -$coreZ; # bottom layer reinforcement
}; # end of fibersection definition

# BEAM section:
section Elastic $BeamSecTag $Ec $ABeam $IzBeam; # elastic beam section

# define geometric transformation: performs a linear geometric transformation of beam stiffness and resisting force from the basic system to the global-coordinate system
set ColTransfTag 1; # associate a tag to column transformation
set BeamTransfTag 2; # associate a tag to beam transformation (good practice to keep col and beam separate)
set ColTransfType Linear ; # options, Linear PDelta Corotational
geomTransf $ColTransfType $ColTransfTag ; # only columns can have PDelta effects (gravity effects)
geomTransf Linear $BeamTransfTag ;

# element connectivity:
set numIntgrPts 5; # number of integration points for force-based element
element nonlinearBeamColumn 1 1 3 $numIntgrPts $ColSecTag $ColTransfTag; # self-explanatory when using variables
element nonlinearBeamColumn 2 2 4 $numIntgrPts $ColSecTag $ColTransfTag;
element nonlinearBeamColumn 3 3 4 $numIntgrPts $BeamSecTag $BeamTransfTag;

# Define RECORDERS -------------------------------------------------------------
recorder Node -file $dataDir/DFree.out -time -node 3 4 -dof 1 2 3 disp; # displacements of free nodes
recorder Node -file $dataDir/DBase.out -time -node 1 2 -dof 1 2 3 disp; # displacements of support nodes
recorder Node -file $dataDir/RBase.out -time -node 1 2 -dof 1 2 3 reaction; # support reaction
recorder Drift -file $dataDir/Drift.out -time -iNode 1 2 -jNode 3 4 -dof 1 -perpDirn 2 ; # lateral drift
recorder Element -file $dataDir/FCol.out -time -ele 1 2 globalForce; # element forces -- column
recorder Element -file $dataDir/FBeam.out -time -ele 3 globalForce; # element forces -- beam
recorder Element -file $dataDir/ForceColSec1.out -time -ele 1 2 section 1 force; # Column section forces, axial and moment, node i
recorder Element -file $dataDir/DefoColSec1.out -time -ele 1 2 section 1 deformation; # section deformations, axial and curvature, node i
recorder Element -file $dataDir/ForceColSec$numIntgrPts.out -time -ele 1 2 section $numIntgrPts force; # section forces, axial and moment, node j
recorder Element -file $dataDir/DefoColSec$numIntgrPts.out -time -ele 1 2 section $numIntgrPts deformation; # section deformations, axial and curvature, node j
recorder Element -file $dataDir/ForceBeamSec1.out -time -ele 3 section 1 force; # Beam section forces, axial and moment, node i
recorder Element -file $dataDir/DefoBeamSec1.out -time -ele 3 section 1 deformation; # section deformations, axial and curvature, node i
recorder Element -file $dataDir/ForceBeamSec$numIntgrPts.out -time -ele 3 section $numIntgrPts force; # section forces, axial and moment, node j
recorder Element -file $dataDir/DefoBeamSec$numIntgrPts.out -time -ele 3 section $numIntgrPts deformation; # section deformations, axial and curvature, node j

# define GRAVITY -------------------------------------------------------------
set WzBeam [expr $Weight/$LBeam];
timeSeries Linear 1
pattern Plain 1 Linear {
eleLoad -ele 3 -type -beamUniform -$WzBeam ; # distributed superstructure-weight on beam
}
# Gravity-analysis parameters -- load-controlled static analysis
set Tol 1.0e-8; # convergence tolerance for test
constraints Plain; # how it handles boundary conditions
numberer Plain; # renumber dof's to minimize band-width (optimization), if you want to
system BandGeneral; # how to store and solve the system of equations in the analysis
test NormDispIncr $Tol 6 ; # determine if convergence has been achieved at the end of an iteration step
algorithm Newton; # use Newton's solution algorithm: updates tangent stiffness at every iteration
set NstepGravity 10; # apply gravity in 10 steps
set DGravity [expr 1./$NstepGravity]; # first load increment;
integrator LoadControl $DGravity; # determine the next time step for an analysis
analysis Static; # define type of analysis static or transient
analyze $NstepGravity; # apply gravity
# ------------------------------------------------- maintain constant gravity loads and reset time to zero
loadConst -time 0.0

puts "Model Built"
#######################################################################################




file 3:-
# --------------------------------------------------------------------------------------------------
# dynamic-analysis parameters
# I am setting all these variables as global variables (using variable rather than set command)
# so that these variables can be uploaded by a procedure
#


# Set up Analysis Parameters ---------------------------------------------
# CONSTRAINTS handler -- Determines how the constraint equations are enforced in the analysis (http://opensees.berkeley.edu/OpenSees/m ... al/617.htm)
# Plain Constraints -- Removes constrained degrees of freedom from the system of equations
# Lagrange Multipliers -- Uses the method of Lagrange multipliers to enforce constraints
# Penalty Method -- Uses penalty numbers to enforce constraints
# Transformation Method -- Performs a condensation of constrained degrees of freedom
variable constraintsTypeDynamic Transformation;
constraints $constraintsTypeDynamic ;

# DOF NUMBERER (number the degrees of freedom in the domain): (http://opensees.berkeley.edu/OpenSees/m ... al/366.htm)
# determines the mapping between equation numbers and degrees-of-freedom
# Plain -- Uses the numbering provided by the user
# RCM -- Renumbers the DOF to minimize the matrix band-width using the Reverse Cuthill-McKee algorithm
variable numbererTypeDynamic RCM
numberer $numbererTypeDynamic

# SYSTEM (http://opensees.berkeley.edu/OpenSees/m ... al/371.htm)
# Linear Equation Solvers (how to store and solve the system of equations in the analysis)
# -- provide the solution of the linear system of equations Ku = P. Each solver is tailored to a specific matrix topology.
# ProfileSPD -- Direct profile solver for symmetric positive definite matrices
# BandGeneral -- Direct solver for banded unsymmetric matrices
# BandSPD -- Direct solver for banded symmetric positive definite matrices
# SparseGeneral -- Direct solver for unsymmetric sparse matrices (-piv option)
# SparseSPD -- Direct solver for symmetric sparse matrices
# UmfPack -- Direct UmfPack solver for unsymmetric matrices
variable systemTypeDynamic BandGeneral; # try UmfPack for large problems
system $systemTypeDynamic

# TEST: # convergence test to
# Convergence TEST (http://opensees.berkeley.edu/OpenSees/m ... al/360.htm)
# -- Accept the current state of the domain as being on the converged solution path
# -- determine if convergence has been achieved at the end of an iteration step
# NormUnbalance -- Specifies a tolerance on the norm of the unbalanced load at the current iteration
# NormDispIncr -- Specifies a tolerance on the norm of the displacement increments at the current iteration
# EnergyIncr-- Specifies a tolerance on the inner product of the unbalanced load and displacement increments at the current iteration
# RelativeNormUnbalance --
# RelativeNormDispIncr --
# RelativeEnergyIncr --
variable TolDynamic 1.e-8; # Convergence Test: tolerance
variable maxNumIterDynamic 10; # Convergence Test: maximum number of iterations that will be performed before "failure to converge" is returned
variable printFlagDynamic 0; # Convergence Test: flag used to print information on convergence (optional) # 1: print information on each step;
variable testTypeDynamic EnergyIncr; # Convergence-test type
test $testTypeDynamic $TolDynamic $maxNumIterDynamic $printFlagDynamic;
# for improved-convergence procedure:
variable maxNumIterConvergeDynamic 2000;
variable printFlagConvergeDynamic 0;

# Solution ALGORITHM: -- Iterate from the last time step to the current (http://opensees.berkeley.edu/OpenSees/m ... al/682.htm)
# Linear -- Uses the solution at the first iteration and continues
# Newton -- Uses the tangent at the current iteration to iterate to convergence
# ModifiedNewton -- Uses the tangent at the first iteration to iterate to convergence
# NewtonLineSearch --
# KrylovNewton --
# BFGS --
# Broyden --
variable algorithmTypeDynamic ModifiedNewton
algorithm $algorithmTypeDynamic;

# Static INTEGRATOR: -- determine the next time step for an analysis (http://opensees.berkeley.edu/OpenSees/m ... al/689.htm)
# LoadControl -- Specifies the incremental load factor to be applied to the loads in the domain
# DisplacementControl -- Specifies the incremental displacement at a specified DOF in the domain
# Minimum Unbalanced Displacement Norm -- Specifies the incremental load factor such that the residual displacement norm in minimized
# Arc Length -- Specifies the incremental arc-length of the load-displacement path
# Transient INTEGRATOR: -- determine the next time step for an analysis including inertial effects
# Newmark -- The two parameter time-stepping method developed by Newmark
# HHT -- The three parameter Hilbert-Hughes-Taylor time-stepping method
# Central Difference -- Approximates velocity and acceleration by centered finite differences of displacement
variable NewmarkGamma 0.5; # Newmark-integrator gamma parameter (also HHT)
variable NewmarkBeta 0.25; # Newmark-integrator beta parameter
variable integratorTypeDynamic Newmark;
integrator $integratorTypeDynamic $NewmarkGamma $NewmarkBeta

# ANALYSIS -- defines what type of analysis is to be performed (http://opensees.berkeley.edu/OpenSees/m ... al/324.htm)
# Static Analysis -- solves the KU=R problem, without the mass or damping matrices.
# Transient Analysis -- solves the time-dependent analysis. The time step in this type of analysis is constant. The time step in the output is also constant.
# variableTransient Analysis -- performs the same analysis type as the Transient Analysis object. The time step, however, is variable. This method is used when
# there are convergence problems with the Transient Analysis object at a peak or when the time step is too small. The time step in the output is also variable.
variable analysisTypeDynamic Transient
analysis $analysisTypeDynamic
###########################################################################################################



file 4:-
# --------------------------------------------------------------------------------------------------
# LibUnits.tcl -- define system of units
#
#

# define UNITS ----------------------------------------------------------------------------
set mm 1.; # define basic units -- output units
set N 1.; # define basic units -- output units
set sec 1.; # define basic units -- output units
set LunitTXT "mm"; # define basic-unit text for output
set FunitTXT "N"; # define basic-unit text for output
set TunitTXT "sec"; # define basic-unit text for output
set MPa [expr $N/pow($mm,2)];
set mm2 [expr $mm*$mm]; # mm^2
set mm3 [expr $mm*$mm*$mm]; # mm^3
set cm [expr $mm*10]; # centimeter, needed for displacement input in MultipleSupport excitation
set m [expr $mm*1000];
set KN [expr $N*1000];
set PI 3.14; # define constants
set g 9810*$mm/pow($sec,2); # gravitational acceleration
#################################################################################################



file 5:-
###########################################################################
# ReadSMDFile $inFilename $outFilename $dt #
###########################################################################
# read gm input format
#
#
#
# A procedure which parses a ground motion record from the PEER
# strong motion database by finding dt in the record header, then
# echoing data values to the output file.
#
# Formal arguments
# inFilename -- file which contains PEER strong motion record
# outFilename -- file to be written in format G3 can read
# dt -- time step determined from file header
#
# Assumptions
# The header in the PEER record is, e.g., formatted as follows:
# PACIFIC ENGINEERING AND ANALYSIS STRONG-MOTION DATA
# IMPERIAL VALLEY 10/15/79 2319, EL CENTRO ARRAY 6, 230
# ACCELERATION TIME HISTORY IN UNITS OF G
# NPTS= 3930, DT= .00500 SEC

proc ReadSMDFile {inFilename outFilename dt} {
# read gm input format

# Pass dt by reference
upvar $dt DT

# Open the input file and catch the error if it can't be read
if [catch {open $inFilename r} inFileID] {
puts stderr "Cannot open $inFilename for reading"
} else {
# Open output file for writing
set outFileID [open $outFilename w]

# Flag indicating dt is found and that ground motion
# values should be read -- ASSUMES dt is on last line
# of header!!!
set flag 0

# Look at each line in the file
foreach line [split [read $inFileID] \n] {

if {[llength $line] == 0} {
# Blank line --> do nothing
continue
} elseif {$flag == 1} {
# Echo ground motion values to output file
puts $outFileID $line
} else {
# Search header lines for dt
foreach word [split $line] {
# Read in the time step
if {$flag == 1} {
set DT $word
break
}
# Find the desired token and set the flag
if {[string match $word "DT="] == 1} {set flag 1}
}
}
}

# Close the output file
close $outFileID

# Close the input file
close $inFileID
}
};
###########################################################################



file 6:-
puts " -- Uniaxial Inelastic Material, Fiber RC-Section, Nonlinear Model --"
puts " -- Multiple-support Earthquake Excitation --"
source Ex4.Portal2D.build.InelasticFiberSection.tcl
source Ex4.Portal2D.analyze.Dynamic.EQ.Uniform.tcl

############################################################################



this is modelling, is there any problem with modelling, plz anyone can help me to compare it with idarc resutl of Story drift or Drift.....................

can anyone help me to compare drift result of OPENSEES and IDARC of a portal frame, analysis type is dynamic with time history everything in modelling is done but some due to some parameters the results are different
My email id is " punits95@hotmail.com " & " coolpunitrocks@gmail.com " plz plz plz contact me here or at mail i will send u all result and modelling of both OPENSEES and IDARC.....
thank you!!
punitbarwani
 
Posts: 19
Joined: Tue Aug 06, 2013 10:48 pm
Location: Indore, India

Comparision Of Opensees And IDARC

Postby punitbarwani » Wed Aug 07, 2013 1:38 am

# --------------------------------------------------------------------------------------------------
# Example4. 2D Portal Frame-- Dynamic EQ input analysis
#
# execute this file after you have built the model, and after you apply gravity
#

# Uniform Earthquake ground motion (uniform acceleration input at all support nodes)
set GMdirection 1; # ground-motion direction
set GMfile "H-E12140" ; # ground-motion filenames
set GMfact 0.005; # ground-motion scaling factor

# set up ground-motion-analysis parameters
set DtAnalysis [expr 1.0*$sec]; # time-step Dt for lateral analysis
set TmaxAnalysis [expr 40.0*$sec]; # maximum duration of ground-motion analysis -- should be 50*$sec

# ----------- set up analysis parameters
source LibAnalysisDynamicParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator

# define DAMPING--------------------------------------------------------------------------------------
# apply Rayleigh DAMPING from $xDamp
# D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit + $beatKinit*$Kinitial
set xDamp 0.05; # 2% damping ratio
set lambda [eigen 1]; # eigenvalue mode 1
set omega [expr pow($lambda,0.5)];
set alphaM 0.; # M-prop. damping; D = alphaM*M
set betaKcurr 0.; # K-proportional damping; +beatKcurr*KCurrent
set betaKcomm [expr 2.*$xDamp/($omega)]; # K-prop. damping parameter; +betaKcomm*KlastCommitt
set betaKinit 0.; # initial-stiffness proportional damping +beatKinit*Kini
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; # RAYLEIGH damping

# --------------------------------- perform Dynamic Ground-Motion Analysis
# the following commands are unique to the Uniform Earthquake excitation
set IDloadTag 400; # for uniformSupport excitation
# read a PEER strong motion database file, extracts dt from the header and converts the file
# to the format OpenSees expects for Uniform/multiple-support ground motions
source ReadSMDFile.tcl; # read in procedure Multinition
# Uniform EXCITATION: acceleration input
set inFile $GMdir/$GMfile.at2
set outFile $GMdir/$GMfile.g3; # set variable holding new filename (PEER files have .at2/dt2 extension)
ReadSMDFile $inFile $outFile dt; # call procedure to convert the ground-motion file
set GMfatt [expr $g*$GMfact]; # data in input file is in g Unifts -- ACCELERATION TH
set AccelSeries "Series -dt $dt -filePath $outFile -factor $GMfatt"; # time series information
pattern UniformExcitation $IDloadTag $GMdirection -accel $AccelSeries ; # create Unifform excitation

set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
set ok [analyze $Nsteps $DtAnalysis]; # actually perform analysis; returns ok=0 if analysis was successful

if {$ok != 0} { ; # analysis was not successful.
# --------------------------------------------------------------------------------------------------
# change some analysis parameters to achieve convergence
# performance is slower inside this loop
# Time-controlled analysis
set ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 1000 0
algorithm Newton -initial
set ok [analyze 1 $DtAnalysis]
test $testTypeDynamic $TolDynamic $maxNumIterDynamic 0
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1 $DtAnalysis]
algorithm $algorithmTypeDynamic
}
}
}; # end if ok !0


puts "Ground Motion Done. End Time: [getTime]"
##############################################################################



file 2:-
--------------------------------------------------------------------------------------------------
# Example4. 2D Portal Frame-- Build Model
# nonlinearBeamColumn element, inelastic fiber section
#
#
# ^Y
# |
# 3____________(3)___________4 __
# | | |
# | | |
# | | |
# (1) (2) LCol
# | | |
# | | |
# | | |
# =1= =2= _|_ -------->X
# |----------LBeam-----------|
#

# SET UP ----------------------------------------------------------------------------
wipe; # clear memory of all past model definitions
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm=#dimension, ndf=#dofs
set dataDir Data; # set up name of data directory
file mkdir $dataDir; # create data directory
set GMdir "GMfiles"; # ground-motion file directory
source LibUnits.tcl; # define basic and system units

# define GEOMETRY -------------------------------------------------------------
set LCol [expr 6000*$mm]; # column length
set LBeam [expr 6000*$mm]; # beam length
set Weight [expr 5*$N/$mm]; # superstructure weight
# define section geometry
set HCol [expr 400.*$mm]; # Column Depth
set BCol [expr 400.*$mm]; # Column Width
set HBeam [expr 500.*$mm]; # Beam Depth
set BBeam [expr 300.*$mm]; # Beam Width

# calculated parameters
set PCol [expr $Weight]; # nodal dead-load weight per column
set Mass [expr $PCol/$g]; # nodal mass
set MCol [expr 1./12.*($Weight/$LBeam)*pow($LBeam,2)]; # beam-end moment due to distributed load.
# calculated geometry parameters
set ACol [expr $BCol*$HCol]; # cross-sectional area
set ABeam [expr $BBeam*$HBeam];
set IzCol [expr 1./12.*$BCol*pow($HCol,3)]; # Column moment of inertia
set IzBeam [expr 1./12.*$BBeam*pow($HBeam,3)]; # Beam moment of inertia

# nodal coordinates:
node 1 0 0; # node#, X, Y
node 2 $LBeam 0
node 3 0 $LCol
node 4 $LBeam $LCol

# Single point constraints -- Boundary Conditions
fix 1 1 1 0; # node DX DY RZ
fix 2 1 1 0; # node DX DY RZ
#fix 3 0 0 1
#fix 4 0 0 1

# nodal masses:
mass 3 $Mass 0. 0.; # node#, Mx My Mz, Mass=Weight/g, neglect rotational inertia at nodes
mass 4 $Mass 0. 0.

# Define ELEMENTS & SECTIONS -------------------------------------------------------------
set ColSecTag 1; # assign a tag number to the column section
set BeamSecTag 2; # assign a tag number to the beam section
# define section geometry
set coverCol [expr 40.*$mm]; # Column cover to reinforcing steel NA.
set numBarsCol 4; # number of longitudinal-reinforcement bars in each side of column section. (symmetric top & bot)
set barAreaCol [expr 1256*$mm*$mm]; # area of longitudinal-reinforcement bars
#set coverBeam [expr 40.*$mm]; # Column cover to reinforcing steel NA.
#set numBarsBeam 8; # number of longitudinal-reinforcement bars in each side of column section. (symmetric top & bot)
#set barAreaBeam [expr 2512*$mm*$mm]; # area of longitudinal-reinforcement bars

# MATERIAL parameters -------------------------------------------------------------------
set IDconcU 1; # material ID tag -- unconfined cover concrete
set IDreinf 2; # material ID tag -- reinforcement
# nominal concrete compressive strength
set fc [expr -25*$MPa]; # CONCRETE Compressive Strength, ksi (+Tension, -Compression)
set Ec [expr 5700*$MPa*sqrt(-$fc)]; # Concrete Elastic Modulus
# unconfined concrete
set fc1U $fc; # UNCONFINED concrete (todeschini parabolic model), maximum stress
set eps1U -0.003; # strain at maximum strength of unconfined concrete
set fc2U [expr 0.2*$fc1U]; # ultimate stress
set eps2U -0.05; # strain at ultimate stress
set lambda 0.1; # ratio between unloading slope at $eps2 and initial slope $Ec
# tensile-strength properties
set ftU [expr -0.14*$fc1U]; # tensile strength +tension
set Ets [expr $ftU/0.002]; # tension softening stiffness
# -----------
set Fy [expr 415*$MPa]; # STEEL yield stress
set Es [expr 200000.*$MPa]; # modulus of steel
set Bs 0.01; # strain-hardening ratio
set R0 18; # control the transition from elastic to plastic branches
set cR1 0.925; # control the transition from elastic to plastic branches
set cR2 0.15; # control the transition from elastic to plastic branches
uniaxialMaterial Concrete02 $IDconcU $fc1U $eps1U $fc2U $eps2U $lambda $ftU $Ets; # build cover concrete (unconfined)
uniaxialMaterial Steel02 $IDreinf $Fy $Es $Bs $R0 $cR1 $cR2; # build reinforcement material

# FIBER SECTION properties -------------------------------------------------------------
# symmetric section
# y
# ^
# |
# --------------------- -- --
# | o o o | | -- cover
# | | |
# | | |
# z <--- | + | H
# | | |
# | | |
# | o o o | | -- cover
# --------------------- -- --
# |-------- B --------|
#
# RC section:
set coverY [expr $HCol/2.0]; # The distance from the section z-axis to the edge of the cover concrete -- outer edge of cover concrete
set coverZ [expr $BCol/2.0]; # The distance from the section y-axis to the edge of the cover concrete -- outer edge of cover concrete
set coreY [expr $coverY-$coverCol]
set coreZ [expr $coverZ-$coverCol]
set nfY 16; # number of fibers for concrete in y-direction
set nfZ 16; # number of fibers for concrete in z-direction
section fiberSec $ColSecTag {; # Define the fiber section
patch quadr $IDconcU $nfZ $nfY -$coverY $coverZ -$coverY -$coverZ $coverY -$coverZ $coverY $coverZ; # Define the concrete patch
layer straight $IDreinf $numBarsCol $barAreaCol -$coreY $coreZ -$coreY -$coreZ; # top layer reinfocement
layer straight $IDreinf $numBarsCol $barAreaCol $coreY $coreZ $coreY -$coreZ; # bottom layer reinforcement
}; # end of fibersection definition

# BEAM section:
section Elastic $BeamSecTag $Ec $ABeam $IzBeam; # elastic beam section

# define geometric transformation: performs a linear geometric transformation of beam stiffness and resisting force from the basic system to the global-coordinate system
set ColTransfTag 1; # associate a tag to column transformation
set BeamTransfTag 2; # associate a tag to beam transformation (good practice to keep col and beam separate)
set ColTransfType Linear ; # options, Linear PDelta Corotational
geomTransf $ColTransfType $ColTransfTag ; # only columns can have PDelta effects (gravity effects)
geomTransf Linear $BeamTransfTag ;

# element connectivity:
set numIntgrPts 5; # number of integration points for force-based element
element nonlinearBeamColumn 1 1 3 $numIntgrPts $ColSecTag $ColTransfTag; # self-explanatory when using variables
element nonlinearBeamColumn 2 2 4 $numIntgrPts $ColSecTag $ColTransfTag;
element nonlinearBeamColumn 3 3 4 $numIntgrPts $BeamSecTag $BeamTransfTag;

# Define RECORDERS -------------------------------------------------------------
recorder Node -file $dataDir/DFree.out -time -node 3 4 -dof 1 2 3 disp; # displacements of free nodes
recorder Node -file $dataDir/DBase.out -time -node 1 2 -dof 1 2 3 disp; # displacements of support nodes
recorder Node -file $dataDir/RBase.out -time -node 1 2 -dof 1 2 3 reaction; # support reaction
recorder Drift -file $dataDir/Drift.out -time -iNode 1 2 -jNode 3 4 -dof 1 -perpDirn 2 ; # lateral drift
recorder Element -file $dataDir/FCol.out -time -ele 1 2 globalForce; # element forces -- column
recorder Element -file $dataDir/FBeam.out -time -ele 3 globalForce; # element forces -- beam
recorder Element -file $dataDir/ForceColSec1.out -time -ele 1 2 section 1 force; # Column section forces, axial and moment, node i
recorder Element -file $dataDir/DefoColSec1.out -time -ele 1 2 section 1 deformation; # section deformations, axial and curvature, node i
recorder Element -file $dataDir/ForceColSec$numIntgrPts.out -time -ele 1 2 section $numIntgrPts force; # section forces, axial and moment, node j
recorder Element -file $dataDir/DefoColSec$numIntgrPts.out -time -ele 1 2 section $numIntgrPts deformation; # section deformations, axial and curvature, node j
recorder Element -file $dataDir/ForceBeamSec1.out -time -ele 3 section 1 force; # Beam section forces, axial and moment, node i
recorder Element -file $dataDir/DefoBeamSec1.out -time -ele 3 section 1 deformation; # section deformations, axial and curvature, node i
recorder Element -file $dataDir/ForceBeamSec$numIntgrPts.out -time -ele 3 section $numIntgrPts force; # section forces, axial and moment, node j
recorder Element -file $dataDir/DefoBeamSec$numIntgrPts.out -time -ele 3 section $numIntgrPts deformation; # section deformations, axial and curvature, node j

# define GRAVITY -------------------------------------------------------------
set WzBeam [expr $Weight/$LBeam];
timeSeries Linear 1
pattern Plain 1 Linear {
eleLoad -ele 3 -type -beamUniform -$WzBeam ; # distributed superstructure-weight on beam
}
# Gravity-analysis parameters -- load-controlled static analysis
set Tol 1.0e-8; # convergence tolerance for test
constraints Plain; # how it handles boundary conditions
numberer Plain; # renumber dof's to minimize band-width (optimization), if you want to
system BandGeneral; # how to store and solve the system of equations in the analysis
test NormDispIncr $Tol 6 ; # determine if convergence has been achieved at the end of an iteration step
algorithm Newton; # use Newton's solution algorithm: updates tangent stiffness at every iteration
set NstepGravity 10; # apply gravity in 10 steps
set DGravity [expr 1./$NstepGravity]; # first load increment;
integrator LoadControl $DGravity; # determine the next time step for an analysis
analysis Static; # define type of analysis static or transient
analyze $NstepGravity; # apply gravity
# ------------------------------------------------- maintain constant gravity loads and reset time to zero
loadConst -time 0.0

puts "Model Built"
#######################################################################################




file 3:-
# --------------------------------------------------------------------------------------------------
# dynamic-analysis parameters
# I am setting all these variables as global variables (using variable rather than set command)
# so that these variables can be uploaded by a procedure
#


# Set up Analysis Parameters ---------------------------------------------
# CONSTRAINTS handler -- Determines how the constraint equations are enforced in the analysis (http://opensees.berkeley.edu/OpenSees/m ... al/617.htm)
# Plain Constraints -- Removes constrained degrees of freedom from the system of equations
# Lagrange Multipliers -- Uses the method of Lagrange multipliers to enforce constraints
# Penalty Method -- Uses penalty numbers to enforce constraints
# Transformation Method -- Performs a condensation of constrained degrees of freedom
variable constraintsTypeDynamic Transformation;
constraints $constraintsTypeDynamic ;

# DOF NUMBERER (number the degrees of freedom in the domain): (http://opensees.berkeley.edu/OpenSees/m ... al/366.htm)
# determines the mapping between equation numbers and degrees-of-freedom
# Plain -- Uses the numbering provided by the user
# RCM -- Renumbers the DOF to minimize the matrix band-width using the Reverse Cuthill-McKee algorithm
variable numbererTypeDynamic RCM
numberer $numbererTypeDynamic

# SYSTEM (http://opensees.berkeley.edu/OpenSees/m ... al/371.htm)
# Linear Equation Solvers (how to store and solve the system of equations in the analysis)
# -- provide the solution of the linear system of equations Ku = P. Each solver is tailored to a specific matrix topology.
# ProfileSPD -- Direct profile solver for symmetric positive definite matrices
# BandGeneral -- Direct solver for banded unsymmetric matrices
# BandSPD -- Direct solver for banded symmetric positive definite matrices
# SparseGeneral -- Direct solver for unsymmetric sparse matrices (-piv option)
# SparseSPD -- Direct solver for symmetric sparse matrices
# UmfPack -- Direct UmfPack solver for unsymmetric matrices
variable systemTypeDynamic BandGeneral; # try UmfPack for large problems
system $systemTypeDynamic

# TEST: # convergence test to
# Convergence TEST (http://opensees.berkeley.edu/OpenSees/m ... al/360.htm)
# -- Accept the current state of the domain as being on the converged solution path
# -- determine if convergence has been achieved at the end of an iteration step
# NormUnbalance -- Specifies a tolerance on the norm of the unbalanced load at the current iteration
# NormDispIncr -- Specifies a tolerance on the norm of the displacement increments at the current iteration
# EnergyIncr-- Specifies a tolerance on the inner product of the unbalanced load and displacement increments at the current iteration
# RelativeNormUnbalance --
# RelativeNormDispIncr --
# RelativeEnergyIncr --
variable TolDynamic 1.e-8; # Convergence Test: tolerance
variable maxNumIterDynamic 10; # Convergence Test: maximum number of iterations that will be performed before "failure to converge" is returned
variable printFlagDynamic 0; # Convergence Test: flag used to print information on convergence (optional) # 1: print information on each step;
variable testTypeDynamic EnergyIncr; # Convergence-test type
test $testTypeDynamic $TolDynamic $maxNumIterDynamic $printFlagDynamic;
# for improved-convergence procedure:
variable maxNumIterConvergeDynamic 2000;
variable printFlagConvergeDynamic 0;

# Solution ALGORITHM: -- Iterate from the last time step to the current (http://opensees.berkeley.edu/OpenSees/m ... al/682.htm)
# Linear -- Uses the solution at the first iteration and continues
# Newton -- Uses the tangent at the current iteration to iterate to convergence
# ModifiedNewton -- Uses the tangent at the first iteration to iterate to convergence
# NewtonLineSearch --
# KrylovNewton --
# BFGS --
# Broyden --
variable algorithmTypeDynamic ModifiedNewton
algorithm $algorithmTypeDynamic;

# Static INTEGRATOR: -- determine the next time step for an analysis (http://opensees.berkeley.edu/OpenSees/m ... al/689.htm)
# LoadControl -- Specifies the incremental load factor to be applied to the loads in the domain
# DisplacementControl -- Specifies the incremental displacement at a specified DOF in the domain
# Minimum Unbalanced Displacement Norm -- Specifies the incremental load factor such that the residual displacement norm in minimized
# Arc Length -- Specifies the incremental arc-length of the load-displacement path
# Transient INTEGRATOR: -- determine the next time step for an analysis including inertial effects
# Newmark -- The two parameter time-stepping method developed by Newmark
# HHT -- The three parameter Hilbert-Hughes-Taylor time-stepping method
# Central Difference -- Approximates velocity and acceleration by centered finite differences of displacement
variable NewmarkGamma 0.5; # Newmark-integrator gamma parameter (also HHT)
variable NewmarkBeta 0.25; # Newmark-integrator beta parameter
variable integratorTypeDynamic Newmark;
integrator $integratorTypeDynamic $NewmarkGamma $NewmarkBeta

# ANALYSIS -- defines what type of analysis is to be performed (http://opensees.berkeley.edu/OpenSees/m ... al/324.htm)
# Static Analysis -- solves the KU=R problem, without the mass or damping matrices.
# Transient Analysis -- solves the time-dependent analysis. The time step in this type of analysis is constant. The time step in the output is also constant.
# variableTransient Analysis -- performs the same analysis type as the Transient Analysis object. The time step, however, is variable. This method is used when
# there are convergence problems with the Transient Analysis object at a peak or when the time step is too small. The time step in the output is also variable.
variable analysisTypeDynamic Transient
analysis $analysisTypeDynamic
###########################################################################################################



file 4:-
# --------------------------------------------------------------------------------------------------
# LibUnits.tcl -- define system of units
#
#

# define UNITS ----------------------------------------------------------------------------
set mm 1.; # define basic units -- output units
set N 1.; # define basic units -- output units
set sec 1.; # define basic units -- output units
set LunitTXT "mm"; # define basic-unit text for output
set FunitTXT "N"; # define basic-unit text for output
set TunitTXT "sec"; # define basic-unit text for output
set MPa [expr $N/pow($mm,2)];
set mm2 [expr $mm*$mm]; # mm^2
set mm3 [expr $mm*$mm*$mm]; # mm^3
set cm [expr $mm*10]; # centimeter, needed for displacement input in MultipleSupport excitation
set m [expr $mm*1000];
set KN [expr $N*1000];
set PI 3.14; # define constants
set g 9810*$mm/pow($sec,2); # gravitational acceleration
#################################################################################################



file 5:-
###########################################################################
# ReadSMDFile $inFilename $outFilename $dt #
###########################################################################
# read gm input format
#
#
#
# A procedure which parses a ground motion record from the PEER
# strong motion database by finding dt in the record header, then
# echoing data values to the output file.
#
# Formal arguments
# inFilename -- file which contains PEER strong motion record
# outFilename -- file to be written in format G3 can read
# dt -- time step determined from file header
#
# Assumptions
# The header in the PEER record is, e.g., formatted as follows:
# PACIFIC ENGINEERING AND ANALYSIS STRONG-MOTION DATA
# IMPERIAL VALLEY 10/15/79 2319, EL CENTRO ARRAY 6, 230
# ACCELERATION TIME HISTORY IN UNITS OF G
# NPTS= 3930, DT= .00500 SEC

proc ReadSMDFile {inFilename outFilename dt} {
# read gm input format

# Pass dt by reference
upvar $dt DT

# Open the input file and catch the error if it can't be read
if [catch {open $inFilename r} inFileID] {
puts stderr "Cannot open $inFilename for reading"
} else {
# Open output file for writing
set outFileID [open $outFilename w]

# Flag indicating dt is found and that ground motion
# values should be read -- ASSUMES dt is on last line
# of header!!!
set flag 0

# Look at each line in the file
foreach line [split [read $inFileID] \n] {

if {[llength $line] == 0} {
# Blank line --> do nothing
continue
} elseif {$flag == 1} {
# Echo ground motion values to output file
puts $outFileID $line
} else {
# Search header lines for dt
foreach word [split $line] {
# Read in the time step
if {$flag == 1} {
set DT $word
break
}
# Find the desired token and set the flag
if {[string match $word "DT="] == 1} {set flag 1}
}
}
}

# Close the output file
close $outFileID

# Close the input file
close $inFileID
}
};
###########################################################################



file 6:-
puts " -- Uniaxial Inelastic Material, Fiber RC-Section, Nonlinear Model --"
puts " -- Multiple-support Earthquake Excitation --"
source Ex4.Portal2D.build.InelasticFiberSection.tcl
source Ex4.Portal2D.analyze.Dynamic.EQ.Uniform.tcl

############################################################################



this is modelling, is there any problem with modelling, plz anyone can help me to compare it with idarc resutl of Story drift or Drift.....................

can anyone help me to compare drift result of OPENSEES and IDARC of a portal frame, analysis type is dynamic with time history everything in modelling is done but some due to some parameters the results are different
My email id is " punits95@hotmail.com " & " coolpunitrocks@gmail.com " plz plz plz contact me here or at mail i will send u all result and modelling of both OPENSEES and IDARC.....
thank you!!
punitbarwani
 
Posts: 19
Joined: Tue Aug 06, 2013 10:48 pm
Location: Indore, India


Return to Useful Scripts.

Who is online

Users browsing this forum: No registered users and 1 guest