Git Product home page Git Product logo

Comments (10)

zhuminjie avatar zhuminjie commented on June 6, 2024 3

Since everyone agrees, we will remove the visualization packages from OpenSeesPy and OpenSeesPyDocs, and provides links to the separated packages and docs in the next release, which will likely happen after Oct. 15th.

I will create a new page in the OpenSeesPy documentation about the ecosystem of OpenSeesPy. The links will go there. Feel free to submit PRs to add your links there.

Please let us know if you have any other questions. Thanks a lot for contributing to OpenSeesPy community.

from openseespy.

ccaprani avatar ccaprani commented on June 6, 2024 1

Hi @silviamazzoni , no, very happy in python! Just a loose observation on trends in software really.

from openseespy.

u-anurag avatar u-anurag commented on June 6, 2024 1

@Heanmogo You should start a new issue since it is unrelated to the topic of this discussion.

This is because MVLEM_3D internally re-orients its nodes. The actual node sequence in its formulation is not the same as what a user provides. It is strange but that is how it is. None of the codes have an error. The plotting library expects all the four-node shell elements to work in the same way but MVLEM-3D is different. I am working on a fix but will take some time.

from openseespy.

millen1m avatar millen1m commented on June 6, 2024

Yes I agree. A seperate package that has OpenSeesPy as a dependency would be better for development. This will make it easier for people contribute to the visualisation package as potentially a wider group of maintainers could be available for the visualisation since it is pure Python. Can also set up the visualisation package to auto build and deploy to Pypi if it passes its test suite on CircleCi using the following config: https://github.com/o3seespy/o3seespy/blob/master/.circleci/config.yml

from openseespy.

zhuminjie avatar zhuminjie commented on June 6, 2024

Agree too. Separate packages could has OpenSeesPy as dependency or receive a reference to OpenSeesPy which could be a self-compiled library. Each package maintainer will also have full control with versions and updates.

from openseespy.

ccaprani avatar ccaprani commented on June 6, 2024

I agree too. It's certainly the philosophy in the newer Julia ecosystem for packages to do one thing, and do it well. pymc3 is another example where they split off the visualization to the arviz package (and actually made that package more generally useful for visualizing outputs from other related packages).

FYI, why I'm on this thread is my research group is developing a package on top of OpenSeesPy for bridge deck analysis. So with this background, the key things from our perspective are:

  • the stability of the OpenSeesPy API
  • its comprehensiveness in interrogating native OpenSees objects (hence my interest in @sewkokot 's recently added functions, #69).
  • Quick integration of higher-level (i.e. post-processing) tweaks/additions.

So an OpenSeesPy that is stable, 'complete', and infrequently changing, coupled with a nimble post-processing package with CI would be perfect from our perspective! And we'll be pleased to contribute to that goal.

I guess this approach would also support other package development in the OpenSees ecosystem, such as @millen1m 's O3seespy?

from openseespy.

sewkokot avatar sewkokot commented on June 6, 2024

I agree, as well. In fact, I remember last year, before sending an ops_vis PR to OpenSeesPy and OpenSeesPyDoc I had tested the ops_vis module in a separate github repository [1] and a readthedocs documentation [2].

I have also made tests of ops_vis at PyPi-test [3] to ensure everything works correctly. So more or less I'm prepared to this change, which should facilitate the development of pre and postprocessing packages.

Does this also mean that you remove the documentation of the visualization packages from OpenSeesPyDoc [4] and only links to separate documentation pages will be provided there?

[1] https://github.com/sewkokot/ops_vis
[2] https://ops-vis.readthedocs.io/en/latest/
[3] https://test.pypi.org/project/ops-vis-sewkokot/
[4] https://openseespydoc.readthedocs.io/en/latest/src/postprocessing.html

from openseespy.

u-anurag avatar u-anurag commented on June 6, 2024

I agree with this approach. This will also help the visualization packages to include other dependencies (vtk, gmsh, etc.) which the OpenSeesPy core repo wouldn't prefer.

from openseespy.

silviamazzoni avatar silviamazzoni commented on June 6, 2024

I think this is a great idea.
Even though it's not as powerful as Tk, python is sure making pre/post-processing a lot easier to build. A version of OpenSeesPy that is as light and robust as possible would be ideal.
@ccaprani , you moving to Julia?

from openseespy.

Heanmogo avatar Heanmogo commented on June 6, 2024

Hello, I have a question about the plot of the new MVLEM_3D element, I have been doing some testing with the command openseespy.postprocessing.Get_Rendering.plot_model() and the elements are observed as sand clocks... I would like to know whether it is an error of the element or it is an error of plot_model(), and how to fix it.
I attach an example code with the comparison of the plot of ShellMITC4 element.

#INSTALACIÓN DE LIBRERÍAS
import openseespy.opensees as ops
from openseespy.opensees import *
import openseespy.postprocessing.Get_Rendering as opsplt
import matplotlib.pyplot as plt

#SISTEMA DE UNIDADES
##Unidades Base
m = 1
kg = 1
s = 1
##Otras Unidades
cm = 0.01*m
N = kg*m/s**2
kgf = 9.81*N

ops.wipe()
ops.model('basic', '-ndm', 3, '-ndf', 6)

#Nodos
ops.node(1, 0, 0, 0)
ops.node(2, 2, 0, 0)
ops.node(3, 0, 0, 3)
ops.node(4, 2, 0, 3)

ops.node(11, 3, 0, 0)
ops.node(12, 5, 0, 0)
ops.node(13, 3, 0, 3)
ops.node(14, 5, 0, 3)

#Materiales
##Concreto
fc = 210*kgf/cm**2
E = 15100*(fc/(kgf/cm**2))**0.5*kgf/cm**2
G = 0.5*E/(1+0.2)
ρ = 2400*kg/m**3

ops.uniaxialMaterial('Elastic', 1, E) #Concreto Axial
ops.uniaxialMaterial('Elastic', 2, 2*10**6*kgf/cm**2) #Acero
ops.uniaxialMaterial('Elastic', 3, G) #Concreto Cortante

#Muro 1 MVLEM_3D
ops.element('MVLEM_3D', 1, 1, 2, 4, 3, 1, '-thick', *[0.15], '-width', *[2], '-rho', *[0], '-matConcrete', *[1], '-matSteel', *[2], '-matShear', 3, '-Poisson', 0.2, '-Density', ρ)

#Muro 2 ShellMITC4
ops.section('ElasticMembranePlateSection', 10001, E, 0.2, 0.15, ρ)
ops.element('ShellMITC4', 2, 11, 12, 14, 13, 10001)

opsplt.plot_model()
plt.show()

Figure_1

from openseespy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.