Giter Site home page Giter Site logo

Comments (8)

JWock82 avatar JWock82 commented on May 18, 2024

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:

JWock82/xlFrame#12

from pynite.

LcnGnd avatar LcnGnd commented on May 18, 2024

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.

LcnGnd avatar LcnGnd commented on May 18, 2024

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.

JWock82 avatar JWock82 commented on May 18, 2024

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.

JWock82 avatar JWock82 commented on May 18, 2024

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.

LcnGnd avatar LcnGnd commented on May 18, 2024

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.

JWock82 avatar JWock82 commented on May 18, 2024

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.

LcnGnd avatar LcnGnd commented on May 18, 2024

I just have completed partitioning of stiffness matrix and I'm trying the code.

from pynite.

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.