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.pyorauxeticmop.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
- 10 by 10 by 10 voxels per 1/8 cell.
- Negative negative poisson's ratio structure
- Building a GUI using
tkinterandmatplotlib- 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.ParameterDefinitionsand use editor to directly customize parameters. - If using VS code, press
F12, if using Pycharm, pressCtrl+Bto 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
numbafor Python3.11is not supported yet.dataclassis not supported under Python3.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)
| File | Size | Uploaded | |
|---|---|---|---|
| auxeticmop-1.0.2.tar.gz | 42.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|