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

#include <wilson.h>

Public Types

using radix = hila::arithmetic_type< matrix >
 The wilson vector type.
 
using matrix_type = matrix
 The matrix type.
 
using type_flt = Dirac_Wilson_evenodd< typename gauge_field_base< matrix >::gauge_type_flt >
 

Public Member Functions

 Dirac_Wilson_evenodd (Dirac_Wilson_evenodd &d)
 Constructor: initialize mass and gauge.
 
 Dirac_Wilson_evenodd (double k, Field< matrix >(&U)[4])
 Constructor: initialize mass and gauge.
 
 Dirac_Wilson_evenodd (double k, gauge_field_base< matrix > &g)
 Constructor: initialize mass and gauge.
 
template<typename M >
 Dirac_Wilson_evenodd (Dirac_Wilson_evenodd< M > &d, gauge_field_base< matrix > &g)
 Construct from another Dirac_Wilson operator of a different type.
 
void apply (const Field< vector_type > &in, Field< vector_type > &out)
 Applies the operator to in.
 
void dagger (const Field< vector_type > &in, Field< vector_type > &out)
 Applies the conjugate of the operator.
 
template<typename momtype >
void force (const Field< vector_type > &chi, const Field< vector_type > &psi, Field< momtype >(&force)[4], int sign)
 

Public Attributes

double kappa
 The hopping parameter, kappa = 1/(8-2m)
 
Parity par = EVEN
 The parity this operator applies to.
 

Static Public Attributes

static constexpr int N = matrix::size
 Size of the gauge matrix and color dimension of the Wilson vector.
 

Detailed Description

template<typename matrix>
class Dirac_Wilson_evenodd< matrix >

An even-odd decomposed Wilson Dirac operator. Applies D_{even to odd} D_{diag}^{-1} D_{odd to even} on the even sites of the vector.

The fermion partition function is det(D) = det(D_eveneodd) + det(D_{diag odd}). Dirac_Wilson_evenodd can be used to replace D_Wilson in the HMC action, as long as the diagonal odd to odd part is accounted for.

This is useful for defining inverters as composite operators. For example the conjugate gradient inverter is CG<Dirac_Wilson_evenodd>.

Definition at line 234 of file wilson.h.

Member Typedef Documentation

◆ type_flt

template<typename matrix >
using Dirac_Wilson_evenodd< matrix >::type_flt = Dirac_Wilson_evenodd<typename gauge_field_base<matrix>::gauge_type_flt>

Single precision type in case the base type is double precision. This is used to precondition the inversion of this operator

Definition at line 252 of file wilson.h.

Member Function Documentation

◆ force()

template<typename matrix >
template<typename momtype >
void Dirac_Wilson_evenodd< matrix >::force ( const Field< vector_type > &  chi,
const Field< vector_type > &  psi,
Field< momtype >(&)  force[4],
int  sign 
)
inline

Applies the derivative of the Dirac operator with respect to the gauge Field

Definition at line 294 of file wilson.h.


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