IteratorElemsLibMesh< Dim > Class Template Reference

#include <iterator_libmesh.h>

Inheritance diagram for IteratorElemsLibMesh< Dim >:

Inheritance graph
[legend]
Collaboration diagram for IteratorElemsLibMesh< Dim >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

RefElemLibMesh< Dim > & GetFirst ()
 get first element of attached contener
RefElemLibMesh< Dim > & GetNext ()
 get next element in the course
 IteratorElemsLibMesh (Contener< RefElemLibMesh< Dim >, Iterator< RefElemLibMesh< Dim >, IteratorElemsLibMesh< Dim > > > &c)
 ~IteratorElemsLibMesh ()

Private Attributes

MeshBase::const_element_iterator * current
 internal libmesh course object for elements
RefElemLibMesh< Dim > elem
 reference to the current element in course
MeshBase::const_element_iterator * end_el
 internal libmesh course object for last element

Detailed Description

template<unsigned int Dim>
class IteratorElemsLibMesh< Dim >

Class IteratorElemLibMesh Iterator implementation for libmesh elements

Definition at line 52 of file iterator_libmesh.h.


Constructor & Destructor Documentation

template<unsigned int Dim>
IteratorElemsLibMesh< Dim >::IteratorElemsLibMesh ( Contener< RefElemLibMesh< Dim >, Iterator< RefElemLibMesh< Dim >, IteratorElemsLibMesh< Dim > > > &  c  )  [inline]

Definition at line 52 of file iterator_libmesh.cpp.

References IteratorElemsLibMesh< Dim >::current, and IteratorElemsLibMesh< Dim >::end_el.

00054                                                                 :
00055   Iterator<RefElemLibMesh<Dim>,IteratorElemsLibMesh<Dim> >(c)
00056 {
00057   current = NULL;
00058   end_el = NULL;
00059 }

template<unsigned int Dim>
IteratorElemsLibMesh< Dim >::~IteratorElemsLibMesh (  )  [inline]

Definition at line 62 of file iterator_libmesh.cpp.

References IteratorElemsLibMesh< Dim >::current, and IteratorElemsLibMesh< Dim >::end_el.

00062                                                 {
00063   if (current)
00064     delete(current);
00065 
00066   if(end_el)
00067     delete(end_el);
00068 
00069 }


Member Function Documentation

template<unsigned int Dim>
RefElemLibMesh< Dim > & IteratorElemsLibMesh< Dim >::GetFirst (  )  [inline]

get first element of attached contener

Reimplemented from Iterator< RefElemLibMesh< Dim >, IteratorElemsLibMesh< Dim > >.

Definition at line 71 of file iterator_libmesh.cpp.

References IteratorElemsLibMesh< Dim >::current, IteratorElemsLibMesh< Dim >::elem, IteratorElemsLibMesh< Dim >::end_el, Iterator< RefElemLibMesh< Dim >, IteratorElemsLibMesh< Dim > >::end_flag, Iterator< RefElemLibMesh< Dim >, IteratorElemsLibMesh< Dim > >::my_cont, and SPECIAL_STATIC_CAST.

00071                                                          {
00072   if (!this->my_cont.nbElem()){
00073     this->end_flag = true;
00074     return elem;
00075   }
00076 
00077   this->end_flag = false;
00078 
00079   
00080   const MeshLibMesh<Dim> & msh(*SPECIAL_STATIC_CAST(ContenerElemsLibMesh<Dim> &,this->my_cont).my_mesh);
00081   if (current)
00082     delete(current);
00083 
00084   if(end_el)
00085     delete(end_el);
00086 
00087   current = new MeshBase::const_element_iterator(msh.local_elements_begin());
00088   end_el = new MeshBase::const_element_iterator(msh.local_elements_end());
00089 
00090   elem.elt = *(*current);
00091   elem.index = 0;
00092 
00093   elem.model = static_cast<ContenerElemsLibMesh<Dim> &>(this->my_cont).model;
00094 
00095   return elem;
00096 }

template<unsigned int Dim>
RefElemLibMesh< Dim > & IteratorElemsLibMesh< Dim >::GetNext (  )  [inline]

get next element in the course

Reimplemented from Iterator< RefElemLibMesh< Dim >, IteratorElemsLibMesh< Dim > >.

Definition at line 81 of file iterator_libmesh.h.

References IteratorElemsLibMesh< Dim >::current, DBG_ALL, DUMP, IteratorElemsLibMesh< Dim >::elem, IteratorElemsLibMesh< Dim >::end_el, and Iterator< RefElemLibMesh< Dim >, IteratorElemsLibMesh< Dim > >::end_flag.

00081                                                                {
00082    MeshBase::const_element_iterator & c(*current);
00083    const MeshBase::const_element_iterator & e(*end_el);
00084 
00085   ++c;
00086   ++elem.index;
00087 
00088   if (c != e){
00089     elem.elt = *c;
00090     DUMP("Element demande : "<< *c,DBG_ALL);
00091     
00092   }
00093   else{
00094     this->end_flag = true;
00095   }
00096   return elem;
00097 }


Member Data Documentation

template<unsigned int Dim>
MeshBase::const_element_iterator* IteratorElemsLibMesh< Dim >::current [private]

internal libmesh course object for elements

Definition at line 74 of file iterator_libmesh.h.

Referenced by IteratorElemsLibMesh< Dim >::GetFirst(), IteratorElemsLibMesh< Dim >::GetNext(), IteratorElemsLibMesh< Dim >::IteratorElemsLibMesh(), and IteratorElemsLibMesh< Dim >::~IteratorElemsLibMesh().

template<unsigned int Dim>
RefElemLibMesh<Dim> IteratorElemsLibMesh< Dim >::elem [private]

reference to the current element in course

Definition at line 71 of file iterator_libmesh.h.

Referenced by IteratorElemsLibMesh< Dim >::GetFirst(), and IteratorElemsLibMesh< Dim >::GetNext().

template<unsigned int Dim>
MeshBase::const_element_iterator* IteratorElemsLibMesh< Dim >::end_el [private]

internal libmesh course object for last element

Definition at line 76 of file iterator_libmesh.h.

Referenced by IteratorElemsLibMesh< Dim >::GetFirst(), IteratorElemsLibMesh< Dim >::GetNext(), IteratorElemsLibMesh< Dim >::IteratorElemsLibMesh(), and IteratorElemsLibMesh< Dim >::~IteratorElemsLibMesh().


The documentation for this class was generated from the following files:
Generated on Fri Sep 7 13:13:19 2007 for LibMultiScale by  doxygen 1.5.2