I am facing some convergence issues for a code to simulate the axial behaviour of a concrete bar as per the ConcreteCM model. Here is the code:
#units: N, mm
model BasicBuilder -ndm 1 -ndf 1
node 1 0.0 0.0
node 2 1000.0 0.0
fix 1 1
uniaxialMaterial ConcreteCM 1 30 0.002 27386.13 1.27 2 0 0 0 0
#uniaxialMaterial Steel01 1 415 2.0e6 0
element truss 1 1 2 2500 1
pattern Plain 1 "Linear" {
load 2 1
}
recorder Element -file force.out -time -ele 1 forces
system BandGeneral
numberer RCM
constraints Plain
integrator DisplacementControl 2 1 0.001
test NormDispIncr 1.0e-12 1000
algorithm Newton
analysis Static
set ok [analyze 1]
set ok 0
set steps 100
set i 1
while {$ok == 0 && $i <= $steps} {
algorithm Newton
set ok [analyze 1]
if {$ok != 0} {
puts "Switching to modified NR!"
algorithm ModifiedNewton -initial
set ok [analyze 1]
if {$ok == 0} {
puts {Switching back to NR!}
algorithm Newton
}
}
set i [expr $i+1]
}
if {$ok != 0} {
puts "Analysis failed!"
} else {
puts "Analysis successful!"
}
Thanks in advance for your help!
Convergence issue for ConcreteCM
Moderators: silvia, selimgunay, Moderators
Re: Convergence issue for ConcreteCM
You can try a less tight convergence criterion (1e-6), a smaller step, and the UmfPack solver. You can also use a prescribed displacement load instead.