Code Monkey home page Code Monkey logo

hermes's Introduction

Contributors Forks Stargazers Issues MIT License LinkedIn


Hermes Logo


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
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

The project was created during my master thesis with great help of my thesis supervior Roman Putanowicz.

(back to top)

Built With

This project was build with Python v. 3.10.6 and Python libraries shown below. All dependencies are in file requirements.txt.

  • QT for Pyton (PySide)

    PySide logo

  • NumPy

    NumPy logo

  • SciPy

  • Matplotlib

(back to top)

Getting Started

To get a local copy of HerMES up and running follow these simple example steps.

Prerequisites

To run the program install Python at least version 3.10.6.

Installation

  • 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

(back to top)

Usage

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:

Hermes GUI Model

Solver GUI page with analysis setting, results and equilibrium path.

Hermes GUI Solver

This section will be developed and updated in the future. For now, try it yourself!

(back to top)

Project Organization

├── 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

Roadmap

  • 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
  • Import

  • Export

  • Pre-processor

  • Post-processor

  • Units converter

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

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!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE file for more information.

(back to top)

Contact

Paweł Bąk - [email protected]

Project Link: https://github.com/vanderAries/HerMES

(back to top)

Acknowledgments

(back to top)

hermes's People

Contributors

vanderaries avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.