Public Member Functions | |
| InhomogeneousNodalDOFMap (const Mesh &mesh, const Array< Map< Set< int >, CellFilter > > &funcSetToDomainMap, int setupVerb) | |
| virtual | ~InhomogeneousNodalDOFMap () |
| RCP< const MapStructure > | getDOFsForCellBatch (int cellDim, const Array< int > &cellLID, const Set< int > &requestedFuncSet, Array< Array< int > > &dofs, Array< int > &nNodes, int verb) const |
| RCP< const Set< int > > | allowedFuncsOnCellBatch (int cellDim, const Array< int > &cellLID) const |
| const Array< CellFilter > & | funcDomains () const |
| virtual void | print (std::ostream &os) const |
Protected Member Functions | |
| void | getFunctionDofs (int cellDim, const Array< int > &cellLID, const Array< int > &facetLID, const Array< int > &funcs, Array< Array< int > > &dofs) const |
| Array< int > | dofsOnCell (int cellDim, int cellLID, const Set< int > &reqFuncs) const |
| void | init () |
| void | computeOffsets (int localCount) |
| void | shareRemoteDOFs (const Array< Array< int > > &remoteNodes) |
| void | assignNode (int fLID, int funcComboIndex, int dofOffset, int nFuncs, Array< Array< int > > &remoteNodes, Array< int > &hasProcessedCell, int &nextDOF) |
Protected Attributes | |
| int | dim_ |
| RCP< BasisDOFTopologyBase > | basis_ |
| int | nTotalFuncs_ |
| Array< CellFilter > | funcDomains_ |
| Array< Array< int > > | nodeDofs_ |
| Array< Array< int > > | elemDofs_ |
| Array< int > | nodeToFuncSetIndexMap_ |
| Array< int > | elemToFuncSetIndexMap_ |
| Array< Set< int > > | elemFuncSets_ |
| Array< Set< int > > | nodalFuncSets_ |
| Array< int > | nodeToOffsetMap_ |
| Array< int > | elemToOffsetMap_ |
| Array< Array< int > > | funcIndexWithinNodeFuncSet_ |
| Array< RCP< const MapStructure > > | elemStructure_ |
| Array< RCP< const MapStructure > > | nodeStructure_ |
Definition at line 60 of file SundanceInhomogeneousNodalDOFMap.hpp.
| InhomogeneousNodalDOFMap::InhomogeneousNodalDOFMap | ( | const Mesh & | mesh, |
| const Array< Map< Set< int >, CellFilter > > & | funcSetToDomainMap, | ||
| int | setupVerb | ||
| ) |
Definition at line 58 of file SundanceInhomogeneousNodalDOFMap.cpp.
References Sundance::CellSet::begin(), Sundance::Mesh::comm(), Sundance::Map< Key, Value, Compare >::containsKey(), Sundance::CellSet::end(), Sundance::Map< Key, Value, Compare >::get(), Sundance::Mesh::getFacetLIDs(), Playa::MPIComm::getNProc(), Sundance::Set< Key, Compare >::merge(), Sundance::Mesh::numCells(), Sundance::Mesh::numFacets(), Sundance::Map< Key, Value, Compare >::put(), Sundance::Set< Key, Compare >::size(), SUNDANCE_MSG1, SUNDANCE_MSG2, and SUNDANCE_MSG4.
| virtual Sundance::InhomogeneousNodalDOFMap::~InhomogeneousNodalDOFMap | ( | ) | [inline, virtual] |
Definition at line 69 of file SundanceInhomogeneousNodalDOFMap.hpp.
| RCP< const Set< int > > InhomogeneousNodalDOFMap::allowedFuncsOnCellBatch | ( | int | cellDim, |
| const Array< int > & | cellLID | ||
| ) | const [virtual] |
Implements Sundance::DOFMapBase.
Definition at line 421 of file SundanceInhomogeneousNodalDOFMap.cpp.
References dim_, elemFuncSets_, elemToFuncSetIndexMap_, Sundance::Mesh::getFacetLIDs(), Sundance::Set< Key, Compare >::intersection(), Sundance::DOFMapBase::mesh(), nodalFuncSets_, and nodeToFuncSetIndexMap_.
Referenced by print().
| void InhomogeneousNodalDOFMap::assignNode | ( | int | fLID, |
| int | funcComboIndex, | ||
| int | dofOffset, | ||
| int | nFuncs, | ||
| Array< Array< int > > & | remoteNodes, | ||
| Array< int > & | hasProcessedCell, | ||
| int & | nextDOF | ||
| ) | [protected] |
Definition at line 370 of file SundanceInhomogeneousNodalDOFMap.cpp.
References Sundance::DOFMapBase::isRemote(), Sundance::Mesh::mapLIDToGID(), Sundance::DOFMapBase::mesh(), and nodeDofs_.
| void InhomogeneousNodalDOFMap::computeOffsets | ( | int | localCount | ) | [protected] |
Definition at line 400 of file SundanceInhomogeneousNodalDOFMap.cpp.
References Sundance::DOFMapBase::comm(), Sundance::DOFMapBase::mesh(), Sundance::DOFMapBase::setLowestLocalDOF(), Sundance::DOFMapBase::setNumLocalDOFs(), and Sundance::DOFMapBase::setTotalNumDOFs().
| Array<int> Sundance::InhomogeneousNodalDOFMap::dofsOnCell | ( | int | cellDim, |
| int | cellLID, | ||
| const Set< int > & | reqFuncs | ||
| ) | const [protected] |
| const Array<CellFilter>& Sundance::InhomogeneousNodalDOFMap::funcDomains | ( | ) | const [inline, virtual] |
Implements Sundance::DOFMapBase.
Definition at line 95 of file SundanceInhomogeneousNodalDOFMap.hpp.
References funcDomains_.
| RCP< const MapStructure > InhomogeneousNodalDOFMap::getDOFsForCellBatch | ( | int | cellDim, |
| const Array< int > & | cellLID, | ||
| const Set< int > & | requestedFuncSet, | ||
| Array< Array< int > > & | dofs, | ||
| Array< int > & | nNodes, | ||
| int | verb | ||
| ) | const [virtual] |
Implements Sundance::DOFMapBase.
Definition at line 461 of file SundanceInhomogeneousNodalDOFMap.cpp.
References basis_, Sundance::DOFMapBase::batchedDofLookupTimer(), dim_, Sundance::Set< Key, Compare >::elements(), elemFuncSets_, elemStructure_, elemToFuncSetIndexMap_, Sundance::Mesh::getFacetLIDs(), getFunctionDofs(), Sundance::DOFMapBase::isHomogeneous(), Sundance::DOFMapBase::mesh(), nodalFuncSets_, nodeStructure_, nodeToFuncSetIndexMap_, nTotalFuncs_, Sundance::Mesh::numFacets(), Playa::Out::os(), Sundance::Set< Key, Compare >::setDifference(), and SUNDANCE_MSG2.
| void InhomogeneousNodalDOFMap::getFunctionDofs | ( | int | cellDim, |
| const Array< int > & | cellLID, | ||
| const Array< int > & | facetLID, | ||
| const Array< int > & | funcs, | ||
| Array< Array< int > > & | dofs | ||
| ) | const [protected] |
Definition at line 314 of file SundanceInhomogeneousNodalDOFMap.cpp.
References funcIndexWithinNodeFuncSet_, Sundance::DOFMapBase::mesh(), nodeDofs_, nodeToFuncSetIndexMap_, nodeToOffsetMap_, and Sundance::Mesh::numFacets().
Referenced by getDOFsForCellBatch().
| void Sundance::InhomogeneousNodalDOFMap::init | ( | ) | [protected] |
| void InhomogeneousNodalDOFMap::print | ( | std::ostream & | os | ) | const [virtual] |
Implements Sundance::DOFMapBase.
Definition at line 582 of file SundanceInhomogeneousNodalDOFMap.cpp.
References allowedFuncsOnCellBatch(), Sundance::Set< Key, Compare >::begin(), dim_, Sundance::DOFMapBase::getDOFsForCell(), Sundance::DOFMapBase::mesh(), and Sundance::Mesh::numCells().
| void InhomogeneousNodalDOFMap::shareRemoteDOFs | ( | const Array< Array< int > > & | remoteNodes | ) | [protected] |
Definition at line 413 of file SundanceInhomogeneousNodalDOFMap.cpp.
References Sundance::DOFMapBase::comm(), and Sundance::DOFMapBase::mesh().
RCP<BasisDOFTopologyBase> Sundance::InhomogeneousNodalDOFMap::basis_ [protected] |
Definition at line 122 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by getDOFsForCellBatch().
int Sundance::InhomogeneousNodalDOFMap::dim_ [protected] |
Definition at line 121 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by allowedFuncsOnCellBatch(), getDOFsForCellBatch(), and print().
Array<Array<int> > Sundance::InhomogeneousNodalDOFMap::elemDofs_ [protected] |
Definition at line 127 of file SundanceInhomogeneousNodalDOFMap.hpp.
Array<Set<int> > Sundance::InhomogeneousNodalDOFMap::elemFuncSets_ [protected] |
Definition at line 130 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by allowedFuncsOnCellBatch(), and getDOFsForCellBatch().
Array<RCP<const MapStructure> > Sundance::InhomogeneousNodalDOFMap::elemStructure_ [protected] |
Definition at line 137 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by getDOFsForCellBatch().
Array<int> Sundance::InhomogeneousNodalDOFMap::elemToFuncSetIndexMap_ [protected] |
Definition at line 129 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by allowedFuncsOnCellBatch(), and getDOFsForCellBatch().
Array<int> Sundance::InhomogeneousNodalDOFMap::elemToOffsetMap_ [protected] |
Definition at line 133 of file SundanceInhomogeneousNodalDOFMap.hpp.
Array<CellFilter> Sundance::InhomogeneousNodalDOFMap::funcDomains_ [protected] |
Definition at line 124 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by funcDomains().
Array<Array<int> > Sundance::InhomogeneousNodalDOFMap::funcIndexWithinNodeFuncSet_ [protected] |
Definition at line 135 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by getFunctionDofs().
Array<Set<int> > Sundance::InhomogeneousNodalDOFMap::nodalFuncSets_ [protected] |
Definition at line 131 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by allowedFuncsOnCellBatch(), and getDOFsForCellBatch().
Array<Array<int> > Sundance::InhomogeneousNodalDOFMap::nodeDofs_ [protected] |
Definition at line 126 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by assignNode(), and getFunctionDofs().
Array<RCP<const MapStructure> > Sundance::InhomogeneousNodalDOFMap::nodeStructure_ [protected] |
Definition at line 138 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by getDOFsForCellBatch().
Array<int> Sundance::InhomogeneousNodalDOFMap::nodeToFuncSetIndexMap_ [protected] |
Definition at line 128 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by allowedFuncsOnCellBatch(), getDOFsForCellBatch(), and getFunctionDofs().
Array<int> Sundance::InhomogeneousNodalDOFMap::nodeToOffsetMap_ [protected] |
Definition at line 132 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by getFunctionDofs().
int Sundance::InhomogeneousNodalDOFMap::nTotalFuncs_ [protected] |
Definition at line 123 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by getDOFsForCellBatch().