hello,
How can I release end moments of a nonlinearBeamColumn element in 3-dimentional OpenSees model while I have assigned rigidDiaphragm to all nodes of story?
For example in the following model I want to release the end moment of element nonlinearBeamColumn 5,
wipe
model basic -ndm 3 -ndf 6
file mkdir data
node 1 0. 0. 0.
node 2 3. 0. 0.
node 3 0. 3. 0.
node 4 3. 3. 0.
node 5 0. 0. 3.
node 6 3. 0. 3.
node 7 0. 3. 3.
node 8 3. 3. 3.
fixZ 0.0 1 1 1 1 1 1
#Assigning Rigid Diaphragm
node 9 1.5 1.5 3.
fix 9 0 0 1 1 1 0
rigidDiaphragm 3 9 5 6 7 8
#Assigning Floor Mass to Center of the Mass of the story.
mass 9 4000. 4000. 0. 0. 0. [expr (1./12)*4000.*(pow(3,2)+pow(3,2))]
set ColumnTransfTag 1
geomTransf Linear $ColumnTransfTag 0 1 0
set BeamTransfTag 2
geomTransf Linear $BeamTransfTag 0 -1 0
set GirderTransfTag 3
geomTransf Linear $GirderTransfTag 1 0 0
uniaxialMaterial Steel01 1 2.354e8 2.e11 0.02
section fiberSec 1 {
patch quad 1 8 3 0.0915 0.05 0.0915 -0.05 0.1 -0.05 0.1 0.05
patch quad 1 3 8 -0.0915 0.0028 -0.0915 -0.0028 0.0915 -0.0028 0.0915 0.0028
patch quad 1 8 3 -0.1 0.05 -0.1 -0.05 -0.0915 -0.05 -0.0915 0.05
}
set e 2.e11
set nu 0.3
set G [expr $e/(2.*(1+$nu))]
set j 6.920e-8
set Tmattag 2
uniaxialMaterial Elastic $Tmattag [expr $G*$j]
section Aggregator 3 $Tmattag T -section 1
#Columns
element nonlinearBeamColumn 1 1 5 10 3 $ColumnTransfTag
element nonlinearBeamColumn 2 2 6 10 3 $ColumnTransfTag
element nonlinearBeamColumn 3 3 7 10 3 $ColumnTransfTag
element nonlinearBeamColumn 4 4 8 10 3 $ColumnTransfTag
#Beams
element nonlinearBeamColumn 5 5 6 10 3 $BeamTransfTag
element nonlinearBeamColumn 6 7 8 10 3 $BeamTransfTag
#Girders
element nonlinearBeamColumn 7 5 7 10 3 $GirderTransfTag
element nonlinearBeamColumn 8 6 8 10 3 $GirderTransfTag
puts "first mode w^2:[eigen 1]
first period:[expr 2*3.14/pow([eigen 1],0.5)]"
recorder Node -file data/nodeDisp2.out -time -node 5 -dof 1 2 3 disp
set DeadLoad 1
pattern Plain $DeadLoad Linear {
load 5 5000. 0. 0. 0. 0. 0.
}
constraints Transformation
numberer Plain
system BandGeneral
test EnergyIncr 1.e-8 6
algorithm ModifiedNewton
integrator LoadControl 1
analysis Static
analyze 1
loadConst -time 0.0
release the end moment of element
Moderators: silvia, selimgunay, Moderators
-
- Posts: 3
- Joined: Tue Aug 25, 2015 12:16 pm
- Location: Islamic Azad University, Science and Research
-
- Posts: 112
- Joined: Thu Jun 27, 2013 11:45 am
- Location: Seattle, WA
Re: release the end moment of element
Hi - I am not that much familiar with rigidDiaphragm setting, but can't you remove the rotational constraints on your interested node? (i.e. using the command: remove sp $nodeTag $dof)
Regards,
Soheil
Regards,
Soheil
---
PhD, EIT, Geotechnical Engineer
Condon-Johnson & Associates INC
PhD, EIT, Geotechnical Engineer
Condon-Johnson & Associates INC
Re: release the end moment of element
add additional nodes at end of beams and constrain translation dof .. here is an example proc i have for creating steel sections .. the option to look as it wahat happens with the -relase1 and -release2
proc ForceBeamWSection2d {eleTag iNode jNode sectType matTag transfTag args} {
global FiberSteelWSection2d
global ElasticSteelWSection2d
set Orient "XX"
if {[lsearch $args "YY"] != -1} {
set Orient "YY"
}
set nFlange 10
if {[lsearch $args "-nFlange"] != -1} {
set loc [lsearch $args "-nFlange"]
set nFlange [lindex $args [expr $loc+1]]
}
set nWeb 5
if {[lsearch $args "-nWeb"] != -1} {
set loc [lsearch $args "-nWeb"]
set nWeb [lindex $args [expr $loc+1]]
}
set nip 4
if {[lsearch $args "-nip"] != -1} {
set loc [lsearch $args "-nip"]
set nip [lindex $args [expr $loc+1]]
}
if {[lsearch $args "-release1"] != -1} {
set hingeEnd1 1
node $eleTag$hingeEnd1 [nodeCoord $iNode 1] [nodeCoord $iNode 2]
equalDOF $iNode $eleTag$hingeEnd1 1 2
set iNode $eleTag$hingeEnd1
}
if {[lsearch $args "-release2"] != -1} {
set hingeEnd2 2
node $eleTag$hingeEnd2 [nodeCoord $jNode 1] [nodeCoord $jNode 2]
equalDOF $jNode $eleTag$hingeEnd2 1 2
set jNode $eleTag$hingeEnd2
}
if {[lsearch $args "-elasticSection"] != -1} {
set loc [lsearch $args "-elasticSection"]
set E [lindex $args [expr $loc+1]]
ElasticSteelWSection2d $eleTag $sectType $E $Orient
} else {
FiberSteelWSection2d $eleTag $sectType $matTag $nFlange $nWeb $Orient
}
element forceBeamColumn $eleTag $iNode $jNode $nip $eleTag $transfTag
}
proc ForceBeamWSection2d {eleTag iNode jNode sectType matTag transfTag args} {
global FiberSteelWSection2d
global ElasticSteelWSection2d
set Orient "XX"
if {[lsearch $args "YY"] != -1} {
set Orient "YY"
}
set nFlange 10
if {[lsearch $args "-nFlange"] != -1} {
set loc [lsearch $args "-nFlange"]
set nFlange [lindex $args [expr $loc+1]]
}
set nWeb 5
if {[lsearch $args "-nWeb"] != -1} {
set loc [lsearch $args "-nWeb"]
set nWeb [lindex $args [expr $loc+1]]
}
set nip 4
if {[lsearch $args "-nip"] != -1} {
set loc [lsearch $args "-nip"]
set nip [lindex $args [expr $loc+1]]
}
if {[lsearch $args "-release1"] != -1} {
set hingeEnd1 1
node $eleTag$hingeEnd1 [nodeCoord $iNode 1] [nodeCoord $iNode 2]
equalDOF $iNode $eleTag$hingeEnd1 1 2
set iNode $eleTag$hingeEnd1
}
if {[lsearch $args "-release2"] != -1} {
set hingeEnd2 2
node $eleTag$hingeEnd2 [nodeCoord $jNode 1] [nodeCoord $jNode 2]
equalDOF $jNode $eleTag$hingeEnd2 1 2
set jNode $eleTag$hingeEnd2
}
if {[lsearch $args "-elasticSection"] != -1} {
set loc [lsearch $args "-elasticSection"]
set E [lindex $args [expr $loc+1]]
ElasticSteelWSection2d $eleTag $sectType $E $Orient
} else {
FiberSteelWSection2d $eleTag $sectType $matTag $nFlange $nWeb $Orient
}
element forceBeamColumn $eleTag $iNode $jNode $nip $eleTag $transfTag
}
-
- Posts: 3
- Joined: Tue Aug 25, 2015 12:16 pm
- Location: Islamic Azad University, Science and Research
Re: release the end moment of element
fmk wrote:
> add additional nodes at end of beams and constrain translation dof .. here
> is an example proc i have for creating steel sections .. the option to look
> as it wahat happens with the -relase1 and -release2
>
> proc ForceBeamWSection2d {eleTag iNode jNode sectType matTag transfTag
> args} {
>
> global FiberSteelWSection2d
> global ElasticSteelWSection2d
>
> set Orient "XX"
> if {[lsearch $args "YY"] != -1} {
> set Orient "YY"
> }
>
> set nFlange 10
> if {[lsearch $args "-nFlange"] != -1} {
> set loc [lsearch $args "-nFlange"]
> set nFlange [lindex $args [expr $loc+1]]
> }
>
> set nWeb 5
> if {[lsearch $args "-nWeb"] != -1} {
> set loc [lsearch $args "-nWeb"]
> set nWeb [lindex $args [expr $loc+1]]
> }
>
> set nip 4
> if {[lsearch $args "-nip"] != -1} {
> set loc [lsearch $args "-nip"]
> set nip [lindex $args [expr $loc+1]]
> }
>
> if {[lsearch $args "-release1"] != -1} {
> set hingeEnd1 1
> node $eleTag$hingeEnd1 [nodeCoord $iNode 1] [nodeCoord $iNode 2]
> equalDOF $iNode $eleTag$hingeEnd1 1 2
> set iNode $eleTag$hingeEnd1
> }
>
> if {[lsearch $args "-release2"] != -1} {
> set hingeEnd2 2
> node $eleTag$hingeEnd2 [nodeCoord $jNode 1] [nodeCoord $jNode 2]
> equalDOF $jNode $eleTag$hingeEnd2 1 2
> set jNode $eleTag$hingeEnd2
> }
>
> if {[lsearch $args "-elasticSection"] != -1} {
> set loc [lsearch $args "-elasticSection"]
> set E [lindex $args [expr $loc+1]]
> ElasticSteelWSection2d $eleTag $sectType $E $Orient
> } else {
> FiberSteelWSection2d $eleTag $sectType $matTag $nFlange $nWeb
> $Orient
> }
>
> element forceBeamColumn $eleTag $iNode $jNode $nip $eleTag $transfTag
> }
Thank you, but equalDOF does not work properly, because it is 3-dimentional model, and I have assigned rigidDiaphragm to all nodes of floor.
> add additional nodes at end of beams and constrain translation dof .. here
> is an example proc i have for creating steel sections .. the option to look
> as it wahat happens with the -relase1 and -release2
>
> proc ForceBeamWSection2d {eleTag iNode jNode sectType matTag transfTag
> args} {
>
> global FiberSteelWSection2d
> global ElasticSteelWSection2d
>
> set Orient "XX"
> if {[lsearch $args "YY"] != -1} {
> set Orient "YY"
> }
>
> set nFlange 10
> if {[lsearch $args "-nFlange"] != -1} {
> set loc [lsearch $args "-nFlange"]
> set nFlange [lindex $args [expr $loc+1]]
> }
>
> set nWeb 5
> if {[lsearch $args "-nWeb"] != -1} {
> set loc [lsearch $args "-nWeb"]
> set nWeb [lindex $args [expr $loc+1]]
> }
>
> set nip 4
> if {[lsearch $args "-nip"] != -1} {
> set loc [lsearch $args "-nip"]
> set nip [lindex $args [expr $loc+1]]
> }
>
> if {[lsearch $args "-release1"] != -1} {
> set hingeEnd1 1
> node $eleTag$hingeEnd1 [nodeCoord $iNode 1] [nodeCoord $iNode 2]
> equalDOF $iNode $eleTag$hingeEnd1 1 2
> set iNode $eleTag$hingeEnd1
> }
>
> if {[lsearch $args "-release2"] != -1} {
> set hingeEnd2 2
> node $eleTag$hingeEnd2 [nodeCoord $jNode 1] [nodeCoord $jNode 2]
> equalDOF $jNode $eleTag$hingeEnd2 1 2
> set jNode $eleTag$hingeEnd2
> }
>
> if {[lsearch $args "-elasticSection"] != -1} {
> set loc [lsearch $args "-elasticSection"]
> set E [lindex $args [expr $loc+1]]
> ElasticSteelWSection2d $eleTag $sectType $E $Orient
> } else {
> FiberSteelWSection2d $eleTag $sectType $matTag $nFlange $nWeb
> $Orient
> }
>
> element forceBeamColumn $eleTag $iNode $jNode $nip $eleTag $transfTag
> }
Thank you, but equalDOF does not work properly, because it is 3-dimentional model, and I have assigned rigidDiaphragm to all nodes of floor.
Re: release the end moment of element
equalDOF works fine .. the problem is the constraint handler does not follow constraints, i.e. one node cannot be constrained to move with another node that also has a constraint .. either adjust the model with this information or use a penalty method to enforce the constraints.