BriefFiniteElementNet / BriefFiniteElement.Net

BriefFiniteElementDotNET (BFE.NET) is a library for linear-static Finite Element Method (FEM) analysis of solids and structures in .NET
GNU Lesser General Public License v3.0
154 stars 57 forks source link

Von Mises and principal stress +strain determination #61

Closed rubsy92 closed 4 years ago

epsi1on commented 4 years ago

Thanks for pull request, I think there is room for enhancement, could you please:

I asked it because the Cauchy tensor have 9 properties, other three ones are not standard ones,

Thanks

epsi1on commented 4 years ago

I did some changes on your code , can you please check and see if there is any issue?

epsi1on commented 4 years ago

do you know any algorithm to find eigen values and eigen vectors of 3x3 matrix in C#? It could be used for principal stress and transformation that causes that.

rubsy92 commented 4 years ago

I implemented the principal stresses - see the code for the source. Transformation matrix is missing though. I also added a method to get the total stress in a triangular element based on the bending + membrane on different section points. The triangular elements seem to work good - validated with Abaqus on very simple structures. There is however and error in the membrane portion of the quadrilateral element. The shear stresses seem to be okay, but the S11 component isn't. Any thoughts? The displacements are also a bit off.

epsi1on commented 4 years ago

Maybe bending and Cauchy tensor are not convertible, unless for a specific purpose, that is not general thing so i think better to move the ConvertBendingStressToCauchyTensor to other class, maybe classes who call this method. I think these are not convertible to each other unless you take the local Z direction (thickness) into account. Also i think all other stress tensors except Cauchy and Bending are going to be deprecated. Also all triangle elements (like DktElement or TriangleFlatShell) except the main TriangleElement are going to be deprecated. For minor discrepancies in membrane part of QuadrilaturalElement I think @thaletob should do a check as they did code that section.

rubsy92 commented 4 years ago

@thaletob have you already done some validation/are you planning to validate the q4?

thaletob commented 4 years ago

@rubsy92 I just did a Validation using BriefFiniteElements.Validation.QuadElementTester.cs with the TestSingleElement-Function. I built the same little Element in Abaqus CAE. But I have not checked/ compared the results yet...

epsi1on commented 4 years ago

There are some data inside path \BriefFiniteElementNet\BriefFiniteElementNet.Validation\Data for validating both TriangleElement and QuadrilaturalElement.

2

rubsy92 commented 4 years ago

@epsi1on Thanks for the data. Which element type was used? S4, S4R or S4R5?

epsi1on commented 4 years ago

@epsi1on Thanks for the data. Which element type was used? S4, S4R or S4R5?

Hi, I don't know, I should ask the person who done the analysis.

epsi1on commented 4 years ago

I still cannot understand the purpose of converting bending tensor to Cauchy tensor!

rubsy92 commented 4 years ago

The bending tensor provides bending moments, but in a practical situation you need stresses so you can compare the occurring stresses with a yield criterion. Therefore I implemented a method which converts the bending moment into a stress (given a thickness ofcourse). So in a general load situation where you have both the membrane and bending action you need to compare the membrane stress with a bending stress (which you get at the surface since the stress caused by bending is at its maximum on the surface). You do have to be careful though since you have to check both sides of the shell. Therefore I implemented the enum with top, bottom and envelope. I tested it on a very simple geometry and it yields the exact same solution as the STRI3 element of Abaqus (at the integration points).

epsi1on commented 4 years ago

Thanks, perfectly makes sense. Is it possible to add same feature to TriangleElement? i mean when user wants to calculate internal force, a third component (xi eta and lambda) taken into account, where xi and eta are in 2D, and lambda is in thickness, Lambda = -1 equals to button, Lambda = 0 equals to center, Lambda = 1 equals to top.

thaletob commented 4 years ago

@rubsy92 What was the result of your validation?