Skip to content
Snippets Groups Projects
Commit 0e8b820a authored by Cristian Lalescu's avatar Cristian Lalescu
Browse files

fix autocorrel

parent 1ccde824
No related branches found
No related tags found
No related merge requests found
......@@ -23,9 +23,9 @@
**********************************************************************/
// code is generally compiled via setuptools, therefore NDEBUG is present
//#ifdef NDEBUG
//#undef NDEBUG
//#endif//NDEBUG
#ifdef NDEBUG
#undef NDEBUG
#endif//NDEBUG
#include <cassert>
#include <cmath>
......@@ -49,23 +49,18 @@ void fluid_solver_base<rnumber>::clean_up_real_space(rnumber *a, int howmany)
}
template <class rnumber>
rnumber fluid_solver_base<rnumber>::autocorrel(cnumber *a)
double fluid_solver_base<rnumber>::autocorrel(cnumber *a)
{
double *spec = fftw_alloc_real(this->nshells*9);
double sum_local, sum;
double sum_local;
this->cospectrum(a, a, spec);
sum_local = 0.0;
for (int n = 0; n < this->nshells; n++)
for (int n = 0; n < this->nshells - 2; n++)
{
sum_local += spec[n*9] + spec[n*9 + 4] + spec[n*9 + 8];
}
fftw_free(spec);
MPI_Allreduce(
&sum_local,
&sum,
1,
MPI_DOUBLE,
MPI_SUM,
this->cd->comm);
return sum;
return sum_local;
}
template <class rnumber>
......
......@@ -89,7 +89,7 @@ class fluid_solver_base
void clean_up_real_space(rnumber *a, int howmany);
void cospectrum(cnumber *a, cnumber *b, double *spec);
void cospectrum(cnumber *a, cnumber *b, double *spec, const double k2exponent);
rnumber autocorrel(cnumber *a);
double autocorrel(cnumber *a);
void compute_rspace_stats(rnumber *a,
double *moments,
ptrdiff_t *hist,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment