FEI Package Browser (Single Doxygen Collection) Version of the Day
Loading...
Searching...
No Matches
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() [1/2]

Filter::Filter ( SNL_FEI_Structure * probStruct)

Constructor

Definition at line 31 of file fei_Filter.cpp.

◆ ~Filter()

Filter::~Filter ( )
virtual

Destructor

Definition at line 40 of file fei_Filter.cpp.

◆ Filter() [2/2]

Filter::Filter ( const Filter & )
inlineprivate

Definition at line 271 of file fei_Filter.hpp.

Member Function Documentation

◆ initialize()

virtual int Filter::initialize ( )
pure virtual

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ resetSystem()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ resetMatrix()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ resetRHSVector()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ resetInitialGuess()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ deleteMultCRs()

virtual int Filter::deleteMultCRs ( )
pure virtual

◆ loadNodeBCs()

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

Reimplemented in FEDataFilter, and LinSysCoreFilter.

Definition at line 46 of file fei_Filter.hpp.

References fei::console_out(), and FEI_ENDL.

◆ loadElemBCs()

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 FEDataFilter, and LinSysCoreFilter.

◆ sumInElem()

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

Reimplemented in FEDataFilter, and LinSysCoreFilter.

Definition at line 63 of file fei_Filter.hpp.

◆ sumInElemMatrix()

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

Reimplemented in FEDataFilter, and LinSysCoreFilter.

Definition at line 70 of file fei_Filter.hpp.

◆ sumInElemRHS()

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

Reimplemented in FEDataFilter, and LinSysCoreFilter.

Definition at line 76 of file fei_Filter.hpp.

◆ loadCRMult()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ loadCRPen()

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 FEDataFilter, and LinSysCoreFilter.

◆ putIntoRHS()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ sumIntoRHS()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ sumIntoMatrixDiagonal()

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

Reimplemented in FEDataFilter.

Definition at line 108 of file fei_Filter.hpp.

◆ loadComplete()

virtual int Filter::loadComplete ( )
pure virtual

◆ parameters()

int Filter::parameters ( int numParams,
const char *const * paramStrings )
virtual

◆ residualNorm()

virtual int Filter::residualNorm ( int whichNorm,
int numFields,
int * fieldIDs,
double * norms,
double & residTime )
pure virtual

◆ solve()

virtual int Filter::solve ( int & status,
double & sTime )
pure virtual

Implemented in FEDataFilter, and LinSysCoreFilter.

Referenced by FEI_Implementation::solve().

◆ iterations()

virtual int Filter::iterations ( ) const
pure virtual

Implemented in FEDataFilter, and LinSysCoreFilter.

Referenced by FEI_Implementation::iterations().

◆ getBlockNodeSolution()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ getNodalSolution()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ getBlockFieldNodeSolution()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ getBlockElemSolution()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ getCRMultipliers()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ putBlockNodeSolution()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ putBlockFieldNodeSolution()

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

◆ putBlockElemSolution()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ putCRMultipliers()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ getNodalFieldSolution()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ putNodalFieldData()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ putNodalFieldSolution()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ unpackSolution()

virtual int Filter::unpackSolution ( )
pure virtual

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ setEqnCommMgr()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ getEqnCommMgr()

virtual EqnCommMgr * Filter::getEqnCommMgr ( )
pure virtual

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ setNumRHSVectors()

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

◆ setCurrentRHS()

virtual int Filter::setCurrentRHS ( int rhsID)
pure virtual

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ exchangeRemoteEquations()

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().

◆ enforceEssentialBCs()

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

Implemented in FEDataFilter, and LinSysCoreFilter.

◆ copyStiffness()

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

◆ setLogStream()

void Filter::setLogStream ( std::ostream * logstrm)

◆ logStream()

FEI_OSTREAM * Filter::logStream ( )

◆ generalElemInput()

virtual int Filter::generalElemInput ( GlobalID ,
GlobalID ,
const GlobalID * ,
const double *const * ,
const double * ,
int  )
inlineprotectedvirtual

Reimplemented in FEDataFilter, and LinSysCoreFilter.

Definition at line 237 of file fei_Filter.hpp.

◆ generalCoefInput()

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.

◆ calculateResidualNorms()

int Filter::calculateResidualNorms ( int whichNorm,
int numFields,
int * fieldIDs,
double * norms,
std::vector< double > & residValues )
protected

◆ findNode()

const NodeDescriptor * Filter::findNode ( GlobalID nodeID) const
protected

◆ findNodeDescriptor()

const NodeDescriptor & Filter::findNodeDescriptor ( GlobalID nodeID) const
protected

◆ operator=()

Filter & Filter::operator= ( const Filter & )
inlineprivate

Definition at line 276 of file fei_Filter.hpp.

Member Data Documentation

◆ problemStructure_

SNL_FEI_Structure* Filter::problemStructure_
protected

Definition at line 260 of file fei_Filter.hpp.

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

◆ logInput_

bool Filter::logInput_
protected

Definition at line 262 of file fei_Filter.hpp.

◆ logInputStream_

std::ostream* Filter::logInputStream_
protected

Definition at line 263 of file fei_Filter.hpp.

Referenced by logStream(), and setLogStream().

◆ outputLevel_

int Filter::outputLevel_
protected

Definition at line 265 of file fei_Filter.hpp.

Referenced by parameters().

◆ numProcs_

int Filter::numProcs_
protected

◆ localRank_

int Filter::localRank_
protected

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