CHROMA
|
General Wilson-Dirac dslash. More...
#include <lwldslash_llvm_w.h>
Classes | |
struct | comms_t |
Public Member Functions | |
LLVMWilsonDslashT () | |
Empty constructor. Must use create later. More... | |
LLVMWilsonDslashT (Handle< FermState< T, P, Q > > state) | |
Full constructor. More... | |
LLVMWilsonDslashT (Handle< FermState< T, P, Q > > state, const AnisoParam_t &aniso_) | |
Full constructor with anisotropy. More... | |
LLVMWilsonDslashT (Handle< FermState< T, P, Q > > state, const multi1d< Real > &coeffs_) | |
Full constructor with general coefficients. More... | |
void | create (Handle< FermState< T, P, Q > > state) |
Creation routine. More... | |
void | create (Handle< FermState< T, P, Q > > state, const AnisoParam_t &aniso_) |
Creation routine with anisotropy. More... | |
void | create (Handle< FermState< T, P, Q > > state, const multi1d< Real > &coeffs_) |
Full constructor with general coefficients. More... | |
~LLVMWilsonDslashT () | |
No real need for cleanup here. More... | |
void | apply (T &chi, const T &psi, enum PlusMinus isign, int cb) const |
General Wilson-Dirac dslash. More... | |
const FermBC< T, P, Q > & | getFermBC () const |
Return the fermion BC object for this linear operator. More... | |
Public Member Functions inherited from Chroma::WilsonDslashBase< T, P, Q > | |
virtual | ~WilsonDslashBase () |
No real need for cleanup here. More... | |
const Subset & | subset () const |
Subset is all here. More... | |
virtual void | deriv (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const |
Take deriv of D. More... | |
virtual void | deriv (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign, int cb) const |
Take deriv of D. More... | |
unsigned long | nFlops () const |
Return flops performed by the operator() More... | |
Public Member Functions inherited from Chroma::DslashLinearOperator< T, P, Q > | |
virtual | ~DslashLinearOperator () |
Virtual destructor to help in cleanup. More... | |
virtual void | operator() (T &d, const T &psi, enum PlusMinus isign) const |
Apply operator on both checkerboards (entire lattice) More... | |
virtual void | derivMultipole (P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const |
Return the force for multiple poles. More... | |
virtual void | derivMultipole (P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign, int cb) const |
Public Member Functions inherited from Chroma::DiffLinearOperator< T, P, Q > | |
virtual | ~DiffLinearOperator () |
Virtual destructor to help with cleanup;. More... | |
virtual void | deriv (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign, const Real &epsilon) const |
Apply the derivative of the operator onto a source std::vector to some precision. More... | |
Public Member Functions inherited from Chroma::LinearOperator< T > | |
virtual | ~LinearOperator () |
Virtual destructor to help with cleanup;. More... | |
virtual void | operator() (T &chi, const T &psi, enum PlusMinus isign, Real epsilon) const |
Apply the operator onto a source std::vector to some precision. More... | |
Protected Member Functions | |
const multi1d< Real > & | getCoeffs () const |
Get the anisotropy parameters. More... | |
Private Member Functions | |
void | comms_setup () |
void | setup () |
void | comms_free () |
void | comms_wait () const |
void | comms_send_receive (int i) const |
Private Attributes | |
multi1d< Real > | coeffs |
Handle< FermBC< T, P, Q > > | fbc |
Q | u |
int | innerCount [2] |
int | faceCount [2] |
const int * | innerSites [2] |
const int * | faceSites [2] |
struct comms_t | comms [8] |
double * | send_buf [8] |
double * | recv_buf [8] |
QMP_msgmem_t | msg [8][2] |
QMP_msghandle_t | mh_a [8][2] |
QMP_msghandle_t | mh [8] |
QMP_mem_t * | send_buf_mem [8] |
QMP_mem_t * | recv_buf_mem [8] |
int | comm_thread |
General Wilson-Dirac dslash.
DSLASH
This routine is specific to Wilson fermions!
Description:
This routine applies the operator D' to Psi, putting the result in Chi.
Nd-1 --- \
chi(x) := > U (x) (1 - isign gamma ) psi(x+mu)
mu=0
Nd-1 --- \ + + > U (x-mu) (1 + isign gamma ) psi(x-mu) / mu mu --- mu=0
Definition at line 51 of file lwldslash_llvm_w.h.
Chroma::LLVMWilsonDslashT< T, P, Q >::LLVMWilsonDslashT | ( | Handle< FermState< T, P, Q > > | state | ) |
Chroma::LLVMWilsonDslashT< T, P, Q >::LLVMWilsonDslashT | ( | Handle< FermState< T, P, Q > > | state, |
const AnisoParam_t & | aniso_ | ||
) |
Full constructor with anisotropy.
Definition at line 181 of file lwldslash_llvm_w.h.
References Chroma::state.
Chroma::LLVMWilsonDslashT< T, P, Q >::LLVMWilsonDslashT | ( | Handle< FermState< T, P, Q > > | state, |
const multi1d< Real > & | coeffs_ | ||
) |
Full constructor with general coefficients.
Definition at line 189 of file lwldslash_llvm_w.h.
References Chroma::state.
|
inline |
No real need for cleanup here.
Definition at line 81 of file lwldslash_llvm_w.h.
References Chroma::LLVMWilsonDslashT< T, P, Q >::comms_free().
|
private |
Definition at line 300 of file lwldslash_llvm_w.h.
References Chroma::i.
Referenced by Chroma::LLVMWilsonDslashT< T, P, Q >::~LLVMWilsonDslashT().
|
private |
Definition at line 278 of file lwldslash_llvm_w.h.
References Chroma::i, and Chroma::QDP_error_exit().
|
private |
Definition at line 219 of file lwldslash_llvm_w.h.
References Chroma::i, and Chroma::QDP_error_exit().
|
private |
Definition at line 286 of file lwldslash_llvm_w.h.
References Chroma::i, and Chroma::QDP_error_exit().
void Chroma::LLVMWilsonDslashT< T, P, Q >::create | ( | Handle< FermState< T, P, Q > > | state | ) |
Creation routine.
Definition at line 197 of file lwldslash_llvm_w.h.
References Nd, and Chroma::state.
void Chroma::LLVMWilsonDslashT< T, P, Q >::create | ( | Handle< FermState< T, P, Q > > | state, |
const AnisoParam_t & | aniso_ | ||
) |
Creation routine with anisotropy.
Definition at line 206 of file lwldslash_llvm_w.h.
References Chroma::END_CODE(), Chroma::makeFermCoeffs(), Chroma::START_CODE(), and Chroma::state.
void Chroma::LLVMWilsonDslashT< T, P, Q >::create | ( | Handle< FermState< T, P, Q > > | state, |
const multi1d< Real > & | coeffs_ | ||
) |
Full constructor with general coefficients.
Definition at line 393 of file lwldslash_llvm_w.h.
References mu, Nd, Chroma::state, and Chroma::u.
|
inlineprotectedvirtual |
Get the anisotropy parameters.
Implements Chroma::WilsonDslashBase< T, P, Q >.
Definition at line 100 of file lwldslash_llvm_w.h.
References Chroma::LLVMWilsonDslashT< T, P, Q >::coeffs.
|
inlinevirtual |
Return the fermion BC object for this linear operator.
Implements Chroma::DslashLinearOperator< T, P, Q >.
Definition at line 96 of file lwldslash_llvm_w.h.
References Chroma::LLVMWilsonDslashT< T, P, Q >::fbc.
Referenced by Chroma::LLVMWilsonDslashT< T, P, Q >::apply().
|
private |
Definition at line 317 of file lwldslash_llvm_w.h.
References Chroma::cb, and Chroma::isign.
|
private |
Nd array of coefficients of terms in the action
Definition at line 109 of file lwldslash_llvm_w.h.
Referenced by Chroma::LLVMWilsonDslashT< T, P, Q >::getCoeffs().
|
private |
Definition at line 134 of file lwldslash_llvm_w.h.
|
private |
Definition at line 116 of file lwldslash_llvm_w.h.
|
private |
Definition at line 114 of file lwldslash_llvm_w.h.
|
private |
Definition at line 116 of file lwldslash_llvm_w.h.
|
private |
Definition at line 110 of file lwldslash_llvm_w.h.
Referenced by Chroma::LLVMWilsonDslashT< T, P, Q >::getFermBC().
|
private |
Definition at line 113 of file lwldslash_llvm_w.h.
|
private |
Definition at line 115 of file lwldslash_llvm_w.h.
|
private |
Definition at line 130 of file lwldslash_llvm_w.h.
|
private |
Definition at line 130 of file lwldslash_llvm_w.h.
|
private |
Definition at line 129 of file lwldslash_llvm_w.h.
|
private |
Definition at line 128 of file lwldslash_llvm_w.h.
|
private |
Definition at line 132 of file lwldslash_llvm_w.h.
|
private |
Definition at line 127 of file lwldslash_llvm_w.h.
|
private |
Definition at line 131 of file lwldslash_llvm_w.h.
|
private |
Definition at line 111 of file lwldslash_llvm_w.h.