Giter Club home page Giter Club logo

Comments (16)

JWock82 avatar JWock82 commented on May 24, 2024

I'll post how I derived the beam segment deflection equations soon. I've been meaning to do it for a while now, along with other derivations I've used. I used direct integration to get the beam segment equations.

I used 'Jupyter Lab' and 'Sympy' to help me get the math right. You'll need to have those two libraries installed in order to view the notebook. Or you could install the Jupyter Notebook viewer.

from pynite.

LcnGnd avatar LcnGnd commented on May 24, 2024

But do these formulations can be found in books of Structural mechanics theory ?

from pynite.

JWock82 avatar JWock82 commented on May 24, 2024

The equations in PyNite are derived from the direct integration method, and the slope-deflection method, which are in just about every structural engineering textbook.

The derivations have been uploaded now.

from pynite.

JWock82 avatar JWock82 commented on May 24, 2024

Your function AxialDeformation appears to return the axial strain at x. Don't we need to sum all the axial strains up to x instead? It appears that's what you're attempting to do with the self.AxialDeformation(x) * x term. That equation works if the strain is constant, but a summation or even integration may be required for variable axial loads.

from pynite.

JWock82 avatar JWock82 commented on May 24, 2024

In order to handle the summation, the BeamSegZ class would need a variable added to it to track initial translation on each segment, the same way we track initial deflection.

from pynite.

LcnGnd avatar LcnGnd commented on May 24, 2024

About AxialDeformation, it should be correct; it returns axial strain at x and I need this because I also introduce the function PlotAxialDeformation that is defined in Member.py.
About AxialTranslation, I'm agree with you. There is something that dosen't works and I think this is releated to formulation that I've used.

from pynite.

LcnGnd avatar LcnGnd commented on May 24, 2024

Could you explain better what you want to say about additional variable?

from pynite.

LcnGnd avatar LcnGnd commented on May 24, 2024

Initial translation (translation1) is defined in BeamSegZ class; it's calculated in Member3D.py for i=0:

SegmentsZ[0].translation1 = d[0,0]

and for i>0:

SegmentsZ[i].translation1 = SegmentsZ[i-1].AxialTranslation(SegmentsZ[i-1].Length())

from pynite.

JWock82 avatar JWock82 commented on May 24, 2024

I see what you've done there. translation1 is the additional variable that tracks the initial translation at the start of each mathematically continuous segment. That works.

from pynite.

LcnGnd avatar LcnGnd commented on May 24, 2024

Maybe I understand where I'm wrong! In Axial translation I have to use the integral of deformation (N(x)/EA) and not

translation1 - self.AxialDeformation(x) * x

from pynite.

JWock82 avatar JWock82 commented on May 24, 2024

I think that's correct!

If you look at the derivations for BeamSegZ I posted you'll see how I integrated the distributed load to get the change in shear, and how I integrated the shear to get the change in moment, and the moment divided by EI to get the change in slope, and the slope to get the change in deflection. When you add the initial conditions to the change you get the total shear, moment, slope, and deflection. You can use the same procedure and EA to get the axial translation. Sympy will even take care of the calculus for you.

from pynite.

JWock82 avatar JWock82 commented on May 24, 2024

Also, it's worth noting that translation1 - self.AxialDeformation(x)*x is the integral if the load is constant. That's why it worked for constant axial forces.

from pynite.

LcnGnd avatar LcnGnd commented on May 24, 2024

Yes, now I have understood the derivations and I have followed the same procedure for axial translation. In this way I wouldn't need of Axial function but it can be used for axial deformation plotting. It can be also useful.

from pynite.

LcnGnd avatar LcnGnd commented on May 24, 2024

aaa

from pynite.

JWock82 avatar JWock82 commented on May 24, 2024

I didn't see a pull request come through for this one. Were you planning to issue one?

from pynite.

LcnGnd avatar LcnGnd commented on May 24, 2024

Yes of course, I'll open a pull request soon!

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.