Comments (3)
This is an interesting idea. I briefly looked into multiprocessing about a year ago. I think it's possible, but a lot of work. Right now the program is pretty fast for most of the models I do. I could see the utility of multiprocessing for very large models with lots of nodes.
I haven't run a profiler on the code since I added physical members, but the slowest part of the code used to be the assembly of the global stiffness matrix. Multiprocessing that would be difficult, since the total matrix is the sum of the member matrices, and you can only add one member matrix at a time to the global matrix. All the matrix operations have to get in a single file line. I suppose you could have multiple global matrices at a time being created, and then add them together at the end in a few operations. I'm sure there's a way to do it. It seems like we'd lose a lot of the simplicity the code currently has, but maybe that's necessary if we ever want to efficiently solve really big models with tens of thousands of nodes.
I wouldn't be surprised if descretizing physical members lagged on large models, since each node in the model is checked against each physical member in the model to determine if it lands on that member. I think there's a better way to do this that doesn't require revisiting every node on every member, but for now it gets the job done.
There is definitely room for improving these algorithms to be more efficient. Some of them were put together to just get the job done right, without much thought of efficiency. I am a structural engineer, rather than a programmer. Adding multiprocessing is a matter of profiling the code on a large model to find the choke points, and then figuring out how to feed those processes to multiple cores.
from pynite.
Ok. I can answer the question: Members and phys_member would need to be also of type manager.dict()
Guess this is a huge amount of work. I will do another quick test ...
from pynite.
Thanks for your quick reply! Totally agree. I was just wondering, if there is an easy approach.
Greetings,
Chris
from pynite.
Related Issues (20)
- Add Mass Matrix and Modal Analysis HOT 1
- Mesh functions cannot be used repeatedly HOT 2
- Spring support for rotational degree of freedom HOT 2
- Nodal spring direction sign HOT 2
- Error in global geometric stiffness matrix HOT 1
- Possible code reorganisation HOT 4
- merge_duplicate_nodes removes supports HOT 3
- Some distributed loads not noted in visualizer
- Error in member3D HOT 3
- Model Re-Analysis HOT 5
- Enforced Nodal Displacements are Overridden by Spring Supports HOT 6
- VTK visualization crashing Jupyter kernel; causing errors in terminal HOT 5
- Possible issue with spring restrain HOT 4
- Add methods to Member for returning result arrays HOT 2
- PendingDeprecationWarning: matrix subclass to be deprecated HOT 1
- Load cases added to load combos HOT 4
- New release with new array and plotting features? HOT 2
- PhysMember with AuxNodes Bug [Solution Included] HOT 1
- Implement rotational springs? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pynite.