QMCPACK
catch_main.cpp File Reference
+ Include dependency graph for catch_main.cpp:

Go to the source code of this file.

Macros

#define CATCH_CONFIG_RUNNER
 

Functions

int main (int argc, char *argv[])
 

Variables

bool turn_on_output = false
 
std::string UTEST_HAMIL
 
std::string UTEST_WFN
 

Macro Definition Documentation

◆ CATCH_CONFIG_RUNNER

#define CATCH_CONFIG_RUNNER

Definition at line 13 of file catch_main.cpp.

Function Documentation

◆ main()

int main ( int  argc,
char *  argv[] 
)

Definition at line 32 of file catch_main.cpp.

References qmcplusplus::app_log(), OHMMS::Controller, Communicate::finalize(), DeviceManager::initializeGlobalDeviceManager(), Communicate::NodeComm(), outputManager, qmcplusplus::print_mem(), OutputManagerClass::shutOff(), turn_on_output, UTEST_HAMIL, and UTEST_WFN.

33 {
34  Catch::Session session;
35  using namespace Catch::clara;
36  // Build command line parser.
37  auto cli = session.cli() |
38  Opt(UTEST_HAMIL, "UTEST_HAMIL")["--hamil"]("Hamiltonian file to be used by unit test if applicable.") |
39  Opt(UTEST_WFN, "UTEST_WFN")["--wfn"]("Wavefunction file to be used by unit test if applicable.") |
40  Opt(turn_on_output)["--turn-on-printout"]("Turn on QMCPACK output manager printout");
41  session.cli(cli);
42  // Parse arguments.
43  int parser_err = session.applyCommandLine(argc, argv);
44 #ifdef CATCH_MAIN_HAVE_MPI
45  mpi3::environment env(argc, argv);
46  OHMMS::Controller = new Communicate(env.world());
47  if (OHMMS::Controller->rank())
50  // assign accelerators within a node
51  qmcplusplus::DeviceManager::initializeGlobalDeviceManager(node_comm.rank(), node_comm.size());
52 #else
54 #endif
55  if (!turn_on_output)
56  {
57  qmcplusplus::app_log() << "QMCPACK printout is suppressed. Use --turn-on-printout to see all the printout."
58  << std::endl;
60  }
61  qmcplusplus::print_mem("Before running tests", qmcplusplus::app_log());
62  // Run the tests.
63  int result = session.run(argc, argv);
64 #ifdef CATCH_MAIN_HAVE_MPI
66 #endif
67  if (parser_err != 0)
68  {
69  return parser_err;
70  }
71  else
72  {
73  return result;
74  }
75 }
std::ostream & app_log()
Definition: OutputManager.h:65
void shutOff()
Permanently shut off all streams.
bool turn_on_output
Definition: catch_main.cpp:27
Communicate * Controller
Global Communicator for a process.
Definition: Communicate.cpp:35
void print_mem(const std::string &title, std::ostream &log)
Definition: MemoryUsage.cpp:30
OutputManagerClass outputManager(Verbosity::HIGH)
std::string UTEST_WFN
Definition: catch_main.cpp:30
Wrapping information on parallelism.
Definition: Communicate.h:68
Communicate NodeComm() const
provide a node/shared-memory communicator from current (parent) communicator
void finalize()
std::string UTEST_HAMIL
Definition: catch_main.cpp:30
static void initializeGlobalDeviceManager(int local_rank, int local_size)
initialize the global instance of DeviceManager arguments are the same as the constructor ...

Variable Documentation

◆ turn_on_output

bool turn_on_output = false

Definition at line 27 of file catch_main.cpp.

Referenced by main().

◆ UTEST_HAMIL

std::string UTEST_HAMIL

Definition at line 30 of file catch_main.cpp.

Referenced by main().

◆ UTEST_WFN

std::string UTEST_WFN

Definition at line 30 of file catch_main.cpp.

Referenced by main().