deal.II version GIT relicensing-2169-gec1b43f35b 2024-11-22 07:10:00+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
internal::MatrixFreeFunctions::HangingNodes< dim > Class Template Reference

#include <deal.II/matrix_free/hanging_nodes_internal.h>

Public Member Functions

 HangingNodes (const Triangulation< dim > &triangualtion)
 
std::size_t memory_consumption () const
 
template<typename CellIterator >
bool setup_constraints (const CellIterator &cell, const std::shared_ptr< const Utilities::MPI::Partitioner > &partitioner, const std::vector< std::vector< unsigned int > > &lexicographic_mapping, std::vector< types::global_dof_index > &dof_indices, const ArrayView< ConstraintKinds > &mask) const
 
template<typename CellIterator >
ConstraintKinds compute_refinement_configuration (const CellIterator &cell) const
 
template<typename CellIterator >
void update_dof_indices (const CellIterator &cell, const std::shared_ptr< const Utilities::MPI::Partitioner > &partitioner, const std::vector< std::vector< unsigned int > > &lexicographic_mapping, const std::vector< std::vector< bool > > &component_mask, const ConstraintKinds &refinement_configuration, std::vector< types::global_dof_index > &dof_indices) const
 

Static Public Member Functions

static std::vector< std::vector< bool > > compute_supported_components (const ::hp::FECollection< dim > &fe)
 

Private Member Functions

void setup_line_to_cell (const Triangulation< dim > &triangulation)
 
void rotate_subface_index (int times, unsigned int &subface_index) const
 
void rotate_face (int times, unsigned int n_dofs_1d, std::vector< types::global_dof_index > &dofs) const
 
unsigned int line_dof_idx (int local_line, unsigned int dof, unsigned int n_dofs_1d) const
 
void transpose_face (const unsigned int fe_degree, std::vector< types::global_dof_index > &dofs) const
 
void transpose_subface_index (unsigned int &subface) const
 
void setup_line_to_cell (const Triangulation< 3 > &triangulation)
 

Private Attributes

std::vector< boost::container::small_vector< std::array< unsigned int, 3 >, 6 > > line_to_cells
 
const ::ndarray< unsigned int, 3, 2, 2 > local_lines
 

Detailed Description

template<int dim>
class internal::MatrixFreeFunctions::HangingNodes< dim >

This class creates the mask used in the treatment of hanging nodes in Portable::MatrixFree. The implementation of this class is explained in detail in [162].

Definition at line 265 of file hanging_nodes_internal.h.

Constructor & Destructor Documentation

◆ HangingNodes()

template<int dim>
internal::MatrixFreeFunctions::HangingNodes< dim >::HangingNodes ( const Triangulation< dim > &  triangualtion)
inline

Constructor.

Definition at line 359 of file hanging_nodes_internal.h.

Member Function Documentation

◆ memory_consumption()

template<int dim>
std::size_t internal::MatrixFreeFunctions::HangingNodes< dim >::memory_consumption ( ) const
inline

Return the memory consumption of the allocated memory in this class.

Definition at line 372 of file hanging_nodes_internal.h.

◆ setup_constraints()

template<int dim>
template<typename CellIterator >
bool internal::MatrixFreeFunctions::HangingNodes< dim >::setup_constraints ( const CellIterator &  cell,
const std::shared_ptr< const Utilities::MPI::Partitioner > &  partitioner,
const std::vector< std::vector< unsigned int > > &  lexicographic_mapping,
std::vector< types::global_dof_index > &  dof_indices,
const ArrayView< ConstraintKinds > &  mask 
) const
inline

Compute the value of the constraint mask for a given cell.

Definition at line 865 of file hanging_nodes_internal.h.

◆ compute_supported_components()

template<int dim>
std::vector< std::vector< bool > > internal::MatrixFreeFunctions::HangingNodes< dim >::compute_supported_components ( const ::hp::FECollection< dim > &  fe)
inlinestatic

Compute the supported components of all entries of the given hp::FECollection object.

Definition at line 490 of file hanging_nodes_internal.h.

◆ compute_refinement_configuration()

template<int dim>
template<typename CellIterator >
ConstraintKinds internal::MatrixFreeFunctions::HangingNodes< dim >::compute_refinement_configuration ( const CellIterator &  cell) const
inline

Determine the refinement configuration of the given cell.

Definition at line 525 of file hanging_nodes_internal.h.

◆ update_dof_indices()

template<int dim>
template<typename CellIterator >
void internal::MatrixFreeFunctions::HangingNodes< dim >::update_dof_indices ( const CellIterator &  cell,
const std::shared_ptr< const Utilities::MPI::Partitioner > &  partitioner,
const std::vector< std::vector< unsigned int > > &  lexicographic_mapping,
const std::vector< std::vector< bool > > &  component_mask,
const ConstraintKinds refinement_configuration,
std::vector< types::global_dof_index > &  dof_indices 
) const
inline

Update the DoF indices of a given cell for the given refinement configuration and for the given components.

Definition at line 618 of file hanging_nodes_internal.h.

◆ setup_line_to_cell() [1/2]

template<int dim>
void internal::MatrixFreeFunctions::HangingNodes< dim >::setup_line_to_cell ( const Triangulation< dim > &  triangulation)
inlineprivate

Set up line-to-cell mapping for edge constraints in 3d.

Definition at line 385 of file hanging_nodes_internal.h.

◆ rotate_subface_index()

template<int dim>
void internal::MatrixFreeFunctions::HangingNodes< dim >::rotate_subface_index ( int  times,
unsigned int subface_index 
) const
inlineprivate

Definition at line 910 of file hanging_nodes_internal.h.

◆ rotate_face()

template<int dim>
void internal::MatrixFreeFunctions::HangingNodes< dim >::rotate_face ( int  times,
unsigned int  n_dofs_1d,
std::vector< types::global_dof_index > &  dofs 
) const
inlineprivate

Definition at line 925 of file hanging_nodes_internal.h.

◆ line_dof_idx()

template<int dim>
unsigned int internal::MatrixFreeFunctions::HangingNodes< dim >::line_dof_idx ( int  local_line,
unsigned int  dof,
unsigned int  n_dofs_1d 
) const
inlineprivate

Definition at line 974 of file hanging_nodes_internal.h.

◆ transpose_face()

template<int dim>
void internal::MatrixFreeFunctions::HangingNodes< dim >::transpose_face ( const unsigned int  fe_degree,
std::vector< types::global_dof_index > &  dofs 
) const
inlineprivate

Definition at line 1006 of file hanging_nodes_internal.h.

◆ transpose_subface_index()

template<int dim>
void internal::MatrixFreeFunctions::HangingNodes< dim >::transpose_subface_index ( unsigned int subface) const
private

Definition at line 1042 of file hanging_nodes_internal.h.

◆ setup_line_to_cell() [2/2]

void internal::MatrixFreeFunctions::HangingNodes< 3 >::setup_line_to_cell ( const Triangulation< 3 > &  triangulation)
inlineprivate

Definition at line 395 of file hanging_nodes_internal.h.

Member Data Documentation

◆ line_to_cells

template<int dim>
std::vector< boost::container::small_vector<std::array<unsigned int, 3>, 6> > internal::MatrixFreeFunctions::HangingNodes< dim >::line_to_cells
private

Definition at line 348 of file hanging_nodes_internal.h.

◆ local_lines

template<int dim>
const ::ndarray<unsigned int, 3, 2, 2> internal::MatrixFreeFunctions::HangingNodes< dim >::local_lines
private
Initial value:
= {
{{{{{7, 3}}, {{6, 2}}}},
{{{{5, 1}}, {{4, 0}}}},
{{{{11, 9}}, {{10, 8}}}}}}

Definition at line 350 of file hanging_nodes_internal.h.


The documentation for this class was generated from the following file: