Hi all,
I have a question about how opensees calculate eigenvalues with beamWithHinges element. Because when I changed my column elements to elasticBeamColumn from beamWithHinges element I get different eigenvalues. I'm using Concrete07 material beamWithHinges element for my column elements. When I changed beamWithHinges element to elasticBeamColumn element with the SAME modulus of elasticity, I get different periods. With the beamWithHinges column elements(Concrete07 - initial modulus of elasticity of Ec), the fundamental period I got is around 0.6 s. With the elasticBeamColumn elements(Elastic material with modulus of elasticity of Ec), the fundamental period I got is around 0.5 s. I'm wondering if the reason is beamWithHinges element or Concrete07 material? Here is my bridge 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;
}
}
recorder Node -file ddat.out -time -node 201 -dof 1 2 3 4 5 6 reaction
# -------- GRAVITY LOADING ANALYSES
constraints Transformation
numberer RCM
system FullGeneral
test EnergyIncr $tol $NtestSteps
algorithm Newton
integrator LoadControl $dtGrav
analysis Static
analyze $Nsteps
wipeAnalysis
loadConst -time 0.0;
set lambda [eigen 10];
Different periods for linear and nonlinear elements
Moderators: silvia, selimgunay, Moderators
Re: Different periods for linear and nonlinear elements
the 2 should give same result if initial stifness is the same, the beamWithHinges is in fact the force beam column with special interation. instead of using a fiber section use an elastic section and compare the results. if the same then use elastic materials in a fiber section.