mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-10 07:55:35 +00:00
minor scalar HMC code improvement
This commit is contained in:
parent
d2e8372df3
commit
0af740dc15
@ -93,6 +93,8 @@ class ScalarImplTypes {
|
|||||||
class ScalarAdjMatrixImplTypes {
|
class ScalarAdjMatrixImplTypes {
|
||||||
public:
|
public:
|
||||||
typedef S Simd;
|
typedef S Simd;
|
||||||
|
typedef QCD::SU<N> Group;
|
||||||
|
|
||||||
template <typename vtype>
|
template <typename vtype>
|
||||||
using iImplField = iScalar<iScalar<iMatrix<vtype, N>>>;
|
using iImplField = iScalar<iScalar<iMatrix<vtype, N>>>;
|
||||||
template <typename vtype>
|
template <typename vtype>
|
||||||
@ -108,7 +110,7 @@ class ScalarImplTypes {
|
|||||||
typedef Field PropagatorField;
|
typedef Field PropagatorField;
|
||||||
|
|
||||||
static inline void generate_momenta(Field& P, GridParallelRNG& pRNG) {
|
static inline void generate_momenta(Field& P, GridParallelRNG& pRNG) {
|
||||||
QCD::SU<N>::GaussianFundamentalLieAlgebraMatrix(pRNG, P);
|
Group::GaussianFundamentalLieAlgebraMatrix(pRNG, P);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline Field projectForce(Field& P) {return P;}
|
static inline Field projectForce(Field& P) {return P;}
|
||||||
@ -122,11 +124,11 @@ class ScalarImplTypes {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline void HotConfiguration(GridParallelRNG &pRNG, Field &U) {
|
static inline void HotConfiguration(GridParallelRNG &pRNG, Field &U) {
|
||||||
QCD::SU<N>::LieRandomize(pRNG, U);
|
Group::LieRandomize(pRNG, U);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void TepidConfiguration(GridParallelRNG &pRNG, Field &U) {
|
static inline void TepidConfiguration(GridParallelRNG &pRNG, Field &U) {
|
||||||
QCD::SU<N>::LieRandomize(pRNG, U, 0.01);
|
Group::LieRandomize(pRNG, U, 0.01);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void ColdConfiguration(GridParallelRNG &pRNG, Field &U) {
|
static inline void ColdConfiguration(GridParallelRNG &pRNG, Field &U) {
|
||||||
|
@ -98,7 +98,7 @@ namespace Grid {
|
|||||||
permute(temp2, *temp, permute_type);
|
permute(temp2, *temp, permute_type);
|
||||||
action._odata[i] -= temp2*(*t_p) + (*t_p)*temp2;
|
action._odata[i] -= temp2*(*t_p) + (*t_p)*temp2;
|
||||||
} else {
|
} else {
|
||||||
action._odata[i] -= *temp*(*t_p) + (*t_p)*(*temp);
|
action._odata[i] -= (*temp)*(*t_p) + (*t_p)*(*temp);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
action._odata[i] -= phiStencil.CommBuf()[SE->_offset]*(*t_p) + (*t_p)*phiStencil.CommBuf()[SE->_offset];
|
action._odata[i] -= phiStencil.CommBuf()[SE->_offset]*(*t_p) + (*t_p)*phiStencil.CommBuf()[SE->_offset];
|
||||||
|
@ -76,7 +76,7 @@ struct HMCparameters: Serializable {
|
|||||||
|
|
||||||
template < class ReaderClass >
|
template < class ReaderClass >
|
||||||
void initialize(Reader<ReaderClass> &TheReader){
|
void initialize(Reader<ReaderClass> &TheReader){
|
||||||
std::cout << "Reading HMC\n";
|
std::cout << GridLogMessage << "Reading HMC\n";
|
||||||
read(TheReader, "HMC", *this);
|
read(TheReader, "HMC", *this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -253,6 +253,7 @@ class HMCResourceManager {
|
|||||||
template<class T, class... Types>
|
template<class T, class... Types>
|
||||||
void AddObservable(Types&&... Args){
|
void AddObservable(Types&&... Args){
|
||||||
ObservablesList.push_back(std::unique_ptr<T>(new T(std::forward<Types>(Args)...)));
|
ObservablesList.push_back(std::unique_ptr<T>(new T(std::forward<Types>(Args)...)));
|
||||||
|
ObservablesList.back()->print_parameters();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<HmcObservable<typename ImplementationPolicy::Field>* > GetObservables(){
|
std::vector<HmcObservable<typename ImplementationPolicy::Field>* > GetObservables(){
|
||||||
@ -297,4 +298,4 @@ private:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // HMC_RESOURCE_MANAGER_H
|
#endif // HMC_RESOURCE_MANAGER_H
|
||||||
|
Loading…
Reference in New Issue
Block a user