3 #ifndef DUNE_DGF_INTERVALBLOCK_HH 4 #define DUNE_DGF_INTERVALBLOCK_HH 27 copy( interval, map );
31 const int size = map.size();
36 assert( size ==
int(interval.
n.size()) );
37 for(
int i=0; i<size; ++i )
39 p[ 0 ][ i ] = interval.
p[ 0 ][ map[ i ] ];
40 p[ 1 ][ i ] = interval.
p[ 1 ][ map[ i ] ];
41 n[ i ] = interval.
n[ map[ i ] ];
42 h[ i ] = interval.
h[ map[ i ] ];
45 std::array< std::vector< double >, 2 >
p;
46 std::vector< double >
h;
51 std::vector< Interval > intervals_;
52 std::vector< int > map_;
59 void get ( std::vector< std::vector< double > > &vtx,
int &
nofvtx,
60 std::vector< std::vector< unsigned int > > &simplex,
int &nofsimpl )
62 for(
size_t i = 0; i < intervals_.size(); ++i )
65 nofvtx +=
getVtx( i, vtx );
66 nofsimpl +=
getHexa( i, simplex, oldvtx );
70 void get ( std::vector< std::vector< double > > &vtx,
int &
nofvtx )
72 for(
size_t i = 0; i < intervals_.size(); ++i )
73 nofvtx +=
getVtx( i, vtx );
78 return intervals_[ block ];
83 return intervals_.size();
91 int getVtx (
int block, std::vector< std::vector< double > > &vtx )
const;
92 int getHexa (
int block, std::vector< std::vector< unsigned int > > &cubes,
93 int offset = 0 )
const;
97 const Interval &interval =
get( block );
99 for(
int i = 0; i < dimw_; ++i )
100 n *= (interval.
n[ i ] + 1);
106 const Interval &interval =
get( block );
108 for(
int i = 0; i < dimw_; ++i )
109 n *= interval.
n[ i ];
115 void parseLine ( std::vector< T > &v );
120 inline std::ostream &
123 if( interval.
p[ 0 ].empty() || interval.
p[ 1 ].empty() || interval.
n.empty() )
124 return out <<
"Interval {}";
126 out <<
"Interval { p0 = (" << interval.
p[ 0 ][ 0 ];
127 for(
size_t i = 1; i < interval.
p[ 0 ].size(); ++i )
128 out <<
", " << interval.
p[ 0 ][ i ];
129 out <<
"), p1 = (" << interval.
p[ 1 ][ 0 ];
130 for(
size_t i = 1; i < interval.
p[ 1 ].size(); ++i )
131 out <<
", " << interval.
p[ 1 ][ i ];
132 out <<
"), n = (" << interval.
n[ 0 ];
133 for(
size_t i = 1; i < interval.
n.size(); ++i )
134 out <<
", " << interval.
n[ i ];
Include standard header files.
Definition: agrid.hh:58
int getHexa(int block, std::vector< std::vector< unsigned int > > &cubes, int offset=0) const
Definition: interval.cc:120
Definition: interval.hh:19
std::array< std::vector< double >, 2 > p
Definition: interval.hh:45
Interval()
Definition: interval.hh:24
Definition: interval.hh:22
Interval(const Interval &interval, const std::vector< int > &map)
Definition: interval.hh:25
int numIntervals() const
Definition: interval.hh:81
int nofvtx(int block) const
Definition: interval.hh:95
std::vector< int > n
Definition: interval.hh:47
friend std ::ostream & operator<<(std ::ostream &os, const BasicBlock &b)
Definition: basic.hh:101
std::vector< double > h
Definition: interval.hh:46
int nofhexa(int block) const
Definition: interval.hh:104
int getVtx(int block, std::vector< std::vector< double > > &vtx) const
Definition: interval.cc:82
IntervalBlock(std::istream &in)
Definition: interval.cc:16
int dimw() const
Definition: interval.hh:86
void copy(const Interval &interval, const std::vector< int > &map)
Definition: interval.hh:29