internal::Triangulation::TriaObjectsHex Class Reference
[Grid classes]

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
unsigned int memory_consumption () const

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.


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 > >.

References Assert, and face_orientations.

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 > >.

unsigned int 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 > >.


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.

Referenced by face_orientation().

flip = rotation by 180 degrees

rotation by 90 degrees


The documentation for this class was generated from the following file:

deal.II documentation generated on Mon Nov 23 22:58:25 2009 by doxygen 1.6.1