# /Users/mdipierro/fermiqcd/development/Libraries/fermiqcd_gauge_algorithms.h File Reference

Go to the source code of this file.

## Functions

void set_cold (gauge_field &U)
make a cold gauge configuration
void set_hot (gauge_field &U)
Make a hot gauge configuration.
void check_unitarity (gauge_field &U, double precision=PRECISION)
Check that gauge field is unitary within precision.
mdp_real average_plaquette (gauge_field &U, int mu, int nu)
Compute average plaquette on plane mu-nu.
mdp_real average_plaquette (gauge_field &U)
Compute average plaquette (all planes).
void compute_em_field (gauge_field &U)
Given a field U compute the chromo-eletro-magntic field U.em.
void compute_long_links (gauge_field &U, gauge_field &V, int length=2)
void set_antiperiodic_phases (gauge_field &U, int mu=0, int check=true)
mdp_matrix project_SU (mdp_matrix M, int nstep=1)
mdp_complex average_path (gauge_field &U, int length, int d[][2])
mdp_matrix build_path (gauge_field &U, site x, int length, int d[][2])
void copy_path (int length, int d[][2], int c[][2])
void invert_path (int mu, int length, int d[][2])
void rotate_path (int angle, int mu, int nu, int length, int d[][2])

## Detailed Description

Version:
2009-12-21

Various stuff for gauge field

Created with support from the US Department of Energy

## Function Documentation

 mdp_complex average_path ( gauge_field & U, int length, int d[][2] )

Takes a field U and path d of length and compute the average of the path on the entire lattice. Assumes computation can be done locally for each site

Example:

```///   int mu=0, nu=1;
///   gauge_field U(lattice,nc);
///   int d[][2]={{+1,mu},{+1,nu},{-1,mu},{-1,nu}}
///   mdp << "plaquette=" << average_path(U,4,d) << endl;
/// ```
 mdp_real average_plaquette ( gauge_field & U )

Compute average plaquette (all planes).

 mdp_real average_plaquette ( gauge_field & U, int mu, int nu )

Compute average plaquette on plane mu-nu.

 mdp_matrix build_path ( gauge_field & U, site x, int length, int d[][2] )

Takes a field U, a site x, a path d of length and compute the product of links amdp_int the path starting at x. Assumes computation can be done locally for each site

Example:

```///   int mu=0, nu=1;
///   gauge_field U(lattice,nc);
///   int d[][2]={{+1,mu},{+1,nu},{-1,mu},{-1,nu}}
///   forallsites(x)
///      cout << "plaquette(x)=" << average_path(U,x,4,d) << endl;
/// ```
 void check_unitarity ( gauge_field & U, double precision = `PRECISION` )

Check that gauge field is unitary within precision.

 void compute_em_field ( gauge_field & U )

Given a field U compute the chromo-eletro-magntic field U.em.

 void compute_long_links ( gauge_field & U, gauge_field & V, int length = `2` )

For use with asqtad staggered action Given field V makes a field U.long_links where (if length==2)

```/// U.long_links(x,mu)=V(x,mu)*V(x+mu,mu);
/// ```

or (if length==3)

```/// U.long_links(x,mu)=V(x,mu)*V(x+mu,mu)*V((x+mu)+mu,mu);
/// ```
 void copy_path ( int length, int d[][2], int c[][2] )
 void invert_path ( int mu, int length, int d[][2] )
 mdp_matrix project_SU ( mdp_matrix M, int nstep = `1` )

takes a matrix M, performs a Cabibbo-Marinari cooling and returns the projected matrix

 void rotate_path ( int angle, int mu, int nu, int length, int d[][2] )
 void set_antiperiodic_phases ( gauge_field & U, int mu = `0`, int check = `true` )

To set antiperiodic boundary conditions on in direction mu

```///    gauge_field U(lattice,nc);
///    // do heatbath on U
///    set_antiperiodic_phases(U,mu,true);
///    // use quarks (will have antiperiodic boundary conditions)
///    set_antiperiodic_phases(U,mu,false);
/// ```
 void set_cold ( gauge_field & U )

make a cold gauge configuration

 void set_hot ( gauge_field & U )

Make a hot gauge configuration.

Generated on Wed Dec 23 14:03:14 2009 for fermiqcd by  1.6.1