Can Joint3D element command work ?

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

Moderators: silvia, selimgunay, Moderators

Post Reply
dwcaini
Posts: 3
Joined: Wed Sep 19, 2012 10:35 pm
Location: dwc

Can Joint3D element command work ?

Post by dwcaini »

Hi every one,i posted my problem and i wish you can give a quick reply,plz help me,thanks
I've modeled a 3D RC frame 1bay 1 bayz 1story and it was ok.but, when i used Joint3D element commad to consider the effect of beam-column joint it gets some errors while running and i do not know why!!!!
( i used joint 3d element with this format, not joint2D )

I want to know whether joint3d command work or not ,if this command havent been developed well ,plz tell me.

here is the code :


# --------------------------------------------------------------------------------------------------
# Example 8. 3D RC frame
# Silvia Mazzoni & Frank McKenna, 2006
# nonlinearBeamColumn element, inelastic fiber section
#

# SET UP ----------------------------------------------------------------------------
wipe; # clear memory of all past model definitions
model BasicBuilder -ndm 3 -ndf 6; # Define the model builder, ndm=#dimension, ndf=#dofs
set dataDir Data; # set up name of data directory
file mkdir $dataDir; # create data directory
set GMdir "../GMfiles"; # ground-motion file directory
source LibUnits.tcl; # define units
source DisplayPlane.tcl; # procedure for displaying a plane in model
source DisplayModel3D.tcl; # procedure for displaying 3D perspectives of model
source BuildRCrectSection.tcl; # procedure for definining RC fiber section
source procUniaxialBoucWen.tcl
# ------ frame configuration
set NStory 1; # number of stories above ground level
set NBay 1; # number of bays in X direction
set NBayZ 1; # number of bays in Z direction
puts "Number of Stories in Y: $NStory Number of bays in X: $NBay Number of bays in Z: $NBayZ"
set NFrame [expr $NBay + 1]; # actually deal with frames in Z direction, as this is an easy extension of the 2d model

# define GEOMETRY -------------------------------------------------------------
# define structure-geometry paramters
set LCol [expr 14*$ft]; # column height (parallel to Y axis)
set LCol2 [expr 14*$ft]; # column height (parallel to Y axis)
set LCol3 [expr 14*$ft]; # column height (parallel to Y axis)
set LBeam [expr 24*$ft]; # Beam length (parallel to X axis)
set LGird [expr 24*$ft]; # girder length (parallel to Z axis)
set LGird2 [expr 28*$ft]; # girder length (parallel to Z axis)
# Section Properties:
set HCol [expr 18*$in]; # square-Column width
set BCol $HCol;
set HBeam [expr 24*$in]; # Beam depth -- perpendicular to bending axis
set BBeam [expr 18*$in]; # Beam width -- parallel to bending axis
set HGird [expr 24*$in]; # Girder depth -- perpendicular to bending axis
set BGird [expr 18*$in]; # Girder width -- parallel to bending axis

#定义 节点尺寸
#set jointx [expr $BGird];
#set jointy [expr $HBeam];
#set jointz [expr $BBeam];
set jointx [expr $HCol];
set jointy [expr $HCol];
set jointz [expr $HCol];
# define nodal coordinates
# 第一层
node 1114 0 0 0
node 1214 [expr $LGird+$jointx] 0 0
node 1124 0 0 [expr $LBeam+$jointz]
node 1224 [expr $LGird+$jointx] 0 [expr $LBeam+$jointz ]


# 定义2-5 层各节点坐标及编号
# 定义节点单元
set alpha 0.023;
set ko 1300;
set n 1.01;
set beta 200;
set gamma -155;
set Ao 1.0;
set deltaA 0.0005;
set deltaNu 0.08;
set deltaEta 0.0950;
set p 3;
set q 0.0950;
set zeta 0.85;
set psi 0.0009;
set deltaPsi 0.00095;
set lambd 0.005;
uniaxialMaterial BoucWen 5 $alpha $ko $n $gamma $beta $Ao $deltaA $deltaNu $deltaEta $p $q $zeta $psi $deltaPsi $lambd
set Dlevel 1000;
set Dframe 100;
set Dpier 10;
for {set level 2} {$level <=[expr $NStory+1]} {incr level 1} {
set y3 [expr $LCol+($LCol+$jointy)*($level-2)];
set y1256 [expr $jointy/2+$LCol+($LCol+$jointy)*($level-2)];
set y4 [expr ($LCol+$jointy)*($level-1)];
for {set frame 1} {$frame <=2} {incr frame 1} {
if {$frame == 3} {
set x1 [expr $jointx*3/2+$LGird+$LGird2];
set x3456 [expr $jointx*2+$LGird+$LGird2];
set x2 [expr $jointx*5/2+$LGird+$LGird2];
} else {
set x1 [expr -$jointx/2+($jointx+$LGird)*($frame-1)];
set x3456 [expr ($jointx+$LGird)*($frame-1)];
set x2 [expr $jointx/2+($frame-1)*($jointx+$LGird)];
}
for {set pier 1} {$pier <= 2} {incr pier 1} {
set z1234 [expr ($jointz+$LBeam)*($pier-1)];
set z5 [expr -$jointz/2+($LBeam+$jointz)*($pier-1)];
set z6 [expr $jointz/2+($LBeam+$jointz)*($pier-1)];
set nodeID1 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+1];
set nodeID2 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+2];
set nodeID3 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+3];
set nodeID4 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+4];
set nodeID5 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+5];
set nodeID6 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+6];
set nodeIDc [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+7];
set nodeID3D [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+8];
set nodeIDce [expr 10*$nodeIDc];
node $nodeID1 $x1 $y1256 $z1234;
node $nodeID2 $x2 $y1256 $z1234;
node $nodeID3 $x3456 $y3 $z1234;
node $nodeID4 $x3456 $y4 $z1234;
node $nodeID5 $x3456 $y1256 $z5;
node $nodeID6 $x3456 $y1256 $z6;
#node $nodeIDc $x3456 $y1256 $z1234;
element Joint3D $nodeID3D $nodeID1 $nodeID2 $nodeID3 $nodeID4 $nodeID5 $nodeID6 $nodeIDc 5 5 5 0
#puts "element Joint3D $nodeID3D $nodeID1 $nodeID2 $nodeID3 $nodeID4 $nodeID5 $nodeID6 $nodeIDc 5 5 5 0"
puts "node $nodeID1 $x1 $y1256 $z1234;"
}
}
}
for {set level 2} {$level <=[expr $NStory+1]} {incr level 1} {
set y3 [expr $LCol+($LCol+$jointy)*($level-2)];
set y1256 [expr $jointy/2+$LCol+($LCol+$jointy)*($level-2)];
set y4 [expr ($LCol+$jointy)*($level-1)];
for {set frame 1} {$frame <=2} {incr frame 1} {
if {$frame == 3} {
set x1 [expr $jointx*3/2+$LGird+$LGird2];
set x3456 [expr $jointx*2+$LGird+$LGird2];
set x2 [expr $jointx*5/2+$LGird+$LGird2];
} else {
set x1 [expr -$jointx/2+($jointx+$LGird)*($frame-1)];
set x3456 [expr ($jointx+$LGird)*($frame-1)];
set x2 [expr $jointx/2+($frame-1)*($jointx+$LGird)];
}
for {set pier 1} {$pier <= 2} {incr pier 1} {
set z1234 [expr ($jointz+$LBeam)*($pier-1)];
set z5 [expr -$jointz/2+($LBeam+$jointz)*($pier-1)];
set z6 [expr $jointz/2+($LBeam+$jointz)*($pier-1)];
set nodeID1 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+1];
set nodeID2 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+2];
set nodeID3 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+3];
set nodeID4 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+4];
set nodeID5 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+5];
set nodeID6 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+6];
set nodeIDc [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+7];
set nodeID3D [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+8];
set nodeIDce [expr 10*$nodeIDc];
element Joint3D $nodeID3D $nodeID1 $nodeID2 $nodeID3 $nodeID4 $nodeID5 $nodeID6 $nodeIDc 5 5 5 1

#element Joint3D $nodeID3D $nodeID3 $nodeID2 $nodeID4 $nodeID1 $nodeID6 $nodeID5 $nodeIDc 5 5 5 0
}
}
}
#element Joint3D $nodeID3D $nodeID1 $nodeID2 $nodeID3 $nodeID4 $nodeID5 $nodeID6 10000 5 5 5 0

#element Joint3D $nodeID3D $nodeID1 $nodeID2 $nodeID3 $nodeID4 $nodeID5 $nodeID6 $nodeIDc 5 5 5 0


#element Joint3D $nodeID3D $nodeID1 $nodeID2 $nodeID3 $nodeID4 $nodeID5 $nodeID6 $nodeIDc 5 5 5 0







# rigid diaphragm nodes
set RigidDiaphragm ON ; # options: ON, OFF. specify this before the analysis parameters are set the constraints are handled differently.
set Xa [expr ($jointx*2+$LGird)/2]; # mid-span coordinate for rigid diaphragm
set Za [expr ($jointz+$LBeam)/2];
set iMasterNode ""

for {set level 2} {$level <=[expr $NStory+1]} {incr level 1} {
set Y [expr $jointy/2+$LCol+($level-2)*($LCol+$jointy)];
# rigid-diaphragm nodes in center of each diaphram
set MasterNodeID [expr 9900+$level]
node $MasterNodeID $Xa $Y $Za; # master nodes for rigid diaphragm
fix $MasterNodeID 0 1 0 1 0 1; # constrain other dofs that don't belong to rigid diaphragm control
lappend iMasterNode $MasterNodeID
set perpDirn 2; # perpendicular to plane of rigid diaphragm
for {set frame 1} {$frame <=[expr $NFrame]} {incr frame 1} {
for {set pier 1} {$pier <= [expr $NBayZ+1]} {incr pier 1} {
set nodeID1 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+1]
set nodeID2 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+2];
set nodeID3 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+3];
set nodeID4 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+4];
set nodeID5 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+5];
set nodeID6 [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+6];
rigidDiaphragm $perpDirn $MasterNodeID $nodeID1; # define Rigid Diaphram,
rigidDiaphragm $perpDirn $MasterNodeID $nodeID2; # define Rigid Diaphram,
#rigidDiaphragm $perpDirn $MasterNodeID $nodeID3; # define Rigid Diaphram,
#rigidDiaphragm $perpDirn $MasterNodeID $nodeID4; # define Rigid Diaphram,
rigidDiaphragm $perpDirn $MasterNodeID $nodeID5; # define Rigid Diaphram,
rigidDiaphragm $perpDirn $MasterNodeID $nodeID6; # define Rigid Diaphram,

}
}
}

# determine support nodes where ground motions are input, for multiple-support excitation
set iSupportNode ""
for {set frame 1} {$frame <=[expr $NFrame]} {incr frame 1} {
set level 1
for {set pier 1} {$pier <= [expr $NBay+1]} {incr pier 1} {
set nodeID [expr $level*$Dlevel+$frame*$Dframe+$pier*$Dpier+4]
lappend iSupportNode $nodeID
}
}

# BOUNDARY CONDITIONS
fixY 0.0 1 1 1 0 1 0; # pin all Y=0.0 nodes

# calculated MODEL PARAMETERS, particular to this model
# Set up parameters that are particular to the model for displacement control
set IDctrlNode [expr int(($NStory+1)*$Dlevel+(1*$Dframe)+1)]; # node where displacement is read for displacement control
set IDctrlDOF 1; # degree of freedom of displacement read for displacement control
set LBuilding [expr $NStory*$LCol]; # total building height

# Define SECTIONS -------------------------------------------------------------
set SectionType FiberSection; # options: Elastic FiberSection

# define section tags:
set ColSecTag 1
set BeamSecTag 2
set GirdSecTag 3
set ColSecTagFiber 4
set BeamSecTagFiber 5
set GirdSecTagFiber 6
set SecTagTorsion 70
#========================定义材料===========================

if {$SectionType == "Elastic"} {
# material properties:
set fc 4000*$psi; # concrete nominal compressive strength
set Ec [expr 57*$ksi*pow($fc/$psi,0.5)]; # concrete Young's Modulus
set nu 0.2; # Poisson's ratio
set Gc [expr $Ec/2./[expr 1+$nu]]; # Torsional stiffness Modulus
set J $Ubig; # set large torsional stiffness
# column section properties:
set AgCol [expr $HCol*$BCol]; # rectuangular-Column cross-sectional area
set IzCol [expr 0.5*1./12*$BCol*pow($HCol,3)]; # about-local-z Rect-Column gross moment of inertial
set IyCol [expr 0.5*1./12*$HCol*pow($BCol,3)]; # about-local-z Rect-Column gross moment of inertial
# beam sections:
set AgBeam [expr $HBeam*$BBeam]; # rectuangular-Beam cross-sectional area
set IzBeam [expr 0.5*1./12*$BBeam*pow($HBeam,3)]; # about-local-z Rect-Beam cracked moment of inertial
set IyBeam [expr 0.5*1./12*$HBeam*pow($BBeam,3)]; # about-local-y Rect-Beam cracked moment of inertial
# girder sections:
set AgGird [expr $HGird*$BGird]; # rectuangular-Girder cross-sectional area
set IzGird [expr 0.5*1./12*$BGird*pow($HGird,3)]; # about-local-z Rect-Girder cracked moment of inertial
set IyGird [expr 0.5*1./12*$HGird*pow($BGird,3)]; # about-local-y Rect-Girder cracked moment of inertial

section Elastic $ColSecTag $Ec $AgCol $IzCol $IyCol $Gc $J
section Elastic $BeamSecTag $Ec $AgBeam $IzBeam $IyBeam $Gc $J
section Elastic $GirdSecTag $Ec $AgGird $IzGird $IyGird $Gc $J

set IDconcCore 1; # material numbers for recorder (this stressstrain recorder will be blank, as this is an elastic section)
set IDSteel 2; # material numbers for recorder (this stressstrain recorder will be blank, as this is an elastic section)

} elseif {$SectionType == "FiberSection"} {
# MATERIAL parameters
source LibMaterialsRC.tcl; # define library of Reinforced-concrete Materials
# FIBER SECTION properties
# Column section geometry:
set cover [expr 2.5*$in]; # rectangular-RC-Column cover
set numBarsTopCol 8; # number of longitudinal-reinforcement bars on top layer
set numBarsBotCol 8; # number of longitudinal-reinforcement bars on bottom layer
set numBarsIntCol 6; # TOTAL number of reinforcing bars on the intermediate layers
set barAreaTopCol [expr 1.*$in*$in]; # longitudinal-reinforcement bar area
set barAreaBotCol [expr 1.*$in*$in]; # longitudinal-reinforcement bar area
set barAreaIntCol [expr 1.*$in*$in]; # longitudinal-reinforcement bar area

set numBarsTopBeam 6; # number of longitudinal-reinforcement bars on top layer
set numBarsBotBeam 6; # number of longitudinal-reinforcement bars on bottom layer
set numBarsIntBeam 2; # TOTAL number of reinforcing bars on the intermediate layers
set barAreaTopBeam [expr 1.*$in*$in]; # longitudinal-reinforcement bar area
set barAreaBotBeam [expr 1.*$in*$in]; # longitudinal-reinforcement bar area
set barAreaIntBeam [expr 1.*$in*$in]; # longitudinal-reinforcement bar area

set numBarsTopGird 6; # number of longitudinal-reinforcement bars on top layer
set numBarsBotGird 6; # number of longitudinal-reinforcement bars on bottom layer
set numBarsIntGird 2; # TOTAL number of reinforcing bars on the intermediate layers
set barAreaTopGird [expr 1.*$in*$in]; # longitudinal-reinforcement bar area
set barAreaBotGird [expr 1.*$in*$in]; # longitudinal-reinforcement bar area
set barAreaIntGird [expr 1.*$in*$in]; # longitudinal-reinforcement bar area

set nfCoreY 12; # number of fibers in the core patch in the y direction
set nfCoreZ 12; # number of fibers in the core patch in the z direction
set nfCoverY 8; # number of fibers in the cover patches with long sides in the y direction
set nfCoverZ 8; # number of fibers in the cover patches with long sides in the z direction
# rectangular section with one layer of steel evenly distributed around the perimeter and a confined core.
BuildRCrectSection $ColSecTagFiber $HCol $BCol $cover $cover $IDconcCore $IDconcCover $IDSteel $numBarsTopCol $barAreaTopCol $numBarsBotCol $barAreaBotCol $numBarsIntCol $barAreaIntCol $nfCoreY $nfCoreZ $nfCoverY $nfCoverZ
BuildRCrectSection $BeamSecTagFiber $HBeam $BBeam $cover $cover $IDconcCore $IDconcCover $IDSteel $numBarsTopBeam $barAreaTopBeam $numBarsBotBeam $barAreaBotBeam $numBarsIntBeam $barAreaIntBeam $nfCoreY $nfCoreZ $nfCoverY $nfCoverZ
BuildRCrectSection $GirdSecTagFiber $HGird $BGird $cover $cover $IDconcCore $IDconcCover $IDSteel $numBarsTopGird $barAreaTopGird $numBarsBotGird $barAreaBotGird $numBarsIntGird $barAreaIntGird $nfCoreY $nfCoreZ $nfCoverY $nfCoverZ

# assign torsional Stiffness for 3D Model
uniaxialMaterial Elastic $SecTagTorsion $Ubig
section Aggregator $ColSecTag $SecTagTorsion T -section $ColSecTagFiber
section Aggregator $BeamSecTag $SecTagTorsion T -section $BeamSecTagFiber
section Aggregator $GirdSecTag $SecTagTorsion T -section $GirdSecTagFiber
} else {
puts "No section has been defined"
return -1
}


set GammaConcrete [expr 150*$pcf];
set QdlCol [expr $GammaConcrete*$HCol*$BCol]; # self weight of Column, weight per length
set QBeam [expr $GammaConcrete*$HBeam*$BBeam]; # self weight of Beam, weight per length
set QGird [expr $GammaConcrete*$HGird*$BGird]; # self weight of Gird, weight per length

puts "OK"
# --------------------------------------------------------------------------------------------------------------------------------
# define ELEMENTS
# set up geometric transformations of element
# separate columns and Beams, in case of P-Delta analysis for columns
set IDColTransf 1; # all columns
set IDBeamTransf 2; # all Beams
set IDGirdTransf 3; # all girds
set ColTransfType Linear ; # options for columns: Linear PDelta Corotational
geomTransf $ColTransfType $IDColTransf 0 0 1; # orientation of column stiffness affects bidirectional response.
geomTransf Linear $IDBeamTransf 1 0 0
geomTransf Linear $IDGirdTransf 0 0 1
puts "OK"
# Define Beam-Column Elements
set numIntgrPts 5; # number of Gauss integration points for nonlinear curvature distribution
# columns
set N0col [expr 1000000]; # column element numbers
set level 0
for {set frame 1} {$frame <=[expr $NFrame]} {incr frame 1} {
for {set level 1} {$level <=$NStory} {incr level 1} {
for {set pier 1} {$pier <= [expr $NBayZ+1]} {incr pier 1} {
set elemID [expr $N0col +$level*$Dlevel + $frame*$Dframe+$pier*$Dpier]
set nodeI [expr $level*$Dlevel + $frame*$Dframe+$pier*$Dpier+4]
set nodeJ [expr ($level+1)*$Dlevel + $frame*$Dframe+$pier*$Dpier+3]
element nonlinearBeamColumn $elemID $nodeI $nodeJ $numIntgrPts $ColSecTag $IDColTransf; # columns
}
}
}

puts "OKk"
# Beams -- parallel to X-axis
set N0Beam 2000000; # Beam element numbers

for {set frame 1} {$frame <=[expr $NFrame]} {incr frame 1} {
for {set level 2} {$level <=[expr $NStory+1]} {incr level 1} {
for {set pier 1} {$pier <= [expr $NBayZ]} {incr pier 1} {
set elemID [expr $N0Beam +$level*$Dlevel + $frame*$Dframe+$pier*$Dpier]
set nodeI [expr $level*$Dlevel + $frame*$Dframe+$pier*$Dpier+6]
set nodeJ [expr $level*$Dlevel + $frame*$Dframe+($pier+1)*$Dpier+5]
element nonlinearBeamColumn $elemID $nodeI $nodeJ $numIntgrPts $BeamSecTag $IDBeamTransf; # Beams
}
}
}
puts "OKl"
# girders -- parallel to Z-axis
set N0gird 3000000; # gird element numbers
for {set frame 1} {$frame <=[expr $NFrame-1]} {incr frame 1} {
for {set level 2} {$level <=[expr $NStory+1]} {incr level 1} {
for {set pier 1} {$pier <= [expr 2]} {incr pier 1} {
set elemID [expr $N0gird +$level*$Dlevel + $frame*$Dframe+$pier*$Dpier]
set nodeI [expr $level*$Dlevel + $frame*$Dframe+$pier*$Dpier+2]
set nodeJ [expr $level*$Dlevel + ($frame+1)*$Dframe+$pier*$Dpier+1]
element nonlinearBeamColumn $elemID $nodeI $nodeJ $numIntgrPts $GirdSecTag $IDGirdTransf; # Girds
}
}
}
puts "OKl"
# --------------------------------------------------------------------------------------------------------------------------------
# Define GRAVITY LOADS, weight and masses
# calculate dead load of frame, assume this to be an internal frame (do LL in a similar manner)
# calculate distributed weight along the beam length
set Tslab [expr 6*$in]; # 6-inch slab
set Lslab [expr $LGird/2]; # slab extends a distance of $LGird/2 in/out of plane
set Lslab2 [expr $LGird2/2];
set DLfactor 1.0; # scale dead load up a little
set Qslab [expr $GammaConcrete*$Tslab*$Lslab*$DLfactor];
set Qslab2 [expr $GammaConcrete*$Tslab*$Lslab2*$DLfactor];
set QdlBeam [expr $Qslab + $QBeam]; # dead load distributed along beam (one-way slab)
set QdlBeam2 [expr $Qslab2 + $Qslab + $QBeam];
set QdlBeam3 [expr $Qslab2 + $QBeam];
set QdlGird $QGird; # dead load distributed along girder
set WeightCol [expr $QdlCol*$LCol]; # total Column weight
set WeightCol2 [expr $QdlCol*$LCol2]; # total Column weight
set WeightCol3 [expr $QdlCol*$LCol3]; # total Column weight
set WeightBeam [expr $QdlBeam*$LBeam]; # total Beam weight
set WeightBeam2 [expr $QdlBeam2*$LBeam]; # total Beam weight
set WeightBeam3 [expr $QdlBeam3*$LBeam]; # total Beam weight
set WeightGird [expr $QdlGird*$LGird]; # total Beam weight
set WeightGird2 [expr $QdlGird*$LGird2]; # total Beam weight

# assign masses to the nodes that the columns are connected to
# each connection takes the mass of 1/2 of each element framing into it (mass=weight/$g)
# frame1
set Cor2 [expr ($WeightCol2/2+$WeightCol/2+$WeightBeam/2+$WeightGird/2)/$g];
set Cor3 [expr ($WeightCol/2+$WeightCol/2+$WeightBeam/2+$WeightGird/2)/$g];
set Cor4 [expr ($WeightCol3/2+$WeightCol/2+$WeightBeam/2+$WeightGird/2)/$g];
set Cor5 [expr ($WeightCol/2+$WeightBeam/2+$WeightGird/2)/$g];
#frame2
set Cor22 [expr ($WeightCol2/2+$WeightCol/2+$WeightBeam2/2+$WeightGird/2+$WeightGird2/2)/$g];
set Cor23 [expr ($WeightCol2/2+$WeightCol/2+$WeightBeam2/2+$WeightGird/2+$WeightGird2/2)/$g];
set Cor24 [expr ($WeightCol2/2+$WeightCol/2+$WeightBeam2/2+$WeightGird/2+$WeightGird2/2)/$g];
set Cor25 [expr ($WeightCol2/2+$WeightCol/2+$WeightBeam2/2+$WeightGird/2+$WeightGird2/2)/$g];


# frame 1
mass 2113 $Cor2 0 $Cor2 0. 0. 0.; # level 2
mass 2123 $Cor2 0 $Cor2 0. 0. 0.;

# frame 2
mass 2213 $Cor22 0 $Cor22 0. 0. 0.; # level 2
mass 2223 $Cor22 0 $Cor22 0. 0. 0.;


set FloorWeight2 [expr 3*$WeightCol + 3*$WeightCol2 + 2*$WeightGird + 2*$WeightGird2 + 3*$WeightBeam]
# total building mass

# --------------------------------------------------------------------------------------------------------------------------------
# LATERAL-LOAD distribution for static pushover analysis
# calculate distribution of lateral load based on mass/weight distributions along building height
# Fj = WjHj/sum(WiHi) * Weight at each floor j
set Y2 [expr $LCol2];
set WeightTotal [expr $FloorWeight2]; # total building weight
set iFj "";
set iFloorWeight ""

set sumWiHi [expr $FloorWeight2*$Y2]; # sum of storey weight times height, for lateral-load distribution
set WiHi2 [expr $FloorWeight2*$Y2]; # storey weight times height, for lateral-load distribution

set F2 [expr $WiHi2/$sumWiHi*$WeightTotal]; # lateral load at level

# Define RECORDERS -------------------------------------------------------------


# GRAVITY -------------------------------------------------------------
# define GRAVITY load applied to Beams and columns -- eleLoad applies loads in local coordinate axis
pattern Plain 101 Linear {
for {set frame 1} {$frame <=[expr $NFrame]} {incr frame 1} {
for {set level 1} {$level <=$NStory} {incr level 1} {
for {set pier 1} {$pier <= [expr $NBayZ+1]} {incr pier 1} {
set elemID [expr $N0col + $level*$Dlevel +$frame*$Dframe+$pier*$Dpier]
eleLoad -ele $elemID -type -BeamUniform 0. 0. -$QdlCol; # COLUMNS }
}
}

eleLoad -ele 2002110 -type -BeamUniform -$QdlBeam 0.; # 2 BeamS
eleLoad -ele 2002210 -type -BeamUniform -$QdlBeam 0.; # 2 BeamS


eleLoad -ele 3002110 -type -BeamUniform -$QdlGird 0.; # 2 GIRDS
eleLoad -ele 3002120 -type -BeamUniform -$QdlGird 0.; # 2 GIRDS



}
# Define DISPLAY -------------------------------------------------------------
#DisplayMode l3D DeformedShape ; # options: DeformedShape NodeNumbers ModeShape
set xPixels 1100; # height of graphical window in pixels
set yPixels 800; # height of graphical window in pixels
set xLoc1 5; # horizontal location of graphical window (0=upper left-most corner)
set yLoc1 5; # vertical location of graphical window (0=upper left-most corner)
set dAmp 2; # scaling factor for viewing deformed shape, it depends on the dimensions of the model
DisplayModel3D DeformedShape $dAmp $xLoc1 $yLoc1 $xPixels $yPixels ; # options: DeformedShape NodeNumbers ModeShape

# Define DISPLAY -------------------------------------------------------------
#DisplayModel3D DeformedShape ; # options: DeformedShape NodeNumbers ModeShape
set xPixels 1100; # height of graphical window in pixels
set yPixels 800; # height of graphical window in pixels
set xLoc1 5; # horizontal location of graphical window (0=upper left-most corner)
set yLoc1 5; # vertical location of graphical window (0=upper left-most corner)
set dAmp 2; # scaling factor for viewing deformed shape, it depends on the dimensions of the model
DisplayModel3D NodeNumbers $dAmp $xLoc1 $yLoc1 $xPixels $yPixels

puts goGravity
# Gravity-analysis parameters -- load-controlled static analysis
set Tol 1.0e-8; # convergence tolerance for test
variable constraintsTypeGravity Plain; # default;
if { [info exists RigidDiaphragm] == 1} {
if {$RigidDiaphragm=="ON"} {
variable constraintsTypeGravity Lagrange; # large model: try Transformation
}; # if rigid diaphragm is on
}; # if rigid diaphragm exists
constraints Transformation ; # how it handles boundary conditions
numberer RCM; # renumber dof's to minimize band-width (optimization), if you want to
system BandGeneral ; # how to store and solve the system of equations in the analysis (large model: try UmfPack)
test EnergyIncr $Tol 6 ; # determine if convergence has been achieved at the end of an iteration step
algorithm Newton; # use Newton's solution algorithm: updates tangent stiffness at every iteration
set NstepGravity 10; # apply gravity in 10 steps
set DGravity [expr 1./$NstepGravity]; # first load increment;
integrator LoadControl $DGravity; # determine the next time step for an analysis
analysis Static; # define type of analysis static or transient
analyze $NstepGravity; # apply gravity


# ------------------------------------------------- maintain constant gravity loads and reset time to zero
loadConst -time 0.0
set Tol 1.0e-6; # reduce tolerance after gravity loads
puts "Model Built"
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Can Joint3D element command work ?

Post by vesna »

This element is included in the source code but I can not tell you if it works well as it was not tested by many users. I believe that in the Arash's report you can find explanation of the element along with the examples.
dwcaini
Posts: 3
Joined: Wed Sep 19, 2012 10:35 pm
Location: dwc

Re: Can Joint3D element command work ?

Post by dwcaini »

vesna wrote:
> This element is included in the source code but I can not tell you if it
> works well as it was not tested by many users. I believe that in the
> Arash's report you can find explanation of the element along with the
> examples.



Great ths for your reply! I have seen the report ,the joint-model he used is for

2D joint only,and the example was two-dimensional beam-column joint. So I sorry

but the report can not solve my problem, anyway, thank you again!
markant
Posts: 2
Joined: Wed Apr 10, 2013 2:12 pm

intermediate nodes in beam or column

Post by markant »

Hi,

I am a new user. I want to model a single bay portal frame. If I a insert a node between two beam column joints i.e. a node in a beam, how can I model or define this node as a part of beam? What will be the element command or other related command? Actually this node is a part of beam. It is not a hinge.

Regards,

Makrant
sonamd
Posts: 4
Joined: Wed Mar 11, 2015 6:54 pm
Location: Edith Cowan University

Re: Can Joint3D element command work ?

Post by sonamd »

Hi markant
If you got the solution to your problem, could you let me know please at snmdorji09@gmail.com. Thanks
Post Reply