diff options
author | hinder <hinder@4f5cb9a8-4dd8-4c2d-9bbd-173fa4467843> | 2013-10-09 17:55:39 +0000 |
---|---|---|
committer | hinder <hinder@4f5cb9a8-4dd8-4c2d-9bbd-173fa4467843> | 2013-10-09 17:55:39 +0000 |
commit | bdd9b3cbb564d4aa50ed9e52cf0fa626fde6e693 (patch) | |
tree | a0e3697113440275fb62d396ba9b125273ccbbc0 | |
parent | b94c3a5edf0c96000e85a4ffd8de673f9697848d (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.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); |