yexiang1992 / opstool

Pre-Processing, Post-Processing, and Visualization Tailored for OpenSeesPy
https://opstool.readthedocs.io/en/stable/
GNU General Public License v3.0
73 stars 13 forks source link

Clarifications needed #3

Closed wxyeah closed 1 year ago

wxyeah commented 1 year ago

Hi Yexiang,

I noticed this opstool from the post you wrote on OpenSeesPy forum. I'm impressed by the interactive visualization and would like to use it for my research. After learning and testing it, I have got a few questions. When you have a sec, can you please help clarify them? Thank you in advance!

  1. In the documention you first performs gravity analsyis by calling opstool.preprocessing.gen_grav_load before issuing the commands to save response data. If I have applied gravilty load using my own code, do I need to do it again using your command?
  2. Can you expain more on when/where the ModelData.reset_steps_state() should be issued? My understanding is that it needs to be issued right before a load case analysis where response data (node, element) are to be saved. The explaination 'Reset the state of results extract in analysis step' is not very clear to me.
  3. To use the get_node_resp_step command, num_steps and/or total_time is used to 'determine when to save the data'. The one who comes first will trigger the data saving. In my case, both parameters cannot be known beforehand. So the workaround seems to be use a num_steps (or total_time) that is small enough to trigger the data saving. But in this way, I found that after the analysis reaches the pre-set num_steps (or total_time), it will start to generate a lot of screen prints 'response data is saved to where'. Does this mean that the response post the pre-set num_steps (or total_time) is also saved? I hope so!
yexiang1992 commented 1 year ago

Hi wxyeah,

Thank you for your feedback and support.

(1) Because there is no gravity load defined in the loaded examples, I used that command opstool.preprocessing.gen_grav_load. If you have defined your own loads, please ignore this command. This function is used to help quickly generate gravity loads from the nodeMass() command, see the documentation for details.

(2) For ModelData.reset_steps_state(), because I used the list.append method when obtaining the analysis step data, if it is not reset, the data will always be saved in it. There is nothing wrong with this for the first analysis, but for subsequent static or dynamic analyses, previous data should be cleared. You should call it just before loop analysis. In the next version, I will automatically call this command when saving data, and the user does not need to call it explicitly.

(3) get_node_resp_step(): Because each analysis step, get_node_resp_step() will get the data of the step, a condition is needed to judge when to save the data. It is actually possible for you to set a sufficiently small number of steps or total time, but the data is saved once for each step, and the final result is actually the same, but the time cost is increased. In the next version, I will add a save method to deal with the situation where num_steps and total_time cannot be determined.

Thanks for your feedback to make opstool better.

wxyeah commented 1 year ago

Hi wxyeah,

Thank you for your feedback and support.

(1) Because there is no gravity load defined in the loaded examples, I used that command opstool.preprocessing.gen_grav_load. If you have defined your own loads, please ignore this command. This function is used to help quickly generate gravity loads from the nodeMass() command, see the documentation for details.

(2) For ModelData.reset_steps_state(), because I used the list.append method when obtaining the analysis step data, if it is not reset, the data will always be saved in it. There is nothing wrong with this for the first analysis, but for subsequent static or dynamic analyses, previous data should be cleared. You should call it just before loop analysis. In the next version, I will automatically call this command when saving data, and the user does not need to call it explicitly.

(3) get_node_resp_step(): Because each analysis step, get_node_resp_step() will get the data of the step, a condition is needed to judge when to save the data. It is actually possible for you to set a sufficiently small number of steps or total time, but the data is saved once for each step, and the final result is actually the same, but the time cost is increased. In the next version, I will add a save method to deal with the situation where num_steps and total_time cannot be determined.

Thanks for your feedback to make opstool better.

Thank you very much for your clarifications. They are very clear and I don't have any other questions at this point. Thanks for making our OpenSees users' lives better:)