OGS
LinearSolverLibrarySetup.h
Go to the documentation of this file.
1
10
11
#pragma once
12
21
22
#include "
BaseLib/MPI.h
"
23
#include "
NumLib/DOF/GlobalMatrixProviders.h
"
24
25
#if defined(USE_PETSC)
26
#include <mpi.h>
27
#include <petsc.h>
28
29
#include "
BaseLib/MPI.h
"
30
31
namespace
ApplicationsLib
32
{
33
struct
LinearSolverLibrarySetup
final
34
{
35
LinearSolverLibrarySetup
(
int
argc,
char
* argv[])
36
{
37
char
help[] =
"ogs6 with PETSc \n"
;
38
PETSC_COMM_WORLD =
BaseLib::MPI::OGS_COMM_WORLD
;
39
PetscInitialize(&argc, &argv,
nullptr
, help);
40
MPI_Comm_set_errhandler(PETSC_COMM_WORLD, MPI_ERRORS_RETURN);
41
}
42
43
~LinearSolverLibrarySetup
()
44
{
45
NumLib::cleanupGlobalMatrixProviders
();
46
PetscFinalize();
47
}
48
};
49
}
// namespace ApplicationsLib
50
#elif defined(USE_LIS)
51
#include "
MathLib/LinAlg/Lis/LisWrapper.h
"
52
namespace
ApplicationsLib
53
{
54
struct
LinearSolverLibrarySetup
final
55
{
56
LinearSolverLibrarySetup
(
int
argc,
char
* argv[])
57
{
58
lis_initialize(&argc, &argv);
59
}
60
61
~LinearSolverLibrarySetup
()
62
{
63
NumLib::cleanupGlobalMatrixProviders
();
64
lis_finalize();
65
}
66
};
67
}
// namespace ApplicationsLib
68
#else
69
namespace
ApplicationsLib
70
{
71
struct
LinearSolverLibrarySetup
final
72
{
73
LinearSolverLibrarySetup
(
int
/*argc*/
,
char
*
/*argv*/
[])
74
{
75
#ifdef _OPENMP
76
const
char
* omp_num_threads_env = std::getenv(
"OMP_NUM_THREADS"
);
77
if
(omp_num_threads_env)
78
{
79
INFO
(
"OMP_NUM_THREADS is set to: {:s}"
, omp_num_threads_env);
80
}
81
else
82
{
83
WARN
(
"OMP_NUM_THREADS is not set, falling back to: {:d}"
,
84
omp_get_max_threads());
85
}
86
#endif
87
INFO
(
"Eigen use {:d} threads"
, Eigen::nbThreads());
88
}
89
~LinearSolverLibrarySetup
() {
NumLib::cleanupGlobalMatrixProviders
(); }
90
};
91
}
// namespace ApplicationsLib
92
#endif
GlobalMatrixProviders.h
LisWrapper.h
INFO
void INFO(fmt::format_string< Args... > fmt, Args &&... args)
Definition
Logging.h:36
WARN
void WARN(fmt::format_string< Args... > fmt, Args &&... args)
Definition
Logging.h:42
MPI.h
ApplicationsLib
Definition
LinearSolverLibrarySetup.h:32
BaseLib::MPI::OGS_COMM_WORLD
MPI_Comm OGS_COMM_WORLD
Definition
MPI.cpp:15
NumLib::cleanupGlobalMatrixProviders
void cleanupGlobalMatrixProviders()
Definition
GlobalMatrixProviders.cpp:29
ApplicationsLib::LinearSolverLibrarySetup
Definition
LinearSolverLibrarySetup.h:34
ApplicationsLib::LinearSolverLibrarySetup::LinearSolverLibrarySetup
LinearSolverLibrarySetup(int argc, char *argv[])
Definition
LinearSolverLibrarySetup.h:35
ApplicationsLib::LinearSolverLibrarySetup::~LinearSolverLibrarySetup
~LinearSolverLibrarySetup()
Definition
LinearSolverLibrarySetup.h:43
Applications
ApplicationsLib
LinearSolverLibrarySetup.h
Generated by
1.14.0