[Commits] [svn:einsteintoolkit] Multipole/trunk/src/ (Rev. 95)
ian.hinder at aei.mpg.de
ian.hinder at aei.mpg.de
Wed Oct 9 12:56:08 CDT 2013
User: hinder
Date: 2013/10/09 12:56 PM
Modified:
/trunk/src/
tests.cc
Log:
tests.cc: Refactor convergence test code
File Changes:
Directory: /trunk/src/
======================
File [modified]: tests.cc
Delta lines: +12 -9
===================================================================
--- trunk/src/tests.cc 2013-10-09 17:56:00 UTC (rev 94)
+++ trunk/src/tests.cc 2013-10-09 17:56:08 UTC (rev 95)
@@ -10,7 +10,7 @@
#include "utils.hh"
#include "integrate.hh"
-static CCTK_REAL test_simpson_integral(int n)
+static CCTK_REAL test_integral(int n, CCTK_REAL (*integration_fn) (const CCTK_REAL *, int, int, CCTK_REAL, CCTK_REAL))
{
const int nx = n;
const int ny = n;
@@ -35,27 +35,30 @@
}
}
- const CCTK_REAL result = Simpson2DIntegral(f, nx, ny, dx, dy);
+ const CCTK_REAL result = integration_fn(f, nx, ny, dx, dy);
delete [] f;
return result;
}
-
-void Multipole_TestSimpson(CCTK_ARGUMENTS)
+CCTK_REAL integration_convergence_order(CCTK_REAL (*integration_fn) (const CCTK_REAL *, int, int, CCTK_REAL, CCTK_REAL))
{
- DECLARE_CCTK_ARGUMENTS;
-
const int n1 = 100;
const int n2 = 200;
const CCTK_REAL PI = acos(-1.0);
- const CCTK_REAL result1 = test_simpson_integral(100);
- const CCTK_REAL result2 = test_simpson_integral(200);
+ const CCTK_REAL result1 = test_integral(100, integration_fn);
+ const CCTK_REAL result2 = test_integral(200, integration_fn);
const CCTK_REAL exact = 1./24 + 1./(64 * pow(PI,2));
const CCTK_REAL error1 = fabs(result1 - exact);
const CCTK_REAL error2 = fabs(result2 - exact);
- *test_simpson_convergence_order = log10(error1/error2) / log10((CCTK_REAL) n2/n1);
+ return log10(error1/error2) / log10((CCTK_REAL) n2/n1);
}
+void Multipole_TestSimpson(CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ *test_simpson_convergence_order = integration_convergence_order(&Simpson2DIntegral);
+}
+
// void Multipole_TestIntegrate(CCTK_ARGUMENTS)
// {
// const int n = 100;
More information about the Commits
mailing list