mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-04 05:54:32 +00:00 
			
		
		
		
	Added scalar action phi^4
Check Norm2 output (Complex type assumption)
This commit is contained in:
		@@ -34,8 +34,21 @@ class FundamentalRep {
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
  template<class Field> 
 | 
			
		||||
  class EmptyRep {
 | 
			
		||||
  public:
 | 
			
		||||
    typedef Field LatticeField;
 | 
			
		||||
 | 
			
		||||
    explicit EmptyRep(GridBase* grid) {} //do nothing
 | 
			
		||||
    void update_representation(const LatticeField& Uin) {} // do nothing
 | 
			
		||||
    LatticeField RtoFundamentalProject(const LatticeField& in, Real scale = 1.0) const{}// do nothing
 | 
			
		||||
  };
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
typedef	 FundamentalRep<Nc> FundamentalRepresentation;
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,8 @@
 | 
			
		||||
#include <Grid/qcd/representations/adjoint.h>
 | 
			
		||||
#include <Grid/qcd/representations/two_index.h>
 | 
			
		||||
#include <Grid/qcd/representations/fundamental.h>
 | 
			
		||||
#include <Grid/qcd/action/scalar/scalarImpl.h>
 | 
			
		||||
 | 
			
		||||
#include <tuple>
 | 
			
		||||
#include <utility>
 | 
			
		||||
 | 
			
		||||
@@ -39,13 +41,17 @@ class Representations {
 | 
			
		||||
  int size() { return tuple_size; }
 | 
			
		||||
 | 
			
		||||
  // update the fields
 | 
			
		||||
  // fields in the main representation always the first in the list
 | 
			
		||||
  // get the field type
 | 
			
		||||
  typedef typename std::tuple_element<0,Representation_Fields>::type LatticeSourceField;
 | 
			
		||||
  
 | 
			
		||||
  template <std::size_t I = 0>
 | 
			
		||||
  inline typename std::enable_if<(I == tuple_size), void>::type update(
 | 
			
		||||
      LatticeGaugeField& U) {}
 | 
			
		||||
      LatticeSourceField& U) {}
 | 
			
		||||
 | 
			
		||||
  template <std::size_t I = 0>
 | 
			
		||||
  inline typename std::enable_if<(I < tuple_size), void>::type update(
 | 
			
		||||
      LatticeGaugeField& U) {
 | 
			
		||||
      LatticeSourceField& U) {
 | 
			
		||||
    std::get<I>(rep).update_representation(U);
 | 
			
		||||
    update<I + 1>(U);
 | 
			
		||||
  }
 | 
			
		||||
@@ -55,6 +61,7 @@ class Representations {
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef Representations<FundamentalRepresentation> NoHirep;
 | 
			
		||||
typedef Representations<EmptyRep<typename ScalarImplR::Field> > ScalarFields;
 | 
			
		||||
 | 
			
		||||
// Helper classes to access the elements
 | 
			
		||||
// Strips the first N parameters from the tuple
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user