|
template<typename FaceIterator , typename number > |
void | set_periodicity_constraints (const FaceIterator &face_1, const std_cxx20::type_identity_t< FaceIterator > &face_2, const FullMatrix< double > &transformation, AffineConstraints< number > &affine_constraints, const ComponentMask &component_mask, const unsigned char combined_orientation, const number periodicity_factor, const unsigned int level=numbers::invalid_unsigned_int) |
|
template<int dim, int spacedim> |
std::vector< unsigned char > | get_local_component_association (const FiniteElement< dim, spacedim > &fe, const ComponentMask &component_mask) |
|
template<int dim, int spacedim> |
void | get_component_association (const DoFHandler< dim, spacedim > &dof_handler, const ComponentMask &component_mask, std::vector< unsigned char > &dofs_by_component, const unsigned int mg_level=numbers::invalid_unsigned_int) |
|
template<int dim, int spacedim> |
void | get_block_association (const DoFHandler< dim, spacedim > &dof, std::vector< unsigned char > &dofs_by_block) |
|
template<int dim, int spacedim> |
std::vector< std::vector< bool > > | extract_constant_modes (const DoFHandler< dim, spacedim > &dof_handler, const ComponentMask &component_mask, const unsigned int mg_level) |
|
Tensor< 1, 2 > | cross_product (const Tensor< 1, 2 > &tensor1, const Tensor< 1, 1 > &tensor2) |
|
Tensor< 1, 3 > | cross_product (const Tensor< 1, 3 > &tensor1, const Tensor< 1, 3 > &tensor2) |
|
template<int dim, int spacedim> |
std::vector< std::vector< double > > | extract_rigid_body_modes (const Mapping< dim, spacedim > &mapping, const DoFHandler< dim, spacedim > &dof_handler, const ComponentMask &component_mask, const unsigned int mg_level) |
|
template<int dim, int spacedim> |
void | resolve_components (const FiniteElement< dim, spacedim > &fe, const std::vector< unsigned char > &dofs_by_component, const std::vector< unsigned int > &target_component, const bool only_once, std::vector< types::global_dof_index > &dofs_per_component, unsigned int &component) |
|
template<int dim, int spacedim> |
void | resolve_components (const hp::FECollection< dim, spacedim > &fe_collection, const std::vector< unsigned char > &dofs_by_component, const std::vector< unsigned int > &target_component, const bool only_once, std::vector< types::global_dof_index > &dofs_per_component, unsigned int &component) |
|
template<typename number , int spacedim> |
void | make_hp_hanging_node_constraints (const DoFHandler< 1, spacedim > &, AffineConstraints< number > &) |
|
template<typename number , int spacedim> |
void | make_hanging_node_constraints_nedelec (const ::DoFHandler< 1, spacedim > &, AffineConstraints< number > &, std::integral_constant< int, 1 >) |
|
template<typename number , int spacedim> |
void | make_oldstyle_hanging_node_constraints (const DoFHandler< 1, spacedim > &, AffineConstraints< number > &, std::integral_constant< int, 1 >) |
|
template<int dim_, int spacedim, typename number > |
void | make_oldstyle_hanging_node_constraints (const DoFHandler< dim_, spacedim > &dof_handler, AffineConstraints< number > &constraints, std::integral_constant< int, 2 >) |
|
template<int dim_, int spacedim, typename number > |
void | make_oldstyle_hanging_node_constraints (const DoFHandler< dim_, spacedim > &dof_handler, AffineConstraints< number > &constraints, std::integral_constant< int, 3 >) |
|
template<int dim_, int spacedim, typename number > |
void | make_hanging_node_constraints_nedelec (const DoFHandler< dim_, spacedim > &dof_handler, AffineConstraints< number > &constraints, std::integral_constant< int, 2 >) |
|
template<int dim_, int spacedim, typename number > |
void | make_hanging_node_constraints_nedelec (const DoFHandler< dim_, spacedim > &dof_handler, AffineConstraints< number > &constraints, std::integral_constant< int, 3 >) |
|
template<int dim, int spacedim, typename number > |
void | make_hp_hanging_node_constraints (const DoFHandler< dim, spacedim > &dof_handler, AffineConstraints< number > &constraints) |
|
template<typename FaceIterator , typename number >
This function is internally used in make_periodicity_constraints(). Enter constraints for periodicity into the given AffineConstraints object.
This function works both on 1) an active mesh (level == numbers::invalid_unsigned_int
) and on 2) multigrid levels.
In the case of an active mesh, this function is called when at least one of the two face iterators corresponds to an active object without further children. Furthermore, face_1
is supposed to be active.
The matrix transformation
maps degrees of freedom from one face to another. If the DoFs on the two faces are supposed to match exactly, then the matrix so provided will be the identity matrix. if face 2 is once refined from face 1, then the matrix needs to be the interpolation matrix from a face to this particular child
- Note
- We have to be careful not to accidentally create constraint cycles when adding periodic constraints: For example, as the corresponding testcase bits/periodicity_05 demonstrates, we can occasionally get into trouble if we already have the constraint x1 == x2 and want to insert x2 == x1. We avoid this by skipping such "identity constraints" if the opposite constraint already exists.
Definition at line 3103 of file dof_tools_constraints.cc.