Increasing output time step increment

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

Moderators: silvia, selimgunay, Moderators

Armin
Posts: 7
Joined: Thu Mar 03, 2005 3:35 am
Location: IIEES
Contact:

Increasing output time step increment

Post by Armin »

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?
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

1. include -dT value? in the args for the recorder .. after the -file fileName? would be good.

2. OpenSees is not thread safe, there is a version for parameter studies that will run
on parallel machines that have MPI installed; i know of know such version for sual-core machines running XP.
quhui
Posts: 18
Joined: Mon Jul 24, 2006 7:15 pm

Post by quhui »

Hi, every friends:

I meet the same questions as Armin. According on the suggestions of fmk,
I modified my command as follows:

recorder Node $fName.out 0.01 disp -load -node 10 -dof 1


but opensees gave me an error. :oops:

Would you like give me an example?

Thanks a lot!
quhui
Posts: 18
Joined: Mon Jul 24, 2006 7:15 pm

to fmk

Post by quhui »

Hello, fmk

I modified the command again as follows:

recorder Node $fName.out disp 0.01 -load -node 10 -dof 1

Opensees run this time, but the result file was empty!

Why?

Would you like give me a hand?

Many thanks!
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

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.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
quhui
Posts: 18
Joined: Mon Jul 24, 2006 7:15 pm

Post by quhui »

Dear silvia:

Thank you very much!

I had modified the command as you told me.

It worked, but I found the results were recorded at every increment, not every 0.01 increment.
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

mmm, that's why this is an undocumented feature, as it doesn't work with all recorders.
let's see what frank says, otherwise, i'd reduce the data in post-processing.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
quhui
Posts: 18
Joined: Mon Jul 24, 2006 7:15 pm

Post by quhui »

My result file is 580M. It is so large that no software can open it. :(
Armin
Posts: 7
Joined: Thu Mar 03, 2005 3:35 am
Location: IIEES
Contact:

Sample oe frcorder command

Post by Armin »

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
quhui
Posts: 18
Joined: Mon Jul 24, 2006 7:15 pm

Post by quhui »

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 :oops:

#######################################
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";

}


}

}
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

are you on the latest version?
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
quhui
Posts: 18
Joined: Mon Jul 24, 2006 7:15 pm

Post by quhui »

I used the lasted version: opensees exe.1.7.2
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

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.
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
quhui
Posts: 18
Joined: Mon Jul 24, 2006 7:15 pm

Post by quhui »

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?
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

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....
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
Post Reply