diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/integrate.cc | 14 | ||||
-rw-r--r-- | src/integrate.hh | 3 |
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); |