Simple Parameter Study: Difference between revisions
Jump to navigation
Jump to search
(Created page with '__NOTOC__ This example is intended for use with the OpenSeesMP interpreter. It performs a seqries of sequential analysis in parallel. The things of importance in the model are sh...') |
No edit summary |
||
Line 14: | Line 14: | ||
set pid [getPID] | set pid [getPID] | ||
set numP [getNP] | set numP [getNP] | ||
set count 0; | set count 0; | ||
Line 20: | Line 19: | ||
set g 386.4 | set g 386.4 | ||
foreach gMotion [glob -nocomplain -directory | foreach gMotion [glob -nocomplain -directory ./ *.AT2] { | ||
foreach scaleFactor {0.5 0.75 1.0 1.5 2.0} { | foreach scaleFactor {0.5 0.75 1.0 1.5 2.0} { | ||
Revision as of 21:44, 15 December 2011
This example is intended for use with the OpenSeesMP interpreter. It performs a seqries of sequential analysis in parallel. The things of importance in the model are shown in the main script. These are: 1) the use of for loops and variables to assign unique jobs to the individual processors. 2) the use of unique names for the output files from the recorders. 3) clean up of any extra files that are generated but not needed.
The model and analysis are of little importance to the parallel processing knowledge this article is trying to get across and so are not included. They could be any model and any analysis.
The following is the main script set. This script is run by each of the interpreters when the user starts the parallel computation.
set pid [getPID] set numP [getNP] set count 0; source ReadRecord.tcl set g 386.4 foreach gMotion [glob -nocomplain -directory ./ *.AT2] { foreach scaleFactor {0.5 0.75 1.0 1.5 2.0} { if {[expr $count % $numP] == $pid} { source model.tcl source analysis.tcl set ok [doGravity] loadConst -time 0.0 if {$ok == 0} { set gMotionName [string range $gMotion 0 end-4] ReadRecord $gMotion $gMotionName$scaleFactor.dat dT nPts timeSeries Path 1 -filePath $gMotionName$scaleFactor.dat -dT $dT -factor [expr $g*$scaleFactor] recorder EnvelopeNode -file $gMotionName$scaleFactor.out -node 100 -dof 1 doDynamic $dT $nPts file delete $gMotionName$scaleFactor.dat } } incr count 1 } }