20 #ifndef AMESOS2_LAPACK_DECL_HPP
21 #define AMESOS2_LAPACK_DECL_HPP
23 #include <Teuchos_ScalarTraits.hpp>
24 #include <Teuchos_SerialDenseSolver.hpp>
25 #include <Teuchos_SerialDenseMatrix.hpp>
28 #include "Amesos2_SolverCore.hpp"
44 template <
class Matrix,
60 typedef typename super_type::scalar_type scalar_type;
61 typedef typename super_type::local_ordinal_type local_ordinal_type;
62 typedef typename super_type::global_ordinal_type global_ordinal_type;
63 typedef typename super_type::global_size_type global_size_type;
66 typedef typename MatrixTraits<Matrix>::impl_scalar_type impl_scalar_type;
68 typedef typename Teuchos::ScalarTraits<scalar_type>::magnitudeType magnitude_type;
70 typedef Kokkos::DefaultHostExecutionSpace HostExecSpaceType;
71 typedef Kokkos::View<int*, HostExecSpaceType> host_size_type_array;
72 typedef Kokkos::View<int*, HostExecSpaceType> host_ordinal_type_array;
73 typedef Kokkos::View<impl_scalar_type*, HostExecSpaceType> host_value_type_array;
84 Lapack(Teuchos::RCP<const Matrix> A,
85 Teuchos::RCP<Vector> X,
86 Teuchos::RCP<const Vector> B);
126 int
solve_impl(const Teuchos::Ptr<MultiVecAdapter<Vector> > X,
127 const Teuchos::Ptr<const MultiVecAdapter<Vector> > B) const;
194 Teuchos::SerialDenseMatrix<int,scalar_type>
lu_;
198 mutable Teuchos::SerialDenseSolver<int,scalar_type>
solver_;
220 typedef Meta::make_list2<float, double> supported_scalars;
226 #endif // AMESOS2_NEWSOLVER_DECL_HPP
Teuchos::Array< int > colptr_
Stores the location in Ai_ and Aval_ that starts col j.
Definition: Amesos2_Lapack_decl.hpp:180
Amesos2::SolverCore: A templated interface for interaction with third-party direct sparse solvers...
Definition: Amesos2_SolverCore_decl.hpp:71
Amesos2 interface to the LAPACK.
Definition: Amesos2_Lapack_decl.hpp:46
int symbolicFactorization_impl()
No-op.
Definition: Amesos2_Lapack_def.hpp:63
host_size_type_array colptr_view_
Stores the row indices of the nonzero entries.
Definition: Amesos2_Lapack_decl.hpp:190
Teuchos::SerialDenseMatrix< int, scalar_type > lu_
L and U storage.
Definition: Amesos2_Lapack_decl.hpp:194
Teuchos::SerialDenseSolver< int, scalar_type > solver_
The serial solver.
Definition: Amesos2_Lapack_decl.hpp:198
void setParameters_impl(const Teuchos::RCP< Teuchos::ParameterList > ¶meterList)
Definition: Amesos2_Lapack_def.hpp:183
Teuchos::Array< int > rowind_
Stores the column indices of the nonzero entries.
Definition: Amesos2_Lapack_decl.hpp:177
Provides traits about solvers.
Definition: Amesos2_SolverTraits.hpp:37
bool matrixShapeOK_impl() const
Determines whether the shape of the matrix is OK for this solver.
Definition: Amesos2_Lapack_def.hpp:172
host_value_type_array nzvals_view_
Stores the values of the nonzero entries for Umfpack.
Definition: Amesos2_Lapack_decl.hpp:186
Teuchos::Array< scalar_type > nzvals_
Stores the values of the nonzero entries.
Definition: Amesos2_Lapack_decl.hpp:174
std::string name() const override
Return the name of this solver.
Definition: Amesos2_SolverCore_def.hpp:725
int preOrdering_impl()
No-op.
Definition: Amesos2_Lapack_def.hpp:55
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters_impl() const
Definition: Amesos2_Lapack_def.hpp:199
int solve_impl(const Teuchos::Ptr< MultiVecAdapter< Vector > > X, const Teuchos::Ptr< const MultiVecAdapter< Vector > > B) const
Lapack solve.
Definition: Amesos2_Lapack_def.hpp:98
bool loadA_impl(EPhase current_phase)
Reads matrix data into internal structures.
Definition: Amesos2_Lapack_def.hpp:223
Provides access to interesting solver traits.
host_ordinal_type_array rowind_view_
Stores the location in Ai_ and Aval_ that starts row j.
Definition: Amesos2_Lapack_decl.hpp:188
Teuchos::Array< scalar_type > rhsvals_
Store for RHS and Solution values.
Definition: Amesos2_Lapack_decl.hpp:182
int numericFactorization_impl()
Perform numeric factorization using LAPACK.
Definition: Amesos2_Lapack_def.hpp:71