Comments (16)
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.
But do these formulations can be found in books of Structural mechanics theory ?
from pynite.
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.
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.
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.
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.
Could you explain better what you want to say about additional variable?
from pynite.
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.
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.
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.
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.
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.
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.
from pynite.
I didn't see a pull request come through for this one. Were you planning to issue one?
from pynite.
Yes of course, I'll open a pull request soon!
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
- multiprocessing HOT 3
- 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.