Error in recorder using Parallel anlysis

Post Reply
mmc
Posts: 83
Joined: Tue Apr 28, 2020 3:09 pm

Error in recorder using Parallel anlysis

Post by mmc » Mon Feb 22, 2021 9:22 am

Hi!

I am working on performing parallel analyses in STKO. I have found something weird and I wanted to share it here becaused I dont understand what is happening.

I have performed a typical pushover analysis after applying the gravitaty loads. In order to handle the results later in Matlab, I have used the common command recorder node. As you can see in the file obtained with the parallel analysis, there is a bug... the displacements in both direction dont appear and in line 101 there is something definetly wrong. The displacements do appear from line 102... However, if I perform a normal pushover analysis, as you can see in the file, the shear and the displacements are correctly written.

Also, I have checked if I can plot the displacement vs shear using the output window and considering the parallel analysis. I can do it and I can see the list of the results correctly...

Do you know what might be happening?
Attachments
00_Initial_parallel.rar
(264.57 KiB) Downloaded 214 times

STKO Team
Posts: 3070
Joined: Tue Oct 29, 2019 8:45 am

Re: Error in recorder using Parallel anlysis

Post by STKO Team » Tue Feb 23, 2021 3:48 pm

Dear user,

using the standard OpenSees' recorders in parallel analyses using OpenSeesMP is quite difficult. You could use OpenSeesSP instead, but in that case, the Drift recorder is not supported.
With OpenSeesMP what happens is that multiple processes are trying to access the same file a the same time, thus creating garbage data.

However, with STKO version 2.0.0 (released a few days ago), you can post-process the results in the MPCO database to reproduce the same output of the recorders obtained with OpenSees sequential!

Take your parallel file and do these changes:
  • modify your customCommand keeping only the line to create the output directory "Output/pushoverxxModal"
  • remove all the lines for the recorders.
Then, when you are in the post-processor, follow these steps:
emulate_recorder_in_parallel.png
emulate_recorder_in_parallel.png (460.12 KiB) Viewed 2523 times

It will create the same exact output given by OpenSees. There might be some differences due to rounding-errors (I tried to use the same number of digits used by OpenSees).
To obtain the (almost) same rounding of opensees, everytime I use the python format, I use the following format specifier: "{:.6g}". Feel free to replace it with simple "{}" to write all significant digits.

I made just 1 example for each one of your recorders. 1 Nodal, 1 Elements, and 1 Drift.
Play with it and it will be very easy to extend it for the others.

Let us know if this new tools fits your needs. And with the Python API in the pre- and post- processor you can do this and much much more.

mmc
Posts: 83
Joined: Tue Apr 28, 2020 3:09 pm

Re: Error in recorder using Parallel anlysis

Post by mmc » Tue Feb 23, 2021 6:07 pm

Hi STKO,
Thanks for your reply. I think I am not understanding what you are referring to. The .py file is generated by STKO or I should create it? Is there any template available? I am not familiar with python language and it is a little bit complicated for me.

STKO Team
Posts: 3070
Joined: Tue Oct 29, 2019 8:45 am

Re: Error in recorder using Parallel anlysis

Post by STKO Team » Wed Feb 24, 2021 11:32 am

Sorry, but I forgot to upload the modified SCD file and the python script to generate recorders in post-processing.
The .py file is generated by STKO or I should create it?
No, they are custom user-defined scripts. I created this one for you, so it should be easy for you to adapt it to your needs. It is written in such a way that it is easily understandable. Keep in mind that our next webinars will focus on this, so you will learn step by step how to use them.

From the application, you can go under help->About, and in the dialog that appears, you will see (in the bottom left corner) a link to the Python API documentation.

Here is a zip where you have the python script to be placed in the same location where you have your SCD file, and the modified SCD file itself. The only change I made, is to remove the definition of the recorders (they will be emulated in post-processing) and I had to add "localForce" to the MPCO recorder, otherwise, you cannot access it in post-processing.

Let us know if it works for you, or if you have any doubts.
mmc_recorders.zip
(363.96 KiB) Downloaded 225 times

Post Reply