1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-04-09 13:40:46 +01:00

Hadrons: Lanczos more conservative type names

This commit is contained in:
Antonin Portelli 2018-03-01 12:53:16 +00:00
parent 6ec42b4b82
commit b8b05f143f
2 changed files with 17 additions and 17 deletions

View File

@ -11,16 +11,13 @@ BEGIN_HADRONS_NAMESPACE
#define HADRONS_DEFAULT_LANCZOS_NBASIS 60 #define HADRONS_DEFAULT_LANCZOS_NBASIS 60
#endif #endif
template <typename FImpl, int nBasis>
using LCL = LocalCoherenceLanczos<typename FImpl::SiteSpinor,
typename FImpl::SiteComplex, nBasis>;
template <typename T> template <typename T>
struct EigenPack struct EigenPack
{ {
typedef T VectorType;
std::vector<RealD> eval; std::vector<RealD> eval;
std::vector<T> evec; std::vector<T> evec;
EigenPack(void) = default; EigenPack(void) = default;
EigenPack(const size_t size, GridBase *grid) EigenPack(const size_t size, GridBase *grid)
@ -81,7 +78,10 @@ template <typename FImpl>
using FineEigenPack = EigenPack<typename FImpl::FermionField>; using FineEigenPack = EigenPack<typename FImpl::FermionField>;
template <typename FImpl, int nBasis> template <typename FImpl, int nBasis>
using CoarseEigenPack = EigenPack<typename LCL<FImpl, nBasis>::CoarseField>; using CoarseEigenPack = EigenPack<
typename LocalCoherenceLanczos<typename FImpl::SiteSpinor,
typename FImpl::SiteComplex,
nBasis>::CoarseField>;
END_HADRONS_NAMESPACE END_HADRONS_NAMESPACE

View File

@ -60,9 +60,11 @@ class TLocalCoherenceLanczos: public Module<LocalCoherenceLanczosPar>
{ {
public: public:
FERM_TYPE_ALIASES(FImpl,); FERM_TYPE_ALIASES(FImpl,);
typedef LCL<FImpl, nBasis> LCL; typedef LocalCoherenceLanczos<typename FImpl::SiteSpinor,
typedef FineEigenPack<FImpl> FineEigenPack; typename FImpl::SiteComplex,
typedef CoarseEigenPack<FImpl, nBasis> CoarseEigenPack; nBasis> LCL;
typedef FineEigenPack<FImpl> FinePack;
typedef CoarseEigenPack<FImpl, nBasis> CoarsePack;
typedef HADRONS_DEFAULT_SCHUR_OP<FMat, FermionField> SchurFMat; typedef HADRONS_DEFAULT_SCHUR_OP<FMat, FermionField> SchurFMat;
public: public:
// constructor // constructor
@ -185,12 +187,10 @@ void TLocalCoherenceLanczos<FImpl, nBasis>::setup(void)
{ {
makeCoarseGrid(); makeCoarseGrid();
} }
envCreate(FineEigenPack, fineName_, Ls_, par().fineParams.Nm, envCreate(FinePack, fineName_, Ls_, par().fineParams.Nm, env().getRbGrid(Ls_));
env().getRbGrid(Ls_)); envCreate(CoarsePack, coarseName_, Ls_, par().coarseParams.Nm, coarseGridRb_.get());
envCreate(CoarseEigenPack, coarseName_, Ls_, par().coarseParams.Nm, auto &fine = envGet(FinePack, fineName_);
coarseGridRb_.get()); auto &coarse = envGet(CoarsePack, coarseName_);
auto &fine = envGet(FineEigenPack, fineName_);
auto &coarse = envGet(CoarseEigenPack, coarseName_);
envTmp(SchurFMat, "mat", Ls_, envGet(FMat, par().action)); envTmp(SchurFMat, "mat", Ls_, envGet(FMat, par().action));
envGetTmp(SchurFMat, mat); envGetTmp(SchurFMat, mat);
envTmp(LCL, "solver", Ls_, env().getRbGrid(Ls_), coarseGridRb_.get(), mat, envTmp(LCL, "solver", Ls_, env().getRbGrid(Ls_), coarseGridRb_.get(), mat,
@ -203,8 +203,8 @@ void TLocalCoherenceLanczos<FImpl, nBasis>::execute(void)
{ {
auto &finePar = par().fineParams; auto &finePar = par().fineParams;
auto &coarsePar = par().coarseParams; auto &coarsePar = par().coarseParams;
auto &fine = envGet(FineEigenPack, fineName_); auto &fine = envGet(FinePack, fineName_);
auto &coarse = envGet(CoarseEigenPack, coarseName_); auto &coarse = envGet(CoarsePack, coarseName_);
envGetTmp(LCL, solver); envGetTmp(LCL, solver);
if (par().doFine) if (par().doFine)