dune-pdelab
2.4-dev
|
Interface for merging index spaces. More...
#include <dune/pdelab/ordering/orderinginterface.hh>
Public Types | |
typedef ImplementationDefined | SizeType |
Public Member Functions | |
GridFunctionSpaceOrderingInterface (const TypeTree::NodeInterface::NodeStorage &children) | |
Construct ordering object. More... | |
GridFunctionSpaceOrderingInterface () | |
Construct ordering object. More... | |
void | update () |
update internal data structures More... | |
bool | blocked () const |
whether dofs are blocked per entity/intersection More... | |
bool | fixedSize () const |
whether all entites of the same geometry type/all intersections have the same number of dofs More... | |
SizeType | subMap (SizeType child, SizeType indexInChild) const |
map a global dof index from a child More... | |
SizeType | size () const |
number of indices in this ordering More... | |
SizeType | maxLocalSize () const |
maximum number of dofs attached to any given element and all of its subentities and intersections More... | |
template<class Entity > | |
SizeType | entitySize (const Entity &e) const |
number of indices attached to a given entity (of arbitrary codimension) More... | |
template<class Element > | |
SizeType | entitySize (const Element &e, std::size_t codim, std::size_t subentity) const |
number of indices attached to a given subentity of an element More... | |
template<class Intersection > | |
SizeType | intersectionSize (const Intersection &i) const |
number of indices attached to a given intersection More... | |
template<class Entity > | |
SizeType | entityOffset (const Entity &e) const |
offset of the block of dofs attached to a given entity (of arbitrary codimension) More... | |
template<class Element > | |
SizeType | entityOffset (const Element &e, std::size_t codim, std::size_t subentity) const |
offset of the blocks of dofs attached to a given subentity of an element More... | |
template<class Intersection > | |
SizeType | intersectionOffset (const Intersection &i) const |
offset of the block of dofs attached to a given intersection More... | |
Interface for merging index spaces.
typedef ImplementationDefined Dune::PDELab::GridFunctionSpaceOrderingInterface::SizeType |
Dune::PDELab::GridFunctionSpaceOrderingInterface::GridFunctionSpaceOrderingInterface | ( | const TypeTree::NodeInterface::NodeStorage & | children | ) |
Construct ordering object.
In general, an ordering object is not properly setup after construction. This must be done by a seperate call to update() after all the children have been properly set up.
Dune::PDELab::GridFunctionSpaceOrderingInterface::GridFunctionSpaceOrderingInterface | ( | ) |
Construct ordering object.
In general, an ordering object is not properly setup after construction. This must be done by a seperate call to update() after all the children have been properly set up.
bool Dune::PDELab::GridFunctionSpaceOrderingInterface::blocked | ( | ) | const |
whether dofs are blocked per entity/intersection
SizeType Dune::PDELab::GridFunctionSpaceOrderingInterface::entityOffset | ( | const Entity & | e | ) | const |
offset of the block of dofs attached to a given entity (of arbitrary codimension)
NotImplemented | If this EntityType is not supported by the ordering. |
InvalidStateException | If blocked()==false. |
SizeType Dune::PDELab::GridFunctionSpaceOrderingInterface::entityOffset | ( | const Element & | e, |
std::size_t | codim, | ||
std::size_t | subentity | ||
) | const |
offset of the blocks of dofs attached to a given subentity of an element
This method determines the starting offset of the block of dofs attached to a subentity of the given codim 0 entity. If the grid (and the ordering) directly support entities of the given codimension, this is equivalent to calling entityOffset(*e.subEntity<codim>(subentity)).
SizeType Dune::PDELab::GridFunctionSpaceOrderingInterface::entitySize | ( | const Entity & | e | ) | const |
number of indices attached to a given entity (of arbitrary codimension)
NotImplemented | If this EntityType is not supported by the ordering. |
SizeType Dune::PDELab::GridFunctionSpaceOrderingInterface::entitySize | ( | const Element & | e, |
std::size_t | codim, | ||
std::size_t | subentity | ||
) | const |
number of indices attached to a given subentity of an element
This method determines the number of indices attached to a subentity of the given codim 0 entity. If the grid (and the ordering) directly supports entities of the given codimension, this is equivalent to calling entitySize((*e.subEntity<codim>(subentity)).
bool Dune::PDELab::GridFunctionSpaceOrderingInterface::fixedSize | ( | ) | const |
whether all entites of the same geometry type/all intersections have the same number of dofs
SizeType Dune::PDELab::GridFunctionSpaceOrderingInterface::intersectionOffset | ( | const Intersection & | i | ) | const |
offset of the block of dofs attached to a given intersection
SizeType Dune::PDELab::GridFunctionSpaceOrderingInterface::intersectionSize | ( | const Intersection & | i | ) | const |
number of indices attached to a given intersection
SizeType Dune::PDELab::GridFunctionSpaceOrderingInterface::maxLocalSize | ( | ) | const |
maximum number of dofs attached to any given element and all of its subentities and intersections
This is generally not an exact maximum and may be bigger than the actual maximum. There is however one special case: it is guaranteed to be the exact maximum for fixedSize()==true.
SizeType Dune::PDELab::GridFunctionSpaceOrderingInterface::size | ( | ) | const |
number of indices in this ordering
SizeType Dune::PDELab::GridFunctionSpaceOrderingInterface::subMap | ( | SizeType | child, |
SizeType | indexInChild | ||
) | const |
map a global dof index from a child
Given the index of a dof in the global dof-vector of one of the children, compute the index of the same dof in the global dof-vector of this ordering.
void Dune::PDELab::GridFunctionSpaceOrderingInterface::update | ( | ) |
update internal data structures
This method must be called after initialization and every time the structure of the dof-vector of one of gfs's children changes. All the children must have been set up properly before the call to update().