44 #ifndef AMESOS2_UMFPACK_DECL_HPP
45 #define AMESOS2_UMFPACK_DECL_HPP
48 #include "Amesos2_SolverCore.hpp"
49 #include "Amesos2_Umfpack_FunctionMap.hpp"
61 template <
class Matrix,
77 typedef typename super_type::scalar_type scalar_type;
78 typedef typename super_type::local_ordinal_type local_ordinal_type;
79 typedef typename super_type::global_ordinal_type global_ordinal_type;
80 typedef typename super_type::global_size_type global_size_type;
89 typedef typename type_map::type umfpack_type;
90 typedef typename type_map::magnitude_type magnitude_type;
94 typedef Kokkos::DefaultHostExecutionSpace HostExecSpaceType;
95 typedef Kokkos::View<int*, HostExecSpaceType> host_size_type_array;
96 typedef Kokkos::View<int*, HostExecSpaceType> host_ordinal_type_array;
97 typedef Kokkos::View<umfpack_type*, HostExecSpaceType> host_value_type_array;
108 Umfpack(Teuchos::RCP<const Matrix> A,
109 Teuchos::RCP<Vector> X,
110 Teuchos::RCP<const Vector> B);
159 int
solve_impl(const Teuchos::Ptr<MultiVecAdapter<Vector> > X,
160 const Teuchos::Ptr<const MultiVecAdapter<Vector> > B) const;
171 void setParameters_impl(
172 const Teuchos::RCP<Teuchos::ParameterList> & parameterList );
195 mutable struct UMFPACKData {
201 double Info[UMFPACK_INFO];
202 double Control[UMFPACK_CONTROL];
215 Teuchos::Array<umfpack_type>
xvals_;
int ldx_;
217 Teuchos::Array<umfpack_type>
bvals_;
int ldb_;
226 #ifdef HAVE_TEUCHOS_COMPLEX
227 typedef Meta::make_list4<float,
233 typedef Meta::make_list2<float,
241 #endif // AMESOS2_UMFPACK_DECL_HPP
Amesos2::SolverCore: A templated interface for interaction with third-party direct sparse solvers...
Definition: Amesos2_SolverCore_decl.hpp:105
bool matrixShapeOK_impl() const
Determines whether the shape of the matrix is OK for this solver.
Definition: Amesos2_Umfpack_def.hpp:221
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters_impl() const
Definition: Amesos2_Umfpack_def.hpp:248
int symbolicFactorization_impl()
Perform symbolic factorization of the matrix using Umfpack.
Definition: Amesos2_Umfpack_def.hpp:96
Map types to solver-specific data-types and enums.
Definition: Amesos2_TypeMap.hpp:82
int solve_impl(const Teuchos::Ptr< MultiVecAdapter< Vector > > X, const Teuchos::Ptr< const MultiVecAdapter< Vector > > B) const
Umfpack specific solve.
Definition: Amesos2_Umfpack_def.hpp:142
bool loadA_impl(EPhase current_phase)
Reads matrix data into internal structures.
Definition: Amesos2_Umfpack_def.hpp:266
Provides traits about solvers.
Definition: Amesos2_SolverTraits.hpp:71
int numericFactorization_impl()
Umfpack specific numeric factorization.
Definition: Amesos2_Umfpack_def.hpp:118
Teuchos::Array< umfpack_type > xvals_
Persisting 1D store for X.
Definition: Amesos2_Umfpack_decl.hpp:215
Amesos2 interface to the Umfpack package.
Definition: Amesos2_Umfpack_decl.hpp:63
host_size_type_array colptr_view_
Stores the row indices of the nonzero entries.
Definition: Amesos2_Umfpack_decl.hpp:211
int preOrdering_impl()
Performs pre-ordering on the matrix to increase efficiency.
Definition: Amesos2_Umfpack_def.hpp:88
std::string description() const
Returns a short description of this Solver.
Definition: Amesos2_Umfpack_def.hpp:79
std::string name() const override
Return the name of this solver.
Definition: Amesos2_SolverCore_def.hpp:759
host_ordinal_type_array rowind_view_
Stores the location in Ai_ and Aval_ that starts row j.
Definition: Amesos2_Umfpack_decl.hpp:209
Interface to Amesos2 solver objects.
Definition: Amesos2_Solver_decl.hpp:78
Passes functions to TPL functions based on type.
Definition: Amesos2_FunctionMap.hpp:76
Teuchos::Array< umfpack_type > bvals_
Persisting 1D store for B.
Definition: Amesos2_Umfpack_decl.hpp:217
Provides access to interesting solver traits.
host_value_type_array nzvals_view_
Stores the values of the nonzero entries for Umfpack.
Definition: Amesos2_Umfpack_decl.hpp:207