1#ifndef PRDC_CPU_C_FIELD_COMPARISON_TPP
2#define PRDC_CPU_C_FIELD_COMPARISON_TPP
11#include "CFieldComparison.h"
12#include <prdc/cpu/CField.h>
13#include <util/containers/DArray.h>
39 double diffSq, diff, d0, d1;
42 for (
int i = 0; i < n; ++i) {
43 d0 = a[i][0] - b[i][0];
44 d1 = a[i][1] - b[i][1];
45 diffSq = d0*d0 + d1*d1;
47 if (std::isnan(diff)) {
53 }
else if (diff > maxDiff_) {
62 rmsDiff_ = rmsDiff_/double(n);
63 rmsDiff_ = sqrt(rmsDiff_);
78 double diffSq, diff, d0, d1;
82 for (i = 0; i < m; ++i) {
86 for (j = 0; j < n; ++j) {
87 d0 = a[i][j][0] - b[i][j][0];
88 d1 = a[i][j][1] - b[i][j][1];
89 diffSq = d0*d0 + d1*d1;
91 if (std::isnan(diff)) {
97 }
else if (diff > maxDiff_) {
103 rmsDiff_ = rmsDiff_/double(m*n);
104 rmsDiff_ = sqrt(rmsDiff_);
double compare(CField< D > const &a, CField< D > const &b)
Compare individual fields.
CFieldComparison()
Default constructor.
Field of complex double precision values on an FFT mesh.
int capacity() const
Return allocated size.
Dynamically allocatable contiguous array template.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
Fields and FFTs for periodic boundary conditions (CPU)
Periodic fields and crystallography.
PSCF package top-level namespace.