Go to the documentation of this file.
23 #ifndef DOMAIN_HPP_INCLUDED
24 #define DOMAIN_HPP_INCLUDED
34 namespace domain_traits
37 template <
class Derived>
41 template <
class Derived>
45 template <
class Derived>
49 template <
class Derived>
53 template <
class Derived>
62 template <
class Derived>
65 static std::string
const value;
70 template <
class Derived>
91 typedef typename space_t::location_t
xi_t;
102 return Derived::get_center_impl();
108 return Derived::get_corners_impl();
120 return Derived::get_edges_impl();
147 static xi_t constrain_inside(
xi_t const &xi)
149 return Derived::constrain_inside_impl(xi);
@ dimension
space dimensions
declaration of class NiHu::space
static const edges_t & get_edges()
return edges of the domain
static const std::string & get_name()
return domain name
defines the number of edges
static const xi_t & get_center()
return domain center
domain_traits::space_type< Derived >::type space_t
the space type as nested typedef
static constexpr unsigned get_id()
return domain id
@ num_corners
number of domain corners
space_t::scalar_t scalar_t
coordinate scalar type
Polygonal subset of the space. All elements are defined on a domain.
@ num_edges
number of domain edges
Derived type
self-returning
static const xi_t & get_corner(unsigned idx)
return specified corner of domain
Assigns an id to the domain.
defines the number of domain corners
Assigns a textual id the domain.
static constexpr scalar_t get_volume()
return domain volume
Defines the domain's size (volume)
assigns a coordinate space to the domain
@ id
domain id as nested enum
space_t::location_t xi_t
coordinate vector type
domain_edge_t edges_t[num_edges]
type of edges array
std::array< xi_t, num_corners > corners_t
type of corners array
unsigned domain_edge_t[2]
type of a domain edge
static const corners_t & get_corners()
return begin address of domain corners' array
static const domain_edge_t & get_edge(unsigned idx)
return specified edge of domain