15#ifndef dealii_fe_block_mask_h
16#define dealii_fe_block_mask_h
85 template <
typename =
void>
87 "Implicit conversions from std::vector<bool> to BlockMask are deprecated!")
109 BlockMask(const
unsigned int n_blocks, const
bool initializer);
136 operator[](const
unsigned int block_index) const;
165 numbers::invalid_unsigned_int) const;
175 numbers::invalid_unsigned_int) const;
226 friend
std::ostream &
255 : block_mask(block_mask)
309 [](
const bool selected) { return selected; });
324 for (
unsigned int c = 0; c <
block_mask.size(); ++c)
350 else if (
mask.block_mask.empty())
357 std::vector<bool> new_mask(
block_mask.size());
358 for (
unsigned int i = 0; i <
block_mask.size(); ++i)
373 else if (
mask.block_mask.empty())
380 std::vector<bool> new_mask(
block_mask.size());
381 for (
unsigned int i = 0; i <
block_mask.size(); ++i)
bool operator==(const BlockMask &mask) const
BlockMask operator&(const BlockMask &mask) const
BlockMask operator|(const BlockMask &mask) const
std::size_t memory_consumption() const
bool represents_the_all_selected_mask() const
unsigned int size() const
unsigned int n_selected_blocks(const unsigned int overall_number_of_blocks=numbers::invalid_unsigned_int) const
unsigned int first_selected_block(const unsigned int overall_number_of_blocks=numbers::invalid_unsigned_int) const
bool operator[](const unsigned int block_index) const
bool operator!=(const BlockMask &mask) const
std::vector< bool > block_mask
bool represents_n_blocks(const unsigned int n) const
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_DEPRECATED_WITH_COMMENT(comment)
#define DEAL_II_NAMESPACE_CLOSE
#define Assert(cond, exc)
#define AssertDimension(dim1, dim2)
#define AssertIndexRange(index, range)
static ::ExceptionBase & ExcMessage(std::string arg1)
std::enable_if_t< IsBlockVector< VectorType >::value, unsigned int > n_blocks(const VectorType &vector)
static const unsigned int invalid_unsigned_int