fei::LinearProblemManager Class Reference

#include <fei_LinearProblemManager.hpp>

Inheritance diagram for fei::LinearProblemManager:

Inheritance graph
[legend]
List of all members.
virtual ~LinearProblemManager ()
virtual void setRowDistribution (const std::vector< int > &ownedGlobalRows)=0
virtual void setMatrixGraph (fei::SharedPtr< fei::SparseRowGraph > matrixGraph)=0
virtual void setMatrixValues (double scalar)=0
virtual int getLocalNumRows ()=0
virtual int getRowLength (int row)=0
virtual int copyOutMatrixRow (int row, int len, double *coefs, int *indices)=0
virtual int insertMatrixValues (int numRows, const int *rows, int numCols, const int *cols, const double *const *values, bool sum_into)=0
virtual void setVectorValues (double scalar, bool soln_vector)=0
virtual int insertVectorValues (int numValues, const int *globalIndices, const double *values, bool sum_into, bool soln_vector, int vectorIndex=0)=0
virtual int copyOutVectorValues (int numValues, const int *globalIndices, double *values, bool soln_vector, int vectorIndex=0)=0
virtual double * getLocalVectorValuesPtr (bool soln_vector, int vectorIndex=0)=0
virtual int globalAssemble ()=0

Detailed Description

Linear system assembly and solution manager.

Definition at line 24 of file fei_LinearProblemManager.hpp.


Constructor & Destructor Documentation

virtual fei::LinearProblemManager::~LinearProblemManager (  )  [inline, virtual]

Destructor.

Definition at line 29 of file fei_LinearProblemManager.hpp.


Member Function Documentation

virtual void fei::LinearProblemManager::setRowDistribution ( const std::vector< int > &  ownedGlobalRows  )  [pure virtual]

Set the linear-system's global row distribution.

Parameters:
ownedGlobalRows List of row-numbers to be owned by local processor.

Implemented in LinProbMgr_EpetraBasic.

virtual void fei::LinearProblemManager::setMatrixGraph ( fei::SharedPtr< fei::SparseRowGraph matrixGraph  )  [pure virtual]

Set the matrix-graph structure. This is the nonzero structure for locally-owned matrix rows.

Implemented in LinProbMgr_EpetraBasic.

virtual void fei::LinearProblemManager::setMatrixValues ( double  scalar  )  [pure virtual]

Set a specified scalar value throughout the matrix.

Implemented in LinProbMgr_EpetraBasic.

virtual int fei::LinearProblemManager::getLocalNumRows (  )  [pure virtual]

Query the number of local rows. This is expected to be the number of point-entry rows on the local processor.

Implemented in LinProbMgr_EpetraBasic.

virtual int fei::LinearProblemManager::getRowLength ( int  row  )  [pure virtual]

Given a locally-owned global row number, query the length (number of nonzeros) of that row.

Implemented in LinProbMgr_EpetraBasic.

virtual int fei::LinearProblemManager::copyOutMatrixRow ( int  row,
int  len,
double *  coefs,
int *  indices 
) [pure virtual]

Given a locally-owned global row number, pass out a copy of the contents of that row.

Parameters:
row Global row number
len Length of user-allocated 'coefs' and 'indices' arrays. if 'len' != 'getRowLength(row)', then the number of coefs/indices returned will be max(len,getRowLength(row)).
coefs Output array of matrix coefficients.
indices Output array of column-indices.
Returns:
error-code 0 if successful. Non-zero return-value may indicate that the specified row is not locally owned.

Implemented in LinProbMgr_EpetraBasic.

virtual int fei::LinearProblemManager::insertMatrixValues ( int  numRows,
const int *  rows,
int  numCols,
const int *  cols,
const double *const *  values,
bool  sum_into 
) [pure virtual]

Put a C-style table (array of pointers) of coefficient data into the matrix. This is a rectangular array of coefficients for rows/columns defined by the 'rows' and 'cols' lists. If the sum_into argument is true, values should be added to any that already exist at the specified locations. Otherwise (if sum_into is false) incoming values should overwrite already-existing values.

Implemented in LinProbMgr_EpetraBasic.

virtual void fei::LinearProblemManager::setVectorValues ( double  scalar,
bool  soln_vector 
) [pure virtual]

Set a specified scalar value throughout the vector.

Parameters:
scalar Value to be used.
soln_vector If true, scalar should be set in solution vector, otherwise set rhs vector.

Implemented in LinProbMgr_EpetraBasic.

virtual int fei::LinearProblemManager::insertVectorValues ( int  numValues,
const int *  globalIndices,
const double *  values,
bool  sum_into,
bool  soln_vector,
int  vectorIndex = 0 
) [pure virtual]

Put coefficient data into a vector at the specified global indices. If any specified indices are out of range (negative or too large) the corresponding positions in the values array will not be referenced, and a positive warning code will be returned.

Parameters:
numValues Length of caller-allocated 'globalIndices' and 'values' arrays.
globalIndices List of global-indices specifying the locations in the vector for incoming values to be placed.
values List of incoming values.
sum_into If true, incoming values should be added to values that may already be in the specified locations. If sum_into is false, then incoming values should overwrite existing values.
soln_vector If true, incoming values should be placed in the solution vector. Otherwise, they should be placed in the rhs vector.
vectorIndex If the linear system has multiple rhs/soln vectors, then this parameter specifies which vector the incoming values should be put into.

Implemented in LinProbMgr_EpetraBasic.

virtual int fei::LinearProblemManager::copyOutVectorValues ( int  numValues,
const int *  globalIndices,
double *  values,
bool  soln_vector,
int  vectorIndex = 0 
) [pure virtual]

Copy values for the specified vector indices into the caller-allocated 'values' array.

Implemented in LinProbMgr_EpetraBasic.

virtual double* fei::LinearProblemManager::getLocalVectorValuesPtr ( bool  soln_vector,
int  vectorIndex = 0 
) [pure virtual]

Dangerous, high-performance vector access. Return a pointer to local vector values. Implementations that can't support this may return NULL, in which case the caller will revert to using the copyOutVectorValues method.

Implemented in LinProbMgr_EpetraBasic.

virtual int fei::LinearProblemManager::globalAssemble (  )  [pure virtual]

Perform any necessary internal communications/synchronizations or other operations appropriate at the end of data input. For some implementations this may be a no-op. (Trilinos/Epetra implementations would call 'FillComplete' on the matrix at this point.)

Implemented in LinProbMgr_EpetraBasic.


The documentation for this class was generated from the following file:
Generated on Wed May 12 01:33:51 2010 for FEI by  doxygen 1.4.7