diff --git a/cpu/D3Q19.cpp b/cpu/D3Q19.cpp index 2af59883..6b858d61 100644 --- a/cpu/D3Q19.cpp +++ b/cpu/D3Q19.cpp @@ -243,8 +243,6 @@ extern "C" double ScaLBL_D3Q19_Flux_BC_z(double *disteven, double *distodd, doub // odd distributions in disteven and even distributions in distodd. int n,N; // distributions - double f0,f1,f2,f3,f4,f5,f6,f7,f8,f9; - double f10,f11,f12,f13,f14,f15,f16,f17,f18; double din = 0.f; N = Nx*Ny*Nz; @@ -256,26 +254,26 @@ extern "C" double ScaLBL_D3Q19_Flux_BC_z(double *disteven, double *distodd, doub // Read distributions from "opposite" memory convention //........................................................................ //........................................................................ - f1 = distodd[n]; - f3 = distodd[N+n]; - f5 = distodd[2*N+n]; - f7 = distodd[3*N+n]; - f9 = distodd[4*N+n]; - f11 = distodd[5*N+n]; - f13 = distodd[6*N+n]; - f15 = distodd[7*N+n]; - f17 = distodd[8*N+n]; + double f1 = distodd[n]; + double f3 = distodd[N+n]; + //double f5 = distodd[2*N+n]; + double f7 = distodd[3*N+n]; + double f9 = distodd[4*N+n]; + //double f11 = distodd[5*N+n]; + double f13 = distodd[6*N+n]; + //double f15 = distodd[7*N+n]; + double f17 = distodd[8*N+n]; //........................................................................ - f0 = disteven[n]; - f2 = disteven[N+n]; - f4 = disteven[2*N+n]; - f6 = disteven[3*N+n]; - f8 = disteven[4*N+n]; - f10 = disteven[5*N+n]; - f12 = disteven[6*N+n]; - f14 = disteven[7*N+n]; - f16 = disteven[8*N+n]; - f18 = disteven[9*N+n]; + double f0 = disteven[n]; + double f2 = disteven[N+n]; + double f4 = disteven[2*N+n]; + double f6 = disteven[3*N+n]; + double f8 = disteven[4*N+n]; + double f10 = disteven[5*N+n]; + double f12 = disteven[6*N+n]; + //double f14 = disteven[7*N+n]; + double f16 = disteven[8*N+n]; + //double f18 = disteven[9*N+n]; //................................................... // Determine the outlet flow velocity @@ -288,59 +286,58 @@ extern "C" double ScaLBL_D3Q19_Flux_BC_z(double *disteven, double *distodd, doub } extern "C" double ScaLBL_D3Q19_AAodd_Flux_BC_z(int *d_neighborList, int *list, double *dist, double flux, - double area, int count, int Np){ + double area, int count, int Np) +{ int idx, n; int nread; // distributions - double f0,f1,f2,f3,f4,f5,f6,f7,f8,f9; - double f10,f11,f12,f13,f14,f15,f16,f17,f18; double factor = 1.f/(area); double sum = 0.f; for (idx=0; idx 0.f){ nA = 1.0; nB = 0.f; @@ -60,15 +59,13 @@ extern "C" void ScaLBL_DFH_Init(double *Phi, double *Den, double *Aq, double *Bq // LBM based on density functional hydrodynamics extern "C" void ScaLBL_D3Q19_AAeven_DFH(int *neighborList, double *dist, double *Aq, double *Bq, double *Den, double *Phi, double *Gradient, double *SolidForce, double rhoA, double rhoB, double tauA, double tauB, double alpha, double beta, - double Fx, double Fy, double Fz, int start, int finish, int Np){ - - int ijk,nn,n; + double Fx, double Fy, double Fz, int start, int finish, int Np) +{ double fq; // conserved momemnts double rho,jx,jy,jz; // non-conserved moments double m1,m2,m4,m6,m8,m9,m10,m11,m12,m13,m14,m15,m16,m17,m18; - double m3,m5,m7; double nA,nB; // number density double a1,b1,a2,b2,nAB,delta; double C,nx,ny,nz; //color gradient magnitude and direction @@ -586,7 +583,7 @@ extern "C" void ScaLBL_D3Q19_AAodd_DFH(int *neighborList, double *dist, double * double *Phi, double *Gradient, double *SolidForce, double rhoA, double rhoB, double tauA, double tauB, double alpha, double beta, double Fx, double Fy, double Fz, int start, int finish, int Np){ - int n,nn,ijk,nread; + int nread; int nr1,nr2,nr3,nr4,nr5,nr6; int nr7,nr8,nr9,nr10; int nr11,nr12,nr13,nr14; @@ -596,7 +593,6 @@ extern "C" void ScaLBL_D3Q19_AAodd_DFH(int *neighborList, double *dist, double * double rho,jx,jy,jz; // non-conserved moments double m1,m2,m4,m6,m8,m9,m10,m11,m12,m13,m14,m15,m16,m17,m18; - double m3,m5,m7; double nA,nB; // number density double a1,b1,a2,b2,nAB,delta; double C,nx,ny,nz; //color gradient magnitude and direction @@ -1182,12 +1178,12 @@ extern "C" void ScaLBL_D3Q19_AAodd_DFH(int *neighborList, double *dist, double * } extern "C" void ScaLBL_D3Q7_AAodd_DFH(int *neighborList, double *Aq, double *Bq, - double *Den, double *Phi, int start, int finish, int Np){ - - int idx,n,nread; - double fq,nA,nB; + double *Den, double *Phi, int start, int finish, int Np) +{ for (int n=start; n Dm(new Domain(domain_db,comm)); + auto Dm = std::make_shared(domain_db,comm); for (int i=0; iNx*Dm->Ny*Dm->Nz; i++) Dm->id[i] = 1; - std::shared_ptr Averages( new TwoPhase(Dm) ); + auto Averages = std::make_shared(Dm); // TwoPhase Averages(Dm); Dm->CommInit(); // Mask that excludes the solid phase - std::shared_ptr Mask(new Domain(domain_db,comm)); + auto Mask = std::make_shared(domain_db,comm); MPI_Barrier(comm); Nx+=2; Ny+=2; Nz += 2; @@ -191,8 +186,7 @@ int main(int argc, char **argv) // printf("Local File Name = %s \n",LocalRankFilename); // .......... READ THE INPUT FILE ....................................... // char value; - char *id; - id = new char[N]; + auto id = new char[N]; double sum; //........................................................................... if (rank == 0) cout << "Setting up bubble..." << endl; @@ -244,19 +238,17 @@ int main(int argc, char **argv) // Initialize communication structures in averaging domain for (i=0; iNx*Mask->Ny*Mask->Nz; i++) Mask->id[i] = id[i]; Mask->CommInit(); - double *PhaseLabel; - PhaseLabel = new double[N]; + auto PhaseLabel = new double[N]; //........................................................................... if (rank==0) printf ("Create ScaLBL_Communicator \n"); // Create a communicator for the device (will use optimized layout) - std::shared_ptr ScaLBL_Comm(new ScaLBL_Communicator(Mask)); + auto ScaLBL_Comm = std::make_shared(Mask); int Npad=(Np/16 + 2)*16; if (rank==0) printf ("Set up memory efficient layout Npad=%i \n",Npad); - int *neighborList; IntArray Map(Nx,Ny,Nz); - neighborList= new int[18*Npad]; + auto neighborList= new int[18*Npad]; Np = ScaLBL_Comm->MemoryOptimizedLayoutAA(Map,neighborList,Mask->id,Np); MPI_Barrier(comm); @@ -515,9 +507,8 @@ int main(int argc, char **argv) // Copy back final phase indicator field and convert to regular layout DoubleArray PhaseField(Nx,Ny,Nz); ScaLBL_Comm->RegularLayout(Map,Phi,PhaseField); - FILE *OUTFILE; sprintf(LocalRankFilename,"Phase.raw"); - OUTFILE = fopen(LocalRankFilename,"wb"); + auto OUTFILE = fopen(LocalRankFilename,"wb"); fwrite(PhaseField.data(),8,N,OUTFILE); fclose(OUTFILE); @@ -535,9 +526,8 @@ int main(int argc, char **argv) } } } - FILE *GFILE; sprintf(LocalRankFilename,"Gradient.raw"); - GFILE = fopen(LocalRankFilename,"wb"); + auto GFILE = fopen(LocalRankFilename,"wb"); fwrite(GradNorm.data(),8,N,GFILE); fclose(GFILE); @@ -545,14 +535,12 @@ int main(int argc, char **argv) DoubleArray Rho2(Nx,Ny,Nz); ScaLBL_Comm->RegularLayout(Map,&Den[0],Rho1); ScaLBL_Comm->RegularLayout(Map,&Den[Np],Rho2); - FILE *RFILE1; sprintf(LocalRankFilename,"Rho1.raw"); - RFILE1 = fopen(LocalRankFilename,"wb"); + auto RFILE1 = fopen(LocalRankFilename,"wb"); fwrite(Rho1.data(),8,N,RFILE1); fclose(RFILE1); - FILE *RFILE2; sprintf(LocalRankFilename,"Rho2.raw"); - RFILE2 = fopen(LocalRankFilename,"wb"); + auto RFILE2 = fopen(LocalRankFilename,"wb"); fwrite(Rho2.data(),8,N,RFILE2); fclose(RFILE2);