/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
Author:
Massimo Di Pierro <mdipierro@cs.depaul.edu>

Various stuff for gauge field

Distributed under GPL2 License

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.

 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Defines

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