This package implements the Green's function molecular dynamics, by introducing
a LAMMPS fix, fix gfmd
. It is used to evaluate the effective forces acting on
an elastic half-space from the dynamical matrix.
This is an implementation of the method described in:
- C. Campana, M.H. Muser, Phys. Rev. B 74, 075420 (2006)
- L. Pastewka, T.A. Sharp, M.O. Robbins, Phys. Rev. B 86, 075459 (2012)
If you use this code, please cite these publications.
This code was used in the following publications:
- T.A. Sharp, L. Pastewka, M.O. Robbins, Phys. Rev. B 93, 121402(R) (2016)
- T.A. Sharp, L. Pastewka. V. Ligners, M.O. Robbins, Phys. Rev. B 96, 155436 (2017)
- A. Klemenz, A. Gola, M. Moseler, L. Pastewka, Appl. Phys. Lett. 112, 061601 (2018)
- J.M. Monti, M.O. Robbins, ACS Nano 14, 16997 (2020)
The code is absolutely not idiot proof. If you plan to use it, please contact Lars Pastewka.
You need LAMMPS patch_10Feb2021
or later to run this code. The sign of the FFT
transform was flipped in this release. Please make sure all tests pass. Tests
will catch any problem with the FFT.
Compiling this package along with LAMMPS requires the FFT3d wrappers from the kspace package of LAMMPS to be included. Please configure lammps with the MANYBODY, KSPACE and EXTRA-PAIR packages.
You should also append 'user-gfmd' to the 'PACKUSER' variable in the file of
src/Makefile before invoke make yes-user
. Note that make yes-user-gfmd
does
not work if used with the USER-CUDA package. If used with USER-CUDA, go into
the USER-GFMD directory and execute sh Install.sh 1
manually.
Functionality beyond pair potentials will be included soon.
Note that we do not at present support CMake. A typical installation would
look like this (in the LAMMPS src
directory):
git clone https://github.com/Atomistica/user-gfmd.git USER-GFMD
make yes-extra-pair
make yes-manybody
make yes-kspace
make yes-user-gfmd
make fftw
There are two separate testing frameworks:
-
Unittests are separate from the LAMMPS executable and use Google Test v1.6.0. To compile type
make unittests
in the USER-GFMD directory. Then execute the "unittests" binary. -
Compound tests run LAMMPS and check the output. To run these tests change to the
tests
subdirectory and run therun_test.sh
executable with the path to the LAMMPS binary as the only argument.