Skip to content
/ Truss Public

A toy Finite Element Method (FEM) solver for linear elasticity written in C++20.

License

Notifications You must be signed in to change notification settings

cyanray/Truss

Repository files navigation

Truss

A toy FEM solver written in C++20.

Features

  • Ability to solve 3D problems.
  • Multiple elements:
    • Truss
    • Beam
    • Constant Strain/Stress Triangle
    • Quad4
    • More...
  • Multiple materials:
    • Linear elastic
    • More...

Project Structure

Truss
├──LibTrussDocument: Parser for parsing truss documents.
├──LibTrussSolver: The implementation of the solver.
├──TrussCLI: An executable program for loading truss document files and solving for the result.
└──Tools: Some useful tools.(Input file converter, Post-processing python scripts, etc.)

Dependencies

  1. Eigen: Liner algebra library. (vcpkg)
  2. magic_enum: Useful library for enum. (vcpkg)
  3. Catch2: For unit testing. (vcpkg)
  4. backward-cpp: For printing stack trace. (CMake FetchContent)

How to use it?

In progress...

Download and Compilation

...

Examples

Check out the files in the TrussCLI/example_truss directory.

License

MPL-2.0 license.

About

A toy Finite Element Method (FEM) solver for linear elasticity written in C++20.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published