mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-09 21:50:45 +01:00
feat: MassTerm and ExponentiateClover merged into InstantiateClover
This commit is contained in:
parent
b36442e263
commit
86075fdd45
@ -204,14 +204,10 @@ public:
|
|||||||
typedef WilsonCloverHelpers<Impl> Helpers;
|
typedef WilsonCloverHelpers<Impl> Helpers;
|
||||||
typedef CompactWilsonCloverHelpers<Impl> CompactHelpers;
|
typedef CompactWilsonCloverHelpers<Impl> CompactHelpers;
|
||||||
|
|
||||||
static void MassTerm(CloverField& Clover, RealD diag_mass) {
|
static void InstantiateClover(CloverField& Clover, CloverField& CloverInv, RealD csw_t, RealD diag_mass) {
|
||||||
Clover += diag_mass;
|
Clover += diag_mass;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ExponentiateClover(CloverField& Clover, CloverField& CloverInv, RealD csw_t, RealD diag_mass) {
|
|
||||||
// Do nothing
|
|
||||||
}
|
|
||||||
|
|
||||||
static void InvertClover(CloverField& InvClover,
|
static void InvertClover(CloverField& InvClover,
|
||||||
const CloverDiagonalField& diagonal,
|
const CloverDiagonalField& diagonal,
|
||||||
const CloverTriangleField& triangle,
|
const CloverTriangleField& triangle,
|
||||||
@ -244,11 +240,6 @@ public:
|
|||||||
template <typename vtype> using iImplClover = iScalar<iMatrix<iMatrix<vtype, Impl::Dimension>, Ns>>;
|
template <typename vtype> using iImplClover = iScalar<iMatrix<iMatrix<vtype, Impl::Dimension>, Ns>>;
|
||||||
typedef CompactWilsonCloverHelpers<Impl> CompactHelpers;
|
typedef CompactWilsonCloverHelpers<Impl> CompactHelpers;
|
||||||
|
|
||||||
static void MassTerm(CloverField& Clover, RealD diag_mass) {
|
|
||||||
// do nothing!
|
|
||||||
// mass term is multiplied to exp(Clover) below
|
|
||||||
}
|
|
||||||
|
|
||||||
// Can this be avoided?
|
// Can this be avoided?
|
||||||
static void IdentityTimesC(const CloverField& in, RealD c) {
|
static void IdentityTimesC(const CloverField& in, RealD c) {
|
||||||
int DimRep = Impl::Dimension;
|
int DimRep = Impl::Dimension;
|
||||||
@ -277,7 +268,7 @@ public:
|
|||||||
static int getNMAX(Lattice<iImplClover<vComplexD>> &t, RealD R) {return getNMAX(1e-12,R);}
|
static int getNMAX(Lattice<iImplClover<vComplexD>> &t, RealD R) {return getNMAX(1e-12,R);}
|
||||||
static int getNMAX(Lattice<iImplClover<vComplexF>> &t, RealD R) {return getNMAX(1e-6,R);}
|
static int getNMAX(Lattice<iImplClover<vComplexF>> &t, RealD R) {return getNMAX(1e-6,R);}
|
||||||
|
|
||||||
static void ExponentiateClover(CloverField& Clover, CloverField& CloverInv, RealD csw_t, RealD diag_mass) {
|
static void InstantiateClover(CloverField& Clover, CloverField& CloverInv, RealD csw_t, RealD diag_mass) {
|
||||||
|
|
||||||
GridBase* grid = Clover.Grid();
|
GridBase* grid = Clover.Grid();
|
||||||
CloverField ExpClover(grid);
|
CloverField ExpClover(grid);
|
||||||
|
@ -325,14 +325,14 @@ void CompactWilsonCloverFermion<Impl, CloverHelpers>::ImportGauge(const GaugeFie
|
|||||||
TmpOriginal += Helpers::fillCloverXT(Ex) * csw_t;
|
TmpOriginal += Helpers::fillCloverXT(Ex) * csw_t;
|
||||||
TmpOriginal += Helpers::fillCloverYT(Ey) * csw_t;
|
TmpOriginal += Helpers::fillCloverYT(Ey) * csw_t;
|
||||||
TmpOriginal += Helpers::fillCloverZT(Ez) * csw_t;
|
TmpOriginal += Helpers::fillCloverZT(Ez) * csw_t;
|
||||||
// Handle mass term based on clover policy
|
|
||||||
CloverHelpers::MassTerm(TmpOriginal, this->diag_mass);
|
// Instantiate the clover term
|
||||||
|
// - In case of the standard clover the mass term is added
|
||||||
|
// - In case of the exponential clover the clover term is exponentiated
|
||||||
|
double t4 = usecond();
|
||||||
|
CloverHelpers::InstantiateClover(TmpOriginal, TmpInverse, csw_t, this->diag_mass);
|
||||||
|
|
||||||
// Convert the data layout of the clover term
|
// Convert the data layout of the clover term
|
||||||
double t4 = usecond();
|
|
||||||
CloverHelpers::ExponentiateClover(TmpOriginal, TmpInverse, csw_t, this->diag_mass);
|
|
||||||
|
|
||||||
// Exponentiate the clover (nothing happens in case of the standard clover)
|
|
||||||
double t5 = usecond();
|
double t5 = usecond();
|
||||||
CompactHelpers::ConvertLayout(TmpOriginal, Diagonal, Triangle);
|
CompactHelpers::ConvertLayout(TmpOriginal, Diagonal, Triangle);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user