- Authors: Karthikeyan Chockalingam, Alexander Hartmaier
- Organization: ICAMS, Ruhr University Bochum, Germany
- Contact: [email protected]
XFEAt is a tool to combine atomistic simulation with boundary conditions from eXteneded Finite Element Method (XFEM). Useful for studying properties of dislocations under well-defined mechanical boundary conditions.
XFEAt is written in Cython and C++ and requires a C++ compiler. Cython will be installed together with all other dependencies. The Python interface requires an Anaconda or Miniconda environment with a recent Python version. If a Conda environment and C++ compiler are available, the XFEAt package can be installed from its GitHub repository via the following steps:
$ git clone https://github.com/ICAMS/xfeat ./XFEAt
$ cd XFEAt
$ conda env create -f environment.yml
$ conda activate xfeat
$ make install
Furthermore, an executable of the ITAP Molecular Dynamics Program (IMD) is required. This software is licensed under the GNU General Public License GPLv3 and a copy of IMD is included in the XFEAt distribution in "libs/imd". See the [IMD user guide] (http://imd.itap.physik.uni-stuttgart.de/userguide/compiling.html) for ways to build the executable "imd_eam_fire_homdef_stress_nbl" or "imd_mpi_eam_fire_homdef_stress_nbl" (for MPI support), which should be placed in the directory "XFEAt/Fe_MD". On many systems something like
$ cd libs/imd
$ make IMDSYS=x86_64-gcc3 BIN_DIR="../../Fe_MD" imd_eam_fire_homdef_stress_nbl
$ cd ../..
might work, although it produces a rather slow executable. For larger atomic models it is strongly recommended to use a parallel executable with the MPI option and to apply optimized compiler flags.
On ICAMS CIP pool use:
make IMDSYS=x86_64-icc BIN_DIR="../../Fe_MD" imd_mpi_eam_fire_homdef_stress_nbl
To test if the installation has been successful, run
$ pytest tests
Examples that generate a screw or an edge dislocation in a bcc iron crystal and exposes them to a shear stress can be found under "examples/FE_dislocations".
XFEAt requires the following packages as imports:
- Cython as programming language
- NumPy for array handling
- Scipy for numerical solutions, in particular for sparse matrix solving
- pyVista for visualization of numerical reuslults on XFEM grid and atomistic lattice
The XFEAt package comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under the conditions of the GNU General Public License (GPLv3).
The contents of the examples and notebooks are published under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0).