#include <clover_term_bagel_clover.h>
Inheritance diagram for Chroma::BAGELCloverTerm:

Public Types | |
| typedef LatticeFermion | T |
| typedef multi1d< LatticeColorMatrix > | P |
| typedef multi1d< LatticeColorMatrix > | Q |
Public Member Functions | |
| BAGELCloverTerm () | |
| Empty constructor. Must use create later. | |
| ~BAGELCloverTerm () | |
| Free the internals. | |
| void | create (Handle< FermState< T, P, Q > > fs, const CloverFermActParams ¶m_, const BAGELCloverTerm &from) |
| Create from another. | |
| void | create (Handle< FermState< T, P, Q > > fs, const CloverFermActParams ¶m_) |
| Creation routine. | |
| void | choles (int cb) |
| Invert. | |
| Double | cholesDet (int cb) const |
| Invert. | |
| void | apply (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, int cb) const |
| void | applySite (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, int site) const |
| void | triacntr (LatticeColorMatrix &B, int mat, int cb) const |
| TRIACNTR. | |
| const FermBC< T, P, Q > & | getFermBC () const |
| Return the fermion BC object for this linear operator. | |
Protected Member Functions | |
| void | makeClov (const multi1d< LatticeColorMatrix > &f, const Real &diag_mass) |
| Create the clover term on cb. | |
| void | ldagdlinv (LatticeReal &tr_log_diag, int cb) |
| Invert the clover term on cb using LDL^ decomp. | |
| void | chlclovms (LatticeReal &log_diag, int cb) |
| Invert the clover term on cb using Cholesky decomp. | |
| const multi1d< LatticeColorMatrix > & | getU () const |
| Get the u field. | |
| Real | getCloverCoeff (int mu, int nu) const |
| Returns the appropriate clover coefficient for indices mu and nu. | |
Private Attributes | |
| Handle< FermBC< T, P, Q > > | fbc |
| multi1d< LatticeColorMatrix > | u |
| CloverFermActParams | param |
| LatticeReal | tr_log_diag_ |
| multi1d< bool > | choles_done |
| PrimitiveClovDiag * | tri_diag |
| PrimitiveClovOffDiag * | tri_off_diag |
Definition at line 45 of file clover_term_bagel_clover.h.
| typedef multi1d<LatticeColorMatrix> Chroma::BAGELCloverTerm::P |
Definition at line 50 of file clover_term_bagel_clover.h.
| typedef multi1d<LatticeColorMatrix> Chroma::BAGELCloverTerm::Q |
Definition at line 51 of file clover_term_bagel_clover.h.
| typedef LatticeFermion Chroma::BAGELCloverTerm::T |
Definition at line 49 of file clover_term_bagel_clover.h.
| Chroma::BAGELCloverTerm::BAGELCloverTerm | ( | ) |
Empty constructor. Must use create later.
Definition at line 80 of file clover_term_bagel_clover.cc.
References Chroma::DEFAULT, tri_diag, and tri_off_diag.
| Chroma::BAGELCloverTerm::~BAGELCloverTerm | ( | ) |
Free the internals.
Definition at line 125 of file clover_term_bagel_clover.cc.
References tri_diag, and tri_off_diag.
| void Chroma::BAGELCloverTerm::apply | ( | LatticeFermion & | chi, | |
| const LatticeFermion & | psi, | |||
| enum PlusMinus | isign, | |||
| int | cb | |||
| ) | const [virtual] |
Apply a dslash
Performs the operation
chi <- (L + D + L^dag) . psi
where L is a lower triangular matrix D is the real diagonal. (stored together in type TRIANG)
Arguments:
| chi | result (Write) | |
| psi | source (Read) | |
| isign | D'^dag or D' ( MINUS | PLUS ) resp. (Read) | |
| cb | Checkerboard of OUTPUT vector (Read) |
Implements Chroma::DslashLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 971 of file clover_term_bagel_clover.cc.
References END_CODE, getFermBC(), START_CODE, tri_diag, and tri_off_diag.
Referenced by create().
| void Chroma::BAGELCloverTerm::applySite | ( | LatticeFermion & | chi, | |
| const LatticeFermion & | psi, | |||
| enum PlusMinus | isign, | |||
| int | site | |||
| ) | const [virtual] |
Apply a dslash
Performs the operation
chi <- (L + D + L^dag) . psi
where L is a lower triangular matrix D is the real diagonal. (stored together in type TRIANG)
Arguments:
| chi | result (Write) | |
| psi | source (Read) | |
| isign | D'^dag or D' ( MINUS | PLUS ) resp. (Read) | |
| cb | Checkerboard of OUTPUT vector (Read) |
Implements Chroma::CloverTermBase< LatticeFermion, LatticeColorMatrix >.
Definition at line 1044 of file clover_term_bagel_clover.cc.
References END_CODE, START_CODE, tri_diag, and tri_off_diag.
Referenced by create().
| void Chroma::BAGELCloverTerm::chlclovms | ( | LatticeReal & | tr_log_diag, | |
| int | cb | |||
| ) | [protected] |
Invert the clover term on cb using Cholesky decomp.
CHLCLOVMS - Cholesky decompose the clover mass term and uses it to compute lower(A^-1) = lower((L.L^dag)^-1) Adapted from Golub and Van Loan, Matrix Computations, 2nd, Sec 4.2.4
Arguments:
| DetP | flag whether to compute determinant (Read) | |
| logdet | logarithm of the determinant (Write) | |
| cb | checkerboard of work (Read) |
Definition at line 789 of file clover_term_bagel_clover.cc.
References choles_done, END_CODE, START_CODE, tri_diag, and tri_off_diag.
| void Chroma::BAGELCloverTerm::choles | ( | int | cb | ) | [virtual] |
Invert.
| cb | checkerboard of work (Read) |
Implements Chroma::CloverTermBase< LatticeFermion, LatticeColorMatrix >.
Definition at line 540 of file clover_term_bagel_clover.cc.
References END_CODE, ldagdlinv(), START_CODE, and tr_log_diag_.
| Double Chroma::BAGELCloverTerm::cholesDet | ( | int | cb | ) | const [virtual] |
Invert.
| cb | checkerboard of work (Read) |
Implements Chroma::CloverTermBase< LatticeFermion, LatticeColorMatrix >.
Definition at line 558 of file clover_term_bagel_clover.cc.
References choles_done, END_CODE, START_CODE, and tr_log_diag_.
| void Chroma::BAGELCloverTerm::create | ( | Handle< FermState< T, P, Q > > | fs, | |
| const CloverFermActParams & | param_ | |||
| ) |
Creation routine.
Definition at line 136 of file clover_term_bagel_clover.cc.
References Chroma::AnisoParam_t::anisoP, Chroma::CloverFermActParams::anisoParam, apply(), applySite(), choles_done, Chroma::CloverFermActParams::clovCoeffR, Chroma::CloverFermActParams::clovCoeffT, END_CODE, fbc, makeClov(), Chroma::CloverFermActParams::Mass, Chroma::mesField(), Chroma::AnisoParam_t::nu, param, Chroma::PLUS, START_CODE, u, Chroma::write(), and Chroma::AnisoParam_t::xi_0.
| void Chroma::BAGELCloverTerm::create | ( | Handle< FermState< T, P, Q > > | fs, | |
| const CloverFermActParams & | param_, | |||
| const BAGELCloverTerm & | from | |||
| ) |
Create from another.
Definition at line 202 of file clover_term_bagel_clover.cc.
References Chroma::AnisoParam_t::anisoP, Chroma::CloverFermActParams::anisoParam, Chroma::block(), choles_done, Chroma::CloverFermActParams::clovCoeffR, Chroma::CloverFermActParams::clovCoeffT, END_CODE, fbc, Chroma::CloverFermActParams::Mass, Chroma::AnisoParam_t::nu, param, START_CODE, tr_log_diag_, tri_diag, tri_off_diag, u, and Chroma::AnisoParam_t::xi_0.
| Real Chroma::BAGELCloverTerm::getCloverCoeff | ( | int | mu, | |
| int | nu | |||
| ) | const [protected, virtual] |
Returns the appropriate clover coefficient for indices mu and nu.
Implements Chroma::CloverTermBase< LatticeFermion, LatticeColorMatrix >.
Definition at line 1486 of file clover_term_bagel_clover.cc.
References Chroma::AnisoParam_t::anisoP, Chroma::CloverFermActParams::anisoParam, Chroma::CloverFermActParams::clovCoeffR, Chroma::CloverFermActParams::clovCoeffT, END_CODE, param, START_CODE, and Chroma::AnisoParam_t::t_dir.
Referenced by makeClov().
Return the fermion BC object for this linear operator.
Implements Chroma::DslashLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 106 of file clover_term_bagel_clover.h.
References fbc.
Referenced by apply().
| const multi1d<LatticeColorMatrix>& Chroma::BAGELCloverTerm::getU | ( | ) | const [inline, protected, virtual] |
Get the u field.
Implements Chroma::CloverTermBase< LatticeFermion, LatticeColorMatrix >.
Definition at line 123 of file clover_term_bagel_clover.h.
References u.
| void Chroma::BAGELCloverTerm::ldagdlinv | ( | LatticeReal & | tr_log_diag, | |
| int | cb | |||
| ) | [protected] |
Invert the clover term on cb using LDL^ decomp.
An LDL^ decomposition and inversion?
Definition at line 575 of file clover_term_bagel_clover.cc.
References Chroma::block(), choles_done, END_CODE, l, START_CODE, tri_diag, and tri_off_diag.
Referenced by choles().
| void Chroma::BAGELCloverTerm::makeClov | ( | const multi1d< LatticeColorMatrix > & | f, | |
| const Real & | diag_mass | |||
| ) | [protected] |
Create the clover term on cb.
| f | field strength tensor F(mu,nu) (Read) | |
| cb | checkerboard (Read) |
Definition at line 348 of file clover_term_bagel_clover.cc.
References END_CODE, getCloverCoeff(), START_CODE, tri_diag, and tri_off_diag.
Referenced by create().
multi1d<bool> Chroma::BAGELCloverTerm::choles_done [private] |
Definition at line 134 of file clover_term_bagel_clover.h.
Referenced by chlclovms(), cholesDet(), create(), and ldagdlinv().
Definition at line 131 of file clover_term_bagel_clover.h.
Referenced by create(), and getCloverCoeff().
LatticeReal Chroma::BAGELCloverTerm::tr_log_diag_ [private] |
Definition at line 132 of file clover_term_bagel_clover.h.
Referenced by choles(), cholesDet(), and create().
Definition at line 136 of file clover_term_bagel_clover.h.
Referenced by apply(), applySite(), BAGELCloverTerm(), chlclovms(), create(), ldagdlinv(), makeClov(), triacntr(), and ~BAGELCloverTerm().
Definition at line 137 of file clover_term_bagel_clover.h.
Referenced by apply(), applySite(), BAGELCloverTerm(), chlclovms(), create(), ldagdlinv(), makeClov(), triacntr(), and ~BAGELCloverTerm().
multi1d<LatticeColorMatrix> Chroma::BAGELCloverTerm::u [private] |
1.4.7