CHROMA
|
Even odd Linear Operator (for staggered like things ) More...
#include <eo_linop.h>
Public Member Functions | |
virtual | ~EvenOddLinearOperator () |
Virtual destructor to help with cleanup;. More... | |
const Subset & | subset () const |
Only defined on the even lattice. More... | |
virtual const FermBC< T, P, Q > & | getFermBC () const =0 |
Return the fermion BC object for this linear operator. More... | |
virtual void | evenEvenLinOp (T &chi, const T &psi, enum PlusMinus isign) const =0 |
Apply the even-even block onto a source std::vector. More... | |
virtual void | evenOddLinOp (T &chi, const T &psi, enum PlusMinus isign) const =0 |
Apply the the even-odd block onto a source std::vector. More... | |
virtual void | oddEvenLinOp (T &chi, const T &psi, enum PlusMinus isign) const =0 |
Apply the the odd-even block onto a source std::vector. More... | |
virtual void | oddOddLinOp (T &chi, const T &psi, enum PlusMinus isign) const =0 |
Apply the the odd-odd block onto a source std::vector. More... | |
virtual void | operator() (T &chi, const T &psi, enum PlusMinus isign) const |
Apply the operator onto a source std::vector. More... | |
virtual void | derivEvenEvenLinOp (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const |
Apply the even-even block onto a source std::vector. More... | |
virtual void | derivEvenOddLinOp (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const |
Apply the the even-odd block onto a source std::vector. More... | |
virtual void | derivOddEvenLinOp (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const |
Apply the the odd-even block onto a source std::vector. More... | |
virtual void | derivOddOddLinOp (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const |
Apply the the odd-odd block onto a source std::vector. More... | |
virtual void | deriv (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const |
Apply the operator onto a source std::vector. More... | |
virtual unsigned long | evenEvenNFlops () const |
Return flops performed by the evenEvenLinOp. More... | |
virtual unsigned long | evenOddNFlops () const |
Return flops performed by the evenOddLinOp. More... | |
virtual unsigned long | oddEvenNFlops () const |
Return flops performed by the oddEvenLinOp. More... | |
virtual unsigned long | oddOddNFlops () const |
Return flops performed by the oddOddLinOp. More... | |
virtual unsigned long | nFlops () const |
Return flops performed by the operator() More... | |
Public Member Functions inherited from Chroma::DiffLinearOperator< T, P, Q > | |
virtual | ~DiffLinearOperator () |
Virtual destructor to help with cleanup;. More... | |
virtual void | deriv (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign, const Real &epsilon) const |
Apply the derivative of the operator onto a source std::vector to some precision. More... | |
virtual void | derivMultipole (P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const |
Return the force for multiple poles. More... | |
Public Member Functions inherited from Chroma::LinearOperator< T > | |
virtual | ~LinearOperator () |
Virtual destructor to help with cleanup;. More... | |
virtual void | operator() (T &chi, const T &psi, enum PlusMinus isign, Real epsilon) const |
Apply the operator onto a source std::vector to some precision. More... | |
Even odd Linear Operator (for staggered like things )
Support for even-odd staggered-like linear operators
[ D_ee D_eo ] [ D_oe D_oo ]
Usually D_ee = D_oo = 2m
Definition at line 27 of file eo_linop.h.
|
inlinevirtual |
Virtual destructor to help with cleanup;.
Definition at line 31 of file eo_linop.h.
|
inlinevirtual |
Apply the operator onto a source std::vector.
Reimplemented from Chroma::DiffLinearOperator< T, P, Q >.
Definition at line 116 of file eo_linop.h.
References Chroma::chi(), Chroma::EvenOddLinearOperator< T, P, Q >::derivEvenEvenLinOp(), Chroma::EvenOddLinearOperator< T, P, Q >::derivEvenOddLinOp(), Chroma::EvenOddLinearOperator< T, P, Q >::derivOddEvenLinOp(), Chroma::EvenOddLinearOperator< T, P, Q >::derivOddOddLinOp(), Chroma::EvenOddLinearOperator< T, P, Q >::getFermBC(), Chroma::isign, Chroma::psi, and tmp2.
|
inlinevirtual |
Apply the even-even block onto a source std::vector.
Definition at line 80 of file eo_linop.h.
Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::deriv().
|
inlinevirtual |
Apply the the even-odd block onto a source std::vector.
Definition at line 89 of file eo_linop.h.
Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::deriv().
|
inlinevirtual |
Apply the the odd-even block onto a source std::vector.
Definition at line 98 of file eo_linop.h.
Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::deriv().
|
inlinevirtual |
Apply the the odd-odd block onto a source std::vector.
Definition at line 107 of file eo_linop.h.
Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::deriv().
|
pure virtual |
Apply the even-even block onto a source std::vector.
Implemented in Chroma::AsqtadLinOp.
Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::operator()().
|
inlinevirtual |
Return flops performed by the evenEvenLinOp.
Definition at line 152 of file eo_linop.h.
Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::nFlops().
|
pure virtual |
Apply the the even-odd block onto a source std::vector.
Implemented in Chroma::AsqtadLinOp.
Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::operator()().
|
inlinevirtual |
Return flops performed by the evenOddLinOp.
Definition at line 155 of file eo_linop.h.
Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::nFlops().
|
pure virtual |
Return the fermion BC object for this linear operator.
Implements Chroma::DiffLinearOperator< T, P, Q >.
Implemented in Chroma::AsqtadLinOp.
Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::deriv(), and Chroma::EvenOddLinearOperator< T, P, Q >::operator()().
|
inlinevirtual |
Return flops performed by the operator()
Reimplemented from Chroma::LinearOperator< T >.
Reimplemented in Chroma::AsqtadLinOp.
Definition at line 165 of file eo_linop.h.
References Chroma::EvenOddLinearOperator< T, P, Q >::evenEvenNFlops(), Chroma::EvenOddLinearOperator< T, P, Q >::evenOddNFlops(), Chroma::EvenOddLinearOperator< T, P, Q >::oddEvenNFlops(), and Chroma::EvenOddLinearOperator< T, P, Q >::oddOddNFlops().
|
pure virtual |
Apply the the odd-even block onto a source std::vector.
Implemented in Chroma::AsqtadLinOp.
Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::operator()().
|
inlinevirtual |
Return flops performed by the oddEvenLinOp.
Definition at line 158 of file eo_linop.h.
Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::nFlops().
|
pure virtual |
Apply the the odd-odd block onto a source std::vector.
Implemented in Chroma::AsqtadLinOp.
Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::operator()().
|
inlinevirtual |
Return flops performed by the oddOddLinOp.
Definition at line 161 of file eo_linop.h.
Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::nFlops().
|
inlinevirtual |
Apply the operator onto a source std::vector.
User should make sure deriv routines do a resize
Implements Chroma::LinearOperator< T >.
Definition at line 57 of file eo_linop.h.
References Chroma::chi(), Chroma::EvenOddLinearOperator< T, P, Q >::evenEvenLinOp(), Chroma::EvenOddLinearOperator< T, P, Q >::evenOddLinOp(), Chroma::EvenOddLinearOperator< T, P, Q >::getFermBC(), Chroma::isign, Chroma::EvenOddLinearOperator< T, P, Q >::oddEvenLinOp(), Chroma::EvenOddLinearOperator< T, P, Q >::oddOddLinOp(), Chroma::psi, and tmp2.
|
inlinevirtual |
Only defined on the even lattice.
Implements Chroma::LinearOperator< T >.
Definition at line 34 of file eo_linop.h.