Dear all:
I want to impose a curvature history to a zero length element in order to analyse the corresponding moment-curvature response.
The curvature history doesn’t present regular increments. I made a for each cycle for the n incremental curvatures of the history and i used the cyclic static analysis in the push variant.
When I analyse the results, I verified that for RS model it presents the expected effects. But using steel 02 the Bauschinger effect is not captured.
I noted that RS model has reversal memory locations.
Since I’m considering the same model, changing only the material type, do you think this is because of the foreach procedure vs. material model?
Is there another way to impose directly a displacement history to a node, using the zero length elements?
Best regards
Nuno
impose displacement
Moderators: silvia, selimgunay, Moderators
Re: impose displacement
Foreach procedure is ok for applying cyclic static analysis. It might be that you did not have enough points in your displacement history to capture the Bauschinger effect when using Steel02. What do you see instead of what you expect?
Would you send me material definition you are using for Steel02 and RS?
I tested this two materials several times and never have problems you are mentioning.
Would you send me material definition you are using for Steel02 and RS?
I tested this two materials several times and never have problems you are mentioning.
Re: impose displacement
Dear Vesna:
I made a material library script that I source for other scripts and always have the expected form in the curve.
In the steel 02 model, the unloading zone is a straight line instead of the curve that Menegotto Pinto (or Prof. Filippou implementation) R parameter defines. I have very small increments and 3000 points defining my history. The materials work well and that’s why I think that it was an analysis problem.
In the meantime, I changed my script using an input time series and a sp load, like the procedure I use for stress strain obtain but with a zerolength instead of a truss element . The problem was solved.
Since I was performing a push to every point of my curvature history, ergo n sequential cycles with a small increment, may be it wasn’t considering the previous cycles or deformation and resets the model to initial form.
Thanks for your answer but I think the way I’m doing now is better and avoids the cycle problems...
If I may ask another thing...my analysis isn’t stopping for my Nstep value. I tried some changes and I saw that when the cycle enters into the additional algorithms to converge (step 1682), it loses the reference. after that it gives infinte points with a very small curvature and constante moment. I will post that part of the code . If you have some suggestion I’ll be very grateful.
N
code:
set Tol 1.0e-6 ;
set IDctrlNode 1002; # node where displacement is read for displacement control
set IDctrlDOF 3; # degree of freedom of displacement read for displacement control
set dt 1.0;
set filename hrn02.txt;
pattern Plain 1 "Series -dt $dt -filePath $filename" {
sp 1002 3 1
}
system UmfPack
constraints Penalty 1.0e12 1.0e12
set dl $dt;
integrator LoadControl $dl 1 $dl $dl
test NormDispIncr 1.0e-6 100
set algorithmType Newton ;
algorithm $algorithmType;
numberer RCM
analysis Static
set Nsteps 1683; #the model needs to change the algorithm in step 1682.
set ok [analyze $Nsteps];
# if analysis fails, we try some other stuff
# performance is slower inside this loop
#
if {$ok != 0} {
set ok 0;
set controlDisp 0.0;
test NormDispIncr $Tol 20 0
while {$controlDisp != 0.004 && $ok == 0} { ; #0.004 is the last curvature in the file
set ok [analyze 1]
set controlDisp [nodeDisp $IDctrlNode $IDctrlDOF ]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 10 0
algorithm Newton -initial
set ok [analyze 1]
test NormDispIncr $Tol 10 0
algorithm $algorithmType
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1]
algorithm $algorithmType
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1]
algorithm $algorithmType
}
}
}
#
puts "Pushover Done. Control Disp=[nodeDisp $IDctrlNode $IDctrlDOF]"
I made a material library script that I source for other scripts and always have the expected form in the curve.
In the steel 02 model, the unloading zone is a straight line instead of the curve that Menegotto Pinto (or Prof. Filippou implementation) R parameter defines. I have very small increments and 3000 points defining my history. The materials work well and that’s why I think that it was an analysis problem.
In the meantime, I changed my script using an input time series and a sp load, like the procedure I use for stress strain obtain but with a zerolength instead of a truss element . The problem was solved.
Since I was performing a push to every point of my curvature history, ergo n sequential cycles with a small increment, may be it wasn’t considering the previous cycles or deformation and resets the model to initial form.
Thanks for your answer but I think the way I’m doing now is better and avoids the cycle problems...
If I may ask another thing...my analysis isn’t stopping for my Nstep value. I tried some changes and I saw that when the cycle enters into the additional algorithms to converge (step 1682), it loses the reference. after that it gives infinte points with a very small curvature and constante moment. I will post that part of the code . If you have some suggestion I’ll be very grateful.
N
code:
set Tol 1.0e-6 ;
set IDctrlNode 1002; # node where displacement is read for displacement control
set IDctrlDOF 3; # degree of freedom of displacement read for displacement control
set dt 1.0;
set filename hrn02.txt;
pattern Plain 1 "Series -dt $dt -filePath $filename" {
sp 1002 3 1
}
system UmfPack
constraints Penalty 1.0e12 1.0e12
set dl $dt;
integrator LoadControl $dl 1 $dl $dl
test NormDispIncr 1.0e-6 100
set algorithmType Newton ;
algorithm $algorithmType;
numberer RCM
analysis Static
set Nsteps 1683; #the model needs to change the algorithm in step 1682.
set ok [analyze $Nsteps];
# if analysis fails, we try some other stuff
# performance is slower inside this loop
#
if {$ok != 0} {
set ok 0;
set controlDisp 0.0;
test NormDispIncr $Tol 20 0
while {$controlDisp != 0.004 && $ok == 0} { ; #0.004 is the last curvature in the file
set ok [analyze 1]
set controlDisp [nodeDisp $IDctrlNode $IDctrlDOF ]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 10 0
algorithm Newton -initial
set ok [analyze 1]
test NormDispIncr $Tol 10 0
algorithm $algorithmType
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1]
algorithm $algorithmType
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1]
algorithm $algorithmType
}
}
}
#
puts "Pushover Done. Control Disp=[nodeDisp $IDctrlNode $IDctrlDOF]"
Re: impose displacement2
Dear vesna.
I used the gettime comand and a variable to limit the time inside the while cycle...problem solved.
thanks for your help...
I used the gettime comand and a variable to limit the time inside the while cycle...problem solved.
thanks for your help...
-
- Posts: 2
- Joined: Tue Jan 04, 2011 8:17 am
- Contact: