Public Member Functions | |
MappingCollection () | |
MappingCollection (const Mapping< dim, spacedim > &mapping) | |
MappingCollection (const MappingCollection< dim, spacedim > &mapping_collection) | |
void | push_back (const Mapping< dim, spacedim > &new_mapping) |
const Mapping< dim, spacedim > & | operator[] (const unsigned int index) const |
unsigned int | size () const |
unsigned int | memory_consumption () const |
Private Attributes | |
std::vector < std_cxx1x::shared_ptr< const Mapping< dim, spacedim > > > | mappings |
It implements the concepts stated in the hp Collections module described in the doxygen documentation.
Although it is recommended to supply an appropriate mapping for each finite element kind used in a hp-computation, the MappingCollection class implements a conversion constructor from a single mapping. Therefore it is possible to offer only a single mapping to the hp::FEValues class instead of a hp::MappingCollection. This is for the convenience of the user, as many simple geometries do not require different mappings along the boundary to achieve optimal convergence rates. Hence providing a single mapping object will usually suffice. See the hp::FEValues class for the rules which mapping will be selected for a given cell.
hp::MappingCollection< dim, spacedim >::MappingCollection | ( | ) |
Default constructor. Leads to an empty collection that can later be filled using push_back().
hp::MappingCollection< dim, spacedim >::MappingCollection | ( | const Mapping< dim, spacedim > & | mapping | ) | [explicit] |
Conversion constructor. This constructor creates a MappingCollection from a single mapping. More mappings can be added with push_back(), if desired, though it would probably be clearer to add all mappings the same way.
hp::MappingCollection< dim, spacedim >::MappingCollection | ( | const MappingCollection< dim, spacedim > & | mapping_collection | ) |
Copy constructor.
void hp::MappingCollection< dim, spacedim >::push_back | ( | const Mapping< dim, spacedim > & | new_mapping | ) |
Adds a new mapping to the MappingCollection. The mappings have to be added in the order of the active_fe_indices. Thus the reference to the mapping object for active_fe_index 0 has to be added first, followed by the mapping object for active_fe_index 1.
const Mapping< dim, spacedim > & hp::MappingCollection< dim, spacedim >::operator[] | ( | const unsigned int | index | ) | const [inline] |
Returns the mapping object which was specified by the user for the active_fe_index which is provided as a parameter to this method.
index
must be between zero and the number of elements of the collection. References Assert, and hp::MappingCollection< dim, spacedim >::mappings.
unsigned int hp::MappingCollection< dim, spacedim >::size | ( | ) | const [inline] |
Returns the number of mapping objects stored in this container.
References hp::MappingCollection< dim, spacedim >::mappings.
unsigned int hp::MappingCollection< dim, spacedim >::memory_consumption | ( | ) | const |
Determine an estimate for the memory consumption (in bytes) of this object.
std::vector<std_cxx1x::shared_ptr<const Mapping<dim,spacedim> > > hp::MappingCollection< dim, spacedim >::mappings [private] |
The real container, which stores pointers to the different Mapping objects.
Referenced by hp::MappingCollection< dim, spacedim >::operator[](), and hp::MappingCollection< dim, spacedim >::size().