Skip to content

Python codes for generating a dataset with topology optimization results for the base cell of a periodic metamaterial

License

Notifications You must be signed in to change notification settings

Joquempo/Metamaterial-Dataset

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Metamaterial-Dataset

Python codes for generating a dataset with topology optimization results for the base cell of a periodic metamaterial

Further details are presented in the documentation.pdf file.

General Description

This work is part of the PhD thesis entitled Análise de Sensibilidade de Variação Finita assistida por Redes Neurais Artificiais para Concepção de Metamateriais (Finite Variation Sensitivity Analysis assisted by Artificial Neural Networks for Designing Metamaterials). The author Daniel Candeloro Cunha and his supervisor Professor Renato Pavanello are researchers at the Laboratory of Topology Optimization and Multiphysics Analysis, at the University of Campinas (Brazil).

The objective of the provided programs is to generate a dataset that will be used to train artificial neural networks. The purpose of such networks is to improve the performance of standard topology optimization programs, by reducing computational costs, making the procedures more stable, or more accurate.

The topology optimization of the base cell of a periodic metamaterial is considered. Two free parameters are used to define the inverse homogenization problem: the target Poisson's ratio and the minimal Young's modulus for the homogenized metamaterial. The dataset is generated by performing 18382 optimizations, considering unique sets of these parameters.

All optimizations are performed through Sequential Integer Linear Programming (SILP). For each iteration of each case, all results are stored: topology vectors; sensitivity vectors; displacements vectors; homogenized Poisson’s ratio values; homogenized Young’s modulus values; volume fraction values. Also, metadata is stored with relevant information, for example, the corresponding input parameters of each result. This dataset occupies around 277 GB of disk.

To collaborate or report bugs, please look for the author's email address at: https://www.fem.unicamp.br/~ltm/

If you use the provided programs (or the data generated by it) in your work, the developer would be grateful if you would cite the indicated references, listed in the CITEAS file.

Dataset Generation

The codes provided in the source folder can be used to generate the dataset. All programs were developed in Python and Cython. Anaconda was used to manage packages through conda. Everything was developed in Linux (Ubuntu 20.04 LTS).

The steps to generate the dataset are:

  • install Anaconda
  • run ./source/metamaterial.sh to setup the conda environment and build the cython codes
  • activate the metamaterial environment
  • run ./source/python/input_metamat.py to generate the input data
  • edit ./source/python/SILP/basecell_silp.py to select the cases that should be executed
  • run ./source/python/SILP/basecell_silp.py to generate data corresponding to the selected cases
  • repeat until all 18382 optimizations are concluded
  • run ./source/python/generate_metamat.py to conclude the dataset generation

Sampling

The codes provided in the sample folder can be used to produce figures of selected samples from the generated dataset.

Validation

The codes provided in the validation folder can be used to verify the current implementation of the programs, performing simple validation procedures.

Acknowledgements

This work was supported by the São Paulo Research Foundation (FAPESP), grant numbers: 2013/08293-7 and 2019/19237-7.

About

Python codes for generating a dataset with topology optimization results for the base cell of a periodic metamaterial

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published