Skip to main content

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

Metadata

Release files for auxeticmop 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for auxeticmop 1.0.2
File Size Uploaded
auxeticmop-1.0.2.tar.gz 42.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for auxeticmop 1.0.2
File Interpreter ABI Platform
auxeticmop-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 87.9 kB

Release files / auxeticmop-1.0.2.tar.gz

Download URL auxeticmop-1.0.2.tar.gz
Size 42.7 kB
Tags Source
SHA-256 checksum
How to use checksums
f4822547d868848682d443b882841732d5d69093835dcc9fe2dd9b03923f617d
BLAKE2b-256 checksum
How to use checksums
eab3ca7d1c8d924da2c63489680d4f1af77d9a1a95fc4122c8e779ff18067799
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Release files / auxeticmop-1.0.2-py3-none-any.whl

Download URL auxeticmop-1.0.2-py3-none-any.whl
Size 45.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a8579fbe4be89e58358812292181b376f19cda17a0052c0594dd1ec3e68b6156
BLAKE2b-256 checksum
How to use checksums
f77355d98cafea4c6d2404f8da21fb7a085ade75df9744d7e74ab47747cd3bcf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page