Problem using "element nonlinearBeamColumn ..."

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

Moderators: silvia, selimgunay, Moderators

hresquivelo
Posts: 40
Joined: Wed Feb 06, 2008 10:53 am
Location: Universidad del Norte

Problem using "element nonlinearBeamColumn ..."

Post by hresquivelo »

I'm getting some warnings after using the command: element nonlinearBeamColumn ...

Here's the code.


# ANÁLISIS ESTRUCTURAL ESTÁTICO.
#
# 1. ESTRUCTURA: Pórtico de un piso con un sólo vano.
# 2. SISTEMA DE CARGAS:
# 2.1. Cargas constantes:
# - Peso propio.
# 2.2. Cargas linealmente variables y dependientes:
# - Carga puntual máxima de 50.0 kN aplicada en el centro del vano (de 0.0 a 50.0 kN).
# - Carga puntual máxima de 100.0 kN aplicada en el nodo 3 (de 0.0 a 100.0 kN).
# 3. DATOS GEOMÉTRICOS:
# 3.1. Dimensiones de las secciones:
# - Sección AA (columnas 1 y 2): 0.30 x 0.40 m.
# - Sección BB (viga 3): 0.30 x 0.50 m.
# 3.2. Longitud de las columnas: 3.5 m.
# 3.3. Longitud de la viga: 10.0 m.
# 3.4. Material: concreto de peso normal de 21 MPa.
#
# Nota 1: El material tiene un comportamiento elástico lineal (infinito).
# Nota 2: El modelo no toma en cuenta deformaciones por cortante; sólo deformaciones por
# momento flector y por fuerzas axiales.
# Razón Nota 2: Porque se trabajan con elementos prismáticos largos.


# UNIDADES DE TRABAJO: [Fuerza, Longitud, Tiempo] = [kN, m, s].


# 0. INICIO.
wipe; # Limpia la memoria de variables anteriormente definidas.
set filedir "opensees/DatosPOrtico2"; # Directorio en donde se guardarán los archivos grabadores del modelo.
file mkdir $filedir; # Creación del directorio.
model BasicBuilder -ndm 2 -ndf 3; # Parámetros iniciales del modelo: Modelo en 2D y con 3 grados de libertad (cada nodo).


# 1. DEFINICIÓN DE LA GEOMETRÍA DEL MODELO.
# 1.1. Definiciones varias:
set g 9.81; # Aceleración de la gravedad.
set gamma 24.; # Peso específico del concreto.
set fc 21.; # Resistencia del concreto (MPa).
set Ec [expr 3900.*sqrt($fc)*1000.]; # Módulo de elasticidad del concreto. Función aproximada tomada de la NSR-98.
set LCol 3.5; # Longitud de las columnas.
set LVig 10.0; # Longitud de la viga.
set b 0.30; # Ancho de sección tanto para las columnas como para la viga.
set hCol 0.40; # Altura de sección para las columnas.
set hVig 0.50; # Altura de sección para la viga.
set ACol [expr $b*$hCol]; # Área de sección para las columnas.
set AVig [expr $b*$hVig]; # Área de sección para la viga.
set IzCol [expr 1./12.*$b*pow($hCol,3.)]; # Momento de inercia para las secciones de las columnas, eje z local.
set IzVig [expr 1./12.*$b*pow($hVig,3.)]; # Momento de inercia para la sección de la viga, eje z local.
set wpesoVig [expr $gamma*$AVig]; # Peso distribuido a lo largo de la viga.
set wpesoCol [expr $gamma*$ACol]; # Peso distribuido a lo largo de las columnas.
set pesoCol [expr $gamma*$ACol*$LCol]; # Peso de cada columna.
set P 50.; # Carga puntual aplicada en el centro del vano.
set Q 100.; # Carga puntual aplicada en el nodo 3.

# 1.2. Coordenadas globales de los nodos:
node 1 0. 0.;
node 2 $LVig 0.;
node 3 0. $LCol;
node 4 $LVig $LCol;

# 1.3. Restricciones nodales:
fix 1 1 1 1; # Empotramiento perfecto en nodo 1.
fix 2 1 1 1; # Empotramiento perfecto en nodo 2.

# 1.4. Transformación geométrica:
# Transformación geométrica lineal. Se asume que los desplazamientos finales de los nodos de la estructura son pequeños.
set TransfTag 1;
geomTransf Linear $TransfTag;

# 1.5. Conectividad de los elementos prismáticos (viga y columnas):
element elasticBeamColumn 1 1 3 $ACol $Ec $IzCol $TransfTag; # Elemento columna 1 (nodos 1-3).
element elasticBeamColumn 2 2 4 $ACol $Ec $IzCol $TransfTag; # Elemento columna 2 (nodos 2-4).

set secVigTag 2;
section Elastic $secVigTag $Ec $AVig $IzVig;

# HERE'S THE PROBLEM:
element nonlinearBeamColumn 3 3 4 10 $secVigTag $TransfTag; # Elemento viga 3 (nodos 3-4).
# If I use this instead of the previous, I get some warnings. Why?
# element nonlinearBeamColumn 3 3 4 11 $secVigTag $TransfTag;
# In general, if you put more than 10, OpenSees will generate the same warnings. Why?
# What is causing those warnings? Thanks in advance. I hope an answer.

# Note: This code was compiled using OpenSees 2.0.0 under Mac OS X 10.5.4 (Leopard).


# 2. DEFINICIÓN DE LOS GRABADORES.
recorder Node -file $filedir/DespNodo3.out -time -node 3 -dof 1 2 3 disp;
recorder Node -file $filedir/DespNodo4.out -time -node 4 -dof 1 2 3 disp;
recorder Node -file $filedir/ReacNodo1.out -time -node 1 -dof 1 2 3 reaction;
recorder Node -file $filedir/ReacNodo2.out -time -node 2 -dof 1 2 3 reaction;
recorder Element -file $filedir/FuerElem1.out -time -ele 1 globalForce;
recorder Element -file $filedir/FuerElem2.out -time -ele 2 globalForce;
recorder Element -file $filedir/FuerElem3.out -time -ele 3 globalForce;


# 3. CARGA DEL MODELO.
# 3.1. Cargas gravitacionales:
pattern Plain 1 Constant {
eleLoad -ele 3 -type -beamUniform -$wpesoVig; # Colocación del peso distribuido wpesoVig en el vano.
eleLoad -ele 1 -type -beamUniform 0. -$wpesoCol; # Colocación del peso distribuido wpesoCol en la columna 1.
eleLoad -ele 2 -type -beamUniform 0. -$wpesoCol; # Colocación del peso distribuido wpesoCol en la columna 2.
}

# 3.2. Cargas linealmente variables y dependientes:
pattern Plain 2 Linear {
eleLoad -ele 3 -type -beamPoint -$P 0.5; # Colocación de la carga puntual P en el centro del vano.
load 3 $Q 0. 0.; # Colocación de la carga puntual Q en el nodo 3.
}


# 4. PROCEDIMIENTO DE ANÁLISIS.
set Tol 1.0e-8;
constraints Plain;
numberer Plain;
system BandGeneral;
test NormDispIncr $Tol 10;
algorithm Newton;
set Nstep 10;
set step [expr 1./$Nstep];
integrator LoadControl $step;
analysis Static;
analyze $Nstep;


# 5. FIN.
puts "El modelo está construido y listo para usarse!";
Last edited by hresquivelo on Wed Jul 02, 2008 2:19 pm, edited 1 time in total.
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

you shouldn't have sooo many integration points in the nonlinear b-c element. you get serious numerical instabilities. More than 10 is a problem.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
hresquivelo
Posts: 40
Joined: Wed Feb 06, 2008 10:53 am
Location: Universidad del Norte

Post by hresquivelo »

Thanks Silvia!

So, I cannot use more than 10 integration points along an element. This could be a problem if we're analyzing slender columns with nonlinear behavior, because the precision loses. Any advice whether I work with nonlinear slender elements?

I think the number of integration points should be increase for the next major release.

Thanks in advance, Silvia.
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

please read up on the force-based nonlinear bc element, as accuracy is not lost for these cases. if you really want to, go to the displacement-based element.
More integration points lead to a loss in accuracy.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
hresquivelo
Posts: 40
Joined: Wed Feb 06, 2008 10:53 am
Location: Universidad del Norte

Post by hresquivelo »

Silvia, I did the exercise... I get more accuracy if I increase the numbers of integration points. Working with 10, you get better results than with 2 or 5 (...etc).

So, for these cases, you'll have loss of accuracy if you don't increase the number of integration points.

The code is below.

Many thanks.

Code: Select all

# ANÁLISIS ESTRUCTURAL ESTÁTICO.
# Corrido exitosamente en OpenSees 2.0.0 bajo Mac OS X 10.5.4 (Leopard).
#
# 1. ESTRUCTURA: Pórtico de un piso con un sólo vano.
# 2. SISTEMA DE CARGAS:
#    2.1. Cargas constantes:
#         - Peso propio.
#    2.2. Cargas linealmente variables y dependientes:
#         - Carga puntual máxima de 50.0 kN aplicada en el centro del vano
#           (de 0.0 a 50.0 kN).
#         - Carga puntual máxima de 100.0 kN aplicada en el nodo 3
#           (de 0.0 a 100.0 kN).
# 3. DATOS GEOMÉTRICOS:
#    3.1. Dimensiones de las secciones:
#         - Sección AA (columnas 1 y 2): 0.30 x 0.40 m.
#         - Sección BB (viga 3): 0.30 x 0.50 m.
#    3.2. Longitud de las columnas: 3.5 m.
#    3.3. Longitud de la viga: 10.0 m.
#    3.4. Material: concreto de peso normal de 21 MPa.
#
# Nota 1: El material tiene un comportamiento elástico lineal (infinito).
# Nota 2: El modelo no toma en cuenta deformaciones por cortante; sólo 
#         deformaciones por momento flector y por fuerzas axiales.
# Razón Nota 2: Porque se trabajan con elementos prismáticos largos.


# MODELO GRÁFICO.
#                                     |
#                                     | 50.0 kN
#                                     !
# 100.0 kN --> [3]---------------------------------------[4]       ---/--
#               |                    [3]                  |           |
#               |                                         |           |
#               |                                         |           |
#               | [1]                                     | [2]      3.5 m
#               |                                         |           |
#               |                                         |           |
#               |                                         |           |
#              [1]                                       [2]          |
#              ---                                       ---       ---/--
#             ////                                      ////
#               |                                         |
#               |------------------10.0 m-----------------|


# UNIDADES DE TRABAJO: [Fuerza, Longitud, Tiempo] = [kN, m, s]. 


# 0. INICIO. 
# Use 1 for working with nonlinear elements, else use another number, say 0,
# for working with linear elements.
set usingNonlinearElements 1;

wipe;

if { $usingNonlinearElements == 1 } {
  set filedir "opensees/Data NonlinearE"
  } else {
    set filedir "opensees/Data" }

file mkdir $filedir;
model BasicBuilder -ndm 2 -ndf 3;


# 1. DEFINICIÓN DE LA GEOMETRÍA DEL MODELO. 
# 1.1. Definiciones varias: 
set g 9.81; 
set gamma 24.;
set fc 21.;
set Ec [expr 3900.*sqrt($fc)*1000.];
set LCol 3.5;
set LVig 10.0;
set b 0.30; 
set hCol 0.40; 
set hVig 0.50;
set ACol [expr $b*$hCol];
set AVig [expr $b*$hVig]; 
set IzCol [expr 1./12.*$b*pow($hCol,3.)];
set IzVig [expr 1./12.*$b*pow($hVig,3.)];
set wpesoVig [expr $gamma*$AVig]; 
set wpesoCol [expr $gamma*$ACol];
set pesoCol [expr $gamma*$ACol*$LCol];
set P 50.;
set Q 100.;

# 1.2. Coordenadas globales de los nodos: 
node 1 0. 0.; 
node 2 $LVig 0.; 
node 3 0. $LCol; 
node 4 $LVig $LCol; 

# 1.3. Restricciones nodales: 
fix 1 1 1 1;
fix 2 1 1 1;

# 1.4. Transformación geométrica: 
# Transformación geométrica lineal.
# Se asume que los desplazamientos finales de los nodos de la estructura
# son pequeños. 
set TransfTag 1; 
geomTransf Linear $TransfTag; 

# 1.5. Conectividad de los elementos prismáticos (viga y columnas): 
element elasticBeamColumn 1 1 3 $ACol $Ec $IzCol $TransfTag;
element elasticBeamColumn 2 2 4 $ACol $Ec $IzCol $TransfTag;

if { $usingNonlinearElements == 1 } {
  set secVigTag 1;
  set numIntPoints 10;
  section Elastic $secVigTag $Ec $AVig $IzVig; 
  element nonlinearBeamColumn 3 3 4 $numIntPoints $secVigTag $TransfTag; 
  } else {
    element elasticBeamColumn 3 3 4 $AVig $Ec $IzVig $TransfTag; }


# 2. DEFINICIÓN DE LOS GRABADORES. 
recorder Node -file $filedir/DespNodo3.out -time -node 3 -dof 1 2 3 disp; 
recorder Node -file $filedir/DespNodo4.out -time -node 4 -dof 1 2 3 disp; 
recorder Node -file $filedir/ReacNodo1.out -time -node 1 -dof 1 2 3 reaction; 
recorder Node -file $filedir/ReacNodo2.out -time -node 2 -dof 1 2 3 reaction; 
recorder Element -file $filedir/FuerElem1.out -time -ele 1 globalForce; 
recorder Element -file $filedir/FuerElem2.out -time -ele 2 globalForce; 
recorder Element -file $filedir/FuerElem3.out -time -ele 3 globalForce; 


# 3. CARGA DEL MODELO. 
# 3.1. Cargas gravitacionales: 
pattern Plain 1 Constant { 
eleLoad -ele 3 -type -beamUniform -$wpesoVig; 
eleLoad -ele 1 -type -beamUniform 0. -$wpesoCol; 
eleLoad -ele 2 -type -beamUniform 0. -$wpesoCol; 
} 

# 3.2. Cargas linealmente variables y dependientes: 
pattern Plain 2 Linear { 
eleLoad -ele 3 -type -beamPoint -$P 0.5; 
load 3 $Q 0. 0.;
} 


# 4. PROCEDIMIENTO DE ANÁLISIS. 
set Tol 1.0e-8; 
constraints Plain; 
numberer Plain; 
system BandGeneral; 
test NormDispIncr $Tol 10; 
algorithm Newton; 
set Nstep 10; 
set step [expr 1./$Nstep]; 
integrator LoadControl $step; 
analysis Static; 
analyze $Nstep; 


# 5. FIN. 
puts "El modelo está construido y listo para usarse!";
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

read the literature on this type of element and see what they say.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
hresquivelo
Posts: 40
Joined: Wed Feb 06, 2008 10:53 am
Location: Universidad del Norte

Post by hresquivelo »

I will.

I'm fully agree with you about the no loss of accuracy if I use less than 10 points of integration, even using 2, because we're dealing with linear elastic elements through the use of element nonlinearBeamColumn....

I've checked my code several times and nothing in it is wrong. I don't have explanation about this but as you know, in these cases, working with 2 integration points should work perfectly. But this is not the case. Very strange.

Thanks.
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

you should check your model.
typically, 5 integration points is a good number for nonlinear elements.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
pejman_opensees
Posts: 123
Joined: Tue Oct 31, 2006 10:40 am
Location: k.n.toosi University

Post by pejman_opensees »

Silvia is right.
Using five integration point is quite adequate. The loss of accuracy in your model stems from somewhere else and increasing the number of integration point may have randomly helped the accuracy of your problem. I did not study your model thoroughly but apparanely the way you treated geometric nonlinearities in your model seems to be problematic. Knowing the fact that you hace gravity load in your model and you are pushing the structure, linear transformation is used. Moreover, your columns are slender so you are gonna have to use more accurate transformation model such as Corotational transformation.
I hope this will help.
Pejman
hresquivelo
Posts: 40
Joined: Wed Feb 06, 2008 10:53 am
Location: Universidad del Norte

Post by hresquivelo »

Hi Pejman. Same result! Even changing the geometric transformation to Corotational, the recorded values, for example, for node 3, still differing; compare the obtained values after using both 1 and 0 next to usingNonlinearElements, and you'll see.

As I said before, I don't have a logical explanation for this.

Thanks for your answer!
pejman_opensees
Posts: 123
Joined: Tue Oct 31, 2006 10:40 am
Location: k.n.toosi University

Post by pejman_opensees »

I will tell u what. First of all plz translate your comments in your script from Spanish to English. Then plz build up your model without parameter definition (Even though its not wise to do so!). In this case your model could be reviewd more rapidly. Then one may check the effect of no. of integration points more easily.
Pejman
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

don't do either, yet, let me look at it in detail -- i know spanish.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

sorry for not having looked at this in detail before.
you are applying a load in the middle of the beam -- of course the numer of integration points affects the results, even if elastic.

try 1. removing that load and check your results
2. place a node where you apply that load, and then check results...
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
hresquivelo
Posts: 40
Joined: Wed Feb 06, 2008 10:53 am
Location: Universidad del Norte

Post by hresquivelo »

Silvia, that's the answer. Now the model works perfectly under 3 integration points. Although using 2 should work too, those values still differing slightly.

Thanks a lot.

P.D.: Me alegra que sepas español. Muchas gracias de antemano.
hresquivelo
Posts: 40
Joined: Wed Feb 06, 2008 10:53 am
Location: Universidad del Norte

Post by hresquivelo »

I conclude this thread by saying this:

I finally read the literature. It says that in those cases where we work with linear-elastic, prismatic beam-column element without member loads, a minimun of 3 integration points is required to represent exactly a linear curvature distribution along the element, since the command nonlinearBeamColumn is based on Gauss-Lobatto quadrature rule.
(Lobatto quadrature: http://mathworld.wolfram.com/LobattoQuadrature.html )

My confusion was in the fact that I though the command nonlinearBeamColumn was based on the Gauss-Radau quadrature rule.
(Radau quadrature: http://mathworld.wolfram.com/RadauQuadrature.html )
In this case, you just need a minimun of 2 integration points to provide the exact solution for linear curvature distribution.
Last edited by hresquivelo on Thu Aug 07, 2008 1:56 pm, edited 1 time in total.
Post Reply