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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

01baba4 · Sep 14, 2023

History

69 Commits
Mar 17, 2023
Mar 22, 2023
Sep 14, 2023
Sep 14, 2023
Sep 14, 2023
Jun 9, 2023
Mar 8, 2023
Jan 7, 2023
Mar 26, 2023
Mar 22, 2023
Mar 17, 2023
Feb 24, 2023
Jul 21, 2023
Mar 17, 2023

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