QUDA
1.0.0
|
#include <dirac_quda.h>
Public Member Functions | |
DiracCloverPC (const DiracParam ¶m) | |
DiracCloverPC (const DiracCloverPC &dirac) | |
virtual | ~DiracCloverPC () |
DiracCloverPC & | operator= (const DiracCloverPC &dirac) |
void | CloverInv (ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity) const |
void | Dslash (ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity) const |
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=0., double mu=0., double mu_factor=0.) const |
Create the coarse even-odd preconditioned 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... | |
![]() | |
DiracClover (const DiracParam ¶m) | |
DiracClover (const DiracClover &dirac) | |
virtual | ~DiracClover () |
DiracClover & | operator= (const DiracClover &dirac) |
void | Clover (ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity) 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 | Mu () 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 () |
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 | initConstants () |
![]() | |
void | initConstants () |
![]() | |
bool | newTmp (ColorSpinorField **, const ColorSpinorField &) const |
void | deleteTmp (ColorSpinorField **, const bool &reset) const |
![]() | |
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 305 of file dirac_quda.h.
quda::DiracCloverPC::DiracCloverPC | ( | const DiracParam & | param | ) |
Definition at line 99 of file dirac_clover.cpp.
References quda::DiracClover::clover, quda::CloverField::cloverInv, and errorQuda.
quda::DiracCloverPC::DiracCloverPC | ( | const DiracCloverPC & | dirac | ) |
Definition at line 106 of file dirac_clover.cpp.
|
virtual |
Definition at line 108 of file dirac_clover.cpp.
void quda::DiracCloverPC::CloverInv | ( | ColorSpinorField & | out, |
const ColorSpinorField & | in, | ||
const QudaParity | parity | ||
) | const |
Definition at line 119 of file dirac_clover.cpp.
References quda::ApplyClover(), quda::DiracClover::checkParitySpinor(), quda::DiracClover::clover, quda::Dirac::flops, and quda::ColorSpinorField::Volume().
Referenced by cloverQuda(), M(), prepare(), and reconstruct().
|
virtual |
Create the coarse even-odd preconditioned 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 (set to zero) |
Reimplemented from quda::DiracClover.
Definition at line 272 of file dirac_clover.cpp.
References quda::DiracClover::clover, quda::CoarseOp(), quda::Dirac::gauge, quda::Dirac::matpcType, QUDA_CLOVERPC_DIRAC, quda::ColorSpinorField::TwistFlavor(), and quda::Transfer::Vectors().
|
virtual |
Reimplemented from quda::DiracWilson.
Definition at line 131 of file dirac_clover.cpp.
References quda::ApplyWilsonCloverPreconditioned(), quda::DiracClover::checkParitySpinor(), quda::Dirac::checkSpinorAlias(), quda::DiracClover::clover, quda::Dirac::commDim, quda::Dirac::dagger, quda::Dirac::flops, quda::Dirac::gauge, quda::Dirac::profile, and quda::ColorSpinorField::Volume().
Referenced by M().
|
virtual |
Applies the operator (A + k D)
Reimplemented from quda::DiracClover.
Definition at line 142 of file dirac_clover.cpp.
References quda::ApplyWilsonCloverPreconditioned(), quda::DiracClover::checkParitySpinor(), quda::Dirac::checkSpinorAlias(), quda::DiracClover::clover, quda::Dirac::commDim, quda::Dirac::dagger, quda::Dirac::flops, quda::Dirac::gauge, quda::Dirac::profile, and quda::ColorSpinorField::Volume().
Referenced by M().
|
virtual |
Reimplemented from quda::DiracClover.
Definition at line 154 of file dirac_clover.cpp.
References CloverInv(), quda::Dirac::dagger, quda::Dirac::deleteTmp(), Dslash(), quda::DiracWilson::DslashXpay(), quda::DiracClover::DslashXpay(), DslashXpay(), quda::Dirac::kappa, quda::Dirac::matpcType, quda::Dirac::newTmp(), parity, QUDA_MATPC_EVEN_EVEN, QUDA_MATPC_ODD_ODD, QUDA_MATPC_ODD_ODD_ASYMMETRIC, and quda::Dirac::tmp1.
Referenced by MdagM().
|
virtual |
Reimplemented from quda::DiracClover.
Definition at line 180 of file dirac_clover.cpp.
References quda::Dirac::deleteTmp(), M(), quda::Dirac::Mdag(), quda::Dirac::newTmp(), and quda::Dirac::tmp2.
DiracCloverPC & quda::DiracCloverPC::operator= | ( | const DiracCloverPC & | dirac | ) |
Definition at line 110 of file dirac_clover.cpp.
References quda::DiracClover::operator=().
|
virtual |
Reimplemented from quda::DiracClover.
Definition at line 190 of file dirac_clover.cpp.
References CloverInv(), 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, and quda::Dirac::tmp1.
|
virtual |
Reimplemented from quda::DiracClover.
Definition at line 241 of file dirac_clover.cpp.
References quda::Dirac::checkFullSpinor(), CloverInv(), 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, and quda::Dirac::tmp1.