3 D Rigid Frame

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

Moderators: silvia, selimgunay, Moderators

Post Reply
sorin
Posts: 12
Joined: Fri Sep 16, 2005 5:03 am
Location: E Europe/Romania/Timisoara
Contact:

3 D Rigid Frame

Post by sorin »

Dear all users,

I try to obtain F-D (force - displacement) diagram after a pushover analysis but the result files are empty despite the fact that the pushover analysis is completed successfully:
Something is wrong, but I do not know what:

Here are the 3 files so you could run the analysis:

# OpenSees
#Unitatile de masura: KN, m, sec

# ----------------------------
# Start of model generation
# ----------------------------

#Geometria structurii
# Create ModelBuilder with 3 dimensions and 6 DOF/node
model BasicBuilder -ndm 3 -ndf 6

# Define geometry
# ---------------
# Set parameters for model geometry
set h1 3.06; # 1'st story height
set h2 6.40; # 2'nd story height
set by 3.30; # Bay width in Y-direction
set by1 5.30; # Bay width in Y-direction
set bx 5.60; # Bay width in X-direction
#Nodurile structurii
# Create nodes
# tag X Y Z

node 1 [expr -$bx/2] [expr $by/2] 0
node 2 [expr $bx/2] [expr $by/2] 0
node 3 [expr $bx/2] [expr -$by/2] 0
node 4 [expr -$bx/2] [expr -$by/2] 0
node 5 [expr -$bx/2] [expr $by/2] $h1
node 6 [expr $bx/2] [expr $by/2] $h1
node 7 [expr $bx/2] [expr -$by/2] $h1
node 8 [expr -$bx/2] [expr -$by/2] $h1
node 9 [expr -$bx/2] [expr $by/2] $h2
node 10 [expr $bx/2] [expr $by/2] $h2
node 11 [expr $bx/2] [expr -$by/2] $h2
node 12 [expr -$bx/2] [expr -$by/2] $h2

# Master nodes for rigid diaphragm
# tag X Y Z
#node 9 0 0 $h1
#node 47 0 0 $h2

#Reazemele structurii

# Set base constraints
# tag DX DY DZ RX RY RZ
fix 1 1 1 1 1 1 1
fix 2 1 1 1 1 1 1
fix 3 1 1 1 1 1 1
fix 4 1 1 1 1 1 1
constraints Plain

#Placa

# Define rigid diaphragm multi-point constraints
# normalDir master slaves
#rigidDiaphragm 3 9 5 6 7 8
#rigidDiaphragm 3 47 43 44 45 46
# Constraints for rigid diaphragm master nodes
# tag DX DY DZ RX RY RZ
#fix 9 0 0 1 1 1 0
#fix 47 0 0 1 1 1 0
#Materialele
# Define materials for nonlinear columns
# --------------------------------------
# CONCRETE
# tag f'c epsc0 f'cu epscu
# Core concrete (confined)
uniaxialMaterial Concrete01 1 -23860.0 -0.00285 -4772.0 -0.02
# Cover concrete (unconfined)
uniaxialMaterial Concrete01 2 -20000.0 -0.002 0.0 -0.00726

# STEEL
# tag fy E b
# Reinforcing steel(grinda,stalpi cu E eq?????????????????)
uniaxialMaterial Steel01 3 380.0E3 210.0E6 0.02

#Sg -> Sl
#Linear Transformation (Transformare din sistem global in sistem local)
#geomTransf PDelta $transfTag $vecxzX $vecxzY $vecxzZ
geomTransf PDelta 1 1 0 0
geomTransf PDelta 2 0 0 -1
geomTransf PDelta 3 0 0 -1

#Definirea sectiunilor
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#Stalpii = S(30 X 30)

# Define cross-section for nonlinear columns
# ------------------------------------------
# set some parameters
set colWidth 0.3;
set colDepth 0.3;
set cax 0.039;
set As 113e-6; # area of fi12 bars
# some variables derived from the parameters
set y1 [expr $colWidth/2.0]; #dist de la CG la fibra extrema
set z1 [expr $colDepth/2.0]; #dist de la CG la fibra extrema
set y2 [expr $y1-$cax]; #dist de la CG la armatura
set z2 [expr $z1-$cax]; #dist de la CG la armatura
# Column cross section
section Fiber 1 {
# Create the concrete core fibers (confined concrete)
#patch quad $matTag $numSubdivIJ $numSubdivJK $yI $zI $yJ $zJ $yK $zK $yL $zL
patch quad 1 50 1 -$y2 $z2 -$y2 -$z2 $y2 -$z2 $y2 $z2

# Create the concrete cover fibers (bottom, up, left, right) (unconfined concrete)
patch quad 2 2 1 -$y2 -$z2 -$y2 -$z1 $y2 -$z1 $y2 -$z2
patch quad 2 2 1 $y2 $z1 -$y2 $z2 $y2 $z2 $y2 $z1
patch quad 2 50 1 -$y1 $z1 -$y1 -$z1 -$y2 -$z1 -$y2 $z1

patch quad 2 50 1 $y2 $z1 $y2 -$z1 $y1 -$z1 $y1 $z1

# Create the reinforcing fibers (bottom, up)
#layer straight $matTag $numBars $areaBar $yStart $zStart $yEnd $zEnd
layer straight 3 2 $As -$y2 -$z2 $y2 -$z2
layer straight 3 2 $As -$y2 $z2 $y2 $z2
}

# Concrete elastic stiffness
set E 168.3e5;
# Column torsional stiffness
#GJ=65.0e5*6.75e-4
set GJS 17550;
# Linear elastic torsion for the column
uniaxialMaterial Elastic 11 $GJS
# Attach torsion to the RC column section
# tag uniTag uniCode secTag

#create new section with IDtag 7, taking the existing material tag 10 to represent the torsion and adding it to the existing section tag 1
section Aggregator 21 11 T -section 1

#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#Grinda longitudinala stanga = GLs(30 X 50)

# Define cross-section for nonlinear beam
# ------------------------------------------
# set some parameters
set b 0.30; #latime rigla
set h 0.50; #inaltime rigla

set caxdown8 0.037; #acoperirea cu beton pana in axul armaturii longitudinale de jos fi8
set caxdown12 0.039; #acoperirea cu beton pana in axul armaturii longitudinale de jos fi12
set caxdown [expr ((2*$caxdown8+$caxdown12)/3)];

set caxup 0.037; #acoperirea cu beton pana in axul armaturii longitudinale de sus

set Asdown8 50.3e-6; # area of fi8 bars
set Asdown12 113e-6; # area of fi12 bars
set Asdown [expr ((2*$Asdown8+$Asdown12)/3)]; #arie mediata armatura jos

set Asup 113e-6; # area of fi12 bars

# some variables derived from the parameters
set y1 [expr $b/2.0]; #dist de la CG la fibra extrema
set z1 [expr $h/2.0]; #dist de la CG la fibra extrema
set yd [expr $y1-$caxdown]; #dist de la CG la armatura de jos
set zd [expr $z1-$caxdown]; #dist de la CG la armatura de jos
set yu [expr $y1-$caxup]; #dist de la CG la armatura de jos
set zu [expr $z1-$caxup]; #dist de la CG la armatura de jos

section Fiber 2 {
# Create the concrete core fibers
#patch quad $matTag $numSubdivIJ $numSubdivJK $yI $zI $yJ $zJ $yK $zK $yL $zL
patch quad 2 50 1 -$y1 $z1 -$y1 -$z1 $y1 -$z1 $y1 $z1

# Create the reinforcing fibers (bottom, up)
#layer straight $matTag $numBars $areaBar $yStart $zStart $yEnd $zEnd
layer straight 3 3 $Asdown -$yd -$zd $yd -$zd
layer straight 3 2 $Asup -$yu $zu $yu $zu
}

set GJGls 29250;
uniaxialMaterial Elastic 12 $GJGls;
section Aggregator 22 12 T -section 2

#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#Grinda longitudinala dreapta = GLd(25 X 50)

# Define cross-section for nonlinear beam
# ------------------------------------------
# set some parameters
set b 0.25; #latime rigla
set h 0.50; #inaltime rigla

set caxdown8 0.037; #acoperirea cu beton pana in axul armaturii longitudinale de jos fi8
set caxdown12 0.039; #acoperirea cu beton pana in axul armaturii longitudinale de jos fi12
set caxdown [expr ((2*$caxdown8+$caxdown12)/3)];

set caxup 0.037; #acoperirea cu beton pana in axul armaturii longitudinale de sus

set Asdown8 50.3e-6; # area of fi8 bars
set Asdown12 113e-6; # area of fi12 bars
set Asdown [expr ((2*$Asdown8+$Asdown12)/3)]; #arie mediata armatura jos

set Asup 113e-6; # area of fi12 bars

# some variables derived from the parameters
set y1 [expr $b/2.0]; #dist de la CG la fibra extrema
set z1 [expr $h/2.0]; #dist de la CG la fibra extrema
set yd [expr $y1-$caxdown]; #dist de la CG la armatura de jos
set zd [expr $z1-$caxdown]; #dist de la CG la armatura de jos
set yu [expr $y1-$caxup]; #dist de la CG la armatura de jos
set zu [expr $z1-$caxup]; #dist de la CG la armatura de jos

section Fiber 3 {
# Create the concrete core fibers
#patch quad $matTag $numSubdivIJ $numSubdivJK $yI $zI $yJ $zJ $yK $zK $yL $zL
patch quad 2 50 1 -$y1 $z1 -$y1 -$z1 $y1 -$z1 $y1 $z1

# Create the reinforcing fibers (bottom, up)
#layer straight $matTag $numBars $areaBar $yStart $zStart $yEnd $zEnd
layer straight 3 3 $Asdown -$yd -$zd $yd -$zd
layer straight 3 2 $Asup -$yu $zu $yu $zu
}

set GJGld 16927;
uniaxialMaterial Elastic 13 $GJGld;
section Aggregator 23 13 T -section 3

#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#Grinda transversala = GT20x24(20 X 24) (grinda transversala peste parter)

# Define cross-section for nonlinear beam
# ------------------------------------------
# set some parameters
set b 0.20; #latime rigla
set h 0.24; #inaltime rigla

set caxright12 0.056; #acoperirea cu beton pana in axul armaturii longitudinale din dreapta lui fi12
set caxleft10 0.055; #acoperirea cu beton pana in axul armaturii longitudinale din stanga lui fi10

set caxup10 0.030; #acoperirea cu beton pana in axul armaturii longitudinale de sus fi10
set caxup12 0.031; #acoperirea cu beton pana in axul armaturii longitudinale de sus fi12
set caxup [expr (($caxup10+$caxup12)/2)];

set caxdown12 0.031; #acoperirea cu beton pana in axul armaturii longitudinale de jos fi12

set Asup10 78.5e-6; # area of fi10 bars
set Asup12 113e-6; # area of fi12 bars
set Asup [expr (($Asup10+$Asup12)/2)]; #arie mediata armatura sus

set Asdown 113e-6; # area of fi12 bars

# some variables derived from the parameters
set y1 [expr $b/2.0]; #dist de la CG la fibra extrema
set z1 [expr $h/2.0]; #dist de la CG la fibra extrema
set yd [expr 0]; #dist de la CG la armatura de jos
set zd [expr $z1-$caxdown12]; #dist de la CG la armatura de jos
set yul [expr $y1-$caxleft10]; #dist de la CG la armatura de sus fi10 (stanga)
set yur [expr $y1-$caxright12]; #dist de la CG la armatura de sus fi12 (dreapta)
set zu [expr $z1-$caxup]; #dist de la CG la armatura de jos

section Fiber 4 {
# Create the concrete core fibers
#patch quad $matTag $numSubdivIJ $numSubdivJK $yI $zI $yJ $zJ $yK $zK $yL $zL
patch quad 2 50 1 -$y1 $z1 -$y1 -$z1 $y1 -$z1 $y1 $z1

# Create the reinforcing fibers (bottom, up)
#layer straight $matTag $numBars $areaBar $yStart $zStart $yEnd $zEnd
layer straight 3 1 $Asdown $yd -$zd $yd -$zd
layer straight 3 2 $Asup -$yul $zu $yur $zu
}

set GJGtp 4160;
uniaxialMaterial Elastic 14 $GJGtp;
section Aggregator 24 14 T -section 4

#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#Grinda transversala = GT20x20(20 X 20) (grinda transversala peste etaj)

# Define cross-section for nonlinear beam
# ------------------------------------------
# set some parameters
set b 0.20; #latime rigla
set h 0.20; #inaltime rigla

set caxright12 0.056; #acoperirea cu beton pana in axul armaturii longitudinale din dreapta lui fi12
set caxleft8 0.054; #acoperirea cu beton pana in axul armaturii longitudinale din stanga lui fi8

set caxup8 0.029; #acoperirea cu beton pana in axul armaturii longitudinale de sus fi8
set caxup12 0.031; #acoperirea cu beton pana in axul armaturii longitudinale de sus fi12
set caxup [expr (($caxup8+$caxup12)/2)];

set caxdown12 0.031; #acoperirea cu beton pana in axul armaturii longitudinale de jos fi12

set Asup8 50.3e-6; # area of fi8 bars
set Asup12 113e-6; # area of fi12 bars
set Asup [expr (($Asup10+$Asup12)/2)]; #arie mediata armatura sus

set Asdown 113e-6; # area of fi12 bars

# some variables derived from the parameters
set y1 [expr $b/2.0]; #dist de la CG la fibra extrema
set z1 [expr $h/2.0]; #dist de la CG la fibra extrema
set yd [expr 0]; #dist de la CG la armatura de jos
set zd [expr $z1-$caxdown12]; #dist de la CG la armatura de jos
set yul [expr $y1-$caxleft8]; #dist de la CG la armatura de sus fi10 (stanga)
set yur [expr $y1-$caxright12]; #dist de la CG la armatura de sus fi12 (dreapta)
set zu [expr $z1-$caxup]; #dist de la CG la armatura de jos

section Fiber 5 {
# Create the concrete core fibers
#patch quad $matTag $numSubdivIJ $numSubdivJK $yI $zI $yJ $zJ $yK $zK $yL $zL
patch quad 2 50 1 -$y1 $z1 -$y1 -$z1 $y1 -$z1 $y1 $z1

# Create the reinforcing fibers (bottom, up)
#layer straight $matTag $numBars $areaBar $yStart $zStart $yEnd $zEnd
layer straight 3 1 $Asdown $yd -$zd $yd -$zd
layer straight 3 2 $Asup -$yul $zu $yur $zu
}

set GJGte 3467;
uniaxialMaterial Elastic 15 $GJGte;
section Aggregator 25 15 T -section 5

# Number of integration points along length of element
set np 2;
## Define column equivalent inertia moment
#Stalpi(parter + etaj)
set Iz 675.0e-6; #moment inertie
set Iy 675.0e-6; #moment inertie
set Izec1 [expr 0.5 * $Iz]; #moment inertie echivalent (FEMA 356 - p214)
set Iyec1 [expr 0.5 * $Iy]; #moment inertie echivalent (FEMA 356 - p214)
#GLs(parter + etaj)
set IyGLs 312.5e-5; #moment inertie = b*h^3/12
set IzGLs 112.5e-5; #moment inertie = h*b^3/12
set Izec2 [expr 0.5 * $IzGLs]; #moment inertie echivalent (FEMA 356 - p214)
set Iyec2 [expr 0.5 * $IyGLs]; #moment inertie echivalent (FEMA 356 - p214)
#GLd(parter + etaj)
set IyGLd 260.0e-5; #moment inertie = b*h^3/12
set IzGLd 651.0e-6; #moment inertie = h*b^3/12
set Izec3 [expr 0.5 * $IzGLd]; #moment inertie echivalent (FEMA 356 - p214)
set Iyec3 [expr 0.5 * $IyGLd]; #moment inertie echivalent (FEMA 356 - p214)
#GT20p(parter)
set IzGT20p 160.0e-6; #moment inertie = h*b^3/12
set IyGT20p 230.4e-6; #moment inertie = b*h^3/12
set Izec4 [expr 0.5 * $IzGT20p]; #moment inertie echivalent (FEMA 356 - p214)
set Iyec4 [expr 0.5 * $IyGT20p]; #moment inertie echivalent (FEMA 356 - p214)
#GT20e(etaj)
set IzGT20e 133.0e-6; #moment inertie = h*b^3/12
set IyGT20e 133.0e-6; #moment inertie = b*h^3/12
set Izec6 [expr 0.5 * $IzGT20e]; #moment inertie echivalent (FEMA 356 - p214)
set Iyec6 [expr 0.5 * $IyGT20e]; #moment inertie echivalent (FEMA 356 - p214)

set maxIters 20;
set JS 2.70e-3; #b^3*h/3
set JGls 4.50e-3;
set JGld 2.60e-3;
set JGtp 6.40e-4;
set JGte 1.33e-4;
# Create the elements using Beam with hinges column elements
# tag ndI ndJ secTagI Hinge secTagJ Hinge E A Iz Iy G J transfTag
# (fiber) LengththI (fiber) LengthJ
# (Lp/L=0.192/3) (Lp/L=0.192/3)
#Stalpii parter (Sp - 30 x 30)
element beamWithHinges 1 1 5 21 0.073 21 0.073 168.3e5 900.0e-4 $Iz $Iy 65.0e5 $JS 1
element beamWithHinges 2 2 6 21 0.073 21 0.073 168.3e5 900.0e-4 $Iz $Iy 65.0e5 $JS 1
element beamWithHinges 3 3 7 21 0.073 21 0.073 168.3e5 900.0e-4 $Iz $Iy 65.0e5 $JS 1
element beamWithHinges 4 4 8 21 0.073 21 0.073 168.3e5 900.0e-4 $Iz $Iy 65.0e5 $JS 1

#Stalpii etaj (Se - 30 x 30)
element beamWithHinges 5 5 9 21 0.070 21 0.070 168.3e5 900.0e-4 $Iz $Iy 65.0e5 $JS 1
element beamWithHinges 6 6 10 21 0.070 21 0.070 168.3e5 900.0e-4 $Iz $Iy 65.0e5 $JS 1
element beamWithHinges 7 7 11 21 0.070 21 0.070 168.3e5 900.0e-4 $Iz $Iy 65.0e5 $JS 1
element beamWithHinges 8 8 12 21 0.070 21 0.070 168.3e5 900.0e-4 $Iz $Iy 65.0e5 $JS 1

#Grinda longitudinala stanga (GLs - 30 x 50) - parter
element beamWithHinges 9 5 8 22 0.054 22 0.054 168.3e5 1500.0e-4 $IzGLs $IyGLs 65.0e5 $JGls 3
#Grinda longitudinala stanga (GLs - 30 x 50) - etaj
element beamWithHinges 13 9 12 22 0.054 22 0.054 168.3e5 1500.0e-4 $IzGLs $IyGLs 65.0e5 $JGls 3

#Grinda longitudinala dreapta (GLd - 25 x 50) - parter
element beamWithHinges 10 6 7 23 0.054 23 0.054 168.3e5 1250.0e-4 $IzGLd $IyGLd 65.0e5 $JGld 3
#Grinda longitudinala dreapta (GLd - 25 x 50) - etaj
element beamWithHinges 14 10 11 23 0.054 23 0.054 168.3e5 1250.0e-4 $IzGLd $IyGLd 65.0e5 $JGld 3

#Grinda transversala parter (GT20p - 20 x 24)spate
element beamWithHinges 11 5 6 24 0.074 24 0.074 168.3e5 480.0e-4 $IzGT20p $IyGT20p 65.0e5 $JGtp 2
#Grinda transversala parter (GT20p - 20 x 24)fata
element beamWithHinges 12 7 8 24 0.074 24 0.074 168.3e5 480.0e-4 $IzGT20p $IyGT20p 65.0e5 $JGtp 2

#Grinda transversala etaj (GT20e - 20 x 20)spate
element beamWithHinges 15 9 10 25 0.074 25 0.074 168.3e5 400.0e-4 $IzGT20e $IyGT20e 65.0e5 $JGte 2
#Grinda transversala etaj (GT20p - 20 x 20)fata
element beamWithHinges 16 11 12 25 0.074 25 0.074 168.3e5 400.0e-4 $IzGT20e $IyGT20e 65.0e5 $JGte 2

#Definirea incarcarii gravitationale data de blocurile ceramice (incarcare uniform distribuita pe grinzile transversale)

# Define gravity loads
# --------------------

# Set a parameter for the axial load
# Forces at nodes
set Psp 34.71;
set Pdp 33.07;
set Pse 26.54;
set Pde 24.90;

# Create a Plain load pattern with a Linear TimeSeries
pattern Plain 1 "Linear" {

# Create nodal loads at nodes
# nd FX FY FZ MX MY MZ
#part
load 5 0.0 0.0 [expr -$Psp] 0.0 0.0 0.0
load 6 0.0 0.0 [expr -$Pdp] 0.0 0.0 0.0
load 7 0.0 0.0 [expr -$Pdp] 0.0 0.0 0.0
load 8 0.0 0.0 [expr -$Psp] 0.0 0.0 0.0
#etaj
load 9 0.0 0.0 [expr -$Pse] 0.0 0.0 0.0
load 10 0.0 0.0 [expr -$Pde] 0.0 0.0 0.0
load 11 0.0 0.0 [expr -$Pde] 0.0 0.0 0.0
load 12 0.0 0.0 [expr -$Pse] 0.0 0.0 0.0
}

# Mass at nodes
set g 9.81; # Gravitational accelaration
set Msp [expr $Psp/$g];
set Mdp [expr $Pdp/$g];
set Mse [expr $Pse/$g];
set Mde [expr $Pde/$g];
# Define nodal mass in terms of axial load on columns
# Set mass at the master nodes
# tag MX MY MZ RX RY RZ
#parter
mass 5 $Msp $Msp 0.0 0.0 0.0 0.0
mass 6 $Mdp $Mdp 0.0 0.0 0.0 0.0
mass 7 $Mdp $Mdp 0.0 0.0 0.0 0.0
mass 8 $Msp $Msp 0.0 0.0 0.0 0.0
#etaj
mass 9 $Mse $Mse 0.0 0.0 0.0 0.0
mass 10 $Mde $Mde 0.0 0.0 0.0 0.0
mass 11 $Mde $Mde 0.0 0.0 0.0 0.0
mass 12 $Mse $Mse 0.0 0.0 0.0 0.0

# initialize in case we need to do an initial stiffness iteration
initialize

# ------------------------------
# End of model generation
# ------------------------------



# ------------------------------
# Start of analysis generation
# ------------------------------

# Create the system of equation, a sparse solver with partial pivoting
#system UmfPack
system SparseGeneral
# Create the constraint handler, the transformation method
constraints Plain

# Create the DOF numberer, the reverse Cuthill-McKee algorithm
numberer RCM

# Create the convergence test, the norm of the residual with a tolerance of 1.0e-6 and a max number of iterations of 30
test NormDispIncr 1.0e-6 30

# Create the solution algorithm, a Newton-Raphson algorithm
algorithm NewtonLineSearch 0.7

# Create the integration scheme, the LoadControl scheme using steps of 0.1
integrator LoadControl 0.1

# Create the analysis object
analysis Static

# ------------------------------
# End of analysis generation
# ------------------------------



# ------------------------------
# Start of recorder generation
# ------------------------------

# Create a recorder to monitor nodal displacements
recorder Node -file nodeGravity5.out -time -node 5 -dof 1 2 3 disp #!#y-displ & load incr
recorder Node -file nodeGravity8.out -time -node 8 -dof 1 2 3 disp
recorder Node -file nodeGravity9.out -time -node 9 -dof 1 2 3 disp
recorder Node -file nodeGravity12.out -time -node 12 -dof 1 2 3 disp
for {set i 1} {$i<=16} {incr i} {
recorder Element -file eleGlobalColumn.out -time -ele $i globalForce #!#load increment ,N,T,M-1'ul nod & N,T,M-al 2-lea nod
}

# --------------------------------
# End of recorder generation
# ---------------------------------


# ------------------------------
# Finally perform the analysis
# ------------------------------

# perform the gravity load analysis, requires 10 steps to reach the load level
analyze 10

# Print out the state of nodes
print node 1 2 3 4 5 6 7 8 9 10 11 12

# Print out the state of element 1 2 3
print ele 1 2 3 4 5 6 7 8

print "echo.out"

#-------------------------------------------------------------------------
# Perform an eigenvalue analysis
#puts "eigen values at start of transient: [eigen 2]"
source "RAYL_DC.tcl"; #pentru analiza modala
RAYL_DC 3 1 3 0.05; #valori implicite (default values)

################################################2'nd file
#Concentrated horisontal loads
#2 lateral loads at top of collumns at 2'nd floor
#

#
# Units: kN, m, sec
#
# ----------------------------------------------------
# Start of Model Generation & Initial Gravity Analysis
# ----------------------------------------------------
# Do operations of Example3.1 by sourcing in the tcl file
source plastic(A1).tcl
puts "Gravity load analysis completed";

# Set the gravity loads to be constant & reset the time in the domain
loadConst -time 0.0

# ----------------------------------------------------
# End of Model Generation & Initial Gravity Analysis
# ----------------------------------------------------


# ----------------------------------------------------
# Start of additional modelling for lateral loads
# ----------------------------------------------------

# Define lateral loads
# --------------------

# Set some parameters
set H 1.0; # Reference lateral load

# Set lateral load pattern with a Linear TimeSeries
pattern Plain 2 "Linear" {

# Create nodal loads at nodes
# nd FX FY FZ Mx MY MZ
load 10 -$H 0.0 0.0 0.0 0.0 0.0
load 11 -$H 0.0 0.0 0.0 0.0 0.0
}

# ----------------------------------------------------
# End of additional modelling for lateral loads
# ----------------------------------------------------



# ----------------------------------------------------
# Start of modifications to analysis for push over
# ----------------------------------------------------


# Set some parameters
set dU 0.001; # Displacement increment

# Change the integration scheme to be displacement control
# node dof init Jd min max
integrator DisplacementControl 9 6 $dU 1 $dU $dU
integrator DisplacementControl 12 6 $dU 1 $dU $dU
# ----------------------------------------------------
# End of modifications to analysis for push over
# ----------------------------------------------------


# ------------------------------
# Start of recorder generation
# ------------------------------

# Stop the old recorders by destroying them
#remove recorders

# Create a recorder to monitor nodal displacements
recorder Node -file node10.out -time -node 10 -dof 1 2 3 4 5 6 disp
recorder Node -file node11.out -time -node 11 -dof 1 2 3 4 5 6 disp
recorder Node -file node9.out -time -node 9 -dof 1 2 3 4 5 6 disp
recorder Node -file node12.out -time -node 12 -dof 1 2 3 4 5 6 disp
# Create a recorder to monitor element forces in columns
recorder Element -file ele1.out -time -ele 1 localForce
recorder Element -file ele4.out -time -ele 4 localForce
recorder Element -file ele5.out -time -ele 5 localForce
recorder Element -file ele8.out -time -ele 8 localForce
# --------------------------------
# End of recorder generation
# ---------------------------------


# ------------------------------
# Finally perform the analysis
# ------------------------------

# Set some parameters
set maxU 0.0001; # Max displacement[(!)la 0.001 nu functioneaza => pt a creste nr pasi trebuie sa scadem max displacement => 0.0001]
set numSteps [expr int($maxU/$dU)];

# Perform the analysis
set ok [analyze $numSteps];

if {$ok != 0} {

set currentDisp [nodeDisp 12 4];
set ok 0
while {$ok == 0 && $currentDisp < $maxU} {

set ok [analyze 4]

# if the analysis fails try initial tangent iteration
if {$ok != 0} {
puts "regular newton failed .. lets try an initail stiffness for this step"
#test NormDisplIncr $tol(convergence tolerance) $maxNumIter
test NormDispIncr 1.0e-12 10000 0
algorithm ModifiedNewton -initial
set ok [analyze 1]
if {$ok == 0} {puts "that worked .. back to regular newton"}
test NormDispIncr 1.0e-12 10
algorithm Newton
}

set currentDisp [nodeDisp 12 4];
}
}

puts "";
if {$ok == 0} {
puts "Pushover analysis completed SUCCESSFULLY";
} else {
puts "Pushover analysis FAILED";
}

# Print the state at node 10 & 11
print node 10
print node 11


################################################3'rd file
# ***************************************************************************
# ***************************************************************************
# ***************************************************************************
# Performs an eigenvalue analysis
# Computes the fundamental periods of vibartion
# Computes the Rayleigh damping coefficients
# Arguments
# NEV - Numeber of EigenValues to determine
# T1, T2 - periods from which the Rayleigh damping parameters are determined
# damp - damping ratio
# returns a global array rayldc with the
# - mass proportional [rayldc(alphaM)]
# - stiffness proportional [rayldc(betaK)]
# Rayleigh damping coefficients

proc RAYL_DC {{NEV 3} {T1 1} {T2 3} {damp 0.02}} {
global rayldc; #rayleigh damping coefficients
puts "eigen analysis. Modes: $NEV; T1=$T1; T2=$T2; damp=$damp; ";
set PI [expr 2*asin(1.0)]
set lambdaList [eigen $NEV]; #eigenvalue analysis
puts "lambda: $lambdaList"; # print to the screen
foreach lambda $lambdaList {
set omega [expr pow($lambda,0.5)]; # compute omega
lappend omegaList $omega; # build omegaList
set T [expr 2*$PI/$omega]; #compute T (sec.)
lappend TList $T; # build TList
}

puts "T: $TList sec"; # print periods to the screen
set omega1 [lindex $omegaList [expr $T1-1]]; #extract omega1
set omega2 [lindex $omegaList [expr $T2-1]]; #extract omega2
set rayldc(alphaM) [expr 2.0*$damp/($omega1+$omega2)*$omega1*$omega2]; # mass-prop. RAYLEIGH damping parameter; D = alphaM*M
set rayldc(betaK) [expr 2.0*$damp/($omega1+$omega2)]; # stiffness-prop. RAYLEIGH damping parameter; D = betaK*K
puts "Rayleigh damp. coeff.: \nrayldc(alphaM)=$rayldc(alphaM)\nrayldc(betaK)=$rayldc(betaK)";
}

Thank you!!!
sorin
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

there are a few files missing.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Post Reply