There is a newer version of the record available.

Published November 19, 2021 | Version 1.0.0
Dataset Open

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:

  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/)

1. Data flow

The test suite considered in the manuscript covers 4 problems:

  1. Messerschmitt-Bölkow-Blohm beam (labelled as mbb)
  2. Inverter compliant mechanism (labelled as inv)
  3. Gripper compliant mechanism (labelled as grip)
  4. 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)