Help with Joint Offsets and MP constraints

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

Moderators: silvia, selimgunay, Moderators

Post Reply
Jean Domínguez
Posts: 22
Joined: Fri May 09, 2008 4:19 pm
Location: UCV

Help with Joint Offsets and MP constraints

Post by Jean Domínguez »

I´m trying to model the beam-column joint as rigid solid with joint offsets in beams and columns. The length of each offset is from connectivity and i did created one geometric transformation object per element (to more easy asignements). Also i have created a MP constraints equalDOF to simulate the rigid diaphraghm in 2D.
First, using the rigid offsets i get different results comparing with SAP2000 and the periods seems to be wrong (i´m expecting lower periods).
Second, using the rigid offsets with MP constraint, i get different results comparing with SAP2000 and the periods are too much lower.
[/code]
# unidades Kgf-cm
# SET UP ----------------------------------------------------------------------------
wipe;
model basic -ndm 2 -ndf 3;
file mkdir "3 niveles"

# GEOMETRIA -------------------------------------------------------------
# Coordenadas nodales:
#node 1 0 0
node 2 0 285
node 3 0 570
node 4 0 855
node 5 200 0
node 6 200 285
node 7 200 570
node 8 200 855
node 9 800 0
node 10 800 285
node 11 800 570
node 12 800 855
node 13 1250 0
node 14 1250 285
node 15 1250 570
node 16 1250 855
node 17 1700 0
node 18 1700 285
node 19 1700 570
node 20 1700 855
node 21 2225 0
node 22 2225 285
node 23 2225 570
node 24 2225 855

# Restricciones

fix 5 1 1 1
fix 9 1 1 1
fix 13 1 1 1
fix 17 1 1 1
fix 21 1 1 1

# Constraints

#equalDOF 2 6 1; equalDOF 6 10 1; equalDOF 10 14 1;equalDOF 14 18 1;equalDOF 18 22 1
#equalDOF 3 7 1; equalDOF 7 11 1; equalDOF 11 15 1;equalDOF 15 19 1;equalDOF 19 23 1
#equalDOF 4 8 1; equalDOF 8 12 1; equalDOF 12 16 1;equalDOF 16 20 1;equalDOF 20 24 1


# Masas nodales: N-1 MODOS

mass 6 83.63 1.0 0.0
mass 7 83.63 1.0 0.0
mass 8 58.76 1.0 0.0


# Secciones de columnas y masas por longitud

set gammac 0.0025
# E A Izz

section Elastic 1 238752 900 67500; # C30X30
set m1 [expr 30*30*$gammac/981]
set w1 [expr $m1*981]

section Elastic 2 238752 1500 312500; # C30X50
set m2 [expr 30*50*$gammac/981]
set w2 [expr $m2*981]

section Elastic 6 238752 1500 112500; # C50X30
set m6 [expr 50*30*$gammac/981]
set w6 [expr $m6*981]

# Secciones de vigas y masas por longitud

section Elastic 3 238752 1200 160000; # V30X40
set m3 [expr 30*40*$gammac/981]

section Elastic 4 238752 1650 415937.5; # V30X55
set m4 [expr 30*55*$gammac/981]

section Elastic 5 238752 1500 78125; # VP25X60
set m5 [expr 25*60*$gammac/981]

# Elementos -------------------------------------------------------------

geomTransf Linear 1 -jntOffset 0 0 0 27.5
geomTransf Linear 2 -jntOffset 0 27.5 0 27.5
geomTransf Linear 3 -jntOffset 0 27.5 0 20

geomTransf Linear 4 -jntOffset 0 0 0 20
geomTransf Linear 5 -jntOffset 0 20 0 20
geomTransf Linear 6 -jntOffset 0 20 0 20

geomTransf Linear 7 -jntOffset 0 0 0 20
geomTransf Linear 8 -jntOffset 0 20 0 20
geomTransf Linear 9 -jntOffset 0 20 0 20

geomTransf Linear 10 -jntOffset 0 0 0 20
geomTransf Linear 11 -jntOffset 0 20 0 20
geomTransf Linear 12 -jntOffset 0 20 0 20

geomTransf Linear 13 -jntOffset 0 0 0 12.5
geomTransf Linear 14 -jntOffset 0 12.5 0 12.5
geomTransf Linear 15 -jntOffset 0 12.5 0 12.5

geomTransf Linear 16 -jntOffset 0 0 25 0
geomTransf Linear 17 -jntOffset 25 0 25 0
geomTransf Linear 18 -jntOffset 25 0 15 0
geomTransf Linear 19 -jntOffset 15 0 15 0
geomTransf Linear 20 -jntOffset 15 0 15 0

geomTransf Linear 21 -jntOffset 0 0 25 0
geomTransf Linear 22 -jntOffset 25 0 25 0
geomTransf Linear 23 -jntOffset 25 0 15 0
geomTransf Linear 24 -jntOffset 15 0 15 0
geomTransf Linear 25 -jntOffset 15 0 15 0

geomTransf Linear 26 -jntOffset 0 0 25 0
geomTransf Linear 27 -jntOffset 25 0 25 0
geomTransf Linear 28 -jntOffset 25 0 15 0
geomTransf Linear 29 -jntOffset 15 0 15 0
geomTransf Linear 30 -jntOffset 15 0 15 0
geomTransf Linear 31

# conectividad:

# Columnas ----------------------------------------------------------------

element nonlinearBeamColumn 1 5 6 5 2 1 -mass $m2
element nonlinearBeamColumn 2 6 7 5 2 2 -mass $m2
element nonlinearBeamColumn 3 7 8 5 2 3 -mass $m2

element nonlinearBeamColumn 4 9 10 5 2 4 -mass $m2
element nonlinearBeamColumn 5 10 11 5 2 5 -mass $m2
element nonlinearBeamColumn 6 11 12 5 2 6 -mass $m2

element nonlinearBeamColumn 7 13 14 5 1 7 -mass $m1
element nonlinearBeamColumn 8 14 15 5 1 8 -mass $m1
element nonlinearBeamColumn 9 15 16 5 1 9 -mass $m1

element nonlinearBeamColumn 10 17 18 5 6 10 -mass $m6
element nonlinearBeamColumn 11 18 19 5 6 11 -mass $m6
element nonlinearBeamColumn 12 19 20 5 6 12 -mass $m6

element nonlinearBeamColumn 13 21 22 5 6 13 -mass $m6
element nonlinearBeamColumn 14 22 23 5 6 14 -mass $m6
element nonlinearBeamColumn 15 23 24 5 6 15 -mass $m6


# vigas -------------------------------------------------------------------

element nonlinearBeamColumn 16 2 6 5 4 16 -mass $m4
element nonlinearBeamColumn 17 6 10 5 3 17 -mass $m3
element nonlinearBeamColumn 18 10 14 5 5 18 -mass $m5
element nonlinearBeamColumn 19 14 18 5 3 19 -mass $m3
element nonlinearBeamColumn 20 18 22 5 5 20 -mass $m5

element nonlinearBeamColumn 21 3 7 5 4 21 -mass $m4
element nonlinearBeamColumn 22 7 11 5 3 22 -mass $m3
element nonlinearBeamColumn 23 11 15 5 5 23 -mass $m5
element nonlinearBeamColumn 24 15 19 5 3 24 -mass $m3
element nonlinearBeamColumn 25 19 23 5 5 25 -mass $m5

element nonlinearBeamColumn 26 4 8 5 3 26 -mass $m3
element nonlinearBeamColumn 27 8 12 5 3 27 -mass $m3
element nonlinearBeamColumn 28 12 16 5 5 28 -mass $m5
element nonlinearBeamColumn 29 16 20 5 3 29 -mass $m3
element nonlinearBeamColumn 30 20 24 5 5 30 -mass $m5


# RECORDERS -------------------------------------------------------------

recorder Node -file "3 niveles/3N82Cnode.out" -dof 1 2 3 disp; # displacements of free nodes
recorder Node -file "3 niveles/3N82Creact.out" -node 5 9 13 17 21 -dof 1 2 reaction; # support reaction
recorder Node -file "3 niveles/3N82Ceig1" -dof 1 2 3 "eigen 1"; # Modes 1 2 & 3
recorder Node -file "3 niveles/3N82Ceig2" -dof 1 2 3 "eigen 2";
recorder Node -file "3 niveles/3N82Ceig3" -dof 1 2 3 "eigen 3";

# CARGAS DE GRAVEDAD -------------------------------------------------------------

# Cargas distribuidas sobre vigas -------------------------------------------------------

pattern Plain 100 Linear {
eleLoad -ele 16 21 -type -beamUniform -38.962
eleLoad -ele 26 27 29 -type -beamUniform -29.276
eleLoad -ele 17 22 19 24 -type -beamUniform -36.197
eleLoad -ele 18 23 20 25 -type -beamUniform -36.002
eleLoad -ele 28 30 -type -beamUniform -29.081

# Cargas puntuales sobre vigas ---------------------------------------------------------

eleLoad -ele 16 21 -type beamPoint -3139.50 0

# Peso propio de las columnas

eleLoad -ele 1 2 3 4 5 6 10 11 12 13 14 15 -type -beamUniform 0.0 -$w2
eleLoad -ele 7 8 9 -type -beamUniform 0.0 -$w1


# Cargas puntuales sobre nodos ----------------------------------------------------------

load 6 0.0 -4289.807 0.0
load 7 0.0 -4289.807 0.0
load 8 0.0 -3494.662 0.0
load 10 0.0 -4215.978 0.0
load 11 0.0 -4215.978 0.0
load 12 0.0 -3494.662 0.0
load 14 0.0 -4215.978 0.0
load 15 0.0 -4215.978 0.0
load 16 0.0 -3494.662 0.0
load 18 0.0 -4215.978 0.0
load 19 0.0 -4215.978 0.0
load 20 0.0 -3494.662 0.0
load 22 0.0 -5085.031 0.0
load 23 0.0 -5085.031 0.0
load 24 0.0 -2814.131 0.0
}

set lambda [eigen 3]
set lambda1 [lindex $lambda 0]
set lambda2 [lindex $lambda 1]
set lambda3 [lindex $lambda 2]
set omega1 [expr pow($lambda1,0.5)]
set omega2 [expr pow($lambda2,0.5)]
set omega3 [expr pow($lambda3,0.5)]
set T1 [expr 2*3.14159/$omega1]
set T2 [expr 2*3.14159/$omega2]
set T3 [expr 2*3.14159/$omega3]

set filename "3 niveles/periodos3N82C.out"
set fileid [open $filename "w"]
puts $fileid {T1 T2 T3}
puts $fileid $T1
puts $fileid $T2
puts $fileid $T3
close $fileid

constraints Plain;
numberer Plain;
system BandGeneral;
test NormDispIncr 1.0e-8 6;
algorithm Newton;
integrator LoadControl 0.1;
analysis Static;
analyze 10;
#loadConst;
print "3 niveles/3N82C.out"

[/code]
Venezuelan Foundation For Seismological Research
Earthquake Engineering Department
Jean Domínguez
Posts: 22
Joined: Fri May 09, 2008 4:19 pm
Location: UCV

Post by Jean Domínguez »

I specified the offset length with sign change and seems to be better. i.e. for element 2 i write
"geomTransf Linear 2 -jntOffset 0 27.5 0 -27.5" because the end node of the element 2 is on the right side and i believe this offset length may be from right to left. But i need confirmation of this.
Best regards.
Venezuelan Foundation For Seismological Research
Earthquake Engineering Department
Jean Domínguez
Posts: 22
Joined: Fri May 09, 2008 4:19 pm
Location: UCV

Post by Jean Domínguez »

There is a mistake before, the correct is that the end node is upside and the offste lenght may be from upside to downside.
Venezuelan Foundation For Seismological Research
Earthquake Engineering Department
Jean Domínguez
Posts: 22
Joined: Fri May 09, 2008 4:19 pm
Location: UCV

Post by Jean Domínguez »

Ok, the negative offset length seems to be OK and the little difference seems to be to the fact OpenSees unload the rigid length of the elements... I´ve readed something about this unloading in another post, now i can confirm that. Please FMK/Silvia, can you confirm the first thing?.
If the offset lenght must be specified with proper sign, i suggest one line warning in the manual saying this. Maybe one can detect that from the phrase "absolute offsets specified with respect to the global coordinate" but it is not totally clear the sign issue. Thanks to both, i know answering multiple asking for help from all of us may be a hard work to do.
Venezuelan Foundation For Seismological Research
Earthquake Engineering Department
Post Reply