CHROMA
Public Member Functions | List of all members
Chroma::EvenOddLinearOperator< T, P, Q > Class Template Referenceabstract

Even odd Linear Operator (for staggered like things ) More...

#include <eo_linop.h>

Inheritance diagram for Chroma::EvenOddLinearOperator< T, P, Q >:
Chroma::DiffLinearOperator< T, P, Q > Chroma::LinearOperator< T >

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...
 

Detailed Description

template<typename T, typename P, typename Q>
class Chroma::EvenOddLinearOperator< T, P, Q >

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.

Constructor & Destructor Documentation

◆ ~EvenOddLinearOperator()

template<typename T , typename P , typename Q >
virtual Chroma::EvenOddLinearOperator< T, P, Q >::~EvenOddLinearOperator ( )
inlinevirtual

Virtual destructor to help with cleanup;.

Definition at line 31 of file eo_linop.h.

Member Function Documentation

◆ deriv()

template<typename T , typename P , typename Q >
virtual void Chroma::EvenOddLinearOperator< T, P, Q >::deriv ( P ds_u,
const T chi,
const T psi,
enum PlusMinus  isign 
) const
inlinevirtual

◆ derivEvenEvenLinOp()

template<typename T , typename P , typename Q >
virtual void Chroma::EvenOddLinearOperator< T, P, Q >::derivEvenEvenLinOp ( P ds_u,
const T chi,
const T psi,
enum PlusMinus  isign 
) const
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().

◆ derivEvenOddLinOp()

template<typename T , typename P , typename Q >
virtual void Chroma::EvenOddLinearOperator< T, P, Q >::derivEvenOddLinOp ( P ds_u,
const T chi,
const T psi,
enum PlusMinus  isign 
) const
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().

◆ derivOddEvenLinOp()

template<typename T , typename P , typename Q >
virtual void Chroma::EvenOddLinearOperator< T, P, Q >::derivOddEvenLinOp ( P ds_u,
const T chi,
const T psi,
enum PlusMinus  isign 
) const
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().

◆ derivOddOddLinOp()

template<typename T , typename P , typename Q >
virtual void Chroma::EvenOddLinearOperator< T, P, Q >::derivOddOddLinOp ( P ds_u,
const T chi,
const T psi,
enum PlusMinus  isign 
) const
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().

◆ evenEvenLinOp()

template<typename T , typename P , typename Q >
virtual void Chroma::EvenOddLinearOperator< T, P, Q >::evenEvenLinOp ( T chi,
const T psi,
enum PlusMinus  isign 
) const
pure virtual

Apply the even-even block onto a source std::vector.

Implemented in Chroma::AsqtadLinOp.

Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::operator()().

◆ evenEvenNFlops()

template<typename T , typename P , typename Q >
virtual unsigned long Chroma::EvenOddLinearOperator< T, P, Q >::evenEvenNFlops ( void  ) const
inlinevirtual

Return flops performed by the evenEvenLinOp.

Definition at line 152 of file eo_linop.h.

Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::nFlops().

◆ evenOddLinOp()

template<typename T , typename P , typename Q >
virtual void Chroma::EvenOddLinearOperator< T, P, Q >::evenOddLinOp ( T chi,
const T psi,
enum PlusMinus  isign 
) const
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()().

◆ evenOddNFlops()

template<typename T , typename P , typename Q >
virtual unsigned long Chroma::EvenOddLinearOperator< T, P, Q >::evenOddNFlops ( void  ) const
inlinevirtual

Return flops performed by the evenOddLinOp.

Definition at line 155 of file eo_linop.h.

Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::nFlops().

◆ getFermBC()

template<typename T , typename P , typename Q >
virtual const FermBC<T,P,Q>& Chroma::EvenOddLinearOperator< T, P, Q >::getFermBC ( ) const
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()().

◆ nFlops()

template<typename T , typename P , typename Q >
virtual unsigned long Chroma::EvenOddLinearOperator< T, P, Q >::nFlops ( void  ) const
inlinevirtual

◆ oddEvenLinOp()

template<typename T , typename P , typename Q >
virtual void Chroma::EvenOddLinearOperator< T, P, Q >::oddEvenLinOp ( T chi,
const T psi,
enum PlusMinus  isign 
) const
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()().

◆ oddEvenNFlops()

template<typename T , typename P , typename Q >
virtual unsigned long Chroma::EvenOddLinearOperator< T, P, Q >::oddEvenNFlops ( void  ) const
inlinevirtual

Return flops performed by the oddEvenLinOp.

Definition at line 158 of file eo_linop.h.

Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::nFlops().

◆ oddOddLinOp()

template<typename T , typename P , typename Q >
virtual void Chroma::EvenOddLinearOperator< T, P, Q >::oddOddLinOp ( T chi,
const T psi,
enum PlusMinus  isign 
) const
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()().

◆ oddOddNFlops()

template<typename T , typename P , typename Q >
virtual unsigned long Chroma::EvenOddLinearOperator< T, P, Q >::oddOddNFlops ( void  ) const
inlinevirtual

Return flops performed by the oddOddLinOp.

Definition at line 161 of file eo_linop.h.

Referenced by Chroma::EvenOddLinearOperator< T, P, Q >::nFlops().

◆ operator()()

template<typename T , typename P , typename Q >
virtual void Chroma::EvenOddLinearOperator< T, P, Q >::operator() ( T chi,
const T psi,
enum PlusMinus  isign 
) const
inlinevirtual

◆ subset()

template<typename T , typename P , typename Q >
const Subset& Chroma::EvenOddLinearOperator< T, P, Q >::subset ( void  ) const
inlinevirtual

Only defined on the even lattice.

Implements Chroma::LinearOperator< T >.

Definition at line 34 of file eo_linop.h.


The documentation for this class was generated from the following file: