FEI Package Browser (Single Doxygen Collection)
Version of the Day
|
#include <fei_Filter.hpp>
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 EqnCommMgr * | getEqnCommMgr ()=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 NodeDescriptor * | findNode (GlobalID nodeID) const |
const NodeDescriptor & | findNodeDescriptor (GlobalID nodeID) const |
Protected Attributes | |
SNL_FEI_Structure * | problemStructure_ |
bool | logInput_ |
std::ostream * | logInputStream_ |
int | outputLevel_ |
int | numProcs_ |
int | localRank_ |
Private Member Functions | |
Filter (const Filter &) | |
Filter & | operator= (const Filter &) |
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.
Filter::Filter | ( | SNL_FEI_Structure * | probStruct | ) |
Constructor
Definition at line 31 of file fei_Filter.cpp.
|
virtual |
Destructor
Definition at line 40 of file fei_Filter.cpp.
|
inlineprivate |
Definition at line 271 of file fei_Filter.hpp.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
Referenced by FEI_Implementation::deleteMultCRs().
|
inlinevirtual |
Reimplemented in LinSysCoreFilter, and FEDataFilter.
Definition at line 46 of file fei_Filter.hpp.
References fei::console_out(), and FEI_ENDL.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
inlinevirtual |
Reimplemented in LinSysCoreFilter, and FEDataFilter.
Definition at line 63 of file fei_Filter.hpp.
|
inlinevirtual |
Reimplemented in LinSysCoreFilter, and FEDataFilter.
Definition at line 70 of file fei_Filter.hpp.
|
inlinevirtual |
Reimplemented in LinSysCoreFilter, and FEDataFilter.
Definition at line 76 of file fei_Filter.hpp.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
inlinevirtual |
Reimplemented in FEDataFilter.
Definition at line 108 of file fei_Filter.hpp.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
Referenced by FEI_Implementation::buildLinearSystem().
|
virtual |
Reimplemented in LinSysCoreFilter, and FEDataFilter.
Definition at line 283 of file fei_Filter.cpp.
References FEI_ISTRINGSTREAM, snl_fei::getParam(), and outputLevel_.
Referenced by FEI_Implementation::allocateInternalFEIs(), FEDataFilter::parameters(), and LinSysCoreFilter::parameters().
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
Referenced by FEI_Implementation::residualNorm().
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
Referenced by FEI_Implementation::solve().
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
Referenced by FEI_Implementation::iterations().
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
Referenced by FEI_Implementation::putBlockFieldNodeSolution().
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
Referenced by FEI_Implementation::allocateInternalFEIs().
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
inlinevirtual |
Reimplemented in LinSysCoreFilter.
Definition at line 225 of file fei_Filter.hpp.
Referenced by FEI_Implementation::buildLinearSystem(), and FEDataFilter::putIntoRHS().
|
pure virtual |
Implemented in LinSysCoreFilter, and FEDataFilter.
|
static |
Definition at line 56 of file fei_Filter.cpp.
References FEI_DENSE_COL, FEI_DENSE_ROW, FEI_LOWER_SYMM_COL, FEI_LOWER_SYMM_ROW, FEI_UPPER_SYMM_COL, and FEI_UPPER_SYMM_ROW.
Referenced by FEDataFilter::generalElemInput(), LinSysCoreFilter::generalElemInput(), and test_FEI_Implementation::serialtest1().
void Filter::setLogStream | ( | std::ostream * | logstrm | ) |
Definition at line 44 of file fei_Filter.cpp.
References logInputStream_.
Referenced by FEI_Implementation::allocateInternalFEIs(), and FEI_Implementation::setDebugOutput().
FEI_OSTREAM * Filter::logStream | ( | ) |
Definition at line 50 of file fei_Filter.cpp.
References logInputStream_.
Referenced by LinSysCoreFilter::assembleReducedEqns(), FEDataFilter::debugOutput(), LinSysCoreFilter::debugOutput(), LinSysCoreFilter::exchangeRemoteBCs(), LinSysCoreFilter::exchangeRemoteEquations(), FEDataFilter::generalElemInput(), LinSysCoreFilter::generalElemInput(), LinSysCoreFilter::giveToBlkMatrix_symm_noSlaves(), LinSysCoreFilter::giveToMatrix(), LinSysCoreFilter::giveToMatrix_symm_noSlaves(), LinSysCoreFilter::loadCRMult(), FEDataFilter::loadFEDataMultCR(), FEDataFilter::loadNodeBCs(), LinSysCoreFilter::loadNodeBCs(), FEDataFilter::parameters(), LinSysCoreFilter::parameters(), LinSysCoreFilter::putBlockFieldNodeSolution(), FEDataFilter::resetInitialGuess(), LinSysCoreFilter::resetInitialGuess(), FEDataFilter::resetSystem(), LinSysCoreFilter::resetSystem(), LinSysCoreFilter::setLinSysCoreCREqns(), FEDataFilter::sumInElem(), LinSysCoreFilter::sumInElem(), FEDataFilter::sumInElemMatrix(), LinSysCoreFilter::sumInElemMatrix(), FEDataFilter::sumInElemRHS(), LinSysCoreFilter::sumInElemRHS(), FEDataFilter::unpackSolution(), and LinSysCoreFilter::unpackSolution().
|
inlineprotectedvirtual |
Reimplemented in LinSysCoreFilter, and FEDataFilter.
Definition at line 237 of file fei_Filter.hpp.
|
inlineprotected |
Definition at line 244 of file fei_Filter.hpp.
|
protected |
Definition at line 161 of file fei_Filter.cpp.
References fei::binarySearch(), CHK_ERR, FEI_COUT, FEI_ENDL, SNL_FEI_Structure::getCommunicator(), NodeDescriptor::getFieldEqnNumbers(), NodeDescriptor::getFieldIDList(), SNL_FEI_Structure::getFieldIDs(), SNL_FEI_Structure::getFieldSize(), SNL_FEI_Structure::getFirstReducedEqn(), SNL_FEI_Structure::getLastReducedEqn(), NodeDatabase::getNodeAtIndex(), SNL_FEI_Structure::getNodeDatabase(), NodeDescriptor::getNumFields(), NodeDatabase::getNumNodeDescriptors(), NodeDescriptor::getOwnerProc(), fei::GlobalMax(), fei::GlobalSum(), SNL_FEI_Structure::isSlaveEqn(), localRank_, MPI_Comm, SNL_FEI_Structure::numSlaveEquations(), problemStructure_, and SNL_FEI_Structure::translateToReducedEqn().
Referenced by LinSysCoreFilter::residualNorm().
|
protected |
Definition at line 135 of file fei_Filter.cpp.
References SNL_FEI_Structure::getNodeDatabase(), NodeDatabase::getNodeWithID(), and problemStructure_.
Referenced by FEDataFilter::initLinSysCore(), and LinSysCoreFilter::setLinSysCoreCREqns().
|
protected |
Definition at line 145 of file fei_Filter.cpp.
References fei::console_out(), FEI_ENDL, SNL_FEI_Structure::getNodeDatabase(), NodeDatabase::getNodeWithID(), and problemStructure_.
Referenced by LinSysCoreFilter::loadCRMult(), LinSysCoreFilter::loadCRPen(), and LinSysCoreFilter::setLinSysCoreCREqns().
Definition at line 276 of file fei_Filter.hpp.
|
protected |
Definition at line 260 of file fei_Filter.hpp.
Referenced by calculateResidualNorms(), findNode(), and findNodeDescriptor().
|
protected |
Definition at line 262 of file fei_Filter.hpp.
|
protected |
Definition at line 263 of file fei_Filter.hpp.
Referenced by logStream(), and setLogStream().
|
protected |
Definition at line 265 of file fei_Filter.hpp.
Referenced by parameters().
|
protected |
Definition at line 267 of file fei_Filter.hpp.
Referenced by FEDataFilter::FEDataFilter(), FEDataFilter::initialize(), LinSysCoreFilter::initialize(), LinSysCoreFilter::initLinSysCore(), and LinSysCoreFilter::LinSysCoreFilter().
|
protected |
Definition at line 268 of file fei_Filter.hpp.
Referenced by calculateResidualNorms(), FEDataFilter::FEDataFilter(), LinSysCoreFilter::getFromMatrix(), LinSysCoreFilter::getFromRHS(), FEDataFilter::getNodalFieldSolution(), FEDataFilter::getReducedSolnEntry(), FEDataFilter::initialize(), LinSysCoreFilter::initialize(), LinSysCoreFilter::initLinSysCore(), LinSysCoreFilter::LinSysCoreFilter(), LinSysCoreFilter::loadCRMult(), LinSysCoreFilter::loadCRPen(), FEDataFilter::putBlockNodeSolution(), LinSysCoreFilter::putBlockNodeSolution(), and LinSysCoreFilter::unpackRemoteContributions().