Comments (8)
That is quite a project. I've looked into it before. I'd like to add this functionality eventually, but it requires partitioning the stiffness matrices, solving two sets of equations, and a lot of book-keeping along the way. I'd also like to add spring supports, which is a similar project.
You're welcome to give it a try if you like, but it affects a lot of the core of the code. I want to make sure it gets implemented correctly when I do it, so I'll be slow to review any pull requests on this. It would be easy to accidentally mess up the core of the program.
For now, I have other features that are in line ahead of this. It's a low priority because rarely in practice have I ever encountered a situation where I needed to account for a support settlement. Most settlements are small and most real-world structures can handle a little settlement without much trouble.
Here's a thread on my xlFrame project that discusses doing this for xlFrame. It outlines the basic issues:
from pynite.
Actually I think this feature is most important in structural engineering. if you want to model a foundation settlement this feature is required. I think about houses but alse about bridges. I would like to add this new features for my project and for all.
I think that the harder part of the work is solve equation's system. I read this topic in "A First Course
in the Finite Element Method - Fourth Edition - Daryl L. Logan" at page 42.
For now I've defined the function AddFixedNodalDisplacement in FEModel3D.py which introduce a node displacement in a non-supported node and store this displacement like node's attribute (es. Node.DX).
I've modified the DefineSupport funcition introducing possibility to write a number too, which will rappresents the displacement value. It's stored like node's attribute too.
Moreover, I've created a list in Node3D's attribute called FixedNodalDisplacements = [] (initially empty) in which storing fixed nodal displacements (Value, Direction)
This is my first idea.
from pynite.
I would like to understand better the static condensation using to solving the model. Where can I find theoretical explanation which you referred in the code to?
I'm working on nodal settlement and I have to understand how this part of code works in order to know what modify.
Thanks!
from pynite.
The book you referenced above covers static condensation very well. It gives an example of doing it to a plate, but the principle is the same for a beam hinge.
from pynite.
Instead of creating another class attribute to store a user defined displacement, you can just store it in the nodal displacement attribute (e.g. Node.DX = 3). That would reduce memory usage, and you could then partition the matrixes based on whether the degree of freedom’s displacement has an assigned value or whether it’s “None” prior to analysis.
from pynite.
Ok, it can be a good solution, I'm agree with you, I will try!
In terms of static condensation it is like we have three types of degree od freedom:
- free degree of freedom
- degree of freedom released
- degree of freedom imposed
So, introducing nodal displacements I will havo to treat releases and nodal displacements at the same time; so the matrixes partition will be different from the previous one. That's right?
from pynite.
Update:
I have started working on this feature. I'm finding large plate models are slow, and eliminating the step where PyNite removes rows and columns from the stiffness matrix might greatly improve solution speed on large models. I think partitioning the stiffness matrix will be computationally faster, so I'm going to add this feature.
I don't have a lot of time right now to work on it, so it may take some time. I'm about 25% finished.
from pynite.
I just have completed partitioning of stiffness matrix and I'm trying the code.
from pynite.
Related Issues (20)
- Implement rotational springs? HOT 3
- Discontinuities in moment, deflection diagrams HOT 8
- Cannot create PDF report HOT 2
- Post-processing - analysis fails for two span beams HOT 2
- Define hinge at a member HOT 2
- What is "matrix is singular" error? HOT 4
- FR: Make Matplotlib optional HOT 2
- Error Creating Members with Aux Nodes HOT 4
- CylidnerMesh origin wrong when not using axis='Y' HOT 5
- Reaction force - Equilibrium problem HOT 18
- Rotational Symmetry HOT 3
- Incorrect (Zero) Reaction Observed in Z-Direction for Cantilevered Beam with Spring Supports HOT 4
- 'Quad3D' object has no attribute 'LoadCombos' HOT 2
- RuntimeWarning: divide by zero encountered in double_scalars HOT 2
- Displacement Memory Growth & Purge Option + Disk Caching of Displacements HOT 3
- P-Delta Member Internal Results Incorrect HOT 1
- PyNite Import Issue HOT 3
- Tension-only members HOT 3
- Issue initalising PhysMember HOT 3
- Variable cross-section along member HOT 1
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.