Replies: 6 comments 23 replies
-
In my opinion, PyMAPDL should be as close as possible to MAPDL for the following reasons:
I see there are some cons:
Hence in my opinion the approach PyMAPDL (low-level) + PyMechanical? (high-level) is the most sensible to me. However, it seems that Mechanical is going to take a while to take that place. Furthermore, I'm not 100% sure PyMechanical will go in that direction. The delay in having a high-level abstraction library can cost us collaboration opportunities (like the one mentioned above). Hence I think we should have something to have those high-level contributions while we wait on a consensus on the PyMechanical directions and PyMAPDL implications of it. I would go for having a |
Beta Was this translation helpful? Give feedback.
-
Is the proposal to make the 'high level' API written in terms of the APDL commands? If so then I think it would make sense to include that directly within the library as it is. However, if APDL were to expose an alternate 'high level' API using gRPC again it might be better to break that out to a new module. So, it's hard to answer your survey unless the plan / proposal is a bit more clear. BTW I think it's fair to say that APDL commands are not an API, they are a scripting interface for APDL, so it would be good news to have an actual API on APDL... |
Beta Was this translation helpful? Give feedback.
-
@germa89 I'm planning to eventually have a "mechanical kernel" library that is more lightweight than Ansys Mechanical but reuses much of its code, and it will include some of what you describe. For now - I vote for option 3. @dnwillia-work it sounds like you were already thinking along the lines that I am, because eventually I can compile the mechanical kernel into mapdl. BTW - I think we should seriously consider a session free version of pymapdl, where python manipulates an mapdl data-model without requiring a session of mapdl. |
Beta Was this translation helpful? Give feedback.
-
Great topic...one question I would ask is are these higher level functions, with all state stored in MAPDL still, or would there be additional state (more OO-like). I think its fine to incorporate higher level functions, but I would be cautions of incorporating too many 'declarative abstractions' - because you can just drop down to the MAPDL command layer and invalidate those abstractions with 1 command and so I think they could be very leaky abstractions. I would imagine PyMechanical would expose abstractions like that., and could probably integrate nicely with PyMapl as 1 option. Depending on how PyMechanical shapes up that is :) |
Beta Was this translation helpful? Give feedback.
-
Hi Everyone, My first needs are more related to customized analyses like:
At the end, we can expect internal and external developers ( at the developer community sense) to contribute to the PyMapdl ecosystem by proposing new capabilities, based on the 1st level of functionalities the existing PyMapdl is offering. But I think we need to separate what is the low level access to MAPDL commands, which includes all that have been developed until now, and all these contributions that could possibly represent a large amount of additional but optional code. That's why I would not put these contributions in the existing GIT repos. |
Beta Was this translation helpful? Give feedback.
-
I would like to give my limited input from a users perspective. As I discussed with @akaszynski in the early days of PyMAPDL, ANSYS (not only mechanical) has too many different ways to do things. Personally I would prefer, if it would be possible to script everything with a similar api (python based) both inside workbench or completly external (like with PyMAPDL). Ideally the script functionality should have some similarities to the functionalities inside the GUIs. I know, thats a very long-term perspective but imho its important to consider it right from the beginning. Therefore I would not choose option 1 or option 4. Not everything in ANSYS is based on APDL. A high-level api might use different low-level layers (right now that would be APDL and DPF). As a user I would like to only learn one (preferably high-level) API, so long term it should work without learning PyMAPDL or dpf-core (dpf-post is a similar high-level api idea(?); also the PyMAPDL plotter functionality could be moved to a higher level api, as it is not really part of APDL; same for the material database implementation which is still alpha(?)). PyMAPDL should be focused on APDL. One major issue I see is, that a high-level API would be very limited in the beginning - similar to dpf-post, which is imho not useable right now. Therefore a macro-collection like intermediate step might be a good idea, also for user based contributions. Another question about a PyMechanical - what functionallity should this handle? Geometry migh be more global than mechanical and therefore might be a seperate library? iMHO Post-processing should be based on DPF longterm, so everything in between for PyMechanical? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi all,
Recently I have receive an email from a colleague saying he would like to contribute to PyMAPDL by creating some high-level functions for cohesive elements. I'm super happy someone wants to contribute to PyMAPDL in anyway, and this one I think it is going to be highly appreciated by the users.
However, this raises some questions regarding the place for those high-level functions.
Until now, PyMAPDL has been seen as a Python wrapper for MAPDL. This explain why there is one-to-one correlation with MAPDL, and there are not high-level functions outside the ones that replicates MAPDL features (plotting for example).
But I wonder if this is the right approach.
Hence I would like to poll people's opinion (this poll is noncommittal) on this matter.
The links to each option page are:
--
Pinging @pyansys/pyansys-core @pyansys/pymapdl-developers for visibility
10 votes ·
Beta Was this translation helpful? Give feedback.
All reactions