Dune Core Modules (2.9.0)

alu3diterators.hh
1#ifndef DUNE_ALU3DITERATORS_HH
2#define DUNE_ALU3DITERATORS_HH
3
4// Dune includes
5#include <dune/grid/common/gridenums.hh>
6
7// Local includes
8#include "alu3dinclude.hh"
9
10namespace ALUGrid
11{
12
13 //*************************************************************
14 // definition of original LeafIterators of ALUGrid
15 //
16 // default is element (codim = 0)
17 template< int codim, class Comm >
18 struct BSMacroIterator
19 {
20 typedef typename Dune::ALU3dBasicImplTraits< Comm >::HElementType HElementType;
21 typedef typename AccessIterator< HElementType >::Handle IteratorType;
22 };
23
24 //******************************************************************
25 // LevelIterators
26 //******************************************************************
27 template< int codim, class Comm >
28 struct ALUHElementType;
29
30 template< class Comm >
31 struct ALUHElementType< 0, Comm >
32 {
33 typedef typename Dune::ALU3dBasicImplTraits< Comm >::HElementType ElementType;
34 };
35
36 template< class Comm >
37 struct ALUHElementType< 1, Comm >
38 {
39 typedef typename Dune::ALU3dBasicImplTraits< Comm >::HFaceType ElementType;
40 };
41
42 template< class Comm >
43 struct ALUHElementType< 2, Comm >
44 {
45 typedef typename Dune::ALU3dBasicImplTraits< Comm >::HEdgeType ElementType;
46 };
47
48 template< class Comm >
49 struct ALUHElementType< 3, Comm >
50 {
51 typedef typename Dune::ALU3dBasicImplTraits< Comm >::VertexType ElementType;
52 };
53
54
55 //*********************************************************
56 // LevelIterator Wrapper
57 //*********************************************************
58 template< class val_t >
59 class IteratorWrapperInterface
60 : public IteratorSTI< val_t >
61 {
62 public:
63 virtual ~IteratorWrapperInterface () {}
64
65 virtual int size () = 0;
66 virtual void next () = 0;
67 virtual void first() = 0;
68 virtual int done () const = 0;
69 virtual val_t & item () const = 0;
70 virtual IteratorSTI< val_t > * clone () const { alugrid_assert (false); abort(); return 0; }
71 };
72
74
75 // defines the pair of element and boundary
76 template< int codim, class Comm >
77 struct IteratorElType
78 {
79 typedef typename ALUHElementType< codim, Comm >::ElementType ElType;
80 typedef typename Dune::ALU3dBasicImplTraits< Comm >::HBndSegType HBndSegType;
81 typedef std::pair< ElType *, HBndSegType * > val_t;
82 };
83
84} // end namespace ALUGrid
85
86//#include "alu3diterators_imp.cc"
87#endif // #ifndef DUNE_ALU3DITERATORS_HH
PartitionIteratorType
Parameter to be used for the parallel level- and leaf iterators.
Definition: gridenums.hh:136
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Dec 21, 23:30, 2024)