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;
IntArray LocalBlobID;
IntArray BlobLabel;
DoubleArray SDn;
DoubleArray SDs;
DoubleArray Phase;
@ -122,7 +122,7 @@ public:
cubeList.New(3,ncubes);
// Global arrays
LocalBlobID.New(Nx,Ny,Nz);
BlobLabel.New(Nx,Ny,Nz);
SDn.New(Nx,Ny,Nz);
SDs.New(Nx,Ny,Nz);
Phase.New(Nx,Ny,Nz);
@ -653,14 +653,14 @@ void TwoPhase::PrintAll(int timestep){
inline int TwoPhase::GetCubeLabel(int i, int j, int k){
int label;
label=LocalBlobID(i,j,k);
label=max(label,LocalBlobID(i+1,j,k));
label=max(label,LocalBlobID(i,j+1,k));
label=max(label,LocalBlobID(i+1,j+1,k));
label=max(label,LocalBlobID(i,j,k+1));
label=max(label,LocalBlobID(i+1,j,k+1));
label=max(label,LocalBlobID(i,j+1,k+1));
label=max(label,LocalBlobID(i+1,j+1,k+1));
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;
}

View File

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

View File

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