QUDA
1.0.0
|
#include <dirac_quda.h>
Public Member Functions | |
DiracTwistedCloverPC (const DiracTwistedCloverPC &dirac) | |
DiracTwistedCloverPC (const DiracParam ¶m, const int nDim) | |
virtual | ~DiracTwistedCloverPC () |
DiracTwistedCloverPC & | operator= (const DiracTwistedCloverPC &dirac) |
void | TwistCloverInv (ColorSpinorField &out, const ColorSpinorField &in, const int parity) const |
virtual void | Dslash (ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity) const |
virtual void | DslashXpay (ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity, const ColorSpinorField &x, const double &k) const |
void | M (ColorSpinorField &out, const ColorSpinorField &in) const |
void | MdagM (ColorSpinorField &out, const ColorSpinorField &in) const |
void | prepare (ColorSpinorField *&src, ColorSpinorField *&sol, ColorSpinorField &x, ColorSpinorField &b, const QudaSolutionType) const |
void | reconstruct (ColorSpinorField &x, const ColorSpinorField &b, const QudaSolutionType) const |
void | createCoarseOp (GaugeField &Y, GaugeField &X, const Transfer &T, double kappa, double mass, double mu, double mu_factor=0.) const |
Create the coarse even-odd preconditioned twisted-clover operator. Unlike the Wilson operator, the coarsening of the preconditioned clover operator differs from that of the unpreconditioned clover operator, so we need to specialize it. More... | |
![]() | |
DiracTwistedClover (const DiracTwistedClover &dirac) | |
DiracTwistedClover (const DiracParam ¶m, const int nDim) | |
virtual | ~DiracTwistedClover () |
DiracTwistedClover & | operator= (const DiracTwistedClover &dirac) |
void | TwistClover (ColorSpinorField &out, const ColorSpinorField &in, const int parity) const |
double | Mu () const |
![]() | |
DiracWilson (const DiracParam ¶m) | |
DiracWilson (const DiracWilson &dirac) | |
DiracWilson (const DiracParam ¶m, const int nDims) | |
virtual | ~DiracWilson () |
DiracWilson & | operator= (const DiracWilson &dirac) |
![]() | |
Dirac (const DiracParam ¶m) | |
Dirac (const Dirac &dirac) | |
virtual | ~Dirac () |
Dirac & | operator= (const Dirac &dirac) |
void | setCommDim (const int commDim_[QUDA_MAX_DIM]) const |
Enable / disable communications for the Dirac operator. More... | |
virtual void | checkFullSpinor (const ColorSpinorField &, const ColorSpinorField &) const |
void | checkSpinorAlias (const ColorSpinorField &, const ColorSpinorField &) const |
void | Mdag (ColorSpinorField &out, const ColorSpinorField &in) const |
void | MMdag (ColorSpinorField &out, const ColorSpinorField &in) const |
void | setMass (double mass) |
double | Kappa () const |
virtual double | MuFactor () const |
unsigned long long | Flops () const |
QudaMatPCType | getMatPCType () const |
int | getStencilSteps () const |
void | Dagger (QudaDagType dag) const |
void | flipDagger () const |
QudaPrecision | HaloPrecision () const |
void | setHaloPrecision (QudaPrecision halo_precision_) const |
![]() | |
Object () | |
virtual | ~Object () |
Private Attributes | |
bool | reverse |
Additional Inherited Members | |
![]() | |
static Dirac * | create (const DiracParam ¶m) |
![]() | |
static void * | operator new (std::size_t size) |
static void | operator delete (void *p) |
static void * | operator new[] (std::size_t size) |
static void | operator delete[] (void *p) |
![]() | |
void | checkParitySpinor (const ColorSpinorField &, const ColorSpinorField &) const |
void | twistedCloverApply (ColorSpinorField &out, const ColorSpinorField &in, const QudaTwistGamma5Type twistType, const int parity) const |
![]() | |
void | initConstants () |
![]() | |
bool | newTmp (ColorSpinorField **, const ColorSpinorField &) const |
void | deleteTmp (ColorSpinorField **, const bool &reset) const |
![]() | |
double | mu |
double | epsilon |
cudaCloverField & | clover |
![]() | |
cudaGaugeField * | gauge |
double | kappa |
double | mass |
int | laplace3D |
QudaMatPCType | matpcType |
QudaDagType | dagger |
unsigned long long | flops |
ColorSpinorField * | tmp1 |
ColorSpinorField * | tmp2 |
QudaDiracType | type |
QudaPrecision | halo_precision |
int | commDim [QUDA_MAX_DIM] |
TimeProfile | profile |
Definition at line 650 of file dirac_quda.h.
quda::DiracTwistedCloverPC::DiracTwistedCloverPC | ( | const DiracTwistedCloverPC & | dirac | ) |
swap the order of the derivative D and the diagonal inverse A^{-1}
Definition at line 133 of file dirac_twisted_clover.cpp.
quda::DiracTwistedCloverPC::DiracTwistedCloverPC | ( | const DiracParam & | param, |
const int | nDim | ||
) |
Definition at line 139 of file dirac_twisted_clover.cpp.
|
virtual |
Definition at line 145 of file dirac_twisted_clover.cpp.
|
virtual |
Create the coarse even-odd preconditioned twisted-clover operator. Unlike the Wilson operator, the coarsening of the preconditioned clover operator differs from that of the unpreconditioned clover operator, so we need to specialize it.
T[in] | Transfer operator defining the coarse grid |
Y[out] | Coarse link field |
X[out] | Coarse clover field |
kappa | Kappa parameter for the coarse operator |
mass | Mass parameter for the coarse operator (gets explicitly built into clover, hard coded to zero for non-staggered ops) |
mu | TM mu parameter for the coarse operator |
mu_factor | multiplicative factor for the mu parameter |
Reimplemented from quda::DiracTwistedClover.
Definition at line 331 of file dirac_twisted_clover.cpp.
References quda::DiracTwistedClover::clover, quda::CoarseOp(), quda::Dirac::gauge, quda::Dirac::matpcType, QUDA_TWISTED_CLOVERPC_DIRAC, quda::ColorSpinorField::TwistFlavor(), and quda::Transfer::Vectors().
|
virtual |
Reimplemented from quda::DiracTwistedClover.
Definition at line 166 of file dirac_twisted_clover.cpp.
References quda::ApplyTwistedCloverPreconditioned(), quda::DiracTwistedClover::checkParitySpinor(), quda::Dirac::checkSpinorAlias(), quda::DiracTwistedClover::clover, quda::Dirac::commDim, quda::Dirac::dagger, quda::Dirac::deleteTmp(), quda::DiracWilson::Dslash(), errorQuda, quda::Dirac::flops, quda::Dirac::gauge, quda::Dirac::kappa, quda::Dirac::matpcType, quda::DiracTwistedClover::mu, quda::Dirac::newTmp(), quda::Dirac::profile, QUDA_MATPC_EVEN_EVEN, QUDA_MATPC_ODD_ODD, QUDA_TWIST_INVALID, QUDA_TWIST_NO, reverse, quda::Dirac::tmp2, TwistCloverInv(), quda::ColorSpinorField::TwistFlavor(), and quda::ColorSpinorField::Volume().
Referenced by M().
|
virtual |
Reimplemented from quda::DiracTwistedClover.
Definition at line 190 of file dirac_twisted_clover.cpp.
References quda::ApplyTwistedCloverPreconditioned(), quda::DiracTwistedClover::checkParitySpinor(), quda::Dirac::checkSpinorAlias(), quda::DiracTwistedClover::clover, quda::Dirac::commDim, quda::Dirac::dagger, quda::Dirac::deleteTmp(), quda::DiracWilson::DslashXpay(), errorQuda, quda::Dirac::flops, quda::Dirac::gauge, quda::Dirac::kappa, quda::Dirac::matpcType, quda::DiracTwistedClover::mu, quda::Dirac::newTmp(), quda::Dirac::profile, QUDA_MATPC_EVEN_EVEN, QUDA_MATPC_ODD_ODD, QUDA_TWIST_INVALID, QUDA_TWIST_NO, reverse, quda::Dirac::tmp2, TwistCloverInv(), quda::ColorSpinorField::TwistFlavor(), and quda::ColorSpinorField::Volume().
Referenced by M().
|
virtual |
Reimplemented from quda::DiracTwistedClover.
Definition at line 213 of file dirac_twisted_clover.cpp.
References quda::Dirac::dagger, quda::Dirac::deleteTmp(), Dslash(), quda::DiracWilson::DslashXpay(), quda::DiracTwistedClover::DslashXpay(), DslashXpay(), errorQuda, quda::Dirac::kappa, quda::Dirac::matpcType, quda::Dirac::newTmp(), parity, QUDA_MATPC_EVEN_EVEN, QUDA_MATPC_ODD_ODD, QUDA_MATPC_ODD_ODD_ASYMMETRIC, QUDA_TWIST_SINGLET, reverse, quda::Dirac::tmp1, TwistCloverInv(), and quda::ColorSpinorField::TwistFlavor().
Referenced by MdagM().
|
virtual |
Reimplemented from quda::DiracTwistedClover.
Definition at line 243 of file dirac_twisted_clover.cpp.
References quda::Dirac::deleteTmp(), M(), quda::Dirac::Mdag(), quda::Dirac::newTmp(), and quda::Dirac::tmp2.
DiracTwistedCloverPC & quda::DiracTwistedCloverPC::operator= | ( | const DiracTwistedCloverPC & | dirac | ) |
Definition at line 150 of file dirac_twisted_clover.cpp.
References quda::DiracTwistedClover::operator=().
|
virtual |
Reimplemented from quda::DiracTwistedClover.
Definition at line 252 of file dirac_twisted_clover.cpp.
References quda::Dirac::deleteTmp(), quda::DiracWilson::DslashXpay(), errorQuda, quda::ColorSpinorField::Even(), quda::Dirac::kappa, quda::Dirac::matpcType, quda::Dirac::newTmp(), quda::ColorSpinorField::Odd(), QUDA_EVEN_PARITY, QUDA_MATPC_EVEN_EVEN, QUDA_MATPC_EVEN_EVEN_ASYMMETRIC, QUDA_MATPC_ODD_ODD, QUDA_MATPC_ODD_ODD_ASYMMETRIC, QUDA_MATPC_SOLUTION, QUDA_MATPCDAG_MATPC_SOLUTION, QUDA_ODD_PARITY, QUDA_TWIST_SINGLET, quda::Dirac::tmp1, TwistCloverInv(), and quda::ColorSpinorField::TwistFlavor().
|
virtual |
Reimplemented from quda::DiracTwistedClover.
Definition at line 303 of file dirac_twisted_clover.cpp.
References quda::Dirac::checkFullSpinor(), quda::Dirac::deleteTmp(), quda::DiracWilson::DslashXpay(), errorQuda, quda::ColorSpinorField::Even(), quda::Dirac::kappa, quda::Dirac::matpcType, quda::Dirac::newTmp(), quda::ColorSpinorField::Odd(), QUDA_EVEN_PARITY, QUDA_MATPC_EVEN_EVEN, QUDA_MATPC_EVEN_EVEN_ASYMMETRIC, QUDA_MATPC_ODD_ODD, QUDA_MATPC_ODD_ODD_ASYMMETRIC, QUDA_MATPC_SOLUTION, QUDA_MATPCDAG_MATPC_SOLUTION, QUDA_ODD_PARITY, QUDA_TWIST_SINGLET, quda::Dirac::tmp1, TwistCloverInv(), and quda::ColorSpinorField::TwistFlavor().
void quda::DiracTwistedCloverPC::TwistCloverInv | ( | ColorSpinorField & | out, |
const ColorSpinorField & | in, | ||
const int | parity | ||
) | const |
Definition at line 159 of file dirac_twisted_clover.cpp.
References QUDA_TWIST_GAMMA5_INVERSE, and quda::DiracTwistedClover::twistedCloverApply().
Referenced by Dslash(), DslashXpay(), M(), prepare(), and reconstruct().
|
mutableprivate |
Definition at line 652 of file dirac_quda.h.
Referenced by Dslash(), DslashXpay(), and M().