aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhinder <hinder@4f5cb9a8-4dd8-4c2d-9bbd-173fa4467843>2013-10-09 17:55:39 +0000
committerhinder <hinder@4f5cb9a8-4dd8-4c2d-9bbd-173fa4467843>2013-10-09 17:55:39 +0000
commitbdd9b3cbb564d4aa50ed9e52cf0fa626fde6e693 (patch)
treea0e3697113440275fb62d396ba9b125273ccbbc0
parentb94c3a5edf0c96000e85a4ffd8de673f9697848d (diff)
Add Midpoint2DIntegral as standalone function
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/Multipole/trunk@92 4f5cb9a8-4dd8-4c2d-9bbd-173fa4467843
-rw-r--r--src/integrate.cc14
-rw-r--r--src/integrate.hh3
2 files changed, 17 insertions, 0 deletions
diff --git a/src/integrate.cc b/src/integrate.cc
index 1a9f44b..90a27d9 100644
--- a/src/integrate.cc
+++ b/src/integrate.cc
@@ -34,6 +34,20 @@ the integral.
// Hard coded 2D integrals
+CCTK_REAL Midpoint2DIntegral(CCTK_REAL const *f, int nx, int ny, CCTK_REAL hx, CCTK_REAL hy)
+{
+ CCTK_REAL integrand_sum = 0.0;
+ int ix = 0, iy = 0;
+
+ assert(nx > 0); assert(ny > 0); assert (f);
+
+ for (iy = 0; iy <= ny; iy++)
+ for (ix = 0; ix <= nx; ix++)
+ integrand_sum += f[idx(ix,iy)];
+
+ return hx * hy * integrand_sum;
+}
+
static CCTK_REAL Trapezoidal2DIntegral(CCTK_REAL const *f, int nx, int ny, CCTK_REAL hx, CCTK_REAL hy)
{
CCTK_REAL integrand_sum = 0.0;
diff --git a/src/integrate.hh b/src/integrate.hh
index 5bcd43f..168fd2f 100644
--- a/src/integrate.hh
+++ b/src/integrate.hh
@@ -3,6 +3,9 @@
#define __integrate_h
#include "cctk.h"
+CCTK_REAL Midpoint2DIntegral(CCTK_REAL const *f, int nx, int ny,
+ CCTK_REAL hx, CCTK_REAL hy);
+
CCTK_REAL Simpson2DIntegral(CCTK_REAL const *f, int nx, int ny,
CCTK_REAL hx, CCTK_REAL hy);