2D Frame with rotational spring

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

Moderators: silvia, selimgunay, Moderators

Post Reply
PratikSDeogekar
Posts: 2
Joined: Wed Aug 26, 2015 6:30 am
Location: University of Illinois - Urbana Champaign

2D Frame with rotational spring

Post by PratikSDeogekar »

I am trying to model beam column connections using rotational spring but I am getting errors. Can anybody help me with it. Please find below the script:-

wipe
# Create ModelBuilder (with two-dimensions and 3 DOF/node)
model basic -ndm 2 -ndf 3


# SI units are used
# mass = kg, time = seconds, length = metres, Force = newton

# Create nodes
# ------------

# Set height of the column and length of the beam

set LCol 2.00; #Height of Column is 2 m
set LBeam 4.00; #Length of Beam is 4 m

#Create nodes

set ColEle 10; #Number of elements in each column
set BeamEle 20; #Number of elements in each beam

#Creating nodes for left column

for {set i 1} {$i < [expr $ColEle + 2]} {incr i 1} {
node $i 0.0 [expr ($i-1)*$LCol/$ColEle]
#print node $i
}

set CtrlNode1 [expr $ColEle + 1]; #Node at top of left column

for {set i [expr $CtrlNode1+1]} {$i< [expr $CtrlNode1+$BeamEle+2]} {incr i 1} {
node $i [expr $LBeam*($i -$CtrlNode1-1)/$BeamEle] $LCol
#print node $i
}

set CtrlNode2 [expr $ColEle+$BeamEle+3]
set LastNode [expr $CtrlNode2+$ColEle]

for {set i [expr $CtrlNode2]} {$i< [expr $CtrlNode2+$ColEle+1]} {incr i 1} {
node $i $LBeam [expr $LCol*($LastNode-$i)/$ColEle]
#print node $i
}

# tag DX DY RZ
fix 1 1 1 1
fix 43 1 1 1


# Define materials for nonlinear columns

# STEEL
# Column Steel

set fyc 320e6; #Yield stress
set Ec 2e11; #Young's modulus
set bc 0.003; #Ratio of post yield stiffness to pre yield stiffness

# tag fy E0 b R0 cR1 cR2
uniaxialMaterial Steel02 1 $fyc $Ec $bc 18 0.925 0.15

# Beam Steel

set fyb 275e6; #Yield stress
set Eb 2e11; #Young's modulus
set bb 0.003;

# tag fy E0 b R0 cR1 cR2
uniaxialMaterial Steel02 2 $fyb $Eb $bb 18 0.925 0.15

#Rotational Spring

set fys 3.8e4; #Spring yield in N-m
set Es 0.8e7; #Spring stiffness in N-m/rad
set bs 0.03; #Ratio of post yield stiffness to pre yield stiffness

# tag fy E0 b R0 cR1 cR2
uniaxialMaterial Steel02 3 $fys $Es $bs 18 0.925 0.15

#uniaxialMaterial MinMax $matTag $otherTag <-min $minStrain> <-max $maxStrain>
uniaxialMaterial MinMax 4 3 -min -0.16 -max 0.16

#Define cross-section for non-linear beams and columns
#section 1 is column section
#section 2 is beam section

#Column section
set dc 0.15; # d = nominal depth (along local y) = 150 mm = 0.15m
set bfc 0.15; # bf = flange width = 150 mm = 0.15m
set tfc 0.01; # tf = flange thickness = 10 mm = 0.01m
set twc 0.007; # tw = web thickness = 7 mm = 0.007m
set nfdwc 20; # nfdw = number of fibers along web depth
set nftwc 1; # nftw = number of fibers along web thickness
set nfbfc 1; # nfbf = number of fibers along flange width
set nftfc 10; # nftf = number of fibers along flange thickness

source WSection.tcl

# secID matID d bf tf tw nfdw nftw nfbf nftf
WSection 1 1 $dc $bfc $tfc $twc $nfdwc $nftwc $nfbfc $nftfc



#Beam section
set db 0.25; # d = nominal depth (along local y) = 250 mm = 0.25m
set bfb 0.13; # bf = flange width = 130 mm = 0.13m
set tfb 0.009; # tf = flange thickness = 9 mm = 0.009m
set twb 0.009; # tw = web thickness = 9 mm = 0.009m
set nfdwb 20; # nfdw = number of fibers along web depth
set nftwb 1; # nftw = number of fibers along web thicknesss
set nfbfb 1; # nfbf = number of fibers along flange width
set nftfb 10; # nftf = number of fibers along flange thickness

# secID matID d bf tf tw nfdw nftw nfbf nftf
WSection 2 2 $db $bfb $tfb $twb $nfdwb $nftwb $nfbfb $nftfb

# Define beam column elements
# ----------------------

geomTransf PDelta 1

# Number of integration points along length of element, by default the Gauss-Lobatto integration is used
set np 5
set eleType forceBeamColumn

for {set j 1} {$j < [expr $ColEle+1]} {incr j 1} {
# e tag ndI ndJ nsecs secID transfTag
#element $eleType $j $j [expr $j+1] $np 1 1
print ele $j
}

for {set j [expr $ColEle+1]} {$j < [expr $ColEle+$BeamEle+1]} {incr j 1} {
# e tag ndI ndJ nsecs secID transfTag
element $eleType $j [expr $j+1] [expr $j+2] $np 2 1
print ele $j
}

for {set j [expr $ColEle+$BeamEle+1]} {$j < [expr $ColEle+$BeamEle+$ColEle+1]} {incr j 1} {
# e tag ndI ndJ nsecs secID transfTag
element $eleType $j [expr $j+2] [expr $j+3] $np 1 1
print ele $j
}

source rotSpring2D.tcl
rotSpring2D [expr $ColEle+$BeamEle+$ColEle+1] [expr $CtrlNode1] [expr $CtrlNode1+1] 4
rotSpring2D [expr $ColEle+$BeamEle+$ColEle+2] [expr $CtrlNode2] [expr $CtrlNode2-1] 4

#equalDOF 11 12 1 2 3
#equalDOF 32 33 1 2 3


# Define gravity loads
# --------------------

# Set a parameter for the axial load
set P 0; # 25% of axial capacity of columns

# Create a Plain load pattern with a Linear TimeSeries
pattern Plain 1 "Linear" {

load 11 0.0 [expr -$P] 0.0
load 33 0.0 [expr -$P] 0.0
}

# ------------------------------
# End of model generation
# ------------------------------



# ------------------------------
# Start of analysis generation
# ------------------------------

# Create the system of equation, a sparse solver with partial pivoting
system BandGeneral

# Create the constraint handler, the transformation method
constraints Transformation

# Create the DOF numberer, the reverse Cuthill-McKee algorithm
numberer RCM

# Create the convergence test, the norm of the residual with a tolerance of
# 1e-12 and a max number of iterations of 10
test NormDispIncr 1.0e-15 10 3

# Create the solution algorithm, a Newton-Raphson algorithm
algorithm Newton

# Create the integration scheme, the LoadControl scheme using steps of 0.1
integrator LoadControl 0.1

# Create the analysis object
analysis Static

analyze 10
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: 2D Frame with rotational spring

Post by fmk »

and what errors are you getting???????
and post the rot2D script.
Post Reply