SteelMPF problem?

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

Moderators: silvia, selimgunay, Moderators

Post Reply
drndosh
Posts: 8
Joined: Tue Feb 23, 2016 5:11 am
Location: University of Belgrade

SteelMPF problem?

Post by drndosh »

Greetings,
I’ve modeled simple pinned brace with imperfection and corotational transformation for buckling with two force based beam-column elements. At one end I’ve set controlled displacement with sp constraint. Used materials are, in one case SteelMPF, and in the other Steel02. Problem is that, when using Steel02 material analysis can be carried out and I can obtain buckling curve, but with SteelMPF material, analysis stops at iteration zero with error message. Material parameters are in both cases the same.
Also when performing cyclic loading with same approach, analysis can be carried out for both cases, but with SteelMPF material showing several error messages: ForceBeamColumn3d::update() -- could not invert flexibility, and then finishing analysis. Results are slightly different when comparing two materials, but I think that is expected due to the overshooting effect. For cyclic loading, analysis time with Steel02 takes about 40 s, but with SteelMPF it takes up to 3 minutes.
Is there some error or bug in SteelMPF?
Here is a code for model with monotonic loading. SteelMPF is active now. To activate Steel02, just comment SteelMPF and uncomment Steel02.

wipe
set startTime [clock clicks -milliseconds]

model BasicBuilder -ndm 3 -ndf 6

#Node Definition
node 1 0.0 0.0 0.0
node 2 2.7 0.0 0.0
node 3 1.35 0.0 [expr 2.7/100]


set mm [expr 1/1000.0]

#Supports
fix 1 1 1 1 1 0 0
fix 2 0 1 1 1 0 0

#Geometric transformation
geomTransf Corotational 1 0 0 1

set SecTagTorsion 1

# MATERIAL parameters -------------------------------------------------------------------
# define MATERIAL properties ----------------------------------------
set Fy 355e3
set E 210e6; # Steel Young's Modulus
set nu 0.3;
set G [expr $E/2./[expr 1+$nu]]; # Torsional stiffness Modulus

set matID 1

set Bs 0.01; # strain-hardening ratio
set R0 25; # control the transition from elastic to plastic branches -- make more like the rest.
set cR1 0.925; # control the transition from elastic to plastic branches
set cR2 0.15; # control the transition from elastic to plastic branches

set a1 0.012
set a2 1
set a3 0.012
set a4 1

uniaxialMaterial Elastic 1 $E

#uniaxialMaterial SteelMPF $mattag $fyp $fyn $E0 $bp $bn $R0 $cR1 $cR2 <$a1 $a2 $a3 $a4>
uniaxialMaterial SteelMPF 2 $Fy $Fy $E $Bs $Bs $R0 $cR1 $cR2 $a1 $a2 $a3 $a4

#uniaxialMaterial Steel02 2 $Fy $E $Bs $R0 $cR1 $cR2 $a1 $a2 $a3 $a4


#CHSbrace {eleTag iNode jNode D t matTag transfTag args}
proc CHSbrace {eleTag iNode jNode D t matTag transfTag args} {

set nCirc 20
if {[lsearch $args "-nCirc"] != -1} {
set loc [lsearch $args "-nCirc"]
set nCirc [lindex $args [expr $loc+1]]
}

set nRad 3
if {[lsearch $args "-nRad"] != -1} {
set loc [lsearch $args "-nRad"]
set nRad [lindex $args [expr $loc+1]]
}

set nip 4
if {[lsearch $args "-nip"] != -1} {
set loc [lsearch $args "-nip"]
set nip [lindex $args [expr $loc+1]]
}

CHSectionD $eleTag $D $t $matTag $nCirc $nRad

element forceBeamColumn $eleTag $iNode $jNode $transfTag NewtonCotes $eleTag $nip
#element forceBeamColumn $eleTag $iNode $jNode $nip $eleTag $transfTag
}


proc CHSectionD {secID D t matID nCirc nRad} {

global SecTagTorsion
set SecTag3D [expr $secID * 10];

set yCenter 0.0
set zCenter 0.0

set intRad [expr $D/2-$t]
set extRad [expr $D/2]

set fullCirc 360;


set SecTag3D [expr $secID * 100]; # ID tag for combined behavior for 3D model

section fiberSec $SecTag3D {
#patch circ $matTag $numSubdivCirc $numSubdivRad $yCenter $zCenter $intRad $extRad $startAng $endAng
patch circ $matID $nCirc $nRad $yCenter $zCenter $intRad $extRad 0.0 $fullCirc
}

# assign torsional Stiffness for 3D Model
section Aggregator $secID $SecTagTorsion T -section $SecTag3D; # combine section properties

}


#CHSbrace {eleTag iNode jNode D t matTag transfTag args}
CHSbrace 1 1 3 [expr 139.7*$mm] [expr 6.3*$mm] 2 1 -nip 7 -nCirc 20 -nRad 5
CHSbrace 2 2 3 [expr 139.7*$mm] [expr 6.3*$mm] 2 1 -nip 7 -nCirc 20 -nRad 5

#Recorders
recorder Node -xml nodeReac.xml -node 1 2 -time -dof 1 2 6 reaction
recorder Node -file nodeReac.out -node 1 2 -time -dof 1 2 6 reaction
recorder Node -file nodeDisp.out -node 2 -time -dof 1 disp


# Note, any pattern type can be used here: Linear, Path, Sine, etc.
pattern Plain 1 Linear {
# Set reference displacement value
# node dof value
sp 2 1 -1.0
}


set dl 0.00001

integrator LoadControl $dl 1 $dl $dl
constraints Transformation
test NormDispIncr 1.0e-6 500
algorithm Newton
numberer RCM
system BandSPD
analysis Static
#analyze 549
analyze 10000
puts "Done!"

set finishTime [clock clicks -milliseconds];
set timeSeconds [expr ($finishTime-$startTime)/1000];
set timeMinutes [expr ($timeSeconds/60)];
set timeHours [expr ($timeSeconds/3600)];
set timeMinutes [expr ($timeMinutes - $timeHours*60)];
set timeSeconds [expr ($timeSeconds - $timeMinutes*60 - $timeHours*3600)];
puts "\n----------------------------------";
#puts "\a";
puts "TOTAL TIME TAKEN $timeHours:$timeMinutes:$timeSeconds";
KristijanKolozvari
Posts: 4
Joined: Wed May 11, 2016 4:35 pm

Re: SteelMPF problem?

Post by KristijanKolozvari »

Thank you for your note. I really appreciate that you found this error in SteelMPF. I have ran your example in the source code and I found the bug. I will communicate with OpenSees developers to fix it, and hopefully SteelMPF will work correctly in next release of OpenSees.

Please let me know if you have any other questions.

Thanks.

Kristijan
drndosh
Posts: 8
Joined: Tue Feb 23, 2016 5:11 am
Location: University of Belgrade

Re: SteelMPF problem?

Post by drndosh »

You are welcome. For now I don't have any question.
Wish you luck.

Best Regards,
Nemanja
Post Reply