1#ifndef DUNE_MULTIDOMAINGRID_MDGRIDTRAITS_HH
2#define DUNE_MULTIDOMAINGRID_MDGRIDTRAITS_HH
15template<
int dim,
int codim>
20template<
int dim,
int codim>
22 static const bool supported = (codim == 0 || codim == dim);
25template<
int dim, std::
size_t subDomainsPerCell, std::
size_t subDomainCount,
template<
int dim_,
int codim>
class supportedCodims =
AllCodims>
41 return subDomainCount;
59 struct Codim :
public std::conditional_t<supportedCodims<dim,codim>::supported,CodimBase<codim>,EmptyCodimBase> {
60 static const bool supported = supportedCodims<dim,codim>::supported;
63 template<
int codim,
typename SizeContainer>
70template<
int dim, std::
size_t subDomainsPerCell,
template<
int dim_,
int codim>
class supportedCodims = AllCodims>
86 return _subDomainCount;
109 container.resize(subDomainCount);
115 struct Codim :
public std::conditional_t<supportedCodims<dim,codim>::supported,CodimBase<codim>,EmptyCodimBase> {
116 static const bool supported = supportedCodims<dim,codim>::supported;
120 : _subDomainCount(subDomainCount)
123 template<
int codim,
typename SizeContainer>
131 const std::size_t _subDomainCount;
136template<
int dim, std::
size_t maxSubDomains,
template<
int dim_,
int codim>
class supportedCodims = AllCodims >
152 return maxSubDomains - 1;
170 struct Codim :
public std::conditional_t<supportedCodims<dim,codim>::supported,CodimBase<codim>,EmptyCodimBase> {
171 static const bool supported = supportedCodims<dim,codim>::supported;
Definition: multidomaingrid.hh:8
Definition: arraybasedset.hh:34
Definition: mdgridtraits.hh:16
static const bool supported
Definition: mdgridtraits.hh:17
Definition: mdgridtraits.hh:21
static const bool supported
Definition: mdgridtraits.hh:22
Definition: mdgridtraits.hh:26
static const std::size_t maxSubDomainsPerCell
Definition: mdgridtraits.hh:32
static const int dimension
Definition: mdgridtraits.hh:30
static const SubDomainIndex empty
Definition: mdgridtraits.hh:29
static constexpr bool maxSubDomainIndexIsStatic()
Definition: mdgridtraits.hh:34
int SubDomainIndex
Definition: mdgridtraits.hh:28
void setupSizeContainer(SizeContainer &) const
Definition: mdgridtraits.hh:64
static constexpr SubDomainIndex maxSubDomainIndex()
Definition: mdgridtraits.hh:39
Definition: mdgridtraits.hh:44
int SizeContainer
Definition: mdgridtraits.hh:45
int MultiIndexContainer
Definition: mdgridtraits.hh:46
int SubDomainSet
Definition: mdgridtraits.hh:47
Definition: mdgridtraits.hh:51
static const std::size_t maxSubDomainsPerEntity
Definition: mdgridtraits.hh:52
std::array< int, subDomainCount > SizeContainer
Definition: mdgridtraits.hh:55
std::array< int, maxSubDomainsPerEntity > MultiIndexContainer
Definition: mdgridtraits.hh:54
Dune::mdgrid::ArrayBasedSet< SubDomainIndex, maxSubDomainsPerEntity > SubDomainSet
Definition: mdgridtraits.hh:53
Definition: mdgridtraits.hh:59
static const bool supported
Definition: mdgridtraits.hh:60
Definition: mdgridtraits.hh:71
static constexpr bool maxSubDomainIndexIsStatic()
Definition: mdgridtraits.hh:77
static const SubDomainIndex empty
Definition: mdgridtraits.hh:74
int SubDomainIndex
Definition: mdgridtraits.hh:73
static const std::size_t maxSubDomainsPerCell
Definition: mdgridtraits.hh:82
SubDomainIndex maxSubDomainIndex() const
Definition: mdgridtraits.hh:84
DynamicSubDomainCountTraits(std::size_t subDomainCount)
Definition: mdgridtraits.hh:119
static const int dimension
Definition: mdgridtraits.hh:75
void setupSizeContainer(SizeContainer &container) const
Definition: mdgridtraits.hh:124
Definition: mdgridtraits.hh:89
static void setupSizeContainer(const SC &, std::size_t)
Definition: mdgridtraits.hh:95
int MultiIndexContainer
Definition: mdgridtraits.hh:91
int SizeContainer
Definition: mdgridtraits.hh:90
int SubDomainSet
Definition: mdgridtraits.hh:92
Definition: mdgridtraits.hh:101
Dune::mdgrid::ArrayBasedSet< SubDomainIndex, maxSubDomainsPerEntity > SubDomainSet
Definition: mdgridtraits.hh:103
static const std::size_t maxSubDomainsPerEntity
Definition: mdgridtraits.hh:102
std::vector< int > SizeContainer
Definition: mdgridtraits.hh:105
std::array< int, maxSubDomainsPerEntity > MultiIndexContainer
Definition: mdgridtraits.hh:104
static void setupSizeContainer(SizeContainer &container, std::size_t subDomainCount)
Definition: mdgridtraits.hh:107
Definition: mdgridtraits.hh:115
static const bool supported
Definition: mdgridtraits.hh:116
Definition: mdgridtraits.hh:137
static const int dimension
Definition: mdgridtraits.hh:141
static const std::size_t maxSubDomainsPerCell
Definition: mdgridtraits.hh:143
static const SubDomainIndex empty
Definition: mdgridtraits.hh:140
static constexpr bool maxSubDomainIndexIsStatic()
Definition: mdgridtraits.hh:145
unsigned int SubDomainIndex
Definition: mdgridtraits.hh:139
void setupSizeContainer(typename Codim< codim >::SizeContainer &) const
Definition: mdgridtraits.hh:175
static constexpr SubDomainIndex maxSubDomainIndex()
Definition: mdgridtraits.hh:150
Definition: mdgridtraits.hh:155
int SubDomainSet
Definition: mdgridtraits.hh:158
int MultiIndexContainer
Definition: mdgridtraits.hh:157
int SizeContainer
Definition: mdgridtraits.hh:156
Definition: mdgridtraits.hh:162
std::array< int, maxSubDomainsPerEntity > MultiIndexContainer
Definition: mdgridtraits.hh:165
static const std::size_t maxSubDomainsPerEntity
Definition: mdgridtraits.hh:163
std::array< int, maxSubDomains > SizeContainer
Definition: mdgridtraits.hh:166
Dune::mdgrid::IntegralTypeSubDomainSet< SubDomainIndex, maxSubDomainsPerEntity > SubDomainSet
Definition: mdgridtraits.hh:164
Definition: mdgridtraits.hh:170
static const bool supported
Definition: mdgridtraits.hh:171
Definition: subdomainset.hh:204