HerMES is a FEM calculation engine (solver) with GUI for linear and nonlinear trusses. It has validation examples and is able to import every 2D or 3D structure using specific JSON format.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
- Github username: vanderAries
- Repository name: HerMES
- Linkedin username: @gp-bak
- Email: gp.bak96@gmail.com
- Project Title: HerMES FEM Solver
The project was created during my master thesis with great help of my thesis supervior Roman Putanowicz.
This project was build with Python v. 3.10.6 and Python libraries shown below. All dependencies are in file requirements.txt
.
To get a local copy of HerMES up and running follow these simple example steps.
To run the program install Python at least version 3.10.6.
- First, start by cloning the repository:
git clone https://github.com/vanderAries/HerMES.git
- Access the project folder
cd HerMES
I recommend to use Python virtual environment e.g. built in venv
for development:
- Create a virtual environment
python -m venv .venv
-
Enable the virtual environment
- on Windows Powershell
.\.venv\Scripts\activate.bat
- on Mac/Linux
source .venv/bin/activate
-
Install the Python dependencies on the virtual environment
python -m pip install -r requirements.txt
- Access the source folder
cd src
- Start the program
python main.py
Program HerMES can be use to analyze truss structures using FEM. Either with 2D or 3D geometry. There are two types of analysis: linear (suitable for small displacements) and nonlinear (suitable for big displacements) with force and displacement control method.
Main GUI page with Von Mises Truss book example:
Solver GUI page with analysis setting, results and equilibrium path.
This section will be developed and updated in the future. For now, try it yourself!
├── README.md <- The top-level README for developers using this project.
├── .gitignore <- File for ignoring the folders/files in repository.
├── requirements.txt <- File for dependencies installation (Python libraries)
├── images <- Images for README
└── src <- Source folder
│
├── data <- Folder for non-book JSON examples
├── data_exchange <- Folder for import/export module
│ │
│ ├── export.py <- 2D/3D model converter, JSON results export
│ └── model_import.py <- JSON model import
│
├── examples <- Folder for book examples in JSON
├── images <- Images for GUI
├── qml <- GUI in QML language (QT Quick)
│ │
│ ├── controls <- Buttons, bars and other GUI elements
│ ├── pages <- GUI pages like: model, solver, examples, export etc.
│ └── main.qml <- main page of HerMES
│
├── results <- Folder for example results
├── structure <- Folder with solver and plotter functionality and FEM matrix models
└── main.py <- main file to run HerMES
-
GUI
-
2D Analysis
- Linear
- Nonlinear
- Force Method
- Displacement Method
- Book cases
- Every cases
-
3D Analysis
- Linear
- Nonlinear
- Force Method
- Book cases
- Every cases
- Displacement Method
- Book cases
- Every cases
- Force Method
-
Import
-
Export
-
Pre-processor
-
Post-processor
-
Units converter
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
file for more information.
Paweł Bąk - gp.bak96@gmail.com
Project Link: https://github.com/vanderAries/HerMES