FEI Version of the Day
Classes | Public Member Functions
fei::LinearSystem Class Reference

#include <fei_LinearSystem.hpp>

Inheritance diagram for fei::LinearSystem:
Inheritance graph
[legend]

List of all members.

Classes

class  Factory

Public Member Functions

 LinearSystem (fei::SharedPtr< fei::MatrixGraph > &matrixGraph)
virtual ~LinearSystem ()
virtual int parameters (int numParams, const char *const *paramStrings)=0
virtual int parameters (const fei::ParameterSet &params)=0
virtual void setMatrix (fei::SharedPtr< fei::Matrix > &matrix)
virtual fei::SharedPtr
< fei::Matrix
getMatrix ()
virtual fei::SharedPtr< const
fei::Matrix
getMatrix () const
virtual void setRHS (fei::SharedPtr< fei::Vector > &rhs)
virtual fei::SharedPtr
< fei::Vector
getRHS ()
virtual fei::SharedPtr< const
fei::Vector
getRHS () const
virtual void setSolutionVector (fei::SharedPtr< fei::Vector > &soln)
virtual fei::SharedPtr
< fei::Vector
getSolutionVector ()
virtual fei::SharedPtr< const
fei::Vector
getSolutionVector () const
virtual int putAttribute (const char *name, void *attribute)
virtual int getAttribute (const char *name, void *&attribute)
virtual int loadEssentialBCs (int numIDs, const int *IDs, int idType, int fieldID, int offsetIntoField, const double *prescribedValues)
virtual int loadEssentialBCs (int numIDs, const int *IDs, int idType, int fieldID, const int *offsetsIntoField, const double *prescribedValues)
virtual int loadLagrangeConstraint (int constraintID, const double *weights, double rhsValue)=0
virtual int loadPenaltyConstraint (int constraintID, const double *weights, double penaltyValue, double rhsValue)=0
virtual int loadComplete (bool applyBCs=true, bool globalAssemble=true)=0
virtual int setBCValuesOnVector (fei::Vector *vector)=0
virtual bool eqnIsEssentialBC (int globalEqnIndex) const =0
virtual void getEssentialBCs (std::vector< int > &bcEqns, std::vector< double > &bcVals) const =0
virtual void getConstrainedEqns (std::vector< int > &crEqns) const =0

Detailed Description

A simple container to bind a matrix and two vectors together as the matrix, rhs and solution of a linear system.

Definition at line 61 of file fei_LinearSystem.hpp.


Constructor & Destructor Documentation

fei::LinearSystem::LinearSystem ( fei::SharedPtr< fei::MatrixGraph > &  matrixGraph)

Constructor

Definition at line 52 of file fei_LinearSystem.cpp.

fei::LinearSystem::~LinearSystem ( ) [virtual]

Destructor

Definition at line 62 of file fei_LinearSystem.cpp.


Member Function Documentation

virtual int fei::LinearSystem::parameters ( int  numParams,
const char *const *  paramStrings 
) [pure virtual]

Set parameters on this object. Currently two parameters are recognized: "debugOutput 'path'" where 'path' is the path to the location where debug-log files will be produced.
"name 'string'" where 'string' is an identifier that will be used in debug-log file-names.

Implemented in snl_fei::LinearSystem_FEData, and snl_fei::LinearSystem_General.

virtual int fei::LinearSystem::parameters ( const fei::ParameterSet params) [pure virtual]

Set parameters on this object.

Implemented in snl_fei::LinearSystem_FEData, and snl_fei::LinearSystem_General.

void fei::LinearSystem::setMatrix ( fei::SharedPtr< fei::Matrix > &  matrix) [virtual]

Set the matrix for this linear system.

Definition at line 82 of file fei_LinearSystem.cpp.

virtual fei::SharedPtr<fei::Matrix> fei::LinearSystem::getMatrix ( ) [inline, virtual]

Get the matrix for this linear system.

Definition at line 97 of file fei_LinearSystem.hpp.

virtual fei::SharedPtr<const fei::Matrix> fei::LinearSystem::getMatrix ( ) const [inline, virtual]

Get the matrix for this linear system.

Definition at line 101 of file fei_LinearSystem.hpp.

virtual void fei::LinearSystem::setRHS ( fei::SharedPtr< fei::Vector > &  rhs) [inline, virtual]

Set the right-hand-side for this linear system.

Definition at line 106 of file fei_LinearSystem.hpp.

virtual fei::SharedPtr<fei::Vector> fei::LinearSystem::getRHS ( ) [inline, virtual]

Get the right-hand-side for this linear system.

Definition at line 110 of file fei_LinearSystem.hpp.

virtual fei::SharedPtr<const fei::Vector> fei::LinearSystem::getRHS ( ) const [inline, virtual]

Get the right-hand-side for this linear system.

Definition at line 114 of file fei_LinearSystem.hpp.

virtual void fei::LinearSystem::setSolutionVector ( fei::SharedPtr< fei::Vector > &  soln) [inline, virtual]

Set the solution for this linear system.

Definition at line 119 of file fei_LinearSystem.hpp.

virtual fei::SharedPtr<fei::Vector> fei::LinearSystem::getSolutionVector ( ) [inline, virtual]

Get the solution for this linear system.

Definition at line 123 of file fei_LinearSystem.hpp.

virtual fei::SharedPtr<const fei::Vector> fei::LinearSystem::getSolutionVector ( ) const [inline, virtual]

Get the solution for this linear system.

Definition at line 127 of file fei_LinearSystem.hpp.

int fei::LinearSystem::putAttribute ( const char *  name,
void *  attribute 
) [virtual]

Store an attribute on this LinearSystem which can be retrieved later by name.

Definition at line 88 of file fei_LinearSystem.cpp.

int fei::LinearSystem::getAttribute ( const char *  name,
void *&  attribute 
) [virtual]

Retrieve an attribute which was previously stored.

Definition at line 97 of file fei_LinearSystem.cpp.

int fei::LinearSystem::loadEssentialBCs ( int  numIDs,
const int *  IDs,
int  idType,
int  fieldID,
int  offsetIntoField,
const double *  prescribedValues 
) [virtual]

Essential boundary-condition function that simply accepts a list of prescribed values, rather than the 'old' FEI's confusing approach of accepting arrays of alpha, beta and gamma values that nobody every really understood.

For each specified ID, a value is being prescribed for a specified fieldID and a specified offset into that field.

Parameters:
numIDs
IDs
idType
fieldID
offsetIntoField
prescribedValuesInput. List of values. Has length numIDs.

Reimplemented in snl_fei::LinearSystem_General.

Definition at line 105 of file fei_LinearSystem.cpp.

int fei::LinearSystem::loadEssentialBCs ( int  numIDs,
const int *  IDs,
int  idType,
int  fieldID,
const int *  offsetsIntoField,
const double *  prescribedValues 
) [virtual]

Essential boundary-condition function that simply accepts a list of prescribed values, rather than the 'old' FEI's confusing approach of accepting arrays of alpha, beta and gamma values that nobody every really understood.

For each specified ID, a value is being prescribed for a specified fieldID and a specified offset into that field. The offset into the field can be different for each prescribed value.

Parameters:
numIDs
IDs
idType
fieldID
offsetsIntoFieldInput. List of values, length numIDs.
prescribedValuesInput. List of values. Has length numIDs.

Reimplemented in snl_fei::LinearSystem_General.

Definition at line 129 of file fei_LinearSystem.cpp.

virtual int fei::LinearSystem::loadLagrangeConstraint ( int  constraintID,
const double *  weights,
double  rhsValue 
) [pure virtual]

Lagrange constraint coefficient loading function.

Parameters:
constraintIDInput. Must be an identifier of a lagrange constraint that was initialized on the fei::MatrixGraph object which was used to construct the matrix for this linear system.
weightsInput. List, with length given by the sum of the sizes of the constrained fields.
rhsValue

Implemented in snl_fei::LinearSystem_FEData, and snl_fei::LinearSystem_General.

virtual int fei::LinearSystem::loadPenaltyConstraint ( int  constraintID,
const double *  weights,
double  penaltyValue,
double  rhsValue 
) [pure virtual]

Penalty constraint coefficient loading function.

Parameters:
constraintIDInput. Must be an identifier of a lagrange constraint that was initialized on the fei::MatrixGraph object which was used to construct the matrix for this linear system.
weightsInput. List, with length given by the sum of the sizes of the constrained fields.
penaltyValue
rhsValue

Implemented in snl_fei::LinearSystem_FEData, and snl_fei::LinearSystem_General.

virtual int fei::LinearSystem::loadComplete ( bool  applyBCs = true,
bool  globalAssemble = true 
) [pure virtual]

Signal that all boundary-conditions and constraint coefficients have been loaded, and they may now be applied to the linear system.

Implemented in snl_fei::LinearSystem_FEData, and snl_fei::LinearSystem_General.

virtual int fei::LinearSystem::setBCValuesOnVector ( fei::Vector vector) [pure virtual]

Request that any boundary-condition values that have been provided via loadEssentialBCs() be set in the specified vector.

Implemented in snl_fei::LinearSystem_FEData, and snl_fei::LinearSystem_General.

virtual bool fei::LinearSystem::eqnIsEssentialBC ( int  globalEqnIndex) const [pure virtual]

Query whether a specified equation-index has a prescribed essential boundary-condition.

Implemented in snl_fei::LinearSystem_FEData, and snl_fei::LinearSystem_General.

virtual void fei::LinearSystem::getEssentialBCs ( std::vector< int > &  bcEqns,
std::vector< double > &  bcVals 
) const [pure virtual]

Fill caller-supplied vectors with the global equation-indices (which reside on the local processor) that have essential boundary-conditions prescribed, and fill a second vector with the prescribed values.

Implemented in snl_fei::LinearSystem_FEData, and snl_fei::LinearSystem_General.

virtual void fei::LinearSystem::getConstrainedEqns ( std::vector< int > &  crEqns) const [pure virtual]

Fill a caller-supplied vector with the global equation-indices (which reside on the local processor) that are involved in constraint-relations.

Implemented in snl_fei::LinearSystem_FEData, and snl_fei::LinearSystem_General.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends