37 template<
typename InVector_t>
45 #pragma omp parallel for
47 for(
auto j = 0; j <
m_dim; ++j) {
64 std::cout <<
"MicroCanonicalAverage.status()"
66 <<
"\tDim: " << this->
dim() <<
"\n"
67 <<
"\tShellWidth: " << this->
shellWidth() << std::endl;
70 __host__ __device__
int dim()
const {
return m_dim; }
80 template<
class VectorType>
81 __host__ __device__
void operator()(VectorType& res, VectorType
const& expVal)
const {
84 #pragma omp parallel for
86 for(
int j = 0; j <
m_dim; ++j) {
88 for(
auto id =
m_idMin[j];
id <=
m_idMax[j]; ++id) res[j] += expVal[
id];
Calculate the microcanonical averages with respect to a given sorted vector 'eigVal'.
Definition MicroCanonicalAverage.hpp:25
__host__ __device__ Vector_t< int > & dimShell()
Definition MicroCanonicalAverage.hpp:74
Vector_t< int > m_dimShell
Definition MicroCanonicalAverage.hpp:34
int m_dim
Definition MicroCanonicalAverage.hpp:30
__host__ __device__ Vector_t< double > & eigVal()
Definition MicroCanonicalAverage.hpp:77
__host__ __device__ Vector_t< double > const & eigVal() const
Definition MicroCanonicalAverage.hpp:78
Eigen::VectorX< T > Vector_t
Definition MicroCanonicalAverage.hpp:28
Vector_t< int > m_idMax
Definition MicroCanonicalAverage.hpp:33
__host__ __device__ int dimShell(int index) const
Definition MicroCanonicalAverage.hpp:73
__host__ __device__ void operator()(VectorType &res, VectorType const &expVal) const
Definition MicroCanonicalAverage.hpp:81
double m_shellWidth
Definition MicroCanonicalAverage.hpp:31
__host__ void status(void) const
Show the current status of the instance.
Definition MicroCanonicalAverage.hpp:63
Vector_t< double > m_eigVal
Definition MicroCanonicalAverage.hpp:32
__host__ __device__ Vector_t< int > const & dimShell() const
Definition MicroCanonicalAverage.hpp:75
__host__ __device__ int dim() const
Definition MicroCanonicalAverage.hpp:70
__host__ __device__ MicroCanonicalAverage(InVector_t const &eigVal, double const shellWidth)
Definition MicroCanonicalAverage.hpp:38
Vector_t< int > m_idMin
Definition MicroCanonicalAverage.hpp:33
__host__ __device__ double shellWidth() const
Definition MicroCanonicalAverage.hpp:71
__constant__ int size
Definition testEigenOnGPU.cu:4