3D Discrete Dislocation Dynamics (Hengxu Song)

download program package here:
https://drive.google.com/file/d/0B0bdwsoc2sM-ZURDTVFiTG5yR28/view?usp=sharing

install the program:
the program needs c++, intel mkl.
visualization tools (DDviewer) are based on OpenGL.

After download the model, the only thing need to be changed is the Makefile in the directory:
model/tutorials/DislocationDynamics/

MKL_INCLUDE=/shared/software/intel_2015u2/mkl/include
MKL_LIB=/shared/software/intel_2015u2/mkl/lib/intel64

Change above two lines according to your local directory.

(the default set in google drive works for WVU cluster)

For indentation, go to directory:
model/tutorials/DislocationDynamics/flatPunch_strainControl

compile the program by command: make DDomp

compile the DDviewer by command: make DDviewer

compile F-R source generator by command: make frGenerator

To generate initial dislocation structure with F-R sources by command: ./frGenerator
the program reads the input file microstructureInput.txt

To run indentation simulation by command: ./DDomp
the program reads the input file DDinput.txt. 
Lines that user can change in DDinput.txt are:
line 5: total simulation increment
line 22: writing output frequency

The punchsize (line 5) and loading velocity (line 6) are defined in the input file loadInput.txt 
 
DDviewer
run DDviewer by command: ./DDviewer
zoom in/out by command: z+/z-
show deformed mesh: m
change deformation magnitude: D+/D-
play movie: right arrow/ left arrow

General information can be found at: https://bitbucket.org/model/model/wiki/Home 

Notice: 
In this 3D code, 
unit of time is b/wave speed, where wave speed is =sqrt(mu/rho), mu is the shear modulus, rho is the density. In order to know the exact value of material you have used, check DDinput.txt line 38, the default value is 29. 29 stands for copper, which you can find in line 101 of the file PeriodicElement.h which is located at directory model/model/DislocationDynamics/Materials

unit of force is mu*b^2
unit of length is b.

every time use frgenerator to generate new dislocation structure, delete files in E folder, V folder

D folder contains displacement field, 
I folder contains indenter information. For post process.
N folder contains all finite element Nodes information 

T folder contains finite element element information
V folder contains information of points (dislocation)
E folder contains information of connectivity (dislocation).


 

  

17 comments:

  1. download zip file from g-drive. The rug g-drive is used

    ReplyDelete
  2. Necessary libraries:

    module load compilers/gcc/5.3.0
    module load libraries/mkl/11.2.1

    ReplyDelete
  3. then, do: rm DDomp
    in: /scratch/sp0045/3DDDD/3DDDD-new-July2017/Model-July-24/model/tutorials/DislocationDynamics/flatPunch_strainControl

    then: make DDomp

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
    Replies
    1. This comment has been removed by the author.

      Delete
  5. https://drive.google.com/file/d/0B0bdwsoc2sM-Y09PZ3RWSUxLN1k/view?usp=sharing

    link of new DislocationNode.h file. Replace it in the directory.
    model/model/DislocationDynamics

    ReplyDelete
  6. For running the code:

    check DDinput.txt
    check microstructureInput.txt
    ./frGenerator
    ./DDomp

    ReplyDelete
  7. For the Weibull Distribution, this function is used for the lengths in the code:
    http://en.cppreference.com/w/cpp/numeric/random/weibull_distribution

    ReplyDelete
  8. latest version:
    https://drive.google.com/uc?export=download&confirm=FIBd&id=0B0bdwsoc2sM-NVpPODBsSlBVVHM

    ReplyDelete
  9. when downloading whole program, necessary to do changes in Makefile of tutorials/DislocationDynamics:

    MODEL_INCLUDE =../../../
    EIGEN_INCLUDE=../../../
    MKL_INCLUDE=/opt/intel/mkl/include
    MKL_LIB=/opt/intel/mkl/lib
    INTEL_LIB=/opt/intel/lib

    ReplyDelete
  10. Newest version (version of July31th 2017):
    https://drive.google.com/file/d/0B0bdwsoc2sM-NTdoYlU4Y1MtUmc/view?usp=sharing

    Mesh with new dimensions need to be created, then put node information in N folder, element information in T folder. For indentation problem,

    In DDinput.txt

    Line 87 meshID= ;

    Currently, we use meshID=4, it is the sample geometry 500nm*500nm*1um
    If you change meshID=5, it will use the sample size 1um*1um*4um.
    meshID=6, 2um*2um*4um.

    ReplyDelete
  11. For machine learning purpose:
    Data of 3D indentation with different weibull distribution.
    and for the same distribution, different grain orientation.

    https://drive.google.com/file/d/0B0bdwsoc2sM-MlZvcHUyYk5RTnM/view?usp=sharing

    ReplyDelete
  12. Every time, generate new dislocation structure, empty E and V folder.

    ReplyDelete
  13. For a new run, make sure D folder, I folder F folder are empty.
    If they are not empty, then it will be a restart run.

    ReplyDelete
  14. For each case folder (when you do realizations), remember to run frGenerator in every case folder to generate different initial dislocation structure.

    ReplyDelete