47 typedef typename super_type::scalar_type scalar_type;
48 typedef typename super_type::local_ordinal_type local_ordinal_type;
49 typedef typename super_type::global_size_type global_size_type;
51 typedef
TypeMap<Amesos2::TachoSolver,scalar_type> type_map;
58 typedef typename type_map::type tacho_type;
59 typedef typename type_map::magnitude_type magnitude_type;
61 typedef
FunctionMap<Amesos2::TachoSolver,tacho_type> function_map;
64 typedef Tacho::ordinal_type ordinal_type;
65 typedef Tacho::size_type size_type;
67 typedef Kokkos::DefaultExecutionSpace exec_space_type;
68 typedef Kokkos::DefaultHostExecutionSpace host_exec_space_type;
71 Tacho::UseThisDevice<exec_space_type>::device_type device_type;
73 Tacho::UseThisDevice<host_exec_space_type>::device_type host_device_type;
75 typedef Tacho::DummyTaskScheduler<exec_space_type> scheduler_type;
77 typedef Kokkos::View<size_type*, device_type> device_size_type_array;
78 typedef Kokkos::View<ordinal_type*, device_type> device_ordinal_type_array;
79 typedef Kokkos::View<tacho_type*, device_type> device_value_type_array;
83 typedef Kokkos::View<size_type*, host_device_type> host_size_type_array;
84 typedef Kokkos::View<ordinal_type*, host_device_type> host_ordinal_type_array;
96 Teuchos::RCP<Vector> X,
97 Teuchos::RCP<const Vector> B);
148 int
solve_impl(const Teuchos::Ptr<MultiVecAdapter<Vector> > X,
149 const Teuchos::Ptr<const MultiVecAdapter<Vector> > B) const;
160 void setParameters_impl(
161 const Teuchos::RCP<Teuchos::ParameterList> & parameterList );
190 mutable struct TACHOData {
191 typename Tacho::Solver<tacho_type, scheduler_type> solver;
196 int small_problem_threshold_size;
205 typedef typename Tacho::Solver<tacho_type, scheduler_type>::value_type_matrix
206 device_solve_array_t;
209 mutable device_solve_array_t workspace_;
212 mutable device_solve_array_t xValues_;
213 mutable device_solve_array_t bValues_;
216 device_value_type_array device_nzvals_view_;
219 host_size_type_array host_row_ptr_view_;
220 host_ordinal_type_array host_cols_view_;