13#ifndef dealii_fe_block_mask_h
14#define dealii_fe_block_mask_h
84 template <
typename =
void>
86 "Implicit conversions from std::vector<bool> to BlockMask are deprecated!")
108 BlockMask(const
unsigned int n_blocks, const
bool initializer);
135 operator[](const
unsigned int block_index) const;
164 numbers::invalid_unsigned_int) const;
174 numbers::invalid_unsigned_int) const;
225 friend
std::ostream &
254 : block_mask(block_mask)
308 [](
const bool selected) { return selected; });
323 for (
unsigned int c = 0; c <
block_mask.size(); ++c)
349 else if (
mask.block_mask.empty())
356 std::vector<bool> new_mask(
block_mask.size());
357 for (
unsigned int i = 0; i <
block_mask.size(); ++i)
372 else if (
mask.block_mask.empty())
379 std::vector<bool> new_mask(
block_mask.size());
380 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)
constexpr unsigned int invalid_unsigned_int