
Classes | |
| struct | UserData |
Public Member Functions | |
| TriaObjects () | |
| void | reserve_space (const unsigned int new_objs_in_pairs, const unsigned int new_objs_single=0) |
| template<int dim, int spacedim> | |
| typename::Triangulation< dim, spacedim >::raw_line_iterator | next_free_single_line (const ::Triangulation< dim, spacedim > &tria) |
| template<int dim, int spacedim> | |
| typename::Triangulation< dim, spacedim >::raw_line_iterator | next_free_pair_line (const ::Triangulation< dim, spacedim > &tria) |
| template<int dim, int spacedim> | |
| typename::Triangulation< dim, spacedim >::raw_quad_iterator | next_free_single_quad (const ::Triangulation< dim, spacedim > &tria) |
| template<int dim, int spacedim> | |
| typename::Triangulation< dim, spacedim >::raw_quad_iterator | next_free_pair_quad (const ::Triangulation< dim, spacedim > &tria) |
| template<int dim, int spacedim> | |
| typename::Triangulation< dim, spacedim >::raw_hex_iterator | next_free_hex (const ::Triangulation< dim, spacedim > &tria, const unsigned int level) |
| void | clear () |
| bool | face_orientation (const unsigned int cell, const unsigned int face) const |
| void *& | user_pointer (const unsigned int i) |
| const void * | user_pointer (const unsigned int i) const |
| unsigned int & | user_index (const unsigned int i) |
| unsigned int | user_index (const unsigned int i) const |
| void | clear_user_data (const unsigned int i) |
| void | clear_user_data () |
| void | clear_user_flags () |
| void | monitor_memory (const unsigned int true_dimension) const |
| std::size_t | memory_consumption () const |
| template<class Archive > | |
| void | serialize (Archive &ar, const unsigned int version) |
| template<> | |
| void | reserve_space (const unsigned int new_lines_in_pairs, const unsigned int new_lines_single) |
| template<> | |
| void | reserve_space (const unsigned int new_quads_in_pairs, const unsigned int new_quads_single) |
| template<> | |
| void | monitor_memory (const unsigned int) const |
Static Public Member Functions | |
| ::ExceptionBase & | ExcMemoryWasted (char *arg1, int arg2, int arg3) throw (errortext << "The container " << arg1 << " contains " << arg2 << " elements, but it`s capacity is " << arg3 << "." ) |
| ::ExceptionBase & | ExcMemoryInexact (int arg1, int arg2) throw (errortext << "The containers have sizes " << arg1 << " and " << arg2 << ", which is not as expected." ) |
| ::ExceptionBase & | ExcWrongIterator (char *arg1, char *arg2) throw (errortext << "You asked for the next free " << arg1 << "_iterator, " "but you can only ask for " << arg2 <<"_iterators." ) |
| ::ExceptionBase & | ExcPointerIndexClash () |
Public Attributes | |
| std::vector< G > | cells |
| std::vector< int > | children |
| std::vector< RefinementCase < G::dimension > > | refinement_cases |
| std::vector< bool > | used |
| std::vector< bool > | user_flags |
| std::vector< unsigned char > | material_id |
Protected Types | |
| enum | UserDataType { data_unknown, data_pointer, data_index } |
Protected Attributes | |
| unsigned int | next_free_single |
| unsigned int | next_free_pair |
| bool | reverse_order_next_free_single |
| std::vector< UserData > | user_data |
| UserDataType | user_data_type |
General template for information belonging to the geometrical objects of a triangulation, i.e. lines, quads, hexahedra... Apart from the vector of objects additional information is included, namely vectors indicating the children, the used-status, user-flags, material-ids..
Objects of these classes are included in the TriaLevel and TriaFaces classes.
Definition at line 58 of file tria_objects.h.
enum internal::Triangulation::TriaObjects::UserDataType [protected] |
Enum descibing the possible types of userdata.
| data_unknown |
No userdata used yet. |
| data_pointer |
UserData contains pointers. |
| data_index |
UserData contains indices. |
Definition at line 428 of file tria_objects.h.
| internal::Triangulation::TriaObjects< G >::TriaObjects | ( | ) | [inline] |
Constructor resetting some data.
Definition at line 735 of file tria_objects.h.
| void internal::Triangulation::TriaObjects< G >::reserve_space | ( | const unsigned int | new_objs_in_pairs, |
| const unsigned int | new_objs_single = 0 |
||
| ) |
Assert that enough space is allocated to accomodate new_objs_in_pairs new objects, stored in pairs, plus new_obj_single stored individually. This function does not only call vector::reserve(), but does really append the needed elements.
In 2D e.g. refined lines have to be stored in pairs, whereas new lines in the interior of refined cells can be stored as single lines.
Reimplemented in internal::Triangulation::TriaObjectsQuad3D.
| typename ::Triangulation<dim,spacedim>::raw_line_iterator internal::Triangulation::TriaObjects< G >::next_free_single_line | ( | const ::Triangulation< dim, spacedim > & | tria ) |
Return an iterator to the next free slot for a single line. Only implemented for G=TriaObject<1> .
| typename ::Triangulation<dim,spacedim>::raw_line_iterator internal::Triangulation::TriaObjects< G >::next_free_pair_line | ( | const ::Triangulation< dim, spacedim > & | tria ) |
Return an iterator to the next free slot for a pair of lines. Only implemented for G=TriaObject<1> .
| typename ::Triangulation<dim,spacedim>::raw_quad_iterator internal::Triangulation::TriaObjects< G >::next_free_single_quad | ( | const ::Triangulation< dim, spacedim > & | tria ) |
Return an iterator to the next free slot for a single quad. Only implemented for G=TriaObject<2> .
| typename ::Triangulation<dim,spacedim>::raw_quad_iterator internal::Triangulation::TriaObjects< G >::next_free_pair_quad | ( | const ::Triangulation< dim, spacedim > & | tria ) |
Return an iterator to the next free slot for a pair of quads. Only implemented for G=TriaObject<2> .
| typename ::Triangulation<dim,spacedim>::raw_hex_iterator internal::Triangulation::TriaObjects< G >::next_free_hex | ( | const ::Triangulation< dim, spacedim > & | tria, |
| const unsigned int | level | ||
| ) |
Return an iterator to the next free slot for a pair of hexes. Only implemented for G=Hexahedron.
| void internal::Triangulation::TriaObjects< G >::clear | ( | ) |
Clear all the data contained in this object.
Reimplemented in internal::Triangulation::TriaObjectsHex, and internal::Triangulation::TriaObjectsQuad3D.
| bool internal::Triangulation::TriaObjects< G >::face_orientation | ( | const unsigned int | cell, |
| const unsigned int | face | ||
| ) | const [inline] |
The orientation of the face number face of the cell with number cell. The return value is true, if the normal vector points the usual way (GeometryInfo::unit_normal_orientation) and false else.
The result is always true in this class, but derived classes will reimplement this.
Reimplemented in internal::Triangulation::TriaObjectsHex, and internal::Triangulation::TriaObjectsQuad3D.
Definition at line 672 of file tria_objects.h.
| void *& internal::Triangulation::TriaObjects< G >::user_pointer | ( | const unsigned int | i ) | [inline] |
Access to user pointers.
Definition at line 681 of file tria_objects.h.
References Assert, and StandardExceptions::ExcIndexRange().
| const void * internal::Triangulation::TriaObjects< G >::user_pointer | ( | const unsigned int | i ) | const [inline] |
Read-only access to user pointers.
Definition at line 696 of file tria_objects.h.
References Assert, and StandardExceptions::ExcIndexRange().
| unsigned int & internal::Triangulation::TriaObjects< G >::user_index | ( | const unsigned int | i ) | [inline] |
Access to user indices.
Definition at line 711 of file tria_objects.h.
References Assert, and StandardExceptions::ExcIndexRange().
| unsigned int internal::Triangulation::TriaObjects< G >::user_index | ( | const unsigned int | i ) | const [inline] |
Read-only access to user pointers.
Definition at line 744 of file tria_objects.h.
References Assert, and StandardExceptions::ExcIndexRange().
| void internal::Triangulation::TriaObjects< G >::clear_user_data | ( | const unsigned int | i ) | [inline] |
Reset user data to zero.
Definition at line 726 of file tria_objects.h.
References Assert, and StandardExceptions::ExcIndexRange().
| void internal::Triangulation::TriaObjects< G >::clear_user_data | ( | ) | [inline] |
Clear all user pointers or indices and reset their type, such that the next access may be aither or.
Definition at line 758 of file tria_objects.h.
| void internal::Triangulation::TriaObjects< G >::clear_user_flags | ( | ) | [inline] |
Clear all user flags.
Definition at line 768 of file tria_objects.h.
| void internal::Triangulation::TriaObjects< G >::monitor_memory | ( | const unsigned int | true_dimension ) | const |
Check the memory consistency of the different containers. Should only be called with the prepro flag DEBUG set. The function should be called from the functions of the higher TriaLevel classes.
Reimplemented in internal::Triangulation::TriaObjectsHex, and internal::Triangulation::TriaObjectsQuad3D.
| std::size_t internal::Triangulation::TriaObjects< G >::memory_consumption | ( | ) | const |
Determine an estimate for the memory consumption (in bytes) of this object.
Reimplemented in internal::Triangulation::TriaObjectsHex, and internal::Triangulation::TriaObjectsQuad3D.
| void internal::Triangulation::TriaObjects< G >::serialize | ( | Archive & | ar, |
| const unsigned int | version | ||
| ) |
Read or write the data of this object to or from a stream for the purpose of serialization
Reimplemented in internal::Triangulation::TriaObjectsHex, and internal::Triangulation::TriaObjectsQuad3D.
Definition at line 788 of file tria_objects.h.
References internal::Triangulation::TriaObjects< G >::cells, internal::Triangulation::TriaObjects< G >::children, internal::Triangulation::TriaObjects< G >::material_id, internal::Triangulation::TriaObjects< G >::next_free_pair, internal::Triangulation::TriaObjects< G >::next_free_single, internal::Triangulation::TriaObjects< G >::refinement_cases, internal::Triangulation::TriaObjects< G >::reverse_order_next_free_single, internal::Triangulation::TriaObjects< G >::used, internal::Triangulation::TriaObjects< G >::user_data, internal::Triangulation::TriaObjects< G >::user_data_type, and internal::Triangulation::TriaObjects< G >::user_flags.
Referenced by internal::Triangulation::TriaObjectsQuad3D::serialize(), and internal::Triangulation::TriaObjectsHex::serialize().
| ::ExceptionBase& internal::Triangulation::TriaObjects< G >::ExcMemoryWasted | ( | char * | arg1, |
| int | arg2, | ||
| int | arg3 | ||
| ) | throw (errortext << "The container " << arg1 << " contains " << arg2 << " elements, but it`s capacity is " << arg3 << "." ) [static] |
Exception
| ::ExceptionBase& internal::Triangulation::TriaObjects< G >::ExcWrongIterator | ( | char * | arg1, |
| char * | arg2 | ||
| ) | throw (errortext << "You asked for the next free " << arg1 << "_iterator, " "but you can only ask for " << arg2 <<"_iterators." ) [static] |
Exception
| void internal::Triangulation::TriaObjects< TriaObject< 1 > >::reserve_space | ( | const unsigned int | new_lines_in_pairs, |
| const unsigned int | new_lines_single | ||
| ) |
| void internal::Triangulation::TriaObjects< TriaObject< 2 > >::reserve_space | ( | const unsigned int | new_quads_in_pairs, |
| const unsigned int | new_quads_single | ||
| ) |
| void internal::Triangulation::TriaObjects< TriaObject< 2 > >::monitor_memory | ( | const unsigned | int ) | const |
| std::vector<G> internal::Triangulation::TriaObjects< G >::cells |
Vector of the objects belonging to this level. The index of the object equals the index in this container.
Definition at line 71 of file tria_objects.h.
Referenced by internal::Triangulation::TriaObjects< G >::serialize().
| std::vector<int> internal::Triangulation::TriaObjects< G >::children |
Index of the even children of an object. Since when objects are refined, all children are created at the same time, they are appended to the list at least in pairs after each other. We therefore only store the index of the even children, the uneven follow immediately afterwards.
If an object has no children, -1 is stored in this list. An object is called active if it has no children. The function TriaAccessorBase::has_children() tests for this.
Definition at line 89 of file tria_objects.h.
Referenced by internal::Triangulation::TriaObjects< G >::serialize().
| std::vector<RefinementCase<G::dimension> > internal::Triangulation::TriaObjects< G >::refinement_cases |
Store the refinement case each of the cells is refined with. This vector might be replaced by vector<vector<bool> > (dim, vector<bool> (n_cells)) which is more memory efficient.
Definition at line 102 of file tria_objects.h.
Referenced by internal::Triangulation::TriaObjects< G >::serialize().
| std::vector<bool> internal::Triangulation::TriaObjects< G >::used |
Vector storing whether an object is used in the cells vector.
Since it is difficult to delete elements in a vector, when an element is not needed any more (e.g. after derefinement), it is not deleted from the list, but rather the according used flag is set to false.
Definition at line 116 of file tria_objects.h.
Referenced by internal::Triangulation::TriaObjects< G >::serialize().
| std::vector<bool> internal::Triangulation::TriaObjects< G >::user_flags |
Make available a field for user data, one bit per object. This field is usually used when an operation runs over all cells and needs information whether another cell (e.g. a neighbor) has already been processed.
You can clear all used flags using Triangulation::clear_user_flags().
Definition at line 129 of file tria_objects.h.
Referenced by internal::Triangulation::TriaObjects< G >::serialize().
| std::vector<unsigned char> internal::Triangulation::TriaObjects< G >::material_id |
Store boundary and material data. For example, in one dimension, this field stores the material id of a line, which is a number between 0 and 254. In more than one dimension, lines have no material id, but they may be at the boundary; then, we store the boundary indicator in this field, which denotes to which part of the boundary this line belongs and which boundary conditions hold on this part. The boundary indicator also is a number between zero and 254; the id 255 is reserved for lines in the interior and may be used to check whether a line is at the boundary or not, which otherwise is not possible if you don't know which cell it belongs to.
Definition at line 152 of file tria_objects.h.
Referenced by internal::Triangulation::TriaObjects< G >::serialize().
unsigned int internal::Triangulation::TriaObjects< G >::next_free_single [protected] |
Counter for next_free_single_* functions
Definition at line 376 of file tria_objects.h.
Referenced by internal::Triangulation::TriaObjects< G >::serialize().
unsigned int internal::Triangulation::TriaObjects< G >::next_free_pair [protected] |
Counter for next_free_pair_* functions
Definition at line 381 of file tria_objects.h.
Referenced by internal::Triangulation::TriaObjects< G >::serialize().
bool internal::Triangulation::TriaObjects< G >::reverse_order_next_free_single [protected] |
Bool flag for next_free_single_* functions
Definition at line 386 of file tria_objects.h.
Referenced by internal::Triangulation::TriaObjects< G >::serialize().
std::vector<UserData> internal::Triangulation::TriaObjects< G >::user_data [protected] |
Pointer which is not used by the library but may be accessed and set by the user to handle data local to a line/quad/etc.
Definition at line 445 of file tria_objects.h.
Referenced by internal::Triangulation::TriaObjects< G >::serialize().
UserDataType internal::Triangulation::TriaObjects< G >::user_data_type [mutable, protected] |
In order to avoid confusion between user pointers and indices, this enum is set by the first function accessing either and subsequent access will not be allowed to change the type of data accessed.
Definition at line 456 of file tria_objects.h.
Referenced by internal::Triangulation::TriaObjects< G >::serialize().
documentation generated on Fri Feb 3 2012 06:04:15 by
doxygen
1.7.2