Increasing output time step increment
Moderators: silvia, selimgunay, Moderators
Increasing output time step increment
I am using a script to run a parameter study on a model. I was using a transient analysis with constant time steps in windows base system.
1-because of small time increment in transient analysis the output files are very large. is there any way to increase recorders time step increment to reduce the size of output files?
For example in analysis with dt = 0.001s outputs record only in each 0.01s.
2-Can opensees.exe use dual core CPU features in MS WINDOWS XP systems?
1-because of small time increment in transient analysis the output files are very large. is there any way to increase recorders time step increment to reduce the size of output files?
For example in analysis with dt = 0.001s outputs record only in each 0.01s.
2-Can opensees.exe use dual core CPU features in MS WINDOWS XP systems?
I think you should follow Frank's suggestion to use " -dT $value" argument after the filename:
recorder Node -file Rnode.out -dT 0.01 -time -node 1 3 5 -dof 1 2 reaction
this should work, please let me know if it doesn't.
recorder Node -file Rnode.out -dT 0.01 -time -node 1 3 5 -dof 1 2 reaction
this should work, please let me know if it doesn't.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Sample oe frcorder command
it is a sample recorder command that I used in my scripts and works well.
recorder Node -file rott.out -dT 0.02 -time -node 3 -dof 6 disp
In this line the z axes rotation of node 3 with 0.02s time increment will be recorded in file rott.out
best regards
recorder Node -file rott.out -dT 0.02 -time -node 3 -dof 6 disp
In this line the z axes rotation of node 3 with 0.02s time increment will be recorded in file rott.out
best regards
Many thanks for everyone!
I am sorry that my script still doesn't work. Is there a mistake in my script?
It is part of my script below, perhaps the problem is in procRC.tcl. But I cann't check it out.
It is very long
#######################################
pattern Plain 2 Linear {
load 10 0 -285100 0 -const
}
system ProfileSPD
constraints Plain
integrator LoadControl 0 1 0 0
test NormDispIncr 1e-8 150
algorithm Newton
numberer RCM
analysis Static
analyze 1
loadConst -time 0.0
pattern Plain 1 Linear {
#load nd? Fx? Fy? Mz?
load 10 1 0 0
}
recorder Node -file pu.out -dT 0.01 -time -node 10 -dof 1 disp
set peakpts [list 0.01 5 5 10 10 15 15 20 20 25 25 30 30 40 40]
set increment 250
set nodeTag 10
set dofTag 1
procRC $increment $nodeTag $dofTag $peakpts
# print the results at node and at all elements
print node
#print element
#########################################
########################################################################################################
#
# procRC.tcl
## procedure for setting up a reversed cycle loading scheme. The input are mainly the
## peak points for the loading.
## The procedure primarily uses Displacement control for loading, if it fails uses ArcLength control
## created : QU HUI (quhui@fzu.edu.cn) dated: AUGUST. 2006
########################################################################################################
proc procRC { incre nodeTag dofTag peakpts } {
set displayTag 0;
set numTimes 1500;
set x [lindex $peakpts 0];
set dU [expr $x/$incre];
#set dU0 [expr $dU/1000];
set dU0 [expr $dU/10000];
integrator DisplacementControl $nodeTag $dofTag 0.0 1 $dU $dU
analysis Static
analyze $incre
integrator DisplacementControl $nodeTag $dofTag 0.0 1 [expr -$dU] [expr -$dU]
analyze [expr 2*$incre]
integrator DisplacementControl $nodeTag $dofTag 0.0 1 $dU $dU
analyze $incre
## end the first peak pt start for others
for {set j 1} {$j < [llength $peakpts]} {incr j 1} {
set y [lindex $peakpts $j]
set dSt [expr $y/$dU]
set dS [expr int($dSt)]
test NormDispIncr 1e-8 $numTimes $displayTag
algorithm Newton
############# start loading cycle ##################
set t 0;
while {$t != $dS} {
integrator DisplacementControl $nodeTag $dofTag 0.0 1 $dU $dU
set ok [analyze 1]
incr t 1;
if {$ok != 0} {
# if {$t == $dS} {break};
puts "Displacement control failed ..... trying Arc-Length control"
set currentDisp [nodeDisp $nodeTag $dofTag]
puts "Current Displacement is $currentDisp"
# algorithm Linear
test NormDispIncr 1e-6 $numTimes $displayTag
#algorithm ModifiedNewton
# integrator DisplacementControl $nodeTag $dofTag 0.0 1 $dU0 $dU0
# integrator DisplacementControl $nodeTag $dofTag 0.0 10 $dU0 $dU0
integrator ArcLength [expr $dU0] 1.0
# set ok [analyze 1]
analyze 1
}
# puts "that worked ..... back to regular Newton "
test NormDispIncr 1e-8 $numTimes $displayTag
# algorithm Newton
}
################## end of loading cycle, start unloading cycle ########
set t 0;
while {$t != [expr 2*$dS]} {
integrator DisplacementControl $nodeTag $dofTag 0.0 1 [expr -$dU] [expr -$dU]
set ok [analyze 1]
incr t 1;
if {$ok != 0} {
# if {$t == [expr 2*$dS]} {break};
puts "Displacement control failed ..... trying Arc-Length control"
set currentDisp [nodeDisp $nodeTag $dofTag]
puts "Current Displacement is $currentDisp"
# algorithm Linear
test NormDispIncr 1e-6 $numTimes $displayTag
#algorithm ModifiedNewton
# integrator DisplacementControl $nodeTag $dofTag 0.0 1 [expr -$dU0] [expr -$dU0]
# integrator DisplacementControl $nodeTag $dofTag 0.0 10 [expr -$dU0] [expr -$dU0]
integrator ArcLength [expr $dU0] 1.0
# set ok [analyze 1]
analyze 1
}
# puts "that worked .... back to regular Newton "
test NormDispIncr 1e-8 $numTimes $displayTag
# algorithm Newton
}
############# end of unloading cycle, start reloading cycle ###########
set t 0;
while {$t != $dS} {
integrator DisplacementControl $nodeTag $dofTag 0.0 1 $dU $dU
set ok [analyze 1]
incr t 1;
if {$ok != 0} {
# if {$t == $dS} {break};
puts "Displacement control failed ..... trying Arc-Length control"
set currentDisp [nodeDisp $nodeTag $dofTag]
puts "Current Displacement is $currentDisp"
# algorithm Linear
test NormDispIncr 1e-6 $numTimes $displayTag
#algorithm ModifiedNewton
# integrator DisplacementControl $nodeTag $dofTag 0.0 1 $dU0 $dU0
# integrator DisplacementControl $nodeTag $dofTag 0.0 10 $dU0 $dU0
integrator ArcLength [expr $dU0] 1.0
# set ok [analyze 1]
analyze 1
}
# puts "that worked .... back to regular Newton "
test NormDispIncr 1e-8 $numTimes $displayTag
# algorithm Newton
}
######## reloading cycle completed #############################
if {$ok == 0} {
puts "analysis succesful at $y mm displacement";
} else {
puts "analysis could not proceed fine beyond $y mm displacement";
}
}
}
I am sorry that my script still doesn't work. Is there a mistake in my script?
It is part of my script below, perhaps the problem is in procRC.tcl. But I cann't check it out.
It is very long
#######################################
pattern Plain 2 Linear {
load 10 0 -285100 0 -const
}
system ProfileSPD
constraints Plain
integrator LoadControl 0 1 0 0
test NormDispIncr 1e-8 150
algorithm Newton
numberer RCM
analysis Static
analyze 1
loadConst -time 0.0
pattern Plain 1 Linear {
#load nd? Fx? Fy? Mz?
load 10 1 0 0
}
recorder Node -file pu.out -dT 0.01 -time -node 10 -dof 1 disp
set peakpts [list 0.01 5 5 10 10 15 15 20 20 25 25 30 30 40 40]
set increment 250
set nodeTag 10
set dofTag 1
procRC $increment $nodeTag $dofTag $peakpts
# print the results at node and at all elements
print node
#print element
#########################################
########################################################################################################
#
# procRC.tcl
## procedure for setting up a reversed cycle loading scheme. The input are mainly the
## peak points for the loading.
## The procedure primarily uses Displacement control for loading, if it fails uses ArcLength control
## created : QU HUI (quhui@fzu.edu.cn) dated: AUGUST. 2006
########################################################################################################
proc procRC { incre nodeTag dofTag peakpts } {
set displayTag 0;
set numTimes 1500;
set x [lindex $peakpts 0];
set dU [expr $x/$incre];
#set dU0 [expr $dU/1000];
set dU0 [expr $dU/10000];
integrator DisplacementControl $nodeTag $dofTag 0.0 1 $dU $dU
analysis Static
analyze $incre
integrator DisplacementControl $nodeTag $dofTag 0.0 1 [expr -$dU] [expr -$dU]
analyze [expr 2*$incre]
integrator DisplacementControl $nodeTag $dofTag 0.0 1 $dU $dU
analyze $incre
## end the first peak pt start for others
for {set j 1} {$j < [llength $peakpts]} {incr j 1} {
set y [lindex $peakpts $j]
set dSt [expr $y/$dU]
set dS [expr int($dSt)]
test NormDispIncr 1e-8 $numTimes $displayTag
algorithm Newton
############# start loading cycle ##################
set t 0;
while {$t != $dS} {
integrator DisplacementControl $nodeTag $dofTag 0.0 1 $dU $dU
set ok [analyze 1]
incr t 1;
if {$ok != 0} {
# if {$t == $dS} {break};
puts "Displacement control failed ..... trying Arc-Length control"
set currentDisp [nodeDisp $nodeTag $dofTag]
puts "Current Displacement is $currentDisp"
# algorithm Linear
test NormDispIncr 1e-6 $numTimes $displayTag
#algorithm ModifiedNewton
# integrator DisplacementControl $nodeTag $dofTag 0.0 1 $dU0 $dU0
# integrator DisplacementControl $nodeTag $dofTag 0.0 10 $dU0 $dU0
integrator ArcLength [expr $dU0] 1.0
# set ok [analyze 1]
analyze 1
}
# puts "that worked ..... back to regular Newton "
test NormDispIncr 1e-8 $numTimes $displayTag
# algorithm Newton
}
################## end of loading cycle, start unloading cycle ########
set t 0;
while {$t != [expr 2*$dS]} {
integrator DisplacementControl $nodeTag $dofTag 0.0 1 [expr -$dU] [expr -$dU]
set ok [analyze 1]
incr t 1;
if {$ok != 0} {
# if {$t == [expr 2*$dS]} {break};
puts "Displacement control failed ..... trying Arc-Length control"
set currentDisp [nodeDisp $nodeTag $dofTag]
puts "Current Displacement is $currentDisp"
# algorithm Linear
test NormDispIncr 1e-6 $numTimes $displayTag
#algorithm ModifiedNewton
# integrator DisplacementControl $nodeTag $dofTag 0.0 1 [expr -$dU0] [expr -$dU0]
# integrator DisplacementControl $nodeTag $dofTag 0.0 10 [expr -$dU0] [expr -$dU0]
integrator ArcLength [expr $dU0] 1.0
# set ok [analyze 1]
analyze 1
}
# puts "that worked .... back to regular Newton "
test NormDispIncr 1e-8 $numTimes $displayTag
# algorithm Newton
}
############# end of unloading cycle, start reloading cycle ###########
set t 0;
while {$t != $dS} {
integrator DisplacementControl $nodeTag $dofTag 0.0 1 $dU $dU
set ok [analyze 1]
incr t 1;
if {$ok != 0} {
# if {$t == $dS} {break};
puts "Displacement control failed ..... trying Arc-Length control"
set currentDisp [nodeDisp $nodeTag $dofTag]
puts "Current Displacement is $currentDisp"
# algorithm Linear
test NormDispIncr 1e-6 $numTimes $displayTag
#algorithm ModifiedNewton
# integrator DisplacementControl $nodeTag $dofTag 0.0 1 $dU0 $dU0
# integrator DisplacementControl $nodeTag $dofTag 0.0 10 $dU0 $dU0
integrator ArcLength [expr $dU0] 1.0
# set ok [analyze 1]
analyze 1
}
# puts "that worked .... back to regular Newton "
test NormDispIncr 1e-8 $numTimes $displayTag
# algorithm Newton
}
######## reloading cycle completed #############################
if {$ok == 0} {
puts "analysis succesful at $y mm displacement";
} else {
puts "analysis could not proceed fine beyond $y mm displacement";
}
}
}
so,
i let your analysis run for a while and then i plotted the time increments in the output and after a while you do get the time increment you wanted.
somehow, I think your time step gets messed up with your proc.
Based on my experience, I don’t think you should specify the number of steps, as these lead to disp increments that are too small for small peaks and too large for large ones, and that’s why you get soo much data.
I think you should specify the displacement increment in your analysis and calculate the number of steps based on that. Your data won’t be sooo busy.
i let your analysis run for a while and then i plotted the time increments in the output and after a while you do get the time increment you wanted.
somehow, I think your time step gets messed up with your proc.
Based on my experience, I don’t think you should specify the number of steps, as these lead to disp increments that are too small for small peaks and too large for large ones, and that’s why you get soo much data.
I think you should specify the displacement increment in your analysis and calculate the number of steps based on that. Your data won’t be sooo busy.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
I have tried again and again, but I fail.
In my proc, I use Displacement control, not transient analysis. If is it wrong to use :
recorder Node -file $fName.out -dt 0.01 -time -load -node 10 -dof 1 disp?
Maybe it is :
recorder Node -file $fName.out -du 0.01 -time -load -node 10 -dof 1 disp
or something else?
In my proc, I use Displacement control, not transient analysis. If is it wrong to use :
recorder Node -file $fName.out -dt 0.01 -time -load -node 10 -dof 1 disp?
Maybe it is :
recorder Node -file $fName.out -du 0.01 -time -load -node 10 -dof 1 disp
or something else?
even though it is static, the load is applied over time.
the only difference between static and transient, i believe, is the mass and damping.
still, you have -dt, when maybe it should be dT....
the only difference between static and transient, i believe, is the mass and damping.
still, you have -dt, when maybe it should be dT....
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104