lammps/examples/COUPLE/lammps_quest
sjplimp f44c7cdc38 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8610 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2012-08-11 19:15:14 +00:00
..
Makefile.g++ git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8604 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2012-08-11 19:05:13 +00:00
README git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8604 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2012-08-11 19:05:13 +00:00
in.lammps git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8604 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2012-08-11 19:05:13 +00:00
lmppath.h git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8604 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2012-08-11 19:05:13 +00:00
lmpqst.cpp git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8604 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2012-08-11 19:05:13 +00:00
log.lammps.1 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8604 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2012-08-11 19:05:13 +00:00
log.lammps.4 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8604 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2012-08-11 19:05:13 +00:00
qstexe.h git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8604 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2012-08-11 19:05:13 +00:00
si_111.in git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8604 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2012-08-11 19:05:13 +00:00

README

This directory has an application that runs classical MD via LAMMPS,
but uses quantum forces calculated by the Quest DFT (density
functional) code in place of the usual classical MD forces calculated
by a pair style in LAMMPS.

lmpqst.cpp	    main program
		    it links LAMMPS as a library
		    it invokes Quest as an executable
in.lammps	    LAMMPS input script, without the run command
si_111.in	    Quest input script for an 8-atom Si unit cell
lmppath.h	    contains path to LAMMPS home directory
qstexe.h	    contains full pathname to Quest executable

After editing the Makefile, lmppath.h, and qstexe.h to make them
suitable for your box, type:

g++ -f Makefile.g++

and you should get the lmpqst executable.

NOTE: To run this coupled application, you must of course, have Quest
built on your system.  It's WWW site is http://dft.sandia.gov/Quest.
It is not an open-source code, buy you can contact its authors to
obtain a copy.

You can run lmpqst in serial or parallel as:

% lmpqst Niter in.lammps in.quest
% mpirun -np 4 lmpqst Niter in.lammps in.quest

where

Niter = # of MD iterations
in.lammps = LAMMPS input script
in.quest = Quest input script

The log files are for this run:

% lmpqst 10 in.lammps si_111.in

This application is an example of a coupling where the driver code
(lmpqst) runs one code (LAMMPS) as an outer code and facilitates it
calling the other code (Quest) as an inner code.  Specifically, the
driver (lmpqst) invokes one code (LAMMPS) to perform its timestep
loop, and grabs information from the other code (Quest) during its
timestep.  This is done in LAMMPS using the fix external command,
which makes a "callback" to the driver application (lmpqst), which in
turn invokes Quest with new atom coordinates, lets Quest compute
forces, and returns those forces to the LAMMPS fix external.

The driver code launches LAMMPS in parallel.  But Quest is only run on
a single processor.  It would be possible to change this by using a
parallel build of Quest.

Since Quest does not currently have a library interface, the driver
code interfaces with Quest via input and output files.

Note that essentially 100% of the run time for this coupled
application is spent in Quest, as the quantum calculation of forces
dominates the calculation.

You can look at the log files in the directory to see sample LAMMPS
output for this simulation.  Dump files produced by LAMMPS are stored
as dump.md.