CHROMA
|
Clover term. More...
#include <clover_term_base_w.h>
Public Member Functions | |
virtual | ~CloverTermBase () |
No real need for cleanup here. More... | |
const Subset & | subset () const |
Subset is all here. More... | |
virtual void | applySite (T &chi, const T &psi, enum PlusMinus isign, int site) const =0 |
virtual void | choles (int cb)=0 |
Invert. More... | |
virtual Double | cholesDet (int cb) const =0 |
Invert. More... | |
void | deriv (multi1d< U > &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const |
Take deriv of D. More... | |
void | deriv (multi1d< U > &ds_u, const T &chi, const T &psi, enum PlusMinus isign, int cb) const |
Take deriv of D. More... | |
void | derivMultipole (multi1d< U > &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const |
Take deriv of D. More... | |
void | derivMultipole (multi1d< U > &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign, int cb) const |
Take deriv of D. More... | |
void | derivTrLn (multi1d< U > &ds_u, enum PlusMinus isign, int cb) const |
Take derivative of TrLn D. More... | |
void | deriv_loops (const int u, const int mu, const int cb, U &ds_u_mu, U &ds_u_nu, const U &Lambda) const |
unsigned long | nFlops () const |
Return flops performed by the operator() More... | |
virtual void | triacntr (U &B, int mat, int cb) const =0 |
Calculates Tr_D ( Gamma_mat L ) More... | |
Public Member Functions inherited from Chroma::DslashLinearOperator< T, multi1d< U >, multi1d< U > > | |
virtual | ~DslashLinearOperator () |
Virtual destructor to help in cleanup. More... | |
virtual const FermBC< T, multi1d< U >, multi1d< U > > & | getFermBC () const=0 |
Return the fermion BC object for this linear operator. More... | |
virtual void | operator() (T &d, const T &psi, enum PlusMinus isign) const |
Apply operator on both checkerboards (entire lattice) More... | |
virtual void | apply (T &chi, const T &psi, enum PlusMinus isign, int cb) const=0 |
Apply checkerboarded linear operator. More... | |
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 |
Apply the derivative of the operator onto a source std::vector. 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... | |
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... | |
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 | |
virtual const multi1d< U > & | getU () const =0 |
Get the u field. More... | |
virtual Real | getCloverCoeff (int mu, int nu) const =0 |
get the clover coefficient More... | |
Clover term.
Definition at line 22 of file clover_term_base_w.h.
|
inlinevirtual |
No real need for cleanup here.
Definition at line 28 of file clover_term_base_w.h.
|
pure virtual |
Invert.
Computes the inverse of the term on cb using Cholesky
Implemented in Chroma::SSEDCloverTerm, Chroma::QDPCloverTermT< T, U >, Chroma::PTXCloverTermT< T, U >, Chroma::NVVMCloverTermT< T, U >, Chroma::LLVMCloverTermT< T, U >, and Chroma::BAGELCloverTerm.
|
pure virtual |
Invert.
Computes the determinant of the term
Implemented in Chroma::SSEDCloverTerm, Chroma::QDPCloverTermT< T, U >, Chroma::PTXCloverTermT< T, U >, Chroma::NVVMCloverTermT< T, U >, Chroma::LLVMCloverTermT< T, U >, and Chroma::BAGELCloverTerm.
|
virtual |
Take deriv of D.
chi | left std::vector (Read) |
psi | right std::vector (Read) |
isign | D'^dag or D' ( MINUS | PLUS ) resp. (Read) |
chi | left std::vector (Read) |
psi | right std::vector (Read) |
isign | D'^dag or D' ( MINUS | PLUS ) resp. (Read) |
Reimplemented from Chroma::DslashLinearOperator< T, multi1d< U >, multi1d< U > >.
Definition at line 144 of file clover_term_base_w.h.
References Chroma::chi(), deriv(), Chroma::END_CODE(), Chroma::isign, Chroma::psi, and Chroma::START_CODE().
Referenced by Chroma::EvenOddPrecSLICLinOp::derivEvenEvenLinOp(), and Chroma::EvenOddPrecSLICLinOp::derivOddOddLinOp().
|
virtual |
Take deriv of D.
chi | left std::vector on cb (Read) |
psi | right std::vector on 1-cb (Read) |
isign | D'^dag or D' ( MINUS | PLUS ) resp. (Read) |
cb | Checkerboard of chi std::vector (Read) |
chi | left std::vector on cb (Read) |
psi | right std::vector on 1-cb (Read) |
isign | D'^dag or D' ( MINUS | PLUS ) resp. (Read) |
cb | Checkerboard of chi std::vector (Read) |
Reimplemented from Chroma::DslashLinearOperator< T, multi1d< U >, multi1d< U > >.
Definition at line 691 of file clover_term_base_w.h.
References Chroma::cb, Chroma::chi(), Chroma::END_CODE(), mu, Nd, nu, Chroma::psi, Chroma::START_CODE(), and Chroma::zero.
void Chroma::CloverTermBase< T, U >::deriv_loops | ( | const int | u, |
const int | mu, | ||
const int | cb, | ||
U & | ds_u_mu, | ||
U & | ds_u_nu, | ||
const U & | Lambda | ||
) | const |
Definition at line 320 of file clover_term_base_w.h.
References BACKWARD, Chroma::cb, Chroma::END_CODE(), FORWARD, mu, nu, Chroma::START_CODE(), and Chroma::u.
|
virtual |
Take deriv of D.
chi | left vectors (Read) |
psi | right vectors (Read) |
isign | D'^dag or D' ( MINUS | PLUS ) resp. (Read) |
cb | Checkerboard of chi std::vector (Read) |
Reimplemented from Chroma::DslashLinearOperator< T, multi1d< U >, multi1d< U > >.
Definition at line 164 of file clover_term_base_w.h.
References Chroma::chi(), Chroma::END_CODE(), Chroma::isign, Chroma::psi, and Chroma::START_CODE().
|
virtual |
Take deriv of D.
chi | left vectors on cb (Read) |
psi | right vectors on cb (Read) |
isign | D'^dag or D' ( MINUS | PLUS ) resp. (Read) |
cb | Checkerboard of chi std::vector (Read) |
Reimplemented from Chroma::DslashLinearOperator< T, multi1d< U >, multi1d< U > >.
Definition at line 750 of file clover_term_base_w.h.
References Chroma::cb, Chroma::chi(), Chroma::END_CODE(), Chroma::i, mu, Nd, nu, Chroma::psi, Chroma::START_CODE(), and Chroma::zero.
void Chroma::CloverTermBase< T, U >::derivTrLn | ( | multi1d< U > & | ds_u, |
enum PlusMinus | isign, | ||
int | cb | ||
) | const |
Take derivative of TrLn D.
Take deriv of D using Trace Log.
chi | left std::vector on cb (Read) |
psi | right std::vector on 1-cb (Read) |
isign | D'^dag or D' ( MINUS | PLUS ) resp. (Read) |
cb | Checkerboard of chi std::vector (Read) |
Definition at line 825 of file clover_term_base_w.h.
References Chroma::cb, Chroma::END_CODE(), mu, Nd, nu, Chroma::START_CODE(), and Chroma::zero.
Referenced by Chroma::EvenOddPrecSLICLinOp::derivLogDetEvenEvenLinOp().
|
protectedpure virtual |
get the clover coefficient
Implemented in Chroma::SSEDCloverTerm, Chroma::QDPCloverTermT< T, U >, Chroma::PTXCloverTermT< T, U >, Chroma::NVVMCloverTermT< T, U >, Chroma::LLVMCloverTermT< T, U >, and Chroma::BAGELCloverTerm.
|
protectedpure virtual |
Get the u field.
Implemented in Chroma::SSEDCloverTerm, Chroma::QDPCloverTermT< T, U >, Chroma::PTXCloverTermT< T, U >, Chroma::NVVMCloverTermT< T, U >, Chroma::LLVMCloverTermT< T, U >, and Chroma::BAGELCloverTerm.
|
virtual |
Return flops performed by the operator()
Reimplemented from Chroma::LinearOperator< T >.
Definition at line 132 of file clover_term_base_w.h.
Referenced by main(), Chroma::EvenOddPrecDumbCloverFLinOp::nFlops(), Chroma::EvenOddPrecDumbCloverDLinOp::nFlops(), and Chroma::EvenOddPrecSLICLinOp::nFlops().
|
inlinevirtual |
Subset is all here.
Implements Chroma::LinearOperator< T >.
Definition at line 31 of file clover_term_base_w.h.
|
pure virtual |
Calculates Tr_D ( Gamma_mat L )
Implemented in Chroma::QDPCloverTermT< T, U >, Chroma::PTXCloverTermT< T, U >, Chroma::NVVMCloverTermT< T, U >, Chroma::LLVMCloverTermT< T, U >, and Chroma::BAGELCloverTerm.