Está en la página 1de 27

CI7211 - Introduccion al analisis no lineal de

estructuras
Auxiliar de OpenSees

Francisco Nazar A.
Departamento de Ingeniera Civil
Universidad de Chile

21 de Abril, 2016

Outline

1 Conceptos esenciales

2 Ejemplo de clases

3 Ejemplo de c
omo modelar una estructura

Esenciales

OpenSees nace con la tesis doctoral de Frank Mckenna:


Francis Thomas Mckenna. 1997. Object-Oriented Finite Element Programming:
Frameworks for Analysis, Algorithms and Parallel Computing. Ph.D.
Dissertation. University of California, Berkeley. AAI9827036.

Es una plataforma orientada a objetos para simular la respuesta ssmica


de sistemas estructurales y geotecnicos. Es gratuito y de codigo abierto.
<<Copyright @ 1999,2000 The Regents of the University of California. All
Rights Reserved.
The Regents grants permission, without fee and without a written license
agreement, for (a) use, reproduction, modification, and distribution of this
software and its documentation by educational, research, and non-profit entities
for noncommercial purposes only; and (b) use, reproduction and modification
of this software by other entities for internal purposes only.>>

Esenciales
En su desarrollo han participado muchos investigadores y profesores:
Frank McKenna, Gregory L. Fenves, Filip C. Filippou, Michael Scott,
Ahmed Elgamal, Zhaohui Yang, Jinchi Lu, Pedro Arduino, Peter
McKenzie, Gregory G. Deierlein, Kincho Law, y muchos otros.
Existe una comunidad en torno al programa:
http://opensees.berkeley.edu/community/viewforum.php?f=2

Cuenta con un manual, y una wiki con ejemplos y descripciones:

http://opensees.berkeley.edu/OpenSees/manuals/usermanual/
OpenSeesCommandLanguageManualJune2006.pdf
http://opensees.berkeley.edu/wiki/index.php/Main_Page
http://opensees.berkeley.edu/wiki/index.php/Examples

El c
odigo se puede ver de
http://opensees.berkeley.edu/WebSVN/listing.php?repname=OpenSees&
path=%2Ftrunk%2FSRC
1

Es posible que muchos elementos y contribuciones nuevas no esten bien


documentadas en la wiki, por lo que no hace da
no mirar el c
odigo.

Esenciales

Puntos importantes:
OpenSees es un programa originalmente sin interfaz grafica, por lo
que se apoya fuertemente en programar en editores de texto en el
lenguaje tcl, y en ocupar pre y postprocesadores externos. 2
Es un programa sin soporte tecnico3 , por lo que puede ser
frustrante encontrar errores en el modelo o analisis.
Se tiene control sobre los solvers, integradores, pruebas de
convergencia, almacenaje de matrices, etc., lo cual puede ser un
arma de doble filo.
No se pueden hacer todo tipo de cosas como en programas
comerciales.

2
3

Existen algunas interfaces gr


aficas, e.g., OpenSees Navigator.
Se puede preguntar en el foro de OpenSees....

Esenciales
Recursos para aprender:
OpenSees Days:
http://opensees.berkeley.edu/wiki/index.php/
OpenSeesDays2011
http://opensees.berkeley.edu/wiki/index.php/
OpenSeesDays2012
http://opensees.berkeley.edu/wiki/index.php/
OpenSeesDays2013
http://opensees.berkeley.edu/wiki/index.php/
OpenSeesDays2014
Ejemplos de la wiki.
Google (ejemplos y documentaci
on no indexada en la wiki)
Foro de la comunidad.... (buscar posts anteriores o preguntar).
Para instalarlo y bajarlo, registrarse y seguir instrucciones de:
http://opensees.berkeley.edu/OpenSees/user/download.php

Esenciales

Materiales:
Mas de 60 materiales uniaxiales y mas de 25 materiales n-dimensionales
para modelar comportamientos basicos, y para modelar comportamientos
especficos para acero, hormig
on, suelo, y otros materiales o fenomenos
especiales.
http://opensees.berkeley.edu/wiki/index.php/UniaxialMaterial_Command
http://opensees.berkeley.edu/wiki/index.php/NDMaterial_Command

Elementos:
Mas de 70 elementos (zerolength, barra, viga-columna, solidos, de
contacto, y miscelaneos).
http://opensees.berkeley.edu/wiki/index.php/Element_Command

Esenciales

Para resolver un problema hay dos partes:


1. Modelo: Definici
on de Nodos, Materiales, Elementos, Condiciones de
borde, Restricciones, y tal vez Cargas y recorders. Por ejemplo, para una
viga simplemente apoyada:
model b a s i c ndm 2 ndf 3
node 1 0 0
node 2 $LBeam 0
fix 1 1 1 0
fix 2 0 1 0
g e o m T r a n s f L i n e a r $BeamTransfTag
e l e m e n t e l a s t i c B e a m C o l u m n 1 1 2 $A $E $ I z $BeamTransfTag
pattern Plain 1 1 {
e l e L o a d ele 1 type beamUniform $w1
}

Esenciales
2. An
alisis: metodos de soluci
on, test de convergencia, integrador, etc.
constraints: c
omo el programa manipula las restricciones
impuestas: Plain, Lagrange, Penalty, Transformation.
system: c
omo el programa almacena y resuelve el sistema de
ecuaciones: BandGeneral, BandSPD, ProfileSPD, SuperLU,
UmfPack, FullGeneral, SparseSYM, Mumps, Cusp.

Esenciales

numberer: c
omo el programa enumera los elementos y grados de
libertad: Plain, Reverse Cuthill-McKee, Alternative
Minimum Degree
test: prueba de convergencia para dejar de iterar: Norm
Unbalance, Norm Displacement Increment, Energy
Increment, Relative Norm Unbalance, Relative Norm
Displacement Increment, Fixed Number of Iterations, etc.
algorithm: algoritmo para solucionar las ecuaciones: Linear,
Newton, ModifiedNewton, KrylovNewton, BFGS, Broyden,
etc.
integrator: determina el paso de tiempo, especifica la matriz
tangente y el vector residual, determina el incremento de
desplazamiento, etc. Load Control, Displacement Control,
Arc-Length, Newmark, Hilbert-Hughes-Taylor, etc.

Esenciales

analysis: Tipo de analisis. Static, Transtient o


VariableTransient.
analyze: Iniciar el analisis.
Ejemplo:
i n t e g r a t o r LoadControl 0 .1
t e s t E n e r g y I n c r 1 .0e15 1000 0
a l g o r i t h m Newton
numberer P l a i n
constraints Plain
system SparseGeneral
analysis Static
a n a l y z e 2000

Ejemplo de clases
Ejemplo de barra rgida con resorte torsional sujeta a carga axial P

Soluci
on analtica:
=

2

1
K 0 PL cos 0 cos
2


d
K ( 0 )
= K 0 PL sin = 0 = P =
d
L sin

Ejemplo de clases
Soluci
on con OpenSees:
model B a s i c B u i l d e r ndm 2 ndf 3
# Constantes
s e t L 1 ; # l a r g o de l a b a r r a
set K 1; # k del resorte rotacional
s e t INF 1 0 0 0 0 ; # muy g r a n d e
s e t p i 3 .1415926535897931 ;
s e t Theta0grados 0 .001 ;
s e t Theta0 [ e x p r $ T h e t a 0 g r a d o s $ p i / 1 8 0 ] ; # r a d
s e t P 0.1
# Nodos
node 1 0 0
node 2 0 0
node 3 [ e x p r $L s i n ( $Theta0 ) ] [ e x p r $L c o s ( $Theta0 ) ]
# CDB
fix 1 1 1 1
# Restricciones
equalDOF 1 2 1 2
# Materiales
uniaxialMaterial
uniaxialMaterial

E l a s t i c 1 $K ; # r e s o r t e
E l a s t i c 2 $INF ; # b a r r a r g i d a

Ejemplo de clases

# Transformacion c o r o t a c i o n a l
geomTransf C o r o t a t i o n a l 1
# Elementos
e l e m e n t z e r o L e n g t h 1 1 2 mat 1 dir 6
e l e m e n t e l a s t i c B e a m C o l u m n 2 2 3 $INF $INF $INF 1
# Carga P v e r t i c a l
pattern Plain 1 Linear {
l o a d 3 0 . 0 $P 0 . 0
}
# Recorders
r e c o r d e r Node f i l e Z e r o L e n g t h 2 t h e t a . o u t time node 2 dof 1 2 3 d i s p
r e c o r d e r Node f i l e Z e r o L e n g t h 2 r e a c . o u t time node 2 dof 1 2 3 r e a c t i o n
# An
alisis
i n t e g r a t o r LoadControl 0 .1
t e s t E n e r g y I n c r 1 .0e15 1000 0
a l g o r i t h m Newton
numberer P l a i n
constraints Plain
system SparseGeneral
analysis Static
a n a l y z e 2000

Ejemplo de clases

(Igual a

( 0 )
)
sin

Ejemplo de como modelar


Ejemplo de marco rgido de hormig
on sujeto a analisis gravitacional.
Basado en
http://opensees.berkeley.edu/wiki/index.php/OpenSees_
Example_4._Portal_Frame

Ejemplo de como modelar

Definir unidades (Opcional)


set
set
set
set
set
set
set
set
set
set
set
set
set
set
set
set
set
set
set

in 1 . ;
# Unidad b
a s i c a ( pulgada )
kip 1 . ;
# Unidad b
a sica ( kip )
sec 1 . ;
# Unidad b
a s i c a ( segundo )
LunitTXT i n c h ;
# texto para output
FunitTXT k i p ;
# texto para output
TunitTXT s e c ;
# texto para output
f t [ e x p r 12 . $ i n ] ;
# Definir pies
k s i [ e x p r $ k i p /pow ( $ i n , 2 ) ] ; # D e f i n i r k s i
p s i [ e x p r $ k s i /1000 . ] ; # D e f i n i r p s i
l b f [ expr $psi $in$in ] ; # D e f i n i r l b f
p c f [ e x p r $ l b f /pow ( $ f t , 3 ) ] ; # D e f i n i r p c f
p s f [ e x p r $ l b f /pow ( $ f t , 3 ) ] ; # D e f i n i r p s f
in2 [ expr $in$in ] ;
# D e f i n i r i n c h 2
i n 4 [ e x p r $ i n $ i n $ i n $ i n ] ; # D e f i n i r i n c h 4
cm [ e x p r $ i n /2 . 5 4 ] ;
# D e f i n i r cm
PI [ e x p r 2 a s i n ( 1 . 0 ) ] ; # D e f i n i r p i
g [ e x p r 32 . 2 $ f t /pow ( $ s e c , 2 ) ] ; # D e f i n i r g
Ubig 1 . e 1 0 ;
# D e f i n i r n
u mero g r a n d e
U s m a l l [ e x p r 1/ $Ubig ] ; # D e f i n i r n
u mero c h i c o

Ejemplo de como modelar

Definir las constantes del problema:


s e t L C o l [ e x p r 36 $ f t ] ; # column l e n g t h
s e t LBeam [ e x p r 42 $ f t ] ; # beam l e n g t h
s e t Weight [ e x p r 4000 . $ k i p ] ;
# s u p e r s t r u c t u r e weight
# d e f i n e s e c t i o n geometry
s e t HCol [ e x p r 5 . $ f t ] ; # Column Depth
s e t BCol [ e x p r 4 . $ f t ] ; # Column Width
s e t HBeam [ e x p r 8 . $ f t ] ; # Beam Depth
s e t BBeam [ e x p r 5 . $ f t ] ; # Beam Width
# c a l c u l a t e d parameters
s e t PCol [ e x p r $Weight / 2 ] ; # n o d a l deadload w e i g h t p e r column
s e t Mass [ e x p r $PCol / $g ] ; # n o d a l mass
s e t MCol [ e x p r 1 . /12 . ( $Weight /$LBeam ) pow ( $LBeam,2 ) ] ; # beamend moment
due t o d i s t r i b u t e d l o a d .
# c a l c u l a t e d geometry parameters
s e t ACol [ e x p r $BCol$HCol ] ; # c r o s s s e c t i o n a l a r e a
s e t ABeam [ e x p r $BBeam$HBeam ] ;
s e t I z C o l [ e x p r 1 . /12 . $BColpow ( $ H C o l , 3 ) ] ; # Column moment o f i n e r t i a
s e t IzBeam [ e x p r 1 . /12 . $BBeampow ( $HBeam,3 ) ] ; # Beam moment o f i n e r t i a

Ejemplo de como modelar

Definir el Model Builder


model B a s i c B u i l d e r ndm $ndm <ndf $ndf>

Para el ejemplo el modelo es 2D con 3 grados de libertad:


model b a s i c ndm 2 ndf 3

Definir nodos (y masas nodales si correspondiera).


node $nodeTag ( ndm $ c o o r d s ) <mass ( n d f $ M a s s V a l u e s )>

Para el ejemplo hay 4 nodos:


node
node
node
node

1
2
3
4

0 0
$LBeam 0
0 $LCol mass $Mass 0 . 0 .
$LBeam $LCol mass $Mass 0 . 0 .

Ejemplo de como modelar

Aplicar las condiciones de borde


f i x $nodeTag ( n d f $ C o n s t r V a l u e s )

Para el ejemplo:
fix 1 1 1 1
fix 2 1 1 1

Ejemplo de como modelar


Definir materiales y secci
on
s e t C o l M a t T a gF l e x 2 ; # a s s i g n a
behavior
s e t ColMatTagAxial 3 ; # a s s i g n a
s e t ColSecTag 1 ; # a s s i g n a t a g
s e t BeamSecTag 2 ; # a s s i g n a t a g

t a g number t o t h e column f l e x u r a l
t a g number t o t h e column a x i a l b e h a v i o r
number t o t h e column s e c t i o n t a g
number t o t h e beam s e c t i o n t a g

s e t f c [ e x p r 4 $ k s i ] ; # CONCRETE C o m p r e s s i v e S t r e n g t h (+ T e n s i o n ,
Compression )
s e t Ec [ e x p r 57 $ k s i s q r t ( $fc/ $ p s i ) ] ; # C o n c r e t e E l a s t i c Modulus
# COLUMN s e c t i o n c a l c u l a t e d s t i f f n e s s p a r a m e t e r s
s e t E I C o l [ e x p r $Ec $ I z C o l ] ; # E I , f o r momentcurvature r e l a t i o n s h i p
s e t EACol [ e x p r $Ec$ACol ] ; # EA, f o r a x i a l f o r c e s t r a i n r e l a t i o n s h i p
s e t MyCol [ e x p r 130000 $ k i p $ i n ] ; # y i e l d moment
s e t P h i Y C o l [ e x p r 0 .65e4 / $ i n ] ;
# yield curvature
s e t E I C o l C r a c k [ e x p r $MyCol / $PhiYCol ] ; # c r a c k e d s e c t i o n i n e r t i a
s e t b 0 . 0 1 ; # s t r a i n h a r d e n i n g r a t i o ( r a t i o between p o s t y i e l d tangent
and i n i t i a l e l a s t i c t a n g e n t )
u n i a x i a l M a t e r i a l S t e e l 0 1 $ColMatTagFlex $MyCol $ E I C o l C r a c k $b ; # b i l i n e a r
behavior for flexure
u n i a x i a l M a t e r i a l E l a s t i c $ C o l M a t T a g A x i a l $EACol ; # t h i s i s n o t u s e d a s a
m a t e r i a l , t h i s i s an a x i a l f o r c e s t r a i n r e s p o n s e
s e c t i o n A g g r e g a t o r $ColSecTag $ C o l M a t T a g A x i a l P $ColMatTagFlex Mz ; #
combine a x i a l and f l e x u r a l b e h a v i o r i n t o one s e c t i o n
# BEAM s e c t i o n :
s e c t i o n E l a s t i c $BeamSecTag
$Ec $ABeam $IzBeam ; # e l a s t i c beam s e c t i o n

Ejemplo de como modelar

Figura: Modelo constitutivo

Ejemplo de como modelar

Transformaciones (lineales)
# define geometric transformation: performs a l i n e a r geometric
t r a n s f o r m a t i o n o f beam s t i f f n e s s and r e s i s t i n g f o r c e from t h e b a s i c
system to the globalcoordinate system
s e t ColTransfTag 1;
# a s s o c i a t e a t a g t o column t r a n s f o r m a t i o n
s e t BeamTransfTag 2 ;
# a s s o c i a t e a t a g t o beam t r a n s f o r m a t i o n ( good
p r a c t i c e t o k e e p c o l and beam s e p a r a t e )
s e t ColTransfType Linear ;
# o p t i o n s , L i n e a r PDelta C o r o t a t i o n a l
geomTransf $ColTransfType $ColTransfTag ;
# o n l y c o l u m n s can h a v e P D e l t a
effects ( gravity effects )
g e o m T r a n s f L i n e a r $BeamTransfTag
;

Elementos
# element c o n n e c t i v i t y :
s e t numIntgrPts 5;
forcebased element
element nonlinearBeamColumn 1
# s e l f e x p l a n a t o r y when
element nonlinearBeamColumn 2
element nonlinearBeamColumn 3

# number o f i n t e g r a t i o n p o i n t s f o r
1 3 $ n u m I n t g r P t s $ColSecTag $ C o l T r a n s f T a g ;
using variables
2 4 $ n u m I n t g r P t s $ColSecTag $ C o l T r a n s f T a g ;
3 4 $ n u m I n t g r P t s $BeamSecTag $BeamTransfTag ;

Ejemplo de como modelar


Recorders
# D e f i n e RECORDERS
r e c o r d e r Node f i l e D F r e e . o u t time node 3 4 dof 1 2 3 d i s p ; #
d i s p l a c e m e n t s of f r e e nodes
r e c o r d e r Node f i l e D B a s e . o u t time node 1 2 dof 1 2 3 d i s p ; #
d i s p l a c e m e n t s of support nodes
r e c o r d e r Node f i l e R B a s e . o u t time node 1 2 dof 1 2 3 r e a c t i o n ; #
support reaction
r e c o r d e r D r i f t f i l e D r i f t . o u t time iNode 1 2 jNode 3 4 dof 1
perpDirn 2 ; # l a t e r a l d r i f t
r e c o r d e r E l e m e n t f i l e F C o l . o u t time ele 1 2 g l o b a l F o r c e ; # e l e m e n t
f o r c e s column
r e c o r d e r E l e m e n t f i l e FBeam.out time ele 3 g l o b a l F o r c e ; # e l e m e n t
f o r c e s beam
r e c o r d e r E l e m e n t f i l e F o r c e C o l S e c 1 . o u t time ele 1 2 s e c t i o n 1 f o r c e ; #
Column s e c t i o n f o r c e s , a x i a l and moment, node i
r e c o r d e r E l e m e n t f i l e D e f o C o l S e c 1 . o u t time ele 1 2 s e c t i o n 1
d e f o r m a t i o n ; # s e c t i o n d e f o r m a t i o n s , a x i a l and c u r v a t u r e , node i
r e c o r d e r E l e m e n t f i l e F o r c e C o l S e c $ n u m I n t g r P t s . o u t time ele 1 2 s e c t i o n
$ n u m I n t g r P t s f o r c e ; # s e c t i o n f o r c e s , a x i a l and moment, node j
r e c o r d e r E l e m e n t f i l e D e f o C o l S e c $ n u m I n t g r P t s . o u t time ele 1 2 s e c t i o n
$numIntgrPts deformation ;
# s e c t i o n d e f o r m a t i o n s , a x i a l and
c u r v a t u r e , node j
r e c o r d e r E l e m e n t f i l e F o r c e B e a m S e c 1 . o u t time ele 3 s e c t i o n 1 f o r c e ; #
Beam s e c t i o n f o r c e s , a x i a l and moment, node i

Ejemplo de como modelar

Recorders (continuaci
on)
r e c o r d e r E l e m e n t f i l e D e f o B e a m S e c 1 . o u t time ele 3 s e c t i o n 1 d e f o r m a t i o n
; # s e c t i o n d e f o r m a t i o n s , a x i a l and c u r v a t u r e , node i
r e c o r d e r E l e m e n t f i l e F o r c e B e a m S e c $ n u m I n t g r P t s . o u t time ele 3 s e c t i o n
$ n u m I n t g r P t s f o r c e ; # s e c t i o n f o r c e s , a x i a l and moment, node j
r e c o r d e r E l e m e n t f i l e D e f o B e a m S e c $ n u m I n t g r P t s . o u t time ele 3 s e c t i o n
$ n u m I n t g r P t s d e f o r m a t i o n ; # s e c t i o n d e f o r m a t i o n s , a x i a l and
c u r v a t u r e , node j

Ejemplo de como modelar


Analisis (gravedad):
# d e f i n e GRAVITY
s e t WzBeam [ e x p r $Weight /$LBeam ] ;
pattern Plain 1 Linear {
e l e L o a d ele 3 type beamUniform $WzBeam ; # d i s t r i b u t e d
s u p e r s t r u c t u r e w e i g h t on beam
}
# G r a v i t y a n a l y s i s p a r a m e t e r s l o a d c o n t r o l l e d s t a t i c a n a l y s i s
s e t T ol 1 .0e8 ;
# convergence tolerance for t e s t
constraints Plain ;
# how i t h a n d l e s b o u n d a r y c o n d i t i o n s
numberer P l a i n ;
# r e n u m b e r d o f s t o m i n i m i z e bandwidth ( o p t i m i z a t i o n )
, i f you want t o
system BandGeneral ;
# how t o s t o r e and s o l v e t h e s y s t e m o f e q u a t i o n s i n
the a n a l y s i s
t e s t N o r m D i s p I n c r $Tol 6 ;
# d e t e r m i n e i f c o n v e r g e n c e has been a c h i e v e d
a t t h e end o f an i t e r a t i o n s t e p
a l g o r i t h m Newton ;
# u s e Newton s s o l u t i o n a l g o r i t h m : u p d a t e s t a n g e n t
s t i f f n e s s at every i t e r a t i o n
set NstepGravity 10;
# a p p l y g r a v i t y i n 10 s t e p s
set DGravity [ expr 1 . / $NstepGravity ] ;
# f i r s t load increment ;
i n t e g r a t o r L o a d C o n t r o l $ D G r a v i t y ; # d e t e r m i n e t h e n e x t t i m e s t e p f o r an
analysis
analysis Static ;
# d e f i n e type of a n a l y s i s s t a t i c or t r a n s i e n t
analyze $NstepGravity ;
# apply gr avity
# m a i n t a i n c o n s t a n t g r a v i t y l o a d s and r e s e t t i m e t o z e r o
l o a d C o n s t time 0 . 0

Ejemplo de como modelar

Con esto se completa el modelo con cargas gravitacionales. Se puede


extender a cargas laterales. Ver
http://opensees.berkeley.edu/wiki/index.php/OpenSees_
Example_4._Portal_Frame

También podría gustarte