Amesos_Superludist Class Reference

Amesos_Superludist: An object-oriented wrapper for Superludist. More...

#include <Amesos_Superludist.h>

Inheritance diagram for Amesos_Superludist:

[legend]
Collaboration diagram for Amesos_Superludist:
[legend]
List of all members.

Public Member Functions

int SetParameters (Teuchos::ParameterList &ParameterList)
 Updates internal variables.
void PrintTiming ()
 Print various timig.
void PrintStatus ()
 Print various information about the parameters used by Superludist.
Constructor methods
 Amesos_Superludist (const Epetra_LinearProblem &LinearProblem)
 Amesos_Superludist Constructor.
 ~Amesos_Superludist (void)
 Amesos_Superludist Destructor.
Mathematical functions.
int SymbolicFactorization ()
 Performs SymbolicFactorization on the matrix A.
int NumericFactorization ()
 Performs NumericFactorization on the matrix A.
int Solve ()
 Solves A X = B (or AT x = B).
Atribute set methods
int SetUseTranspose (bool UseTranspose)
 Amesos_Superludist does not support transpose at this time.
Atribute access functions
const Epetra_LinearProblemGetProblem () const
 Get a pointer to the Problem.
bool MatrixShapeOK () const
 Returns true if SUPERLUDIST can handle this matrix shape.
bool UseTranspose () const
 Returns the current UseTranspose setting.
const Epetra_CommComm () const
 Returns a pointer to the Epetra_Comm communicator associated with this matrix.

Protected Attributes

bool ReuseSymbolic_
bool AddZeroToDiag_
fact_t FactOption_
bool Redistribute_
int MaxProcesses_
int GridCreated_
int FactorizationDone_
int NumRows_
int NumGlobalNonzeros_
Epetra_MapUniformMap_
Epetra_CrsMatrixUniformMatrix_
Epetra_ExportExportToDist_
Epetra_ImportImportToDistributed_
Epetra_ImportImportBackToOriginal_
Epetra_RowMatrixRowMatrixA_
int iam_
int NumProcs_
Epetra_RowMatrixSuperluMat_
vector< int > Ap_
vector< int > Ai_
vector< double > Aval_
Epetra_MultiVectorvecXdistributed_
Epetra_MultiVectorvecBdistributed_
vector< int > ColIndicesV_
vector< double > RowValuesV_
vector< int > Global_Columns_
SuperMatrix SuperluA_
ScalePermstruct_t ScalePermstruct_
LUstruct_t LUstruct_
SOLVEstruct_t SOLVEstruct_
int nprow_
int npcol_
gridinfo_t grid_
superlu_options_t options_
bool PrintNonzeros_
string ColPerm_
int * perm_c_
string RowPerm_
int * perm_r_
string IterRefine_
bool ReplaceTinyPivot_
bool Equil_
bool FactorizationOK_
bool UseTranspose_
const Epetra_LinearProblemProblem_
bool PrintStatus_
bool PrintTiming_
int verbose_
int debug_
double NumTime_
double SolTime_
double VecTime_
double MatTime_
double ConTime_
Epetra_TimeTime_
int NumNumericFact_
int NumSolve_
bool ComputeTrueResidual_
bool ComputeVectorNorms_

Detailed Description

Amesos_Superludist: An object-oriented wrapper for Superludist.

Amesos_Superludist will solve a linear systems of equations: A X = B using Epetra objects and the Superludist solver library, where A is an Epetra_RowMatrix and X and B are Epetra_MultiVector objects.

Superludist execution can be tuned through a variety of parameters. Amesos_Superludist.h allows control of these parameters through the following named parameters, ignoring parameters with names that it does not recognize. Where possible, the parameters are common to all direct solvers (although some may ignore them). However, some parameters, in particular tuning parameters, are unique to each solver.


Constructor & Destructor Documentation

Amesos_Superludist::Amesos_Superludist const Epetra_LinearProblem LinearProblem  ) 
 

Amesos_Superludist Constructor.

Creates an Amesos_Superludist instance, using an Epetra_LinearProblem, passing in an already-defined Epetra_LinearProblem object.

Note: The operator in LinearProblem must be an Epetra_RowMatrix.

Amesos_Superludist::~Amesos_Superludist void   ) 
 

Amesos_Superludist Destructor.

Completely deletes an Amesos_Superludist object.


Member Function Documentation

bool Amesos_Superludist::MatrixShapeOK  )  const [virtual]
 

Returns true if SUPERLUDIST can handle this matrix shape.

Returns true if the matrix shape is one that SUPERLUDIST can handle. SUPERLUDIST only works with square matrices.

Implements Amesos_BaseSolver.

int Amesos_Superludist::NumericFactorization  )  [virtual]
 

Performs NumericFactorization on the matrix A.

In addition to performing numeric factorization (and symbolic factorization if necessary) 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().

preconditions:

postconditions:

  • Numeric Factorization will be performed (or marked to be performed) allowing Solve() to be performed correctly despite a potential change in in the matrix values (though not in the non-zero structure).

Returns:
Integer error code, set to 0 if successful.

Implements Amesos_BaseSolver.

int Amesos_Superludist::SetParameters Teuchos::ParameterList ParameterList  )  [virtual]
 

Updates internal variables.

<br >Preconditions:

  • None.

<br >Postconditions:

  • Internal variables controlling the factorization and solve will be updated and take effect on all subsequent calls to NumericFactorization() and Solve().
  • 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.

Amesos_Superludist accepts the following parameters:

  • "AddZeroToDiag" - boolean:false - Adds zero to the diagonal, only active if Redistribute is true
  • "Redistribute" - boolean:true - Redistributes the matrix
  • "MaxProcs" - Maximum Number of Processors to use
    • &gt 0: Specifies the maximum number of processes to use
    • -1 : Maximum number of processes chosen via an internal heuristic based on the matrix size
    • -2 : Maximum number of processes set to the square root of the number of processes
    • -3 : Use all processes

Implements Amesos_BaseSolver.

int Amesos_Superludist::SetUseTranspose bool  UseTranspose  )  [inline, virtual]
 

Amesos_Superludist does not support transpose at this time.

returns 0 if UseTranspose is set to false, else 1 (failure)

Implements Amesos_BaseSolver.

int Amesos_Superludist::Solve  )  [virtual]
 

Solves A X = B (or AT x = B).

preconditions:

postconditions:

  • X will be set such that A X = B (or AT X = B), within the limits of the accuracy of the underlying solver.

Returns:
Integer error code, set to 0 if successful.

Implements Amesos_BaseSolver.

int Amesos_Superludist::SymbolicFactorization  )  [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().

preconditions:

postconditions:

bugs:

  • Construction and destruction of an Amesos_Superludist object leaks 24 bytes (This happens in superlu_gridinit() but it could be that I am not calling the right destructor.)

Returns:
Integer error code, set to 0 if successful.

Implements Amesos_BaseSolver.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:41:33 2008 for Amesos by doxygen 1.3.9.1