forked from lijiext/lammps
74 lines
2.9 KiB
Plaintext
74 lines
2.9 KiB
Plaintext
ReaxFF library
|
|
|
|
Aidan Thompson, Sandia National Labs
|
|
athomps at sandia.gov
|
|
Jan 2008
|
|
|
|
This library is an implementation of the ReaxFF potential,
|
|
specifically designed to work with LAMMPS. It is derived from Adri van
|
|
Duin's original serial code, with intervening incarnations in CMDF and
|
|
GRASP.
|
|
|
|
-------------------------------------------------
|
|
|
|
This directory has source files to build a library that LAMMPS
|
|
links against when using the REAX package.
|
|
|
|
This library must be built with a F90 compiler, before LAMMPS is
|
|
built, so LAMMPS can link against it.
|
|
|
|
Build the library using one of the provided Makefile.* files or create
|
|
your own, specific to your compiler and system. For example:
|
|
|
|
make -f Makefile.gfortran
|
|
|
|
When you are done building this library, two files should
|
|
exist in this directory:
|
|
|
|
libreax.a the library LAMMPS will link against
|
|
Makefile.lammps settings the LAMMPS Makefile will import
|
|
|
|
Makefile.lammps is created by the make command, by copying one of the
|
|
Makefile.lammps.* files. See the EXTRAMAKE setting at the top of the
|
|
Makefile.* files.
|
|
|
|
IMPORTANT: You must examine the final Makefile.lammps to insure it is
|
|
correct for your system, else the LAMMPS build will likely fail.
|
|
|
|
Makefile.lammps has settings for 3 variables:
|
|
|
|
user-reax_SYSINC = leave blank for this package
|
|
user-reax_SYSLIB = auxiliary F90 libs needed to link a F90 lib with
|
|
a C++ program (LAMMPS) via a C++ compiler
|
|
user-reax_SYSPATH = path(s) to where those libraries are
|
|
|
|
Because you have a F90 compiler on your system, you should have these
|
|
libraries. But you will have to figure out which ones are needed and
|
|
where they are. Examples of common configurations are in the
|
|
Makefile.lammps.* files.
|
|
|
|
-------------------------------------------------
|
|
|
|
Additional build notes:
|
|
|
|
The include file reax_defs.h is used by both the ReaxFF library source
|
|
files and the LAMMPS pair_reax.cpp source file (in package src/REAX).
|
|
It contains dimensions of statically-allocated arrays created by the
|
|
ReaxFF library. The size of these arrays must be set small enough to
|
|
avoid exceeding the available machine memory, and large enough to fit
|
|
the actual data generated by ReaxFF. If you change the values in
|
|
reax_defs.h, you must first rebuild the library and then rebuild
|
|
LAMMPS.
|
|
|
|
This library is called by functions in pair_reax.cpp. The C++ to
|
|
FORTRAN function calls in pair_reax.cpp assume that FORTRAN object
|
|
names are converted to C object names by appending an underscore
|
|
character. This is generally the case, but on machines that do not
|
|
conform to this convention, you will need to modify either the C++
|
|
code or your compiler settings. The name conversion is handled by the
|
|
preprocessor macro called FORTRAN in the file pair_reax_fortran.h,
|
|
which is included by pair_reax.cpp. Different definitions of this
|
|
macro can be obtained by adding a machine-specific macro definition to
|
|
the CCFLAGS variable in your your LAMMPS Makefile e.g. -D_IBM. See
|
|
pair_reax_fortran.h for more info.
|