Package: auxeticmop
AuxeticMOP-with-ABAQUS1.0.2PurposeFinding 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 inauxeticmop.ParameterDefinitions.fitness_definitions['ver3'].FeaturesThe scriptfull_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.GraphicUserInterfacePython script running on ABAQUS is located inauxeticmop.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.MutateAndValidateExampleAuxetic cell10 by 10 by 10 voxels per 1/8 cell.Negative negative poisson's ratio structureGUI exampleBuilding a GUI usingtkinterandmatplotlibReceiving parameter values required for ABAQUS analysis and GA setting from the userThe Pareto optimization solution and hyper volume value calculated from the Main Process
are input in real time and output as a graph.InstallBefore installing this package, you mustABAQUS CAEmust be installed.To install the current release viaPyPIwith Python version>=3.6and<3.11:$pipinstallauxeticmop... or to install the current release viaanacondawith Python version>=3.6and<3.11:$condainstall-ccosogiauxeticmopTry out whole GA steps$python>>>fromauxeticmop.sample_scriptsimportfull_steps>>>if__name__=='__main__':...full_steps.run()Modify your parameter definitions>>>fromauxeticmopimportParameterDefinitions>>>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 toauxeticmop.ParameterDefinitionsand use editor to directly customize parameters.If using VS code, pressF12, if using Pycharm, pressCtrl+Bto go to file.Overall Steps of GAAll Steps are included inauxeticmop.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.AbaqusScriptsEvaluate 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 inauxeticmop.GeneticAlgorithm.NSGAModel.evolve().Conditions to Meet in Validation Steps3D print-ability without supports, maximum overhang distance is also considered.Related contents:auxeticmop.MutateAndValidate.make_3d_print_without_supportAllowing only Face-to-Face contact between voxels.Related contents:auxeticmop.MutateAndValidate.make_voxels_surface_contactAll 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_treeFitness Value DefinitionsThose two fitness values(objective functions) should go lower.The fitness value definitions are well organized inauxeticmop.ParameterDefinitions.fitness_definitions.You can choose the version of fitness value evaluation in GUI.EvaluationversionFitnessvalue 1Fitnessvalue 2ver1RF22/RF22,max+k*vol_fracν21+k*vol_fracver2vol_fracRF22/RF22,maxver3ν21+k*vol_fracν23+k*vol_fracver4(σmises)maxvol_fracver5(σmises)maxmax(ν21, ν23)vol_frac: Volume fraction in cell (0~1)k: penalty coefficientk: penalty coefficientRequired[Language]Python, with version>=3.6 and <3.11.Version dependencynumbafor Python3.11is not supported yet.dataclassis not supported under Python3.6[External libraries]numpy,numba,scipy,matplotlib,aiofiles,dataclasses[Other software]ABAQUS CAE