User: hinder Date: 2013/10/09 12:55 PM
Modified: /trunk/src/ integrate.cc, integrate.hh
Log: Add Midpoint2DIntegral as standalone function
File Changes:
Directory: /trunk/src/ ======================
File [modified]: integrate.cc Delta lines: +14 -0 =================================================================== --- trunk/src/integrate.cc 2013-10-09 17:55:22 UTC (rev 91) +++ trunk/src/integrate.cc 2013-10-09 17:55:39 UTC (rev 92) @@ -34,6 +34,20 @@
// 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;
File [modified]: integrate.hh Delta lines: +3 -0 =================================================================== --- trunk/src/integrate.hh 2013-10-09 17:55:22 UTC (rev 91) +++ trunk/src/integrate.hh 2013-10-09 17:55:39 UTC (rev 92) @@ -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);