A tool to include length scale effects for crystal plasticity using slip distance.
Firstly, there are a number of folders included here containing different tools. In Additional File the following folders exist:
- AbaqusFiles - includes Example_UEXTERNALDB.for which is an example of how to read in the created binary files at the start of an Abaqus analysis;
- Dream3d files - contains the example Dream3D pipeline (example_supp.json) to create the necessary data files fo the python function;
- FORTRAN program - contains lengthscale_program.f90 which is an example fortan program which implements the length scale subroutine and can be used to get familiar with the intricacies of the inputs/outputs;
- Length scale subroutines - contains grainsize_subroutine.f90 and grainsize_subroutine.for. grainsize_subroutine.for has been specifically written to be implemented with Abaqus UMATs.
In PyLengMorph contains the Python tool to construct the required geometric arrays to implement the subourtine. It is important that all data created through the Dream3d pipeline is directed to the data folder contained within this directory.
Four binary files are constructed with the following names:
- boundfeat.bin
- el_centroid.bin
- xvalues.bin
- yvalues.bin
- zvalues.bin An additional two include files are created if required:
- orien.inc
- param_array.inc
Details on their contents can be found in this publication.
Once installed, the tool can be run by specifying four details:
- loc= points to the location of the data folder containing all the data generated by the provided Dream3d pipeline.
- file= name of the files generated by Dream3d pipeline. In this example case in the repo, this would be testcase.
- nodeinc= is the option to increase the number of nodes defining boundary voxels/elements. This can be selected by choosing True or False.
- abq= specifies if you are using Abaqus to run the simulations. If so, an additional include file is created, therefore it is important True is used; otherwise False can be used.
import PyLengMorph as plm
plm.grainboundary(loc='\\path\\to\\data\\folder', file='testcase', nodeinc=False, abq=True)
Download the GitHub repo via the following link:
https://github.com/DylanAgius/LengMorph.git
Once unpacked, navigate to the PyLengMorph folder and use the following command:
pip install .
If you find this tool useful, please cite the publications (found here and here) which detail how this tool can be applied. Also, if possible, please cite this repository.