Please cite the Paper "Fatigue life assessment of metal foils in multifunctional composites via combined experiments and simulations" if you use the code. See https://doi.org/10.1016/j.compositesb.2023.110715 and https://doi.org/10.1016/j.matdes.2023.111711 for further details.
This code is citable via Zenodo:
The code was tested on the CentOS Linux version using Abaqus 2019 .HF6. All of the Code was written in Python 2.
This Code allows the implementation of an eigenvalue buckling analysis, followed by a static step or a riks step of a complex, layered sample and evaluation in the commercial Abaqus software.
Define_and_Run_Models.py
- Here, your Geometrical and simulational parameters must be defined; different imperfection sizes can be run for each geometry.
- Different numbers and thicknesses of foils and substrates can be defined to analyse the buckling behaviour of the complex laminate.
Graphical representation of the geometrical parameters used in the simulation:
The Folder “Codes” includes the following files:
Boundary_conditions.py:
- Allows the implementation of boundary conditions of the sample, including a clamping of the sample as in the experimental case
evaluate_sample.py:
- Allows the evaluation of both the buckling step that follows the eigenvalue analysis
- Shows how to extract data from several model paths.
geometry_functions.py:
- Implements the sample geometry, including all substrate/foil sections. The basis geometry is designed to fit grips designed by Johannes Reiser in his PhD Thesis “Strain Localization under Fatigue Loading” also see 10.5151/meceng-wccm2012-18609 for details
job_definition.py:
- Allows to create of a buckling analysis right after an eigenvalue buckling step; automatically creates and changes the input file to allow different imperfection sizes to be calculated.
material_model.py:
- Here your material model can be defined. Currently, values from Fellner et al. (10.1109/EuroSimE.2014.6813788) are implemented.
- Allows implementation of orthotropic material parameters and checks if they are valid input parameters
meshing.py:
- Generates a mesh for the sample, including parameters to define the seeds for foils and substrates differently.
run_simulation.py:
- Calls all the files correctly to generate the models and their data extraction.
step_definition.py:
- Creates the eigenvalue buckling step.
tools.py:
- Implements different functions needed to run the model.
µm UNIT System used:
LENGTH µm
FORCE µN
MASS kg
TIME s
STRESS MPa
ENERGY pJ
DENSITY kg/µm^3 = 10^18*kg/m^3
Codes by Claus O. W. Trost
Published under a Creative Commons license: https://creativecommons.org/licenses/by-nc-nd/4.0/