unsigned int padding_length;
const unsigned int mf_object_id;
- const dealii::internal::MatrixFreeFunctions::ConstraintTypes
+ const dealii::internal::MatrixFreeFunctions::ConstraintKinds
constraint_mask;
const bool use_coloring;
/**
* Mask deciding where constraints are set on a given cell.
*/
- dealii::internal::MatrixFreeFunctions::ConstraintTypes *constraint_mask;
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds *constraint_mask;
/**
* If true, use graph coloring has been used and we can simply add into
/**
* Mask deciding where constraints are set on a given cell.
*/
- std::vector<dealii::internal::MatrixFreeFunctions::ConstraintTypes *>
+ std::vector<dealii::internal::MatrixFreeFunctions::ConstraintKinds *>
constraint_mask;
/**
/**
* Mask deciding where constraints are set on a given cell.
*/
- std::vector<dealii::internal::MatrixFreeFunctions::ConstraintTypes>
+ std::vector<dealii::internal::MatrixFreeFunctions::ConstraintKinds>
constraint_mask;
/**
std::vector<Point<dim, Number>> q_points_host;
std::vector<Number> JxW_host;
std::vector<Number> inv_jacobian_host;
- std::vector<dealii::internal::MatrixFreeFunctions::ConstraintTypes>
+ std::vector<dealii::internal::MatrixFreeFunctions::ConstraintKinds>
constraint_mask_host;
// Local buffer
std::vector<types::global_dof_index> local_dof_indices;
for (unsigned int i = 0; i < dofs_per_cell; ++i)
lexicographic_dof_indices[i] = local_dof_indices[lexicographic_inv[i]];
- const ArrayView<dealii::internal::MatrixFreeFunctions::ConstraintTypes>
+ const ArrayView<dealii::internal::MatrixFreeFunctions::ConstraintKinds>
cell_id_view(constraint_mask_host[cell_id]);
hanging_nodes.setup_constraints(cell,
alloc_and_copy(
&data->constraint_mask[color],
- ArrayView<const dealii::internal::MatrixFreeFunctions::ConstraintTypes>(
+ ArrayView<const dealii::internal::MatrixFreeFunctions::ConstraintKinds>(
constraint_mask_host.data(), constraint_mask_host.size()),
n_cells);
}
* Masks indicating for each cell and component if the optimized
* hanging-node constraint is applicable and if yes which type.
*/
- std::vector<ConstraintTypes> hanging_node_constraint_masks;
+ std::vector<ConstraintKinds> hanging_node_constraint_masks;
/**
* This variable describes the position of constraints in terms of the
const TriaIterator<DoFCellAccessor<dim, dim, false>> &cell,
std::vector<types::global_dof_index> & dof_indices)
{
- const ArrayView<ConstraintTypes> mask_view(
+ const ArrayView<ConstraintKinds> mask_view(
hanging_node_constraint_masks.data() +
cell_number * cell->get_fe().n_components(),
cell->get_fe().n_components());
is_face,
Number> &fe_eval,
const bool transpose,
- const std::array<MatrixFreeFunctions::ConstraintTypes, Number::size()>
+ const std::array<MatrixFreeFunctions::ConstraintKinds, Number::size()>
& c_mask,
Number *values)
{
typename Number::value_type,
is_face,
Number> &fe_eval,
- const std::array<MatrixFreeFunctions::ConstraintTypes,
+ const std::array<MatrixFreeFunctions::ConstraintKinds,
Number::size()> & constraint_mask,
Number * values)
{
};
const auto not_set = [](const auto a, const auto b) -> bool {
- return (a & b) == MatrixFreeFunctions::ConstraintTypes::unconstrained;
+ return (a & b) == MatrixFreeFunctions::ConstraintKinds::unconstrained;
};
const unsigned int points = given_degree + 1;
{
const auto mask = constraint_mask[v];
- if (mask == MatrixFreeFunctions::ConstraintTypes::unconstrained)
+ if (mask == MatrixFreeFunctions::ConstraintKinds::unconstrained)
continue;
if (dim == 2) // 2D: only faces
{
// direction 0:
- if ((mask & MatrixFreeFunctions::ConstraintTypes::face_y) !=
- MatrixFreeFunctions::ConstraintTypes::unconstrained)
+ if ((mask & MatrixFreeFunctions::ConstraintKinds::face_y) !=
+ MatrixFreeFunctions::ConstraintKinds::unconstrained)
{
const bool is_subface_0 =
- (mask & MatrixFreeFunctions::ConstraintTypes::type_x) !=
- MatrixFreeFunctions::ConstraintTypes::unconstrained;
+ (mask & MatrixFreeFunctions::ConstraintKinds::type_x) !=
+ MatrixFreeFunctions::ConstraintKinds::unconstrained;
if (is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::type_y))
+ MatrixFreeFunctions::ConstraintKinds::type_y))
interpolate_2D<fe_degree, 2, transpose>(
given_degree,
is_subface_0,
}
// direction 1:
- if ((mask & MatrixFreeFunctions::ConstraintTypes::face_x) !=
- MatrixFreeFunctions::ConstraintTypes::unconstrained)
+ if ((mask & MatrixFreeFunctions::ConstraintKinds::face_x) !=
+ MatrixFreeFunctions::ConstraintKinds::unconstrained)
{
const bool is_subface_0 =
- (mask & MatrixFreeFunctions::ConstraintTypes::type_y) !=
- MatrixFreeFunctions::ConstraintTypes::unconstrained;
+ (mask & MatrixFreeFunctions::ConstraintKinds::type_y) !=
+ MatrixFreeFunctions::ConstraintKinds::unconstrained;
if (is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::type_x))
+ MatrixFreeFunctions::ConstraintKinds::type_x))
interpolate_2D<fe_degree, 0, transpose>(
given_degree,
is_subface_0,
const bool is_face_0 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::face_x) &&
- is_set(mask, MatrixFreeFunctions::ConstraintTypes::type_x);
+ MatrixFreeFunctions::ConstraintKinds::face_x) &&
+ is_set(mask, MatrixFreeFunctions::ConstraintKinds::type_x);
const bool is_face_1 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::face_x) &&
- not_set(mask, MatrixFreeFunctions::ConstraintTypes::type_x);
+ MatrixFreeFunctions::ConstraintKinds::face_x) &&
+ not_set(mask, MatrixFreeFunctions::ConstraintKinds::type_x);
const bool is_face_2 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::face_y) &&
- is_set(mask, MatrixFreeFunctions::ConstraintTypes::type_y);
+ MatrixFreeFunctions::ConstraintKinds::face_y) &&
+ is_set(mask, MatrixFreeFunctions::ConstraintKinds::type_y);
const bool is_face_3 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::face_y) &&
- not_set(mask, MatrixFreeFunctions::ConstraintTypes::type_y);
+ MatrixFreeFunctions::ConstraintKinds::face_y) &&
+ not_set(mask, MatrixFreeFunctions::ConstraintKinds::type_y);
const bool is_face_4 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::face_z) &&
- is_set(mask, MatrixFreeFunctions::ConstraintTypes::type_z);
+ MatrixFreeFunctions::ConstraintKinds::face_z) &&
+ is_set(mask, MatrixFreeFunctions::ConstraintKinds::type_z);
const bool is_face_5 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::face_z) &&
- not_set(mask, MatrixFreeFunctions::ConstraintTypes::type_z);
+ MatrixFreeFunctions::ConstraintKinds::face_z) &&
+ not_set(mask, MatrixFreeFunctions::ConstraintKinds::type_z);
const bool is_edge_2 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::edge_yz) &&
+ MatrixFreeFunctions::ConstraintKinds::edge_yz) &&
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::type_y) &&
- is_set(mask, MatrixFreeFunctions::ConstraintTypes::type_z);
+ MatrixFreeFunctions::ConstraintKinds::type_y) &&
+ is_set(mask, MatrixFreeFunctions::ConstraintKinds::type_z);
const bool is_edge_3 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::edge_yz) &&
+ MatrixFreeFunctions::ConstraintKinds::edge_yz) &&
not_set(mask,
- MatrixFreeFunctions::ConstraintTypes::type_y) &&
- is_set(mask, MatrixFreeFunctions::ConstraintTypes::type_z);
+ MatrixFreeFunctions::ConstraintKinds::type_y) &&
+ is_set(mask, MatrixFreeFunctions::ConstraintKinds::type_z);
const bool is_edge_6 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::edge_yz) &&
+ MatrixFreeFunctions::ConstraintKinds::edge_yz) &&
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::type_y) &&
- not_set(mask, MatrixFreeFunctions::ConstraintTypes::type_z);
+ MatrixFreeFunctions::ConstraintKinds::type_y) &&
+ not_set(mask, MatrixFreeFunctions::ConstraintKinds::type_z);
const bool is_edge_7 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::edge_yz) &&
+ MatrixFreeFunctions::ConstraintKinds::edge_yz) &&
not_set(mask,
- MatrixFreeFunctions::ConstraintTypes::type_y) &&
- not_set(mask, MatrixFreeFunctions::ConstraintTypes::type_z);
+ MatrixFreeFunctions::ConstraintKinds::type_y) &&
+ not_set(mask, MatrixFreeFunctions::ConstraintKinds::type_z);
const bool is_edge_0 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::edge_zx) &&
+ MatrixFreeFunctions::ConstraintKinds::edge_zx) &&
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::type_x) &&
- is_set(mask, MatrixFreeFunctions::ConstraintTypes::type_z);
+ MatrixFreeFunctions::ConstraintKinds::type_x) &&
+ is_set(mask, MatrixFreeFunctions::ConstraintKinds::type_z);
const bool is_edge_1 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::edge_zx) &&
+ MatrixFreeFunctions::ConstraintKinds::edge_zx) &&
not_set(mask,
- MatrixFreeFunctions::ConstraintTypes::type_x) &&
- is_set(mask, MatrixFreeFunctions::ConstraintTypes::type_z);
+ MatrixFreeFunctions::ConstraintKinds::type_x) &&
+ is_set(mask, MatrixFreeFunctions::ConstraintKinds::type_z);
const bool is_edge_4 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::edge_zx) &&
+ MatrixFreeFunctions::ConstraintKinds::edge_zx) &&
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::type_x) &&
- not_set(mask, MatrixFreeFunctions::ConstraintTypes::type_z);
+ MatrixFreeFunctions::ConstraintKinds::type_x) &&
+ not_set(mask, MatrixFreeFunctions::ConstraintKinds::type_z);
const bool is_edge_5 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::edge_zx) &&
+ MatrixFreeFunctions::ConstraintKinds::edge_zx) &&
not_set(mask,
- MatrixFreeFunctions::ConstraintTypes::type_x) &&
- not_set(mask, MatrixFreeFunctions::ConstraintTypes::type_z);
+ MatrixFreeFunctions::ConstraintKinds::type_x) &&
+ not_set(mask, MatrixFreeFunctions::ConstraintKinds::type_z);
const bool is_edge_8 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::edge_xy) &&
+ MatrixFreeFunctions::ConstraintKinds::edge_xy) &&
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::type_x) &&
- is_set(mask, MatrixFreeFunctions::ConstraintTypes::type_y);
+ MatrixFreeFunctions::ConstraintKinds::type_x) &&
+ is_set(mask, MatrixFreeFunctions::ConstraintKinds::type_y);
const bool is_edge_9 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::edge_xy) &&
+ MatrixFreeFunctions::ConstraintKinds::edge_xy) &&
not_set(mask,
- MatrixFreeFunctions::ConstraintTypes::type_x) &&
- is_set(mask, MatrixFreeFunctions::ConstraintTypes::type_y);
+ MatrixFreeFunctions::ConstraintKinds::type_x) &&
+ is_set(mask, MatrixFreeFunctions::ConstraintKinds::type_y);
const bool is_edge_10 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::edge_xy) &&
+ MatrixFreeFunctions::ConstraintKinds::edge_xy) &&
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::type_x) &&
- not_set(mask, MatrixFreeFunctions::ConstraintTypes::type_y);
+ MatrixFreeFunctions::ConstraintKinds::type_x) &&
+ not_set(mask, MatrixFreeFunctions::ConstraintKinds::type_y);
const bool is_edge_11 =
is_set(mask,
- MatrixFreeFunctions::ConstraintTypes::edge_xy) &&
+ MatrixFreeFunctions::ConstraintKinds::edge_xy) &&
not_set(mask,
- MatrixFreeFunctions::ConstraintTypes::type_x) &&
- not_set(mask, MatrixFreeFunctions::ConstraintTypes::type_y);
+ MatrixFreeFunctions::ConstraintKinds::type_x) &&
+ not_set(mask, MatrixFreeFunctions::ConstraintKinds::type_y);
// direction 0:
{
const bool is_subface_0 =
- (mask & MatrixFreeFunctions::ConstraintTypes::type_x) !=
- MatrixFreeFunctions::ConstraintTypes::unconstrained;
+ (mask & MatrixFreeFunctions::ConstraintKinds::type_x) !=
+ MatrixFreeFunctions::ConstraintKinds::unconstrained;
// ... faces
if (is_face_2)
// direction 1:
{
const bool is_subface_0 =
- (mask & MatrixFreeFunctions::ConstraintTypes::type_y) !=
- MatrixFreeFunctions::ConstraintTypes::unconstrained;
+ (mask & MatrixFreeFunctions::ConstraintKinds::type_y) !=
+ MatrixFreeFunctions::ConstraintKinds::unconstrained;
// ... faces
if (is_face_0)
// direction 2:
{
const bool is_subface_0 =
- (mask & MatrixFreeFunctions::ConstraintTypes::type_z) !=
- MatrixFreeFunctions::ConstraintTypes::unconstrained;
+ (mask & MatrixFreeFunctions::ConstraintKinds::type_z) !=
+ MatrixFreeFunctions::ConstraintKinds::unconstrained;
// ... faces
if (is_face_0)
const FEEvaluationBaseData<dim, Number, false, VectorizedArrayType>
& fe_eval,
const bool transpose,
- const std::array<MatrixFreeFunctions::ConstraintTypes,
+ const std::array<MatrixFreeFunctions::ConstraintKinds,
VectorizedArrayType::size()> &c_mask,
VectorizedArrayType * values);
const FEEvaluationBaseData<dim, Number, true, VectorizedArrayType>
& fe_eval,
const bool transpose,
- const std::array<MatrixFreeFunctions::ConstraintTypes,
+ const std::array<MatrixFreeFunctions::ConstraintKinds,
VectorizedArrayType::size()> &c_mask,
VectorizedArrayType * values);
};
const FEEvaluationBaseData<dim, Number, false, VectorizedArrayType>
& fe_eval,
const bool transpose,
- const std::array<MatrixFreeFunctions::ConstraintTypes,
+ const std::array<MatrixFreeFunctions::ConstraintKinds,
VectorizedArrayType::size()> &c_mask,
VectorizedArrayType * values)
{
const unsigned int fe_degree,
const FEEvaluationBaseData<dim, Number, true, VectorizedArrayType> &fe_eval,
const bool transpose,
- const std::array<MatrixFreeFunctions::ConstraintTypes,
+ const std::array<MatrixFreeFunctions::ConstraintKinds,
VectorizedArrayType::size()> &c_mask,
VectorizedArrayType * values)
{
->hanging_node_constraint_masks[(this->cell * n_lanes + v) *
n_fe_components +
first_selected_component] !=
- internal::MatrixFreeFunctions::ConstraintTypes::unconstrained)
+ internal::MatrixFreeFunctions::ConstraintKinds::unconstrained)
has_hn_constraints = true;
}
->hanging_node_constraint_masks[(this->cell * n_lanes + v) *
n_fe_components +
first_selected_component] !=
- internal::MatrixFreeFunctions::ConstraintTypes::unconstrained)
+ internal::MatrixFreeFunctions::ConstraintKinds::unconstrained)
has_hn_constraints = true;
Assert(my_index_start[n_components_read].first ==
.second ||
(this->dof_info->hanging_node_constraint_masks.size() > 0 &&
this->dof_info->hanging_node_constraint_masks[cell_dof_index] !=
- internal::MatrixFreeFunctions::ConstraintTypes::unconstrained)))
+ internal::MatrixFreeFunctions::ConstraintKinds::unconstrained)))
{
Assert(this->dof_info->row_starts_plain_indices[cell_index] !=
numbers::invalid_unsigned_int,
->n_vectorization_lanes_filled[this->dof_access_index][this->cell];
constexpr unsigned int n_lanes = VectorizedArrayType::size();
- std::array<internal::MatrixFreeFunctions::ConstraintTypes, n_lanes>
+ std::array<internal::MatrixFreeFunctions::ConstraintKinds, n_lanes>
constraint_mask;
bool hn_available = false;
constraint_mask[v] = mask;
hn_available |=
- (mask != internal::MatrixFreeFunctions::ConstraintTypes::unconstrained);
+ (mask != internal::MatrixFreeFunctions::ConstraintKinds::unconstrained);
}
if (hn_available == false)
for (unsigned int v = n_vectorization_actual; v < n_lanes; ++v)
constraint_mask[v] =
- internal::MatrixFreeFunctions::ConstraintTypes::unconstrained;
+ internal::MatrixFreeFunctions::ConstraintKinds::unconstrained;
internal::FEEvaluationHangingNodesFactory<dim, Number, VectorizedArrayType>::
apply(n_components,
* determine which face is constrained. For example, in 2D, if
* face_x and type are set, then x = 0 is constrained.
*/
- enum class ConstraintTypes : std::uint16_t
+ enum class ConstraintKinds : std::uint16_t
{
unconstrained = 0,
* would be an integer which would in turn trigger a compiler warning when
* we tried to assign it to an object of type UpdateFlags.
*/
- DEAL_II_CUDA_HOST_DEV inline ConstraintTypes
- operator|(const ConstraintTypes f1, const ConstraintTypes f2)
+ DEAL_II_CUDA_HOST_DEV inline ConstraintKinds
+ operator|(const ConstraintKinds f1, const ConstraintKinds f2)
{
- return static_cast<ConstraintTypes>(static_cast<std::uint16_t>(f1) |
+ return static_cast<ConstraintKinds>(static_cast<std::uint16_t>(f1) |
static_cast<std::uint16_t>(f2));
}
* Global operator which sets the bits from the second argument also in the
* first one.
*/
- DEAL_II_CUDA_HOST_DEV inline ConstraintTypes &
- operator|=(ConstraintTypes &f1, const ConstraintTypes f2)
+ DEAL_II_CUDA_HOST_DEV inline ConstraintKinds &
+ operator|=(ConstraintKinds &f1, const ConstraintKinds f2)
{
f1 = f1 | f2;
return f1;
* Global operator which checks inequality.
*/
DEAL_II_CUDA_HOST_DEV inline bool
- operator!=(const ConstraintTypes f1, const ConstraintTypes f2)
+ operator!=(const ConstraintKinds f1, const ConstraintKinds f2)
{
return static_cast<std::uint16_t>(f1) != static_cast<std::uint16_t>(f2);
}
* second.
*/
DEAL_II_CUDA_HOST_DEV inline bool
- operator<(const ConstraintTypes f1, const ConstraintTypes f2)
+ operator<(const ConstraintKinds f1, const ConstraintKinds f2)
{
return static_cast<std::uint16_t>(f1) < static_cast<std::uint16_t>(f2);
}
/**
* Global operator which performs a binary and for the provided arguments.
*/
- DEAL_II_CUDA_HOST_DEV inline ConstraintTypes
- operator&(const ConstraintTypes f1, const ConstraintTypes f2)
+ DEAL_II_CUDA_HOST_DEV inline ConstraintKinds
+ operator&(const ConstraintKinds f1, const ConstraintKinds f2)
{
- return static_cast<ConstraintTypes>(static_cast<std::uint16_t>(f1) &
+ return static_cast<ConstraintKinds>(static_cast<std::uint16_t>(f1) &
static_cast<std::uint16_t>(f2));
}
const std::shared_ptr<const Utilities::MPI::Partitioner> &partitioner,
const std::vector<unsigned int> & lexicographic_mapping,
std::vector<types::global_dof_index> &dof_indices,
- const ArrayView<ConstraintTypes> & mask) const;
+ const ArrayView<ConstraintKinds> & mask) const;
private:
/**
const std::shared_ptr<const Utilities::MPI::Partitioner> &partitioner,
const std::vector<unsigned int> & lexicographic_mapping,
std::vector<types::global_dof_index> &dof_indices,
- const ArrayView<ConstraintTypes> & masks) const
+ const ArrayView<ConstraintKinds> & masks) const
{
bool cell_has_hanging_node_constraints = false;
++c, ++comp)
{
auto &mask = masks[comp];
- mask = ConstraintTypes::unconstrained;
+ mask = ConstraintKinds::unconstrained;
const auto &fe = cell->get_fe().base_element(base_element_index);
{
if (face < 2)
{
- mask |= ConstraintTypes::face_x;
+ mask |= ConstraintKinds::face_x;
if (face == 0)
- mask |= ConstraintTypes::type_x;
+ mask |= ConstraintKinds::type_x;
if (subface == 0)
- mask |= ConstraintTypes::type_y;
+ mask |= ConstraintKinds::type_y;
}
else
{
- mask |= ConstraintTypes::face_y;
+ mask |= ConstraintKinds::face_y;
if (face == 2)
- mask |= ConstraintTypes::type_y;
+ mask |= ConstraintKinds::type_y;
if (subface == 0)
- mask |= ConstraintTypes::type_x;
+ mask |= ConstraintKinds::type_x;
}
// Reorder neighbor_dofs and copy into faceth face
// YZ-plane
if (face < 2)
{
- mask |= ConstraintTypes::face_x;
+ mask |= ConstraintKinds::face_x;
if (face == 0)
- mask |= ConstraintTypes::type_x;
+ mask |= ConstraintKinds::type_x;
if (subface % 2 == 0)
- mask |= ConstraintTypes::type_y;
+ mask |= ConstraintKinds::type_y;
if (subface / 2 == 0)
- mask |= ConstraintTypes::type_z;
+ mask |= ConstraintKinds::type_z;
}
// XZ-plane
else if (face < 4)
{
- mask |= ConstraintTypes::face_y;
+ mask |= ConstraintKinds::face_y;
if (face == 2)
- mask |= ConstraintTypes::type_y;
+ mask |= ConstraintKinds::type_y;
if (subface % 2 == 0)
- mask |= ConstraintTypes::type_z;
+ mask |= ConstraintKinds::type_z;
if (subface / 2 == 0)
- mask |= ConstraintTypes::type_x;
+ mask |= ConstraintKinds::type_x;
}
// XY-plane
else
{
- mask |= ConstraintTypes::face_z;
+ mask |= ConstraintKinds::face_z;
if (face == 4)
- mask |= ConstraintTypes::type_z;
+ mask |= ConstraintKinds::type_z;
if (subface % 2 == 0)
- mask |= ConstraintTypes::type_x;
+ mask |= ConstraintKinds::type_x;
if (subface / 2 == 0)
- mask |= ConstraintTypes::type_y;
+ mask |= ConstraintKinds::type_y;
}
// Offset if upper/right/back face
// For each line on cell, which faces does it belong to, what is
// the edge mask, what is the types of the faces it belong to,
// and what is the type along the edge.
- const ConstraintTypes line_to_edge[12][4] = {
- {ConstraintTypes::face_x | ConstraintTypes::face_z,
- ConstraintTypes::edge_zx,
- ConstraintTypes::type_x | ConstraintTypes::type_z,
- ConstraintTypes::type_y},
- {ConstraintTypes::face_x | ConstraintTypes::face_z,
- ConstraintTypes::edge_zx,
- ConstraintTypes::type_z,
- ConstraintTypes::type_y},
- {ConstraintTypes::face_y | ConstraintTypes::face_z,
- ConstraintTypes::edge_yz,
- ConstraintTypes::type_y | ConstraintTypes::type_z,
- ConstraintTypes::type_x},
- {ConstraintTypes::face_y | ConstraintTypes::face_z,
- ConstraintTypes::edge_yz,
- ConstraintTypes::type_z,
- ConstraintTypes::type_x},
- {ConstraintTypes::face_x | ConstraintTypes::face_z,
- ConstraintTypes::edge_zx,
- ConstraintTypes::type_x,
- ConstraintTypes::type_y},
- {ConstraintTypes::face_x | ConstraintTypes::face_z,
- ConstraintTypes::edge_zx,
- ConstraintTypes::unconstrained,
- ConstraintTypes::type_y},
- {ConstraintTypes::face_y | ConstraintTypes::face_z,
- ConstraintTypes::edge_yz,
- ConstraintTypes::type_y,
- ConstraintTypes::type_x},
- {ConstraintTypes::face_y | ConstraintTypes::face_z,
- ConstraintTypes::edge_yz,
- ConstraintTypes::unconstrained,
- ConstraintTypes::type_x},
- {ConstraintTypes::face_x | ConstraintTypes::face_y,
- ConstraintTypes::edge_xy,
- ConstraintTypes::type_x | ConstraintTypes::type_y,
- ConstraintTypes::type_z},
- {ConstraintTypes::face_x | ConstraintTypes::face_y,
- ConstraintTypes::edge_xy,
- ConstraintTypes::type_y,
- ConstraintTypes::type_z},
- {ConstraintTypes::face_x | ConstraintTypes::face_y,
- ConstraintTypes::edge_xy,
- ConstraintTypes::type_x,
- ConstraintTypes::type_z},
- {ConstraintTypes::face_x | ConstraintTypes::face_y,
- ConstraintTypes::edge_xy,
- ConstraintTypes::unconstrained,
- ConstraintTypes::type_z}};
+ const ConstraintKinds line_to_edge[12][4] = {
+ {ConstraintKinds::face_x | ConstraintKinds::face_z,
+ ConstraintKinds::edge_zx,
+ ConstraintKinds::type_x | ConstraintKinds::type_z,
+ ConstraintKinds::type_y},
+ {ConstraintKinds::face_x | ConstraintKinds::face_z,
+ ConstraintKinds::edge_zx,
+ ConstraintKinds::type_z,
+ ConstraintKinds::type_y},
+ {ConstraintKinds::face_y | ConstraintKinds::face_z,
+ ConstraintKinds::edge_yz,
+ ConstraintKinds::type_y | ConstraintKinds::type_z,
+ ConstraintKinds::type_x},
+ {ConstraintKinds::face_y | ConstraintKinds::face_z,
+ ConstraintKinds::edge_yz,
+ ConstraintKinds::type_z,
+ ConstraintKinds::type_x},
+ {ConstraintKinds::face_x | ConstraintKinds::face_z,
+ ConstraintKinds::edge_zx,
+ ConstraintKinds::type_x,
+ ConstraintKinds::type_y},
+ {ConstraintKinds::face_x | ConstraintKinds::face_z,
+ ConstraintKinds::edge_zx,
+ ConstraintKinds::unconstrained,
+ ConstraintKinds::type_y},
+ {ConstraintKinds::face_y | ConstraintKinds::face_z,
+ ConstraintKinds::edge_yz,
+ ConstraintKinds::type_y,
+ ConstraintKinds::type_x},
+ {ConstraintKinds::face_y | ConstraintKinds::face_z,
+ ConstraintKinds::edge_yz,
+ ConstraintKinds::unconstrained,
+ ConstraintKinds::type_x},
+ {ConstraintKinds::face_x | ConstraintKinds::face_y,
+ ConstraintKinds::edge_xy,
+ ConstraintKinds::type_x | ConstraintKinds::type_y,
+ ConstraintKinds::type_z},
+ {ConstraintKinds::face_x | ConstraintKinds::face_y,
+ ConstraintKinds::edge_xy,
+ ConstraintKinds::type_y,
+ ConstraintKinds::type_z},
+ {ConstraintKinds::face_x | ConstraintKinds::face_y,
+ ConstraintKinds::edge_xy,
+ ConstraintKinds::type_x,
+ ConstraintKinds::type_z},
+ {ConstraintKinds::face_x | ConstraintKinds::face_y,
+ ConstraintKinds::edge_xy,
+ ConstraintKinds::unconstrained,
+ ConstraintKinds::type_z}};
for (unsigned int local_line = 0;
local_line < GeometryInfo<dim>::lines_per_cell;
// If we don't already have a constraint for as part of a
// face
if ((mask & line_to_edge[local_line][0]) ==
- ConstraintTypes::unconstrained)
+ ConstraintKinds::unconstrained)
{
// For each cell which share that edge
const unsigned int line =
}
}
cell_has_hanging_node_constraints |=
- mask != ConstraintTypes::unconstrained;
+ mask != ConstraintKinds::unconstrained;
}
return cell_has_hanging_node_constraints;
}
typename Number>
__device__ inline void
interpolate_boundary_2d(
- const dealii::internal::MatrixFreeFunctions::ConstraintTypes
+ const dealii::internal::MatrixFreeFunctions::ConstraintKinds
constraint_mask,
Number *values)
{
const unsigned int this_type =
(direction == 0) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x :
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y;
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y;
const unsigned int interp_idx = (direction == 0) ? x_idx : y_idx;
const bool constrained_face =
(constraint_mask &
(((direction == 0) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_y :
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_y :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::
unconstrained) |
((direction == 1) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_x :
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_x :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::
unconstrained)));
// Flag is true if for the given direction, the dof is constrained with
const bool constrained_dof =
((direction == 0) &&
((constraint_mask &
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y) ?
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y) ?
(y_idx == 0) :
(y_idx == fe_degree))) ||
((direction == 1) &&
((constraint_mask &
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x) ?
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x) ?
(x_idx == 0) :
(x_idx == fe_degree)));
typename Number>
__device__ inline void
interpolate_boundary_3d(
- const dealii::internal::MatrixFreeFunctions::ConstraintTypes
+ const dealii::internal::MatrixFreeFunctions::ConstraintKinds
constraint_mask,
Number *values)
{
const unsigned int this_type =
(direction == 0) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x :
(direction == 1) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y :
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z;
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z;
const unsigned int face1_type =
(direction == 0) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y :
(direction == 1) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z :
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x;
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x;
const unsigned int face2_type =
(direction == 0) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z :
(direction == 1) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x :
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y;
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y;
// If computing in x-direction, need to match against face_y or
// face_z
const unsigned int face1 =
(direction == 0) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_y :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_y :
(direction == 1) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_z :
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_x;
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_z :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_x;
const unsigned int face2 =
(direction == 0) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_z :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_z :
(direction == 1) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_x :
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_y;
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_x :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_y;
const unsigned int edge =
(direction == 0) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_yz :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_yz :
(direction == 1) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_zx :
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_xy;
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_zx :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_xy;
const unsigned int constrained_face =
constraint_mask & (face1 | face2 | edge);
template <int dim, int fe_degree, bool transpose, typename Number>
__device__ void
resolve_hanging_nodes(
- const dealii::internal::MatrixFreeFunctions::ConstraintTypes
+ const dealii::internal::MatrixFreeFunctions::ConstraintKinds
constraint_mask,
Number *values)
{
{
auto &vec = dof_info[no].hanging_node_constraint_masks;
if (std::all_of(vec.begin(), vec.end(), [](const auto i) {
- return i == internal::MatrixFreeFunctions::ConstraintTypes::
+ return i == internal::MatrixFreeFunctions::ConstraintKinds::
unconstrained;
}))
vec.clear();
// cell has hanging nodes
if (mask != dealii::internal::MatrixFreeFunctions::
- ConstraintTypes::unconstrained)
+ ConstraintKinds::unconstrained)
{
// check if hanging node internpolation matrix has been set
// up
dofs_per_component);
std::array<dealii::internal::MatrixFreeFunctions::
- ConstraintTypes,
+ ConstraintKinds,
VectorizedArrayType::size()>
constraint_mask;
constraint_mask[0] = mask;
// constraints!
std::array<std::vector<Number>, n_lanes> diagonals_local_constrained;
- std::map<dealii::internal::MatrixFreeFunctions::ConstraintTypes,
+ std::map<dealii::internal::MatrixFreeFunctions::ConstraintKinds,
std::vector<std::tuple<unsigned int, unsigned int, Number>>>
locally_relevant_constrains_hn_map;
};
const bool has_constraints =
(hanging_node_constraint_masks.size() != 0 &&
hanging_node_constraint_masks[ib] !=
- ConstraintTypes::unconstrained) ||
+ ConstraintKinds::unconstrained) ||
(row_starts[ib].second != row_starts[ib + n_fe_components].second);
auto do_copy = [&](const unsigned int *begin,
hanging_node_constraint_masks[boundary_cells[i] *
n_components +
comp] !=
- ConstraintTypes::unconstrained;
+ ConstraintKinds::unconstrained;
if (has_hanging_nodes ||
row_starts[boundary_cells[i] * n_components].second !=
new_dof_indices.reserve(dof_indices.size());
new_constraint_indicator.reserve(constraint_indicator.size());
- std::vector<ConstraintTypes> new_hanging_node_constraint_masks;
+ std::vector<ConstraintKinds> new_hanging_node_constraint_masks;
new_hanging_node_constraint_masks.reserve(
new_hanging_node_constraint_masks.size());
hanging_node_constraint_masks[cell_no + comp];
new_hanging_node_constraint_masks.push_back(mask);
has_hanging_nodes |=
- mask != ConstraintTypes::unconstrained;
+ mask != ConstraintKinds::unconstrained;
}
new_dof_indices.insert(
if (hanging_node_constraint_masks.size() > 0)
new_hanging_node_constraint_masks.push_back(
- ConstraintTypes::unconstrained);
+ ConstraintKinds::unconstrained);
}
position_cell += n_vect;
}
is_face,
Number> &fe_eval,
const bool transpose,
- const std::array<dealii::internal::MatrixFreeFunctions::ConstraintTypes,
+ const std::array<dealii::internal::MatrixFreeFunctions::ConstraintKinds,
Number::size()> & c_mask,
Number * values)
{
typename Number::value_type,
is_face,
Number> &fe_eval,
- const std::array<dealii::internal::MatrixFreeFunctions::ConstraintTypes,
+ const std::array<dealii::internal::MatrixFreeFunctions::ConstraintKinds,
Number::size()> & constraint_mask,
Number * values)
{
for (unsigned int v = 0; v < Number::size(); ++v)
{
if (constraint_mask[v] == dealii::internal::MatrixFreeFunctions::
- ConstraintTypes::unconstrained)
+ ConstraintKinds::unconstrained)
continue;
const auto this_type =
(direction == 0) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x :
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y;
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y;
const bool constrained_face =
(constraint_mask[v] &
(((direction == 0) ? dealii::internal::MatrixFreeFunctions::
- ConstraintTypes::face_y :
+ ConstraintKinds::face_y :
dealii::internal::MatrixFreeFunctions::
- ConstraintTypes::unconstrained) |
+ ConstraintKinds::unconstrained) |
((direction == 1) ? dealii::internal::MatrixFreeFunctions::
- ConstraintTypes::face_x :
+ ConstraintKinds::face_x :
dealii::internal::MatrixFreeFunctions::
- ConstraintTypes::unconstrained))) !=
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::
+ ConstraintKinds::unconstrained))) !=
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::
unconstrained;
const bool type = (constraint_mask[v] & this_type) !=
dealii::internal::MatrixFreeFunctions::
- ConstraintTypes::unconstrained;
+ ConstraintKinds::unconstrained;
for (unsigned int x_idx = 0; x_idx < fe_degree + 1; ++x_idx)
for (unsigned int y_idx = 0; y_idx < fe_degree + 1; ++y_idx)
const bool constrained_dof =
((direction == 0) &&
(((constraint_mask[v] &
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::
type_y) != dealii::internal::MatrixFreeFunctions::
- ConstraintTypes::unconstrained) ?
+ ConstraintKinds::unconstrained) ?
(y_idx == 0) :
(y_idx == fe_degree))) ||
((direction == 1) &&
(((constraint_mask[v] &
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::
type_x) != dealii::internal::MatrixFreeFunctions::
- ConstraintTypes::unconstrained) ?
+ ConstraintKinds::unconstrained) ?
(x_idx == 0) :
(x_idx == fe_degree)));
typename Number::value_type,
is_face,
Number> &fe_eval,
- const std::array<dealii::internal::MatrixFreeFunctions::ConstraintTypes,
+ const std::array<dealii::internal::MatrixFreeFunctions::ConstraintKinds,
Number::size()> & constraint_mask,
Number * values)
{
const auto this_type =
(direction == 0) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x :
(direction == 1) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y :
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z;
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z;
const auto face1_type =
(direction == 0) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y :
(direction == 1) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z :
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x;
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x;
const auto face2_type =
(direction == 0) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z :
(direction == 1) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x :
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y;
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y;
// If computing in x-direction, need to match against
- // dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_y or
- // dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_z
+ // dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_y or
+ // dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_z
const auto face1 =
(direction == 0) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_y :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_y :
(direction == 1) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_z :
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_x;
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_z :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_x;
const auto face2 =
(direction == 0) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_z :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_z :
(direction == 1) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_x :
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_y;
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_x :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_y;
const auto edge =
(direction == 0) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_yz :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_yz :
(direction == 1) ?
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_zx :
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_xy;
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_zx :
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_xy;
for (unsigned int v = 0; v < Number::size(); ++v)
{
if (constraint_mask[v] == dealii::internal::MatrixFreeFunctions::
- ConstraintTypes::unconstrained)
+ ConstraintKinds::unconstrained)
continue;
const auto constrained_face =
const bool type = (constraint_mask[v] & this_type) !=
dealii::internal::MatrixFreeFunctions::
- ConstraintTypes::unconstrained;
+ ConstraintKinds::unconstrained;
for (unsigned int x_idx = 0; x_idx < fe_degree + 1; ++x_idx)
for (unsigned int y_idx = 0; y_idx < fe_degree + 1; ++y_idx)
typename Number::value_type t = 0;
const bool on_face1 =
((constraint_mask[v] & face1_type) !=
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::
unconstrained) ?
(face1_idx == 0) :
(face1_idx == fe_degree);
const bool on_face2 =
((constraint_mask[v] & face2_type) !=
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::
unconstrained) ?
(face2_idx == 0) :
(face2_idx == fe_degree);
const bool constrained_dof =
((((constraint_mask[v] & face1) !=
dealii::internal::MatrixFreeFunctions::
- ConstraintTypes::unconstrained) &&
+ ConstraintKinds::unconstrained) &&
on_face1) ||
(((constraint_mask[v] & face2) !=
dealii::internal::MatrixFreeFunctions::
- ConstraintTypes::unconstrained) &&
+ ConstraintKinds::unconstrained) &&
on_face2) ||
(((constraint_mask[v] & edge) !=
dealii::internal::MatrixFreeFunctions::
- ConstraintTypes::unconstrained) &&
+ ConstraintKinds::unconstrained) &&
on_face1 && on_face2));
if ((constrained_face !=
dealii::internal::MatrixFreeFunctions::
- ConstraintTypes::unconstrained) &&
+ ConstraintKinds::unconstrained) &&
constrained_dof)
{
if (type)
template <int dim>
void
test(const unsigned int degree,
- const dealii::internal::MatrixFreeFunctions::ConstraintTypes mask_value)
+ const dealii::internal::MatrixFreeFunctions::ConstraintKinds mask_value)
{
Triangulation<dim> tria;
GridGenerator::subdivided_hyper_cube(tria, 2);
FEEvaluation<dim, -1, 0, 1, double> eval(matrix_free);
eval.reinit(0);
- std::array<dealii::internal::MatrixFreeFunctions::ConstraintTypes,
+ std::array<dealii::internal::MatrixFreeFunctions::ConstraintKinds,
VectorizedArray<double>::size()>
cmask;
std::fill(
cmask.begin(),
cmask.end(),
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::unconstrained);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::unconstrained);
cmask[0] = mask_value;
for (unsigned int b = 0; b < 2; ++b)
{
test<2>(
degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::unconstrained);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::unconstrained);
deallog << std::endl;
test<2>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_x |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_x |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::
type_y); // face 0/0
test<2>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_x |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_x |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::
type_x); // face 0/1
test<2>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_x |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_x |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::
type_y); // face 1/0
test<2>(
degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_x); // face
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_x); // face
// 1/1
deallog << std::endl;
test<2>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_y |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_y |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::
type_x); // face 2/0
test<2>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_y |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_y |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::
type_y); // face 2/1
test<2>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_y |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_y |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::
type_x); // face 3/0
test<2>(
degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_y); // face
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_y); // face
// 3/1
deallog << std::endl;
}
{
// edge 2
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_yz |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_yz |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z);
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_yz |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_yz |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x);
// edge 3
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_yz |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_yz |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z);
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_yz |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_yz |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x);
// edge 6
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_yz |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_yz |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y);
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_yz |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_yz |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x);
// edge 7
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_yz);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_yz);
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_yz |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_yz |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x);
// edge 0
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_zx |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_zx |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z);
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_zx |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_zx |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y);
// edge 1
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_zx |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_zx |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z);
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_zx |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_zx |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y);
// edge 4
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_zx |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_zx |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x);
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_zx |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_zx |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y);
// edge 5
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_zx);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_zx);
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_zx |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_zx |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y);
// edge 8
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_xy |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_xy |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y);
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_xy |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_xy |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z);
// edge 9
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_xy |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_xy |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y);
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_xy |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_xy |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z);
// edge 10
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_xy |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_xy |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x);
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_xy |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_xy |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z);
// edge 11
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_xy);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_xy);
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::edge_xy |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::edge_xy |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z);
// face 0
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_x |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_x);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_x |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_x);
// face 1
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_x);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_x);
// face 2
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_y |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_y);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_y |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_y);
// face 3
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_y);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_y);
// face 4
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_z |
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::type_z);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_z |
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::type_z);
// face 5
test<3>(degree,
- dealii::internal::MatrixFreeFunctions::ConstraintTypes::face_z);
+ dealii::internal::MatrixFreeFunctions::ConstraintKinds::face_z);
}
}