diff --git a/CMakeLists.txt b/CMakeLists.txt index 9c7c296..8ad0e9f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,6 @@ endif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CXX_FLAGS) option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF) include(GNUInstallDirs) -include(CMakeDependentOption) set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) @@ -19,14 +18,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) ##---------------------------------------------------------------------------## find_package(Cabana REQUIRED) -if( NOT Cabana_ENABLE_MPI ) - message( FATAL_ERROR "Cabana must be compiled with MPI" ) -endif() -if( NOT Cabana_ENABLE_CAJITA ) - message( FATAL_ERROR "Cabana must be compiled with Cajita" ) -endif() - -cmake_dependent_option(CabanaMD_ENABLE_LB "Utilize Cabana load balancer" ON Cabana_ENABLE_ALL OFF) +option(CabanaMD_ENABLE_LB "Utilize Cabana load balancer" OFF) ##---------------------------------------------------------------------------## # Set up optional libraries diff --git a/src/cabanamd.h b/src/cabanamd.h index 75a87b2..b69ae9a 100644 --- a/src/cabanamd.h +++ b/src/cabanamd.h @@ -58,8 +58,8 @@ #include #ifdef CabanaMD_ENABLE_LB -#include -#include +#include +#include #endif class CabanaMD @@ -87,7 +87,7 @@ class CbnMD : public CabanaMD Binning *binning; InputFile *input; #ifdef CabanaMD_ENABLE_LB - Cajita::Experimental::LoadBalancer> *lb; + Cabana::Grid::Experimental::LoadBalancer> *lb; #endif void init( InputCL cl ) override; diff --git a/src/cabanamd_impl.h b/src/cabanamd_impl.h index 367e5a7..beba2d2 100644 --- a/src/cabanamd_impl.h +++ b/src/cabanamd_impl.h @@ -229,7 +229,7 @@ void CbnMD::init( InputCL commandline ) } #ifdef CabanaMD_ENABLE_LB - lb = new Cajita::Experimental::LoadBalancer>( + lb = new Cabana::Grid::Experimental::LoadBalancer>( MPI_COMM_WORLD, system->global_grid ); #endif diff --git a/src/system.h b/src/system.h index f1a89b6..f5ab153 100644 --- a/src/system.h +++ b/src/system.h @@ -95,12 +95,12 @@ class SystemCommon T_X_FLOAT ghost_mesh_lo_x, ghost_mesh_lo_y, ghost_mesh_lo_z; T_X_FLOAT ghost_mesh_hi_x, ghost_mesh_hi_y, ghost_mesh_hi_z; T_X_FLOAT halo_width; - std::shared_ptr partitioner; - std::shared_ptr>> + std::shared_ptr> partitioner; + std::shared_ptr>> global_mesh; - std::shared_ptr>> + std::shared_ptr>> local_grid; - std::shared_ptr>> + std::shared_ptr>> global_grid; // Only needed for current comm @@ -149,7 +149,7 @@ class SystemCommon { halo_width = ghost_cutoff; // Create the MPI partitions. - partitioner = std::make_shared(); + partitioner = std::make_shared>(); ranks_per_dim = partitioner->ranksPerDimension( MPI_COMM_WORLD, {} ); int cells_per_dim_per_rank = 1; @@ -162,7 +162,7 @@ class SystemCommon cells_per_dim_per_rank * ranks_per_dim[2] }; // Create global mesh of MPI partitions. - global_mesh = Cajita::createUniformGlobalMesh( low_corner, high_corner, + global_mesh = Cabana::Grid::createUniformGlobalMesh( low_corner, high_corner, cells_per_rank ); global_mesh_x = global_mesh->extent( 0 ); @@ -171,7 +171,7 @@ class SystemCommon // Create the global grid. std::array is_periodic = { true, true, true }; - global_grid = Cajita::createGlobalGrid( MPI_COMM_WORLD, global_mesh, + global_grid = Cabana::Grid::createGlobalGrid( MPI_COMM_WORLD, global_mesh, is_periodic, *partitioner ); for ( int d = 0; d < 3; d++ ) @@ -193,11 +193,11 @@ class SystemCommon // number of ranks (per dim) does not change. We also assume that the // position of this rank in the cartesian grid of ranks does not change. void update_global_grid( const std::shared_ptr< - Cajita::GlobalGrid>> + Cabana::Grid::GlobalGrid>> &new_global_grid ) { global_grid = new_global_grid; - local_grid = Cajita::createLocalGrid( global_grid, halo_width ); + local_grid = Cabana::Grid::createLocalGrid( global_grid, halo_width ); update_mesh_info(); } @@ -247,23 +247,23 @@ class SystemCommon // Update local_mesh_* and ghost_mesh* info from global grid void update_mesh_info() { - auto local_mesh = Cajita::createLocalMesh( *local_grid ); - - local_mesh_lo_x = local_mesh.lowCorner( Cajita::Own(), 0 ); - local_mesh_lo_y = local_mesh.lowCorner( Cajita::Own(), 1 ); - local_mesh_lo_z = local_mesh.lowCorner( Cajita::Own(), 2 ); - local_mesh_hi_x = local_mesh.highCorner( Cajita::Own(), 0 ); - local_mesh_hi_y = local_mesh.highCorner( Cajita::Own(), 1 ); - local_mesh_hi_z = local_mesh.highCorner( Cajita::Own(), 2 ); - ghost_mesh_lo_x = local_mesh.lowCorner( Cajita::Ghost(), 0 ); - ghost_mesh_lo_y = local_mesh.lowCorner( Cajita::Ghost(), 1 ); - ghost_mesh_lo_z = local_mesh.lowCorner( Cajita::Ghost(), 2 ); - ghost_mesh_hi_x = local_mesh.highCorner( Cajita::Ghost(), 0 ); - ghost_mesh_hi_y = local_mesh.highCorner( Cajita::Ghost(), 1 ); - ghost_mesh_hi_z = local_mesh.highCorner( Cajita::Ghost(), 2 ); - local_mesh_x = local_mesh.extent( Cajita::Own(), 0 ); - local_mesh_y = local_mesh.extent( Cajita::Own(), 1 ); - local_mesh_z = local_mesh.extent( Cajita::Own(), 2 ); + auto local_mesh = Cabana::Grid::createLocalMesh( *local_grid ); + + local_mesh_lo_x = local_mesh.lowCorner( Cabana::Grid::Own(), 0 ); + local_mesh_lo_y = local_mesh.lowCorner( Cabana::Grid::Own(), 1 ); + local_mesh_lo_z = local_mesh.lowCorner( Cabana::Grid::Own(), 2 ); + local_mesh_hi_x = local_mesh.highCorner( Cabana::Grid::Own(), 0 ); + local_mesh_hi_y = local_mesh.highCorner( Cabana::Grid::Own(), 1 ); + local_mesh_hi_z = local_mesh.highCorner( Cabana::Grid::Own(), 2 ); + ghost_mesh_lo_x = local_mesh.lowCorner( Cabana::Grid::Ghost(), 0 ); + ghost_mesh_lo_y = local_mesh.lowCorner( Cabana::Grid::Ghost(), 1 ); + ghost_mesh_lo_z = local_mesh.lowCorner( Cabana::Grid::Ghost(), 2 ); + ghost_mesh_hi_x = local_mesh.highCorner( Cabana::Grid::Ghost(), 0 ); + ghost_mesh_hi_y = local_mesh.highCorner( Cabana::Grid::Ghost(), 1 ); + ghost_mesh_hi_z = local_mesh.highCorner( Cabana::Grid::Ghost(), 2 ); + local_mesh_x = local_mesh.extent( Cabana::Grid::Own(), 0 ); + local_mesh_y = local_mesh.extent( Cabana::Grid::Own(), 1 ); + local_mesh_z = local_mesh.extent( Cabana::Grid::Own(), 2 ); } };