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 | Private Member Functions | Private Attributes | List of all members
BlockDescriptor Class Reference

#include <fei_BlockDescriptor.hpp>

Public Member Functions

 BlockDescriptor ()
 
virtual ~BlockDescriptor ()
 
GlobalID getGlobalBlockID ()
 
void setGlobalBlockID (GlobalID blockID)
 
int setNumNodesPerElement (int numNodes)
 
int getNumNodesPerElement () const
 
int * fieldsPerNodePtr ()
 
int allocateFieldIDsTable ()
 
int ** fieldIDsTablePtr ()
 
bool containsField (int fieldID)
 
int getNumDistinctFields ()
 
void setNumDistinctFields (int nFields)
 
int getInterleaveStrategy () const
 
void setInterleaveStrategy (int strat)
 
int getLumpingStrategy () const
 
void setLumpingStrategy (int strat)
 
int getNumElements ()
 
void setNumElements (int numElems)
 
size_t getNumElemDofFieldsPerElement ()
 
int setElemDofFieldIDs (int numFields, const int *fieldIDs)
 
std::vector< int > & getElemDofFieldIDs ()
 
void setNumElemDOFPerElement (int ndof)
 
int getNumElemDOFPerElement ()
 
std::vector< int > & elemDOFEqnNumbers ()
 
int getNumEqnsPerElement ()
 
void setNumEqnsPerElement (int numEqns)
 
int getNumBlkEqnsPerElement ()
 
void setNumBlkEqnsPerElement (int numBlkEqns)
 
int getNumActiveNodes ()
 
void setNumActiveNodes (int num)
 
int getTotalNumEqns ()
 
void setTotalNumEqns (int numEqns)
 

Private Member Functions

 BlockDescriptor (const BlockDescriptor &)
 
BlockDescriptoroperator= (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_
 

Detailed Description

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.

Constructor & Destructor Documentation

BlockDescriptor::BlockDescriptor ( )

Definition at line 15 of file fei_BlockDescriptor.cpp.

BlockDescriptor::~BlockDescriptor ( )
virtual

Definition at line 37 of file fei_BlockDescriptor.cpp.

References destroyFieldArrays(), and numElemDOFPerElement_.

BlockDescriptor::BlockDescriptor ( const BlockDescriptor )
inlineprivate

Definition at line 127 of file fei_BlockDescriptor.hpp.

Member Function Documentation

GlobalID BlockDescriptor::getGlobalBlockID ( )
inline
void BlockDescriptor::setGlobalBlockID ( GlobalID  blockID)
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().

int BlockDescriptor::getNumNodesPerElement ( ) const
inline
int * BlockDescriptor::fieldsPerNodePtr ( )
int BlockDescriptor::allocateFieldIDsTable ( )
int** BlockDescriptor::fieldIDsTablePtr ( )
inline
bool BlockDescriptor::containsField ( int  fieldID)
int BlockDescriptor::getNumDistinctFields ( )
inline

Definition at line 92 of file fei_BlockDescriptor.hpp.

References numDistinctFields_.

Referenced by FEDataFilter::generalElemInput().

void BlockDescriptor::setNumDistinctFields ( int  nFields)
inline

Definition at line 93 of file fei_BlockDescriptor.hpp.

References numDistinctFields_.

Referenced by SNL_FEI_Structure::initElemBlock().

int BlockDescriptor::getInterleaveStrategy ( ) const
inline
void BlockDescriptor::setInterleaveStrategy ( int  strat)
inline

Definition at line 96 of file fei_BlockDescriptor.hpp.

References interleaveStrategy_.

Referenced by SNL_FEI_Structure::initElemBlock().

int BlockDescriptor::getLumpingStrategy ( ) const
inline

Definition at line 98 of file fei_BlockDescriptor.hpp.

References lumpingStrategy_.

Referenced by SNL_FEI_Structure::getElemBlockInfo().

void BlockDescriptor::setLumpingStrategy ( int  strat)
inline

Definition at line 99 of file fei_BlockDescriptor.hpp.

References lumpingStrategy_.

int BlockDescriptor::getNumElements ( )
inline
void BlockDescriptor::setNumElements ( int  numElems)
inline
size_t BlockDescriptor::getNumElemDofFieldsPerElement ( )
inline

Definition at line 104 of file fei_BlockDescriptor.hpp.

References elemDofFieldIDs_.

int BlockDescriptor::setElemDofFieldIDs ( int  numFields,
const int *  fieldIDs 
)
std::vector<int>& BlockDescriptor::getElemDofFieldIDs ( )
inline

Definition at line 106 of file fei_BlockDescriptor.hpp.

References elemDofFieldIDs_.

void BlockDescriptor::setNumElemDOFPerElement ( int  ndof)
inline

Definition at line 108 of file fei_BlockDescriptor.hpp.

References numElemDOFPerElement_.

Referenced by SNL_FEI_Structure::initElemBlock().

int BlockDescriptor::getNumElemDOFPerElement ( )
inline
std::vector<int>& BlockDescriptor::elemDOFEqnNumbers ( )
inline
int BlockDescriptor::getNumEqnsPerElement ( )
inline
void BlockDescriptor::setNumEqnsPerElement ( int  numEqns)
inline

Definition at line 115 of file fei_BlockDescriptor.hpp.

References numEqnsPerElement_.

Referenced by SNL_FEI_Structure::initElemBlock().

int BlockDescriptor::getNumBlkEqnsPerElement ( )
inline

Definition at line 117 of file fei_BlockDescriptor.hpp.

References numBlkEqnsPerElement_.

Referenced by LinSysCoreFilter::generalElemInput().

void BlockDescriptor::setNumBlkEqnsPerElement ( int  numBlkEqns)
inline

Definition at line 118 of file fei_BlockDescriptor.hpp.

References numBlkEqnsPerElement_.

Referenced by SNL_FEI_Structure::initElemBlock().

int BlockDescriptor::getNumActiveNodes ( )
inline

Definition at line 120 of file fei_BlockDescriptor.hpp.

References numActiveNodes_.

Referenced by FEI_Implementation::getNumBlockActNodes().

void BlockDescriptor::setNumActiveNodes ( int  num)
inline

Definition at line 121 of file fei_BlockDescriptor.hpp.

References numActiveNodes_.

int BlockDescriptor::getTotalNumEqns ( )
inline

Definition at line 123 of file fei_BlockDescriptor.hpp.

References totalNumEqns_.

Referenced by FEI_Implementation::getNumBlockActEqns().

void BlockDescriptor::setTotalNumEqns ( int  numEqns)
inline

Definition at line 124 of file fei_BlockDescriptor.hpp.

References totalNumEqns_.

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

Definition at line 135 of file fei_BlockDescriptor.hpp.

void BlockDescriptor::destroyFieldArrays ( )
private

Member Data Documentation

GlobalID BlockDescriptor::blockID_
private

Definition at line 142 of file fei_BlockDescriptor.hpp.

Referenced by getGlobalBlockID(), and setGlobalBlockID().

int BlockDescriptor::numNodesPerElement_
private
int* BlockDescriptor::numFieldsPerNode_
private
int** BlockDescriptor::nodalFieldIDs_
private
bool BlockDescriptor::fieldIDsAllocated_
private

Definition at line 150 of file fei_BlockDescriptor.hpp.

Referenced by allocateFieldIDsTable().

int BlockDescriptor::numDistinctFields_
private

Definition at line 152 of file fei_BlockDescriptor.hpp.

Referenced by getNumDistinctFields(), and setNumDistinctFields().

std::vector<int> BlockDescriptor::elemDofFieldIDs_
private
int BlockDescriptor::interleaveStrategy_
private

Definition at line 156 of file fei_BlockDescriptor.hpp.

Referenced by getInterleaveStrategy(), and setInterleaveStrategy().

int BlockDescriptor::lumpingStrategy_
private

Definition at line 157 of file fei_BlockDescriptor.hpp.

Referenced by getLumpingStrategy(), and setLumpingStrategy().

int BlockDescriptor::numElements_
private

Definition at line 159 of file fei_BlockDescriptor.hpp.

Referenced by getNumElements(), setElemDofFieldIDs(), and setNumElements().

int BlockDescriptor::numElemDOFPerElement_
private
std::vector<int> BlockDescriptor::elemDOFEqnNumbers_
private

Definition at line 163 of file fei_BlockDescriptor.hpp.

Referenced by elemDOFEqnNumbers(), and setElemDofFieldIDs().

int BlockDescriptor::numEqnsPerElement_
private

Definition at line 166 of file fei_BlockDescriptor.hpp.

Referenced by getNumEqnsPerElement(), and setNumEqnsPerElement().

int BlockDescriptor::numBlkEqnsPerElement_
private

Definition at line 167 of file fei_BlockDescriptor.hpp.

Referenced by getNumBlkEqnsPerElement(), and setNumBlkEqnsPerElement().

int BlockDescriptor::numActiveNodes_
private

Definition at line 169 of file fei_BlockDescriptor.hpp.

Referenced by getNumActiveNodes(), and setNumActiveNodes().

int BlockDescriptor::totalNumEqns_
private

Definition at line 170 of file fei_BlockDescriptor.hpp.

Referenced by getTotalNumEqns(), and setTotalNumEqns().


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