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();
Include standard header files.
Definition: agrid.hh:58
void reset()
Definition: basic.hh:49
Definition: boundarydom.hh:21
void reset(int id, BoundaryParameter parameter, bool defaultData=false)
Definition: boundarydom.hh:58
~DomainData()
Definition: boundarydom.hh:30
DGFBoundaryParameter::type BoundaryParameter
Definition: boundarydom.hh:22
DomainData()
Definition: boundarydom.hh:24
const BoundaryParameter & parameter() const
Definition: boundarydom.hh:52
int id() const
Definition: boundarydom.hh:40
friend std::ostream & operator<<(std ::ostream &os, const DomainData &ddata)
Definition: boundarydom.hh:71
bool hasParameter() const
Definition: boundarydom.hh:46
DomainData(int id, BoundaryParameter parameter, bool defaultData=false)
Definition: boundarydom.hh:33
bool isDefault() const
Definition: boundarydom.hh:66
Definition: boundarydom.hh:88
Domain(std::vector< double > p1, std::vector< double > p2, int id, BoundaryParameter ¶meter)
Definition: boundarydom.hh:95
Domain(const Domain &other)
Definition: boundarydom.hh:123
const int dimensionworld
Definition: boundarydom.hh:90
bool contains(const Vector &x) const
Definition: boundarydom.hh:153
DGFBoundaryParameter::type BoundaryParameter
Definition: boundarydom.hh:92
Domain & operator=(const Domain &other)
Definition: boundarydom.hh:137
friend std::ostream & operator<<(std ::ostream &os, const Domain &domain)
Definition: boundarydom.hh:170
const DomainData & data() const
Definition: boundarydom.hh:164
Domain(std::vector< double > p1, std::vector< double > p2, DomainData &data)
Definition: boundarydom.hh:109
Definition: boundarydom.hh:193
~BoundaryDomBlock()
Definition: boundarydom.hh:214
const DomainData * contains(const std::vector< Vector > &v) const
Definition: boundarydom.hh:264
bool hasParameter() const
Definition: boundarydom.cc:136
const Domain & domain() const
Definition: boundarydom.hh:228
bool next()
Definition: boundarydom.hh:221
void reset()
Definition: boundarydom.hh:249
bool ok()
Definition: boundarydom.hh:256
bool hasDefaultData() const
Definition: boundarydom.hh:234
const DomainData * defaultData() const
Definition: boundarydom.hh:240
BoundaryDomBlock(std::istream &in, int cdimworld)
Definition: boundarydom.cc:16
exception class for IO errors in the DGF parser
Definition: dgfexception.hh:14
Contains types for additional features.
Definition: parser.hh:21
std::string type
type of additional boundary parameters
Definition: parser.hh:23