Moment values at the pin-based columns

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

Moderators: silvia, selimgunay, Moderators

Post Reply
batuturk
Posts: 9
Joined: Sun Jun 14, 2015 10:27 am
Location: UCSD

Moment values at the pin-based columns

Post by batuturk »

Hi all,

I am currently working on a 5-span bridge model. There are 4 columns at each bent. Although column bases are pinned, I get moment values at the column bases. Using print command, I double-checked that columns are pinned at the base. I really don't know why I'm getting moment values at the pin-based columns when I run the gravity loading analysis. When I run the earthquake analysis, the moment values at the column bases I get are bigger than the gravity loading analysis results. Here is my model:

wipe
source units.tcl


model BasicBuilder -ndm 3 -ndf 6

# -------- DECK PROPERTIES

set Ad 6.73;
set Idy 109.6;
set Idz 1.82;
set Idp [expr $Idy+$Idz];
set Jd 6.25;
set offset 0.78;

# -------- COLUMN PROPERTIES

set Ac 1.169;
set Icy 0.109;
set Icz 0.109;
set Icp [expr $Icy+$Icz];
set Jc [expr $Icy+$Icz];

# -------- CONCRETE PROPERTIES(Parameters for Concrete01(Kent-Park Model) Material)

set Ec 27606;
set Gc [expr $Ec/2.4];
set gamma 0.0224261505;
set rho [expr $gamma/9.81];

# Confined Concrete

set ccTag 1;
set fcc -47.4;
set epscc -0.0057;
set fccu -35.34;
set epsccu -0.0226;


# Unconfined Concrete

set ucTag 2;
set fc -34.5;
set epsc -0.002;
set fcu -22.96;
set epscu -0.004;

# Additional Paramaeters for Concrete07(Mander Model) Material

set ft 2.0;
set epst 0.0001;
set xp 2.0;
set xnu 2.0;
set xnc 3.965;
set ru 2.6657;
set rc 1.4311;

# -------- STEEL PROPERTIES

set sTag 3;
set fy 475.0;
set Es 200000.0;
set b 0.02;
set R0 18.0;
set cR1 0.925;
set cR2 0.15;

# -------- LONGITUDIONAL REBAR PROPERTIES

set Dbar 3.58e-2;


# -------- BRIDGE GEOMETRY

set X {0.000 15.000 43.800 71.800 102.200 126.000};

set Z {0.000 0.000 0.000 0.000 0.000 0.000};

set colH {0.000 9.000 9.600 9.360 8.360 0.000};

set colpBent 4.;

if {$colpBent == 1} {
set cpb "single";
} else {
set cpb "multiple";
}


set colSpacing 3.067;

set discrtX {3. 6. 7. 8. 5.};

# -------- DECK NODES

# Nodal Masses for Each Span

set M "";
set Mr "";
set Mt "";
set Le "";

for {set i 1} {$i <= [llength $discrtX]} {incr i} {
set L [expr [lindex $X $i]-[lindex $X [expr $i-1]]];
set l [expr $L/[lindex $discrtX [expr $i-1]]];
set mass [expr $rho*$l*$Ad];
set massRot [expr $rho*$Ad*pow($l,3)/12.];
set massTor [expr $rho*$Idp*$l];
lappend Le $l;
lappend M $mass;
lappend Mr $massRot;
lappend Mt $massTor;
}

set nodesDeck 1;

for {set i 1} {$i <= [llength $discrtX]} {incr i} {
set nodesDeck [expr $nodesDeck+int([lindex $discrtX [expr $i-1]])];
}
# Assigning Nodes

set spanCount 1;
set corX 0.0;
set corY 0.0;
set corZ 0.0;
set bentNodes "";
set deckNodalWghts "";
set bentNode [expr 1+int([lindex $discrtX 0])];
set deckEndNodes "";
for {set i 1} {$i <= $nodesDeck} {incr i} {
set nodeTag [expr 100+$i];
set m [lindex $M [expr $spanCount-1]];
set mr [lindex $Mr [expr $spanCount-1]];
set mt [lindex $Mt [expr $spanCount-1]];
if {$i == 1 || $i == $nodesDeck} {
node $nodeTag $corX $corY $corZ -mass [expr $m/2.] [expr $m/2.] [expr $m/2.] [expr $mt/2.] [expr $mr/2.] [expr $mr/2.];
set corX [expr $corX+[lindex $Le [expr $spanCount-1]]];
lappend deckEndNodes $nodeTag;
set nodalWght [expr -$m*$g/2];
lappend deckNodalWghts $nodalWght;
} else {
if {$i == $bentNode} {
set m [expr ([lindex $M [expr $spanCount-1]]+[lindex $M $spanCount])/2];
set mr [expr ([lindex $Mr [expr $spanCount-1]]+[lindex $Mr $spanCount])/2];
set mt [expr ([lindex $Mt [expr $spanCount-1]]+[lindex $Mt $spanCount])/2];
node $nodeTag $corX $corY $corZ -mass $m $m $m $mt $mr $mr;
set bentNode [expr $bentNode+int([lindex $discrtX $spanCount])];
lappend bentNodes $nodeTag;
set spanCount [expr $spanCount+1];
set corX [expr $corX+[lindex $Le [expr $spanCount-1]]];
set nodalWght [expr -$m*$g];
lappend deckNodalWghts $nodalWght;
} else {
node $nodeTag $corX $corY $corZ -mass $m $m $m $mt $mr $mr;
set corX [expr $corX+[lindex $Le [expr $spanCount-1]]];
set nodalWght [expr -$m*$g];
lappend deckNodalWghts $nodalWght;
}
}
}



# -------- COLUMN NODES

set colBaseNodes "";
set colTipNodes "";
set plHingeLengths "";
set colNodalWghts "";

for {set i 1} {$i <= [expr [llength $X]-2]} {incr i} {
set nodeTag [expr 100*($i+1)];
set corX [lindex $X $i];
set corZ [expr -$colSpacing*($colpBent-1)/2.];
set Lc [lindex $colH $i];
set Lpl [expr 0.08*$Lc+0.022*$fy*$Dbar];
lappend plHingeLengths $Lpl;
set m [expr $rho*$Lc*$Ac/2.];
set mr [expr $rho*$Ac*pow($Lc,3)/24.];
set mt [expr $rho*$Icp*$Lc/2.];
for {set j 1} {$j <= $colpBent} {incr j} {
node [expr $nodeTag+int($j)] $corX [expr -$offset-$Lc] $corZ -mass $m $m $m $mr $mt $mr;
lappend colBaseNodes [expr $nodeTag+int($j)];
node [expr $nodeTag+10+int($j)] $corX [expr -$offset] $corZ -mass $m $m $m $mr $mt $mr;
lappend colTipNodes [expr $nodeTag+10+int($j)];
set corZ [expr $corZ+$colSpacing];
set colWght [expr -$m*$g];
lappend colNodalWghts $colWght;
}
}



# -------- BOUNDARY CONDITIONS

# At the Column Bases

if {$cpb == "single"} {
for {set i 1} {$i <= [llength $colBaseNodes]} {incr i} {
fix [lindex $colBaseNodes [expr $i-1]] 1 1 1 1 1 1;
}
} else {
for {set i 1} {$i <= [llength $colBaseNodes]} {incr i} {
fix [lindex $colBaseNodes [expr $i-1]] 1 1 1 0 0 0;
}
}

# At the Deck Ends

fix [lindex $deckEndNodes 0] 1 1 1 1 0 0;
fix [lindex $deckEndNodes 1] 0 1 1 1 0 0;


# -------- RIGID BENT CAP

for {set i 1} {$i <= [expr [llength $X]-2]} {incr i} {
set masterNodeTag [lindex $bentNodes [expr $i-1]];
for {set j 1} {$j <= $colpBent} {incr j} {
set slaveNodeTag [lindex $colTipNodes [expr $i*int($colpBent)-(int($colpBent)-$j+1)]];
rigidLink beam $masterNodeTag $slaveNodeTag;
}
}

# -------- UNIAXIAL MATERIAL FOR CONCRETE

uniaxialMaterial Concrete07 $ccTag $fcc $epscc $Ec $ft $epst $xp $xnc $rc;
uniaxialMaterial Concrete07 $ucTag $fc $epsc $Ec $ft $epst $xp $xnu $ru;
#uniaxialMaterial Concrete01 $ccTag $fcc $epscc $fccu $epsccu;
#uniaxialMaterial Concrete01 $ucTag $fc $epsc $fcu $epscu;

# -------- UNIAXIAL MATERIAL FOR STEEL

uniaxialMaterial Steel02 $sTag $fy $Es $b $R0 $cR1 $cR2;

# -------- CONCRETE COLUMN SECTION

set GJ [expr $Gc*$Jc];
set colSecTag 1;

section fiberSec $colSecTag -GJ $GJ {

patch circ $ccTag 10 10 0.0 0.0 0.0 0.52 0 360

patch circ $ucTag 10 2 0.0 0.0 0.52 0.61 0 360

layer circ $sTag 11 0.001 0.0 0.0 0.5021 8.18 171.82

layer circ $sTag 11 0.001 0.0 0.0 0.5021 188.18 351.82

}

# -------- GEOMETRIC TRANSFORMATION

set beamTrans 1;
set columnTrans 2;

geomTransf Linear $beamTrans 0 0 1;
geomTransf Linear $columnTrans 0 0 1;

# -------- DECK ELEMENTS

for {set i 1} {$i <= [expr $nodesDeck-1]} {incr i} {
element elasticBeamColumn $i [expr 100+$i] [expr 100+$i+1] $Ad $Ec $Gc $Jd $Idy $Idz $beamTrans;
}

# -------- COLUMN ELEMENTS

set colElements "";
for {set i 1} {$i <= [expr [llength $X]-2]} {incr i} {
set Lp [lindex $plHingeLengths [expr $i-1]];
for {set j 1} {$j <= $colpBent} {incr j} {
set iNode [lindex $colBaseNodes [expr $i*int($colpBent)-(int($colpBent)-$j+1)]];
set jNode [lindex $colTipNodes [expr $i*int($colpBent)-(int($colpBent)-$j+1)]];
set eleTag [expr 100*($i+1)+$j];
#element elasticBeamColumn $eleTag $iNode $jNode $Ac $Ec $Gc $Jc $Icy $Icz $columnTrans;
#element forceBeamColumn $eleTag $iNode $jNode 4 $colSecTag $columnTrans
element beamWithHinges $eleTag $iNode $jNode $colSecTag $Lp $colSecTag $Lp $Ec $Ac $Icz $Icy $Gc $Jc $columnTrans;
lappend colElements $eleTag;
}
}


# -------- GRAVITY LOADING


set GravTag 1;
set spanCur 1;
set dtGrav 0.1;
set Nsteps [expr int(1./$dtGrav)];
set tol 1.0e-8;
set NtestSteps 20;

pattern Plain $GravTag "Linear" {
for {set i 1} {$i <= $nodesDeck} {incr i} {
set nodeTag [expr 100+$i];
if {$nodeTag == [lindex $deckEndNodes 0]} {
set P [lindex $deckNodalWghts [expr $i-1]];
set l [lindex $Le [expr $spanCur-1]];
set w [expr -2.*$P/$l];
set Mz [expr -$w*pow($l,2)/12.];
load $nodeTag 0.0 $P 0.0 0.0 0.0 $Mz;
} elseif {$nodeTag == [lindex $deckEndNodes 1]} {
set P [lindex $deckNodalWghts [expr $i-1]];
set l [lindex $Le [expr $spanCur-1]];
set w [expr -2.*$P/$l];
set Mz [expr $w*pow($l,2)/12.];
load $nodeTag 0.0 $P 0.0 0.0 0.0 $Mz;
} elseif {$nodeTag == [lindex $bentNodes [expr $spanCur-1]]} {
set P [lindex $deckNodalWghts [expr $i-1]];
set P1 [lindex $deckNodalWghts [expr $i-2]];
set P2 [lindex $deckNodalWghts [expr $i]];
set l1 [lindex $Le [expr $spanCur-1]];
set l2 [lindex $Le [expr $spanCur]];
set w1 [expr -$P1/$l1];
set w2 [expr -$P2/$l2];
set M1z [expr $w1*pow($l1,2)/12.];
set M2z [expr $w2*pow($l2,2)/12.];
load $nodeTag 0.0 $P 0.0 0.0 0.0 [expr $M1z-$M2z];
set spanCur [expr $spanCur+1];
} else {
set P [lindex $deckNodalWghts [expr $i-1]];
load $nodeTag 0.0 $P 0.0 0.0 0.0 0.0;
}
}

for {set j 1} {$j <= [llength $colTipNodes]} {incr j} {
set nodeTag [lindex $colTipNodes [expr $j-1]];
set P [lindex $colNodalWghts [expr $j-1]];
load $nodeTag 0.0 $P 0.0 0.0 0.0 0.0;
}
}

# -------- GRAVITY LOADING ANALYSES

constraints Transformation

numberer RCM

system BandGeneral

test EnergyIncr $tol $NtestSteps

algorithm Newton

integrator LoadControl $dtGrav

analysis Static

analyze $Nsteps

wipeAnalysis
loadConst -time 0.0;
Jeena
Posts: 50
Joined: Tue Mar 19, 2013 12:40 pm
Location: Virginia Tech

Re: Moment values at the pin-based columns

Post by Jeena »

Hi,

How did you check the column moments ?

I added element recorders and I tried to run your model. For each element, there is zero moment at the lower end (which are pinned) and some moment were present in the top end ...

Try to record the reactions at the base nodes also. If the columns are pinned, then you will see zero moment reactions at the base nodes...

Thanks,
Jeena
batuturk
Posts: 9
Joined: Sun Jun 14, 2015 10:27 am
Location: UCSD

Re: Moment values at the pin-based columns

Post by batuturk »

Hi Jeena,

Thanks for reply. I was actually getting moment values at the base nodes that are pinned in dynamic analysis. I figured out that I assigned translational and rotational masses to the pinned base ends. That's why, I was getting small moment values at the base nodes when I ran my model with a ground motion.
michaelbazie
Posts: 1
Joined: Thu Nov 12, 2015 3:19 pm
Location: PRAIRIE VIEW A&M UNIVERSITY

Re: Moment values at the pin-based columns

Post by michaelbazie »

Hi,
I am currently working on a school project that requires me to analyse an entire bridge. I looked in the forum and found this bridge that I will be using as an example. I read the tcl script and a lot of things are very confusing to me. I am also new to Opensees and I am asking for help if you guys don't mind.
Post Reply