... | ... | @@ -29,32 +29,22 @@ Furthermore, for the 2024 GSoC edition we completely re-structured the project p |
|
|
|
|
|
### Python Preprocessor development
|
|
|
|
|
|
The [MBDyn Python Preprocessor](https://public.gitlab.polimi.it/DAER/mbdyn/tree/develop/contrib/PythonPreprocessor) is a tool that is currently intended to support and speed up the generation of input files, integrating the standard MBDyn input syntax with Python code. The preprocessor parses an input file searching for Python code wrapped by `#beginpreprocess` and `#endpreprocess` tags, and processes it generating portions of the final input file. See the examples in [contrib/PythonPreprocessor/examples](contrib/PythonPreprocessor/examples).
|
|
|
The [MBDyn Python Preprocessor](https://public.gitlab.polimi.it/DAER/mbdyn/tree/develop/contrib/PythonPreprocessor) is a tool that is intended to support and speed up the generation of input files, integrating the standard MBDyn input syntax with Python code.
|
|
|
|
|
|
The aim is to enable the user to write a complete MBDyn model, from scratch, only using Python. The development of other preprocessing tools, for example GUI-based, will then be greatly facilitated.
|
|
|
The preprocessor can parse an input file searching for Python code wrapped by `#beginpreprocess` and `#endpreprocess` tags, and processes it generating portions of the final input file. See the examples in [contrib/PythonPreprocessor/examples](contrib/PythonPreprocessor/examples).
|
|
|
|
|
|
The development process will be incremental:
|
|
|
After the 2024 GSoC project of [Shimul Baidya](@shimul.cse31), pre Preprocessor is now able to generate an entire MBDyn model using only Python code. This makes it suitable for integration in other software providing a Python API, to define a GUI-based method for MBDyn model generation. It also makes it easy to define higher-order preprocessing methods, like meshing flexible elements and automatically generating models for complex systems (for example, aeroelastic models of rotary-wing aircraft).
|
|
|
|
|
|
1. extending the library of entities supported by the Preprocessor to cover all the available entities (up to here, this is a **90 hours project**):
|
|
|
- drive callers
|
|
|
- constitutive laws
|
|
|
- drivers
|
|
|
- nodes
|
|
|
- elements
|
|
|
2. adding classes that manage the MBDyn input file blocks defining the general behavior of the model and simulation:
|
|
|
- initial value
|
|
|
- control data
|
|
|
3. adding a class to hold an entire MBDyn Model (up to here, this is a **175 hours project**)
|
|
|
4. integrating the Python Preprocessor into Blendyn
|
|
|
5. adding special preprocessing procedures for flexible elements (meshing)
|
|
|
6. integrating in the Preprocessor special methods to generate parametric aeroelastic models of rotary-wing aicraft (getting here, will require a full **350 hours project**
|
|
|
|
|
|
NOTE: the work will start from on the existing [MBDyn Python Preprocessor](https://public.gitlab.polimi.it/DAER/mbdyn/tree/develop/contrib/PythonPreprocessor) code and possibly on the code written by [Aditya Baghat](https://gitlab.com/adityabhagat99) during the 2019 Google Summer of Code, that intended to build the groundworks for a FreeCAD GUI preprocessor. The repository holding Adityia code can be found [here](https://gitlab.com/zanoni-mbdyn/mbdynfreecadgui).
|
|
|
In this context, many possibilities for GSoC projects can be devised. A non-comprehensive list of ideas that can be taken alone or combined to form a GSoC project:
|
|
|
- Integration of the Preprocessor in [Blendyn](https://github.com/zanoni-mbdyn/blendyn), so that Blender can become a pre- and post-processor for MBDyn.
|
|
|
- Integration of the Preprocessor in [FreeCAD]
|
|
|
- Addition of classes that handle the generation of rotary-wing aircraft components (like HingelessRotor, FullyArticulatedRotor, Wing, etc...)
|
|
|
- Addition of classes to handle flexible element meshing
|
|
|
|
|
|
**Category**: [User Interface](#user-interface)\
|
|
|
**Programming Languages**: Python\
|
|
|
**Difficulty**: Low/Intermediate\
|
|
|
**Mentors**: Andrea Zanoni, Marek Lukasiewicz\
|
|
|
**Mentors**: [Andrea Zanoni](@10260632), [Marek Lukasiewicz](@marek.lukasiewicz)\
|
|
|
**ENTRY TEST**: Complete step 1 of standard MBDyn GSoC [entry test](https://gitlab.polimi.it/Pub/mbdyn/wikis/Google-Summer-of-Code/Entry-Test), compiling MBDyn from the `preprocess` branch, then write a simple parametric input file leveraging the Python Preprocessor. If you can, try to add support for a new MBDyn entity (e.g. a Drive Caller, see Section 2.6 of the Input Manual).
|
|
|
|
|
|
---
|
... | ... | @@ -76,7 +66,7 @@ Developing a fully-featured GA solver, plus structuring the module so that also |
|
|
**Programming Languages**: C++\
|
|
|
**Keywords**: Optimization, Genetic Algorithms\
|
|
|
**Difficulty**: Intermediate/Advanced\
|
|
|
**Mentors**: Andrea Zanoni
|
|
|
**Mentors**: [Andrea Zanoni](@10260632)
|
|
|
|
|
|
---
|
|
|
|
... | ... | @@ -101,7 +91,7 @@ It is simple to use and generates 3D animations that represent the exact model m |
|
|
**Programming Languages**: Python\
|
|
|
**Keywords**: Blender, UI, post-process\
|
|
|
**Difficulty**: Low/Intermediate\
|
|
|
**Mentors**: Andrea Zanoni\
|
|
|
**Mentors**: [Andrea Zanoni](@10260632)\
|
|
|
**ENTRY TEST**: Complete step 1 of standard MBDyn GSoC [entry test](https://gitlab.polimi.it/Pub/mbdyn/wikis/Google-Summer-of-Code/Entry-Test), then use the Blender Python API (or console) to create a simple Blender model
|
|
|
|
|
|
---
|
... | ... | @@ -124,7 +114,7 @@ The roadmap can be the following one: |
|
|
**Programming Languages**: C++\
|
|
|
**Keywords**: post-process, NetCDF\
|
|
|
**Difficulty**: Low\
|
|
|
**Mentors**: Andrea Zanoni
|
|
|
**Mentors**: [Andrea Zanoni](@10260632)
|
|
|
|
|
|
---
|
|
|
|
... | ... | @@ -143,7 +133,7 @@ Depending on the amount of flexibility/implemented features, this project can be |
|
|
**Category**: [Modeling Capabilities](#modeling-capabilities)\
|
|
|
**Programming Languages**: C/C++\
|
|
|
**Keywords**: Inter-Process Communication, Sockets\
|
|
|
**Difficulty**: Easy\
|
|
|
**Difficulty**: Low\
|
|
|
**Mentors**: Andrea Zanoni, Marek Lukasiewicz
|
|
|
|
|
|
### MBDyn-DUST Module
|
... | ... | @@ -161,6 +151,6 @@ This project aims at developing an *in-house* solution for the coupling, in the |
|
|
**Programming Languages**: C/C++\
|
|
|
**Keywords**: Inter-Process Communication, Co-Simulation\
|
|
|
**Difficulty**: Intermediate/Advanced\
|
|
|
**Mentors**: Andrea Zanoni, Alberto Savino, Alessandro Cocco
|
|
|
**Mentors**: [Andrea Zanoni](@10260632), [Alberto Savino](@alberto.savino), [Alessandro Cocco](@alessandro.cocco)
|
|
|
|
|
|
--- |