Skip to content

SpringNuance/DRAGen-RVE-Generator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DRAGen - Discrete RVE Automation and Generation

This repository includes the official implementation of the paper A Novel Approach to Discrete Representative Volume Element Automation and Generation-DRAGen. DRAGen is an approach for generating Representative Volume Elements (RVEs) based on a Random Sequential Addition (RSA)-Algorithm for discrete volumes and the tessellation using a discrete tessellation function. The input data are gathered from the analysis of electron backscatter diffraction (EBSD) pictures via MATLAB toolbox MTEX and introduced to the model. Subsequently, the generator follows the below mentioned steps:

  • Randomly generating ellipsoids in volume (RSA)
  • Filling empty spaces between ellipsoids (Discrete Tessellation)
  • Validation of the newly created digital microstructure with input data

The results show that the generator can successfully reconstruct realistic microstructures with elongated grains and martensite bands from given input data sets.

logo

Note: For developing it is highly recommended to use Python versions 3.6 to 3.8. For Python 3.9 Pyvista is not fully supported.
If further questions appear please check the lower section or get in touch with us.

Installation

clone this repository into desired destination:

$ git clone https://github.com/IMS-RWTH/DRAGen.git
$ cd dragen

make sure conda is installed correctly on your system look up here
Create a virtual environment as follows:

$ conda create --name DRAGen python=3.8
$ conda activate DRAGen

(if an error occurs check your conda installation)
make sure the DRAGen env is activated it should look somewhat like this:

(DRAGen)....$ 

install requirements:

(DRAGen)....$ pip install -r requirements.txt

run first generation with:

(DRAGen)....$ python DRAGen_nogui.py
Show more...

Input data

Header: a b c alpha beta phi1 PHI phi2
Description: grain radius grain radius grain radius grain slope
x-y-plane
soon euler ang. euler ang. euler ang.
Required: mandatory optional optional optional soon optional optional optional
Default: a a 0 soon random random random

DRAGen takes .csv files as input. Theses files must contain at least one radius for each grain. This radius has to be called a in the header.
Optional parameters are:
  1. b and c as second and third radius of each grain (ellipsoids are created).
    a is assumed to be oriented with the rolling direction and is aligned with x-axis, b is aligned with y-axis and c with z-axis.
  2. If a slope relative to x-axis is detected (rotation in x-y-plane, around z-axis), alpha can be used to implement this slope on the grains.
    beta will be implemented in the future and will be a rotation around x- or y-axis.
  3. The texture can be defined with the parameters phi1, PHI and phi2.

Output Data

In V.1.0_b, the output files are Abaqus input files designed for the use with the ICAMS-Crystal-plysticity model. Therefore, the subroutine-files are needed for a successfull analysis.

  • Periodic boundary conditions (PBC): BottomToTop.inp, FrontToRear.inp, LeftToRight.inp, Corners.inp, Edges.inp, Nsets.inp, VerticeSets.inp
  • CP-model data (euler angles and grain size): graindata.inp
  • RVE: RVE_smooth.inp
  • RVE in arry: RVE_Numpy.npy (not needed at the moment!)

It is distiguished between a plastic phase (Phase 1, e.g. Ferrite) purely elastic phase (Phase 2, e.g. Martensite) and . Extensions to more then two phases are in the making.

Input generator

One additional feature of our system is the generation of statistically representative microstructur using Generative Adversarial Networks, a method from the field of deep learning. With our CWGAN-GP, it is possible to generate an unlimited amount of vaild synthetical microstructure. Possible for "normal" grain data, inclusions and even damage (coming soon!). For more information, see our article on the basic idea of using a WGAN (https://www.mdpi.com/1996-1944/13/19/4236) and our IDDRG post on the CWGAN-GP (coming shortly after publishing).

Latest Version

  • DRAGen.V.1.0_b

Support

Please use one of the following keywords for your issue as e-mail subject:

  • General problems
  • RSA error
  • Tesselation error
  • Mesher error
  • Substructure
  • Inclusions
  • Bands

About

DRAGen RVE Generator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.5%
  • Other 0.5%