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 49 of file SundanceInhomogeneousNodalDOFMap.hpp.
InhomogeneousNodalDOFMap::InhomogeneousNodalDOFMap | ( | const Mesh & | mesh, | |
const Array< Map< Set< int >, CellFilter > > & | funcSetToDomainMap, | |||
int | setupVerb | |||
) |
Definition at line 47 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 58 of file SundanceInhomogeneousNodalDOFMap.hpp.
RCP< const Set< int > > InhomogeneousNodalDOFMap::allowedFuncsOnCellBatch | ( | int | cellDim, | |
const Array< int > & | cellLID | |||
) | const [virtual] |
Implements Sundance::DOFMapBase.
Definition at line 410 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 359 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 389 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 84 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 450 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 303 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 571 of file SundanceInhomogeneousNodalDOFMap.cpp.
References allowedFuncsOnCellBatch(), dim_, Sundance::DOFMapBase::getDOFsForCell(), Sundance::DOFMapBase::mesh(), and Sundance::Mesh::numCells().
void InhomogeneousNodalDOFMap::shareRemoteDOFs | ( | const Array< Array< int > > & | remoteNodes | ) | [protected] |
Definition at line 402 of file SundanceInhomogeneousNodalDOFMap.cpp.
References Sundance::DOFMapBase::comm(), and Sundance::DOFMapBase::mesh().
RCP<BasisDOFTopologyBase> Sundance::InhomogeneousNodalDOFMap::basis_ [protected] |
Definition at line 111 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by getDOFsForCellBatch().
int Sundance::InhomogeneousNodalDOFMap::dim_ [protected] |
Definition at line 110 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by allowedFuncsOnCellBatch(), getDOFsForCellBatch(), and print().
Array<Array<int> > Sundance::InhomogeneousNodalDOFMap::elemDofs_ [protected] |
Definition at line 116 of file SundanceInhomogeneousNodalDOFMap.hpp.
Array<Set<int> > Sundance::InhomogeneousNodalDOFMap::elemFuncSets_ [protected] |
Definition at line 119 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by allowedFuncsOnCellBatch(), and getDOFsForCellBatch().
Array<RCP<const MapStructure> > Sundance::InhomogeneousNodalDOFMap::elemStructure_ [protected] |
Definition at line 126 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by getDOFsForCellBatch().
Array<int> Sundance::InhomogeneousNodalDOFMap::elemToFuncSetIndexMap_ [protected] |
Definition at line 118 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by allowedFuncsOnCellBatch(), and getDOFsForCellBatch().
Array<int> Sundance::InhomogeneousNodalDOFMap::elemToOffsetMap_ [protected] |
Definition at line 122 of file SundanceInhomogeneousNodalDOFMap.hpp.
Array<CellFilter> Sundance::InhomogeneousNodalDOFMap::funcDomains_ [protected] |
Array<Array<int> > Sundance::InhomogeneousNodalDOFMap::funcIndexWithinNodeFuncSet_ [protected] |
Definition at line 124 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by getFunctionDofs().
Array<Set<int> > Sundance::InhomogeneousNodalDOFMap::nodalFuncSets_ [protected] |
Definition at line 120 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by allowedFuncsOnCellBatch(), and getDOFsForCellBatch().
Array<Array<int> > Sundance::InhomogeneousNodalDOFMap::nodeDofs_ [protected] |
Definition at line 115 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by assignNode(), and getFunctionDofs().
Array<RCP<const MapStructure> > Sundance::InhomogeneousNodalDOFMap::nodeStructure_ [protected] |
Definition at line 127 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by getDOFsForCellBatch().
Array<int> Sundance::InhomogeneousNodalDOFMap::nodeToFuncSetIndexMap_ [protected] |
Definition at line 117 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by allowedFuncsOnCellBatch(), getDOFsForCellBatch(), and getFunctionDofs().
Array<int> Sundance::InhomogeneousNodalDOFMap::nodeToOffsetMap_ [protected] |
Definition at line 121 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by getFunctionDofs().
int Sundance::InhomogeneousNodalDOFMap::nTotalFuncs_ [protected] |
Definition at line 112 of file SundanceInhomogeneousNodalDOFMap.hpp.
Referenced by getDOFsForCellBatch().