recorder problem
Moderators: silvia, selimgunay, Moderators
recorder problem
Hello everybody. I need your help.
I am doing this problem first with elasticBeamColumn elements and then with nonlinearBeamColumn. In the elastic case everything is right, but when I use the nonlinear elements something happens.
First of all, the display recorder does something strange and doesn't show the correct shape, not even near.
Then, the results are not the same as the first case. I don't know if it has to be this way or it is an error due to the solution algorithm or something else of the analysis definition.
I have thought that this inaccuracy could also be because of the simplification I have done when creating the fiber section.
Anyway, I would like to know your opinion and other possible error sources. But mainly the display recorder problem. Thank you.
SCRIPT:
model basic -ndm 2 -ndf 3
# Crear nodos
node 1 0.0 0.0
node 2 0.0 400.0
node 3 300.0 550.0
node 4 600.0 400.0
node 5 600.0 150.0
# empotramiento
fix 1 1 1 1
fix 5 1 1 1
# elementos y material
set E 210e2;
set fy 42.0;
# id fy E0 b
uniaxialMaterial Steel01 1 $fy $E 0.01
# seccion recta de los elementos
set B 6.4; # anchura de la base (IPE-120)
set b [expr $B/2]
set e 0.44; # espesor del alma
set e1 0.63; # espesor de las alas
set halma 10.74; # altura del alma
set hmedalma [expr $halma/2]
section Fiber 1 {
# Crear las fibras de las alas
patch rect 1 4 1 -$b $hmedalma $b [expr $hmedalma+$e1]
patch rect 1 4 1 -$b [expr -$hmedalma-$e1] $b -$hmedalma
# Crear las fibras del alma
patch rect 1 6 1 -$hmedalma [expr $e/2] $hmedalma [expr -$e/2]
}
# elementos del portico
# ----------------------------------------
geomTransf Linear 1
# puntos de integracion
set np 5
# Crear la estructura utilizando elementos BeamColumn no lineares
# id ndI ndJ nsecs secID transfTag
element nonlinearBeamColumn 1 1 2 $np 1 1
element nonlinearBeamColumn 2 2 3 $np 1 1
element nonlinearBeamColumn 3 3 4 $np 1 1
element nonlinearBeamColumn 4 4 5 $np 1 1
# estado plano de cargas
# Algunas variables
set CargaDistr -20.0e-2; # 20 kN/m = 0.2 kN/cm
set alfa [expr atan(1.5/3)]
set DistrPerp [expr $CargaDistr*cos($alfa)]
set DistrAxial [expr $CargaDistr*sin($alfa)]
pattern Plain 1 Linear {
eleLoad -ele 1 -type -beamUniform $CargaDistr 0.0
eleLoad -ele 2 -type -beamUniform $DistrPerp $DistrAxial
}
# generacion del analisis
system BandGeneral
#constraints Plain
#constraints Penalty
constraints Transformation
#numberer Plain
numberer RCM
test NormDispIncr 1.0e-11 10 5
algorithm Newton
integrator LoadControl 1.0
analysis Static
recorder Element -xml ElementosEj82.out -time -ele all globalForce
recorder Node -xml DespNodosEj82.out -time -node 2 3 4 -dof 1 2 3 disp
recorder Node -xml ReacNodosEj82.out -time -node 1 5 -dof 1 2 3 reaction
recorder display Deformada 10 20 400 400 -wipe
vup 0 1 0
vpn 0 0 1
prp 0 0 1
viewWindow -1000 1000 -500 800
display 1 0 1
# Ejecutar el analisis
analyze 1
print ele
I am doing this problem first with elasticBeamColumn elements and then with nonlinearBeamColumn. In the elastic case everything is right, but when I use the nonlinear elements something happens.
First of all, the display recorder does something strange and doesn't show the correct shape, not even near.
Then, the results are not the same as the first case. I don't know if it has to be this way or it is an error due to the solution algorithm or something else of the analysis definition.
I have thought that this inaccuracy could also be because of the simplification I have done when creating the fiber section.
Anyway, I would like to know your opinion and other possible error sources. But mainly the display recorder problem. Thank you.
SCRIPT:
model basic -ndm 2 -ndf 3
# Crear nodos
node 1 0.0 0.0
node 2 0.0 400.0
node 3 300.0 550.0
node 4 600.0 400.0
node 5 600.0 150.0
# empotramiento
fix 1 1 1 1
fix 5 1 1 1
# elementos y material
set E 210e2;
set fy 42.0;
# id fy E0 b
uniaxialMaterial Steel01 1 $fy $E 0.01
# seccion recta de los elementos
set B 6.4; # anchura de la base (IPE-120)
set b [expr $B/2]
set e 0.44; # espesor del alma
set e1 0.63; # espesor de las alas
set halma 10.74; # altura del alma
set hmedalma [expr $halma/2]
section Fiber 1 {
# Crear las fibras de las alas
patch rect 1 4 1 -$b $hmedalma $b [expr $hmedalma+$e1]
patch rect 1 4 1 -$b [expr -$hmedalma-$e1] $b -$hmedalma
# Crear las fibras del alma
patch rect 1 6 1 -$hmedalma [expr $e/2] $hmedalma [expr -$e/2]
}
# elementos del portico
# ----------------------------------------
geomTransf Linear 1
# puntos de integracion
set np 5
# Crear la estructura utilizando elementos BeamColumn no lineares
# id ndI ndJ nsecs secID transfTag
element nonlinearBeamColumn 1 1 2 $np 1 1
element nonlinearBeamColumn 2 2 3 $np 1 1
element nonlinearBeamColumn 3 3 4 $np 1 1
element nonlinearBeamColumn 4 4 5 $np 1 1
# estado plano de cargas
# Algunas variables
set CargaDistr -20.0e-2; # 20 kN/m = 0.2 kN/cm
set alfa [expr atan(1.5/3)]
set DistrPerp [expr $CargaDistr*cos($alfa)]
set DistrAxial [expr $CargaDistr*sin($alfa)]
pattern Plain 1 Linear {
eleLoad -ele 1 -type -beamUniform $CargaDistr 0.0
eleLoad -ele 2 -type -beamUniform $DistrPerp $DistrAxial
}
# generacion del analisis
system BandGeneral
#constraints Plain
#constraints Penalty
constraints Transformation
#numberer Plain
numberer RCM
test NormDispIncr 1.0e-11 10 5
algorithm Newton
integrator LoadControl 1.0
analysis Static
recorder Element -xml ElementosEj82.out -time -ele all globalForce
recorder Node -xml DespNodosEj82.out -time -node 2 3 4 -dof 1 2 3 disp
recorder Node -xml ReacNodosEj82.out -time -node 1 5 -dof 1 2 3 reaction
recorder display Deformada 10 20 400 400 -wipe
vup 0 1 0
vpn 0 0 1
prp 0 0 1
viewWindow -1000 1000 -500 800
display 1 0 1
# Ejecutar el analisis
analyze 1
print ele
Thank you for your answer, but now I have some other problems...
I will do the moment-curvature analysis later but, how would this help with my problem? I've already done the example for this, but I don't understand it that much.
What I have done is the elastic section in a nonlinear beamcolumn element and these are the problems I have found:
In my script I use the recorder element command (globalForce) and the print ele command. The output of these two are different in some elements and I have no idea why this happens. But the good thing is that the print ele command using elastic sections in nonlinear beamcolumns and the print ele command using elasticBeamColumns output the same results.
I attach the output of the print ele command and recorder element for elastic sections in nonlinear beamcolumns:
Element 1:
print ele:
End 1 Forces (P V M): 47.7071 51.3797 5268.04
End 2 Forces (P V M): -47.7071 28.6203 -716.174
recorder element (globalforce):
<ResponseType>Px_1 Py_1 Mz_1: -51.379655 47.707062 5268.036446
<ResponseType>Px_2 Py_2 Mz_2: -28.620345 -47.707062 -716.174358
Element 2:
print ele:
End 1 Forces (P V M): 46.9341 29.8711 716.174
End 2 Forces (P V M): -16.9341 30.1289 -759.413
recorder element(globalforce):
<ResponseType>Px_1 Py_1 Mz_1: 28.620345 47.707062 716.174358
<ResponseType>Px_2 Py_2 Mz_2: -28.620345 19.374977 -759.413298
Element 3:
print ele:
End 1 Forces (P V M): 34.2636 -4.5301 759.413
End 2 Forces (P V M): -34.2636 4.5301 -2278.85
recorder element(globalforce):
<ResponseType>Px_1 Py_1 Mz_1: 28.620345 -19.374977 759.413298
<ResponseType>Px_2 Py_2 Mz_2: -28.620345 19.374977 -2278.854701
Element 4:
print ele:
End 1 Forces (P V M): 19.375 28.6203 2278.85
End 2 Forces (P V M): -19.375 -28.6203 4876.23
recorder element(globalforce):
<ResponseType>Px_1 Py_1 Mz_1: 28.620345 -19.374977 2278.854701
<ResponseType>Px_2 Py_2 Mz_2: -28.620345 19.374977 4876.231494
Could somebody tell me the reason of these differences?
I will do the moment-curvature analysis later but, how would this help with my problem? I've already done the example for this, but I don't understand it that much.
What I have done is the elastic section in a nonlinear beamcolumn element and these are the problems I have found:
In my script I use the recorder element command (globalForce) and the print ele command. The output of these two are different in some elements and I have no idea why this happens. But the good thing is that the print ele command using elastic sections in nonlinear beamcolumns and the print ele command using elasticBeamColumns output the same results.
I attach the output of the print ele command and recorder element for elastic sections in nonlinear beamcolumns:
Element 1:
print ele:
End 1 Forces (P V M): 47.7071 51.3797 5268.04
End 2 Forces (P V M): -47.7071 28.6203 -716.174
recorder element (globalforce):
<ResponseType>Px_1 Py_1 Mz_1: -51.379655 47.707062 5268.036446
<ResponseType>Px_2 Py_2 Mz_2: -28.620345 -47.707062 -716.174358
Element 2:
print ele:
End 1 Forces (P V M): 46.9341 29.8711 716.174
End 2 Forces (P V M): -16.9341 30.1289 -759.413
recorder element(globalforce):
<ResponseType>Px_1 Py_1 Mz_1: 28.620345 47.707062 716.174358
<ResponseType>Px_2 Py_2 Mz_2: -28.620345 19.374977 -759.413298
Element 3:
print ele:
End 1 Forces (P V M): 34.2636 -4.5301 759.413
End 2 Forces (P V M): -34.2636 4.5301 -2278.85
recorder element(globalforce):
<ResponseType>Px_1 Py_1 Mz_1: 28.620345 -19.374977 759.413298
<ResponseType>Px_2 Py_2 Mz_2: -28.620345 19.374977 -2278.854701
Element 4:
print ele:
End 1 Forces (P V M): 19.375 28.6203 2278.85
End 2 Forces (P V M): -19.375 -28.6203 4876.23
recorder element(globalforce):
<ResponseType>Px_1 Py_1 Mz_1: 28.620345 -19.374977 2278.854701
<ResponseType>Px_2 Py_2 Mz_2: -28.620345 19.374977 4876.231494
Could somebody tell me the reason of these differences?
Yep, elements 2 and 3 are at an angle. But why should this change the output? Only because one is in local and the other one in global coordinates? Or because they are in slope? Which one is the "correct", print ele or recorder element?
Now, please, take a look to the recorder output in linear and nonlinear cases. The reactions are a little different and I don't know if this is how it's meant to be. But the displacement...the nonlinear response is completely wrong and the only differences in the script are the sections: elastic for the linear case, and fiber for nonlinear. Why does this happen and how can I solve it?
REACTION:
elastic:
<Data>
1.000000 -51.379655 47.707062 5268.036443 -28.620345 19.374977 4876.231495
nonlinear:
<Data>
1.000000 -51.355791 47.726714 5265.653991 -28.644209 19.355325 4886.825303
DISPLACEMENT:
elastic:
<Data>
1.000000 12.986911 -0.068841 -0.019493 12.311037 1.196506 0.027682 11.657695 -0.017474 -0.048618
nonlinear:
<Data>
1.000000 -22532.194943 -27.231017 33.779550 -21431.941252 -2261.933772 -48.038551 -20322.759770 -6.902125 84.919160
Thank you very much for your help.
Now, please, take a look to the recorder output in linear and nonlinear cases. The reactions are a little different and I don't know if this is how it's meant to be. But the displacement...the nonlinear response is completely wrong and the only differences in the script are the sections: elastic for the linear case, and fiber for nonlinear. Why does this happen and how can I solve it?
REACTION:
elastic:
<Data>
1.000000 -51.379655 47.707062 5268.036443 -28.620345 19.374977 4876.231495
nonlinear:
<Data>
1.000000 -51.355791 47.726714 5265.653991 -28.644209 19.355325 4886.825303
DISPLACEMENT:
elastic:
<Data>
1.000000 12.986911 -0.068841 -0.019493 12.311037 1.196506 0.027682 11.657695 -0.017474 -0.048618
nonlinear:
<Data>
1.000000 -22532.194943 -27.231017 33.779550 -21431.941252 -2261.933772 -48.038551 -20322.759770 -6.902125 84.919160
Thank you very much for your help.
local and global coordinates are different.
the nonlinear response can be different.
to check your model, you should make sure you have defined your fiber section properly -- do a moment-curvature analysis on it.
the nonlinear response can be different.
to check your model, you should make sure you have defined your fiber section properly -- do a moment-curvature analysis on it.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Thank you very much for your help. I finaly got the local and global coordinates. I knew what they where and the difference but I wasn't able to see it correctly in this case.
Anyway, as you suggested I did a moment-curvature analysis of the fiber section after realizing it was not perfectly defined. Now it gives a nice pretty shape but I don't know how this can help. By the way, just let you know the section is only steel.
Now the problem is that using the new fiber section it won't converge and it's driving me crazy... Please, help.
SCRIPT:
model basic -ndm 2 -ndf 3
# Crear nodos
node 1 0.0 0.0
node 2 0.0 400.0
node 3 300.0 550.0
node 4 600.0 400.0
node 5 600.0 150.0
# empotramiento
fix 1 1 1 1
fix 5 1 1 1
# elementos y material
set E 210e2;
set fy 42.0;
# id fy E0 b
uniaxialMaterial Steel01 1 $fy $E 0.01
# seccion recta de los elementos
set B 6.4; # anchura de la base (IPE-120)
set b [expr $B/2]
set e 0.44; # espesor del alma
set e1 0.63; # espesor de las alas
set halma 10.74; # altura del alma
set hmedalma [expr $halma/2]
section Fiber 1 {
# Crear las fibras de las alas
patch rect 1 2 1 $hmedalma -$b [expr $hmedalma+$e1] $b
patch rect 1 2 1 [expr -$hmedalma-$e1] -$b -$hmedalma $b
# Crear las fibras del alma
patch rect 1 6 1 -$hmedalma [expr -$e/2] $hmedalma [expr $e/2]
}
# elementos del portico
# ----------------------------------------
geomTransf Linear 1
# puntos de integracion
set np 5
# Crear la estructura utilizando elementos BeamColumn no lineares
# id ndI ndJ nsecs secID transfTag
element nonlinearBeamColumn 1 1 2 $np 1 1
element nonlinearBeamColumn 2 2 3 $np 1 1
element nonlinearBeamColumn 3 3 4 $np 1 1
element nonlinearBeamColumn 4 4 5 $np 1 1
# estado plano de cargas
# Algunas variables
set CargaDistr -20.0e-2; # 20 kN/m = 0.2 kN/cm
set alfa [expr atan(1.5/3)]
set DistrPerp [expr $CargaDistr*cos($alfa)]
set DistrAxial [expr $CargaDistr*sin($alfa)]
pattern Plain 1 Linear {
eleLoad -ele 1 -type -beamUniform $CargaDistr 0.0
eleLoad -ele 2 -type -beamUniform $DistrPerp $DistrAxial
}
# generacion del analisis
system BandGeneral
#constraints Plain
#constraints Penalty
constraints Transformation
#numberer Plain
numberer RCM
test NormDispIncr 1.0e-11 10 4
algorithm Newton
integrator LoadControl 1.0
analysis Static
recorder Element -xml ElementosEj82.out -time -ele all globalForce
recorder Node -xml DespNodosEj82.out -time -node 2 3 4 -dof 1 2 3 disp
recorder Node -xml ReacNodosEj82.out -time -node 1 5 -dof 1 2 3 reaction
recorder display Deformada 10 20 400 400 -wipe
vup 0 1 0
vpn 0 0 1
prp 0 0 1
viewWindow -1000 1000 -500 800
display 1 0 1
# Ejecutar el analisis
analyze 10
print ele
[b]Just in case you need the moment-curvature analysis I did I'll attach it too:
[/b]
model basic -ndm 2 -ndf 3
# material
# ACERO A-42
set E 210e2; # modulo de Young
set fy 42.0; # limite elastico 42 kN/cm2
# id fy E0 b
uniaxialMaterial Steel01 1 $fy $E 0.01
#seccion recta de los elementos
# Algunos parametros
set B 6.4; # anchura de la base (IPE-120)
set b [expr $B/2]
set e 0.44; # espesor del alma
set e1 0.63; # espesor de las alas
set halma 10.74; # altura del alma
set hmedalma [expr $halma/2]
section Fiber 1 {
# Crear las fibras de las alas
patch rect 1 2 1 $hmedalma -$b [expr $hmedalma+$e1] $b
patch rect 1 2 1 [expr -$hmedalma-$e1] -$b -$hmedalma $b
# Crear las fibras del alma
patch rect 1 6 1 -$hmedalma [expr -$e/2] $hmedalma [expr $e/2]
}
# Estimar la curvatura limite
set d 12; # altura IPE-120
set epsy [expr $fy/$E]
set Ky [expr $epsy/(0.7*$d)]
# Curvatura limite estimada
puts "Curvatura limite estimada: $Ky"
# carga axial
set P -180
set mu 15; #target ductility
set numIncr 100
# section analysis procedure
source MomentCurvature2D.tcl
MomentCurvature2D 1 $P [expr $Ky*$mu] $numIncr
There's something I don't understand about the moment-curvature analysis. Just before estimating the yield curvature I have set 'd' to the section's maximum length. I guess it's wrong but I don't really know what 'd' is.
I'll appreciate any help you can give me. Thank you.
Anyway, as you suggested I did a moment-curvature analysis of the fiber section after realizing it was not perfectly defined. Now it gives a nice pretty shape but I don't know how this can help. By the way, just let you know the section is only steel.
Now the problem is that using the new fiber section it won't converge and it's driving me crazy... Please, help.
SCRIPT:
model basic -ndm 2 -ndf 3
# Crear nodos
node 1 0.0 0.0
node 2 0.0 400.0
node 3 300.0 550.0
node 4 600.0 400.0
node 5 600.0 150.0
# empotramiento
fix 1 1 1 1
fix 5 1 1 1
# elementos y material
set E 210e2;
set fy 42.0;
# id fy E0 b
uniaxialMaterial Steel01 1 $fy $E 0.01
# seccion recta de los elementos
set B 6.4; # anchura de la base (IPE-120)
set b [expr $B/2]
set e 0.44; # espesor del alma
set e1 0.63; # espesor de las alas
set halma 10.74; # altura del alma
set hmedalma [expr $halma/2]
section Fiber 1 {
# Crear las fibras de las alas
patch rect 1 2 1 $hmedalma -$b [expr $hmedalma+$e1] $b
patch rect 1 2 1 [expr -$hmedalma-$e1] -$b -$hmedalma $b
# Crear las fibras del alma
patch rect 1 6 1 -$hmedalma [expr -$e/2] $hmedalma [expr $e/2]
}
# elementos del portico
# ----------------------------------------
geomTransf Linear 1
# puntos de integracion
set np 5
# Crear la estructura utilizando elementos BeamColumn no lineares
# id ndI ndJ nsecs secID transfTag
element nonlinearBeamColumn 1 1 2 $np 1 1
element nonlinearBeamColumn 2 2 3 $np 1 1
element nonlinearBeamColumn 3 3 4 $np 1 1
element nonlinearBeamColumn 4 4 5 $np 1 1
# estado plano de cargas
# Algunas variables
set CargaDistr -20.0e-2; # 20 kN/m = 0.2 kN/cm
set alfa [expr atan(1.5/3)]
set DistrPerp [expr $CargaDistr*cos($alfa)]
set DistrAxial [expr $CargaDistr*sin($alfa)]
pattern Plain 1 Linear {
eleLoad -ele 1 -type -beamUniform $CargaDistr 0.0
eleLoad -ele 2 -type -beamUniform $DistrPerp $DistrAxial
}
# generacion del analisis
system BandGeneral
#constraints Plain
#constraints Penalty
constraints Transformation
#numberer Plain
numberer RCM
test NormDispIncr 1.0e-11 10 4
algorithm Newton
integrator LoadControl 1.0
analysis Static
recorder Element -xml ElementosEj82.out -time -ele all globalForce
recorder Node -xml DespNodosEj82.out -time -node 2 3 4 -dof 1 2 3 disp
recorder Node -xml ReacNodosEj82.out -time -node 1 5 -dof 1 2 3 reaction
recorder display Deformada 10 20 400 400 -wipe
vup 0 1 0
vpn 0 0 1
prp 0 0 1
viewWindow -1000 1000 -500 800
display 1 0 1
# Ejecutar el analisis
analyze 10
print ele
[b]Just in case you need the moment-curvature analysis I did I'll attach it too:
[/b]
model basic -ndm 2 -ndf 3
# material
# ACERO A-42
set E 210e2; # modulo de Young
set fy 42.0; # limite elastico 42 kN/cm2
# id fy E0 b
uniaxialMaterial Steel01 1 $fy $E 0.01
#seccion recta de los elementos
# Algunos parametros
set B 6.4; # anchura de la base (IPE-120)
set b [expr $B/2]
set e 0.44; # espesor del alma
set e1 0.63; # espesor de las alas
set halma 10.74; # altura del alma
set hmedalma [expr $halma/2]
section Fiber 1 {
# Crear las fibras de las alas
patch rect 1 2 1 $hmedalma -$b [expr $hmedalma+$e1] $b
patch rect 1 2 1 [expr -$hmedalma-$e1] -$b -$hmedalma $b
# Crear las fibras del alma
patch rect 1 6 1 -$hmedalma [expr -$e/2] $hmedalma [expr $e/2]
}
# Estimar la curvatura limite
set d 12; # altura IPE-120
set epsy [expr $fy/$E]
set Ky [expr $epsy/(0.7*$d)]
# Curvatura limite estimada
puts "Curvatura limite estimada: $Ky"
# carga axial
set P -180
set mu 15; #target ductility
set numIncr 100
# section analysis procedure
source MomentCurvature2D.tcl
MomentCurvature2D 1 $P [expr $Ky*$mu] $numIncr
There's something I don't understand about the moment-curvature analysis. Just before estimating the yield curvature I have set 'd' to the section's maximum length. I guess it's wrong but I don't really know what 'd' is.
I'll appreciate any help you can give me. Thank you.