diff --git a/models/FreeLeeModel.cpp b/models/FreeLeeModel.cpp index 231e0c61..fb50d2f8 100644 --- a/models/FreeLeeModel.cpp +++ b/models/FreeLeeModel.cpp @@ -59,6 +59,29 @@ void ScaLBL_FreeLeeModel::getVelocity(DoubleArray &Vel_x, DoubleArray &Vel_y, Do ScaLBL_Comm->Barrier(); comm.barrier(); } +void ScaLBL_FreeLeeModel::getData_RegularLayout(const double *data, DoubleArray ®data){ + // Gets data (in optimized layout) from the HOST and stores in regular layout + // Primarly for debugging + int i,j,k,idx; + + // initialize the array + regdata.fill(0.f); + + double value; + for (k=0; k( filename ); @@ -574,27 +597,28 @@ void ScaLBL_FreeLeeModel::AssignComponentLabels_ChemPotential_ColorGrad() DoubleArray PhaseField(Nx,Ny,Nz); FILE *OUTFILE; - ScaLBL_Comm->RegularLayout(Map,mu_phi_host,PhaseField); + + getData_RegularLayout(mu_phi_host,PhaseField); sprintf(LocalRankFilename,"Chem_Init.%05i.raw",rank); OUTFILE = fopen(LocalRankFilename,"wb"); fwrite(PhaseField.data(),8,N,OUTFILE); fclose(OUTFILE); - ScaLBL_Comm->RegularLayout(Map,&ColorGrad_host[0],PhaseField); + getData_RegularLayout(&ColorGrad_host[0],PhaseField); FILE *CGX_FILE; sprintf(LocalRankFilename,"Gradient_X_Init.%05i.raw",rank); CGX_FILE = fopen(LocalRankFilename,"wb"); fwrite(PhaseField.data(),8,N,CGX_FILE); fclose(CGX_FILE); - ScaLBL_Comm->RegularLayout(Map,&ColorGrad_host[Np],PhaseField); + getData_RegularLayout(&ColorGrad_host[Np],PhaseField); FILE *CGY_FILE; sprintf(LocalRankFilename,"Gradient_Y_Init.%05i.raw",rank); CGY_FILE = fopen(LocalRankFilename,"wb"); fwrite(PhaseField.data(),8,N,CGY_FILE); fclose(CGY_FILE); - ScaLBL_Comm->RegularLayout(Map,&ColorGrad_host[2*Np],PhaseField); + getData_RegularLayout(&ColorGrad_host[2*Np],PhaseField); FILE *CGZ_FILE; sprintf(LocalRankFilename,"Gradient_Z_Init.%05i.raw",rank); CGZ_FILE = fopen(LocalRankFilename,"wb"); diff --git a/models/FreeLeeModel.h b/models/FreeLeeModel.h index 17cc6323..9eff0e59 100644 --- a/models/FreeLeeModel.h +++ b/models/FreeLeeModel.h @@ -84,6 +84,7 @@ public: void getPhase(DoubleArray &PhaseValues); void getPotential(DoubleArray &PressureValues, DoubleArray &MuValues); void getVelocity(DoubleArray &Vx, DoubleArray &Vy, DoubleArray &Vz); + void getData_RegularLayout(const double *data, DoubleArray ®data); DoubleArray SignDist;