8 #include "SF_ginkgo_vector.h"
9 #include "SF_ginkgo_matrix.h"
10 #include "SF_ginkgo_solver.h"
12 #include "SF_petsc_vector.h"
13 #include "SF_petsc_matrix.h"
14 #include "SF_petsc_solver.h"
28 template <
typename T,
typename S>
32 throw std::runtime_error(
"The Ginkgo backend was not enabled");
34 init_vector_ginkgo(
object);
39 template <
typename T,
typename S>
43 throw std::runtime_error(
"The Ginkgo backend was not enabled");
45 init_matrix_ginkgo(
object);
50 template <
typename T,
typename S>
54 throw std::runtime_error(
"The Ginkgo backend was not enabled");
56 init_solver_ginkgo(
object);
64 throw std::runtime_error(
"The PETSc backend was not enabled");
66 init_vector_petsc(
object);
71 template <
typename T,
typename S>
75 throw std::runtime_error(
"The PETSc backend was not enabled");
77 init_matrix_petsc(
object);
82 template <
typename T,
typename S>
86 throw std::runtime_error(
"The PETSc backend was not enabled");
88 init_solver_petsc(
object);
106 template <
class T,
class S>
109 if ((param_globals::flavor !=
nullptr) && (std::string{param_globals::flavor} ==
"ginkgo")) {
131 template <
class T,
class S>
137 if ((param_globals::flavor !=
nullptr) && (std::string{param_globals::flavor} ==
"ginkgo")) {
142 (*vec)->init(igsize, ilsize, idpn, ilayout);
159 template <
class T,
class S>
164 if ((param_globals::flavor !=
nullptr) && (std::string{param_globals::flavor} ==
"ginkgo")) {
169 (*vec)->init(mesh, i, ltype);
184 template <
class T,
class S>
188 if ((param_globals::flavor !=
nullptr) && (std::string{param_globals::flavor} ==
"ginkgo")) {
207 template <
class T,
class S>
210 if ((param_globals::flavor !=
nullptr) && (std::string{param_globals::flavor} ==
"ginkgo")) {
228 template <
class T,
class S>
231 if ((param_globals::flavor !=
nullptr) && (std::string{param_globals::flavor} ==
"ginkgo")) {
void init_or_throw_petsc(SF::abstract_vector< SF_int, SF_real > **object)
typename non_deduced< T >::type non_deduced_t
void init_or_throw_ginkgo(SF::abstract_vector< T, S > **object)
void init_solver(SF::abstract_linear_solver< T, S > **sol)
void init_vector(SF::abstract_vector< T, S > **vec)
void init_matrix(SF::abstract_matrix< T, S > **mat)