{"id":16277567,"url":"https://github.com/c0sogi/auxeticmop-with-abaqus","last_synced_at":"2025-08-21T17:23:00.724Z","repository":{"id":65540319,"uuid":"585097439","full_name":"c0sogi/AuxeticMOP-with-ABAQUS","owner":"c0sogi","description":"Finding metametrial structure by NSGA genetic algorithm with ABAQUS CAE","archived":false,"fork":false,"pushed_at":"2023-01-30T10:34:23.000Z","size":4279,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-29T14:26:58.901Z","etag":null,"topics":["abaqus","abaqus-python-script","cae","data-science","genetic-algorithm","mechanical-engineering","metamaterial-design","metamaterials","nsga"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/c0sogi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2023-01-04T10:06:27.000Z","updated_at":"2024-12-27T07:26:06.000Z","dependencies_parsed_at":"2023-02-16T06:25:21.621Z","dependency_job_id":null,"html_url":"https://github.com/c0sogi/AuxeticMOP-with-ABAQUS","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c0sogi%2FAuxeticMOP-with-ABAQUS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c0sogi%2FAuxeticMOP-with-ABAQUS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c0sogi%2FAuxeticMOP-with-ABAQUS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c0sogi%2FAuxeticMOP-with-ABAQUS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/c0sogi","download_url":"https://codeload.github.com/c0sogi/AuxeticMOP-with-ABAQUS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233437398,"owners_count":18676148,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abaqus","abaqus-python-script","cae","data-science","genetic-algorithm","mechanical-engineering","metamaterial-design","metamaterials","nsga"],"created_at":"2024-10-10T18:55:26.467Z","updated_at":"2025-01-11T04:09:00.204Z","avatar_url":"https://github.com/c0sogi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AuxeticMOP-with-ABAQUS `1.0.2`\n\n## Purpose\n- Finding metamaterial structure with negative poisson's ratio using ABAQUS and MOP evolutionary algorithm approaches.\n- In addition to structure with negative poisson's ratio, other types of material structure can be created by varying version fitness values definitions.\n- The definition of fitness value for negative Poisson's ratio is well defined in `auxeticmop.ParameterDefinitions.fitness_definitions['ver3']`.\n\n\n## Features\n- 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.\nThis script is especially for finding mechanical meta-material structure consisting of 3D voxels.\n- GUI is provided for getting initial parameters for ABAQUS, and plotting results when a generation work is done.\n  + Related contents: `auxeticmop.GraphicUserInterface`\n\n- Python script running on ABAQUS is located in `auxeticmop.AbaqusScripts`. This will run only on ABAQUS-embedded python\ninterpreter, and maybe the version is `2.7.15`. Other scripts are running on newer Python.\n\n- Non-dominated Sorting Genetic Algorithm(NSGA) is used to validate and assess fitness values of generated topologies.\n  + Related contents: `auxeticmop.GeneticAlgorithm`, `auxeticmop.MutateAndValidate`\n\n## Example\n\n\n- ### Auxetic cell\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/121936784/215425185-a7d62330-8bec-4650-9079-637cc1dd8575.png\"/\u003e\n\u003c/p\u003e\n\n\u003e- 10 by 10 by 10 voxels per 1/8 cell.\n\u003e- Negative negative poisson's ratio structure\n\n- ### GUI example\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/121936784/215425207-44187735-cea7-4486-a2b9-bf4683797a53.png\"/\u003e\n\u003c/p\u003e\n\n\u003e- Building a GUI using `tkinter` and `matplotlib`\n\u003e- Receiving parameter values required for ABAQUS analysis and GA setting from the user\n\u003e- The Pareto optimization solution and hyper volume value calculated from the Main Process\nare input in real time and output as a graph.\n\n## Install\nBefore installing this package, [ABAQUS CAE](https://edu.3ds.com/en/software/abaqus-learning-edition) must be installed.\n\n To install the current release via `PyPI` with Python version `\u003e=3.6` and `\u003c3.11`:\n```shell\n$ pip install auxeticmop\n```\n... or to install the current release via `anaconda` with Python version `\u003e=3.6` and `\u003c3.11`:\n\n```shell\n$ conda install -c cosogi auxeticmop\n```\n\n#### *Try out whole GA steps*\n\n```shell\n$ python\n```\n\n```python\n\u003e\u003e\u003e from auxeticmop.sample_scripts import full_steps\n\u003e\u003e\u003e if __name__ == '__main__':\n  ...   full_steps.run()\n```\n#### *Modify your parameter definitions*\n```python\n\u003e\u003e\u003e from auxeticmop import ParameterDefinitions\n\u003e\u003e\u003e dir(ParameterDefinitions)\nOutput: ['FitnessDefinitions', 'GuiParameters', 'JsonFormat', 'Parameters', 'Union', '__builtins__',\n         '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__',\n         'dataclass', 'exported_field_outputs_format', 'fitness_definitions', 'material_property_definitions',\n         'np', 'radiobutton_name_dict', 'translate_dictionary']\n```\n- Go to `auxeticmop.ParameterDefinitions` and use editor to directly customize parameters.\n- If using VS code, press `F12`, if using Pycharm, press `Ctrl+B` to go to file.\n\n## Overall Steps of GA\n\u003e All Steps are included in `auxeticmop.GeneticAlgorithm.NSGAModel.evolve_a_generation()`.\n\u003e1. Generate offspring topologies from parent topologies.\n\u003e   - Related contents: `auxeticmop.GeneticAlgorithm.NSGAModel.generate_offspring_topologies()`\n\u003e2. Analyze displacements, reaction forces, or other mechanical properties of offspring topologies using ABAQUS CAE.\n\u003e   - Related contents: `auxeticmop.Network.start_abaqus_cae()`, `auxeticmop.Network.request_abaqus()`, `auxeticmop.AbaqusScripts`\n\u003e3. Evaluate fitness values of parents and offsprings.\n\u003e   - Related contents: `auxeticmop.PostProcessing.evaluate_all_fitness_values()`\n\u003e4. Select desired topologies which fits pareto-front(non-dominated) points and export these as next parent.\n\u003e   - Related contents: `auxeticmop.PostProcessing.selection()`\n\u003e5. Redo steps 1~4 for next generations. Iterations of all generations are done in `auxeticmop.GeneticAlgorithm.NSGAModel.evolve()`.\n\n## Conditions to Meet in Validation Steps\n- 3D print-ability without supports, maximum overhang distance is also considered.\n  + Related contents: `auxeticmop.MutateAndValidate.make_3d_print_without_support`\n- Allowing only Face-to-Face contact between voxels.\n  + Related contents: `auxeticmop.MutateAndValidate.make_voxels_surface_contact`\n- All six faces of structure are connected as one tree, thereby not allowing force-free structure inside an unit cell.\n  + Related contents: `auxeticmop.MutateAndValidate.one_connected_tree`\n## Fitness Value Definitions\n- Those two fitness values(objective functions) should go lower.\n- The fitness value definitions are well organized in `auxeticmop.ParameterDefinitions.fitness_definitions`.\n- You can choose the version of fitness value evaluation in GUI.\n\n| Evaluation\u003cbr/\u003eversion | Fitness\u003cbr/\u003e value 1                                 | Fitness\u003cbr/\u003e value 2                  |\n|------------------------|------------------------------------------------------|---------------------------------------|\n| ver1                   | RF\u003csub\u003e22\u003c/sub\u003e/RF\u003csub\u003e22,max\u003c/sub\u003e + `k`*`vol_frac` | ν \u003csub\u003e21\u003c/sub\u003e + `k` * `vol_frac`    |\n| ver2                   | `vol_frac`                                           | RF\u003csub\u003e22\u003c/sub\u003e/RF\u003csub\u003e22,max\u003c/sub\u003e   |\n| ver3                   | ν \u003csub\u003e21\u003c/sub\u003e + `k` * `vol_frac`                   | ν \u003csub\u003e23\u003c/sub\u003e +`k` * `vol_frac`     |\n| ver4                   | (σ\u003csub\u003emises\u003c/sub\u003e)\u003csub\u003emax\u003c/sub\u003e                    | `vol_frac`                            |\n| ver5                   | (σ\u003csub\u003emises\u003c/sub\u003e)\u003csub\u003emax\u003c/sub\u003e                    | max(ν \u003csub\u003e21\u003c/sub\u003e, ν \u003csub\u003e23\u003c/sub\u003e) |\n\u003e- `vol_frac`: Volume fraction in cell (0~1)\n\u003e- `k`: penalty coefficient\n\u003e- `k`: penalty coefficient\n\n---\n## Required\n- [x] **[Language]** Python, with version `\u003e=3.6 and \u003c3.11`.\n- Version dependency\n  - `numba` for Python `3.11` is not supported yet.\n  - `dataclass` is not supported under Python `3.6`\n- [x] **[External libraries]** `numpy`, `numba`, `scipy`, `matplotlib`, `aiofiles`, `dataclasses`\n- [x] **[Other software]** `ABAQUS CAE`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc0sogi%2Fauxeticmop-with-abaqus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fc0sogi%2Fauxeticmop-with-abaqus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc0sogi%2Fauxeticmop-with-abaqus/lists"}