diff --git a/experimental/AcousticSolverTest.cpp b/experimental/AcousticSolverTest.cpp index 67a54b78881ab3d65f1c5767019eac4dced40fce..06b0382dea45741a25665907ba009cc7af311015 100644 --- a/experimental/AcousticSolverTest.cpp +++ b/experimental/AcousticSolverTest.cpp @@ -388,12 +388,12 @@ AcousticSolverTest::AcousticSolverTest(const long int& nj) ++iteration; } - // { - // std::ofstream fout("rho"); - // for (int j=0; j<nj; ++j) { - // fout << xj[j][0] << ' ' << rhoj[j] << '\n'; - // } - // } + { + std::ofstream fout("rho"); + for (int j=0; j<nj; ++j) { + fout << xj[j][0] << ' ' << rhoj[j] << '\n'; + } + } std::cout << "* " << rang::style::underline << "Final time" << rang::style::reset << ": " << rang::fgB::green << t << rang::fg::reset << " (" << iteration << " iterations)\n"; diff --git a/experimental/AcousticSolverWithMesh.hpp b/experimental/AcousticSolverWithMesh.hpp index b8e0ad711efb0843b6041dd2b93d5e439d46b68a..d17a54e402bae2c4ecbc359182e7875ccd8400f9 100644 --- a/experimental/AcousticSolverWithMesh.hpp +++ b/experimental/AcousticSolverWithMesh.hpp @@ -87,9 +87,9 @@ private: KOKKOS_INLINE_FUNCTION const Kokkos::View<const Rdd*> computeAr(const Kokkos::View<const Rdd*[2]>& Ajr) { - const Kokkos::View<const size_t*[2]>& node_cells = m_connectivity.nodeCells(); - const Kokkos::View<const size_t*[2]>& node_cell_local_node = m_connectivity.nodeCellLocalNode(); - const Kokkos::View<const size_t*>& node_nb_cells = m_connectivity.nodeNbCells(); + const Kokkos::View<const unsigned int*[2]> node_cells = m_connectivity.nodeCells(); + const Kokkos::View<const unsigned short*[2]> node_cell_local_node = m_connectivity.nodeCellLocalNode(); + const Kokkos::View<const unsigned short*> node_nb_cells = m_connectivity.nodeNbCells(); Kokkos::parallel_for(m_nr, KOKKOS_LAMBDA(const int& r) { Rdd sum = zero; @@ -110,9 +110,9 @@ private: const Kokkos::View<const Rd*[2]>& Cjr, const Kokkos::View<const Rd*>& uj, const Kokkos::View<const double*>& pj) { - const Kokkos::View<const size_t*[2]>& node_cells = m_connectivity.nodeCells(); - const Kokkos::View<const size_t*[2]>& node_cell_local_node = m_connectivity.nodeCellLocalNode(); - const Kokkos::View<const size_t*>& node_nb_cells = m_connectivity.nodeNbCells(); + const Kokkos::View<const unsigned int*[2]>& node_cells = m_connectivity.nodeCells(); + const Kokkos::View<const unsigned short*[2]>& node_cell_local_node = m_connectivity.nodeCellLocalNode(); + const Kokkos::View<const unsigned short*>& node_nb_cells = m_connectivity.nodeNbCells(); Kokkos::parallel_for(m_nr, KOKKOS_LAMBDA(const int& r) { Rd& br = m_br(r); @@ -147,7 +147,7 @@ private: const Kokkos::View<const Rd*[2]>& Cjr, const Kokkos::View<const Rd*>& uj, const Kokkos::View<const double*>& pj) { - const Kokkos::View<const size_t*[2]>& cell_nodes = m_connectivity.cellNodes(); + const Kokkos::View<const unsigned int*[2]>& cell_nodes = m_connectivity.cellNodes(); Kokkos::parallel_for(m_nj, KOKKOS_LAMBDA(const int& j) { for (int r=0; r<2; ++r) { m_Fjr(j,r) = Ajr(j,r)*(uj(j)-ur(cell_nodes(j,r)))+pj(j)*Cjr(j,r); @@ -248,7 +248,7 @@ public: Kokkos::View<Rd*> xr = mesh.xr(); - const Kokkos::View<const size_t*[2]>& cell_nodes = m_connectivity.cellNodes(); + const Kokkos::View<const unsigned int*[2]>& cell_nodes = m_connectivity.cellNodes(); Kokkos::parallel_for(m_nj, KOKKOS_LAMBDA(const int& j){ xj[j] = 0.5*(xr[cell_nodes(j,0)]+xr[cell_nodes(j,1)]); }); diff --git a/experimental/Connectivity1D.hpp b/experimental/Connectivity1D.hpp index a088827fd5dcd6a139d8859a4d6068ab66572c7d..ddfd4d7aa620e2f58e52fce37d0aad9a07697ccc 100644 --- a/experimental/Connectivity1D.hpp +++ b/experimental/Connectivity1D.hpp @@ -13,10 +13,10 @@ private: const size_t m_number_of_cells; const size_t m_number_of_nodes; - Kokkos::View<size_t*[2]> m_cell_nodes; - Kokkos::View<size_t*> m_node_nb_cells; - Kokkos::View<size_t*[2]> m_node_cells; - Kokkos::View<size_t*[2]> m_node_cell_local_node; + Kokkos::View<unsigned int*[2]> m_cell_nodes; + Kokkos::View<unsigned short*> m_node_nb_cells; + Kokkos::View<unsigned int*[2]> m_node_cells; + Kokkos::View<unsigned short*[2]> m_node_cell_local_node; public: const size_t& numberOfNodes() const @@ -29,22 +29,22 @@ public: return m_number_of_cells; } - const Kokkos::View<const size_t*[2]> cellNodes() const + const Kokkos::View<const unsigned int*[2]> cellNodes() const { return m_cell_nodes; } - const Kokkos::View<const size_t*> nodeNbCells() const + const Kokkos::View<const unsigned short*> nodeNbCells() const { return m_node_nb_cells; } - const Kokkos::View<const size_t*[2]> nodeCells() const + const Kokkos::View<const unsigned int*[2]> nodeCells() const { return m_node_cells; } - const Kokkos::View<const size_t*[2]> nodeCellLocalNode() const + const Kokkos::View<const unsigned short*[2]> nodeCellLocalNode() const { return m_node_cell_local_node; } diff --git a/main.cpp b/main.cpp index 4039f91df080594b4397fbbb8e566e2004c1dcbe..66dbbd7d062e8433fa19dcc5e2196f02ddeba05f 100644 --- a/main.cpp +++ b/main.cpp @@ -109,25 +109,35 @@ int main(int argc, char *argv[]) { // class for acoustic solver test Kokkos::Timer timer; timer.reset(); - Connectivity1D connectivity(number); - Mesh<Connectivity1D> mesh(connectivity); - AcousticSolverWithMesh<Mesh<Connectivity1D>> acoustic_solver(mesh); - method_cost_map["AcousticSolverWithMesh"] = timer.seconds(); + AcousticSolverTest acoustic_solver(number); + method_cost_map["AcousticSolverTest"] = timer.seconds(); } + { // class for acoustic solver test Kokkos::Timer timer; timer.reset(); - AcousticSolverTest acoustic_solver(number); - method_cost_map["AcousticSolverTest"] = timer.seconds(); + Connectivity1D connectivity(number); + Mesh<Connectivity1D> mesh(connectivity); + AcousticSolverWithMesh<Mesh<Connectivity1D>> acoustic_solver(mesh); + method_cost_map["AcousticSolverWithMesh"] = timer.seconds(); } - Kokkos::View<TinyVector<2,double>*[2]> test("test", 10); constexpr size_t N = 3; std::cout << "sizeof(TinyVector<" << N << ",double>)=" << sizeof(TinyVector<N,double>) << std::endl; std::cout << "sizeof(double)=" << sizeof(double) << std::endl; - + std::cout << "sizeof(size_t) = " << sizeof(size_t) << std::endl; + std::cout << "sizeof(int) = " << sizeof(int) << std::endl; + std::cout << "sizeof(unsigned int) = " << sizeof(unsigned int) << std::endl; + std::cout << "sizeof(unsigned short) = " << sizeof(unsigned short) << std::endl; + std::cout << "std::numeric_limits<size_t>::max() = " << std::numeric_limits<size_t>::max() << std::endl; + std::cout << "std::numeric_limits<int>::max() = " << std::numeric_limits<int>::max() << std::endl; + std::cout << "std::numeric_limits<unsigned int>::max() = " << std::numeric_limits<unsigned int>::max() << std::endl; + std::cout << "std::numeric_limits<short>::max() = " << std::numeric_limits<short>::max() << std::endl; + std::cout << "std::numeric_limits<unsigned short>::max() = " << std::numeric_limits<unsigned short>::max() << std::endl; + std::cout << "std::numeric_limits<char>::max() = " << unsigned(std::numeric_limits<char>::max()) << std::endl; + std::cout << "std::numeric_limits<unsigned char>::max() = " << unsigned(std::numeric_limits<unsigned char>::max()) << std::endl; Kokkos::finalize();