I am having trouble getting the recorder to work for the Flexure-Shear Interaction Displacement-Based Beam-Column Element.
I can record global section response, but can not record fiber stresses and strains.
I contacted Prof. Massone and he replied as follows:
"...there is a problem with the recorder. You can contact OpenSees to see if they have fixed it already..."
I was curious if this fix has been done and if so, how I could gain access to it?
Thank you,
Recorder Error for Flexure-Shear Interaction BC Element
Moderators: silvia, selimgunay, Moderators
Recorder Error for Flexure-Shear Interaction BC Element
Joshua Pugh
University of Washington
University of Washington
Here is a sample model.
The global recorders work fine. The section strain and stress recorders are not working...the generated files are empty.
wipe; model basic -ndm 2 -ndf 3
set tolAx 1.0e-3; set iterAx 100;
set tolLatNew 1.0e-6; set iterLatNew 100;
set tolLatIni 1.0e-5; set iterLatIni 1000;
set dUi 0.001; # Displacement increment
set maxU 2.16; # Max. Displacement
#concrete parameters
set fc -5.0; set e0 -0.002;
set n [expr 0.8-$fc*6.895/17];
set r [expr 0.67 -$fc*6.895/62];
set fcr [expr (0.33*sqrt(-$fc*6.895))/6.895];
set Et [expr (5000*sqrt(-$fc*6.895))/6.895];
set ecr [expr $fcr/$Et];
set b 0.4;
set kc 1.215;
set fcc [expr $kc*$fc]; set e0c [expr $kc*$e0];
set rc [expr $r/$kc];
set alphaC 0.32;set alphaT 0.08;
#steel parameters
set Fy4 67.1;
set Es 29000;
set eps4y [expr $Fy4/$Es];
set Fy42 100.;
set eps42 .04;
set Fy43 110.;
set eps43 0.10;
set Fy2 75.7;
set eps2y [expr $Fy2/$Es];
set Fy22 84.;
set eps22 .04;
set Fy23 84.5;
set eps23 .06;
#concrete (confined and unconfined)
uniaxialMaterial Concrete06 1 $fc $e0 $n $r $alphaC $fcr $ecr $b $alphaT;
uniaxialMaterial Concrete06 2 $fcc $e0c $n $rc $alphaC $fcr $ecr $b $alphaT;
# steel (bound., web and horiz. reinforcement)
uniaxialMaterial Hysteretic 1003 $Fy2 $eps2y $Fy22 $eps22 $Fy23 $eps23 -$Fy2 -$eps2y -$Fy22 -$eps22 -$Fy23 -$eps23 0 0 0 0;
uniaxialMaterial Hysteretic 1004 $Fy4 $eps4y $Fy42 $eps42 $Fy43 $eps43 -$Fy4 -$eps4y -$Fy42 -$eps42 -$Fy43 -$eps43 0 0 0 0;
# Define cross-section
set t1 6.0; set NStrip1 2; # thickness 1
set t2 6.0; set NStrip2 4; # thickness 2
set t3 6.0; set NStrip3 2; # thickness 3
geomTransf LinearInt 1
set np 1; # int. points
set C 0.4; # center of rotation
#section definition
section FiberInt 2 -NStrip $NStrip1 $t1 $NStrip2 $t2 $NStrip3 $t3 {
#vertical fibers
fiber -55 0 60 2; fiber -55 0 2.1 1004;
fiber -45 0 60 2; fiber -45 0 2.1 1004;
fiber -30 0 120 1; fiber -30 0 0.334 1003;
fiber -10 0 120 1; fiber -10 0 0.334 1003;
fiber 10 0 120 1; fiber 10 0 0.334 1003;
fiber 30 0 120 1; fiber 30 0 0.334 1003;
fiber 45 0 60 2; fiber 45 0 2.1 1004;
fiber 55 0 60 2; fiber 55 0 2.1 1004;
#horiz. reinf.
Hfiber 0 0 0.80 1003;
Hfiber 0 0 2.40 1004;
}
#nodes
node 1 0 0.0; node 2 0 144;
#element definition
element dispBeamColumnInt 1 1 2 $np 2 1 $C
fix 1 1 1 1
# Set axial load
pattern Plain 1 Constant {
load 2 0.0 -360. 0.0
}
initialize; integrator LoadControl 0 1 0 0;
system SparseGeneral -piv; test NormUnbalance $tolAx $iterAx 0;
numberer Plain; constraints Plain;
algorithm ModifiedNewton -initial; analysis Static;
# perform the gravity load analysis,
analyze [expr 1]
# Set the gravity loads to be constant & reset the time in the domain
loadConst -time 0.0
remove recorders
# set lateral load
pattern Plain 2 Linear {
#load 2 1.0 0.0 0;
load 2 1.0 0.0 -96.0 0.0 0.0 0.0;
}
system BandGeneral; constraints Transformation; numberer Plain;
# Create a recorder to monitor nodal displacement and element forces
recorder Node -file nodeTop.out -node 2 -dof 1 disp
recorder Element -file elem1.out -time -ele 1 globalForce
# recorder for element1 section1 steel stress/strain and section force-def.
recorder Element -file Sect_FandD.out -ele 1 section 1 forceAndDeformation
recorder Element -file Sect_eX.out -time -ele 1 section 1 ex
recorder Element -file Sect_eY.out -ele 1 section 1 fiber eY
recorder Element -file Sect_sX.out -ele 1 section 1 sX
recorder Element -file Sect_sY.out -ele 1 section 1 sY
recorder Element -file Sect_s1.out -ele 1 section 1 s1;
test NormDispIncr $tolLatNew $iterLatNew;
algorithm ModifiedNewton -initial
analysis Static
set dU $dUi;
set numSteps [expr int($maxU/$dU)];
integrator DisplacementControl 2 1 $dU 1 $dU $dU
#source cycle2.tcl
#### end
set ok [analyze $numSteps]; set jump 1;
if {$ok != 0} {
set currentDisp [nodeDisp 2 1]
set ok 0
while {abs($currentDisp) < abs($maxU)} {
set ok [analyze 1]
puts "\n Trying.. $currentDisp\n"
# if the analysis fails try initial tangent iteration
if {$ok != 0} {
puts "\n regular newton failed .. try an initial stiffness"
test NormDispIncr $tolLatIni $iterLatIni 0;
algorithm ModifiedNewton -initial ;
set ok [analyze 1]
puts "\n Trying.. $currentDisp\n"
if {$ok == 0} {
puts " that worked .. back to regular newton \n"
set jump 1
integrator DisplacementControl 2 1 $dU 1
} else {
puts "\n that didn't worked .. Try next point\n"
set jump [expr $jump+1];
integrator DisplacementControl 2 1 [expr $dU*$jump] 1
}
test NormDispIncr $tolLatNew $iterLatNew
algorithm Newton
} else {set jump 1
integrator DisplacementControl 2 1 $dU 1
}
set currentDisp [expr $currentDisp+$dU]
}
}
#### end
The global recorders work fine. The section strain and stress recorders are not working...the generated files are empty.
wipe; model basic -ndm 2 -ndf 3
set tolAx 1.0e-3; set iterAx 100;
set tolLatNew 1.0e-6; set iterLatNew 100;
set tolLatIni 1.0e-5; set iterLatIni 1000;
set dUi 0.001; # Displacement increment
set maxU 2.16; # Max. Displacement
#concrete parameters
set fc -5.0; set e0 -0.002;
set n [expr 0.8-$fc*6.895/17];
set r [expr 0.67 -$fc*6.895/62];
set fcr [expr (0.33*sqrt(-$fc*6.895))/6.895];
set Et [expr (5000*sqrt(-$fc*6.895))/6.895];
set ecr [expr $fcr/$Et];
set b 0.4;
set kc 1.215;
set fcc [expr $kc*$fc]; set e0c [expr $kc*$e0];
set rc [expr $r/$kc];
set alphaC 0.32;set alphaT 0.08;
#steel parameters
set Fy4 67.1;
set Es 29000;
set eps4y [expr $Fy4/$Es];
set Fy42 100.;
set eps42 .04;
set Fy43 110.;
set eps43 0.10;
set Fy2 75.7;
set eps2y [expr $Fy2/$Es];
set Fy22 84.;
set eps22 .04;
set Fy23 84.5;
set eps23 .06;
#concrete (confined and unconfined)
uniaxialMaterial Concrete06 1 $fc $e0 $n $r $alphaC $fcr $ecr $b $alphaT;
uniaxialMaterial Concrete06 2 $fcc $e0c $n $rc $alphaC $fcr $ecr $b $alphaT;
# steel (bound., web and horiz. reinforcement)
uniaxialMaterial Hysteretic 1003 $Fy2 $eps2y $Fy22 $eps22 $Fy23 $eps23 -$Fy2 -$eps2y -$Fy22 -$eps22 -$Fy23 -$eps23 0 0 0 0;
uniaxialMaterial Hysteretic 1004 $Fy4 $eps4y $Fy42 $eps42 $Fy43 $eps43 -$Fy4 -$eps4y -$Fy42 -$eps42 -$Fy43 -$eps43 0 0 0 0;
# Define cross-section
set t1 6.0; set NStrip1 2; # thickness 1
set t2 6.0; set NStrip2 4; # thickness 2
set t3 6.0; set NStrip3 2; # thickness 3
geomTransf LinearInt 1
set np 1; # int. points
set C 0.4; # center of rotation
#section definition
section FiberInt 2 -NStrip $NStrip1 $t1 $NStrip2 $t2 $NStrip3 $t3 {
#vertical fibers
fiber -55 0 60 2; fiber -55 0 2.1 1004;
fiber -45 0 60 2; fiber -45 0 2.1 1004;
fiber -30 0 120 1; fiber -30 0 0.334 1003;
fiber -10 0 120 1; fiber -10 0 0.334 1003;
fiber 10 0 120 1; fiber 10 0 0.334 1003;
fiber 30 0 120 1; fiber 30 0 0.334 1003;
fiber 45 0 60 2; fiber 45 0 2.1 1004;
fiber 55 0 60 2; fiber 55 0 2.1 1004;
#horiz. reinf.
Hfiber 0 0 0.80 1003;
Hfiber 0 0 2.40 1004;
}
#nodes
node 1 0 0.0; node 2 0 144;
#element definition
element dispBeamColumnInt 1 1 2 $np 2 1 $C
fix 1 1 1 1
# Set axial load
pattern Plain 1 Constant {
load 2 0.0 -360. 0.0
}
initialize; integrator LoadControl 0 1 0 0;
system SparseGeneral -piv; test NormUnbalance $tolAx $iterAx 0;
numberer Plain; constraints Plain;
algorithm ModifiedNewton -initial; analysis Static;
# perform the gravity load analysis,
analyze [expr 1]
# Set the gravity loads to be constant & reset the time in the domain
loadConst -time 0.0
remove recorders
# set lateral load
pattern Plain 2 Linear {
#load 2 1.0 0.0 0;
load 2 1.0 0.0 -96.0 0.0 0.0 0.0;
}
system BandGeneral; constraints Transformation; numberer Plain;
# Create a recorder to monitor nodal displacement and element forces
recorder Node -file nodeTop.out -node 2 -dof 1 disp
recorder Element -file elem1.out -time -ele 1 globalForce
# recorder for element1 section1 steel stress/strain and section force-def.
recorder Element -file Sect_FandD.out -ele 1 section 1 forceAndDeformation
recorder Element -file Sect_eX.out -time -ele 1 section 1 ex
recorder Element -file Sect_eY.out -ele 1 section 1 fiber eY
recorder Element -file Sect_sX.out -ele 1 section 1 sX
recorder Element -file Sect_sY.out -ele 1 section 1 sY
recorder Element -file Sect_s1.out -ele 1 section 1 s1;
test NormDispIncr $tolLatNew $iterLatNew;
algorithm ModifiedNewton -initial
analysis Static
set dU $dUi;
set numSteps [expr int($maxU/$dU)];
integrator DisplacementControl 2 1 $dU 1 $dU $dU
#source cycle2.tcl
#### end
set ok [analyze $numSteps]; set jump 1;
if {$ok != 0} {
set currentDisp [nodeDisp 2 1]
set ok 0
while {abs($currentDisp) < abs($maxU)} {
set ok [analyze 1]
puts "\n Trying.. $currentDisp\n"
# if the analysis fails try initial tangent iteration
if {$ok != 0} {
puts "\n regular newton failed .. try an initial stiffness"
test NormDispIncr $tolLatIni $iterLatIni 0;
algorithm ModifiedNewton -initial ;
set ok [analyze 1]
puts "\n Trying.. $currentDisp\n"
if {$ok == 0} {
puts " that worked .. back to regular newton \n"
set jump 1
integrator DisplacementControl 2 1 $dU 1
} else {
puts "\n that didn't worked .. Try next point\n"
set jump [expr $jump+1];
integrator DisplacementControl 2 1 [expr $dU*$jump] 1
}
test NormDispIncr $tolLatNew $iterLatNew
algorithm Newton
} else {set jump 1
integrator DisplacementControl 2 1 $dU 1
}
set currentDisp [expr $currentDisp+$dU]
}
}
#### end
Joshua Pugh
University of Washington
University of Washington