Layered SHell in OpenSeesSP
Moderator: selimgunay
Layered SHell in OpenSeesSP
Hi all,
Three questions:
1) I am trying to run a comparatively large FEM of a framed RC structure in parallel using OpenSeesSP. I noticed that job aborts if I use Layered Shell. However, if I use elastic Shell MITC4, the code runs perfect, and no problem occurs. It seems that the layered shell element cannot be run on parallel. How can I fix that as one simulation takes me almost 15 minutes in sequential, and I need to run my model hundreds of times.
2) Assume that I am running a script (FEM of a structure) in a loop. OpenSeesSP freezes at certain point in a loop. For example it runs the code for 37 times and jumps to 38th analysis. Then it freezes at 38th analysis and never goes to the 39th analysis. However, if I break the analysis and run the 38th analysis separately, it works well. Also, some times, separate analysis doesn't work and if I change integration strategy in my beam-column elements it works! I am using Force-Based Elements. I would like to know your opinion on this issue.
3) I know well the advantages of Force-Based Elements over the conventional Displacement-Based Elements. However, I think if I use DBE, my model runs more smoothly. Generally asking, What would you choose if large plastification occurs in your elements because of extreme physical as well as geometrical nonlinearities?
Thanks for your help!
Best regards,
A.H.Arshain
Three questions:
1) I am trying to run a comparatively large FEM of a framed RC structure in parallel using OpenSeesSP. I noticed that job aborts if I use Layered Shell. However, if I use elastic Shell MITC4, the code runs perfect, and no problem occurs. It seems that the layered shell element cannot be run on parallel. How can I fix that as one simulation takes me almost 15 minutes in sequential, and I need to run my model hundreds of times.
2) Assume that I am running a script (FEM of a structure) in a loop. OpenSeesSP freezes at certain point in a loop. For example it runs the code for 37 times and jumps to 38th analysis. Then it freezes at 38th analysis and never goes to the 39th analysis. However, if I break the analysis and run the 38th analysis separately, it works well. Also, some times, separate analysis doesn't work and if I change integration strategy in my beam-column elements it works! I am using Force-Based Elements. I would like to know your opinion on this issue.
3) I know well the advantages of Force-Based Elements over the conventional Displacement-Based Elements. However, I think if I use DBE, my model runs more smoothly. Generally asking, What would you choose if large plastification occurs in your elements because of extreme physical as well as geometrical nonlinearities?
Thanks for your help!
Best regards,
A.H.Arshain
Best Regards,
A.H.Arshian
A.H.Arshian
Re: Layered SHell in OpenSeesSP
1) as you have hunderes of simulations to do (and SP is only going to speed things up by a max of round 4) I suggest using OpenSeesMP and running them all as independent jobs in parallel (here speedup wil be equal to as many processors as your parallel machine has).
2) sound like a memory issue, probably my friendly error in the MUMPS solver that i cannot track down.
3) if extreme "plastification" is occuring, the force based element are going to give more "accurate" results as the displacement based elements assumption of linear curvature along element length is clearly incorrect (think of what curvature over element would be like if hinges at 2 ends and elastic in middle). adding more elements to the displacement based model rectifies this, but then you will probably find that the struggles that you are experiencing with the force based element show up.
2) sound like a memory issue, probably my friendly error in the MUMPS solver that i cannot track down.
3) if extreme "plastification" is occuring, the force based element are going to give more "accurate" results as the displacement based elements assumption of linear curvature along element length is clearly incorrect (think of what curvature over element would be like if hinges at 2 ends and elastic in middle). adding more elements to the displacement based model rectifies this, but then you will probably find that the struggles that you are experiencing with the force based element show up.
Re: Layered SHell in OpenSeesSP
Thanks frank,
Just so you be aware of that, the uniaxial material object, ReinforcingSteel, is also not compatible with OpenseesSP.
Will try that on OpenSeesMP
Best regards,
A.H.Arshian
Just so you be aware of that, the uniaxial material object, ReinforcingSteel, is also not compatible with OpenseesSP.
Will try that on OpenSeesMP
Best regards,
A.H.Arshian
Best Regards,
A.H.Arshian
A.H.Arshian
Re: Layered SHell in OpenSeesSP
It should work for OpenSeesMP.
Re: Layered SHell in OpenSeesSP
Hi Frank,
Could you please provide me a relatively complete example on OpenSeesMP?
Best regards,
A.H.Arshian
Could you please provide me a relatively complete example on OpenSeesMP?
Best regards,
A.H.Arshian
Best Regards,
A.H.Arshian
A.H.Arshian
Re: Layered SHell in OpenSeesSP
set pid [getPID]
set numP [getNP]
set count 0;
source ReadRecord.tcl
set tStart [clock clicks -milliseconds]
foreach gMotion [glob -nocomplain -directory GM *.AT2] {
if {[expr $count % $numP] == $pid} {
puts "$pid $count $gMotion"
source model.tcl
source analysis.tcl
set ok [doGravity]
loadConst -time 0.0
if {$ok == 0} {
set gMotionName [string range $gMotion 0 end-4 ]
set g 384.4
ReadRecord ./$gMotionName.AT2 ./$gMotionName.dat dT nPts
timeSeries Path 1 -filePath ./$gMotionName.dat -dt $dT -factor $g
pattern UniformExcitation 2 1 -accel 1
if {$nPts != 0} {
recorder Node -file $gMotionName.out -node 3 4 -dof 1 2 3 disp
doDynamic $dT $nPts
# doDynamic $dT 2
# file delete $gMotionName.dat
if {$ok == 0} {
puts "$gMotionName OK"
} else {
puts "$gMotionName FAILED"
}
} else {
puts "$gMotion - NO RECORD"
}
}
wipe
}
incr count 1;
}
set numP [getNP]
set count 0;
source ReadRecord.tcl
set tStart [clock clicks -milliseconds]
foreach gMotion [glob -nocomplain -directory GM *.AT2] {
if {[expr $count % $numP] == $pid} {
puts "$pid $count $gMotion"
source model.tcl
source analysis.tcl
set ok [doGravity]
loadConst -time 0.0
if {$ok == 0} {
set gMotionName [string range $gMotion 0 end-4 ]
set g 384.4
ReadRecord ./$gMotionName.AT2 ./$gMotionName.dat dT nPts
timeSeries Path 1 -filePath ./$gMotionName.dat -dt $dT -factor $g
pattern UniformExcitation 2 1 -accel 1
if {$nPts != 0} {
recorder Node -file $gMotionName.out -node 3 4 -dof 1 2 3 disp
doDynamic $dT $nPts
# doDynamic $dT 2
# file delete $gMotionName.dat
if {$ok == 0} {
puts "$gMotionName OK"
} else {
puts "$gMotionName FAILED"
}
} else {
puts "$gMotion - NO RECORD"
}
}
wipe
}
incr count 1;
}