Skip to content
Snippets Groups Projects
Select Git revision
  • f2e4b332e3152f609289b19f222af5e267868ba6
  • develop default protected
  • feature/variational-hydro
  • origin/stage/bouguettaia
  • feature/gmsh-reader
  • feature/reconstruction
  • save_clemence
  • feature/kinetic-schemes
  • feature/local-dt-fsi
  • feature/composite-scheme-sources
  • feature/composite-scheme-other-fluxes
  • feature/serraille
  • feature/composite-scheme
  • hyperplastic
  • feature/polynomials
  • feature/gks
  • feature/implicit-solver-o2
  • feature/coupling_module
  • feature/implicit-solver
  • feature/merge-local-dt-fsi
  • master protected
  • v0.5.0 protected
  • v0.4.1 protected
  • v0.4.0 protected
  • v0.3.0 protected
  • v0.2.0 protected
  • v0.1.0 protected
  • Kidder
  • v0.0.4 protected
  • v0.0.3 protected
  • v0.0.2 protected
  • v0 protected
  • v0.0.1 protected
33 results

test_reconstruction.cpp

Blame
  • PugsUtils.cpp 3.63 KiB
    #include <PugsOStream.hpp>
    #include <PugsUtils.hpp>
    
    #include <Kokkos_Core.hpp>
    
    #include <BuildInfo.hpp>
    #include <RevisionInfo.hpp>
    
    #include <Messenger.hpp>
    
    #include <rang.hpp>
    
    #include <ConsoleManager.hpp>
    #include <FPEManager.hpp>
    #include <SignalManager.hpp>
    
    #include <CLI/CLI.hpp>
    
    std::string
    initialize(int& argc, char* argv[])
    {
      parallel::Messenger::create(argc, argv);
    
      long unsigned number = 10;
      std::string filename;
    
      pout() << "Pugs version: " << rang::style::bold << RevisionInfo::version()
             << rang::style::reset << '\n';
    
      pout() << "-------------------- " << rang::fg::green << "git info"
             << rang::fg::reset << " -------------------------" << '\n';
      pout() << "tag:  " << rang::style::bold << RevisionInfo::gitTag()
             << rang::style::reset << '\n';
      pout() << "HEAD: " << rang::style::bold << RevisionInfo::gitHead()
             << rang::style::reset << '\n';
      pout() << "hash: " << rang::style::bold << RevisionInfo::gitHash()
             << rang::style::reset << "  (";
    
      if (RevisionInfo::gitIsClean()) {
        pout() << rang::fgB::green << "clean" << rang::fg::reset;
      } else {
        pout() << rang::fgB::red << "dirty" << rang::fg::reset;
      }
      pout() << ")\n";
      pout() << "-------------------- " << rang::fg::green << "build info"
             << rang::fg::reset << " -----------------------" << '\n';
      pout() << "type:     " << rang::style::bold << BuildInfo::type()
             << rang::style::reset << '\n';
      pout() << "compiler: " << rang::style::bold << BuildInfo::compiler()
             << rang::style::reset << '\n';
      pout() << "kokkos:   " << rang::style::bold << BuildInfo::kokkosDevices()
             << rang::style::reset << '\n';
      pout() << "mpi:      " << rang::style::bold << BuildInfo::mpiLibrary()
             << rang::style::reset << '\n';
      pout() << "-------------------------------------------------------\n";
      {
        CLI::App app{"Pugs help"};
    
        app.add_option("-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()));
    
        std::string colorize = "auto";
        app.add_set("--colorize", colorize, {"auto", "yes", "no"},
                    "Colorize console output", true);
    
        bool disable_fpe = false;
        app.add_flag("--no-fpe", disable_fpe,
                     "Do not trap floating point exceptions");
        bool disable_signals = false;
        app.add_flag("--no-signal", disable_signals, "Do not catches signals");
    
        std::string pause_on_error = "auto";
        app.add_set("--pause-on-error", pause_on_error, {"auto", "yes", "no"},
                    "Pause for debugging on unexpected error", true);
    
        std::atexit([]() { pout() << rang::style::reset; });
        try {
          app.parse(argc, argv);
        } catch (const CLI::ParseError& e) {
          parallel::Messenger::destroy();
          std::exit(app.exit(e, pout(), perr()));
        }
    
        ConsoleManager::init(colorize);
        FPEManager::init(not disable_fpe);
        SignalManager::setPauseForDebug(pause_on_error);
        SignalManager::init(not disable_signals);
      }
    
      Kokkos::initialize(argc, argv);
      pout() << "-------------------- " << rang::fg::green << "exec info"
             << rang::fg::reset << " ------------------------" << '\n';
    
      pout() << rang::style::bold;
      Kokkos::DefaultExecutionSpace::print_configuration(pout());
      pout() << rang::style::reset;
      pout() << "-------------------------------------------------------\n";
    
      return filename;
    }
    
    void
    finalize()
    {
      Kokkos::finalize();
      parallel::Messenger::destroy();
    }