How to fit a potential using GULP and LAMMPS
How to use GULP
1. Download and make GULP (instructions are included in a README with GULP). Include any packages that you require for the specific potentials you are using.
2. GULP can be run by executing the gulp program and giving it an input file:
path/gulp-x.x/Src/gulp Gulp_Input
GULP comes with many different example input files, you will want to run GULP from the folder with the input file.
3. GULP structural data is given in the input file in the following format:
# Start of Structure vectors 3.1023 0.0000 0.0000 1.4990 2.7214 0.0000 1.5040 0.8336 5.0333 fractional Fe core 0.0000 0.0000 0.0000 Fe core 0.5000 0.5000 0.5000 O core 0.7500 0.7500 0.7500 O core 0.2500 0.2500 0.2500 space P 1 observable energy ev -15.5000 100.0 end
Fractional can be changed for cartesian and both cores and shells can be defined. Atomic charges can be added to the end of each atom definition:
Fe core 0.0000 0.0000 0.0000 4.0
and many different observables can be defined, in this case the binding energy is given with a weighting.
4. At the top of the GULP input file you need to define what you want GULP to do. For a potential fit:
fit abs conv maxcyc 5000 title funny/creative title goes here
In this example, "fit" means we are fitting something (does not need to be a potential) and "maxcyc" defines the maximum number of fitting cycles are done.
5. At the bottom of the input file we define the potentials with their initial parameters and which of these are being fitted:
buck Fe core O core 1388.0000 2.7600 175.0000 0.00 6.00 1 1 0
This is an example of a Buckingham potential between Fe core and O core. The first three numbers are the three parameters of the Buckingham potential, the fourth and fifth are the minimum and maximum radius over which this potential acts and the last three numbers define which of the parameters are allowed to vary, 1 means it is varied, 0 means it is fixed.