Giter VIP home page Giter VIP logo

metamaterial-dataset's Introduction

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.

metamaterial-dataset's People

Contributors

joquempo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

ckk-code

metamaterial-dataset's Issues

Removal of disconnected solids from the optimized structure may yield an unsuitable solution

After concluding the current optimization process, all remaining disconnected solid elements are removed from the optimized topology. In the current version of the program, the final optimized topology is stored without verifying if the removal of disconnected solids resulted in a worse value for the objective function, of if it resulted in a structure that does not respect the constraint function. In cases that different parts of the structure are only connected by single nodes (not by edges), this approach may result in unsuitable structures.

To solve this issue (in a future version), all topologies can be stored, ordered from the best one obtained thus far to the worst one. Then, when an undesirable result is obtained, the next candidate can be taken and evaluated.

This issue has affected only a small number of optimized solutions. Less than 1% of the optimized solutions, stored in 'top_opt.npy', break the constraint over the Young's modulus. In the current version, suitable optimized solutions can be recovered using the data stored in: 'top.npy', 'Ey.npy' and 'nu.npy'. As expected, the constraint is respected for 100% of the topologies from all iterations before the final removal of disconnected solids, stored in 'top.npy'.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.