Hello,
I am currently trying to run a parametric analysis using OpenSeesMP, for each processor, I want to use a different value of the modulus of elasticity taken from a list.
The main issue is that the recorders are all giving the same results regardless of the different material properties value.
Some context about the main code (attached below):
1. I define the recorders in the "analysis_steps.tcl" called within the main code as:
set RecorderName2 "L40d2_iter$pid"
recorder Node -file $RecorderName2 -time -node 7708 7745 -dof 1 2 3 disp
2. The file "materials.tcl" calls the value being iterated (also attached at the end)
Thanks in advance for the help.
Andres R
MAIN CODE:
set pid [getPID]
set np [getNP]
puts "$pid $np"
#call file that generates the lists: E1 E2 E3 E4
source ChangingVariables.tcl
#based on number of processors, pick the elements of the list to use =
set start_index 0
set end_index [expr $start_index + $np -1]
# Extract the sublist between start_index and end_index
set E1 [lrange $E1 $start_index $end_index]
set E2 [lrange $E2 $start_index $end_index]
set E3 [lrange $E3 $start_index $end_index]
set E4 [lrange $E4 $start_index $end_index]
# === BEGIN PARAMETRIC ANALYSIS ===
set countP 0
foreach E1_iter $E1 {
if {[expr $countP % $np == $pid]} {
#Values to iterate
set E1_iter [lindex $E1 $pid]
set E2_iter [lindex $E2 $pid]
set E3_iter [lindex $E3 $pid]
set E4_iter [lindex $E4 $pid]
set RecorderName "L40d2_iter$pid"
# RUN MODEL
source definitions.tcl
source materials.tcl
source sections.tcl
source nodes.tcl
source elements.tcl
source analysis_steps.tcl
wipe
}
incr countP 1
}
# ========================================
MATERIALS.tcl CODE:
nDMaterial ElasticIsotropic 2 30000000.0 0.4 2.48
nDMaterial ElasticIsotropic 12 $E1_iter 0.3 1.835
nDMaterial ElasticIsotropic 13 $E2_iter 0.3 1.835
nDMaterial ElasticIsotropic 14 $E3_iter 0.3 1.835
nDMaterial ElasticIsotropic 18 $E4_iter 0.3 1.835
# ==========================================
OpenseesMP Parametric analysis Recorder Issue
Moderator: selimgunay