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 52 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 87 of file SundanceHomogeneousDOFMap.cpp.
References allocate(), Sundance::dimension(), and initMap().
| virtual Sundance::HomogeneousDOFMap::~HomogeneousDOFMap | ( | ) | [inline, virtual] |
Definition at line 67 of file SundanceHomogeneousDOFMap.hpp.
| void HomogeneousDOFMap::allocate | ( | const Mesh & | mesh, |
| const BasisFamily & | basis, | ||
| int | numFuncs | ||
| ) | [private] |
Definition at line 116 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 651 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 765 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 113 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 469 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 95 of file SundanceHomogeneousDOFMap.hpp.
References Sundance::DOFMapBase::cellDim(), dofs_, and uninitializedVal().
Referenced by computeOffsets(), and initMap().
| void HomogeneousDOFMap::initMap | ( | ) | [private] |
Definition at line 200 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 830 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 445 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 322 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 115 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), and hasBeenAssigned().
bool Sundance::HomogeneousDOFMap::basisIsContinuous_ [private] |
Definition at line 135 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), and initMap().
int Sundance::HomogeneousDOFMap::dim_ [private] |
Definition at line 117 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), buildMaximalDofTable(), getDOFsForCellBatch(), initMap(), print(), and shareDOFs().
Array<Array<Array<int> > > Sundance::HomogeneousDOFMap::dofs_ [private] |
Definition at line 119 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), buildMaximalDofTable(), computeOffsets(), getDOFsForCellBatch(), hasBeenAssigned(), print(), setDOFs(), and shareDOFs().
bool Sundance::HomogeneousDOFMap::haveMaximalDofs_ [mutable, private] |
Definition at line 123 of file SundanceHomogeneousDOFMap.hpp.
Referenced by buildMaximalDofTable(), and getDOFsForCellBatch().
Array<Array<Array<Array<int> > > > Sundance::HomogeneousDOFMap::localNodePtrs_ [private] |
Definition at line 125 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), buildMaximalDofTable(), and getDOFsForCellBatch().
Array<int> Sundance::HomogeneousDOFMap::maximalDofs_ [mutable, private] |
Definition at line 121 of file SundanceHomogeneousDOFMap.hpp.
Referenced by buildMaximalDofTable(), and getDOFsForCellBatch().
Array<int> Sundance::HomogeneousDOFMap::nNodesPerCell_ [private] |
Definition at line 127 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), initMap(), and setDOFs().
Array<Array<int> > Sundance::HomogeneousDOFMap::numFacets_ [private] |
Definition at line 131 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), and initMap().
Array<Array<int> > Sundance::HomogeneousDOFMap::originalFacetOrientation_ [private] |
Definition at line 133 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), buildMaximalDofTable(), getDOFsForCellBatch(), initMap(), and shareDOFs().
Array<int> Sundance::HomogeneousDOFMap::totalNNodesPerCell_ [private] |
Definition at line 129 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), buildMaximalDofTable(), and getDOFsForCellBatch().