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

Stresses in DKT elements + combination of stresses + pushing code #60

Closed rubsy92 closed 4 years ago

rubsy92 commented 4 years ago

Hi, I have been watching this repository for some time now and there are some interesting developments going on right now! I am planning on giving it a more up-close look and making some contributions depending on where I can help. For now I want to test and validate the shell elements since the quadrilateral one is being added as we speak. I started off with the TriangleFlatShell-element and the results of the membrane-element seem correct (both translations as stresses). The stresses are however not correct in the bending element, while the displacements are the same as in my validation package. I expect to get some values near 20 MPa, however I only get some kPa… Do you have any idea where the problem may lie?

Also: suppose you have both the bending and the membrane behavior and you would like to get the stress in the element. Based on the “GetInternalForce” method I get a stress from both elements types (GetInternalForce.BendingTensor and GetInternalForce. MembraneTensor). How do I combine these in a single Cauchystresstensor?

I’ve made a small addition to the CauchyStressTensor to get the principal stresses, but I can’t push it to the main branch (probably because I don’t have the correct rights/I cloned it immediately in Visual studio?). How should I clone it to be able to push code back?

PS: Good work so far!

epsi1on commented 4 years ago

The TriangleElement is going to replace with other elements like CST and DKT. and cst and dkt are going to transfer to DktHelper and CstHelper, but not complete yet. So i suggest to work on those codes, my next descriptions are about TriangleElement and DktHelper and CstHelper, not DktElement and CstElement etc. DktElement and CstElement are going to be deprecated, so please work with TriangleElement, DktHelper and CstHelper.

There are two types of tensor

image image from here: https://www.scielo.br/scielo.php?script=sci_arttext&pid=S1679-78252014000900010#fig1

Bending behavior (DktHelper) only will change BendingStressTensor, while membrane behavior (MembraneHelper) only will change CauchyStressTensor.

As you said, the Cauchy tensor result from triangle element seems to be right, but Bending have incorrect values, i've seen this before and i think you are right. The bending is calculated from standard FEM formula, D.B.U where D is matrix compliance matrix (material), B is matrix calculate from element (derivatives of shape functions) and U is local displacement vector. If there is problem with bending tensor values, then the corresponding method is DktHelper.GetLocalInternalForceAt() that should be fixed.

About contributing, can you please make it a pull request?