Skip to content

Export lattice gauge configurations to Mathematica and analyze.

License

Notifications You must be signed in to change notification settings

bvds/gauge-field-analyze

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SU(N) gauge field analysis

This repository contains code to analyze SU(N) lattice gauge theory field configurations. The strategy is to look at 3 and 4 dimensions in the large N limit, paying special attention to saddle points of the action. It has three components:

  1. A number of Mathematica notebooks (gauge.nb being the central file) containing test code and a number of analyses.
  2. A Mathematica library mma-lib for analyzing gauge field configurations.
  3. C++ code for converting Chroma-generated gauge configurations into Mathematica format. See "gauge-analyze" below.
  4. C code for finding the saddle-point of a quadratic function, given the Hessian matrix, the gradient vector, and some number of linear constraints. See saddle-lib.

Chroma

The official release of chroma does not properly handle large N or 3 spacetime dimensions. Instead use my fork of chroma. Also, this fork includes an extension TRANS_GAUGEBC that sets fixed boundary conditions in two directions.

gauge-analyze

Install

Install QDP++ and packages autoconf and g++.

In the root directory, generate the configuration files:

autoreconf -f
automake --add-missing 

To get configuration options:

./configure --help

In particular, note the --with-qdp option. To build, one can create a separate build directory like this:

mkdir 3-3-build/ ; cd 3-3-build
../configure --with-qdp=/usr/local/qdp++/3-3/
make

Run

ganalyze [input_config] [output]
 - [input_config]  the QDP config stored in the SciDAC file format (.lime)
 - [output] name of the output file in Mathematica format

Converts a configuration stored in the SciDAC file format (also known as lime) to Mathematica-readable format.

The input file is generated by the purgaug program from chroma as discussed above. The program only runs for a single thread, non-parallel.

Example commands to generate gauge configurations and create an associated Mathematica input file:

cd ../data/3-3/
# create file periodic-16-28-in.xml
../../chroma/3-3-build/mainprogs/main/purgaug -i periodic-16-28-in.xml -o periodic-16-28-out.xml

Or, run in screen:

screen -S a -d -m ../../chroma/3-3-build/mainprogs/main/purgaug -i periodic-16.20.24-23.4-a-in.xml -o periodic-16.20.24-23.4-a-out.xml

Next:

../../gauge-field-analyze/3-3-build/programs/ganalyze periodic-16-28.ini.xml5 periodic-16-28-5.m

Or, if there is a lot of them:

perl -e 'for (1..100) {system "../../gauge-field-analyze/3-3-build/programs/ganalyze periodic-16-28.ini.xml$_ periodic-16-28-$_.m"}'
perl -e 'for (1..56) {$x=$_+56*0;system "../../gauge-field-analyze/3-4-build/programs/ganalyze periodic-16.20.24-51.44648478-a.ini.xml$_ periodic-16.20.24-51.44648478-$x.m"}'

Bibliography

MATLAB linear system solvers

To find stationary points of the action for some lattice configuration we need a Krylov space method for solving symmtric-indefinite singular (or incompatible) linear systems.

The MINRES-QLP algorithm can handle this case, however the associated MATLAB code contains some errors. Also, I cleaned up the code a bit:

  • Condition flag != flag0 (line 543) means that MINRES is never called.

  • Initialization error in minresxxxM (lines 746, 747)

  • Replace length(x)>0 with ~isempty(x)

  • Value of w_{k-3} (lines 557 to 559) is never used.

  • gamal3 is never used.

  • Initial value is overwritten: gamal2, u, and wl2.

  • Added explicit end to each function.

MATLAB versions:

Mathematica versions:

About

Export lattice gauge configurations to Mathematica and analyze.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Mathematica 97.9%
  • C 0.8%
  • TeX 0.6%
  • MATLAB 0.5%
  • C++ 0.1%
  • M4 0.1%