Skip to main content

A package for finding meta-material structure using ABAQUS and MOP evolutionary algorithm approaches.

Project description

AuxeticMOP-with-ABAQUS 1.0.2

Purpose

  • Finding metamaterial structure with negative poisson's ratio using ABAQUS and MOP evolutionary algorithm approaches.
  • In addition to structure with negative poisson's ratio, other types of material structure can be created by varying version fitness values definitions.
  • The definition of fitness value for negative Poisson's ratio is well defined in auxeticmop.ParameterDefinitions.fitness_definitions['ver3'].

Features

  • The script full_scripts.py or auxeticmop.sample_scripts.full_steps.run() generates 1/8 structure of unit cell using ABAQUS CAE software by genetic algorithm. This script is especially for finding mechanical meta-material structure consisting of 3D voxels.

  • GUI is provided for getting initial parameters for ABAQUS, and plotting results when a generation work is done.

    • Related contents: auxeticmop.GraphicUserInterface
  • Python script running on ABAQUS is located in auxeticmop.AbaqusScripts. This will run only on ABAQUS-embedded python interpreter, and maybe the version is 2.7.15. Other scripts are running on newer Python.

  • Non-dominated Sorting Genetic Algorithm(NSGA) is used to validate and assess fitness values of generated topologies.

    • Related contents: auxeticmop.GeneticAlgorithm, auxeticmop.MutateAndValidate

Example

  • Auxetic cell

  • 10 by 10 by 10 voxels per 1/8 cell.
  • Negative negative poisson's ratio structure
  • GUI example

  • Building a GUI using tkinter and matplotlib
  • Receiving parameter values required for ABAQUS analysis and GA setting from the user
  • The Pareto optimization solution and hyper volume value calculated from the Main Process are input in real time and output as a graph.

Install

Before installing this package, you must ABAQUS CAE must be installed.

To install the current release via PyPI with Python version >=3.6 and <3.11:

$ pip install auxeticmop

... or to install the current release via anaconda with Python version >=3.6 and <3.11:

$ conda install -c cosogi auxeticmop

Try out whole GA steps

$ python
>>> from auxeticmop.sample_scripts import full_steps
>>> if __name__ == '__main__':
  ...   full_steps.run()

Modify your parameter definitions

>>> from auxeticmop import ParameterDefinitions
>>> dir(ParameterDefinitions)
Output: ['FitnessDefinitions', 'GuiParameters', 'JsonFormat', 'Parameters', 'Union', '__builtins__',
         '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__',
         'dataclass', 'exported_field_outputs_format', 'fitness_definitions', 'material_property_definitions',
         'np', 'radiobutton_name_dict', 'translate_dictionary']
  • Go to auxeticmop.ParameterDefinitions and use editor to directly customize parameters.
  • If using VS code, press F12, if using Pycharm, press Ctrl+B to go to file.

Overall Steps of GA

All Steps are included in auxeticmop.GeneticAlgorithm.NSGAModel.evolve_a_generation().

  1. Generate offspring topologies from parent topologies.
  • Related contents: auxeticmop.GeneticAlgorithm.NSGAModel.generate_offspring_topologies()
  1. Analyze displacements, reaction forces, or other mechanical properties of offspring topologies using ABAQUS CAE.
  • Related contents: auxeticmop.Network.start_abaqus_cae(), auxeticmop.Network.request_abaqus(), auxeticmop.AbaqusScripts
  1. Evaluate fitness values of parents and offsprings.
  • Related contents: auxeticmop.PostProcessing.evaluate_all_fitness_values()
  1. Select desired topologies which fits pareto-front(non-dominated) points and export these as next parent.
  • Related contents: auxeticmop.PostProcessing.selection()
  1. Redo steps 1~4 for next generations. Iterations of all generations are done in auxeticmop.GeneticAlgorithm.NSGAModel.evolve().

Conditions to Meet in Validation Steps

  • 3D print-ability without supports, maximum overhang distance is also considered.
    • Related contents: auxeticmop.MutateAndValidate.make_3d_print_without_support
  • Allowing only Face-to-Face contact between voxels.
    • Related contents: auxeticmop.MutateAndValidate.make_voxels_surface_contact
  • All six faces of structure are connected as one tree, thereby not allowing force-free structure inside an unit cell.
    • Related contents: auxeticmop.MutateAndValidate.one_connected_tree

Fitness Value Definitions

  • Those two fitness values(objective functions) should go lower.
  • The fitness value definitions are well organized in auxeticmop.ParameterDefinitions.fitness_definitions.
  • You can choose the version of fitness value evaluation in GUI.
Evaluation
version
Fitness
value 1
Fitness
value 2
ver1 RF22/RF22,max + k*vol_frac ν 21 + k * vol_frac
ver2 vol_frac RF22/RF22,max
ver3 ν 21 + k * vol_frac ν 23 +k * vol_frac
ver4 mises)max vol_frac
ver5 mises)max max(ν 21, ν 23)
  • vol_frac: Volume fraction in cell (0~1)
  • k: penalty coefficient
  • k: penalty coefficient

Required

  • [Language] Python, with version >=3.6 and <3.11.
  • Version dependency
    • numba for Python 3.11 is not supported yet.
    • dataclass is not supported under Python 3.6
  • [External libraries] numpy, numba, scipy, matplotlib, aiofiles, dataclasses
  • [Other software] ABAQUS CAE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

auxeticmop-1.0.2.tar.gz (42.7 kB view details)

Uploaded Source

Built Distribution

auxeticmop-1.0.2-py3-none-any.whl (45.1 kB view details)

Uploaded Python 3

File details

Details for the file auxeticmop-1.0.2.tar.gz.

File metadata

  • Download URL: auxeticmop-1.0.2.tar.gz
  • Upload date:
  • Size: 42.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for auxeticmop-1.0.2.tar.gz
Algorithm Hash digest
SHA256 f4822547d868848682d443b882841732d5d69093835dcc9fe2dd9b03923f617d
MD5 2a766662673a0fe8e61dfccf0a0f1924
BLAKE2b-256 eab3ca7d1c8d924da2c63489680d4f1af77d9a1a95fc4122c8e779ff18067799

See more details on using hashes here.

File details

Details for the file auxeticmop-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: auxeticmop-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 45.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for auxeticmop-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a8579fbe4be89e58358812292181b376f19cda17a0052c0594dd1ec3e68b6156
MD5 756be43bea116724f3f20f3ce93239a4
BLAKE2b-256 f77355d98cafea4c6d2404f8da21fb7a085ade75df9744d7e74ab47747cd3bcf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page