ICAMS / xfeat

Coupling of atomistic and XFEM regions: Study dislocations with atomic precision under well-defined mechanical boundary conditions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

XFEAt

eXtended Finite Element Analysis with Atomistics

  • Authors: Karthikeyan Chockalingam, Alexander Hartmaier
  • Organization: ICAMS, Ruhr University Bochum, Germany
  • Contact: alexander.hartmaier@rub.de

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.

Installation

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

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".

Dependencies

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

License

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).

About

Coupling of atomistic and XFEM regions: Study dislocations with atomic precision under well-defined mechanical boundary conditions

License:GNU General Public License v3.0


Languages

Language:C 90.7%Language:C++ 2.9%Language:Makefile 2.4%Language:Cython 1.7%Language:Jupyter Notebook 1.3%Language:Python 0.9%Language:SWIG 0.2%Language:Shell 0.0%