Using Potentials¶
QUIP¶
QUantum mechanics and Interatomic Potentials (QUIP)
Potentials implemented in QUIP
¶
Classical interatomic potentials:
- BKS (silica)
- Brenner (carbon)
- EAM (fcc)
- Fanourgakis-Xantheas
- Finnis-Sinclair (bcc)
- Flikkema-Bromley
- GAP (general many-body)
- Guggenheim-McGlashan
- Lennard-Jones
- Morse
- Partridge-Schwenke (water monomer)
- Si-MEAM (silicon)
- Stillinger-Weber (carbon, silicon, germanium)
- Stillinger-Weber + Vashishta (silicon/silica interfaces)
- Sutton-Chen
- Tangney-Scandolo (silica, titania etc)
- Tersoff (silicon, carbon)
Plus several tight binding parameterisations (Bowler, DFTB, GSP, NRL-TB, …)
External packages:
CASTEP
— DFT, planewaves, ultrasoft pseudopotentialsCP2K
— DFT, mixed Gaussian/planewave basis set, various pseudopotentials. OurCP2K
Driver supports QM, MM and QM/MM.MOLPRO
— All electron quantum chemistry code. DFT, CCSD(T), MP2VASP
— DFT, planewaves, PAW or ultrasoft pseudopotentials- Interface to OpenKIM project
- Relatively easy to add new codes
QUIP
also has a full interface to the Atomic Simulation
Environment, ASE
ASE
adds support for several more codes e.g.ABINIT
,Elk
,Exciting
,GPAW
,SIESTA
, …ASE
also works with the CMR database system
Performing calculations¶
- As well as preparing structures and post-processing results,
quippy
allows calculations to be run - In
QUIP
andquippy
, all calculations are performed with a Potential object (very similar to theCalculator
concept inASE
) - Types of potential
- Internal: interatomic potential or tight binding
- External: file-based communication with external code or callback-based communication with a Python function
- Plus flexible combinations of other potentials
- Internal potentials use XML parameter strings
- External potentials use template parameter files
Creating a Potential¶
Internal potential:
>>> sw_pot = Potential('IP SW')
External potential:
>>> castep = Potential('FilePot',
... command='./castep-driver.sh')
Driver script can be a shell script, an executable program using
QUIP
or a quippy
script. It can even invoke code on a remote
machine.