This repository simulates the formation of defects network near a saturated grain boundary
The project consists of three parts:
- Simulating multiple batches of prismatic loop evolution using kMC algorithm embedded with Dislocation Dynamics module dd3d_diffuse.m, all results from different batches are 'parallel' and stiched together using merge.m and the dislocation data files are exported from it.
- Generating cubic volume tessellation with the tessellation_orthogonal.m. The output contains all the vertices of each volume element.
- Conducting GND signal analysis with main.py, which reads both the dislocation data and volume_mesh data. It outputs information about dislocation segments after being truncated by volume cells, the volume, vertice and GND content of each volume cell.
- Generating GND signal 3D map. Running voro_plot.m will produce result, which is rendered in 3d_rendering.py for final 3d image of GND signal near the GB.
This project consists of code developed in Python and MATLAB. Commercial Software OVITO is used for data processing.
Simulation starts by running dd3d_diffuse.m, with simulation parameters specified in input_bes.m. After simulation time is fulfilled, the dislocation network information is stored in relaxround.mat. This file will can be used by merge.m to form bigger dislocation network. The result will be written into dislocation.txt and dislocation_burgers.txt.
Aftern tunning the simulation box size and number of meshed elements in the tessellation_orthogonal.m, execution of the code will save the coordinates of all volume mesh vertices into text files in the designated directory.
The main.py calculates the GND density by combining the dislocation information and meshed volumes. The output from this script includes:
- Simulation parameters like the mesh size and the dimension of the simulation volume;
- Volume of each meshed volume element;
- GND signal intensity of each meshed volume element;
- Vertices of dislocation segments with the truncating effect of meshed volume elements;
- The correspondence between each dislocation segment and the meshed volume element that fully contains it.
The output of main.py will be further analyzed by voro_plot.m to generate final 3d GND signal ready for rendering.
Use 3d_rendering.py to process the orthogonal_merged20_voro_color.txt and we get
This project is supported by research group at UCLA, Johns Hopkins University, Hongkong City University and Pennsylvania University.
MIT © Sicong He