Skip to content

A tool to include length scale effects for crystal plasticity using slip distance

License

Notifications You must be signed in to change notification settings

DylanAgius/LengMorph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOI

LengMorph

A tool to include length scale effects for crystal plasticity using slip distance.

Usage

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.

Outputs of the Python tool

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.

How to

Once installed, the tool can be run by specifying four details:

  1. loc= points to the location of the data folder containing all the data generated by the provided Dream3d pipeline.
  2. file= name of the files generated by Dream3d pipeline. In this example case in the repo, this would be testcase.
  3. nodeinc= is the option to increase the number of nodes defining boundary voxels/elements. This can be selected by choosing True or False.
  4. 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)

Installation

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 .

Citing

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.

About

A tool to include length scale effects for crystal plasticity using slip distance

Resources

License

Stars

Watchers

Forks

Packages

No packages published