Published April 18, 2024 | Version 0.2.0
Software Open

Supplementary codes and datasets for "Modular-topology optimization for additive manufacturing of reusable mechanisms"

  • 1. ROR icon Czech Academy of Sciences, Institute of Information Theory and Automation
  • 2. ROR icon Czech Technical University in Prague

Description

This repository supports manuscript “Modular-topology optimization for additive manufacturing of reusable mechanisms“ by M. Tyburec, M. Doškář, M. Somr, M. Kružík, and J. Zeman, published first as a preprint at researchgate.org; see the actual description of the Zenodo entry for the latest reference.

This repository contains:

  1. MATLAB source codes for (modular) free material optimisation and hierarchical stiffness clustering (folder ./mFMO/)
  2. C++ source codes for modular topology optimization (folder ./MTO/)
  3. Input/output data of the test suite (folder ./data/)

Data flow

The test suite considered in the manuscript covers 3 problems:

  1. Non-modular design (labelled as nonmodular)
  2. Modular design without connectivity constraints (labelled as modular_not_connected)
  3. Modular design with connectivity constraints (labelled as modular_connected)

Each problem in the dataset is stored within a separate subfolder named according to the labels mentioned above and contains

- step_{X}.vtu files that contain topology optimization data related to the iteration X
- step_{X}_proj_{Y}.stl files containing optimized topologies for the iteration X and the projected field Y (0 is intermediate, 1 for eroded, and 2 for dilated)
- *.json file that serves as an input to reproduce the topology optimization

Running codes

Modular free material optimisation

MATLAB scripts and functions for (modular) Free Material Optimization (FMO) are contained in the mFMO data folder. The codes have been tested with MATLAB R2022b. To run the codes the user is required to install the PENNON optimizer. A free academic license is provided by its authors on request.

Input files for individual problems are defined in the mFMO/problems folder and are launched with the runproblem(problemName, numClusters), where problemName is grip for the gripper mechanism and inv for the inverter mechanisms. The numClusters parameter is arbitrary in this case and can be set to 1 for the fastest evaluation. Based on the problemName parameter, free-material optimization provides optimized designs for each of the mechanisms, resulting in the {problemName}_tmp.mat output file. Next, it is needed to build an instance of invgrip that contains optimized data from the independent optimization to perform simultaneous clustering. This data is already prepared in the file named invgrip.mat. Using this file, clustering and modular free-material optimization is performed by running solveFMO(invgrip.mat, numClusters), where numClusters is 15 in our case.

If successful, the optimization produces output files in mFMO/fmo_fig/:

  • {label}{X}.mat (contains clustering and assembly plan information)
  • {label}{X}guess.mat (guess for TO)

where T is the optimization time stamp.

Modular topology optimisation

All results were obtained with version v0.2.0, which is also provided in the folder MTO, and linked Intel® oneAPI Math Kernel Library and the incorporated PARDISO sparse solver. For the recent development of the code see the open git repository at https://gitlab.com/MartinDoskar/modular-topology-optimization. The repository also contains a detailed description of input parameters and code design.

Modular topology optimisation code uses CMake for the cross-platform build automation. For instance, under Linux, the whole code can be compiled in the standard five steps:


cd ./MTO
mkdir build
cd ./build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

All executables are automatically stored in ./MTO/bin/ folder. Individual problems can be optimized by parsing the JSON files generated based on the FMO data, e.g.,

./MTO/bin/MTO.Application.exe input.json

Acknowledgement

The related research and code development was supported by the Czech Science Foundation, project No. 19-26143X.

Files

data.zip

Files (2.5 GB)

Name Size Download all
md5:4eb0373a3fe605ae03ada3116587f687
2.5 GB Preview Download
md5:c61307a8122e6f411d65b038b78e473d
523.4 kB Preview Download
md5:86c05e005e351cd79af821efbfb0c142
210.7 kB Preview Download
md5:e836afed966d88da9df1b3d806087a7b
4.1 kB Preview Download

Additional details

Software

Repository URL
https://gitlab.com/MartinDoskar/modular-topology-optimization
Programming language
Objective-C++, MATLAB
Development Status
Active