15#ifndef dealii_fe_block_mask_h
16#define dealii_fe_block_mask_h
86 template <
typename =
void>
88 "Implicit conversions from std::vector<bool> to BlockMask are deprecated!")
110 BlockMask(const
unsigned int n_blocks, const
bool initializer);
137 operator[](const
unsigned int block_index) const;
166 numbers::invalid_unsigned_int) const;
176 numbers::invalid_unsigned_int) const;
227 friend
std::ostream &
256 : block_mask(block_mask)
310 [](
const bool selected) { return selected; });
325 for (
unsigned int c = 0; c <
block_mask.size(); ++c)
351 else if (
mask.block_mask.empty())
358 std::vector<bool> new_mask(
block_mask.size());
359 for (
unsigned int i = 0; i <
block_mask.size(); ++i)
374 else if (
mask.block_mask.empty())
381 std::vector<bool> new_mask(
block_mask.size());
382 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