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
orauxeticmop.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
- Related contents:
-
Python script running on ABAQUS is located in
auxeticmop.AbaqusScripts
. This will run only on ABAQUS-embedded python interpreter, and maybe the version is2.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
- Related contents:
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
andmatplotlib
- 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, pressCtrl+B
to go to file.
Overall Steps of GA
All Steps are included in
auxeticmop.GeneticAlgorithm.NSGAModel.evolve_a_generation()
.
- Generate offspring topologies from parent topologies.
- Related contents:
auxeticmop.GeneticAlgorithm.NSGAModel.generate_offspring_topologies()
- 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
- Evaluate fitness values of parents and offsprings.
- Related contents:
auxeticmop.PostProcessing.evaluate_all_fitness_values()
- Select desired topologies which fits pareto-front(non-dominated) points and export these as next parent.
- Related contents:
auxeticmop.PostProcessing.selection()
- 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
- Related contents:
- Allowing only Face-to-Face contact between voxels.
- Related contents:
auxeticmop.MutateAndValidate.make_voxels_surface_contact
- Related contents:
- 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
- Related contents:
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 coefficientk
: penalty coefficient
Required
- [Language] Python, with version
>=3.6 and <3.11
. - Version dependency
numba
for Python3.11
is not supported yet.dataclass
is not supported under Python3.6
- [External libraries]
numpy
,numba
,scipy
,matplotlib
,aiofiles
,dataclasses
- [Other software]
ABAQUS CAE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4822547d868848682d443b882841732d5d69093835dcc9fe2dd9b03923f617d |
|
MD5 | 2a766662673a0fe8e61dfccf0a0f1924 |
|
BLAKE2b-256 | eab3ca7d1c8d924da2c63489680d4f1af77d9a1a95fc4122c8e779ff18067799 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8579fbe4be89e58358812292181b376f19cda17a0052c0594dd1ec3e68b6156 |
|
MD5 | 756be43bea116724f3f20f3ce93239a4 |
|
BLAKE2b-256 | f77355d98cafea4c6d2404f8da21fb7a085ade75df9744d7e74ab47747cd3bcf |