Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Load Handling restructure #187

Closed
epsi1on opened this issue Jul 7, 2024 · 2 comments
Closed

Load Handling restructure #187

epsi1on opened this issue Jul 7, 2024 · 2 comments

Comments

@epsi1on
Copy link
Member

epsi1on commented Jul 7, 2024

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:

  • UniformLoad
  • PartialNonuniformLoad
  • ImposedStrainLoad
  • ConcentratedLoad

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

  • EulerBernulyBeamHelper: For handling Euler Bernuly beam (BarElement)
  • TrussHelper: For handling truss element with axial deformation (BarElement)
  • ShaftHelper: For handling shaft element with axial torsion (BarElement)
  • CstHelper: For handling membrane behavior (TriangleElement)
  • DktHelper: For handling bending behavior (TriangleElement)
  • TriangleDrillingDofHelper: For handling drilling DoF (TriangleElement)
  • TetrahedronHelper: : For handling tetrahedron element

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

  • Uniform: where material/section is uniform along the element's body.
  • Nonuniform: where material/section is not uniform along the element's body. for example a tapered beam with varying section height along the length

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 added a commit that referenced this issue Jul 7, 2024
@epsi1on
Copy link
Member Author

epsi1on commented Jul 9, 2024

almost done.

@epsi1on epsi1on changed the title Load Handling restreucture Load Handling restructure Jul 19, 2024
@epsi1on
Copy link
Member Author

epsi1on commented Jul 19, 2024

done

@epsi1on epsi1on closed this as completed Jul 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant