Amesos Package Browser (Single Doxygen Collection)
Development
|
Amesos_Paraklete: A serial, unblocked code ideal for getting started and for very sparse matrices, such as circuit matrces. More...
#include <Amesos_Paraklete.h>
Private Attributes | |
bool | IamInGroup_ |
int | SerialXlda_ |
Teuchos::RCP < Amesos_Paraklete_Pimpl > | PrivateParakleteData_ |
Teuchos::RCP < Amesos_StandardIndex > | StdIndex_ |
Teuchos::RCP < Amesos_StandardIndex > | StdIndexRange_ |
Teuchos::RCP < Amesos_StandardIndex > | StdIndexDomain_ |
MPI_Comm | ParakleteComm_ |
std::vector< long > | Ap |
Ap, Ai, Aval form the compressed row storage used by Paraklete Ai and Aval can point directly into a matrix if it is StorageOptimized(), hence they may either be in vector form or may be a pointer into Epetra_CrsMatrix internals. More... | |
std::vector< long > | Ai |
std::vector< double > | VecAval |
double * | Aval |
int | UseDataInPlace_ |
1 if Problem_->GetOperator() is stored entirely on process 0 More... | |
int | numentries_ |
Number of non-zero entries in Problem_->GetOperator() More... | |
int | NumGlobalElements_ |
Number of rows and columns in the Problem_->GetOperator() More... | |
Epetra_RowMatrix * | RowMatrixA_ |
Operator converted to a RowMatrix. More... | |
Epetra_CrsMatrix * | CrsMatrixA_ |
Operator converted to a CrsMatrix. More... | |
Teuchos::RCP< Epetra_Map > | SerialMap_ |
Points to a Serial Map (unused if UseDataInPlace_ == 1 ) More... | |
Teuchos::RCP< Epetra_CrsMatrix > | SerialCrsMatrixA_ |
Points to a Serial Copy of A (unused if UseDataInPlace_==1) More... | |
Epetra_RowMatrix * | StdIndexMatrix_ |
Points to a Contiguous Copy of A. More... | |
Epetra_MultiVector * | StdIndexDomainVector_ |
Epetra_MultiVector * | StdIndexRangeVector_ |
Epetra_RowMatrix * | SerialMatrix_ |
Points to a Serial Copy of A. More... | |
bool | TrustMe_ |
If true , no checks are made and the matrix is assume to be distributed. More... | |
int | NumVectors_ |
Number of vectors in RHS and LHS. More... | |
double * | SerialXBvalues_ |
Pointer to the actual values in the serial version of X and B. More... | |
double * | SerialBvalues_ |
Epetra_MultiVector * | SerialB_ |
Serial versions of the LHS and RHS (may point to the original vector if serial) More... | |
Epetra_MultiVector * | SerialX_ |
Teuchos::RCP< Epetra_MultiVector > | SerialXextract_ |
Serial versions of the LHS and RHS (if necessary) More... | |
Teuchos::RCP< Epetra_MultiVector > | SerialBextract_ |
bool | UseTranspose_ |
If true , the transpose of A is used. More... | |
const Epetra_LinearProblem * | Problem_ |
Pointer to the linear system problem. More... | |
std::vector< int > | ColIndicesV_ |
Only used for RowMatrices to extract copies. More... | |
std::vector< double > | RowValuesV_ |
Only used for RowMatrices to extract copies. More... | |
Teuchos::RCP< Epetra_Import > | ImportToSerial_ |
Importer to process 0. More... | |
Teuchos::RCP< Epetra_Import > | ImportRangeToSerial_ |
Teuchos::RCP< Epetra_Import > | ImportDomainToSerial_ |
int | MtxConvTime_ |
Quick access pointers to internal timing information. More... | |
int | MtxRedistTime_ |
int | VecRedistTime_ |
int | SymFactTime_ |
int | NumFactTime_ |
int | SolveTime_ |
int | OverheadTime_ |
Private Attributes inherited from Amesos_Control | |
double | AddToDiag_ |
Add this value to the diagonal. More... | |
bool | refactorize_ |
double | rcond_threshold_ |
If error is greater than this value, perform symbolic and numeric factorization with full partial pivoting. More... | |
int | ScaleMethod_ |
bool | AddZeroToDiag_ |
Adds zero to diagonal of redistributed matrix (some solvers choke on a matrix with a partly empty diag) More... | |
int | MatrixProperty_ |
Set the matrix property. More... | |
int | MaxProcesses_ |
bool | Reindex_ |
If true, the Amesos class should reindex the matrix to standard indexing (i.e. More... | |
Private Attributes inherited from Amesos_Status | |
bool | IsSymbolicFactorizationOK_ |
If true , SymbolicFactorization() has been successfully called. More... | |
bool | IsNumericFactorizationOK_ |
If true , NumericFactorization() has been successfully called. More... | |
bool | PrintTiming_ |
If true , prints timing information in the destructor. More... | |
bool | PrintStatus_ |
If true , print additional information in the destructor. More... | |
bool | ComputeVectorNorms_ |
If true , prints the norms of X and B in Solve(). More... | |
bool | ComputeTrueResidual_ |
If true , computes the true residual in Solve(). More... | |
int | verbose_ |
Toggles the output level. More... | |
int | debug_ |
Sets the level of debug_ output. More... | |
int | NumSymbolicFact_ |
Number of symbolic factorization phases. More... | |
int | NumNumericFact_ |
Number of numeric factorization phases. More... | |
int | NumSolve_ |
Number of solves. More... | |
double | Threshold_ |
int | MyPID_ |
int | NumProcs_ |
Amesos_Paraklete (const Epetra_LinearProblem &LinearProblem) | |
Amesos_Paraklete Constructor. More... | |
~Amesos_Paraklete (void) | |
Amesos_Paraklete Destructor. More... | |
int | SymbolicFactorization () |
Performs SymbolicFactorization on the matrix A. More... | |
int | NumericFactorization () |
Performs NumericFactorization on the matrix A. More... | |
int | Solve () |
Solves A X = B (or AT x = B) More... | |
const Epetra_LinearProblem * | GetProblem () const |
Get a pointer to the Problem. More... | |
bool | MatrixShapeOK () const |
Returns true if PARAKLETE can handle this matrix shape. More... | |
int | SetUseTranspose (bool UseTranspose_in) |
SetUseTranpose() More... | |
bool | UseTranspose () const |
Returns the current UseTranspose setting. More... | |
const Epetra_Comm & | Comm () const |
Returns a pointer to the Epetra_Comm communicator associated with this operator. More... | |
int | SetParameters (Teuchos::ParameterList &ParameterList) |
Updates internal variables. More... | |
int | NumSymbolicFact () const |
Returns the number of symbolic factorizations performed by this object. More... | |
int | NumNumericFact () const |
Returns the number of numeric factorizations performed by this object. More... | |
int | NumSolve () const |
Returns the number of solves performed by this object. More... | |
void | PrintTiming () const |
Prints timing information. More... | |
void | PrintStatus () const |
Prints information about the factorization and solution phases. More... | |
void | GetTiming (Teuchos::ParameterList &TimingParameterList) const |
Extracts timing information from the current solver and places it in the parameter list. More... | |
int | CreateLocalMatrixAndExporters () |
int | ExportToSerial () |
int | ConvertToParakleteCRS (bool firsttime) |
int | PerformSymbolicFactorization () |
int | PerformNumericFactorization () |
Additional Inherited Members | |
Public Member Functions inherited from Amesos_BaseSolver | |
virtual | ~Amesos_BaseSolver () |
Destructor. More... | |
virtual void | setParameterList (Teuchos::RCP< Teuchos::ParameterList > const ¶mList) |
Redefined from Teuchos::ParameterListAcceptor (Does Not Work) More... | |
virtual Teuchos::RCP < Teuchos::ParameterList > | getNonconstParameterList () |
This is an empty stub. More... | |
virtual Teuchos::RCP < Teuchos::ParameterList > | unsetParameterList () |
This is an empty stub. More... | |
Public Member Functions inherited from Teuchos::ParameterListAcceptor | |
virtual RCP< const ParameterList > | getParameterList () const |
virtual RCP< const ParameterList > | getValidParameters () const |
Private Member Functions inherited from Amesos_Time | |
Amesos_Time () | |
Default constructor to create size timers. More... | |
virtual | ~Amesos_Time () |
Default destructor. More... | |
void | CreateTimer (const Epetra_Comm &Comm, int size=1) |
Initializes the Time object. More... | |
void | ResetTimer (const int timerID=0) |
Resets the internally stored time object. More... | |
int | AddTime (const std::string what, int dataID, const int timerID=0) |
Adds to field what the time elapsed since last call to ResetTimer(). More... | |
double | GetTime (const std::string what) const |
Gets the cumulative time using the string. More... | |
double | GetTime (const int dataID) const |
Gets the cumulative time using the dataID. More... | |
void | GetTiming (Teuchos::ParameterList &list) const |
Load up the current timing information into the parameter list. More... | |
Private Member Functions inherited from Amesos_NoCopiable | |
Amesos_NoCopiable () | |
Default constructor. More... | |
~Amesos_NoCopiable () | |
Default destructor. More... | |
Private Member Functions inherited from Amesos_Utils | |
Amesos_Utils () | |
Default constructor. More... | |
~Amesos_Utils () | |
Default destructor. More... | |
void | ComputeTrueResidual (const Epetra_RowMatrix &Matrix, const Epetra_MultiVector &X, const Epetra_MultiVector &B, const bool UseTranspose, const std::string prefix) const |
Computes the true residual, B - Matrix * X, and prints the results. More... | |
void | ComputeVectorNorms (const Epetra_MultiVector &X, const Epetra_MultiVector &B, const std::string prefix) const |
Computes the norms of X and B and print the results. More... | |
void | PrintLine () const |
Prints line on std::cout. More... | |
void | SetMaxProcesses (int &MaxProcesses, const Epetra_RowMatrix &A) |
Private Member Functions inherited from Amesos_Control | |
Amesos_Control () | |
Default constructor. More... | |
~Amesos_Control () | |
Default destructor. More... | |
void | SetControlParameters (const Teuchos::ParameterList &ParameterList) |
Private Member Functions inherited from Amesos_Status | |
Amesos_Status () | |
Default constructor. More... | |
~Amesos_Status () | |
Default destructor. More... | |
void | SetStatusParameters (const Teuchos::ParameterList &ParameterList) |
Amesos_Paraklete: A serial, unblocked code ideal for getting started and for very sparse matrices, such as circuit matrces.
Interface to PARAKLETE internal solver.Interface to PARAKLETE internal solver.
Class Amesos_Paraklete is an object-oriented wrapper for PARAKLETE. PARAKLETE, whose sources are distributed within Amesos, is a serial solver for sparse matrices. PARAKLETE will solve a linear system of equations: , where A
is an Epetra_RowMatrix and X
and B
are Epetra_MultiVector objects.
Amesos_Paraklete computes more efficiently than . The latter requires a matrix transpose – which costs both time and space.
Paraklete is Tim Davis' parallel version of KLU a low overhead non-blocked code which solves very sparse matrices fast.
Definition at line 100 of file Amesos_Paraklete.h.
Amesos_Paraklete::Amesos_Paraklete | ( | const Epetra_LinearProblem & | LinearProblem | ) |
Amesos_Paraklete Constructor.
Creates an Amesos_Paraklete instance, using an Epetra_LinearProblem, passing in an already-defined Epetra_LinearProblem object.
Note: The operator in LinearProblem must be an Epetra_RowMatrix.
Definition at line 101 of file Amesos_Paraklete.cpp.
Amesos_Paraklete::~Amesos_Paraklete | ( | void | ) |
Amesos_Paraklete Destructor.
Definition at line 125 of file Amesos_Paraklete.cpp.
|
virtual |
Performs SymbolicFactorization on the matrix A.
In addition to performing symbolic factorization on the matrix A, the call to SymbolicFactorization() implies that no change will be made to the non-zero structure of the underlying matrix without a subsequent call to SymbolicFactorization().
<br >Preconditions:
<br >Postconditions:
Implements Amesos_BaseSolver.
Definition at line 594 of file Amesos_Paraklete.cpp.
|
virtual |
Performs NumericFactorization on the matrix A.
In addition to performing numeric factorization on the matrix A, the call to NumericFactorization() implies that no change will be made to the underlying matrix without a subsequent call to NumericFactorization().
<br >Preconditions:
<br >Postconditions:
Implements Amesos_BaseSolver.
Definition at line 706 of file Amesos_Paraklete.cpp.
|
virtual |
<br >Preconditions:
<br >Postconditions:
Implements Amesos_BaseSolver.
Definition at line 745 of file Amesos_Paraklete.cpp.
|
inlinevirtual |
Get a pointer to the Problem.
Implements Amesos_BaseSolver.
Definition at line 136 of file Amesos_Paraklete.h.
|
virtual |
Returns true if PARAKLETE can handle this matrix shape.
Returns true if the matrix shape is one that PARAKLETE can handle. PARAKLETE only works with square matrices.
Implements Amesos_BaseSolver.
Definition at line 563 of file Amesos_Paraklete.cpp.
|
inlinevirtual |
SetUseTranpose()
If SetUseTranspose() is set to true, is computed.
Implements Amesos_BaseSolver.
Definition at line 149 of file Amesos_Paraklete.h.
|
inlinevirtual |
Returns the current UseTranspose setting.
Implements Amesos_BaseSolver.
Definition at line 151 of file Amesos_Paraklete.h.
|
inlinevirtual |
Returns a pointer to the Epetra_Comm communicator associated with this operator.
Implements Amesos_BaseSolver.
Definition at line 153 of file Amesos_Paraklete.h.
|
virtual |
Updates internal variables.
<br \>Preconditions:<ul> <li>None.</li> </ul> <br \>Postconditions:<ul> <li>Internal variables controlling the factorization and solve will be updated and take effect on all subseuent calls to NumericFactorization() and Solve().</li> <li>All parameters whose value are to differ from the default values must
be included in ParameterList. Parameters not specified in ParameterList revert to their default values.
Implements Amesos_BaseSolver.
Definition at line 488 of file Amesos_Paraklete.cpp.
|
inlinevirtual |
Returns the number of symbolic factorizations performed by this object.
Implements Amesos_BaseSolver.
Definition at line 158 of file Amesos_Paraklete.h.
|
inlinevirtual |
Returns the number of numeric factorizations performed by this object.
Implements Amesos_BaseSolver.
Definition at line 161 of file Amesos_Paraklete.h.
|
inlinevirtual |
Returns the number of solves performed by this object.
Implements Amesos_BaseSolver.
Definition at line 164 of file Amesos_Paraklete.h.
|
virtual |
Prints timing information.
Implements Amesos_BaseSolver.
Definition at line 896 of file Amesos_Paraklete.cpp.
|
virtual |
Prints information about the factorization and solution phases.
Implements Amesos_BaseSolver.
Definition at line 873 of file Amesos_Paraklete.cpp.
|
inlinevirtual |
Extracts timing information from the current solver and places it in the parameter list.
Reimplemented from Amesos_BaseSolver.
Definition at line 173 of file Amesos_Paraklete.h.
|
private |
Definition at line 205 of file Amesos_Paraklete.cpp.
|
private |
Definition at line 139 of file Amesos_Paraklete.cpp.
|
private |
Definition at line 352 of file Amesos_Paraklete.cpp.
|
private |
Definition at line 519 of file Amesos_Paraklete.cpp.
|
private |
Definition at line 537 of file Amesos_Paraklete.cpp.
|
private |
Definition at line 245 of file Amesos_Paraklete.h.
|
private |
Definition at line 247 of file Amesos_Paraklete.h.
|
private |
Definition at line 252 of file Amesos_Paraklete.h.
|
private |
Definition at line 253 of file Amesos_Paraklete.h.
|
private |
Definition at line 254 of file Amesos_Paraklete.h.
|
private |
Definition at line 255 of file Amesos_Paraklete.h.
|
private |
Definition at line 256 of file Amesos_Paraklete.h.
|
private |
Ap, Ai, Aval form the compressed row storage used by Paraklete Ai and Aval can point directly into a matrix if it is StorageOptimized(), hence they may either be in vector form or may be a pointer into Epetra_CrsMatrix internals.
Ap must always be constructed.
Definition at line 262 of file Amesos_Paraklete.h.
|
private |
Definition at line 263 of file Amesos_Paraklete.h.
|
private |
Definition at line 264 of file Amesos_Paraklete.h.
|
private |
Definition at line 265 of file Amesos_Paraklete.h.
|
private |
1 if Problem_->GetOperator() is stored entirely on process 0
Definition at line 268 of file Amesos_Paraklete.h.
|
private |
Number of non-zero entries in Problem_->GetOperator()
Definition at line 270 of file Amesos_Paraklete.h.
|
private |
Number of rows and columns in the Problem_->GetOperator()
Definition at line 272 of file Amesos_Paraklete.h.
|
private |
Operator converted to a RowMatrix.
Definition at line 275 of file Amesos_Paraklete.h.
|
private |
Operator converted to a CrsMatrix.
Definition at line 277 of file Amesos_Paraklete.h.
|
private |
Points to a Serial Map (unused if UseDataInPlace_ == 1 )
Definition at line 287 of file Amesos_Paraklete.h.
|
private |
Points to a Serial Copy of A (unused if UseDataInPlace_==1)
Definition at line 289 of file Amesos_Paraklete.h.
|
private |
Points to a Contiguous Copy of A.
Definition at line 291 of file Amesos_Paraklete.h.
|
private |
Definition at line 292 of file Amesos_Paraklete.h.
|
private |
Definition at line 293 of file Amesos_Paraklete.h.
|
private |
Points to a Serial Copy of A.
Definition at line 295 of file Amesos_Paraklete.h.
|
private |
If true
, no checks are made and the matrix is assume to be distributed.
Definition at line 301 of file Amesos_Paraklete.h.
|
private |
Number of vectors in RHS and LHS.
Definition at line 303 of file Amesos_Paraklete.h.
|
private |
Pointer to the actual values in the serial version of X and B.
Definition at line 305 of file Amesos_Paraklete.h.
|
private |
Definition at line 306 of file Amesos_Paraklete.h.
|
private |
Serial versions of the LHS and RHS (may point to the original vector if serial)
Definition at line 308 of file Amesos_Paraklete.h.
|
private |
Definition at line 309 of file Amesos_Paraklete.h.
|
private |
Serial versions of the LHS and RHS (if necessary)
Definition at line 311 of file Amesos_Paraklete.h.
|
private |
Definition at line 312 of file Amesos_Paraklete.h.
|
private |
If true
, the transpose of A is used.
Definition at line 315 of file Amesos_Paraklete.h.
|
private |
Pointer to the linear system problem.
Definition at line 317 of file Amesos_Paraklete.h.
|
private |
Only used for RowMatrices to extract copies.
Definition at line 320 of file Amesos_Paraklete.h.
|
private |
Only used for RowMatrices to extract copies.
Definition at line 322 of file Amesos_Paraklete.h.
|
private |
Importer to process 0.
Definition at line 324 of file Amesos_Paraklete.h.
|
private |
Definition at line 325 of file Amesos_Paraklete.h.
|
private |
Definition at line 326 of file Amesos_Paraklete.h.
|
private |
Quick access pointers to internal timing information.
Definition at line 329 of file Amesos_Paraklete.h.
|
private |
Definition at line 329 of file Amesos_Paraklete.h.
|
private |
Definition at line 329 of file Amesos_Paraklete.h.
|
private |
Definition at line 330 of file Amesos_Paraklete.h.
|
private |
Definition at line 330 of file Amesos_Paraklete.h.
|
private |
Definition at line 330 of file Amesos_Paraklete.h.
|
private |
Definition at line 330 of file Amesos_Paraklete.h.