Public Member Functions | Public Attributes

internal::Triangulation::TriaObjectsHex Class Reference

Inheritance diagram for internal::Triangulation::TriaObjectsHex:
Inheritance graph
[legend]

List of all members.

Public Member Functions

bool face_orientation (const unsigned int cell, const unsigned int face) const
void reserve_space (const unsigned int new_objs)
void clear ()
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)

Public Attributes

std::vector< boolface_orientations
std::vector< boolface_flips
std::vector< boolface_rotations

Detailed Description

For hexahedrons the data of TriaObjects needs to be extended, as we can obtain faces (quads) in non-standard-orientation, therefore we declare a class TriaObjectsHex, which additionaly contains a bool-vector of the face-orientations.

Definition at line 465 of file tria_objects.h.


Member Function Documentation

bool internal::Triangulation::TriaObjectsHex::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 if they point in opposite direction.

Reimplemented from internal::Triangulation::TriaObjects< TriaObject< 3 > >.

Definition at line 825 of file tria_objects.h.

References Assert, and StandardExceptions::ExcIndexRange().

void internal::Triangulation::TriaObjectsHex::reserve_space ( const unsigned int  new_objs )

Assert that enough space is allocated to accomodate new_objs new objects. This function does not only call vector::reserve(), but does really append the needed elements.

void internal::Triangulation::TriaObjectsHex::clear (  )

Clear all the data contained in this object.

Reimplemented from internal::Triangulation::TriaObjects< TriaObject< 3 > >.

void internal::Triangulation::TriaObjectsHex::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 from internal::Triangulation::TriaObjects< TriaObject< 3 > >.

std::size_t internal::Triangulation::TriaObjectsHex::memory_consumption (  ) const

Determine an estimate for the memory consumption (in bytes) of this object.

Reimplemented from internal::Triangulation::TriaObjects< TriaObject< 3 > >.

template<class Archive >
void internal::Triangulation::TriaObjectsHex::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 from internal::Triangulation::TriaObjects< TriaObject< 3 > >.

Definition at line 802 of file tria_objects.h.

References internal::Triangulation::TriaObjects< G >::serialize().


Member Data Documentation

For edges, we enforce a standard convention that opposite edges should be parallel. Now, that's enforcable in most cases, and we have code that makes sure that if a mesh allows this to happen, that we have this convention. We also know that it is always possible to have opposite faces have parallel normal vectors. (For both things, see the Agelek, Anderson, Bangerth, Barth paper mentioned in the publications list.)

The problem is that we originally had another condition, namely that faces 0, 2 and 6 have normals that point into the cell, while the other faces have normals that point outward. It turns out that this is not always possible. In effect, we have to store whether the normal vector of each face of each cell follows this convention or not. If this is so, then this variable stores a true value, otherwise a false value.

In effect, this field has 6*n_cells elements, being the number of cells times the six faces each has.

Definition at line 529 of file tria_objects.h.

flip = rotation by 180 degrees

Definition at line 533 of file tria_objects.h.

rotation by 90 degrees

Definition at line 537 of file tria_objects.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

deal.II documentation generated on Fri Feb 3 2012 06:04:15 by doxygen 1.7.2