Go to the documentation of this file.
3 #ifndef DUNE_DGF_BOUNDARYDOMBLOCK_HH
4 #define DUNE_DGF_BOUNDARYDOMBLOCK_HH
36 defaultData_( defaultData )
48 return (!parameter_.empty());
62 defaultData_ = defaultData;
73 os <<
"domain data: id = " << ddata.
id();
75 os <<
", parameter = " << ddata.
parameter();
99 data_( id, parameter )
104 "ERROR in " << *
this <<
"!");
118 "ERROR in " << *
this <<
"!");
125 left_( other.left_ ),
126 right_( other.right_ ),
132 "ERROR in " << *
this <<
"!");
142 "ERROR in " << *
this <<
"!");
146 right_= other.right_;
152 template<
class Vector >
158 if( x[ i ] < left_[ i ] || x[ i ] > right_[ i ] )
172 os <<
"domain: " << std::endl;
175 os << domain.left_[ i ] <<
" ";
179 os << domain.right_[ i ] <<
" ";
186 std::vector< double > left_, right_;
207 std::vector< Domain > domains_;
224 return ( counter_ < ndomains_ );
230 return domains_.at( counter_ );
236 return bool( default_ );
258 return ( counter_ <= ndomains_ );
263 template<
class Vector >
266 std::vector< int > index( ndomains_ );
267 for(
int i = 0; i < ndomains_; ++i)
271 for(
size_t i = 0; i < N; ++i )
276 const int n = index.size();
278 for(
int j = n-1; j >= 0; --j )
280 bool inside = domains_[ index[ j ] ].contains( v[ i ] );
282 index.erase( index.begin() + j );
291 if( index.size() > 1 )
292 dwarn <<
"WARNING: ambiguous boundary domain assignment, use first boundary domain in list" << std::endl;
294 return &domains_[ index[ 0 ] ].data();
Definition: boundarydom.hh:20
~BoundaryDomBlock()
Definition: boundarydom.hh:214
const Domain & domain() const
Definition: boundarydom.hh:228
void reset()
Definition: boundarydom.hh:249
friend std::ostream & operator<<(std ::ostream &os, const Domain &domain)
Definition: boundarydom.hh:170
Include standard header files.
Definition: agrid.hh:59
const DomainData * defaultData() const
Definition: boundarydom.hh:240
~DomainData()
Definition: boundarydom.hh:30
Domain & operator=(const Domain &other)
Definition: boundarydom.hh:137
const BoundaryParameter & parameter() const
Definition: boundarydom.hh:52
std::string type
type of additional boundary parameters
Definition: parser.hh:23
DomainData(int id, BoundaryParameter parameter, bool defaultData=false)
Definition: boundarydom.hh:33
Domain(const Domain &other)
Definition: boundarydom.hh:123
const DomainData * contains(const std::vector< Vector > &v) const
Definition: boundarydom.hh:264
int id() const
Definition: boundarydom.hh:40
BoundaryDomBlock(std::istream &in, int cdimworld)
Definition: boundarydom.cc:16
DGFBoundaryParameter::type BoundaryParameter
Definition: boundarydom.hh:22
bool hasParameter() const
Definition: boundarydom.hh:46
Contains types for additional features.
Definition: parser.hh:20
Definition: boundarydom.hh:191
DomainData()
Definition: boundarydom.hh:24
void reset(int id, BoundaryParameter parameter, bool defaultData=false)
Definition: boundarydom.hh:58
Domain(std::vector< double > p1, std::vector< double > p2, int id, BoundaryParameter ¶meter)
Definition: boundarydom.hh:95
DGFBoundaryParameter::type BoundaryParameter
Definition: boundarydom.hh:92
bool hasParameter() const
Definition: boundarydom.cc:136
bool ok()
Definition: boundarydom.hh:256
bool next()
Definition: boundarydom.hh:221
exception class for IO errors in the DGF parser
Definition: dgfexception.hh:12
bool isDefault() const
Definition: boundarydom.hh:66
Domain(std::vector< double > p1, std::vector< double > p2, DomainData &data)
Definition: boundarydom.hh:109
void reset()
Definition: basic.hh:49
const int dimensionworld
Definition: boundarydom.hh:90
friend std::ostream & operator<<(std ::ostream &os, const DomainData &ddata)
Definition: boundarydom.hh:71
Definition: boundarydom.hh:87
bool contains(const Vector &x) const
Definition: boundarydom.hh:153
bool hasDefaultData() const
Definition: boundarydom.hh:234
const DomainData & data() const
Definition: boundarydom.hh:164