An implementation of the direct stiffness method for linear analysis of planar frames.
This repository is intended to host the underlying logic needed for the calculation, as well as a simple CLI. GUI frontends will be hosted on their own, even if directly referencing to this library.
It is currently early in development; no structure can, as of yet, be analysed.
Run "make"; "make clean" to delete the program.
Until otherwise specified, the default will be to compile without any optimisations, with debugging information, and to run the tests afterwards.
The following represents the current design intent, and is not yet implemented!
Run f2 with at least two arguments: one .f2g file, which includes all the geometrical definitions; and, at least, one .f2l file, defining a single load case.
In the end, a quick summary of the calculation is shown in the terminal, with more detailed descriptions being writen to output files. Should more than one load case be input, these conclusions include both results for each given load case, and a single, unfactored, result combination of all of included cases.
There are two main motivations for this endeavour: firstly, the desire to procude a "non-trivial" project to help me develop my software development skills; it also has the long term goal of becoming an alternative to an educational tool that existed at the time I was studying structural engineering (which seems to have since gone behind a registration wall).
Get a minimal viable product out, then add some extra functionality without breaking compatibility, before updating to planar frame analysis.
The following is a non-exhaustive roadmap:
- Planar truss (1 material, and 1 cross-section);
- + m materials;
- + n cross-sections;
- Planar frame (with all of the above);
- + beam loads;