10 #ifndef _REGRESSION_H_ 11 #define _REGRESSION_H_ 13 #include "ParmParse.H" 15 #include "computeNorm.H" 17 #include "NamespaceHeader.H" 30 Vector<LevelData<FArrayBox>* > resultSoln;
31 Vector<string> resultVars;
32 Vector<DisjointBoxLayout> resultGrids;
34 Real resultDx, resultDt, resultTime;
35 Vector<int> resultRefRatio;
37 IntVect ghostVect = IntVect::Unit;
39 ReadAMRHierarchyHDF5(a_result,
51 Vector<LevelData<FArrayBox>* > refSoln;
52 Vector<string> refVars;
53 Vector<DisjointBoxLayout> refGrids;
55 Real refDx, refDt, refTime;
56 Vector<int> refRefRatio;
59 ReadAMRHierarchyHDF5(a_ref,
70 CH_assert (refDomain == resultDomain);
71 CH_assert (refNumLevels == resultNumLevels);
74 for (
int j = 0; j < resultSoln[0]->nComp() ; j++)
77 while (k < refVars.size() && resultVars[j] != refVars[k])
82 if ( k >= refVars.size() )
84 std::string msg =
" var " + resultVars[j] +
" missing from " + a_ref;
85 MayDay::Warning(msg.c_str());
89 for (
int lev = 0; lev < resultNumLevels; lev++)
91 LevelData<FArrayBox> ref(resultGrids[lev], 1, IntVect::Zero);
92 refSoln[lev]->copyTo(Interval(k,k), ref, Interval(0,0));
93 for (DataIterator dit(resultGrids[lev]); dit.ok(); ++dit)
95 (*resultSoln[lev])[dit].minus(ref[dit], 0, j, 1);
99 Real maxnormj = computeNorm(resultSoln, resultRefRatio, resultDx, Interval(j,j), 0);
100 pout() <<
"HDF5NormTest: maxnorm difference(" << resultVars[j] <<
") = " << maxnormj << endl;
101 maxnorm = std::max(maxnorm, maxnormj);
111 #include "NamespaceFooter.H" Real HDF5NormTest(std::string a_result, std::string a_ref)
Compute the maximum difference between (a subset of) the AMR data stored in two HDF5 fiels...
Definition: Regression.H:27