|
QUDA
0.9.0
|
#include <dirac_quda.h>


Protected Member Functions | |
| void | initializeCoarse () |
Protected Member Functions inherited from quda::Dirac | |
| bool | newTmp (ColorSpinorField **, const ColorSpinorField &) const |
| void | deleteTmp (ColorSpinorField **, const bool &reset) const |
Protected Attributes | |
| double | mu |
| double | mu_factor |
| const Transfer * | transfer |
| const Dirac * | dirac |
| 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 | init |
Protected Attributes inherited from quda::Dirac | |
| cudaGaugeField * | gauge |
| double | kappa |
| double | mass |
| QudaMatPCType | matpcType |
| QudaDagType | dagger |
| unsigned long long | flops |
| ColorSpinorField * | tmp1 |
| ColorSpinorField * | tmp2 |
| QudaDiracType | type |
| QudaTune | tune |
| int | commDim [QUDA_MAX_DIM] |
| TimeProfile | profile |
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) |
This class serves as a front-end to the coarse Dslash operator, similar to the other dslash operators.
Definition at line 740 of file dirac_quda.h.
| quda::DiracCoarse::DiracCoarse | ( | const DiracParam & | param, |
| bool | enable_gpu = true |
||
| ) |
| [in] | param | Parameters defining this operator |
| [in] | enable_gpu | Whether to enable this operator for the GPU |
Definition at line 7 of file dirac_coarse.cpp.
References initializeCoarse().

| quda::DiracCoarse::DiracCoarse | ( | const DiracParam & | param, |
| 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 |
||
| ) |
| [in] | param | Parameters defining this operator |
| [in] | Y_h | CPU coarse link field |
| [in] | X_h | CPU coarse clover field |
| [in] | Xinv_h | CPU coarse inverse clover field |
| [in] | Yhat_h | CPU coarse preconditioned link field |
| [in] | Y_d | GPU coarse link field |
| [in] | X_d | GPU coarse clover field |
| [in] | Xinv_d | GPU coarse inverse clover field |
| [in] | Yhat_d | GPU coarse preconditioned link field |
Definition at line 16 of file dirac_coarse.cpp.
| quda::DiracCoarse::DiracCoarse | ( | 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 27 of file dirac_coarse.cpp.
|
virtual |
| void quda::DiracCoarse::Clover | ( | ColorSpinorField & | out, |
| const ColorSpinorField & | in, | ||
| const QudaParity | parity | ||
| ) | const |
Apply the coarse clover operator.
| [out] | out | Output field |
| [in] | in | Input field |
| [paraity] | parity Parity which we are applying the operator to |
Definition at line 132 of file dirac_coarse.cpp.
References quda::ApplyCoarse(), checkLocation, quda::Dirac::dagger, enable_gpu, errorQuda, quda::Dirac::flops, in, quda::Dirac::kappa, n, out, parity, QUDA_CPU_FIELD_LOCATION, QUDA_CUDA_FIELD_LOCATION, X_d, X_h, Y_d, and Y_h.
Referenced by benchmark(), and quda::DiracCoarsePC::M().


| void quda::DiracCoarse::CloverInv | ( | ColorSpinorField & | out, |
| const ColorSpinorField & | in, | ||
| const QudaParity | parity | ||
| ) | const |
Apply the inverse coarse clover operator.
| [out] | out | Output field |
| [in] | in | Input field |
| [paraity] | parity Parity which we are applying the operator to |
Definition at line 145 of file dirac_coarse.cpp.
References quda::ApplyCoarse(), checkLocation, quda::Dirac::dagger, enable_gpu, errorQuda, quda::Dirac::flops, in, quda::Dirac::kappa, n, out, parity, QUDA_CPU_FIELD_LOCATION, QUDA_CUDA_FIELD_LOCATION, Xinv_d, Xinv_h, Y_d, and Y_h.
Referenced by quda::DiracCoarsePC::prepare(), and quda::DiracCoarsePC::reconstruct().


|
virtual |
Create the coarse operator from this coarse operator.
| T[in] | Transfer operator defining the coarse grid |
| Y[out] | Coarse link field |
| X[out] | Coarse clover field |
| Xinv[out] | Coarse clover inverse field |
| Yhat[out] | Coarse preconditioned link field |
| kappa | Kappa parameter for the coarse operator |
| mu | TM mu parameter for the coarse operator |
| mu_factor | multiplicative factor for the mu parameter |
Reimplemented from quda::Dirac.
Reimplemented in quda::DiracCoarsePC.
Definition at line 229 of file dirac_coarse.cpp.
References a, checkLocation, quda::CoarseCoarseOp(), quda::Dirac::kappa, mu, mu_factor, QUDA_COARSE_DIRAC, QUDA_CPU_FIELD_LOCATION, QUDA_MATPC_INVALID, quda::ColorSpinorField::TwistFlavor(), quda::Transfer::Vectors(), X, X_d, X_h, Xinv_d, Xinv_h, Y_d, and Y_h.

|
virtual |
Apply DslashXpay out = (D * in)
| [out] | out | Output field |
| [in] | in | Input field |
| [paraity] | parity Parity which we are applying the operator to |
Implements quda::Dirac.
Reimplemented in quda::DiracCoarsePC.
Definition at line 158 of file dirac_coarse.cpp.
References quda::ApplyCoarse(), checkLocation, quda::Dirac::dagger, enable_gpu, errorQuda, quda::Dirac::flops, in, quda::Dirac::kappa, n, out, parity, QUDA_CPU_FIELD_LOCATION, QUDA_CUDA_FIELD_LOCATION, X_d, X_h, Y_d, and Y_h.
Referenced by benchmark(), quda::DiracCoarsePC::M(), quda::DiracCoarsePC::prepare(), and quda::DiracCoarsePC::reconstruct().


|
virtual |
Apply DslashXpay out = (D * in + A * x)
| [out] | out | Output field |
| [in] | in | Input field |
| [paraity] | parity Parity which we are applying the operator to |
Implements quda::Dirac.
Reimplemented in quda::DiracCoarsePC.
Definition at line 171 of file dirac_coarse.cpp.
References quda::ApplyCoarse(), checkLocation, quda::Dirac::dagger, enable_gpu, errorQuda, quda::Dirac::flops, in, quda::Dirac::kappa, n, out, parity, QUDA_CPU_FIELD_LOCATION, QUDA_CUDA_FIELD_LOCATION, x, X_d, X_h, Y_d, and Y_h.

|
protected |
GPU copy of the preconditioned coarse link field
Definition at line 50 of file dirac_coarse.cpp.
References quda::cudaGaugeField::copy(), quda::cpuGaugeField::copy(), quda::Dirac::createCoarseOp(), dirac, enable_gpu, quda::Transfer::Geo_bs(), gParam, fused_exterior_ndeg_tm_dslash_cuda_gen::i, quda::Dirac::kappa, memcpy(), Mu(), MuFactor(), ndim, quda::ColorSpinorField::Ndim(), quda::ColorSpinorField::Nspin(), quda::Transfer::nvec(), prec, quda::LatticeField::Precision(), QUDA_COARSE_GEOMETRY, QUDA_COARSE_LINKS, QUDA_FLOAT2_GAUGE_ORDER, QUDA_FULL_SITE_SUBSET, QUDA_GHOST_EXCHANGE_NO, QUDA_GHOST_EXCHANGE_PAD, QUDA_MAX_DIM, QUDA_PERIODIC_T, QUDA_QDP_GAUGE_ORDER, QUDA_RECONSTRUCT_NO, QUDA_SCALAR_GEOMETRY, QUDA_ZERO_FIELD_CREATE, quda::Transfer::Spin_bs(), transfer, quda::Transfer::Vectors(), quda::ColorSpinorField::X(), x, X_d, X_h, Xinv_d, Xinv_h, Y_d, Y_h, Yhat_d, and Yhat_h.
Referenced by DiracCoarse().


|
virtual |
Apply the full operator.
| [out] | out | output vector, out = M * in |
| [in] | in | input vector |
Implements quda::Dirac.
Reimplemented in quda::DiracCoarsePC.
Definition at line 187 of file dirac_coarse.cpp.
References quda::ApplyCoarse(), checkLocation, quda::Dirac::dagger, enable_gpu, errorQuda, quda::Dirac::flops, in, quda::Dirac::kappa, n, out, QUDA_CPU_FIELD_LOCATION, QUDA_CUDA_FIELD_LOCATION, QUDA_INVALID_PARITY, X_d, X_h, Y_d, and Y_h.
Referenced by benchmark(), and MdagM().


|
virtual |
Implements quda::Dirac.
Reimplemented in quda::DiracCoarsePC.
Definition at line 199 of file dirac_coarse.cpp.
References quda::Dirac::deleteTmp(), errorQuda, in, M(), quda::Dirac::Mdag(), quda::Dirac::newTmp(), out, QUDA_FULL_SITE_SUBSET, quda::ColorSpinorField::SiteSubset(), and quda::Dirac::tmp1.

|
inlinevirtual |
Whether this instance did the allocation or not
Reimplemented from quda::Dirac.
Definition at line 764 of file dirac_quda.h.
References mu.
Referenced by initializeCoarse().

|
inlinevirtual |
Reimplemented from quda::Dirac.
Definition at line 765 of file dirac_quda.h.
References mu_factor.
Referenced by initializeCoarse().

|
virtual |
Implements quda::Dirac.
Reimplemented in quda::DiracCoarsePC.
Definition at line 210 of file dirac_coarse.cpp.
References b, errorQuda, QUDA_MATPC_SOLUTION, QUDA_MATPCDAG_MATPC_SOLUTION, src, and x.
|
virtual |
Implements quda::Dirac.
Reimplemented in quda::DiracCoarsePC.
Definition at line 222 of file dirac_coarse.cpp.
|
protected |
restrictor / prolongator defined here
Definition at line 746 of file dirac_quda.h.
Referenced by initializeCoarse().
|
protected |
Initialize the coarse gauge field
Definition at line 760 of file dirac_quda.h.
Referenced by Clover(), CloverInv(), Dslash(), quda::DiracCoarsePC::Dslash(), DslashXpay(), initializeCoarse(), and M().
|
protected |
Whether to enable this operator for the GPU
Definition at line 761 of file dirac_quda.h.
Referenced by ~DiracCoarse().
|
protected |
Definition at line 743 of file dirac_quda.h.
Referenced by createCoarseOp(), quda::DiracCoarsePC::createCoarseOp(), and Mu().
|
protected |
Definition at line 744 of file dirac_quda.h.
Referenced by createCoarseOp(), quda::DiracCoarsePC::createCoarseOp(), and MuFactor().
|
protected |
Definition at line 745 of file dirac_quda.h.
Referenced by initializeCoarse().
|
protected |
GPU copy of the coarse link field
Definition at line 754 of file dirac_quda.h.
Referenced by Clover(), createCoarseOp(), quda::DiracCoarsePC::createCoarseOp(), Dslash(), quda::DiracCoarsePC::Dslash(), DslashXpay(), initializeCoarse(), M(), and ~DiracCoarse().
|
protected |
CPU copy of the coarse link field
Definition at line 749 of file dirac_quda.h.
Referenced by Clover(), createCoarseOp(), quda::DiracCoarsePC::createCoarseOp(), Dslash(), quda::DiracCoarsePC::Dslash(), DslashXpay(), initializeCoarse(), M(), and ~DiracCoarse().
|
protected |
GPU copy of the coarse clover term
Definition at line 755 of file dirac_quda.h.
Referenced by CloverInv(), createCoarseOp(), quda::DiracCoarsePC::createCoarseOp(), initializeCoarse(), and ~DiracCoarse().
|
protected |
CPU copy of the coarse clover term
Definition at line 750 of file dirac_quda.h.
Referenced by CloverInv(), createCoarseOp(), quda::DiracCoarsePC::createCoarseOp(), initializeCoarse(), and ~DiracCoarse().
|
protected |
CPU copy of the preconditioned coarse link field
Definition at line 753 of file dirac_quda.h.
Referenced by Clover(), CloverInv(), createCoarseOp(), Dslash(), DslashXpay(), initializeCoarse(), M(), and ~DiracCoarse().
|
protected |
Parent Dirac operator
Definition at line 748 of file dirac_quda.h.
Referenced by Clover(), CloverInv(), createCoarseOp(), Dslash(), DslashXpay(), initializeCoarse(), M(), and ~DiracCoarse().
|
protected |
GPU copy of inverse coarse clover term
Definition at line 756 of file dirac_quda.h.
Referenced by quda::DiracCoarsePC::createCoarseOp(), quda::DiracCoarsePC::Dslash(), initializeCoarse(), and ~DiracCoarse().
|
protected |
CPU copy of the inverse coarse clover term
Definition at line 751 of file dirac_quda.h.
Referenced by quda::DiracCoarsePC::createCoarseOp(), quda::DiracCoarsePC::Dslash(), initializeCoarse(), and ~DiracCoarse().
1.8.14