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
148 stars 57 forks source link

Load Handling restructure #187

Closed epsi1on closed 6 days ago

epsi1on commented 2 weeks ago

Different loads on different elements need different formulas. for example UniformLoad on a beam have a different formula than a UniformLoad on a truss. also if beam have uniform section/material along it's length formulation is different than nonuniform section/material. 3 aspects.

There are 4 different types of Load:

There are 7 different types of element (which implement IElementHelper)

There are 2 different situation in term of section/material uniformity:

Combination is 4x7x2=56. so there are 56 different formulas for covering all types of load applied to all types of elements with regarding material uniformity. Note that nonuniform formulation can cover uniform material. but with extra computation cost and sometime lower accuracy. so will use simpler formula with lower computation cost for uniform, and more complex formula for nonuniform.

Since now, all codes are stored in a single file. it mean all codes for beam behaviour are inside EulerBernullyBeamHelper which causes the file to have more than 1K lines of code. make it hard to trace, debug and test. so i think better to reorganize the code for this. so i think better to have an interface of ILoadHandler which is responsible for handling a specific load, on a specific element (Helper) and specific uniformity (uniform or nonuniform material). Many of the items are Zeros, for example a uniform body load of shaft element do not cause any internal force.

epsi1on commented 2 weeks ago

almost done.

epsi1on commented 6 days ago

done