Hello,
I am running time history analyses on cable conductor. I want to run multiple realizations of loading in parallel, so I am trying to assign one load case to each processor. But when I run the analysis I get the same results for all the processors. I am not able to figure out what the error in my logic is. I have attached my code below.
#
set pid [getPID]
set np [getNP]
source "model.tcl"
set tStart [clock seconds]
set par_list [open "records.txt" r]
set countP 0;
foreach val [split [read $par_list] \n] {
if {[expr $countP % $np] == $pid} {
set valueslist $val
lreplace $valueslist 0 0
doModel
set fileid [expr $pid + 1];
recorder Node -file "./output/disp/$fileid.out" -time -nodeRange 1 51 -dof 1 2 3 disp
recorder Element -file "./output/force/$fileid.out" -time -eleRange 1 100 force
set along [expr $pid + 1];
set patternalong [expr $pid + 1];
timeSeries Path $along -dt 1 -filePath $valueslist -factor 1;
pattern Plain $patternalong $along {
load 2 0.0 1.0 0.0
load 100 0.0 1.0 0.0
}
set Tol 1.0e-4;
set maxNumIter 100;
set printFlag 0;
set NewmarkGamma 0.5;
set NewmarkBeta 0.25;
set TestType EnergyIncr;
set Nsteps 6000;
set dtForAnalysis 1;
numberer ParallelRCM;
algorithm KrylovNewton;
system Mumps
constraints Transformation;
analysis Transient;
set ok [analyze $Nsteps $dtForAnalysis]; # ok = 0 if analysis was completed
if {$ok == 0} {
puts "Dynamic analysis complete";
} else {
puts "Dynamic analysis did not converge";
}
puts "Analysis complete"
wipe
}
incr countP
}
set tFinish [clock seconds]
barrier
puts "Duration Process $pid [expr $tFinish-$tStart]"
Parallel Analysis of Cable conductor OpenSeesMP
Moderator: selimgunay
-
- Posts: 1
- Joined: Tue Mar 23, 2021 2:13 am
Re: Parallel Analysis of Cable conductor OpenSeesMP
thanks for this it really helped