Added little tool to read Stuttgart sandstone data
This commit is contained in:
@@ -24,6 +24,7 @@ ADD_LBPM_EXECUTABLE( lbpm_squaretube_pp )
|
||||
ADD_LBPM_EXECUTABLE( GenerateSphereTest )
|
||||
ADD_LBPM_EXECUTABLE( ComponentLabel )
|
||||
ADD_LBPM_EXECUTABLE( ColorToBinary )
|
||||
ADD_LBPM_EXECUTABLE( DataAggregator )
|
||||
ADD_LBPM_EXECUTABLE( BlobAnalysis )
|
||||
ADD_LBPM_EXECUTABLE( BlobIdentify )
|
||||
ADD_LBPM_EXECUTABLE( BlobIdentifyParallel )
|
||||
|
||||
75
tests/DataAggregator.cpp
Normal file
75
tests/DataAggregator.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/stat.h>
|
||||
#include <iostream>
|
||||
#include <exception>
|
||||
#include <stdexcept>
|
||||
#include <fstream>
|
||||
|
||||
int main(int argc, char **argv){
|
||||
|
||||
unsigned long int Bx,By,Bz;
|
||||
unsigned long int Nx,Ny,Nz;
|
||||
unsigned long int NX,NY,NZ;
|
||||
unsigned long int i,j,k;
|
||||
unsigned long int x,y,z;
|
||||
unsigned long int N, N_full;
|
||||
|
||||
Bx = By = Bz = 9;
|
||||
Nx = Ny = Nz = 1024;
|
||||
N = Nx*Ny*Nz;
|
||||
|
||||
NX=Bx*Nx;
|
||||
NY=By*Ny;
|
||||
NZ=Bz*Nz;
|
||||
N_full=NX*NY*NZ;
|
||||
printf("System size is: %i x %i x %i \n",NX,NY,NZ);
|
||||
|
||||
// Filenames used
|
||||
//char LocalRankString[8];
|
||||
char LocalRankFilename[40];
|
||||
char sx[2];
|
||||
char sy[2];
|
||||
char sz[2];
|
||||
char tmpstr[10];
|
||||
//sprintf(LocalRankString,"%05d",rank);
|
||||
|
||||
char *id;
|
||||
id = new char [N];
|
||||
char *ID;
|
||||
ID = new char [N_full];
|
||||
|
||||
for (unsigned long int bz=0; bz<Bz; bz++){
|
||||
for (unsigned long int by=0; by<By; by++){
|
||||
for (unsigned long int bx=0; bx<Bx; bx++){
|
||||
sprintf(sx,"%d",bx);
|
||||
sprintf(sy,"%d",by);
|
||||
sprintf(sz,"%d",bz);
|
||||
sprintf(LocalRankFilename,"%s%s%s%s%s%s%s","a2_x",sx,"_y",sy,"_z",sz,".gbd");
|
||||
printf("Reading file: %s \n", LocalRankFilename);
|
||||
// Read the file
|
||||
size_t readID;
|
||||
FILE *IDFILE = fopen(LocalRankFilename,"rb");
|
||||
readID=fread(id,1,N,IDFILE);
|
||||
fclose(IDFILE);
|
||||
|
||||
// Unpack the data into the main array
|
||||
for ( k=0;k<Nz;k++){
|
||||
for ( j=0;j<Ny;j++){
|
||||
for ( i=0;i<Nx;i++){
|
||||
x = bx*Nx + i;
|
||||
y = by*Ny + j;
|
||||
z = bz*Nz + k;
|
||||
ID[z*NX*NY+y*NX+x] = ID[k*Nx*Ny+j*Nx+i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
printf("Done getting data -- writing main file \n");
|
||||
FILE *OUT = fopen(LocalRankFilename,"wb");
|
||||
fwrite(ID,1,N_full,OUT);
|
||||
fclose(OUT);
|
||||
printf("Completed! \n");
|
||||
}
|
||||
Reference in New Issue
Block a user