BriefFiniteElementNet / BriefFiniteElement.Net

BriefFiniteElementDotNET (BFE.NET) is a library for linear-static Finite Element Method (FEM) analysis of solids and structures in .NET
https://www.bfe-framework.net
GNU Lesser General Public License v3.0
154 stars 58 forks source link

IsoCoordsToLocalCoords + GetInternalStress Q4 #64

Closed rubsy92 closed 4 years ago

epsi1on commented 4 years ago

Can you please update the code at line #493 of file Elements/TriangleElement.cs? I did not knew how BendingtressTensor does affect on CauchyStressTensor. Thank you so much

rubsy92 commented 4 years ago

Hi @epsi1on

I added the code for the triangleElement, however you should be very careful with requesting the internal stress of a shell. As a user you don't know where the highest stress is (+thickness/2 or - thickness/2) so you would need to request both values and check which one is more critical. That's why I previously implemented the "SectionPoints" enum and the "UpdateTotalStress" method in the "FlatShellStressTensor" class. This enables the GetInternalStress method to determine the highest stress value and therefore I'd prefer not to put the obsolete tag on that method... After all it provides the best resemblance to Abaqus...

Cheers

epsi1on commented 4 years ago

yes, I've already seen the approach you've used, I'll remove the Obsolete attribute on the method. Thanks

epsi1on commented 4 years ago

I think we should bring this issue (highest stress) in a related example for triangle and q4 elements

rubsy92 commented 4 years ago

Yes, I think that would be helpful. Maybe it's best to put that into the documentation? Or just as a text file in the code?

A good way to see the difference is combining a pre-stressed plate with bending. I.e. in-plane + out-of-plane loading. Then you can export the top/bottom/envelope values. I have the data, but I cannot access the documentation I guess.

rubsy92 commented 4 years ago

I'm organizing/grouping the methods of the TriangularElement and the QuadrilateralElement a bit now. I'm also filling in the last methods which have a NotImplementedException. I'll probably make another commit today.

epsi1on commented 4 years ago

I think you've used the metric local coordinates, but usually iso parametric coordinates are used for getting stresses. Also in GetBMatrixAt and GetDMatrixAt iso parametric coords are used. public FlatShellStressTensor GetInternalStress(double localX, double localY, double localZ, LoadCombination combination, SectionPoints probeLocation)

Thanks

rubsy92 commented 4 years ago

GetInternalStress expects iso coordinates, but I admit it's not clearly documented. I'll modify it.

epsi1on commented 4 years ago

Yes, I think that would be helpful. Maybe it's best to put that into the documentation? Or just as a text file in the code?

A good way to see the difference is combining a pre-stressed plate with bending. I.e. in-plane + out-of-plane loading. Then you can export the top/bottom/envelope values. I have the data, but I cannot access the documentation I guess.

documentation is also hosted in github: https://github.com/BriefFiniteElementNet/BFE.Net.devdocs It is entirely in rst format (reStructuredText), very similar to markdown. For adding new example, pls add new rst file in the docs/example in documentation repository then write example inside it. There are also several existing examples. I think i should combine that repository with main BFE repository.

rubsy92 commented 4 years ago

See the new commit for:

Are there still other methods for the shell elements which need completion?