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

Differentiable Linear Operator. More...

#include <linearop.h>

Inheritance diagram for Chroma::DiffLinearOperator< T, P, Q >:
Chroma::LinearOperator< T > Chroma::DslashLinearOperator< T, multi1d< U >, multi1d< U > > Chroma::DiffMdagLinOp< T, P, Q > Chroma::DiffMdagMLinOp< T, P, Q > Chroma::DslashLinearOperator< T, P, Q > Chroma::EvenOddLinearOperator< T, P, Q > Chroma::EvenOddPrecLinearOperator< T, P, Q > Chroma::EvenOddTimePrecLinearOperator< T, P, Q > Chroma::PolyLinearOperator< T, P, Q > Chroma::PolyPrec< T, P, Q > Chroma::SymEvenOddPrecLinearOperator< T, P, Q > Chroma::TimePrecLinearOperator< T, P, Q > Chroma::TwistedShiftedLinOp< T, P, Q, LinOp > Chroma::TwistedShiftedLinOp< T, P, Q, EvenOddPrecLinearOperator > Chroma::TwistedShiftedLinOp< T, P, Q, SymEvenOddPrecLogDetLinearOperator > Chroma::UnprecLinearOperator< T, P, Q >

Public Member Functions

virtual ~DiffLinearOperator ()
 Virtual destructor to help with cleanup;. More...
 
virtual const FermBC< T, P, Q > & getFermBC () const =0
 Return the fermion BC object for this linear operator. More...
 
virtual void deriv (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
 Apply the derivative of the operator onto a source std::vector. 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) const =0
 Apply the operator onto a source std::vector. 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...
 
virtual const Subset & subset () const =0
 Return the subset on which the operator acts. More...
 
virtual unsigned long nFlops () const
 

Detailed Description

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

Differentiable Linear Operator.

Supports creation and application for linear operators that hold things like Dirac operators, etc. that are differentiable

Definition at line 97 of file linearop.h.

Constructor & Destructor Documentation

◆ ~DiffLinearOperator()

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

Virtual destructor to help with cleanup;.

Definition at line 101 of file linearop.h.

Member Function Documentation

◆ deriv() [1/2]

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

Apply the derivative of the operator onto a source std::vector.

Default implementation

Reimplemented in Chroma::TwistedShiftedLinOp< T, P, Q, EvenOddPrecLinearOperator >, Chroma::TwistedShiftedLinOp< T, P, Q, SymEvenOddPrecLogDetLinearOperator >, Chroma::lpoly< T, P, Q >, Chroma::PolyPrec< T, P, Q >, Chroma::SymEvenOddPrecCloverLinOp, Chroma::TimePrecLinearOperator< T, P, Q >, Chroma::EvenOddTimePrecLinearOperator< T, P, Q >, Chroma::EvenOddPrecLinearOperator< T, P, Q >, Chroma::TimePrecLogDetLinearOperator< T, P, Q >, Chroma::EvenOddTimePrecLogDetLinearOperator< T, P, Q >, Chroma::SymEvenOddPrecLinearOperator< T, P, Q >, Chroma::DiffMdagMLinOp< T, P, Q >, Chroma::DslashLinearOperator< T, P, Q >, Chroma::DiffMdagLinOp< T, P, Q >, Chroma::EvenOddPrecLogDetLinearOperator< T, P, Q >, Chroma::EvenOddPrecConstDetLinearOperator< T, P, Q >, Chroma::EvenOddLinearOperator< T, P, Q >, Chroma::WilsonDslashBase< T, P, Q >, Chroma::WilsonDslashBase< LatticeFermionF, multi1d< LatticeColorMatrixF >, multi1d< LatticeColorMatrixF > >, Chroma::WilsonDslashBase< LatticeFermionD, multi1d< LatticeColorMatrixD >, multi1d< LatticeColorMatrixD > >, Chroma::KleinGordonLinOp, Chroma::DslashLinearOperator< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::EvenOddLinearOperator< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::EvenOddPrecLogDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::EvenOddPrecConstDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::UnprecWilsonLinOp, Chroma::UnprecW12LinOp, Chroma::UnprecParWilsonLinOp, Chroma::UnprecHamberWuLinOp, Chroma::UnprecGrapheneLinOp, Chroma::UnprecCloverLinOp, and Chroma::WilsonDslashBase< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.

Definition at line 108 of file linearop.h.

Referenced by Chroma::PrecConstDetTwoFlavorWilsonMultihasenCancelMonomial< T, P, Q, FAType, LOType >::dsdq(), and Chroma::PrecConstDetTwoFlavorRatioConvConvMultihasenWilsonTypeFermMonomial< T, P, Q, FAType, LOType >::dsdq().

◆ deriv() [2/2]

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

Apply the derivative of the operator onto a source std::vector to some precision.

Default implementation

Reimplemented in Chroma::DiffMdagMLinOp< T, P, Q >, and Chroma::DiffMdagLinOp< T, P, Q >.

Definition at line 118 of file linearop.h.

References chi, deriv(), Chroma::isign, and psi.

◆ derivMultipole()

template<typename T , typename P , typename Q >
virtual void Chroma::DiffLinearOperator< T, P, Q >::derivMultipole ( P ds_u,
const multi1d< T > &  chi,
const multi1d< T > &  psi,
enum PlusMinus  isign 
) const
inlinevirtual

◆ getFermBC()

template<typename T , typename P , typename Q >
virtual const FermBC<T,P,Q>& Chroma::DiffLinearOperator< T, P, Q >::getFermBC ( ) const
pure virtual

Return the fermion BC object for this linear operator.

Implemented in Chroma::SymEvenOddPrecLogDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::DslashLinearOperator< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::DslashLinearOperator< T, multi1d< U >, multi1d< U > >, Chroma::EvenOddPrecLogDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::EvenOddPrecConstDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::EvenOddLinearOperator< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::TwistedShiftedLinOp< T, P, Q, EvenOddPrecLinearOperator >, Chroma::TwistedShiftedLinOp< T, P, Q, SymEvenOddPrecLogDetLinearOperator >, Chroma::TimePrecLogDetLinearOperator< T, P, Q >, Chroma::TimePrecLinearOperator< T, P, Q >, Chroma::SymEvenOddPrecLogDetLinearOperator< T, P, Q >, Chroma::SymEvenOddPrecLinearOperator< T, P, Q >, Chroma::SymEvenOddPrecConstDetLinearOperator< T, P, Q >, Chroma::DslashLinearOperator< T, P, Q >, Chroma::EvenOddPrecLogDetLinearOperator< T, P, Q >, Chroma::EvenOddPrecLinearOperator< T, P, Q >, Chroma::EvenOddPrecConstDetLinearOperator< T, P, Q >, Chroma::EvenOddLinearOperator< T, P, Q >, Chroma::DiffMdagMLinOp< T, P, Q >, Chroma::DiffMdagLinOp< T, P, Q >, Chroma::UnprecWilsonLinOp, Chroma::UnprecW12LinOp, Chroma::UnprecParWilsonLinOp, Chroma::UnprecHamberWuLinOp, Chroma::UnprecGrapheneLinOp, Chroma::UnprecDWFTransfMdagMLinOp, Chroma::UnprecDWFTransfLinOp, Chroma::UnprecCloverLinOp, Chroma::EvenOddPrecWilsonLinOp, Chroma::SymEvenOddPrecCloverLinOp, Chroma::lpoly< T, P, Q >, Chroma::PolyPrec< T, P, Q >, Chroma::SSEWilsonDslash, Chroma::PABWilsonDslash, Chroma::CPPWilsonDslashF, Chroma::CPPWilsonDslashD, Chroma::QDPWilsonDslashT< T, P, Q >, Chroma::QDPWilsonDslashOptT< T, P, Q >, Chroma::LLVMWilsonDslashT< T, P, Q >, Chroma::lovlapms, Chroma::lovlap_double_pass, Chroma::lovddag, Chroma::lovddag_double_pass, Chroma::KleinGordonLinOp, Chroma::EvenOddPrecWilsonLinOp, Chroma::EvenOddPrecTwmLinOpArray, Chroma::EvenOddPrecSLRCLinOp, Chroma::EvenOddPrecSLICLinOp, Chroma::EvenOddPrecParWilsonLinOp, Chroma::EvenOddPrecCloverOrbifoldLinOp, Chroma::EvenOddPrecCloverLinOp, Chroma::EvenOddPrecCloverExtFieldLinOp, Chroma::SSEDCloverTerm, Chroma::QDPCloverTermT< T, U >, Chroma::PTXCloverTermT< T, U >, Chroma::NVVMCloverTermT< T, U >, Chroma::LLVMCloverTermT< T, U >, Chroma::BAGELCloverTerm, Chroma::AsqtadMdagM, Chroma::AsqtadLinOp, and Chroma::QDPStaggeredDslash.


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