Grid 0.7.0
Photon< GImpl > Class Template Reference

#include <Photon.h>

Public Types

typedef SiteGaugeLink::scalar_object ScalarSite
typedef ScalarSite::scalar_type ScalarComplex

Public Member Functions

 INHERIT_GIMPL_TYPES (GImpl)
 GRID_SERIALIZABLE_ENUM (Gauge, undef, feynman, 1, coulomb, 2, landau, 3)
 GRID_SERIALIZABLE_ENUM (ZmScheme, undef, qedL, 1, qedTL, 2)
 Photon (GridBase *grid, Gauge gauge, ZmScheme zmScheme, std::vector< Real > improvement)
 Photon (GridBase *grid, Gauge gauge, ZmScheme zmScheme)
virtual ~Photon (void)=default
void FreePropagator (const GaugeField &in, GaugeField &out)
void MomentumSpacePropagator (const GaugeField &in, GaugeField &out)
void StochasticWeight (GaugeLinkField &weight)
void StochasticField (GaugeField &out, GridParallelRNG &rng)
void StochasticField (GaugeField &out, GridParallelRNG &rng, const GaugeLinkField &weight)
void UnitField (GaugeField &out)

Private Member Functions

void makeSpatialNorm (LatticeInteger &spNrm)
void makeKHat (std::vector< GaugeLinkField > &khat)
void makeInvKHatSquared (GaugeLinkField &out)
void zmSub (GaugeLinkField &out)
void transverseProjectSpatial (GaugeField &out)
void gaugeTransform (GaugeField &out)

Private Attributes

GridBasegrid_
Gauge gauge_
ZmScheme zmScheme_
std::vector< Realimprovement_

Detailed Description

template<class GImpl>
class Photon< GImpl >

Definition at line 58 of file Photon.h.

Member Typedef Documentation

◆ ScalarSite

template<class GImpl>
typedef SiteGaugeLink::scalar_object Photon< GImpl >::ScalarSite

Definition at line 62 of file Photon.h.

◆ ScalarComplex

template<class GImpl>
typedef ScalarSite::scalar_type Photon< GImpl >::ScalarComplex

Definition at line 63 of file Photon.h.

Constructor & Destructor Documentation

◆ Photon() [1/2]

template<class GImpl>
Photon< GImpl >::Photon ( GridBase * grid,
Gauge gauge,
ZmScheme zmScheme,
std::vector< Real > improvement )

Definition at line 94 of file Photon.h.

References gauge_, grid_, improvement_, and zmScheme_.

Referenced by Photon().

◆ Photon() [2/2]

template<class GImpl>
Photon< GImpl >::Photon ( GridBase * grid,
Gauge gauge,
ZmScheme zmScheme )

Definition at line 100 of file Photon.h.

References Photon().

◆ ~Photon()

template<class GImpl>
virtual Photon< GImpl >::~Photon ( void )
virtualdefault

Member Function Documentation

◆ INHERIT_GIMPL_TYPES()

template<class GImpl>
Photon< GImpl >::INHERIT_GIMPL_TYPES ( GImpl )

◆ GRID_SERIALIZABLE_ENUM() [1/2]

template<class GImpl>
Photon< GImpl >::GRID_SERIALIZABLE_ENUM ( Gauge ,
undef ,
feynman ,
1 ,
coulomb ,
2 ,
landau ,
3  )

◆ GRID_SERIALIZABLE_ENUM() [2/2]

template<class GImpl>
Photon< GImpl >::GRID_SERIALIZABLE_ENUM ( ZmScheme ,
undef ,
qedL ,
1 ,
qedTL ,
2  )

◆ FreePropagator()

template<class GImpl>
void Photon< GImpl >::FreePropagator ( const GaugeField & in,
GaugeField & out )

Definition at line 105 of file Photon.h.

References FFT::backward, FFT::FFT_all_dim(), FFT::forward, grid_, and MomentumSpacePropagator().

◆ MomentumSpacePropagator()

template<class GImpl>
void Photon< GImpl >::MomentumSpacePropagator ( const GaugeField & in,
GaugeField & out )

Definition at line 258 of file Photon.h.

References grid_, makeInvKHatSquared(), and zmSub().

Referenced by FreePropagator().

◆ StochasticWeight()

template<class GImpl>
void Photon< GImpl >::StochasticWeight ( GaugeLinkField & weight)

Definition at line 270 of file Photon.h.

References grid_, makeInvKHatSquared(), sqrt(), and zmSub().

Referenced by StochasticField().

◆ StochasticField() [1/2]

template<class GImpl>
void Photon< GImpl >::StochasticField ( GaugeField & out,
GridParallelRNG & rng )

Definition at line 286 of file Photon.h.

References grid_, StochasticField(), and StochasticWeight().

Referenced by StochasticField().

◆ StochasticField() [2/2]

template<class GImpl>
void Photon< GImpl >::StochasticField ( GaugeField & out,
GridParallelRNG & rng,
const GaugeLinkField & weight )

◆ UnitField()

template<class GImpl>
void Photon< GImpl >::UnitField ( GaugeField & out)

Definition at line 315 of file Photon.h.

References grid_, pokeLorentz(), and real().

◆ makeSpatialNorm()

template<class GImpl>
void Photon< GImpl >::makeSpatialNorm ( LatticeInteger & spNrm)
private

Definition at line 117 of file Photon.h.

References grid_, and LatticeCoordinate().

Referenced by transverseProjectSpatial(), and zmSub().

◆ makeKHat()

template<class GImpl>
void Photon< GImpl >::makeKHat ( std::vector< GaugeLinkField > & khat)
private

Definition at line 132 of file Photon.h.

References exp(), grid_, LatticeCoordinate(), M_PI, and sin().

Referenced by makeInvKHatSquared(), and transverseProjectSpatial().

◆ makeInvKHatSquared()

template<class GImpl>
void Photon< GImpl >::makeInvKHatSquared ( GaugeLinkField & out)
private

Definition at line 149 of file Photon.h.

References conjugate(), grid_, makeKHat(), one, and pokeSite().

Referenced by MomentumSpacePropagator(), and StochasticWeight().

◆ zmSub()

template<class GImpl>
void Photon< GImpl >::zmSub ( GaugeLinkField & out)
private

Definition at line 170 of file Photon.h.

References grid_, improvement_, makeSpatialNorm(), pokeSite(), sqrt(), and zmScheme_.

Referenced by MomentumSpacePropagator(), and StochasticWeight().

◆ transverseProjectSpatial()

template<class GImpl>
void Photon< GImpl >::transverseProjectSpatial ( GaugeField & out)
private

Definition at line 202 of file Photon.h.

References conjugate(), grid_, makeKHat(), makeSpatialNorm(), peekLorentz(), and pokeLorentz().

Referenced by gaugeTransform().

◆ gaugeTransform()

template<class GImpl>
void Photon< GImpl >::gaugeTransform ( GaugeField & out)
private

Definition at line 239 of file Photon.h.

References gauge_, and transverseProjectSpatial().

Referenced by StochasticField().

Field Documentation

◆ grid_

◆ gauge_

template<class GImpl>
Gauge Photon< GImpl >::gauge_
private

Definition at line 86 of file Photon.h.

Referenced by gaugeTransform(), and Photon().

◆ zmScheme_

template<class GImpl>
ZmScheme Photon< GImpl >::zmScheme_
private

Definition at line 87 of file Photon.h.

Referenced by Photon(), and zmSub().

◆ improvement_

template<class GImpl>
std::vector<Real> Photon< GImpl >::improvement_
private

Definition at line 88 of file Photon.h.

Referenced by Photon(), and zmSub().


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