1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-04-18 09:45:55 +01:00

Mixed precision for Laplace. Main program with Metric

This commit is contained in:
Chulwoo Jung 2024-02-08 17:13:10 -05:00
parent 026eb8a695
commit 9ad6836b0f
4 changed files with 148 additions and 145 deletions

View File

@ -148,6 +148,7 @@ public:
GaugeField& der , std::vector< std::vector<GaugeLinkField> >& prev_solns ) { GaugeField& der , std::vector< std::vector<GaugeLinkField> >& prev_solns ) {
// get rid of this please // get rid of this please
std::cout<<GridLogMessage << "LaplaceStart " <<std::endl;
RealD fac = - 1. / (double(4 * Nd)) ; RealD fac = - 1. / (double(4 * Nd)) ;
RealD coef=0.5; RealD coef=0.5;
LapStencil.GaugeImport(Usav); LapStencil.GaugeImport(Usav);
@ -257,7 +258,7 @@ for (int nu=0;nu<Nd;nu++){
} }
} }
std::cout<<GridLogMessage << "LaplaceEnd " <<std::endl;
// exit(-42); // exit(-42);
} }
@ -283,6 +284,7 @@ for (int nu=0;nu<Nd;nu++){
void MSquareRootInt(LaplacianRatParams &par, GaugeField& P, std::vector< std::vector<GaugeLinkField> > & prev_solns ){ void MSquareRootInt(LaplacianRatParams &par, GaugeField& P, std::vector< std::vector<GaugeLinkField> > & prev_solns ){
std::cout<<GridLogMessage << "LaplaceStart " <<std::endl;
RealD fac = -1. / (double(4 * Nd)); RealD fac = -1. / (double(4 * Nd));
LapStencil.GaugeImport(Usav); LapStencil.GaugeImport(Usav);
LapStencilF.GaugeImport(UsavF); LapStencilF.GaugeImport(UsavF);
@ -322,6 +324,7 @@ for(int nu=0; nu<Nd;nu++){
} }
PokeIndex<LorentzIndex>(P, Gp, nu); PokeIndex<LorentzIndex>(P, Gp, nu);
} }
std::cout<<GridLogMessage << "LaplaceEnd " <<std::endl;
} }
void MSquareRoot(GaugeField& P){ void MSquareRoot(GaugeField& P){

View File

@ -36,7 +36,7 @@ directory
#endif #endif
// second level EOFA // second level EOFA
#undef EOFA_H #undef EOFA_H
#define USE_OBC #undef USE_OBC
#define DO_IMPLICIT #define DO_IMPLICIT
NAMESPACE_BEGIN(Grid); NAMESPACE_BEGIN(Grid);
@ -203,9 +203,9 @@ int main(int argc, char **argv) {
HMCparams.MD.name =std::string("ImplicitMinimumNorm2"); HMCparams.MD.name =std::string("ImplicitMinimumNorm2");
#else #else
// typedef GenericHMCRunner<LeapFrog> HMCWrapper; // typedef GenericHMCRunner<LeapFrog> HMCWrapper;
// typedef GenericHMCRunner<ForceGradient> HMCWrapper; typedef GenericHMCRunner<ForceGradient> HMCWrapper;
typedef GenericHMCRunner<MinimumNorm2> HMCWrapper; // typedef GenericHMCRunner<MinimumNorm2> HMCWrapper;
HMCparams.MD.name =std::string("MinimumNorm2"); HMCparams.MD.name =std::string("ForceGradient");
#endif #endif
std::cout << GridLogMessage<< HMCparams <<std::endl; std::cout << GridLogMessage<< HMCparams <<std::endl;
@ -344,7 +344,7 @@ int main(int argc, char **argv) {
ConjugateGradient<FermionField> ActionCG(ActionStoppingCondition,MaxCGIterations); ConjugateGradient<FermionField> ActionCG(ActionStoppingCondition,MaxCGIterations);
ConjugateGradient<FermionField> DerivativeCG(DerivativeStoppingCondition,MaxCGIterations); ConjugateGradient<FermionField> DerivativeCG(DerivativeStoppingCondition,MaxCGIterations);
#ifdef MIXED_PRECISION #ifdef MIXED_PRECISION
const int MX_inner = 5000; const int MX_inner = 50000;
// Mixed precision EOFA // Mixed precision EOFA
LinearOperatorEOFAD Strange_LinOp_L (Strange_Op_L); LinearOperatorEOFAD Strange_LinOp_L (Strange_Op_L);

View File

@ -83,7 +83,7 @@ int main(int argc, char **argv)
// need wrappers of the fermionic classes // need wrappers of the fermionic classes
// that have a complex construction // that have a complex construction
// standard // standard
RealD beta = 6.4 ; RealD beta = 6.6 ;
#if 0 #if 0
WilsonGaugeActionR Waction(beta); WilsonGaugeActionR Waction(beta);

View File

@ -30,7 +30,7 @@ directory
/* END LEGAL */ /* END LEGAL */
#include <Grid/Grid.h> #include <Grid/Grid.h>
#define USE_OBC #undef USE_OBC
#define DO_IMPLICIT #define DO_IMPLICIT
@ -138,7 +138,7 @@ int main(int argc, char **argv)
// that have a complex construction // that have a complex construction
// standard // standard
RealD beta = 6.4; RealD beta = 6.6;
std::cout << "Wilson Gauge beta= " <<beta <<std::endl; std::cout << "Wilson Gauge beta= " <<beta <<std::endl;
#ifndef USE_OBC #ifndef USE_OBC
WilsonGaugeActionR Waction(beta); WilsonGaugeActionR Waction(beta);