Supplementary codes and datasets for "Modular-topology optimization of structures and mechanisms with free material design and clustering"
- 1. Czech Technical University in Prague
Description
This repository supports manuscript “Modular-topology optimization of structures and mechanisms with free material design and clustering” by M. Tyburec, M. Doškář, J. Zeman, and M. Kružík, first published as preprint 2111.10439 at arXiv.org.
This repository contains:
- MATLAB source codes for (modular) free material optimisation and hierarchical stiffness clustering (folder
./mFMO/
) - C++ source codes for modular topology optimization (folder
./MTO/
) - Input/output data of the test suite (folder
./data/
)
1. Data flow
The test suite considered in the manuscript covers 4 problems:
- Messerschmitt-Bölkow-Blohm beam (labelled as
mbb
) - Inverter compliant mechanism (labelled as
inv
) - Gripper compliant mechanism (labelled as
grip
) - Reusable design of both compliant mechanisms (labelled as
invgrip
)
Each problem in the dataset is stored within a separate subfolder named according to the labels mentioned above. The final level of subdirectories {X}color
comprises of the results for problems with X
denoting the number of edge codes considered for each edge direction during the clustering (0color
stands for a non-modular design and 1color
represents the design based on Periodic Unit Cell).
Each of the folders contains outputs of the modular free material optimisation in the following form:
{label}{X}.mat
{label}{X}.til
{label}{X}.tset
{label}{X}guess.mat
Files *.til
, *.tset
, and *guess.mat
are then converted into a JSON input file for the modular topology optimization code with generator scripts which can be found in ./MTO/scripts
folder. Note that each of the problems in the test suite has its own generator script generate_modular_problem_{MBB,inverter,gripper,inverterAndGripper}.mat
. The generator scripts make a directory named according to the key MTO_{n}_kernelSensitivity
, where n
denotes the resolution of each module (i.e. the number of nodes along one direction). The directory also contains the outputs of the modular topology optimisation in the form of the initial and the final state of the optimization in VTK
files and visualisation of the final state in SVG
files. The log file log.txt
stores the optimized objective and progress of the value along with stopping criteria quantities during iterations.
2. Running codes
2.1 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 R2019b. 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
refers to the file in the mFMO/problems
folder without the file extension and numClusters
denotes the maximum number of color codes in Wang tiling formalism.
If successful, the optimization produces output files in mFMO/fmo_fig/{label}/{X}colors/{T}/
:
{label}{X}.mat
(contains clustering and tiling information){label}{X}_tmp.mat
(contains results of non-modular FMO){label}{X}.til
(the assembly plan){label}{X}.tset
(Wang tile set){label}{X}guess.mat
(guess for TO)
where T
is the optimization time stamp.
2.2 Modular topology optimisation
All results were obtained with version v0.1.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 obtained from the generator scripts as an argument to the MTO.Application binary, e.g.,
./MTO/bin/MTO.Application.exe path_to_data/mbb/2color/MTO_100_kernelSensitivity/input_modular_mbb_2colours_100.json
Acknowledgement
The related research and code development was supported by the Czech Science Foundation, project No. 19-26143X.
Files
mFMO-MTO_v1.0.zip
Files
(1.4 GB)
Name | Size | Download all |
---|---|---|
md5:334206d36af7d5ff6a55ba846b645ece
|
1.4 GB | Preview Download |
Additional details
Related works
- Is supplement to
- Preprint: arXiv:2111.10439 (arXiv)