11 #include "SF_ginkgo_vector.h"
12 #include "SF_ginkgo_matrix.h"
13 #include "SF_ginkgo_solver.h"
15 #include "SF_petsc_vector.h"
16 #include "SF_petsc_matrix.h"
17 #include "SF_petsc_solver.h"
31 template <
typename T,
typename S>
35 throw std::runtime_error(
"The Ginkgo backend was not enabled");
37 init_vector_ginkgo(
object);
42 template <
typename T,
typename S>
46 throw std::runtime_error(
"The Ginkgo backend was not enabled");
48 init_matrix_ginkgo(
object);
53 template <
typename T,
typename S>
57 throw std::runtime_error(
"The Ginkgo backend was not enabled");
59 init_solver_ginkgo(
object);
67 throw std::runtime_error(
"The PETSc backend was not enabled");
69 init_vector_petsc(
object);
74 template <
typename T,
typename S>
78 throw std::runtime_error(
"The PETSc backend was not enabled");
80 init_matrix_petsc(
object);
85 template <
typename T,
typename S>
89 throw std::runtime_error(
"The PETSc backend was not enabled");
91 init_solver_petsc(
object);
109 template <
class T,
class S>
112 if ((param_globals::flavor !=
nullptr) && (std::string{param_globals::flavor} ==
"ginkgo")) {
134 template <
class T,
class S>
140 if ((param_globals::flavor !=
nullptr) && (std::string{param_globals::flavor} ==
"ginkgo")) {
145 (*vec)->init(igsize, ilsize, idpn, ilayout);
162 template <
class T,
class S>
167 if ((param_globals::flavor !=
nullptr) && (std::string{param_globals::flavor} ==
"ginkgo")) {
172 (*vec)->init(mesh, i, ltype);
187 template <
class T,
class S>
191 if ((param_globals::flavor !=
nullptr) && (std::string{param_globals::flavor} ==
"ginkgo")) {
210 template <
class T,
class S>
213 if ((param_globals::flavor !=
nullptr) && (std::string{param_globals::flavor} ==
"ginkgo")) {
231 template <
class T,
class S>
234 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)