From bdd9b3cbb564d4aa50ed9e52cf0fa626fde6e693 Mon Sep 17 00:00:00 2001 From: hinder Date: Wed, 9 Oct 2013 17:55:39 +0000 Subject: Add Midpoint2DIntegral as standalone function git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/Multipole/trunk@92 4f5cb9a8-4dd8-4c2d-9bbd-173fa4467843 --- src/integrate.cc | 14 ++++++++++++++ src/integrate.hh | 3 +++ 2 files changed, 17 insertions(+) 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); -- cgit v1.2.3