fei::Matrix_Local Class Reference

Inheritance diagram for fei::Matrix_Local:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 Matrix_Local (fei::SharedPtr< fei::MatrixGraph > matrixGraph, fei::SharedPtr< fei::SparseRowGraph > sparseRowGraph)
virtual ~Matrix_Local ()
const char * typeName ()
int parameters (const fei::ParameterSet &paramset)
int parameters (int numParams, const char *const *paramStrings)
fei::SharedPtr< fei::MatrixGraphgetMatrixGraph ()
void setMatrixGraph (fei::SharedPtr< fei::MatrixGraph > matrixGraph)
int getGlobalNumRows () const
int getLocalNumRows () const
int getRowLength (int row, int &length) const
int putScalar (double scalar)
int copyOutRow (int row, int len, double *coefs, int *indices) const
int sumIn (int numRows, const int *rows, int numCols, const int *cols, const double *const *values, int format=0)
int copyIn (int numRows, const int *rows, int numCols, const int *cols, const double *const *values, int format=0)
int sumInFieldData (int fieldID, int idType, int rowID, int colID, const double *const *data, int format=0)
int sumInFieldData (int fieldID, int idType, int rowID, int colID, const double *data, int format=0)
int sumIn (int blockID, int connectivityID, const double *const *values, int format=0)
int globalAssemble ()
int multiply (fei::Vector *x, fei::Vector *y)
int gatherFromOverlap (bool accumulate=true)
int writeToFile (const char *filename, bool matrixMarketFormat=true)
int writeToStream (FEI_OSTREAM &ostrm, bool matrixMarketFormat=true)
bool usingBlockEntryStorage ()
void markState ()
bool changedSinceMark ()
const std::vector< int > & getRowNumbers () const
const std::vector< int > & getRowOffsets () const
const std::vector< int > & getColumnIndices () const
const std::vector< double > & getCoefs () const

Static Public Member Functions

static fei::SharedPtr< fei::Matrixcreate_Matrix_Local (fei::SharedPtr< fei::MatrixGraph > matrixGraph, bool blockEntry)

Detailed Description

Definition at line 20 of file fei_Matrix_Local.hpp.


Member Function Documentation

const char * fei::Matrix_Local::typeName (  )  [virtual]

Return an implementation-dependent name describing the run-time type of this object.

Implements fei::Matrix.

Definition at line 45 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::parameters ( const fei::ParameterSet paramset  )  [virtual]

Method for supplying parameters

Implements fei::Matrix.

Definition at line 50 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::parameters ( int  numParams,
const char *const *  paramStrings 
)

Method for supplying parameters

Definition at line 57 of file fei_Matrix_Local.cpp.

fei::SharedPtr< fei::MatrixGraph > fei::Matrix_Local::getMatrixGraph (  )  [virtual]

Obtain the fei::MatrixGraph associated with this matrix

Implements fei::Matrix.

Definition at line 63 of file fei_Matrix_Local.cpp.

void fei::Matrix_Local::setMatrixGraph ( fei::SharedPtr< fei::MatrixGraph matrixGraph  )  [virtual]

Set the fei::MatrixGraph associated with this matrix

Implements fei::Matrix.

Definition at line 67 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::getGlobalNumRows (  )  const [virtual]

Get the global number of rows in the matrix.

Implements fei::Matrix.

Definition at line 71 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::getLocalNumRows (  )  const [virtual]

Get the local number of rows in the matrix.

Implements fei::Matrix.

Definition at line 75 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::getRowLength ( int  row,
int &  length 
) const [virtual]

Get the length of a row of the matrix.

Parameters:
row Global 0-based equation number
length Output. Length of the row.
Returns:
error-code non-zero if any error occurs.

Implements fei::Matrix.

Definition at line 87 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::putScalar ( double  scalar  )  [virtual]

Set a specified scalar throughout the matrix.

Implements fei::Matrix.

Definition at line 98 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::copyOutRow ( int  row,
int  len,
double *  coefs,
int *  indices 
) const [virtual]

Obtain a copy of the coefficients and indices for a row of the matrix.

Parameters:
row Global 0-based equation number
coefs Caller-allocated array, length 'len', to be filled with coefficients
indices Caller-allocated array, length 'len', to be filled with indices. (These indices will be global 0-based equation numbers.)
len Length of the caller-allocated coefs and indices arrays
Returns:
error-code non-zero if any error occurs.

Implements fei::Matrix.

Definition at line 106 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::sumIn ( int  numRows,
const int *  rows,
int  numCols,
const int *  cols,
const double *const *  values,
int  format = 0 
) [virtual]

Sum coefficients into the matrix, adding them to any coefficients that may already exist at the specified row/column locations.

Parameters:
numRows 
rows 
numCols 
cols 
values 
format For compatibility with old FEI elemFormat... 0 means row-wise or row-major, 3 means column-major. Others not recognized

Implements fei::Matrix.

Definition at line 177 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::copyIn ( int  numRows,
const int *  rows,
int  numCols,
const int *  cols,
const double *const *  values,
int  format = 0 
) [virtual]

Copy coefficients into the matrix, overwriting any coefficients that may already exist at the specified row/column locations.

Parameters:
numRows 
rows 
numCols 
cols 
values 
format For compatibility with old FEI elemFormat... 0 means row-wise or row-major, 3 means column-major. Others not recognized

Implements fei::Matrix.

Definition at line 187 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::sumInFieldData ( int  fieldID,
int  idType,
int  rowID,
int  colID,
const double *const *  data,
int  format = 0 
) [virtual]

Sum coefficients into the matrix, specifying row/column locations by identifier/fieldID pairs.

Parameters:
fieldID Input. field-identifier for which data is being input.
idType Input. The identifier-type of the identifiers.
rowID Input. Identifier in row-space, for which data is being input.
colID Input. Identifier in column-space, for which data is being input.
data Input. C-style table of data. num-rows is the field-size (i.e., number of scalar components that make up the field) of 'fieldID', as is num-columns.
format For compatibility with old FEI elemFormat... 0 means row-wise or row-major, 3 means column-major. Others not recognized
Returns:
error-code 0 if successful

Implements fei::Matrix.

Definition at line 197 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::sumInFieldData ( int  fieldID,
int  idType,
int  rowID,
int  colID,
const double *  data,
int  format = 0 
) [virtual]

Sum coefficients into the matrix, specifying row/column locations by identifier/fieldID pairs.

Parameters:
fieldID Input. field-identifier for which data is being input.
idType Input. The identifier-type of the identifiers.
rowID Input. Identifier in row-space, for which data is being input.
colID Input. Identifier in column-space, for which data is being input.
data Input. 1-D list representing a packed table of data. Data may be backed in row-major or column-major order and this may be specified with the 'format' argument. The "table" of data is of size num-rows X num-columns and num-rows is the field-size (i.e., number of scalar components that make up the field) of 'fieldID', as is num-columns.
format For compatibility with old FEI elemFormat... 0 means row-wise or row-major, 3 means column-major. Others not recognized
Returns:
error-code 0 if successful

Implements fei::Matrix.

Definition at line 225 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::sumIn ( int  blockID,
int  connectivityID,
const double *const *  values,
int  format = 0 
) [virtual]

Sum coefficients, associated with a connectivity-block that was initialized on the MatrixGraph object, into this matrix.

Parameters:
blockID 
connectivityID 
values 
format For compatibility with old FEI elemFormat... 0 means row-wise or row-major, 3 means column-major. Others not recognized

Implements fei::Matrix.

Definition at line 248 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::globalAssemble (  )  [virtual]

Perform any necessary internal communications/synchronizations or other operations appropriate at end of data input. For some implementations this will be a no-op.

Implements fei::Matrix.

Definition at line 263 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::multiply ( fei::Vector x,
fei::Vector y 
) [virtual]

Form a matrix-vector product y = 'this' * x

Implements fei::Matrix.

Definition at line 267 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::gatherFromOverlap ( bool  accumulate = true  )  [virtual]

After local overlapping data has been input, (e.g., element-data for a finite-element application) call this method to have data that corresponds to shared identifiers be communicated from sharing-but-not- owning processors, to owning processors.

Implements fei::Matrix.

Definition at line 275 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::writeToFile ( const char *  filename,
bool  matrixMarketFormat = true 
) [virtual]

Write the matrix contents into the specified file.

Parameters:
filename Text name of the file to be created or overwritten. If in a parallel environment, each processor will take turns writing into the file.
matrixMarketFormat Optional argument, defaults to true. If true the contents of the file will be MatrixMarket real array format. If not true, the contents of the file will contain the matrix global dimensions on the first line, and all following lines will contain a space-separated triple with global row index first, global column index second and coefficient value third. Note also that if matrixMarketFormat is true, indices will be output in 1-based form, but if not true, indices will be 0-based.
Returns:
error-code 0 if successful, -1 if some error occurs such as failure to open file.

Implements fei::Matrix.

Definition at line 282 of file fei_Matrix_Local.cpp.

int fei::Matrix_Local::writeToStream ( FEI_OSTREAM &  ostrm,
bool  matrixMarketFormat = true 
) [virtual]

Write the matrix contents into the specified ostream.

Parameters:
ostrm ostream to be written to.
matrixMarketFormat Optional argument, defaults to true. If true the data will be written in MatrixMarket real array format. If not true, the stream will receive the matrix global dimensions on the first line, and all following lines will contain a space-separated triple with global row index first, global column index second and coefficient value third. Note also that if matrixMarketFormat is true, indices will be output in 1-based form, but if not true, indices will be 0-based.
Returns:
error-code 0 if successful, -1 if some error occurs.

Implements fei::Matrix.

Definition at line 301 of file fei_Matrix_Local.cpp.

bool fei::Matrix_Local::usingBlockEntryStorage (  )  [virtual]

Query whether the underlying matrix object is a block-entry matrix.

Implements fei::Matrix.

Definition at line 349 of file fei_Matrix_Local.cpp.

void fei::Matrix_Local::markState (  )  [virtual]

Set a "mark" point on the current state of the matrix, so that later a query can be made to see if the matrix has changed since this mark was set.

Implements fei::Matrix.

Definition at line 353 of file fei_Matrix_Local.cpp.

bool fei::Matrix_Local::changedSinceMark (  )  [virtual]

Query whether the matrix has changed since markState() was called. If markState() hasn't been called since the matrix was constructed, then this query will return true.

Implements fei::Matrix.

Definition at line 359 of file fei_Matrix_Local.cpp.


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