# paradis **Repository Path**: DeAn_Wei/paradis ## Basic Information - **Project Name**: paradis - **Description**: 离散位错动力学-paradis - **Primary Language**: C/C++ - **License**: Not specified - **Default Branch**: sf - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2019-07-30 - **Last Updated**: 2025-10-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # README This is a modified discrete dislocation dynamics (DDD) framework based on ParaDiS-v2.5.1. Please refer to the [manual](./docs/ParaDiSUsersGuide-V2.5.1-Pub.pdf) for the basic usage of ParaDiS. ## What is this repository for? 1. Dislocation - twin boundary model 2. Dislocation velocity kernel 3. Random internal stress field for Multiprincipal Element Alloys (MPEA) research 4. Subcycle step method 5. Atomic discrete dislocation dynamics framework ## Dependency Libraries and their installations 0. Basic softwares or acquired skills [^commSoft] 1. C/C++ compiler, such as [gcc](https://gcc.gnu.org/), clang, etc. (essential) 2. [Cmake](https://cmake.org/download/) for building the project (essential) 3. [Git](https://git-scm.com/) for version control (essential) 4. [Python](https://www.python.org/) for post-processing (essential) 5. [ParaView](https://www.paraview.org/) for visualization (optional) 6. [Tecplot](https://www.tecplot.com/) for visualization (optional) 7. [Doxygen](https://www.doxygen.nl/) for generating documentation (optional) 8. [Valgrind](https://valgrind.org/) for memory leak detection (optional) 9. [GDB](https://www.gnu.org/software/gdb/) for debugging (optional) 10. [VS code](https://code.visualstudio.com/) for editing (optional) 11. [Understand](https://scitools.com/) for code analysis (optional) 12. [VTK](https://vtk.org/) for visualization (optional) 13. [HDF5](https://www.hdfgroup.org/solutions/hdf5/) for parallel IO (optional) 1. [PETSc](https://petsc.org/release/) for parallel computing, solving systems of ordinary/partial differential equations, data management optimization algorithms, etc. [^usrDir] 1. Clone slightly modified version to fit paradis `git clone https://gitee.com/DeAn_Wei/petsc.git` 2. Open the directory `cd petsc`, dfault branch dwei `git checkout dwei` 3. Verify the installation version and whether to install x-window or not [^xWindow] 4. Install the petsc `./INSTALL.sh -v [version] -x # -x for x-window` 5. Verify that hdf5, which is suitable for parallel fortran versions, is installed correctly. `h5pfc -show` 2. [GSL](https://www.gnu.org/software/gsl/) for basic math support 1. Download the gsl and open the dir 2. Recommend to install in the Petsc library `./configure --prefix=${USRLIB_DIR}` 3. Install `make -j4 && make install` 4. Confirm that gsl can be linked `gsl-config --libs` 3. [Esh3d](https://github.com/Chunfang/Esh3D) for solving atomic inclusion problem 1. Clone modified version to fit paradis `git clone https://gitee.com/DeAn_Wei/Esh3D.git` 2. Place the folder Esh3D adjacent to the paradis, or change the Esh3D path in cmake configure file of paradis. 4. [Catch2](https://github.com/catchorg/Catch2) for installing eigen 1. Clone `https://github.com/catchorg/Catch2`, check out a stable version 2. Build with cmake: ```bash cd Catch2; mkdir build; cd build cmake ../ -DCMAKE_INSTALL_PREFIX=${USRLIB_DIR} make -j4 && make install ``` 5. [Eigen](https://gitlab.com/libeigen/eigen) for installing autodiff and matrix operations 1. Clone `git clone git@gitlab.com:libeigen/eigen.git`, check out a stable version 2. Build with cmake: ```bash cd eigen; mkdir build; cd build cmake ../ -DCMAKE_INSTALL_PREFIX=${USRLIB_DIR} make -j4 && make install ``` 6. [autodiff](https://autodiff.github.io/installation/) for automatic differentiation 1. Clone `git clone https://github.com/autodiff/autodiff`, check out a stable version 2. Build with cmake: ```bash cd autodiff; mkdir build; cd build cmake ../ -DCMAKE_INSTALL_PREFIX=${USRLIB_DIR} -DAUTODIFF_BUILD_PYTHON=OFF # Not need python make -j4 && make install ``` 7. [voro++](https://math.lbl.gov/voro++/) for Voronoi polycrystal model 1. Download the voro++-0.4.6 and open the dir 2. Recommend to install in the USRLIB_DIR library `sed -i "/^PREFIX/cPREFIX=\${USRLIB_DIR}" config.mk` [^voro] 3. Install `make -j4 && make install` [^voro]: If one wants to use the voronoi package in LAMMPS, add -fPIC to the compile option, i.e. `CFLAGS=-Wall -ansi -pedantic -O3 -fPIC` [^usrDir]: The following installation steps are for Linux systems. For non-root users, it is recommended to install libraries in the user directory. Define the user library directory and add to environment variable in ~/.barshrc: `export USRLIB_DIR=${HOME}/USRLIB; export LD_LIBRARY_PATH=$USRLIB_DIR/lib:$LD_LIBRARY_PATH; export PATH=$USRLIB_DIR/bin:$PATH`. [^commSoft]: The essential softwares are those commonly used on Linux systems, which are always installed on high-performance supercomputers; and on personal computers, which can be easily installed with root privileges. [^xWindow]: Find the most recent tag in the dwei branch via `git log`, which is the version. If you have GUI and xWindow is configured, you can run the script by `./INSTALL.sh -x` to switch it on. ## Install ### Install with PETSc (default) 1. Create the folder `mkdir build && cd build` 2. Build configuration with [cmake](https://cmake.org/) `cmake ../` 3. Compile with 4 processes and install `make -j4 install` 4. Test with ctest `ctest --verbose` (optional) ### Install without PETSc (depreacted) 1. Configure your compiler and compile options (the default compiler is gcc) with [makefile.setup](makefile.setup) and [makefile.sys](makefile.sys). 2. Compile `make -j4` and the binary files are placed in the folder `bin`. ## Documentation Use [doxygen](https://www.doxygen.nl/) to automatically output documents, placed in the folder docs, which can output both html and latex formats. Just run `doxygen` ## Todo list - [ ] Nonlinear mobility law for velocity kernel and subcycle step method - [ ] New remesh ruler for accelerated computing - [ ] Restore voro++ method - [ ] Couple finite element method - [ ] Fast Fourier transform - [ ] thermal activation mechanism of cross-slip - [ ] thermal activation mechanism of dislocation-shaped kernels ## Reference The cited literature for the basic theoretical framework of DDD is ```bibtex @Article{Arsenlis-Enablingstrainhardening-MaSiMSaE-2007, author = {Arsenlis, A. and Cai, W. and Tang, M. and Rhee, M. and Oppelstrup, T. and Hommes, G. and Pierce, T. G. and Bulatov, V. V.}, journal = {Modelling and Simulation in Materials Science and Engineering}, title = {Enabling strain hardening simulations with dislocation dynamics}, year = {2007}, issn = {0965-0393}, month = {jul}, number = {6}, pages = {553--595}, volume = {15}, abstract = {Numerical algorithms for discrete dislocation dynamics simulations are investigated for the purpose of enabling strain hardening simulations of single crystals on massively parallel computers. The algorithms investigated include the ##IMG## [http://ej.iop.org/images/0965-0393/15/6/001/msmse240243in001.gif] {{$\mathcal{O}$}(N)} calculation of forces, the equations of motion, time integration, adaptive mesh refinement, the treatment of dislocation core reactions and the dynamic distribution of data and work on parallel computers. A simulation integrating all these algorithmic elements using the Parallel Dislocation Simulator (ParaDiS) code is performed to understand their behaviour in concert and to evaluate the overall numerical performance of dislocation dynamics simulations and their ability to accumulate percent of plastic strain.}, doi = {10.1088/0965-0393/15/6/001}, publisher = {{IOP} Publishing}, type = {Journal Article}, } ``` If you want to use the interface polycrystalline framework of this paper, please cite the following literature ```bibtex @Article{Wei-Effectstwinboundary-AM-2019, author = {Wei, DeAn and Zaiser, Michael and Feng, Zhiqiang and Kang, Guozheng and Fan, Haidong and Zhang, Xu}, journal = {Acta Materialia}, title = {Effects of twin boundary orientation on plasticity of bicrystalline copper micropillars: A discrete dislocation dynamics simulation study}, year = {2019}, issn = {1359-6454}, month = sep, pages = {289--296}, volume = {176}, abstract = {Twin boundaries (TBs) constitute a special type of symmetric grain boundary (GB). TBs influence plastic deformation in a complex manner. They not only act as dislocation obstacles but can also accommodate twinning dislocations (TDs) whose motion enables twin boundary migration as an alternative deformation mechanism. Exploiting this dual effect offers interesting perspectives in view of designing materials that combine high strength and ductility. In the present work, we propose a model for dislocation-TB interactions in the framework of discrete dislocation dynamics (DDD) simulations, which we use to investigate the mechanical properties of bicrystalline copper micropillars containing a TB. We systematically investigate how the compressive response depends on the orientation of the TB with respect to the micropillar cross-section. The simulations show significant strengthening effects for TB orientation angles less than 45°, where the interaction between mixed dislocations and TBs plays an important role. For angles larger than 45°, the interaction between screw dislocations and TB dominates, leading to weak strengthening. At 45°, dislocations on the dominant slip systems glide parallel to the TB and no strengthening is observed.}, doi = {10.1016/j.actamat.2019.07.007}, keywords = {Discrete dislocation dynamics simulation Bicrystals Twin boundary Micropillar}, publisher = {Elsevier {BV}}, type = {Journal Article}, } ``` If you want to use the Subcycle time step method to speed up simulations, please cite the following paper, ```bibtex @article{Sills_AdvancedTimeIntegration_Model.Simul.Mater.Sci.Eng._2016, title = {Advanced time integration algorithms for dislocation dynamics simulations of work hardening}, volume = {24}, issn = {0965-0393 1361-651X}, doi = {10.1088/0965-0393/24/4/045019}, abstract = {Efficient time integration is a necessity for dislocation dynamics simulations of work hardening to achieve experimentally relevant strains. In this work, an efficient time integration scheme using a high order explicit method with time step subcycling and a newly-developed collision detection algorithm are evaluated. First, time integrator performance is examined for an annihilating Frank–Read source, showing the effects of dislocation line collision. The integrator with subcycling is found to significantly out-perform other integration schemes. The performance of the time integration and collision detection algorithms is then tested in a work hardening simulation. The new algorithms show a 100-fold speed-up relative to traditional schemes. Subcycling is shown to improve efficiency significantly while maintaining an accurate solution, and the new collision algorithm allows an arbitrarily large time step size without missing collisions.}, number = {4}, journal = {Modelling and Simulation in Materials Science and Engineering}, author = {Sills, Ryan B. and Aghaei, Amin and Cai, Wei}, month = apr, year = {2016}, pages = {045019} } ``` |layer|pos_b|pos_Å|mu_xx|stdev_xx|kappa_xx|mu_yy|stdev_yy|kappa_yy|mu_zz|stdev_zz|kappa_zz|mu_yz|stdev_yz|kappa_yz|mu_xz|stdev_xz|kappa_xz|mu_xy|stdev_xy|kappa_xy|mu_00|stdev_00|kappa_00| |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:| | +0.000| +0.40824829| +1.03951916 | +4.517e+07| +5.616e+09| +3.016| +5.310e+07| +5.438e+09| +2.703| +6.693e+07| +5.742e+09| +3.136| -7.874e+05| +2.083e+09| +4.279| -5.097e+06| +2.004e+09| +4.126| -1.138e+07| +2.297e+09| +4.279| -7.874e+05| +2.083e+09| +4.279|