FEI Package Browser (Single Doxygen Collection)
Version of the Day
|
#include <fei_BlockDescriptor.hpp>
Private Member Functions | |
BlockDescriptor (const BlockDescriptor &) | |
BlockDescriptor & | operator= (const BlockDescriptor &) |
void | destroyFieldArrays () |
Private Attributes | |
GlobalID | blockID_ |
int | numNodesPerElement_ |
int * | numFieldsPerNode_ |
int ** | nodalFieldIDs_ |
bool | fieldIDsAllocated_ |
int | numDistinctFields_ |
std::vector< int > | elemDofFieldIDs_ |
int | interleaveStrategy_ |
int | lumpingStrategy_ |
int | numElements_ |
int | numElemDOFPerElement_ |
std::vector< int > | elemDOFEqnNumbers_ |
int | numEqnsPerElement_ |
int | numBlkEqnsPerElement_ |
int | numActiveNodes_ |
int | totalNumEqns_ |
The BlockDescriptor class holds the information that the FEI implementation needs to know about an element-block in the finite element problem:
Global block identifier number of nodes per element in this block list containing the number-of-fields-per-node table containing the field identifiers for those nodal fields interleaveStrategy lumpingStrategy number of elements in this block number of element-DOF per element in this block the first element-DOF equation number for each block total number of equations associated with each element
A block is a collection of homogeneous elements – which means that all elements in a block have the same topology: number of nodes, same solution fields at those nodes, etc.
Usage notes:
There is only one way to set each length/size parameter in this class, and only one way to retrieve each length/size parameter. e.g., you can't set the number of nodes to be one thing, then pass a different value to a function that allocates the fieldsPerNode list. When you set the number of nodes, the fieldsPerNode list is allocated right then. When you retrieve the fieldsPerNode list, you must obtain its length by separately calling the getNumNodesPerElement() function. Similar schemes are in place for the fieldIDsTable, etc.
There are some order-dependencies for these member functions.
In general, out-of-order function calls will be flagged with a message to stderr.
Definition at line 67 of file fei_BlockDescriptor.hpp.
BlockDescriptor::BlockDescriptor | ( | ) |
Definition at line 15 of file fei_BlockDescriptor.cpp.
|
virtual |
Definition at line 37 of file fei_BlockDescriptor.cpp.
References destroyFieldArrays(), and numElemDOFPerElement_.
|
inlineprivate |
Definition at line 127 of file fei_BlockDescriptor.hpp.
|
inline |
Definition at line 72 of file fei_BlockDescriptor.hpp.
References blockID_.
Referenced by SNL_FEI_Structure::initElemBlockStructure(), FEDataFilter::initLinSysCore(), and LinSysCoreFilter::initLinSysCore().
|
inline |
Definition at line 73 of file fei_BlockDescriptor.hpp.
References blockID_.
Referenced by SNL_FEI_Structure::addBlock().
int BlockDescriptor::setNumNodesPerElement | ( | int | numNodes | ) |
Number of nodes per element, in this element-block.
Definition at line 60 of file fei_BlockDescriptor.cpp.
References destroyFieldArrays(), numFieldsPerNode_, and numNodesPerElement_.
Referenced by SNL_FEI_Structure::initElemBlock().
|
inline |
Definition at line 78 of file fei_BlockDescriptor.hpp.
References numNodesPerElement_.
Referenced by FEDataFilter::generalElemInput(), SNL_FEI_Structure::getBlkScatterIndices_index(), SNL_FEI_Structure::getElemBlockInfo(), FEI_Implementation::getNumNodesPerElement(), SNL_FEI_Structure::getScatterIndices_index(), SNL_FEI_Structure::initElem(), FEDataFilter::initLinSysCore(), and LinSysCoreFilter::initLinSysCore().
int * BlockDescriptor::fieldsPerNodePtr | ( | ) |
Definition at line 79 of file fei_BlockDescriptor.cpp.
References numFieldsPerNode_.
Referenced by FEDataFilter::generalElemInput(), SNL_FEI_Structure::getNumFieldsPerNode(), SNL_FEI_Structure::getScatterIndices_index(), SNL_FEI_Structure::initElemBlock(), FEDataFilter::initLinSysCore(), and LinSysCoreFilter::initLinSysCore().
int BlockDescriptor::allocateFieldIDsTable | ( | ) |
Definition at line 85 of file fei_BlockDescriptor.cpp.
References fei::console_out(), FEI_ENDL, fieldIDsAllocated_, nodalFieldIDs_, numFieldsPerNode_, and numNodesPerElement_.
Referenced by SNL_FEI_Structure::initElemBlock().
|
inline |
Table of field-IDs. number-of-rows is getNumNodesPerElement() The row-lengths are given by the fieldsPerNodePtr() list.
Definition at line 88 of file fei_BlockDescriptor.hpp.
References nodalFieldIDs_.
Referenced by FEDataFilter::generalElemInput(), SNL_FEI_Structure::getFieldIDsTable(), SNL_FEI_Structure::getScatterIndices_index(), SNL_FEI_Structure::initElemBlock(), FEDataFilter::initLinSysCore(), and LinSysCoreFilter::initLinSysCore().
bool BlockDescriptor::containsField | ( | int | fieldID | ) |
Definition at line 110 of file fei_BlockDescriptor.cpp.
References nodalFieldIDs_, numFieldsPerNode_, and numNodesPerElement_.
Referenced by FEDataFilter::getBlockFieldNodeSolution(), LinSysCoreFilter::getBlockFieldNodeSolution(), FEDataFilter::getBlockNodeSolution(), LinSysCoreFilter::getBlockNodeSolution(), FEDataFilter::putBlockFieldNodeSolution(), LinSysCoreFilter::putBlockFieldNodeSolution(), FEDataFilter::putBlockNodeSolution(), and LinSysCoreFilter::putBlockNodeSolution().
|
inline |
Definition at line 92 of file fei_BlockDescriptor.hpp.
References numDistinctFields_.
Referenced by FEDataFilter::generalElemInput().
|
inline |
Definition at line 93 of file fei_BlockDescriptor.hpp.
References numDistinctFields_.
Referenced by SNL_FEI_Structure::initElemBlock().
|
inline |
Definition at line 95 of file fei_BlockDescriptor.hpp.
References interleaveStrategy_.
Referenced by LinSysCoreFilter::generalElemInput(), SNL_FEI_Structure::getElemBlockInfo(), and SNL_FEI_Structure::initElemBlockStructure().
|
inline |
Definition at line 96 of file fei_BlockDescriptor.hpp.
References interleaveStrategy_.
Referenced by SNL_FEI_Structure::initElemBlock().
|
inline |
Definition at line 98 of file fei_BlockDescriptor.hpp.
References lumpingStrategy_.
Referenced by SNL_FEI_Structure::getElemBlockInfo().
|
inline |
Definition at line 99 of file fei_BlockDescriptor.hpp.
References lumpingStrategy_.
|
inline |
Definition at line 101 of file fei_BlockDescriptor.hpp.
References numElements_.
Referenced by SNL_FEI_Structure::calcTotalNumElemDOF(), FEDataFilter::getBlockElemSolution(), SNL_FEI_Structure::getElemBlockInfo(), FEI_Implementation::getNumBlockElements(), SNL_FEI_Structure::initElemBlockStructure(), SNL_FEI_Structure::initializeBlkEqnMapper(), FEDataFilter::initLinSysCore(), LinSysCoreFilter::initLinSysCore(), and FEDataFilter::putBlockElemSolution().
|
inline |
Definition at line 102 of file fei_BlockDescriptor.hpp.
References numElements_.
Referenced by SNL_FEI_Structure::initElemBlock(), and SNL_FEI_Structure::initElemBlockStructure().
|
inline |
Definition at line 104 of file fei_BlockDescriptor.hpp.
References elemDofFieldIDs_.
int BlockDescriptor::setElemDofFieldIDs | ( | int | numFields, |
const int * | fieldIDs | ||
) |
Definition at line 140 of file fei_BlockDescriptor.cpp.
References elemDOFEqnNumbers_, elemDofFieldIDs_, and numElements_.
Referenced by SNL_FEI_Structure::initElemBlock().
|
inline |
Definition at line 106 of file fei_BlockDescriptor.hpp.
References elemDofFieldIDs_.
|
inline |
Definition at line 108 of file fei_BlockDescriptor.hpp.
References numElemDOFPerElement_.
Referenced by SNL_FEI_Structure::initElemBlock().
|
inline |
Definition at line 109 of file fei_BlockDescriptor.hpp.
References numElemDOFPerElement_.
Referenced by SNL_FEI_Structure::calcTotalNumElemDOF(), FEDataFilter::getBlockElemSolution(), LinSysCoreFilter::getBlockElemSolution(), SNL_FEI_Structure::getElemBlockInfo(), FEI_Implementation::getNumBlockElemDOF(), SNL_FEI_Structure::initializeBlkEqnMapper(), FEDataFilter::putBlockElemSolution(), LinSysCoreFilter::putBlockElemSolution(), and SNL_FEI_Structure::setElemDOFEqnInfo().
|
inline |
Definition at line 112 of file fei_BlockDescriptor.hpp.
References elemDOFEqnNumbers_.
Referenced by FEDataFilter::getBlockElemSolution(), LinSysCoreFilter::getBlockElemSolution(), FEDataFilter::putBlockElemSolution(), LinSysCoreFilter::putBlockElemSolution(), and SNL_FEI_Structure::setElemDOFEqnInfo().
|
inline |
Definition at line 114 of file fei_BlockDescriptor.hpp.
References numEqnsPerElement_.
Referenced by FEDataFilter::allocElemStuff(), LinSysCoreFilter::allocElemStuff(), FEDataFilter::generalElemInput(), LinSysCoreFilter::generalElemInput(), SNL_FEI_Structure::getElemBlockInfo(), FEI_Implementation::getNumEqnsPerElement(), and SNL_FEI_Structure::initElemBlockStructure().
|
inline |
Definition at line 115 of file fei_BlockDescriptor.hpp.
References numEqnsPerElement_.
Referenced by SNL_FEI_Structure::initElemBlock().
|
inline |
Definition at line 117 of file fei_BlockDescriptor.hpp.
References numBlkEqnsPerElement_.
Referenced by LinSysCoreFilter::generalElemInput().
|
inline |
Definition at line 118 of file fei_BlockDescriptor.hpp.
References numBlkEqnsPerElement_.
Referenced by SNL_FEI_Structure::initElemBlock().
|
inline |
Definition at line 120 of file fei_BlockDescriptor.hpp.
References numActiveNodes_.
Referenced by FEI_Implementation::getNumBlockActNodes().
|
inline |
Definition at line 121 of file fei_BlockDescriptor.hpp.
References numActiveNodes_.
|
inline |
Definition at line 123 of file fei_BlockDescriptor.hpp.
References totalNumEqns_.
Referenced by FEI_Implementation::getNumBlockActEqns().
|
inline |
Definition at line 124 of file fei_BlockDescriptor.hpp.
References totalNumEqns_.
|
inlineprivate |
Definition at line 135 of file fei_BlockDescriptor.hpp.
|
private |
Definition at line 45 of file fei_BlockDescriptor.cpp.
References nodalFieldIDs_, numFieldsPerNode_, and numNodesPerElement_.
Referenced by setNumNodesPerElement(), and ~BlockDescriptor().
|
private |
Definition at line 142 of file fei_BlockDescriptor.hpp.
Referenced by getGlobalBlockID(), and setGlobalBlockID().
|
private |
Definition at line 144 of file fei_BlockDescriptor.hpp.
Referenced by allocateFieldIDsTable(), containsField(), destroyFieldArrays(), getNumNodesPerElement(), and setNumNodesPerElement().
|
private |
Definition at line 146 of file fei_BlockDescriptor.hpp.
Referenced by allocateFieldIDsTable(), containsField(), destroyFieldArrays(), fieldsPerNodePtr(), and setNumNodesPerElement().
|
private |
Definition at line 148 of file fei_BlockDescriptor.hpp.
Referenced by allocateFieldIDsTable(), containsField(), destroyFieldArrays(), and fieldIDsTablePtr().
|
private |
Definition at line 150 of file fei_BlockDescriptor.hpp.
Referenced by allocateFieldIDsTable().
|
private |
Definition at line 152 of file fei_BlockDescriptor.hpp.
Referenced by getNumDistinctFields(), and setNumDistinctFields().
|
private |
Definition at line 154 of file fei_BlockDescriptor.hpp.
Referenced by getElemDofFieldIDs(), getNumElemDofFieldsPerElement(), and setElemDofFieldIDs().
|
private |
Definition at line 156 of file fei_BlockDescriptor.hpp.
Referenced by getInterleaveStrategy(), and setInterleaveStrategy().
|
private |
Definition at line 157 of file fei_BlockDescriptor.hpp.
Referenced by getLumpingStrategy(), and setLumpingStrategy().
|
private |
Definition at line 159 of file fei_BlockDescriptor.hpp.
Referenced by getNumElements(), setElemDofFieldIDs(), and setNumElements().
|
private |
Definition at line 160 of file fei_BlockDescriptor.hpp.
Referenced by getNumElemDOFPerElement(), setNumElemDOFPerElement(), and ~BlockDescriptor().
|
private |
Definition at line 163 of file fei_BlockDescriptor.hpp.
Referenced by elemDOFEqnNumbers(), and setElemDofFieldIDs().
|
private |
Definition at line 166 of file fei_BlockDescriptor.hpp.
Referenced by getNumEqnsPerElement(), and setNumEqnsPerElement().
|
private |
Definition at line 167 of file fei_BlockDescriptor.hpp.
Referenced by getNumBlkEqnsPerElement(), and setNumBlkEqnsPerElement().
|
private |
Definition at line 169 of file fei_BlockDescriptor.hpp.
Referenced by getNumActiveNodes(), and setNumActiveNodes().
|
private |
Definition at line 170 of file fei_BlockDescriptor.hpp.
Referenced by getTotalNumEqns(), and setTotalNumEqns().