Amesos2 solver adapter for UQ::PCE scalar type.
More...
#include <Amesos2_Solver_UQ_PCE.hpp>
Inherits Solver< Tpetra::CrsMatrix< Sacado::UQ::PCE< Storage >, LocalOrdinal, GlobalOrdinal, Kokkos::Compat::KokkosDeviceWrapperNode< Device > >, Tpetra::MultiVector< Sacado::UQ::PCE< Storage >, LocalOrdinal, GlobalOrdinal, Kokkos::Compat::KokkosDeviceWrapperNode< Device > > >.
|
| typedef Sacado::UQ::PCE< Storage > | Scalar |
| |
| typedef Kokkos::Compat::KokkosDeviceWrapperNode< Device > | Node |
| |
| typedef Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > | Matrix |
| |
| typedef Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > | Vector |
| |
| typedef Scalar::value_type | BaseScalar |
| |
| typedef Tpetra::Map< LocalOrdinal, GlobalOrdinal, Node > | Map |
| |
| typedef Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node > | FlatGraph |
| |
| typedef Tpetra::CrsMatrix< BaseScalar, LocalOrdinal, GlobalOrdinal, Node > | FlatMatrix |
| |
| typedef Tpetra::MultiVector< BaseScalar, LocalOrdinal, GlobalOrdinal, Node > | FlatVector |
| |
| typedef ConcreteSolver< FlatMatrix, FlatVector > | FlatConcreteSolver |
| |
| typedef Solver< FlatMatrix, FlatVector > | FlatSolver |
| |
| typedef Solver< Matrix, Vector > | solver_type |
| |
| typedef solver_type::type | type |
| |
| typedef Scalar::cijk_type | cijk_type |
| |
|
| virtual type & | setParameters (const Teuchos::RCP< Teuchos::ParameterList > ¶meterList) |
| | Set/update internal variables and solver options. More...
|
| |
| virtual Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters (void) const |
| | Return a const parameter list of all of the valid parameters that this->setParameterList(...) will accept. More...
|
| |
|
| virtual void | setA (const Teuchos::RCP< const Matrix > a, EPhase keep_phase=CLEAN) |
| | Sets the matrix A of this solver. More...
|
| |
| virtual void | setA (const Matrix *a, EPhase keep_phase=CLEAN) |
| | Sets the matrix A of this solver. More...
|
| |
| virtual bool | matrixShapeOK (void) |
| | Returns true if the solver can handle the matrix shape. More...
|
| |
| virtual void | setX (const Teuchos::RCP< Vector > x) |
| | Sets the LHS vector X. More...
|
| |
| virtual void | setX (Vector *x) |
| | Sets the LHS vector X using a raw pointer. More...
|
| |
| virtual const Teuchos::RCP< Vector > | getX (void) |
| | Returns the vector that is the LHS of the linear system. More...
|
| |
| virtual Vector * | getXRaw (void) |
| | Returns a raw pointer to the LHS of the linear system. More...
|
| |
| virtual void | setB (const Teuchos::RCP< const Vector > b) |
| | Sets the RHS vector B. More...
|
| |
| virtual void | setB (const Vector *b) |
| | Sets the RHS vector B using a raw pointer. More...
|
| |
| virtual const Teuchos::RCP< const Vector > | getB (void) |
| | Returns the vector that is the RHS of the linear system. More...
|
| |
| virtual const Vector * | getBRaw (void) |
| | Returns a raw pointer to the RHS of the linear system. More...
|
| |
| virtual Teuchos::RCP< const Teuchos::Comm< int > > | getComm (void) const |
| | Returns a pointer to the Teuchos::Comm communicator with this matrix. More...
|
| |
| virtual Status & | getStatus () const |
| | Returns a reference to this solver's internal status object. More...
|
| |
| virtual std::string | name (void) const |
| | Return the name of this solver. More...
|
| |
|
| virtual std::string | description (void) const |
| | Returns a short description of this Solver. More...
|
| |
| virtual void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const |
| |
|
| virtual void | printTiming (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const |
| | Prints timing information about the current solver. More...
|
| |
| virtual void | getTiming (Teuchos::ParameterList &timingParameterList) const |
| | Extracts timing information from the current solver. More...
|
| |
template<class Storage, class LocalOrdinal, class GlobalOrdinal, class Device, template< class, class > class ConcreteSolver>
class Amesos2::PCESolverAdapter< Storage, LocalOrdinal, GlobalOrdinal, Device, ConcreteSolver >
Amesos2 solver adapter for UQ::PCE scalar type.
This adapter enables Amesos2 solvers to work with Tpetra matrices and vectors of the Sacado::UQ::PCE scalar type by "flattening" these matrices and vectors into ones with a standard (e.g., double) scalar type.
Definition at line 79 of file Amesos2_Solver_UQ_PCE.hpp.
◆ Scalar
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ Node
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ Matrix
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ Vector
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ BaseScalar
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ Map
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ FlatGraph
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ FlatMatrix
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ FlatVector
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ FlatConcreteSolver
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ FlatSolver
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ solver_type
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ type
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ cijk_type
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ PCESolverAdapter()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ preOrdering()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ symbolicFactorization()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
Performs symbolic factorization on the matrix.
- Precondition
- The matrix A must not be
null
Definition at line 156 of file Amesos2_Solver_UQ_PCE.hpp.
◆ numericFactorization()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
Performs numeric factorization on the matrix.
numericFactorization checks first that symbolicFactorization has successfully been called, and if not, calls it before continuing.
- Precondition
- The matrix A must not be
null
- Postcondition
- The factors L and U of A are computed
Definition at line 174 of file Amesos2_Solver_UQ_PCE.hpp.
◆ solve() [1/3]
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
Solves
(or
)
solve checks first that numericFactorization has successfully been called, and if not, calls it before continuing.
- Precondition
- The (multi)vectors
X and B must not be null
- Postcondition
- The (multi)vector
X (given at construction time) contains the solution to the system.
Definition at line 192 of file Amesos2_Solver_UQ_PCE.hpp.
◆ solve() [2/3]
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
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
XX contains the solution to the system
- The
XX and BB given at construction time (if any) are unchanged.
Definition at line 211 of file Amesos2_Solver_UQ_PCE.hpp.
◆ solve() [3/3]
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
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
XX contains the solution to the system
- The
XX and BB given at construction time (if any) are unchanged.
Definition at line 233 of file Amesos2_Solver_UQ_PCE.hpp.
◆ setParameters()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
Set/update internal variables and solver options.
Expects that parameterList be named "Amesos2". That list may contain Amesos2-specific parameters. In addition, it may contain sublist for solver-specific parameters. These sublists should be named according to what is returned by the name() function (i.e. The solver's name when enabling for Amesos2 during configuration).
See each solver interface directly for a list of the supported parameters for that solver.
Definition at line 258 of file Amesos2_Solver_UQ_PCE.hpp.
◆ getValidParameters()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
Return a const parameter list of all of the valid parameters that this->setParameterList(...) will accept.
Definition at line 270 of file Amesos2_Solver_UQ_PCE.hpp.
◆ setA() [1/2]
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
Sets the matrix A of this solver.
- Parameters
-
| [in] | a | An RCP to a matrix will will be used for future computation steps |
| [in] | keep_phase | This parameter tells the solver what state it should keep. For example, you may want to replace the matrix but keep the symbolic factorization because you know the structure of the new matrix is the same as the structure of the old matrix. In this case you would pass Amesos2::SYMBFACT as this parameter. |
The default value for the second parameter is Amesos2::CLEAN, which means that the internal state of the solver will be completely reset. It will be as if no previous computational steps were performed.
Definition at line 300 of file Amesos2_Solver_UQ_PCE.hpp.
◆ setA() [2/2]
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
Sets the matrix A of this solver.
- Parameters
-
| [in] | a | An raw C pointer to a matrix will will be used for future computation steps. |
| [in] | keep_phase | This parameter tells the solver what state it should keep. For example, you may want to replace the matrix but keep the symbolic factorization because you know the structure of the new matrix is the same as the structure of the old matrix. In this case you would pass Amesos2::SYMBFACT as this parameter. |
The default value for the second parameter is Amesos2::CLEAN, which means that the internal state of the solver will be completely reset. It will be as if no previous computational steps were performed.
Definition at line 343 of file Amesos2_Solver_UQ_PCE.hpp.
◆ matrixShapeOK()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ setX() [1/2]
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ setX() [2/2]
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ getX()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ getXRaw()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ setB() [1/2]
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ setB() [2/2]
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ getB()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ getBRaw()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ getComm()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ getStatus()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ name()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ description()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ describe()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
Prints the status information about the current solver with some level of verbosity.
Definition at line 460 of file Amesos2_Solver_UQ_PCE.hpp.
◆ printTiming()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ getTiming()
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
Extracts timing information from the current solver.
Results are placed in the parameter list timingParameterList
- Parameters
-
| timingParameterList | Accepts timing information from the current solver |
Definition at line 487 of file Amesos2_Solver_UQ_PCE.hpp.
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ flat_X_map
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ flat_B_map
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ flat_graph
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ cijk_graph
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ flat_A
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ flat_X
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ flat_B
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ flat_solver
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
◆ cijk
template<class Storage , class LocalOrdinal , class GlobalOrdinal , class Device , template< class, class > class ConcreteSolver>
The documentation for this class was generated from the following file: