Merge branch 'dfh' of github.com:JamesEMcClure/LBPM-WIA into dfh
This commit is contained in:
commit
9c2668f147
@ -46,13 +46,13 @@ ADD_LBPM_TEST( TestColorGrad )
|
|||||||
ADD_LBPM_TEST( TestBubbleDFH )
|
ADD_LBPM_TEST( TestBubbleDFH )
|
||||||
ADD_LBPM_TEST( TestColorGradDFH )
|
ADD_LBPM_TEST( TestColorGradDFH )
|
||||||
ADD_LBPM_TEST( TestColorMassBounceback )
|
ADD_LBPM_TEST( TestColorMassBounceback )
|
||||||
ADD_LBPM_TEST( TestPressVel )
|
ADD_LBPM_TEST( TestPressVel ../example/Piston/input.db)
|
||||||
ADD_LBPM_TEST( TestPoiseuille ../example/Piston/input.db)
|
ADD_LBPM_TEST( TestPoiseuille ../example/Piston/input.db)
|
||||||
ADD_LBPM_TEST( TestForceMoments )
|
ADD_LBPM_TEST( TestForceMoments ../example/Piston/input.db)
|
||||||
ADD_LBPM_TEST( TestForceD3Q19 )
|
ADD_LBPM_TEST( TestForceD3Q19 )
|
||||||
ADD_LBPM_TEST( TestMomentsD3Q19 )
|
ADD_LBPM_TEST( TestMomentsD3Q19 )
|
||||||
|
|
||||||
ADD_LBPM_TEST( TestInterfaceSpeed )
|
ADD_LBPM_TEST( TestInterfaceSpeed ../example/Piston/input.db)
|
||||||
ADD_LBPM_TEST( TestSphereCurvature )
|
ADD_LBPM_TEST( TestSphereCurvature )
|
||||||
#ADD_LBPM_TEST_1_2_4( TestTwoPhase )
|
#ADD_LBPM_TEST_1_2_4( TestTwoPhase )
|
||||||
ADD_LBPM_TEST_1_2_4( TestBlobIdentify )
|
ADD_LBPM_TEST_1_2_4( TestBlobIdentify )
|
||||||
|
@ -11,8 +11,6 @@
|
|||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
extern void PrintNeighborList(int * neighborList, int Np, int rank) {
|
extern void PrintNeighborList(int * neighborList, int Np, int rank) {
|
||||||
if (rank == 0) {
|
if (rank == 0) {
|
||||||
int n;
|
int n;
|
||||||
@ -63,7 +61,6 @@ int main(int argc, char **argv)
|
|||||||
// parallel domain size (# of sub-domains)
|
// parallel domain size (# of sub-domains)
|
||||||
int iproc,jproc,kproc;
|
int iproc,jproc,kproc;
|
||||||
|
|
||||||
|
|
||||||
if (rank == 0){
|
if (rank == 0){
|
||||||
printf("********************************************************\n");
|
printf("********************************************************\n");
|
||||||
printf("Running Unit Test: TestForceMoments \n");
|
printf("Running Unit Test: TestForceMoments \n");
|
||||||
@ -71,7 +68,6 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// BGK Model parameters
|
// BGK Model parameters
|
||||||
string FILENAME;
|
|
||||||
unsigned int nBlocks, nthreads;
|
unsigned int nBlocks, nthreads;
|
||||||
int timestepMax, interval;
|
int timestepMax, interval;
|
||||||
double tau,Fx,Fy,Fz,tol;
|
double tau,Fx,Fy,Fz,tol;
|
||||||
@ -88,16 +84,18 @@ int main(int argc, char **argv)
|
|||||||
Fx = Fy = 1.0;
|
Fx = Fy = 1.0;
|
||||||
Fz = 1.0;
|
Fz = 1.0;
|
||||||
|
|
||||||
|
|
||||||
// Load inputs
|
// Load inputs
|
||||||
auto db = loadInputs( nprocs );
|
string FILENAME = argv[1];
|
||||||
int Nx = db->getVector<int>( "n" )[0];
|
// Load inputs
|
||||||
int Ny = db->getVector<int>( "n" )[1];
|
if (rank==0) printf("Loading input database \n");
|
||||||
int Nz = db->getVector<int>( "n" )[2];
|
auto db = std::make_shared<Database>(FILENAME);
|
||||||
int nprocx = db->getVector<int>( "nproc" )[0];
|
auto domain_db= db-> getDatabase("Domain");
|
||||||
int nprocy = db->getVector<int>( "nproc" )[1];
|
int Nx = domain_db->getVector<int>( "n" )[0];
|
||||||
int nprocz = db->getVector<int>( "nproc" )[2];
|
int Ny = domain_db->getVector<int>( "n" )[1];
|
||||||
|
int Nz = domain_db->getVector<int>( "n" )[2];
|
||||||
|
int nprocx = domain_db->getVector<int>( "nproc" )[0];
|
||||||
|
int nprocy = domain_db->getVector<int>( "nproc" )[1];
|
||||||
|
int nprocz = domain_db->getVector<int>( "nproc" )[2];
|
||||||
if (rank==0){
|
if (rank==0){
|
||||||
printf("********************************************************\n");
|
printf("********************************************************\n");
|
||||||
printf("Sub-domain size = %i x %i x %i\n",Nx,Ny,Nz);
|
printf("Sub-domain size = %i x %i x %i\n",Nx,Ny,Nz);
|
||||||
|
@ -15,20 +15,6 @@
|
|||||||
#define SPEED -1
|
#define SPEED -1
|
||||||
#define PI 3.14159
|
#define PI 3.14159
|
||||||
|
|
||||||
|
|
||||||
std::shared_ptr<Database> loadInputs( int nprocs )
|
|
||||||
{
|
|
||||||
auto db = std::make_shared<Database>( );
|
|
||||||
const int dim = 50;
|
|
||||||
db->putScalar<int>( "BC", 0 );
|
|
||||||
db->putVector<int>( "nproc", { 1, 1, 1 } );
|
|
||||||
db->putVector<int>( "n", { N, N, N } );
|
|
||||||
db->putScalar<int>( "nspheres", 0 );
|
|
||||||
db->putVector<double>( "L", { 1, 1, 1 } );
|
|
||||||
return db;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main (int argc, char *argv[])
|
int main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
// Initialize MPI
|
// Initialize MPI
|
||||||
@ -40,8 +26,17 @@ int main (int argc, char *argv[])
|
|||||||
|
|
||||||
int i,j,k,n;
|
int i,j,k,n;
|
||||||
// Load inputs
|
// Load inputs
|
||||||
auto db = loadInputs( nprocs );
|
string FILENAME = argv[1];
|
||||||
|
// Load inputs
|
||||||
|
if (rank==0) printf("Loading input database \n");
|
||||||
|
auto db = std::make_shared<Database>(FILENAME);
|
||||||
|
auto domain_db= db-> getDatabase("Domain");
|
||||||
|
int Nx = domain_db->getVector<int>( "n" )[0];
|
||||||
|
int Ny = domain_db->getVector<int>( "n" )[1];
|
||||||
|
int Nz = domain_db->getVector<int>( "n" )[2];
|
||||||
|
int nprocx = domain_db->getVector<int>( "nproc" )[0];
|
||||||
|
int nprocy = domain_db->getVector<int>( "nproc" )[1];
|
||||||
|
int nprocz = domain_db->getVector<int>( "nproc" )[2];
|
||||||
Domain Dm(db);
|
Domain Dm(db);
|
||||||
|
|
||||||
for (i=0; i<Dm.Nx*Dm.Ny*Dm.Nz; i++) Dm.id[i] = 1;
|
for (i=0; i<Dm.Nx*Dm.Ny*Dm.Nz; i++) Dm.id[i] = 1;
|
||||||
|
@ -34,7 +34,6 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// BGK Model parameters
|
// BGK Model parameters
|
||||||
string FILENAME = argv[1];
|
|
||||||
unsigned int nBlocks, nthreads;
|
unsigned int nBlocks, nthreads;
|
||||||
int timestepMax, interval;
|
int timestepMax, interval;
|
||||||
double tau,Fx,Fy,Fz,tol;
|
double tau,Fx,Fy,Fz,tol;
|
||||||
@ -50,6 +49,7 @@ int main(int argc, char **argv)
|
|||||||
Fx = 0; Fy = 0;
|
Fx = 0; Fy = 0;
|
||||||
Fz = 1e-3; //1.f; // 1e-3;
|
Fz = 1e-3; //1.f; // 1e-3;
|
||||||
|
|
||||||
|
string FILENAME = argv[1];
|
||||||
// Load inputs
|
// Load inputs
|
||||||
if (rank==0) printf("Loading input database \n");
|
if (rank==0) printf("Loading input database \n");
|
||||||
auto db = std::make_shared<Database>(FILENAME);
|
auto db = std::make_shared<Database>(FILENAME);
|
||||||
@ -159,7 +159,6 @@ int main(int argc, char **argv)
|
|||||||
printf("Reduced domain size = %i \n",Np);
|
printf("Reduced domain size = %i \n",Np);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// LBM variables
|
// LBM variables
|
||||||
if (rank==0) printf ("Allocating distributions \n");
|
if (rank==0) printf ("Allocating distributions \n");
|
||||||
if (rank==0) printf ("Set up the neighborlist \n");
|
if (rank==0) printf ("Set up the neighborlist \n");
|
||||||
|
@ -10,21 +10,6 @@
|
|||||||
#include "common/MPI_Helpers.h"
|
#include "common/MPI_Helpers.h"
|
||||||
|
|
||||||
|
|
||||||
std::shared_ptr<Database> loadInputs( int nprocs )
|
|
||||||
{
|
|
||||||
auto db = std::make_shared<Database>( "Domain.in" );
|
|
||||||
const int dim = 50;
|
|
||||||
db->putScalar<int>( "BC", 0 );
|
|
||||||
if ( nprocs == 1 ){
|
|
||||||
db->putVector<int>( "nproc", { 1, 1, 1 } );
|
|
||||||
db->putVector<int>( "n", { 4, 4, 4 } );
|
|
||||||
db->putScalar<int>( "nspheres", 0 );
|
|
||||||
db->putVector<double>( "L", { 1, 1, 1 } );
|
|
||||||
}
|
|
||||||
return db;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//***************************************************************************************
|
//***************************************************************************************
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
@ -46,7 +31,6 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// BGK Model parameters
|
// BGK Model parameters
|
||||||
string FILENAME;
|
|
||||||
unsigned int nBlocks, nthreads;
|
unsigned int nBlocks, nthreads;
|
||||||
int timestepMax, interval;
|
int timestepMax, interval;
|
||||||
double tau,Fx,Fy,Fz,tol;
|
double tau,Fx,Fy,Fz,tol;
|
||||||
@ -59,14 +43,16 @@ int main(int argc, char **argv)
|
|||||||
Fz = 1.0e-4;
|
Fz = 1.0e-4;
|
||||||
|
|
||||||
// Load inputs
|
// Load inputs
|
||||||
auto db = loadInputs( nprocs );
|
string FILENAME = argv[1];
|
||||||
int Nx = db->getVector<int>( "n" )[0];
|
if (rank==0) printf("Loading input database \n");
|
||||||
int Ny = db->getVector<int>( "n" )[1];
|
auto db = std::make_shared<Database>(FILENAME);
|
||||||
int Nz = db->getVector<int>( "n" )[2];
|
auto domain_db= db-> getDatabase("Domain");
|
||||||
int nprocx = db->getVector<int>( "nproc" )[0];
|
int Nx = domain_db->getVector<int>( "n" )[0];
|
||||||
int nprocy = db->getVector<int>( "nproc" )[1];
|
int Ny = domain_db->getVector<int>( "n" )[1];
|
||||||
int nprocz = db->getVector<int>( "nproc" )[2];
|
int Nz = domain_db->getVector<int>( "n" )[2];
|
||||||
|
int nprocx = domain_db->getVector<int>( "nproc" )[0];
|
||||||
|
int nprocy = domain_db->getVector<int>( "nproc" )[1];
|
||||||
|
int nprocz = domain_db->getVector<int>( "nproc" )[2];
|
||||||
if (rank==0){
|
if (rank==0){
|
||||||
printf("********************************************************\n");
|
printf("********************************************************\n");
|
||||||
printf("Sub-domain size = %i x %i x %i\n",Nx,Ny,Nz);
|
printf("Sub-domain size = %i x %i x %i\n",Nx,Ny,Nz);
|
||||||
@ -91,7 +77,6 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
Domain Dm(db);
|
Domain Dm(db);
|
||||||
|
|
||||||
|
|
||||||
Nx += 2;
|
Nx += 2;
|
||||||
Ny += 2;
|
Ny += 2;
|
||||||
Nz += 2;
|
Nz += 2;
|
||||||
@ -104,12 +89,6 @@ int main(int argc, char **argv)
|
|||||||
sprintf(LocalRankString,"%05d",rank);
|
sprintf(LocalRankString,"%05d",rank);
|
||||||
char LocalRankFilename[40];
|
char LocalRankFilename[40];
|
||||||
sprintf(LocalRankFilename,"ID.%05i",rank);
|
sprintf(LocalRankFilename,"ID.%05i",rank);
|
||||||
/*
|
|
||||||
FILE *IDFILE = fopen(LocalRankFilename,"rb");
|
|
||||||
if (IDFILE==NULL) ERROR("Error opening file: ID.xxxxx");
|
|
||||||
fread(Dm.id,1,N,IDFILE);
|
|
||||||
fclose(IDFILE);
|
|
||||||
*/
|
|
||||||
|
|
||||||
Dm.CommInit(comm);
|
Dm.CommInit(comm);
|
||||||
|
|
||||||
@ -155,25 +134,20 @@ int main(int argc, char **argv)
|
|||||||
printf("Reduced domain size = %i \n",Np);
|
printf("Reduced domain size = %i \n",Np);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// LBM variables
|
// LBM variables
|
||||||
if (rank==0) printf ("Allocating distributions \n");
|
if (rank==0) printf ("Set up the neighborlist \n");
|
||||||
|
int Npad=Np+32;
|
||||||
int neighborSize=18*Np*sizeof(int);
|
int neighborSize=18*Npad*sizeof(int);
|
||||||
int *neighborList;
|
int *neighborList;
|
||||||
IntArray Map(Nx,Ny,Nz);
|
IntArray Map(Nx,Ny,Nz);
|
||||||
|
neighborList= new int[18*Npad];
|
||||||
neighborList= new int[18*Np];
|
Np = ScaLBL_Comm.MemoryOptimizedLayoutAA(Map,neighborList,Dm.id,Np);
|
||||||
ScaLBL_Comm.MemoryOptimizedLayoutAA(Map,neighborList,Dm.id,Np);
|
|
||||||
// ScaLBL_Comm.MemoryDenseLayoutFull(Map,neighborList,Dm.id,Np); // this was how I tested for correctness
|
|
||||||
|
|
||||||
MPI_Barrier(comm);
|
MPI_Barrier(comm);
|
||||||
|
|
||||||
//......................device distributions.................................
|
//......................device distributions.................................
|
||||||
|
if (rank==0) printf ("Allocating distributions \n");
|
||||||
int dist_mem_size = Np*sizeof(double);
|
int dist_mem_size = Np*sizeof(double);
|
||||||
|
|
||||||
int *NeighborList;
|
int *NeighborList;
|
||||||
// double *f_even,*f_odd;
|
|
||||||
double * dist;
|
double * dist;
|
||||||
double * Velocity;
|
double * Velocity;
|
||||||
//...........................................................................
|
//...........................................................................
|
||||||
@ -187,7 +161,6 @@ int main(int argc, char **argv)
|
|||||||
* AA Algorithm begins here
|
* AA Algorithm begins here
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//ScaLBL_D3Q19_Init(ID, dist, &dist[10*Np], Np, 1, 1);
|
|
||||||
double *DIST;
|
double *DIST;
|
||||||
DIST = new double [19*Np];
|
DIST = new double [19*Np];
|
||||||
double VALUE=0.1;
|
double VALUE=0.1;
|
||||||
@ -215,10 +188,8 @@ int main(int argc, char **argv)
|
|||||||
DIST[17*Np + n] = 1.0;
|
DIST[17*Np + n] = 1.0;
|
||||||
DIST[18*Np + n] = 1.0;
|
DIST[18*Np + n] = 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ScaLBL_CopyToDevice(dist, DIST, 19*Np*sizeof(double));
|
ScaLBL_CopyToDevice(dist, DIST, 19*Np*sizeof(double));
|
||||||
|
|
||||||
|
|
||||||
double *Vz;
|
double *Vz;
|
||||||
Vz= new double [Np];
|
Vz= new double [Np];
|
||||||
size_t SIZE=Np*sizeof(double);
|
size_t SIZE=Np*sizeof(double);
|
||||||
|
Loading…
Reference in New Issue
Block a user