Commit 4d523f70 authored by Cristian Lalescu's avatar Cristian Lalescu
Browse files

tweaks xincrement stats

add possibility to use outside field for temporary data, such that we
don't allocate and delete all the time
parent 4feaaf8b
......@@ -861,16 +861,20 @@ void field<rnumber, be, fc>::compute_rspace_xincrement_stats(
const hid_t group,
const std::string dset_name,
const hsize_t toffset,
const std::vector<double> max_estimate)
const std::vector<double> max_estimate,
field<rnumber, be, fc> *tmp_field)
{
TIMEZONE("field::compute_rspace_xincrement_stats");
assert(this->real_space_representation);
assert(fc == ONE || fc == THREE);
field<rnumber, be, fc> *tmp_field = new field<rnumber, be, fc>(
this->rlayout->sizes[2],
this->rlayout->sizes[1],
this->rlayout->sizes[0],
this->rlayout->comm);
bool own_field = false;
own_field = (tmp_field == NULL);
if (own_field)
tmp_field = new field<rnumber, be, fc>(
this->rlayout->sizes[2],
this->rlayout->sizes[1],
this->rlayout->sizes[0],
this->rlayout->comm);
tmp_field->real_space_representation = true;
this->RLOOP_simd(
[&](const ptrdiff_t rindex,
......@@ -890,7 +894,8 @@ void field<rnumber, be, fc>::compute_rspace_xincrement_stats(
dset_name,
toffset,
max_estimate);
delete tmp_field;
if (own_field)
delete tmp_field;
}
......
......@@ -129,7 +129,8 @@ class field
const hid_t group,
const std::string dset_name,
const hsize_t toffset,
const std::vector<double> max_estimate);
const std::vector<double> max_estimate,
field<rnumber, be, fc> *tmp_field = NULL);
void compute_rspace_stats(
const hid_t group,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment