|
QUDA
1.0.0
|
#include <dirac_quda.h>


Public Member Functions | |
| DiracCoarsePC (const DiracParam ¶m, bool gpu_setup=true) | |
| DiracCoarsePC (const DiracCoarse &dirac, const DiracParam ¶m) | |
| virtual | ~DiracCoarsePC () |
| void | Dslash (ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity) const |
| Apply DslashXpay out = (D * in) More... | |
| void | DslashXpay (ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity, const ColorSpinorField &x, const double &k) const |
| Apply DslashXpay out = (D * in + A * x) More... | |
| void | M (ColorSpinorField &out, const ColorSpinorField &in) const |
| Apply the full operator. More... | |
| 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 coarse operator. Unlike the Wilson operator, the coarsening of the preconditioned coarse operator differs from that of the unpreconditioned coarse operator, so we need to specialize it. More... | |
Public Member Functions inherited from quda::DiracCoarse | |
| double | Mu () const |
| double | MuFactor () const |
| DiracCoarse (const DiracParam ¶m, bool gpu_setup=true, bool mapped=false) | |
| DiracCoarse (const DiracParam ¶m, cpuGaugeField *Y_h, cpuGaugeField *X_h, cpuGaugeField *Xinv_h, cpuGaugeField *Yhat_h, cudaGaugeField *Y_d=0, cudaGaugeField *X_d=0, cudaGaugeField *Xinv_d=0, cudaGaugeField *Yhat_d=0) | |
| DiracCoarse (const DiracCoarse &dirac, const DiracParam ¶m) | |
| virtual | ~DiracCoarse () |
| void | Clover (ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity) const |
| Apply the coarse clover operator. More... | |
| void | CloverInv (ColorSpinorField &out, const ColorSpinorField &in, const QudaParity parity) const |
| Apply the inverse coarse clover operator. More... | |
| void | createPreconditionedCoarseOp (GaugeField &Yhat, GaugeField &Xinv, const GaugeField &Y, const GaugeField &X) |
| Create the precondtioned coarse operator. More... | |
Public Member Functions inherited from quda::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 | checkParitySpinor (const ColorSpinorField &, const ColorSpinorField &) const |
| 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 |
| 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 |
Public Member Functions inherited from quda::Object | |
| Object () | |
| virtual | ~Object () |
Additional Inherited Members | |
Static Public Member Functions inherited from quda::Dirac | |
| static Dirac * | create (const DiracParam ¶m) |
Static Public Member Functions inherited from quda::Object | |
| 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) |
Protected Member Functions inherited from quda::DiracCoarse | |
| void | initializeCoarse () |
| Initialize the coarse gauge fields. Location is determined by gpu_setup variable. More... | |
| void | initializeLazy (QudaFieldLocation location) const |
| Create the CPU or GPU coarse gauge fields on demand (requires that the fields have been created in the other memory space) More... | |
| void | createY (bool gpu=true, bool mapped=false) const |
| Allocate the Y and X fields. More... | |
| void | createYhat (bool gpu=true) const |
| Allocate the Yhat and Xinv fields. More... | |
Protected Member Functions inherited from quda::Dirac | |
| bool | newTmp (ColorSpinorField **, const ColorSpinorField &) const |
| void | deleteTmp (ColorSpinorField **, const bool &reset) const |
Protected Attributes inherited from quda::DiracCoarse | |
| double | mu |
| double | mu_factor |
| const Transfer * | transfer |
| const Dirac * | dirac |
| const bool | need_bidirectional |
| cpuGaugeField * | Y_h |
| cpuGaugeField * | X_h |
| cpuGaugeField * | Xinv_h |
| cpuGaugeField * | Yhat_h |
| cudaGaugeField * | Y_d |
| cudaGaugeField * | X_d |
| cudaGaugeField * | Xinv_d |
| cudaGaugeField * | Yhat_d |
| bool | enable_gpu |
| bool | enable_cpu |
| const bool | gpu_setup |
| bool | init_gpu |
| bool | init_cpu |
| const bool | mapped |
Protected Attributes inherited from quda::Dirac | |
| 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 |
Even-odd preconditioned variant of coarse Dslash operator
Definition at line 972 of file dirac_quda.h.
| quda::DiracCoarsePC::DiracCoarsePC | ( | const DiracParam & | param, |
| bool | gpu_setup = true |
||
| ) |
| [in] | param | Parameters defining this operator |
| [in] | gpu_setup | Whether to do the setup on GPU or CPU |
Definition at line 356 of file dirac_coarse.cpp.
| quda::DiracCoarsePC::DiracCoarsePC | ( | const DiracCoarse & | dirac, |
| const DiracParam & | param | ||
| ) |
| [in] | dirac | Another operator instance to clone from (shallow copy) |
| [in] | param | Parameters defining this operator |
Definition at line 361 of file dirac_coarse.cpp.
|
virtual |
Definition at line 366 of file dirac_coarse.cpp.
|
virtual |
Create the coarse even-odd preconditioned coarse operator. Unlike the Wilson operator, the coarsening of the preconditioned coarse operator differs from that of the unpreconditioned coarse 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, assumed to be zero |
| mu | TM mu parameter for the coarse operator |
| mu_factor | multiplicative factor for the mu parameter |
Reimplemented from quda::DiracCoarse.
Definition at line 524 of file dirac_coarse.cpp.
References checkLocation, quda::CoarseCoarseOp(), quda::DiracCoarse::initializeLazy(), quda::Dirac::matpcType, QUDA_COARSEPC_DIRAC, QUDA_CPU_FIELD_LOCATION, QUDA_CUDA_FIELD_LOCATION, quda::ColorSpinorField::TwistFlavor(), quda::Transfer::Vectors(), quda::DiracCoarse::X_d, quda::DiracCoarse::X_h, quda::DiracCoarse::Xinv_d, quda::DiracCoarse::Xinv_h, quda::DiracCoarse::Yhat_d, and quda::DiracCoarse::Yhat_h.

|
virtual |
Apply DslashXpay out = (D * in)
| [out] | out | Output field |
| [in] | in | Input field |
Reimplemented from quda::DiracCoarse.
Definition at line 368 of file dirac_coarse.cpp.
References quda::ApplyCoarse(), checkLocation, quda::Dirac::commDim, quda::Dirac::dagger, quda::Dirac::flops, quda::Dirac::halo_precision, quda::DiracCoarse::initializeLazy(), quda::Dirac::kappa, quda::ColorSpinorField::Ncolor(), quda::ColorSpinorField::Nspin(), QUDA_CPU_FIELD_LOCATION, QUDA_CUDA_FIELD_LOCATION, quda::ColorSpinorField::SiteSubset(), quda::ColorSpinorField::VolumeCB(), quda::DiracCoarse::X_d, quda::DiracCoarse::X_h, quda::DiracCoarse::Yhat_d, and quda::DiracCoarse::Yhat_h.
Referenced by DslashXpay(), and M().


|
virtual |
Apply DslashXpay out = (D * in + A * x)
| [out] | out | Output field |
| [in] | in | Input field |
Reimplemented from quda::DiracCoarse.
Definition at line 382 of file dirac_coarse.cpp.
References Dslash(), quda::Dirac::flops, quda::ColorSpinorField::Ncolor(), quda::ColorSpinorField::Nspin(), quda::ColorSpinorField::VolumeCB(), and quda::blas::xpay().
Referenced by M().


|
virtual |
Apply the full operator.
| [out] | out | output vector, out = M * in |
| [in] | in | input vector |
Reimplemented from quda::DiracCoarse.
Definition at line 393 of file dirac_coarse.cpp.
References quda::DiracCoarse::Clover(), quda::Dirac::deleteTmp(), quda::DiracCoarse::Dslash(), Dslash(), DslashXpay(), errorQuda, quda::Dirac::matpcType, quda::Dirac::newTmp(), QUDA_EVEN_PARITY, QUDA_FULL_SITE_SUBSET, QUDA_MATPC_EVEN_EVEN, QUDA_MATPC_EVEN_EVEN_ASYMMETRIC, QUDA_MATPC_ODD_ODD, QUDA_MATPC_ODD_ODD_ASYMMETRIC, QUDA_ODD_PARITY, quda::ColorSpinorField::SiteSubset(), quda::Dirac::tmp1, and quda::blas::xpay().
Referenced by MdagM().


|
virtual |
Reimplemented from quda::DiracCoarse.
Definition at line 429 of file dirac_coarse.cpp.
References quda::Dirac::deleteTmp(), M(), quda::Dirac::Mdag(), quda::Dirac::newTmp(), and quda::Dirac::tmp2.

|
virtual |
Reimplemented from quda::DiracCoarse.
Definition at line 437 of file dirac_coarse.cpp.
References quda::DiracCoarse::CloverInv(), quda::Dirac::deleteTmp(), quda::DiracCoarse::Dslash(), errorQuda, quda::ColorSpinorField::Even(), 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::Dirac::tmp1, and quda::blas::xpay().

|
virtual |
Reimplemented from quda::DiracCoarse.
Definition at line 490 of file dirac_coarse.cpp.
References quda::Dirac::checkFullSpinor(), quda::DiracCoarse::CloverInv(), quda::Dirac::deleteTmp(), quda::DiracCoarse::Dslash(), errorQuda, quda::ColorSpinorField::Even(), 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::Dirac::tmp1, and quda::blas::xpay().

1.8.13