Got tests/lbpm_BlobAnalysis.cpp to compile

This commit is contained in:
James E McClure 2015-03-20 15:13:33 -04:00
parent a7968f6d13
commit fc496a2574
3 changed files with 48 additions and 59 deletions

View File

@ -93,7 +93,7 @@ public:
//........................................................................... //...........................................................................
//........................................................................... //...........................................................................
int Nx,Ny,Nz; int Nx,Ny,Nz;
IntArray LocalBlobID; IntArray BlobLabel;
DoubleArray SDn; DoubleArray SDn;
DoubleArray SDs; DoubleArray SDs;
DoubleArray Phase; DoubleArray Phase;
@ -122,7 +122,7 @@ public:
cubeList.New(3,ncubes); cubeList.New(3,ncubes);
// Global arrays // Global arrays
LocalBlobID.New(Nx,Ny,Nz); BlobLabel.New(Nx,Ny,Nz);
SDn.New(Nx,Ny,Nz); SDn.New(Nx,Ny,Nz);
SDs.New(Nx,Ny,Nz); SDs.New(Nx,Ny,Nz);
Phase.New(Nx,Ny,Nz); Phase.New(Nx,Ny,Nz);
@ -652,16 +652,16 @@ void TwoPhase::PrintAll(int timestep){
} }
inline int TwoPhase::GetCubeLabel(int i, int j, int k){ inline int TwoPhase::GetCubeLabel(int i, int j, int k){
int label; int label;
label=LocalBlobID(i,j,k); label=BlobLabel(i,j,k);
label=max(label,LocalBlobID(i+1,j,k)); label=max(label,BlobLabel(i+1,j,k));
label=max(label,LocalBlobID(i,j+1,k)); label=max(label,BlobLabel(i,j+1,k));
label=max(label,LocalBlobID(i+1,j+1,k)); label=max(label,BlobLabel(i+1,j+1,k));
label=max(label,LocalBlobID(i,j,k+1)); label=max(label,BlobLabel(i,j,k+1));
label=max(label,LocalBlobID(i+1,j,k+1)); label=max(label,BlobLabel(i+1,j,k+1));
label=max(label,LocalBlobID(i,j+1,k+1)); label=max(label,BlobLabel(i,j+1,k+1));
label=max(label,LocalBlobID(i+1,j+1,k+1)); label=max(label,BlobLabel(i+1,j+1,k+1));
return label; return label;
} }

View File

@ -3,6 +3,7 @@ INSTALL_LBPM_EXE( lb2_Color_wia_mpi )
INSTALL_LBPM_EXE( lbpm_color_simulator ) INSTALL_LBPM_EXE( lbpm_color_simulator )
INSTALL_LBPM_EXE( lbpm_sphere_pp ) INSTALL_LBPM_EXE( lbpm_sphere_pp )
INSTALL_LBPM_EXE( lbpm_disc_pp ) INSTALL_LBPM_EXE( lbpm_disc_pp )
INSTALL_LBPM_EXE( lbpm_BlobAnalysis )
INSTALL_LBPM_EXE( TestBubble ) INSTALL_LBPM_EXE( TestBubble )
INSTALL_LBPM_EXE( BasicSimulator ) INSTALL_LBPM_EXE( BasicSimulator )
INSTALL_LBPM_EXE( BlobAnalysis ) INSTALL_LBPM_EXE( BlobAnalysis )

View File

@ -17,7 +17,7 @@ James E. McClure 2015
#include "common/MPI_Helpers.h" #include "common/MPI_Helpers.h"
#include "common/Utilities.h" #include "common/Utilities.h"
inline void ReadBlobLabel(char *FILENAME, int *Data, int N) inline void ReadBlobFile(char *FILENAME, int *Data, int N)
{ {
int n; int n;
int value; int value;
@ -38,12 +38,13 @@ inline void ReadBlobLabel(char *FILENAME, int *Data, int N)
} }
struct BlobTwoPhase{ struct BlobTwoPhase{
int COUNT=26; // number of averages to compute for each blob int COUNT; // number of averages to compute for each blob
BlobTwoPhase(int size){ BlobTwoPhase(int size){
COUNT=26;
NBLOBS=size; NBLOBS=size;
Data = new double [size*COUNT]; Data = new double [size*COUNT];
} }
~(BlobTwoPhase){ ~BlobTwoPhase(){
delete [] Data; delete [] Data;
} }
int NBLOBS; int NBLOBS;
@ -51,32 +52,32 @@ struct BlobTwoPhase{
// if modified -- make sure to adjust COUNT so that // if modified -- make sure to adjust COUNT so that
// there is enough memory to save all the averages // there is enough memory to save all the averages
double Vn(int IDX){return Data[COUNT*IDX]} double Vn(int IDX){return Data[COUNT*IDX];}
double pan(int IDX){return Data[COUNT*IDX+1]} double pan(int IDX){return Data[COUNT*IDX+1];}
double awn(int IDX){return Data[COUNT*IDX+2]} double awn(int IDX){return Data[COUNT*IDX+2];}
double ans(int IDX){return Data[COUNT*IDX+3]} double ans(int IDX){return Data[COUNT*IDX+3];}
double Jwn(int IDX){return Data[COUNT*IDX+4]} double Jwn(int IDX){return Data[COUNT*IDX+4];}
double Kwn(int IDX){return Data[COUNT*IDX+5]} double Kwn(int IDX){return Data[COUNT*IDX+5];}
double lwns(int IDX){return Data[COUNT*IDX+6]} double lwns(int IDX){return Data[COUNT*IDX+6];}
double cwns(int IDX){return Data[COUNT*IDX+7]} double cwns(int IDX){return Data[COUNT*IDX+7];}
double vanx(int IDX){return Data[COUNT*IDX+8]} double vanx(int IDX){return Data[COUNT*IDX+8];}
double vany(int IDX){return Data[COUNT*IDX+9]} double vany(int IDX){return Data[COUNT*IDX+9];}
double vanz(int IDX){return Data[COUNT*IDX+10]} double vanz(int IDX){return Data[COUNT*IDX+10];}
double vawnx(int IDX){return Data[COUNT*IDX+11]} double vawnx(int IDX){return Data[COUNT*IDX+11];}
double vawny(int IDX){return Data[COUNT*IDX+12]} double vawny(int IDX){return Data[COUNT*IDX+12];}
double vawnz(int IDX){return Data[COUNT*IDX+13]} double vawnz(int IDX){return Data[COUNT*IDX+13];}
double Gwnxx(int IDX){return Data[COUNT*IDX+14]} double Gwnxx(int IDX){return Data[COUNT*IDX+14];}
double Gwnyy(int IDX){return Data[COUNT*IDX+15]} double Gwnyy(int IDX){return Data[COUNT*IDX+15];}
double Gwnzz(int IDX){return Data[COUNT*IDX+16]} double Gwnzz(int IDX){return Data[COUNT*IDX+16];}
double Gwnxy(int IDX){return Data[COUNT*IDX+17]} double Gwnxy(int IDX){return Data[COUNT*IDX+17];}
double Gwnxz(int IDX){return Data[COUNT*IDX+18]} double Gwnxz(int IDX){return Data[COUNT*IDX+18];}
double Gwnyz(int IDX){return Data[COUNT*IDX+19]} double Gwnyz(int IDX){return Data[COUNT*IDX+19];}
double Gnsxx(int IDX){return Data[COUNT*IDX+20]} double Gnsxx(int IDX){return Data[COUNT*IDX+20];}
double Gnsyy(int IDX){return Data[COUNT*IDX+22]} double Gnsyy(int IDX){return Data[COUNT*IDX+22];}
double Gnszz(int IDX){return Data[COUNT*IDX+23]} double Gnszz(int IDX){return Data[COUNT*IDX+23];}
double Gnsxy(int IDX){return Data[COUNT*IDX+23]} double Gnsxy(int IDX){return Data[COUNT*IDX+23];}
double Gnsxz(int IDX){return Data[COUNT*IDX+24]} double Gnsxz(int IDX){return Data[COUNT*IDX+24];}
double Gnsyz(int IDX){return Data[COUNT*IDX+25]} double Gnsyz(int IDX){return Data[COUNT*IDX+25];}
}; };
@ -100,13 +101,14 @@ int main(int argc, char **argv)
int nblobs_global; // number of blobs in the global system int nblobs_global; // number of blobs in the global system
// Get the global number of blobs from arguments // Get the global number of blobs from arguments
if (nargc > 1){ if (argc > 1){
nblobs_global = atoi(argv[1]); nblobs_global = atoi(argv[1]);
if (rank==0) printf("Number of global blobs is: %i \n",nblobs_global); if (rank==0) printf("Number of global blobs is: %i \n",nblobs_global);
} }
else{ else{
ERROR("Number of blobs was not specified"); ERROR("Number of blobs was not specified");
} }
int *CubeList; int *CubeList;
if (rank==0){ if (rank==0){
@ -218,9 +220,9 @@ int main(int argc, char **argv)
Averages.Vel_z.data[n]=vz; Averages.Vel_z.data[n]=vz;
} }
int label; int label;
for (k=1;k<Nz-1;k++){ for (int k=1;k<Nz-1;k++){
for (j=1;j<Ny-1;j++){ for (int j=1;j<Ny-1;j++){
for (i=1;i<Nx-1;i++){ for (int i=1;i<Nx-1;i++){
// Assign the label for the cube // Assign the label for the cube
label = Averages.GetCubeLabel(i,j,k); label = Averages.GetCubeLabel(i,j,k);
@ -242,17 +244,3 @@ int main(int argc, char **argv)
// **************************************************** // ****************************************************
} }
inline int GetCubeLabel(int i, int j, int k){
int label;
label=BlobLabel(i,j,k);
label=max(label,BlobLabel(i+1,j,k));
label=max(label,BlobLabel(i,j+1,k));
label=max(label,BlobLabel(i+1,j+1,k));
label=max(label,BlobLabel(i,j,k+1));
label=max(label,BlobLabel(i+1,j,k+1));
label=max(label,BlobLabel(i,j+1,k+1));
label=max(label,BlobLabel(i+1,j+1,k+1));
return label;
}