|
|
typedef PardisoMKL< Matrix, Vector > | type |
| |
|
typedef SolverCore< Amesos2::PardisoMKL, Matrix, Vector > | super_type |
| |
|
typedef super_type::scalar_type | scalar_type |
| |
|
typedef super_type::local_ordinal_type | local_ordinal_type |
| |
|
typedef super_type::global_ordinal_type | global_ordinal_type |
| |
|
typedef super_type::global_size_type | global_size_type |
| |
|
typedef TypeMap< Amesos2::PardisoMKL, scalar_type > | type_map |
| |
|
typedef type_map::type | solver_scalar_type |
| |
|
typedef type_map::magnitude_type | solver_magnitude_type |
| |
|
typedef TypeMap< Amesos2::PardisoMKL, local_ordinal_type >::type | int_t |
| |
|
typedef FunctionMap< Amesos2::PardisoMKL, int_t > | function_map |
| |
|
typedef Amesos2::PardisoMKL< Matrix, Vector > | solver_type |
| |
|
typedef Matrix | matrix_type |
| |
|
typedef Vector | vector_type |
| |
|
typedef MatrixAdapter< matrix_type >::node_t | node_type |
| |
|
|
| super_type & | preOrdering () |
| | Pre-orders the matrix A for minimal fill-in. More...
|
| |
| super_type & | symbolicFactorization () |
| | Performs symbolic factorization on the matrix A. More...
|
| |
| super_type & | numericFactorization () |
| | Performs numeric factorization on the matrix A. More...
|
| |
| void | solve () |
| | Solves (or ) More...
|
| |
| void | solve (const Teuchos::Ptr< Vector > X, const Teuchos::Ptr< const Vector > B) const |
| | Solve using the given X and B vectors. More...
|
| |
| void | solve (Vector *X, const Vector *B) const |
| | Solve using the given X and B vectors. More...
|
| |
| bool | matrixShapeOK () |
| | Returns true if the solver can handle this matrix shape. More...
|
| |
| void | setA (const Teuchos::RCP< const Matrix > a, EPhase keep_phase=CLEAN) |
| | Sets the matrix A of this solver. More...
|
| |
| void | setA (const Matrix *a, EPhase keep_phase=CLEAN) |
| | Sets the matrix A of this solver. More...
|
| |
| void | setX (const Teuchos::RCP< Vector > x) |
| | Sets the LHS vector X. More...
|
| |
| void | setX (Vector *x) |
| | Sets the LHS vector X using a raw pointer. More...
|
| |
| const Teuchos::RCP< Vector > | getX () |
| | Returns the vector that is the LHS of the linear system. More...
|
| |
| Vector * | getXRaw () |
| | Returns a raw pointer to the LHS of the linear system. More...
|
| |
| void | setB (const Teuchos::RCP< const Vector > b) |
| | Sets the RHS vector B. More...
|
| |
| void | setB (const Vector *b) |
| | Sets the RHS vector B using a raw pointer. More...
|
| |
| const Teuchos::RCP< const Vector > | getB () |
| | Returns the vector that is the RHS of the linear system. More...
|
| |
| const Vector * | getBRaw () |
| | Returns a raw pointer to the RHS of the linear system. More...
|
| |
|
| super_type & | setParameters (const Teuchos::RCP< Teuchos::ParameterList > ¶meterList) |
| | Set/update internal variables and solver options. More...
|
| |
| Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters () const |
| | Return a const parameter list of all of the valid parameters that this->setParameterList(...) will accept. More...
|
| |
| void | setParameterList (const Teuchos::RCP< Teuchos::ParameterList > ¶meterList) |
| | Set or update internal variables and solver options. More...
|
| |
| Teuchos::RCP< Teuchos::ParameterList > | getNonconstParameterList () |
| | This is a empty stub. More...
|
| |
| Teuchos::RCP< Teuchos::ParameterList > | unsetParameterList () |
| | This is an empty stub. More...
|
| |
|
|
Teuchos::Array< solver_scalar_type > | nzvals_ |
| | Stores the values of the nonzero entries for PardisoMKL.
|
| |
|
Teuchos::Array< int_t > | colind_ |
| | Stores the location in Ai_ and Aval_ that starts row j.
|
| |
|
Teuchos::Array< int_t > | rowptr_ |
| | Stores the row indices of the nonzero entries.
|
| |
|
Teuchos::Array< solver_scalar_type > | xvals_ |
| | Persisting, contiguous, 1D store for X.
|
| |
|
Teuchos::Array< solver_scalar_type > | bvals_ |
| | Persisting, contiguous, 1D store for B.
|
| |
|
void * | pt_ [64] |
| | PardisoMKL internal data address pointer.
|
| |
|
int_t | mtype_ |
| | The matrix type. We deal only with unsymmetrix matrices.
|
| |
|
int_t | n_ |
| | Number of equations in the sparse linear system.
|
| |
|
Teuchos::Array< int_t > | perm_ |
| | Permutation vector.
|
| |
|
int_t | nrhs_ |
| | number of righthand-side vectors
|
| |
| int_t | iparm_ [64] |
| |
|
bool | is_contiguous_ |
| |
|
static const int_t | msglvl_ = 0 |
| | The messaging level. Set to 1 if you wish for Pardiso MKL to print statistical info.
|
| |
|
static const int_t | maxfct_ = 1 |
| |
|
static const int_t | mnum_ = 1 |
| |
| static const bool | complex_ |
| |
| | PardisoMKL (Teuchos::RCP< const Matrix > A, Teuchos::RCP< Vector > X, Teuchos::RCP< const Vector > B) |
| | Initialize from Teuchos::RCP. More...
|
| |
|
| ~PardisoMKL () |
| | Destructor.
|
| |
| int | preOrdering_impl () |
| | Performs pre-ordering on the matrix to increase efficiency. More...
|
| |
| int | symbolicFactorization_impl () |
| | Perform symbolic factorization of the matrix using PardisoMKL. More...
|
| |
| int | numericFactorization_impl () |
| | PardisoMKL specific numeric factorization. More...
|
| |
| int | solve_impl (const Teuchos::Ptr< MultiVecAdapter< Vector > > X, const Teuchos::Ptr< const MultiVecAdapter< Vector > > B) const |
| | PardisoMKL specific solve. More...
|
| |
| bool | matrixShapeOK_impl () const |
| | Determines whether the shape of the matrix is OK for this solver. More...
|
| |
| void | setParameters_impl (const Teuchos::RCP< Teuchos::ParameterList > ¶meterList) |
| |
| Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters_impl () const |
| |
| bool | loadA_impl (EPhase current_phase) |
| | Reads matrix data into internal structures. More...
|
| |
| void | check_pardiso_mkl_error (EPhase phase, int_t error) const |
| | Throws an appropriate runtime error in the event that error < 0 . More...
|
| |
| void | set_pardiso_mkl_matrix_type (int_t mtype=0) |
| |
|
| Teuchos::RCP< const Teuchos::Comm< int > > | getComm () const |
| | Returns a pointer to the Teuchos::Comm communicator with this operator. More...
|
| |
| Status & | getStatus () const |
| | Returns a reference to this solver's internal status object. More...
|
| |
| std::string | description () const |
| | Returns a short description of this Solver. More...
|
| |
| void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const |
| |
| void | printTiming (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const |
| | Prints timing information about the current solver. More...
|
| |
| void | getTiming (Teuchos::ParameterList &timingParameterList) const |
| | Extracts timing information from the current solver. More...
|
| |
| void | loadA (EPhase current_phase) |
| | Refresh this solver's internal data about A. More...
|
| |
|
Teuchos::RCP< const MatrixAdapter< Matrix > > | matrixA_ |
| | The LHS operator.
|
| |
| bool | matrix_loaded_ |
| |
|
Teuchos::RCP< Vector > | multiVecX_ |
| | The LHS vector/multi-vector.
|
| |
| Teuchos::RCP< const Vector > | multiVecB_ |
| | The RHS vector/multi-vector. More...
|
| |
|
global_size_type | globalNumRows_ |
| | Number of global rows in matrixA_.
|
| |
|
global_size_type | globalNumCols_ |
| | Number of global columns in matrixA_.
|
| |
|
global_size_type | globalNumNonZeros_ |
| | Number of global non-zero values in matrixA_.
|
| |
|
global_size_type | rowIndexBase_ |
| | Index base of rowmap of matrixA_.
|
| |
|
global_size_type | columnIndexBase_ |
| | Index base of column map of matrixA_.
|
| |
|
Status | status_ |
| | Holds status information about a solver.
|
| |
|
Control | control_ |
| | Parameters for solving.
|
| |
|
Timers | timers_ |
| | Various timing statistics.
|
| |
|
int | rank_ |
| | The MPI rank of this image.
|
| |
|
bool | root_ |
| | If true, then this is the root processor.
|
| |
|
int | nprocs_ |
| | Number of process images in the matrix communicator.
|
| |
| void | setNnzLU (size_t nnz) |
| | Set the number of non-zero values in the and factors. More...
|
| |
template<class Matrix, class Vector>
class Amesos2::PardisoMKL< Matrix, Vector >
Amesos2 interface to the PardisoMKL package.
This class provides access to the Pardiso (MKL version 10.3 and compatible) sparse direct solver with out-of-core solve support. Access is provided for float and double scalar types, in both real and complex. Access to to Pardiso's 64-bit integer routines is also provided.
template<class Matrix , class Vector >
template<class Matrix , class Vector >
Throws an appropriate runtime error in the event that error < 0 .
- Parameters
-
| phase | the phase for which this error is being checked. The meaning of a particular error value may depend on which phase was last performed |
| error | the error value returned by PardisoMKL for the given phase. |
We broadcast the input value from the rank=0 image to all others before checking the value. Before doing this we convert the error into an int value which allow us to easily broadcast its value to all process images without having to enable Teuchos long long support in the case where the user is making use of pardiso_64. The valid values of error certainly fit within an int.
Solve
using the given X and B vectors.
This overload of solve uses the given X and B vectors when solving. This X and B are used in place of any X and B that were given upon construction of the Amesos2 solver instance and are used only for this solve.
If a permanent change of X and B are required, see the setX() and setB() methods.
- Postcondition
- The (multi)vector
X contains the solution to the system
- The
X and B given at construction time (if any) are unchanged.
Implements Amesos2::Solver< Matrix, Vector >.
Solve
using the given X and B vectors.
This overload of solve uses the given X and B vectors when solving. This X and B are used in place of any X and B that were given upon construction of the Amesos2 solver instance and are used only for this solve.
If a permanent change of X and B are required, see the setX() and setB() methods.
- Postcondition
- The (multi)vector
X contains the solution to the system
- The
X and B given at construction time (if any) are unchanged.
Implements Amesos2::Solver< Matrix, Vector >.
Refresh this solver's internal data about A.
Called whenever it would be necessary to refresh a solver's internal storage of the matrix A, which is whenever a phase is called that is equal to or below the current call.
For example, say a user has just previously called solve(), then calls numericFactorization(). Since the solve phase is greater than the numericFactorization phase, this is an indication that the internal store of A needs refreshing, since the user (assuming the user know what she's doing) wouldn't otherwise need to call numericFactorization following a solve.