expectra

Code for simulating EXAFS calculations from molecular dynamics trajectories or normal modes using FEFF


License
Other
Install
pip install expectra==1.0.5

Documentation

Expectra

Introduction

Expectra is program to simulate EXAFS from the outputs of molecular dynamics simulations. It also has the ability to to sample structures based on a harmonic potential generated from a normal modes calculation.

The EXAFS multiple scattering calculations are performed using FEFF6-lite, which was written at the University of Washington by J.J. Rehr and co-workers.1

  1. J.J. Rehr, S.I. Zabinsky and R.C. Albers, "High-order multiple scattering calculations of x-ray-absorption fine structure", Phys. Rev. Lett. 69, 3397 (1992).

Requirements

  • gfortran
  • MPI (e.g. OpenMPI or MPICH)
  • Python
    • numpy
    • mpi4py
    • ASE

Installation

This program is distributed as a Python package. It requires a Fortran compiler (e.g. gfortran) to build the FEFF6-lite program that is redistributed with the code. A MPI library (e.g. OpenMPI) is also required.

The first step is to install Python, GFortran, and MPICH. On Ubuntu this can be accomplished like so:

$ sudo apt-get install build-essential gfortran mpich python python-pip

Once the dependencies are installed expectra (and the Python packages it depends on) can be installed using pip:

$ pip install --user expectra

Usage

usage: expectra [-h] [--first-shell] [--neighbor-cutoff DISTANCE]
                [--multiple-scattering] [--rmax DISTANCE] [--S02 FACTOR]
                [--energy-shift ENERGY] [--absorber ELEMENT]
                [--ignore-elements ELEMENTS] [--edge EDGE] [--skip SKIP]
                [--every EVERY]
                TRAJ [TRAJ ...]

positional arguments:
  TRAJ                  trajectory file (POSCAR, con, xyz)

optional arguments:
  -h, --help            show this help message and exit
  --first-shell         a single scattering calculation that uses an
                        automatically calculated reference path (default:
                        True)
  --neighbor-cutoff DISTANCE
                        1st neighbor cutoff distance (default: 3.4)
  --multiple-scattering
  --rmax DISTANCE       maximum scattering half-path length
  --S02 FACTOR          amplitude reduction factor
  --energy-shift ENERGY
                        energy shift to apply in eV
  --absorber ELEMENT    atomic symbol of the xray absorber
  --ignore-elements ELEMENTS
                        comma delimited list of elements to ignore in the
                        scattering calculation
  --edge EDGE           one of K, L1, L2, L3
  --skip SKIP           number of frames to skip at the beginning
  --every EVERY         number of frames to between each step

Installing from source

If installing Expectra from source instead of pip, clone the source code from GitHub:

git clone https://github.com/SamChill/expectra.git

After all the dependency requirements have been satisfied, build the feff binary, and move it to expectra/expectra/:

cd expectra/feff

# To use ifort instead of gfortran, set FC=ifort in ./Makefile

make clean
make  # should create the feff binary

mv ./feff ../expectra

Finally, set relevant environmental variables (assuming Expectra was installed at $HOME):

# consider including these in ~/.bash_profile, ~/.profile, or ~/.bashrc
export PATH=$HOME/expectra/bin:$PATH
export PYTHONPATH=$HOME/expectra:$PYTHONPATH

Note from developers

Expectra was recently migrated from Python2 to Python3. Please report any bugs to sunghjung3@utexas.edu.