HILA
|
#include <staggered.h>
Public Types | |
using | vector_type = SU_vector< matrix::size, hila::arithmetic_type< matrix > > |
The SU(N) vector type. | |
using | matrix_type = matrix |
The matrix type. | |
using | type_flt = dirac_staggered_evenodd< typename gauge_field_base< matrix >::gauge_type_flt > |
Public Member Functions | |
dirac_staggered_evenodd (dirac_staggered_evenodd &d) | |
Constructor: initialize mass, gauge and eta. | |
dirac_staggered_evenodd (double m, Field< matrix >(&U)[4]) | |
Constructor: initialize mass, gauge and eta. | |
dirac_staggered_evenodd (double m, gauge_field_base< matrix > &g) | |
Constructor: initialize mass, gauge and eta. | |
template<typename M > | |
dirac_staggered_evenodd (dirac_staggered_evenodd< M > &d, gauge_field_base< matrix > &g) | |
Construct from another Dirac_Wilson operator of a different type. | |
void | apply (Field< vector_type > &in, Field< vector_type > &out) |
Applies the operator to in. | |
void | dagger (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 | mass |
the fermion mass | |
Parity | par = EVEN |
The parity this operator applies to. | |
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>.
As a side effect, the output Field becomes out = D_{diag}^{-1} D_{odd to even} in
Definition at line 193 of file libraries/dirac/staggered.h.
using dirac_staggered_evenodd< matrix >::type_flt = dirac_staggered_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 211 of file libraries/dirac/staggered.h.
|
inline |
Applies the derivative of the Dirac operator with respect to the gauge Field
Definition at line 261 of file libraries/dirac/staggered.h.