HILA
Loading...
Searching...
No Matches
gauge_field< matrix > Class Template Reference

#include <gauge_field.h>

Inheritance diagram for gauge_field< matrix >:
Collaboration diagram for gauge_field< matrix >:

Public Types

using gauge_type = matrix
 The matrix type.
 
using fund_type = matrix
 
using basetype = hila::arithmetic_type< matrix >
 The base type (double, float, int...)
 
using gauge_type_flt = matrix
 

Public Member Functions

void set_unity ()
 Set the gauge field to unity.
 
void random ()
 Draw a random gauge field.
 
void draw_momentum ()
 Gaussian random momentum for each element.
 
void zero_momentum ()
 Set the momentum to zero.
 
void gauge_update (double eps)
 Update the gauge field with time step eps.
 
void add_momentum (Field< SquareMatrix< N, Complex< basetype > > > *force)
 
void backup ()
 Make a copy of fields updated in a trajectory.
 
void restore_backup ()
 Restore the previous backup.
 
void read_file (std::string filename)
 Read the gauge field from a file.
 
void write_file (std::string filename)
 Write the gauge field to a file.
 
double plaquette ()
 Calculate the plaquette.
 
double polyakov (int dir)
 Calculate the polyakov loop.
 
Field< gauge_type > & get_momentum (int dir)
 Return a reference to the momentum field.
 
Field< gauge_type > & get_gauge (int dir)
 Return a reference to the gauge field.
 
virtual void refresh ()
 Recalculate represented or smeared field.
 

Public Attributes

Field< matrix > gauge_backup [4]
 Storage for a backup of the gauge field.
 
Field< matrix > gauge [4]
 A matrix field for each Direction.
 
Field< matrix > momentum [4]
 

Static Public Attributes

static constexpr int N = matrix::size
 The size of the matrix.
 

Detailed Description

template<typename matrix>
class gauge_field< matrix >

A gauge field contains a SU(N) matrix in each Direction for the gauge field and for the momentum. Defines methods for HMC to update the field and the momentum.

Definition at line 193 of file gauge_field.h.

Member Typedef Documentation

◆ fund_type

template<typename matrix >
using gauge_field< matrix >::fund_type = matrix

The fundamental gauge type. In the standard case it is the same as the matrix type

Definition at line 199 of file gauge_field.h.

◆ gauge_type_flt

using gauge_field_base< matrix >::gauge_type_flt = matrix
inherited

If the base type is double, this will be the corresponding floating point type.

Definition at line 47 of file gauge_field.h.

Member Function Documentation

◆ add_momentum()

template<typename matrix >
void gauge_field< matrix >::add_momentum ( Field< SquareMatrix< N, Complex< basetype > > > *  force)
inlinevirtual

Project a force term to the algebra and add to the momentum

Reimplemented from gauge_field_base< matrix >.

Definition at line 249 of file gauge_field.h.

Member Data Documentation

◆ momentum

Field<matrix > gauge_field_base< matrix >::momentum[4]
inherited

Also create a momentum field. This is only allocated if necessary

Definition at line 24 of file gauge_field.h.


The documentation for this class was generated from the following file: