jcosborn / qhmc

QHMC code for Lattice Field Theory (part of FUEL project)
http://jcosborn.github.io/qhmc
GNU General Public License v3.0
1 stars 5 forks source link

QHMC (FUEL)

James C. Osborn

QHMC is an application for Lattice Field Theory using the Lua scripting language on top of USQCD SciDAC libraries. It is also commonly referred to by the name FUEL (Framework for Unified Evolution of Lattices). Though originally targeted for configuration generation, it now has fairly extensive analysis capabilities. The main website is here.

Quick Build Instructions

QHMC uses autoconf and follows similar conventions to the rest of the USQCD SciDAC libraries. You will first need to install its dependencies: QMP, QIO, QLA, QDP, and QOPQDP. The recommended versions of these libraries are

Source tarballs for these libraries and QHMC are available here. The qinstall script provides a convienent way to install these libraries and QHMC.

An example configure command for QHMC is:

/home/osborn/lqcd/src/qhmc-0.1.4/configure \
 --prefix=/home/osborn/lqcd/install/qhmc-0.1.4 \
 --with-qmp=/home/osborn/lqcd/install/qmp \
 --with-qio=/home/osborn/lqcd/install/qio \
 --with-qla=/home/osborn/lqcd/install/qla \
 --with-qdp=/home/osborn/lqcd/install/qdp \
 --with-qopqdp=/home/osborn/lqcd/install/qopqdp \
 --enable-nc=all \
 --enable-colors=n \
 CFLAGS="-Wall -std=gnu99 -O3 -g -DQDP_PROFILE"

CC will default to the same as used by QMP and can be overriden.

The "--enable-nc=" flag should match what was used to compile QOPQDP. The default is "all".

The "--enable-colors=" flag is used to force all fields to have the specified color at compile time. This may be faster in some cases, but can prevent using any code that uses multiple Nc. The allowed values are 1,2,3, and n where "n" specifies that the fields can have any Nc and can be specified at runtime. This is the default.

Directory structure

bin
  where the final qhmc executable is built
examples
  some random, possibly old, examples
include
  headers for Lua bindings in lib directory
lib
  Lua bindings for libraries (and the Lua source itself)
lua
  Lua scripts for running configuration generation and analysis
test
  regression tests