1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-07-21 07:07:07 +01:00

hot start for sp2n

This commit is contained in:
Alessandro Lupo
2021-10-12 18:53:54 +01:00
parent b145fd4f5b
commit 0d6674e489
5 changed files with 222 additions and 77 deletions

View File

@@ -191,11 +191,26 @@ public:
static inline void HotConfiguration(GridParallelRNG &pRNG, Field &U)
{
Group::HotConfiguration(pRNG, U);
if (isSp2n == true)
{
const int nSp = Nrepresentation/2;
Sp<nSp>::HotConfiguration(pRNG, U);
} else
{
Group::HotConfiguration(pRNG, U);
}
}
static inline void TepidConfiguration(GridParallelRNG &pRNG, Field &U) {
Group::TepidConfiguration(pRNG, U);
static inline void TepidConfiguration(GridParallelRNG &pRNG, Field &U)
{
if (isSp2n == true)
{
const int nSp = Nrepresentation/2;
Sp<nSp>::TepidConfiguration(pRNG, U);
} else
{
Group::TepidConfiguration(pRNG, U);
}
}
@@ -212,47 +227,6 @@ public:
}
//sp2n... see sp2n.h
/*
static inline void generate_sp2n_momenta(Field &P, GridSerialRNG & sRNG, GridParallelRNG &pRNG)
{
const int nSp = Nrepresentation/2;
LinkField Pmu(P.Grid());
Pmu = Zero();
for (int mu = 0; mu < Nd; mu++) {
Sp<nSp>::GaussianFundamentalLieAlgebraMatrix(pRNG, Pmu);
RealD scale = ::sqrt(HMC_MOMENTUM_DENOMINATOR) ;
Pmu = Pmu*scale;
PokeIndex<LorentzIndex>(P, Pmu, mu);
}
}
static inline void update_sp2n_field(Field& P, Field& U, double ep){
autoView(U_v,U,AcceleratorWrite);
autoView(P_v,P,AcceleratorRead);
accelerator_for(ss, P.Grid()->oSites(),1,{
for (int mu = 0; mu < Nd; mu++) {
U_v[ss](mu) = ProjectOnSpGroup(Exponentiate(P_v[ss](mu), ep, Nexp) * U_v[ss](mu));
}
});
}
static inline void SpProject(Field &U) {
ProjectSp2n(U);
}
static inline void ColdSpConfiguration(GridParallelRNG &pRNG, Field &U) {
const int nSp = Nrepresentation/2;
Sp<nSp>::ColdConfiguration(pRNG, U);
}
*/
};