Public Member Functions | |
| HomogeneousDOFMap (const Mesh &mesh, const BasisFamily &basis, int numFuncs) | |
| HomogeneousDOFMap (const Mesh &mesh, const BasisFamily &basis, const Array< CellFilter > &subregions, int numFuncs) | |
| virtual | ~HomogeneousDOFMap () |
| virtual void | getDOFsForCellBatch (int cellDim, const Array< int > &cellLID, Array< int > &dofs, Array< Array< int > > &funcIDs, Array< int > &nNodes) const |
| virtual void | print (std::ostream &os) const |
Private Member Functions | |
| void | allocate (const Mesh &mesh, const BasisFamily &basis, int numFuncs) |
| void | buildMaximalDofTable () const |
| bool | hasBeenAssigned (int cellDim, int cellLID) const |
| void | initMap () |
| void | setDOFs (int cellDim, int cellLID, int &nextDOF, bool isRemote=false) |
| void | shareDOFs (int cellDim, const Array< Array< int > > &outgoingCellRequests) |
| void | computeOffsets (int dim, int localCount) |
| const Array< int > & | funcIDList () const |
Static Private Member Functions | |
| static int | uninitializedVal () |
Private Attributes | |
| int | dim_ |
| Array< Array< Array< int > > > | dofs_ |
| Array< int > | maximalDofs_ |
| bool | haveMaximalDofs_ |
| Array< Array< Array< Array < int > > > > | localNodePtrs_ |
| Array< int > | nNodesPerCell_ |
| Array< int > | totalNNodesPerCell_ |
| Array< Array< int > > | numFacets_ |
| Array< Array< int > > | originalFacetOrientation_ |
| bool | basisIsContinuous_ |
A HomogeneousDOFMap is a DOF map for the special (and common) case in which every function has the same basis and is defined on every cell in the mesh.
Definition at line 63 of file SundanceHomogeneousDOFMap.hpp.
| Sundance::HomogeneousDOFMap::HomogeneousDOFMap | ( | const Mesh & | mesh, |
| const BasisFamily & | basis, | ||
| int | numFuncs | ||
| ) |
| HomogeneousDOFMap::HomogeneousDOFMap | ( | const Mesh & | mesh, |
| const BasisFamily & | basis, | ||
| const Array< CellFilter > & | subregions, | ||
| int | numFuncs | ||
| ) |
Definition at line 98 of file SundanceHomogeneousDOFMap.cpp.
References allocate(), Sundance::dimension(), and initMap().
| virtual Sundance::HomogeneousDOFMap::~HomogeneousDOFMap | ( | ) | [inline, virtual] |
Definition at line 78 of file SundanceHomogeneousDOFMap.hpp.
| void HomogeneousDOFMap::allocate | ( | const Mesh & | mesh, |
| const BasisFamily & | basis, | ||
| int | numFuncs | ||
| ) | [private] |
Definition at line 127 of file SundanceHomogeneousDOFMap.cpp.
References basisIsContinuous_, Sundance::Mesh::cellType(), dim_, dofs_, funcIDList(), localNodePtrs_, nNodesPerCell_, Sundance::Mesh::numCells(), Sundance::Mesh::numFacets(), numFacets_, originalFacetOrientation_, Playa::Handle< PointerType >::ptr(), Sundance::DOFMapBase::setupVerb(), SUNDANCE_MSG1, SUNDANCE_MSG2, SUNDANCE_MSG3, totalNNodesPerCell_, and uninitializedVal().
Referenced by HomogeneousDOFMap().
| void HomogeneousDOFMap::buildMaximalDofTable | ( | ) | const [private] |
Definition at line 662 of file SundanceHomogeneousDOFMap.cpp.
References Sundance::DOFMapBase::cellDim(), dim_, dofs_, funcIDList(), Sundance::Mesh::getFacetLIDs(), haveMaximalDofs_, localNodePtrs_, maximalDofs_, Sundance::DOFMapBase::mesh(), Sundance::Mesh::numCells(), Sundance::numFacets(), Sundance::Mesh::numFacets(), originalFacetOrientation_, Sundance::DOFMapBase::setupVerb(), SUNDANCE_MSG2, SUNDANCE_MSG3, SUNDANCE_MSG4, and totalNNodesPerCell_.
Referenced by getDOFsForCellBatch().
| void HomogeneousDOFMap::computeOffsets | ( | int | dim, |
| int | localCount | ||
| ) | [private] |
Definition at line 776 of file SundanceHomogeneousDOFMap.cpp.
References Sundance::Mesh::comm(), Sundance::DOFMapBase::comm(), dofs_, Playa::MPIComm::getRank(), hasBeenAssigned(), Sundance::DOFMapBase::mesh(), Sundance::DOFMapBase::setLowestLocalDOF(), Sundance::DOFMapBase::setNumLocalDOFs(), Sundance::DOFMapBase::setTotalNumDOFs(), Sundance::DOFMapBase::setupVerb(), SUNDANCE_MSG2, and Playa::MPIComm::synchronize().
Referenced by initMap().
| const Array<int>& Sundance::HomogeneousDOFMap::funcIDList | ( | ) | const [inline, private] |
Definition at line 124 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), buildMaximalDofTable(), getDOFsForCellBatch(), print(), and setDOFs().
| void HomogeneousDOFMap::getDOFsForCellBatch | ( | int | cellDim, |
| const Array< int > & | cellLID, | ||
| Array< int > & | dofs, | ||
| Array< Array< int > > & | funcIDs, | ||
| Array< int > & | nNodes | ||
| ) | const [virtual] |
Definition at line 480 of file SundanceHomogeneousDOFMap.cpp.
References buildMaximalDofTable(), Sundance::DOFMapBase::cellDim(), dim_, dofBatchLookupTimer(), dofs_, funcIDList(), Sundance::Mesh::getFacetLIDs(), haveMaximalDofs_, localNodePtrs_, maximalDofs_, Sundance::DOFMapBase::mesh(), Sundance::Mesh::numCells(), Sundance::numFacets(), Sundance::Mesh::numFacets(), originalFacetOrientation_, Sundance::DOFMapBase::setupVerb(), SUNDANCE_MSG3, SUNDANCE_MSG4, and totalNNodesPerCell_.
| bool Sundance::HomogeneousDOFMap::hasBeenAssigned | ( | int | cellDim, |
| int | cellLID | ||
| ) | const [inline, private] |
Definition at line 106 of file SundanceHomogeneousDOFMap.hpp.
References Sundance::DOFMapBase::cellDim(), dofs_, and uninitializedVal().
Referenced by computeOffsets(), and initMap().
| void HomogeneousDOFMap::initMap | ( | ) | [private] |
Definition at line 211 of file SundanceHomogeneousDOFMap.cpp.
References basisIsContinuous_, Sundance::CellSet::begin(), Sundance::DOFMapBase::comm(), computeOffsets(), dim_, Sundance::CellSet::end(), Sundance::Mesh::getFacetArray(), hasBeenAssigned(), Sundance::DOFMapBase::isRemote(), Sundance::Mesh::mapLIDToGID(), Sundance::DOFMapBase::mesh(), nNodesPerCell_, numFacets_, originalFacetOrientation_, setDOFs(), Sundance::DOFMapBase::setLowestLocalDOF(), Sundance::DOFMapBase::setNumLocalDOFs(), Sundance::DOFMapBase::setTotalNumDOFs(), Sundance::DOFMapBase::setupVerb(), shareDOFs(), and SUNDANCE_MSG1.
Referenced by HomogeneousDOFMap().
| void HomogeneousDOFMap::print | ( | std::ostream & | os | ) | const [virtual] |
Implements Sundance::DOFMapBase.
Definition at line 841 of file SundanceHomogeneousDOFMap.cpp.
References Sundance::Mesh::comm(), dim_, dofs_, funcIDList(), Sundance::DOFMapBase::getDOFsForCell(), Playa::MPIComm::getNProc(), Playa::MPIComm::getRank(), Sundance::DOFMapBase::isLocalDOF(), Sundance::Mesh::mapLIDToGID(), Sundance::DOFMapBase::mesh(), Sundance::Mesh::numCells(), and Playa::MPIComm::synchronize().
| void HomogeneousDOFMap::setDOFs | ( | int | cellDim, |
| int | cellLID, | ||
| int & | nextDOF, | ||
| bool | isRemote = false |
||
| ) | [private] |
Definition at line 456 of file SundanceHomogeneousDOFMap.cpp.
References Sundance::DOFMapBase::addGhostIndex(), Sundance::DOFMapBase::cellDim(), dofs_, funcIDList(), nNodesPerCell_, Sundance::DOFMapBase::setupVerb(), and SUNDANCE_MSG3.
Referenced by initMap(), and shareDOFs().
| void HomogeneousDOFMap::shareDOFs | ( | int | cellDim, |
| const Array< Array< int > > & | outgoingCellRequests | ||
| ) | [private] |
Definition at line 333 of file SundanceHomogeneousDOFMap.cpp.
References Sundance::DOFMapBase::cellDim(), Sundance::Mesh::comm(), Sundance::DOFMapBase::comm(), dim_, dofs_, Playa::MPIComm::getNProc(), Playa::MPIComm::getRank(), Sundance::Mesh::mapGIDToLID(), Sundance::DOFMapBase::mesh(), originalFacetOrientation_, setDOFs(), Sundance::DOFMapBase::setupVerb(), SUNDANCE_MSG2, and SUNDANCE_MSG3.
Referenced by initMap().
| static int Sundance::HomogeneousDOFMap::uninitializedVal | ( | ) | [inline, static, private] |
Definition at line 126 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), and hasBeenAssigned().
bool Sundance::HomogeneousDOFMap::basisIsContinuous_ [private] |
Definition at line 146 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), and initMap().
int Sundance::HomogeneousDOFMap::dim_ [private] |
Definition at line 128 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), buildMaximalDofTable(), getDOFsForCellBatch(), initMap(), print(), and shareDOFs().
Array<Array<Array<int> > > Sundance::HomogeneousDOFMap::dofs_ [private] |
Definition at line 130 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), buildMaximalDofTable(), computeOffsets(), getDOFsForCellBatch(), hasBeenAssigned(), print(), setDOFs(), and shareDOFs().
bool Sundance::HomogeneousDOFMap::haveMaximalDofs_ [mutable, private] |
Definition at line 134 of file SundanceHomogeneousDOFMap.hpp.
Referenced by buildMaximalDofTable(), and getDOFsForCellBatch().
Array<Array<Array<Array<int> > > > Sundance::HomogeneousDOFMap::localNodePtrs_ [private] |
Definition at line 136 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), buildMaximalDofTable(), and getDOFsForCellBatch().
Array<int> Sundance::HomogeneousDOFMap::maximalDofs_ [mutable, private] |
Definition at line 132 of file SundanceHomogeneousDOFMap.hpp.
Referenced by buildMaximalDofTable(), and getDOFsForCellBatch().
Array<int> Sundance::HomogeneousDOFMap::nNodesPerCell_ [private] |
Definition at line 138 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), initMap(), and setDOFs().
Array<Array<int> > Sundance::HomogeneousDOFMap::numFacets_ [private] |
Definition at line 142 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), and initMap().
Array<Array<int> > Sundance::HomogeneousDOFMap::originalFacetOrientation_ [private] |
Definition at line 144 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), buildMaximalDofTable(), getDOFsForCellBatch(), initMap(), and shareDOFs().
Array<int> Sundance::HomogeneousDOFMap::totalNNodesPerCell_ [private] |
Definition at line 140 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), buildMaximalDofTable(), and getDOFsForCellBatch().