diff --git a/common/Domain.cpp b/common/Domain.cpp index 0fa8545a..a88b47da 100644 --- a/common/Domain.cpp +++ b/common/Domain.cpp @@ -329,7 +329,6 @@ void Domain::Decomp(std::string Filename) char *SegData = NULL; if (RANK==0){ - printf("Input media: %s\n",Filename.c_str()); printf("Relabeling %lu values\n",ReadValues.size()); for (int idx=0; idx class PatchData; diff --git a/common/ReadMicroCT.cpp b/common/ReadMicroCT.cpp index f02163dd..94c728ef 100644 --- a/common/ReadMicroCT.cpp +++ b/common/ReadMicroCT.cpp @@ -70,6 +70,8 @@ Array readMicroCT( const Database& domain, MPI_Comm comm ) auto n = domain.getVector( "n" ); int rank = comm_rank(MPI_COMM_WORLD); auto nproc = domain.getVector( "nproc" ); + auto ReadValues = domain.getVector( "ReadValues" ); + auto WriteValues = domain.getVector( "WriteValues" ); RankInfoStruct rankInfo( rank, nproc[0], nproc[1], nproc[2] ); // Determine the largest file number to get @@ -81,18 +83,37 @@ Array readMicroCT( const Database& domain, MPI_Comm comm ) Array data; RankInfoStruct srcRankInfo( rank, Nfx, Nfy, Nfz ); if ( srcRankInfo.ix >= 0 ) { - auto filename = domain.getScalar( "Filename" ); - char tmp[100]; - if ( filename.find( "0x_0y_0z.gbd.gz" ) != std::string::npos ) { - sprintf( tmp, "%ix_%iy_%iz.gbd.gz", srcRankInfo.ix, srcRankInfo.jy, srcRankInfo.kz ); - filename = filename.replace( filename.find( "0x_0y_0z.gbd.gz" ), 15, std::string( tmp ) ); - } else if ( filename.find( "x0_y0_z0.gbd.gz" ) != std::string::npos ) { - sprintf( tmp, "x%i_y%i_z%i.gbd.gz", srcRankInfo.ix, srcRankInfo.jy, srcRankInfo.kz ); - filename = filename.replace( filename.find( "x0_y0_z0.gbd.gz" ), 15, std::string( tmp ) ); - } else { - ERROR( "Invalid name for first file" ); - } - data = readMicroCT( filename ); + auto filename = domain.getScalar( "Filename" ); + char tmp[100]; + if ( filename.find( "0x_0y_0z.gbd.gz" ) != std::string::npos ) { + sprintf( tmp, "%ix_%iy_%iz.gbd.gz", srcRankInfo.ix, srcRankInfo.jy, srcRankInfo.kz ); + filename = filename.replace( filename.find( "0x_0y_0z.gbd.gz" ), 15, std::string( tmp ) ); + } else if ( filename.find( "x0_y0_z0.gbd.gz" ) != std::string::npos ) { + sprintf( tmp, "x%i_y%i_z%i.gbd.gz", srcRankInfo.ix, srcRankInfo.jy, srcRankInfo.kz ); + filename = filename.replace( filename.find( "x0_y0_z0.gbd.gz" ), 15, std::string( tmp ) ); + } else { + ERROR( "Invalid name for first file" ); + } + data = readMicroCT( filename ); + + // Relabel the data + for (int k = 0; k<1024; k++){ + for (int j = 0; j<1024; j++){ + for (int i = 0; i<1024; i++){ + //n = k*Nfx*Nfy + j*Nfx + i; + //char locval = loc_id[n]; + char locval = data(i,j,k); + for (int idx=0; idx #include @@ -189,6 +190,10 @@ void ScaLBL_ColorModel::ReadInput(){ Mask->Decomp(first_image); IMAGE_INDEX++; } + else if (domain_db->keyExists( "GridFile" )){ + auto input_id = readMicroCT( *domain_db, MPI_COMM_WORLD ); + for (int i=0; iid[i] = input_id(i); + } else if (domain_db->keyExists( "Filename" )){ auto Filename = domain_db->getScalar( "Filename" ); Mask->Decomp(Filename);