-
Chichi Lalescu authoredChichi Lalescu authored
field_output_test.cpp 1.43 KiB
#include <string>
#include <cmath>
#include <random>
#include "field_output_test.hpp"
#include "scope_timer.hpp"
template <typename rnumber>
int field_output_test<rnumber>::initialize(void)
{
this->read_parameters();
return EXIT_SUCCESS;
}
template <typename rnumber>
int field_output_test<rnumber>::finalize(void)
{
return EXIT_SUCCESS;
}
template <typename rnumber>
int field_output_test<rnumber>::read_parameters()
{
this->test::read_parameters();
return EXIT_SUCCESS;
}
template <typename rnumber>
int field_output_test<rnumber>::do_work(void)
{
// allocate
field<rnumber, FFTW, ONE> *scal_field = new field<rnumber, FFTW, ONE>(
this->nx, this->ny, this->nz,
this->comm,
DEFAULT_FFTW_FLAG);
std::default_random_engine rgen;
std::normal_distribution<rnumber> rdist;
rgen.seed(1);
// fill up scal_field
scal_field->real_space_representation = true;
scal_field->RLOOP(
[&](ptrdiff_t rindex,
ptrdiff_t xindex,
ptrdiff_t yindex,
ptrdiff_t zindex){
scal_field->rval(rindex) = rdist(rgen);
});
scal_field->io(
this->simname + std::string("_fields.h5"),
"scal_field",
0,
false);
// deallocate
delete scal_field;
return EXIT_SUCCESS;
}
template class field_output_test<float>;
template class field_output_test<double>;