From df7264fcde1b43b3401eb62e64baa0b123fad205 Mon Sep 17 00:00:00 2001 From: James E McClure Date: Tue, 25 Aug 2015 14:40:12 -0400 Subject: [PATCH 1/2] Adding vertex count, edge count, and face count to the component averaging to compute the Euler number --- common/TwoPhase.h | 85 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 2 deletions(-) diff --git a/common/TwoPhase.h b/common/TwoPhase.h index 46fc0e82..c13fcd6b 100644 --- a/common/TwoPhase.h +++ b/common/TwoPhase.h @@ -13,7 +13,7 @@ #include "IO/Reader.h" #include "IO/Writer.h" -#define BLOB_AVG_COUNT 33 +#define BLOB_AVG_COUNT 36 // Array access for averages defined by the following #define VOL 0 @@ -49,6 +49,9 @@ #define CMX 30 #define CMY 31 #define CMZ 32 +#define NVERT 33 +#define NSIDE 34 +#define NFACE 35 class TwoPhase{ @@ -694,6 +697,80 @@ void TwoPhase::ComponentAverages(){ n_ws_pts, n_ws_tris, n_ns_tris, n_ns_pts, n_local_nws_pts, n_nws_pts, n_nws_seg, i, j, k, Nx, Ny, Nz); + + for (int p=0; p 1e-7 && PT.y - double(j) > 1e-7 && PT.z - double(k) > 1e-7) { + ComponentAverages_NWP(NVERT,LabelNWP) += 1; + } + } + for (int p=0; p 1e-7 && B.x-double(i) > 1e-7) newside=false; + if (A.y - double(j) > 1e-7 && B.y-double(j) > 1e-7) newside=false; + if (A.z - double(k) > 1e-7 && B.z-double(k) > 1e-7) newside=false; + if (newside) ComponentAverages_NWP(NSIDE,LabelNWP) += 1; + + // Check side A-C + bool newside = true; + if (A.x - double(i) > 1e-7 && C.x-double(i) > 1e-7) newside=false; + if (A.y - double(j) > 1e-7 && C.y-double(j) > 1e-7) newside=false; + if (A.z - double(k) > 1e-7 && C.z-double(k) > 1e-7) newside=false; + if (newside) ComponentAverages_NWP(NSIDE,LabelNWP) += 1; + + // Check side B-C + bool newside = true; + if (B.x - double(i) > 1e-7 && C.x-double(i) > 1e-7) newside=false; + if (B.y - double(j) > 1e-7 && C.y-double(j) > 1e-7) newside=false; + if (B.z - double(k) > 1e-7 && C.z-double(k) > 1e-7) newside=false; + if (newside) ComponentAverages_NWP(NSIDE,LabelNWP) += 1; + } + for (int p=0; p 1e-7 && PT.y - double(j) > 1e-7 && PT.z - double(k) > 1e-7) { + ComponentAverages_NWP(NVERT,LabelNWP) += 1; + } + } + for (int p=0; p 1e-7 && B.x-double(i) > 1e-7) newside=false; + if (A.y - double(j) > 1e-7 && B.y-double(j) > 1e-7) newside=false; + if (A.z - double(k) > 1e-7 && B.z-double(k) > 1e-7) newside=false; + if (newside) ComponentAverages_NWP(NSIDE,LabelNWP) += 1; + + // Check side A-C + bool newside = true; + if (A.x - double(i) > 1e-7 && C.x-double(i) > 1e-7) newside=false; + if (A.y - double(j) > 1e-7 && C.y-double(j) > 1e-7) newside=false; + if (A.z - double(k) > 1e-7 && C.z-double(k) > 1e-7) newside=false; + if (newside) ComponentAverages_NWP(NSIDE,LabelNWP) += 1; + + // Check side B-C + bool newside = true; + if (B.x - double(i) > 1e-7 && C.x-double(i) > 1e-7) newside=false; + if (B.y - double(j) > 1e-7 && C.y-double(j) > 1e-7) newside=false; + if (B.z - double(k) > 1e-7 && C.z-double(k) > 1e-7) newside=false; + if (newside) ComponentAverages_NWP(NSIDE,LabelNWP) += 1; + } + //........................................................................... // wn interface averages if (n_nw_pts>0 && LabelNWP >=0 && LabelWP >=0 ){ @@ -1248,7 +1325,11 @@ void TwoPhase::PrintComponents(int timestep){ fprintf(NWPLOG,"%.5g ",ComponentAverages_NWP(CMY,b)); fprintf(NWPLOG,"%.5g ",ComponentAverages_NWP(CMZ,b)); fprintf(NWPLOG,"%.5g ",ComponentAverages_NWP(TRAWN,b)); - fprintf(NWPLOG,"%.5g\n",ComponentAverages_NWP(TRJWN,b)); + fprintf(NWPLOG,"%.5g ",ComponentAverages_NWP(TRJWN,b)); + fprintf(NWPLOG,"%.5g ",ComponentAverages_NWP(NVERT,b)); + fprintf(NWPLOG,"%.5g ",ComponentAverages_NWP(NSIDE,b)); + fprintf(NWPLOG,"%.5g\n",ComponentAverages_NWP(NFACE,b)); + } } fflush(NWPLOG); From dfd4206423e2175dff9aaf9b958a3616e9836e49 Mon Sep 17 00:00:00 2001 From: James McClure Date: Tue, 25 Aug 2015 15:02:04 -0400 Subject: [PATCH 2/2] Fixed bugs in common/TwoPhase.h from Euler characteristic computation --- common/TwoPhase.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/common/TwoPhase.h b/common/TwoPhase.h index c13fcd6b..13e9c5a7 100644 --- a/common/TwoPhase.h +++ b/common/TwoPhase.h @@ -721,14 +721,14 @@ void TwoPhase::ComponentAverages(){ if (newside) ComponentAverages_NWP(NSIDE,LabelNWP) += 1; // Check side A-C - bool newside = true; + newside = true; if (A.x - double(i) > 1e-7 && C.x-double(i) > 1e-7) newside=false; if (A.y - double(j) > 1e-7 && C.y-double(j) > 1e-7) newside=false; if (A.z - double(k) > 1e-7 && C.z-double(k) > 1e-7) newside=false; if (newside) ComponentAverages_NWP(NSIDE,LabelNWP) += 1; // Check side B-C - bool newside = true; + newside = true; if (B.x - double(i) > 1e-7 && C.x-double(i) > 1e-7) newside=false; if (B.y - double(j) > 1e-7 && C.y-double(j) > 1e-7) newside=false; if (B.z - double(k) > 1e-7 && C.z-double(k) > 1e-7) newside=false; @@ -757,14 +757,14 @@ void TwoPhase::ComponentAverages(){ if (newside) ComponentAverages_NWP(NSIDE,LabelNWP) += 1; // Check side A-C - bool newside = true; + newside = true; if (A.x - double(i) > 1e-7 && C.x-double(i) > 1e-7) newside=false; if (A.y - double(j) > 1e-7 && C.y-double(j) > 1e-7) newside=false; if (A.z - double(k) > 1e-7 && C.z-double(k) > 1e-7) newside=false; if (newside) ComponentAverages_NWP(NSIDE,LabelNWP) += 1; // Check side B-C - bool newside = true; + newside = true; if (B.x - double(i) > 1e-7 && C.x-double(i) > 1e-7) newside=false; if (B.y - double(j) > 1e-7 && C.y-double(j) > 1e-7) newside=false; if (B.z - double(k) > 1e-7 && C.z-double(k) > 1e-7) newside=false;