#fem #mechanical #rat-rod

RatRod-rs

An FEM implementation written in Rust

1 unstable release

0.1.0 Feb 20, 2024

#3 in #mechanical

MIT license

22KB
470 lines

RatRod.rs

An FEM implementation written in Rust

Disclaimer

This library is mainly a personal project. It's neither qualified neither guarantied and should not be used to assess actual mechanical structures.

How to use it ?

The library is built around the Model class.

This class allows to describe the model to be studied using a factory pattern as below :

        let mut model = Model::new(2, 0.00000001);
        model.add_node(Node {
            x : 0.,
            y : 0.,
            z : 0.
        }).add_node(Node {
            x : 1.,
            y : 0.,
            z : 0.
        }).add_material(Material {
            e : 1.
        }).add_section(Section {
            s : 1.,
            i : 1.
        }).add_element(ElementType::Beam, vec![0,1], 0, 0)
        .add_u_boundary_condition(0, 0, 0.)
        .add_u_boundary_condition(0, 1, 0.)
        .add_u_boundary_condition(0, 2, 0.)
        .set_force(1, 1, 3.);

Then, model.solve(), model.u and model.f can be used to solve the model and get the displacements and forces on the nodes.

Dependencies

~0.8–1.6MB
~36K SLoC