FEI Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
Filter Class Referenceabstract

#include <fei_Filter.hpp>

Inheritance diagram for Filter:
Inheritance graph
[legend]

Public Member Functions

 Filter (SNL_FEI_Structure *probStruct)
 
virtual ~Filter ()
 
virtual int initialize ()=0
 
virtual int resetSystem (double s)=0
 
virtual int resetMatrix (double s)=0
 
virtual int resetRHSVector (double s)=0
 
virtual int resetInitialGuess (double s)=0
 
virtual int deleteMultCRs ()=0
 
virtual int loadNodeBCs (int, const GlobalID *, int, const int *, const double *)
 
virtual int loadElemBCs (int numElems, const GlobalID *elemIDs, int fieldID, const double *const *alpha, const double *const *beta, const double *const *gamma)=0
 
virtual int sumInElem (GlobalID, GlobalID, const GlobalID *, const double *const *, const double *, int)
 
virtual int sumInElemMatrix (GlobalID, GlobalID, const GlobalID *, const double *const *, int)
 
virtual int sumInElemRHS (GlobalID, GlobalID, const GlobalID *, const double *)
 
virtual int loadCRMult (int CRMultID, int numCRNodes, const GlobalID *CRNodes, const int *CRFields, const double *CRWeights, double CRValue)=0
 
virtual int loadCRPen (int CRPenID, int numCRNodes, const GlobalID *CRNodes, const int *CRFields, const double *CRWeights, double CRValue, double penValue)=0
 
virtual int putIntoRHS (int IDType, int fieldID, int numIDs, const GlobalID *IDs, const double *rhsEntries)=0
 
virtual int sumIntoRHS (int IDType, int fieldID, int numIDs, const GlobalID *IDs, const double *rhsEntries)=0
 
virtual int sumIntoMatrixDiagonal (int, int, int, const GlobalID *, const double *)
 
virtual int loadComplete ()=0
 
virtual int parameters (int numParams, const char *const *paramStrings)
 
virtual int residualNorm (int whichNorm, int numFields, int *fieldIDs, double *norms, double &residTime)=0
 
virtual int solve (int &status, double &sTime)=0
 
virtual int iterations () const =0
 
virtual int getBlockNodeSolution (GlobalID elemBlockID, int numNodes, const GlobalID *nodeIDs, int *offsets, double *results)=0
 
virtual int getNodalSolution (int numNodes, const GlobalID *nodeIDs, int *offsets, double *results)=0
 
virtual int getBlockFieldNodeSolution (GlobalID elemBlockID, int fieldID, int numNodes, const GlobalID *nodeIDs, double *results)=0
 
virtual int getBlockElemSolution (GlobalID elemBlockID, int numElems, const GlobalID *elemIDs, int &numElemDOFPerElement, double *results)=0
 
virtual int getCRMultipliers (int numCRs, const int *CRIDs, double *multipliers)=0
 
virtual int putBlockNodeSolution (GlobalID elemBlockID, int numNodes, const GlobalID *nodeIDs, const int *offsets, const double *estimates)=0
 
virtual int putBlockFieldNodeSolution (GlobalID elemBlockID, int fieldID, int numNodes, const GlobalID *nodeIDs, const double *estimates)=0
 
virtual int putBlockElemSolution (GlobalID elemBlockID, int numElems, const GlobalID *elemIDs, int dofPerElem, const double *estimates)=0
 
virtual int putCRMultipliers (int numMultCRs, const int *CRIDs, const double *multEstimates)=0
 
virtual int getNodalFieldSolution (int fieldID, int numNodes, const GlobalID *nodeIDs, double *results)=0
 
virtual int putNodalFieldData (int fieldID, int numNodes, const GlobalID *nodeIDs, const double *nodeData)=0
 
virtual int putNodalFieldSolution (int fieldID, int numNodes, const GlobalID *nodeIDs, const double *nodeData)=0
 
virtual int unpackSolution ()=0
 
virtual void setEqnCommMgr (EqnCommMgr *eqnCommMgr)=0
 
virtual EqnCommMgrgetEqnCommMgr ()=0
 
virtual int setNumRHSVectors (int numRHSs, int *rhsIDs)=0
 
virtual int setCurrentRHS (int rhsID)=0
 
virtual int exchangeRemoteEquations ()
 
virtual int enforceEssentialBCs (const int *eqns, const double *alpha, const double *gamma, int numEqns)=0
 
void setLogStream (std::ostream *logstrm)
 
std::ostream * logStream ()
 

Static Public Member Functions

static void copyStiffness (const double *const *elemStiff, int numRows, int elemFormat, double **copy)
 

Protected Member Functions

virtual int generalElemInput (GlobalID, GlobalID, const GlobalID *, const double *const *, const double *, int)
 
int generalCoefInput (int, const int *, const GlobalID *, const int *, const GlobalID *, const double *const *, const double *, int, int)
 
int calculateResidualNorms (int whichNorm, int numFields, int *fieldIDs, double *norms, std::vector< double > &residValues)
 
const NodeDescriptorfindNode (GlobalID nodeID) const
 
const NodeDescriptorfindNodeDescriptor (GlobalID nodeID) const
 

Protected Attributes

SNL_FEI_StructureproblemStructure_
 
bool logInput_
 
std::ostream * logInputStream_
 
int outputLevel_
 
int numProcs_
 
int localRank_
 

Private Member Functions

 Filter (const Filter &)
 
Filteroperator= (const Filter &)
 

Detailed Description

FEI_Implementation manages one or several instances of this class in the process of assembling and solving a linear-system. Many of the public FEI function calls are simply forwarded from FEI_Implementation to this class. This class then performs the "filtering" process of turning nodeIDs and solution fields into equation numbers and then dropping the data on through to the underlying solver library by way of a LinearSystemCore or FiniteElementData interface that is implemented for the solver library in question.

Definition at line 27 of file fei_Filter.hpp.

Constructor & Destructor Documentation

Filter::Filter ( SNL_FEI_Structure probStruct)

Constructor

Definition at line 31 of file fei_Filter.cpp.

Filter::~Filter ( )
virtual

Destructor

Definition at line 40 of file fei_Filter.cpp.

Filter::Filter ( const Filter )
inlineprivate

Definition at line 271 of file fei_Filter.hpp.

Member Function Documentation

virtual int Filter::initialize ( )
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::resetSystem ( double  s)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::resetMatrix ( double  s)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::resetRHSVector ( double  s)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::resetInitialGuess ( double  s)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::deleteMultCRs ( )
pure virtual
virtual int Filter::loadNodeBCs ( int  ,
const GlobalID ,
int  ,
const int *  ,
const double *   
)
inlinevirtual

Reimplemented in LinSysCoreFilter, and FEDataFilter.

Definition at line 46 of file fei_Filter.hpp.

References fei::console_out(), and FEI_ENDL.

virtual int Filter::loadElemBCs ( int  numElems,
const GlobalID elemIDs,
int  fieldID,
const double *const *  alpha,
const double *const *  beta,
const double *const *  gamma 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::sumInElem ( GlobalID  ,
GlobalID  ,
const GlobalID ,
const double *const *  ,
const double *  ,
int   
)
inlinevirtual

Reimplemented in LinSysCoreFilter, and FEDataFilter.

Definition at line 63 of file fei_Filter.hpp.

virtual int Filter::sumInElemMatrix ( GlobalID  ,
GlobalID  ,
const GlobalID ,
const double *const *  ,
int   
)
inlinevirtual

Reimplemented in LinSysCoreFilter, and FEDataFilter.

Definition at line 70 of file fei_Filter.hpp.

virtual int Filter::sumInElemRHS ( GlobalID  ,
GlobalID  ,
const GlobalID ,
const double *   
)
inlinevirtual

Reimplemented in LinSysCoreFilter, and FEDataFilter.

Definition at line 76 of file fei_Filter.hpp.

virtual int Filter::loadCRMult ( int  CRMultID,
int  numCRNodes,
const GlobalID CRNodes,
const int *  CRFields,
const double *  CRWeights,
double  CRValue 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::loadCRPen ( int  CRPenID,
int  numCRNodes,
const GlobalID CRNodes,
const int *  CRFields,
const double *  CRWeights,
double  CRValue,
double  penValue 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::putIntoRHS ( int  IDType,
int  fieldID,
int  numIDs,
const GlobalID IDs,
const double *  rhsEntries 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::sumIntoRHS ( int  IDType,
int  fieldID,
int  numIDs,
const GlobalID IDs,
const double *  rhsEntries 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::sumIntoMatrixDiagonal ( int  ,
int  ,
int  ,
const GlobalID ,
const double *   
)
inlinevirtual

Reimplemented in FEDataFilter.

Definition at line 108 of file fei_Filter.hpp.

virtual int Filter::loadComplete ( )
pure virtual
int Filter::parameters ( int  numParams,
const char *const *  paramStrings 
)
virtual
virtual int Filter::residualNorm ( int  whichNorm,
int  numFields,
int *  fieldIDs,
double *  norms,
double &  residTime 
)
pure virtual
virtual int Filter::solve ( int &  status,
double &  sTime 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

Referenced by FEI_Implementation::solve().

virtual int Filter::iterations ( ) const
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

Referenced by FEI_Implementation::iterations().

virtual int Filter::getBlockNodeSolution ( GlobalID  elemBlockID,
int  numNodes,
const GlobalID nodeIDs,
int *  offsets,
double *  results 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::getNodalSolution ( int  numNodes,
const GlobalID nodeIDs,
int *  offsets,
double *  results 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::getBlockFieldNodeSolution ( GlobalID  elemBlockID,
int  fieldID,
int  numNodes,
const GlobalID nodeIDs,
double *  results 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::getBlockElemSolution ( GlobalID  elemBlockID,
int  numElems,
const GlobalID elemIDs,
int &  numElemDOFPerElement,
double *  results 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::getCRMultipliers ( int  numCRs,
const int *  CRIDs,
double *  multipliers 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::putBlockNodeSolution ( GlobalID  elemBlockID,
int  numNodes,
const GlobalID nodeIDs,
const int *  offsets,
const double *  estimates 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::putBlockFieldNodeSolution ( GlobalID  elemBlockID,
int  fieldID,
int  numNodes,
const GlobalID nodeIDs,
const double *  estimates 
)
pure virtual
virtual int Filter::putBlockElemSolution ( GlobalID  elemBlockID,
int  numElems,
const GlobalID elemIDs,
int  dofPerElem,
const double *  estimates 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::putCRMultipliers ( int  numMultCRs,
const int *  CRIDs,
const double *  multEstimates 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::getNodalFieldSolution ( int  fieldID,
int  numNodes,
const GlobalID nodeIDs,
double *  results 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::putNodalFieldData ( int  fieldID,
int  numNodes,
const GlobalID nodeIDs,
const double *  nodeData 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::putNodalFieldSolution ( int  fieldID,
int  numNodes,
const GlobalID nodeIDs,
const double *  nodeData 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::unpackSolution ( )
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual void Filter::setEqnCommMgr ( EqnCommMgr eqnCommMgr)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual EqnCommMgr* Filter::getEqnCommMgr ( )
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::setNumRHSVectors ( int  numRHSs,
int *  rhsIDs 
)
pure virtual
virtual int Filter::setCurrentRHS ( int  rhsID)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

virtual int Filter::exchangeRemoteEquations ( )
inlinevirtual

Reimplemented in LinSysCoreFilter.

Definition at line 225 of file fei_Filter.hpp.

Referenced by FEI_Implementation::buildLinearSystem(), and FEDataFilter::putIntoRHS().

virtual int Filter::enforceEssentialBCs ( const int *  eqns,
const double *  alpha,
const double *  gamma,
int  numEqns 
)
pure virtual

Implemented in LinSysCoreFilter, and FEDataFilter.

void Filter::copyStiffness ( const double *const *  elemStiff,
int  numRows,
int  elemFormat,
double **  copy 
)
static
void Filter::setLogStream ( std::ostream *  logstrm)
FEI_OSTREAM * Filter::logStream ( )
virtual int Filter::generalElemInput ( GlobalID  ,
GlobalID  ,
const GlobalID ,
const double *const *  ,
const double *  ,
int   
)
inlineprotectedvirtual

Reimplemented in LinSysCoreFilter, and FEDataFilter.

Definition at line 237 of file fei_Filter.hpp.

int Filter::generalCoefInput ( int  ,
const int *  ,
const GlobalID ,
const int *  ,
const GlobalID ,
const double *const *  ,
const double *  ,
int  ,
int   
)
inlineprotected

Definition at line 244 of file fei_Filter.hpp.

int Filter::calculateResidualNorms ( int  whichNorm,
int  numFields,
int *  fieldIDs,
double *  norms,
std::vector< double > &  residValues 
)
protected
const NodeDescriptor * Filter::findNode ( GlobalID  nodeID) const
protected
const NodeDescriptor & Filter::findNodeDescriptor ( GlobalID  nodeID) const
protected
Filter& Filter::operator= ( const Filter )
inlineprivate

Definition at line 276 of file fei_Filter.hpp.

Member Data Documentation

SNL_FEI_Structure* Filter::problemStructure_
protected

Definition at line 260 of file fei_Filter.hpp.

Referenced by calculateResidualNorms(), findNode(), and findNodeDescriptor().

bool Filter::logInput_
protected

Definition at line 262 of file fei_Filter.hpp.

std::ostream* Filter::logInputStream_
protected

Definition at line 263 of file fei_Filter.hpp.

Referenced by logStream(), and setLogStream().

int Filter::outputLevel_
protected

Definition at line 265 of file fei_Filter.hpp.

Referenced by parameters().

int Filter::numProcs_
protected
int Filter::localRank_
protected

The documentation for this class was generated from the following files: