CHROMA
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members

Concrete class for all gauge actions with simple boundary conditions. More...

#include <simple_fermbc.h>

Inheritance diagram for Chroma::SimpleFermBC< T, P, Q >:
Chroma::FermBC< T, P, Q > Chroma::BoundCond< P, Q >

Public Member Functions

 SimpleFermBC (const SimpleFermBCParams &p)
 Only full constructor. More...
 
 SimpleFermBC (const multi1d< int > &boundary_)
 Only full constructor. More...
 
 SimpleFermBC (const Handle< GaugeBC< P, Q > > &gbc_, const multi1d< int > &boundary_)
 Use both a Gauge BC and a boundary field. More...
 
 SimpleFermBC (const SimpleFermBC &a)
 Copy constructor. More...
 
 ~SimpleFermBC ()
 Destructor is automatic. More...
 
SimpleFermBCoperator= (const SimpleFermBC &a)
 Assignment. More...
 
void modify (Q &u) const
 Modify U fields in place. More...
 
void modifyF (T &psi) const
 Modify fermion fields in place. More...
 
void modifyF (T &psi, const Subset &s) const
 Modify fermion fields in place under a subset. More...
 
void modifyF (multi1d< T > &psi) const
 Modify fermion fields in place. More...
 
void modifyF (multi1d< T > &psi, const Subset &s) const
 Modify fermion fields in place under a subset. More...
 
void zero (P &ds_u) const
 Zero some gauge-like field in place on the masked links. More...
 
bool nontrivialP () const
 Says if there are non-trivial BC links. More...
 
- Public Member Functions inherited from Chroma::FermBC< T, P, Q >
virtual ~FermBC ()
 Virtual destructor to help with cleanup;. More...
 
- Public Member Functions inherited from Chroma::BoundCond< P, Q >
virtual ~BoundCond ()
 Virtual destructor to help with cleanup;. More...
 

Protected Member Functions

void init ()
 

Private Member Functions

 SimpleFermBC ()
 

Private Attributes

Handle< GaugeBC< P, Q > > gbc
 
multi1d< int > boundary
 
bool nontriv
 

Detailed Description

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

Concrete class for all gauge actions with simple boundary conditions.

Simple BC, where boundary array is multiplied on the links on the edge of the lattice

Definition at line 41 of file simple_fermbc.h.

Constructor & Destructor Documentation

◆ SimpleFermBC() [1/5]

template<class T , typename P , typename Q >
Chroma::SimpleFermBC< T, P, Q >::SimpleFermBC ( const SimpleFermBCParams p)
inline

Only full constructor.

Parameters
boundarymultiply links on edge of lattice by boundary

NOTE: there is no real reason this is of type int, could be more general like Complex

Definition at line 51 of file simple_fermbc.h.

References Chroma::SimpleFermBC< T, P, Q >::init().

◆ SimpleFermBC() [2/5]

template<class T , typename P , typename Q >
Chroma::SimpleFermBC< T, P, Q >::SimpleFermBC ( const multi1d< int > &  boundary_)
inline

Only full constructor.

Parameters
boundarymultiply links on edge of lattice by boundary

NOTE: there is no real reason this is of type int, could be more general like Complex

Definition at line 62 of file simple_fermbc.h.

References Chroma::SimpleFermBC< T, P, Q >::init().

◆ SimpleFermBC() [3/5]

template<class T , typename P , typename Q >
Chroma::SimpleFermBC< T, P, Q >::SimpleFermBC ( const Handle< GaugeBC< P, Q > > &  gbc_,
const multi1d< int > &  boundary_ 
)
inline

Use both a Gauge BC and a boundary field.

Parameters
gbcA generic gaugebc
boundarymultiply links on edge of lattice by boundary

Definition at line 71 of file simple_fermbc.h.

References Chroma::SimpleFermBC< T, P, Q >::init().

◆ SimpleFermBC() [4/5]

template<class T , typename P , typename Q >
Chroma::SimpleFermBC< T, P, Q >::SimpleFermBC ( const SimpleFermBC< T, P, Q > &  a)
inline

Copy constructor.

Definition at line 76 of file simple_fermbc.h.

◆ ~SimpleFermBC()

template<class T , typename P , typename Q >
Chroma::SimpleFermBC< T, P, Q >::~SimpleFermBC ( )
inline

Destructor is automatic.

Definition at line 80 of file simple_fermbc.h.

◆ SimpleFermBC() [5/5]

template<class T , typename P , typename Q >
Chroma::SimpleFermBC< T, P, Q >::SimpleFermBC ( )
inlineprivate

Definition at line 133 of file simple_fermbc.h.

Member Function Documentation

◆ init()

template<class T , typename P , typename Q >
void Chroma::SimpleFermBC< T, P, Q >::init ( )
inlineprotected

Definition at line 129 of file simple_fermbc.h.

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

◆ modify()

template<class T , typename P , typename Q >
void Chroma::SimpleFermBC< T, P, Q >::modify ( Q u) const
inlinevirtual

◆ modifyF() [1/4]

template<class T , typename P , typename Q >
void Chroma::SimpleFermBC< T, P, Q >::modifyF ( multi1d< T > &  psi) const
inlinevirtual

Modify fermion fields in place.

NOP

Implements Chroma::FermBC< T, P, Q >.

Definition at line 116 of file simple_fermbc.h.

◆ modifyF() [2/4]

template<class T , typename P , typename Q >
void Chroma::SimpleFermBC< T, P, Q >::modifyF ( multi1d< T > &  psi,
const Subset &  s 
) const
inlinevirtual

Modify fermion fields in place under a subset.

NOP

Implements Chroma::FermBC< T, P, Q >.

Definition at line 120 of file simple_fermbc.h.

◆ modifyF() [3/4]

template<class T , typename P , typename Q >
void Chroma::SimpleFermBC< T, P, Q >::modifyF ( T psi) const
inlinevirtual

Modify fermion fields in place.

NOP

Implements Chroma::FermBC< T, P, Q >.

Definition at line 108 of file simple_fermbc.h.

◆ modifyF() [4/4]

template<class T , typename P , typename Q >
void Chroma::SimpleFermBC< T, P, Q >::modifyF ( T psi,
const Subset &  s 
) const
inlinevirtual

Modify fermion fields in place under a subset.

NOP

Implements Chroma::FermBC< T, P, Q >.

Definition at line 112 of file simple_fermbc.h.

◆ nontrivialP()

template<class T , typename P , typename Q >
bool Chroma::SimpleFermBC< T, P, Q >::nontrivialP ( ) const
inlinevirtual

Says if there are non-trivial BC links.

Implements Chroma::FermBC< T, P, Q >.

Definition at line 126 of file simple_fermbc.h.

◆ operator=()

template<class T , typename P , typename Q >
SimpleFermBC& Chroma::SimpleFermBC< T, P, Q >::operator= ( const SimpleFermBC< T, P, Q > &  a)
inline

◆ zero()

template<class T , typename P , typename Q >
void Chroma::SimpleFermBC< T, P, Q >::zero ( P ds_u) const
inlinevirtual

Zero some gauge-like field in place on the masked links.

Implements Chroma::FermBC< T, P, Q >.

Definition at line 123 of file simple_fermbc.h.

Member Data Documentation

◆ boundary

template<class T , typename P , typename Q >
multi1d<int> Chroma::SimpleFermBC< T, P, Q >::boundary
private

◆ gbc

template<class T , typename P , typename Q >
Handle< GaugeBC<P,Q> > Chroma::SimpleFermBC< T, P, Q >::gbc
private

◆ nontriv

template<class T , typename P , typename Q >
bool Chroma::SimpleFermBC< T, P, Q >::nontriv
private

Definition at line 138 of file simple_fermbc.h.

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


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