adding checkerboard inlet option

This commit is contained in:
James E McClure 2019-02-16 11:07:57 -05:00
parent 8ef49f8a70
commit ee79d6a1ff

View File

@ -53,6 +53,8 @@ int main(int argc, char **argv)
int64_t i,j,k,n; int64_t i,j,k,n;
int BC=0; int BC=0;
int64_t xStart,yStart,zStart; int64_t xStart,yStart,zStart;
int64_t checkerSize;
int64_t CropInlet[3];
// char fluidValue,solidValue; // char fluidValue,solidValue;
xStart=yStart=zStart=0; xStart=yStart=zStart=0;
@ -72,6 +74,12 @@ int main(int argc, char **argv)
yStart = offset[1]; yStart = offset[1];
zStart = offset[2]; zStart = offset[2];
} }
if (domain_db->keyExists( "CropInlet" )){
CropInlet = domain_db->getVector<int>( "CropInlet" );
}
if (domain_db->keyExists( "checkerSize" )){
checkerSize = domain_db->getScalar<int64_t>( "checkerSize" );
}
auto ReadValues = domain_db->getVector<char>( "ReadValues" ); auto ReadValues = domain_db->getVector<char>( "ReadValues" );
auto WriteValues = domain_db->getVector<char>( "WriteValues" ); auto WriteValues = domain_db->getVector<char>( "WriteValues" );
auto ReadType = domain_db->getScalar<std::string>( "ReadType" ); auto ReadType = domain_db->getScalar<std::string>( "ReadType" );
@ -136,6 +144,24 @@ int main(int argc, char **argv)
printf("Read segmented data from %s \n",Filename.c_str()); printf("Read segmented data from %s \n",Filename.c_str());
} }
if (CropInlet[0] > 0){
// use checkerboard pattern
for (int k = 0; k<SIZE[2]; k++){
for (int j = 0; j<SIZE[1]; j++){
for (int i = 0; i<CropInlet[0]; i++){
if ( ((j+k)/checkerSize)%2 == 0){
// solid checkers
SegData[k*SIZE[0]*SIZE[1]+i*SIZE[0]+i] = 0;
}
else{
// void checkers
SegData[k*SIZE[0]*SIZE[1]+i*SIZE[0]+i] = 2;
}
}
}
}
}
// Get the rank info // Get the rank info
int64_t N = (nx+2)*(ny+2)*(nz+2); int64_t N = (nx+2)*(ny+2)*(nz+2);