From 4832736156525b0db2635dc11827f1b73b023963 Mon Sep 17 00:00:00 2001 From: Stephane Del Pino <stephane.delpino44@gmail.com> Date: Tue, 24 Apr 2018 19:17:45 +0200 Subject: [PATCH] begining of Gmsh file reader --- CMakeLists.txt | 1 + src/CMakeLists.txt | 2 +- src/main.cpp | 12 ++++++++++-- src/mesh/CMakeLists.txt | 13 +++++++++++++ src/mesh/GmshReader.cpp | 13 +++++++++++++ src/mesh/GmshReader.hpp | 13 +++++++++++++ 6 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 src/mesh/CMakeLists.txt create mode 100644 src/mesh/GmshReader.cpp create mode 100644 src/mesh/GmshReader.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 36700ea80..8bd01b180 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,5 +64,6 @@ target_link_libraries( pastis kokkos PastisUtils + PastisMesh PastisExperimental) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index db8252e96..67787648a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -12,7 +12,7 @@ include_directories(utils) include_directories(algebra) # Pastis mesh -#add_subdirectory(mesh) +add_subdirectory(mesh) include_directories(mesh) # Pastis mesh diff --git a/src/main.cpp b/src/main.cpp index dbf5164af..cd5286009 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -19,6 +19,8 @@ #include <TinyVector.hpp> #include <TinyMatrix.hpp> +#include <GmshReader.hpp> + #include <CLI/CLI.hpp> #include <cassert> #include <limits> @@ -27,12 +29,14 @@ int main(int argc, char *argv[]) { long unsigned number = 10; - + std::string filename; { CLI::App app{"Pastis help"}; app.add_option("number,-n,--number", number, "Number of cells");//->required(); + app.add_option("filename,-f,--filename", filename, "gmsh file");//->required(); + int threads=-1; app.add_option("--threads", threads, "Number of Kokkos threads")->check(CLI::Range(1,std::numeric_limits<decltype(threads)>::max())); @@ -116,7 +120,11 @@ int main(int argc, char *argv[]) // } - { // class for acoustic solver test + if (filename != "") { + std::cout << "Reading (gmsh) " << rang::style::underline << filename << rang::style::reset << " ...\n"; + GmshReader gmsh_reader(filename); + } else { + // class for acoustic solver test Kokkos::Timer timer; timer.reset(); Connectivity1D connectivity(number); diff --git a/src/mesh/CMakeLists.txt b/src/mesh/CMakeLists.txt new file mode 100644 index 000000000..f07bc30ba --- /dev/null +++ b/src/mesh/CMakeLists.txt @@ -0,0 +1,13 @@ +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +# ------------------- Source files -------------------- + +add_library( + PastisMesh + GmshReader.cpp) + +#include_directories(${PASTIS_SOURCE_DIR}/utils) + +# Additional dependencies +#add_dependencies(PastisMesh) diff --git a/src/mesh/GmshReader.cpp b/src/mesh/GmshReader.cpp new file mode 100644 index 000000000..9eaaea15f --- /dev/null +++ b/src/mesh/GmshReader.cpp @@ -0,0 +1,13 @@ +#include <GmshReader.hpp> + +#include <iostream> +#include <fstream> + +GmshReader::GmshReader(const std::string& filename) +{ + std::ifstream fin(filename); + if (not fin) { + std::cerr << "cannot read file '" << filename << "'\n"; + std::exit(0); + } +} diff --git a/src/mesh/GmshReader.hpp b/src/mesh/GmshReader.hpp new file mode 100644 index 000000000..eafacfeac --- /dev/null +++ b/src/mesh/GmshReader.hpp @@ -0,0 +1,13 @@ +#ifndef GMSH_READER_HPP +#define GMSH_READER_HPP + +#include <string> + +class GmshReader +{ +public: + GmshReader(const std::string& filename); + ~GmshReader() = default; +}; + +#endif // GMSH_READER_HPP -- GitLab