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_ |
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 dim_, dofs_, funcIDList(), Sundance::Mesh::getFacetLIDs(), haveMaximalDofs_, localNodePtrs_, maximalDofs_, Sundance::DOFMapBase::mesh(), Sundance::Mesh::numCells(), Sundance::Mesh::numFacets(), Sundance::numFacets(), Sundance::DOFMapBase::setupVerb(), SUNDANCE_MSG2, SUNDANCE_MSG3, SUNDANCE_MSG4, and totalNNodesPerCell_.
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(), print(), and setDOFs().
virtual void Sundance::HomogeneousDOFMap::getDOFsForCellBatch | ( | int | cellDim, | |
const Array< int > & | cellLID, | |||
Array< int > & | dofs, | |||
Array< Array< int > > & | funcIDs, | |||
Array< int > & | nNodes | |||
) | const [virtual] |
bool Sundance::HomogeneousDOFMap::hasBeenAssigned | ( | int | cellDim, | |
int | cellLID | |||
) | const [inline, private] |
Definition at line 95 of file SundanceHomogeneousDOFMap.hpp.
References 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(), 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::comm(), Sundance::Mesh::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(), 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(), hasBeenAssigned(), print(), setDOFs(), and shareDOFs().
bool Sundance::HomogeneousDOFMap::haveMaximalDofs_ [mutable, private] |
Array<Array<Array<Array<int> > > > Sundance::HomogeneousDOFMap::localNodePtrs_ [private] |
Definition at line 125 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), and buildMaximalDofTable().
Array<int> Sundance::HomogeneousDOFMap::maximalDofs_ [mutable, private] |
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(), initMap(), and shareDOFs().
Array<int> Sundance::HomogeneousDOFMap::totalNNodesPerCell_ [private] |
Definition at line 129 of file SundanceHomogeneousDOFMap.hpp.
Referenced by allocate(), and buildMaximalDofTable().