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:
parent
026eb8a695
commit
9ad6836b0f
@ -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){
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user