CHROMA
Public Types | Public Member Functions | Protected Member Functions | List of all members
Chroma::AVPSolver::AVPSolverInterface< U, T > Class Template Referenceabstract

#include <avp_inverter_interface.h>

Public Types

typedef U Gauge
 
typedef T Fermion
 

Public Member Functions

virtual int init (const int lattice[5], void *(*allocator)(size_t size), void(*deallocator)(void *))=0
 
virtual void fini (void)=0
 
virtual void loadGauge (const void *OuterGauge_U, const void *OuterGauge_V)=0
 
virtual void deleteGauge (void)=0
 
int cgSolver (multi1d< LatticeFermion > &solution, double M5, double m_f, const multi1d< LatticeFermion > &rhs, const multi1d< LatticeFermion > &x0, double rsd, int max_iter, double &out_eps, int &out_iter) const
 

Protected Member Functions

virtual FermionloadFermionRHS (const void *OuterFermion) const =0
 
virtual FermionloadFermionGuess (const void *OuterFermion) const =0
 
virtual FermionallocateFermion (void) const =0
 
virtual void saveFermionSolver (void *OuterFermion, Fermion *CGfermion) const =0
 
virtual void saveFermionOperator (void *OuterFermion, Fermion *CGfermion) const =0
 
virtual void deleteFermion (Fermion *ptr) const =0
 
virtual int cgInternal (Fermion *psi, double *out_eps, int *out_iter, double M, double m_f, const Fermion *x0, const Fermion *eta, double eps, int min_iter, int max_iter) const =0
 

Detailed Description

template<typename U, typename T>
class Chroma::AVPSolver::AVPSolverInterface< U, T >

Definition at line 75 of file avp_inverter_interface.h.

Member Typedef Documentation

◆ Fermion

template<typename U , typename T >
typedef T Chroma::AVPSolver::AVPSolverInterface< U, T >::Fermion

Definition at line 83 of file avp_inverter_interface.h.

◆ Gauge

template<typename U , typename T >
typedef U Chroma::AVPSolver::AVPSolverInterface< U, T >::Gauge

Definition at line 80 of file avp_inverter_interface.h.

Member Function Documentation

◆ allocateFermion()

template<typename U , typename T >
virtual Fermion* Chroma::AVPSolver::AVPSolverInterface< U, T >::allocateFermion ( void  ) const
protectedpure virtual

◆ cgInternal()

template<typename U , typename T >
virtual int Chroma::AVPSolver::AVPSolverInterface< U, T >::cgInternal ( Fermion psi,
double *  out_eps,
int *  out_iter,
double  M,
double  m_f,
const Fermion x0,
const Fermion eta,
double  eps,
int  min_iter,
int  max_iter 
) const
protectedpure virtual

◆ cgSolver()

template<typename U , typename T >
int Chroma::AVPSolver::AVPSolverInterface< U, T >::cgSolver ( multi1d< LatticeFermion > &  solution,
double  M5,
double  m_f,
const multi1d< LatticeFermion > &  rhs,
const multi1d< LatticeFermion > &  x0,
double  rsd,
int  max_iter,
double &  out_eps,
int &  out_iter 
) const
inline

Definition at line 135 of file avp_inverter_interface.h.

References Chroma::eta.

◆ deleteFermion()

template<typename U , typename T >
virtual void Chroma::AVPSolver::AVPSolverInterface< U, T >::deleteFermion ( Fermion ptr) const
protectedpure virtual

◆ deleteGauge()

template<typename U , typename T >
virtual void Chroma::AVPSolver::AVPSolverInterface< U, T >::deleteGauge ( void  )
pure virtual

◆ fini()

template<typename U , typename T >
virtual void Chroma::AVPSolver::AVPSolverInterface< U, T >::fini ( void  )
pure virtual

◆ init()

template<typename U , typename T >
virtual int Chroma::AVPSolver::AVPSolverInterface< U, T >::init ( const int  lattice[5],
void *(*)(size_t size)  allocator,
void(*)(void *)  deallocator 
)
pure virtual

◆ loadFermionGuess()

template<typename U , typename T >
virtual Fermion* Chroma::AVPSolver::AVPSolverInterface< U, T >::loadFermionGuess ( const void *  OuterFermion) const
protectedpure virtual

◆ loadFermionRHS()

template<typename U , typename T >
virtual Fermion* Chroma::AVPSolver::AVPSolverInterface< U, T >::loadFermionRHS ( const void *  OuterFermion) const
protectedpure virtual

◆ loadGauge()

template<typename U , typename T >
virtual void Chroma::AVPSolver::AVPSolverInterface< U, T >::loadGauge ( const void *  OuterGauge_U,
const void *  OuterGauge_V 
)
pure virtual

◆ saveFermionOperator()

template<typename U , typename T >
virtual void Chroma::AVPSolver::AVPSolverInterface< U, T >::saveFermionOperator ( void *  OuterFermion,
Fermion CGfermion 
) const
protectedpure virtual

◆ saveFermionSolver()

template<typename U , typename T >
virtual void Chroma::AVPSolver::AVPSolverInterface< U, T >::saveFermionSolver ( void *  OuterFermion,
Fermion CGfermion 
) const
protectedpure virtual

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