u-anurag / OpenSeesPy

OpenSeesPy-Visualization: This branch is to work on Plotting commands to Python-based visualization of OpenSees models.
https://openseespydoc.readthedocs.io/en/latest/src/Plotting_Development_Guide.html
5 stars 2 forks source link

Adding ModalAnalysis.py #92

Closed volkanozsarac closed 4 years ago

volkanozsarac commented 4 years ago

Dear Anurag, I have forked your repo today, and added "ModalAnalysis.py" to openseespy-pip/openseespy/postprocessing. I hope all is ok.

Cheers, Volkan

u-anurag commented 4 years ago

@cslotboom This is a good addition. We have to find a way to fit this code with the existing framework.

u-anurag commented 4 years ago

@volkanozsarac Thanks for adding the code.

cslotboom commented 4 years ago

Hey, @volkanozsarac thanks for adding code! This looks good.

I agree, we need to think about where code like this will go.

I'm all for adding analysis functions, but it can be a little dangerous. There is a risk that people use them incorrectly. To mitigate this, I think we need to clearly define where the function works work, and how people can use them.

It would be great to:

  1. have some code documentation
  2. have some way of verifying the function works, i.e. tests

Out of a courtesy, we might also want to check with zhuminjie about the direction this is going.

volkanozsarac commented 4 years ago

@u-anurag and @cslotboom you are welcome! I was using the tools you provided quite often, and they inspired me to develop open source tools! Therefore, I am very glad If I was able to contribute this project. I will let you know if I develop any other generic analysis functions such as (response spectrum analysis etc.). Likewise, should you require help with any other sort of work such as testing of the code and documentation of it, please let me know. Cheers.

u-anurag commented 4 years ago

@volkanozsarac could you provide at least two test examples comparing the results (period, modal participation factors) of your code with any of the standard commercial packages (SAP 2000, Etabs etc.)? We'll have to provide it in order to add to the main OpenSees repo. Also, provide a documentation showing the output of that can be added to the website.

volkanozsarac commented 4 years ago

@u-anurag sure, I already have verification of this one: https://openseespydoc.readthedocs.io/en/latest/src/PortalFrame2d.html. I will try to look for another 3D model from Seismostruct verification report.

u-anurag commented 4 years ago

@volkanozsarac this example does not use your code "ModalAnalysis.py". What we need is a comparison of "modal mass participation factors" from your code and Seismo-struct or SAP 2000. We already have a function to get modal periods.

volkanozsarac commented 4 years ago

I am very sorry if I could not explained clearly @u-anurag. I have just meant using the model in this example, in order to compare mass participation factors and participation ratios. I chose this example simply because I know that SAP 2000 and SeismoStruct models of this verification example come by default once either of the two software are installed, thus can be obtained directly from those models. However, if you think it will be better, I can pick any other example for comparison purposes.

cslotboom commented 4 years ago

Hey, so as long as you are using an example with known outputs, that's fine. I would just make sure you test both outputs, that is periods and mass participation.

Check out the file here. We would be looking for something similar with your function, where you model a known example and can return the correct outputs. I think at least having a 2D and 3D example would be nice!

It might seem like a lot, but as Anurag said, we don't really have the ultimate authority on what goes into OpenSees. Having evidence your function works will ultimately make a much more solid case for it.

volkanozsarac commented 4 years ago

Great, I was thinking the same, providing verification examples for 2D and 3D models with known outputs. I will update you once I have the comparisons. Cheers.