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);
declaration of class NiHu::space
space_t::scalar_t scalar_t
coordinate scalar type
defines the number of domain corners
@ num_edges
number of domain edges
@ id
domain id as nested enum
static const xi_t & get_corner(unsigned idx)
return specified corner of domain
static const corners_t & get_corners()
return begin address of domain corners' array
static const std::string & get_name()
return domain name
@ num_corners
number of domain corners
Defines the domain's size (volume)
static const domain_edge_t & get_edge(unsigned idx)
return specified edge of domain
@ dimension
space dimensions
static constexpr unsigned get_id()
return domain id
static const xi_t & get_center()
return domain center
Assigns a textual id the domain.
Derived type
self-returning
unsigned domain_edge_t[2]
type of a domain edge
assigns a coordinate space to the domain
Assigns an id to the domain.
static const edges_t & get_edges()
return edges of the domain
space_t::location_t xi_t
coordinate vector type
domain_edge_t edges_t[num_edges]
type of edges array
defines the number of edges
Polygonal subset of the space. All elements are defined on a domain.
domain_traits::space_type< Derived >::type space_t
the space type as nested typedef
std::array< xi_t, num_corners > corners_t
type of corners array
static constexpr scalar_t get_volume()
return domain volume