Reference documentation for deal.II version GIT 3a483e2de5 2022-11-28 08:40:02+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\}}\)
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
internal::MatrixFreeFunctions::ConstraintInfo< dim, Number > Class Template Reference

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

Inheritance diagram for internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >:
[legend]

Public Member Functions

void reinit (const DoFHandler< dim > &dof_handler, const unsigned int n_cells, const bool use_fast_hanging_node_algorithm=true)
 
void read_dof_indices (const unsigned int cell_no, const unsigned int mg_level, const TriaIterator< DoFCellAccessor< dim, dim, false >> &cell, const ::AffineConstraints< typename Number::value_type > &constraints, const std::shared_ptr< const Utilities::MPI::Partitioner > &partitioner)
 
void reinit (const unsigned int n_cells)
 
void read_dof_indices (const unsigned int cell_no, const std::vector< types::global_dof_index > &dof_indices, const std::shared_ptr< const Utilities::MPI::Partitioner > &partitioner)
 
void finalize ()
 
template<typename T , typename VectorType >
void read_write_operation (const T &operation, VectorType &global_vector, Number *local_vector, const unsigned int first_cell, const unsigned int n_cells, const unsigned int n_dofs_per_cell, const bool apply_constraints) const
 
void apply_hanging_node_constraints (const unsigned int first_cell, const unsigned int n_lanes_filled, const bool transpose, AlignedVector< Number > &evaluation_data_coarse) const
 
std::size_t memory_consumption () const
 

Public Attributes

std::vector< unsigned int > dof_indices
 
std::vector< std::pair< unsigned short, unsigned short > > constraint_indicator
 
std::vector< std::pair< unsigned int, unsigned int > > row_starts
 
std::vector< unsigned int > plain_dof_indices
 
std::vector< unsigned int > row_starts_plain_indices
 
std::vector< typename Number::value_type > constraint_pool_data
 
std::vector< unsigned int > constraint_pool_row_index
 
std::vector< ShapeInfo< Number > > shape_infos
 
std::vector< compressed_constraint_kindhanging_node_constraint_masks
 
std::vector< unsigned int > active_fe_indices
 

Private Member Functions

const Number::value_type * constraint_pool_begin (const unsigned int row) const
 
const Number::value_type * constraint_pool_end (const unsigned int row) const
 

Private Attributes

ConstraintValues< doubleconstraint_values
 
std::vector< std::vector< unsigned int > > dof_indices_per_cell
 
std::vector< std::vector< unsigned int > > plain_dof_indices_per_cell
 
std::vector< std::vector< std::pair< unsigned short, unsigned short > > > constraint_indicator_per_cell
 
std::unique_ptr< HangingNodes< dim > > hanging_nodes
 
std::vector< std::vector< unsigned int > > lexicographic_numbering
 

Detailed Description

template<int dim, typename Number>
class internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >

A helper class to apply constraints in matrix-free loops in user code. It combines constraint related functionalties from MatrixFree and FEEvaluation.

Definition at line 85 of file constraint_info.h.

Member Function Documentation

◆ reinit() [1/2]

template<int dim, typename Number >
void internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::reinit ( const DoFHandler< dim > &  dof_handler,
const unsigned int  n_cells,
const bool  use_fast_hanging_node_algorithm = true 
)
inline

Version 1: indices are extracted from DoFCellAccessor and constraints are resolved with the help of AffineConstraints.

Definition at line 252 of file constraint_info.h.

◆ read_dof_indices() [1/2]

template<int dim, typename Number >
void internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::read_dof_indices ( const unsigned int  cell_no,
const unsigned int  mg_level,
const TriaIterator< DoFCellAccessor< dim, dim, false >> &  cell,
const ::AffineConstraints< typename Number::value_type > &  constraints,
const std::shared_ptr< const Utilities::MPI::Partitioner > &  partitioner 
)
inline

Definition at line 313 of file constraint_info.h.

◆ reinit() [2/2]

template<int dim, typename Number >
void internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::reinit ( const unsigned int  n_cells)
inline

Version 2: no constraints, indices are user-provided.

Definition at line 302 of file constraint_info.h.

◆ read_dof_indices() [2/2]

template<int dim, typename Number >
void internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::read_dof_indices ( const unsigned int  cell_no,
const std::vector< types::global_dof_index > &  dof_indices,
const std::shared_ptr< const Utilities::MPI::Partitioner > &  partitioner 
)
inline

Definition at line 440 of file constraint_info.h.

◆ finalize()

template<int dim, typename Number >
void internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::finalize
inline

Definition at line 491 of file constraint_info.h.

◆ read_write_operation()

template<int dim, typename Number >
template<typename T , typename VectorType >
void internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::read_write_operation ( const T &  operation,
VectorType &  global_vector,
Number *  local_vector,
const unsigned int  first_cell,
const unsigned int  n_cells,
const unsigned int  n_dofs_per_cell,
const bool  apply_constraints 
) const
inline

Definition at line 575 of file constraint_info.h.

◆ apply_hanging_node_constraints()

template<int dim, typename Number >
void internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::apply_hanging_node_constraints ( const unsigned int  first_cell,
const unsigned int  n_lanes_filled,
const bool  transpose,
AlignedVector< Number > &  evaluation_data_coarse 
) const
inline

Definition at line 658 of file constraint_info.h.

◆ memory_consumption()

template<int dim, typename Number >
std::size_t internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::memory_consumption
inline

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

Definition at line 735 of file constraint_info.h.

◆ constraint_pool_begin()

template<int dim, typename Number >
const Number::value_type * internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::constraint_pool_begin ( const unsigned int  row) const
inlineprivate

Definition at line 709 of file constraint_info.h.

◆ constraint_pool_end()

template<int dim, typename Number >
const Number::value_type * internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::constraint_pool_end ( const unsigned int  row) const
inlineprivate

Definition at line 722 of file constraint_info.h.

Member Data Documentation

◆ constraint_values

template<int dim, typename Number >
ConstraintValues<double> internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::constraint_values
private

Definition at line 146 of file constraint_info.h.

◆ dof_indices_per_cell

template<int dim, typename Number >
std::vector<std::vector<unsigned int> > internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::dof_indices_per_cell
private

Definition at line 147 of file constraint_info.h.

◆ plain_dof_indices_per_cell

template<int dim, typename Number >
std::vector<std::vector<unsigned int> > internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::plain_dof_indices_per_cell
private

Definition at line 148 of file constraint_info.h.

◆ constraint_indicator_per_cell

template<int dim, typename Number >
std::vector<std::vector<std::pair<unsigned short, unsigned short> > > internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::constraint_indicator_per_cell
private

Definition at line 150 of file constraint_info.h.

◆ hanging_nodes

template<int dim, typename Number >
std::unique_ptr<HangingNodes<dim> > internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::hanging_nodes
private

Definition at line 152 of file constraint_info.h.

◆ lexicographic_numbering

template<int dim, typename Number >
std::vector<std::vector<unsigned int> > internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::lexicographic_numbering
private

Definition at line 153 of file constraint_info.h.

◆ dof_indices

template<int dim, typename Number >
std::vector<unsigned int> internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::dof_indices

Definition at line 157 of file constraint_info.h.

◆ constraint_indicator

template<int dim, typename Number >
std::vector<std::pair<unsigned short, unsigned short> > internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::constraint_indicator

Definition at line 159 of file constraint_info.h.

◆ row_starts

template<int dim, typename Number >
std::vector<std::pair<unsigned int, unsigned int> > internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::row_starts

Definition at line 160 of file constraint_info.h.

◆ plain_dof_indices

template<int dim, typename Number >
std::vector<unsigned int> internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::plain_dof_indices

Definition at line 162 of file constraint_info.h.

◆ row_starts_plain_indices

template<int dim, typename Number >
std::vector<unsigned int> internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::row_starts_plain_indices

Definition at line 163 of file constraint_info.h.

◆ constraint_pool_data

template<int dim, typename Number >
std::vector<typename Number::value_type> internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::constraint_pool_data

Definition at line 166 of file constraint_info.h.

◆ constraint_pool_row_index

template<int dim, typename Number >
std::vector<unsigned int> internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::constraint_pool_row_index

Definition at line 167 of file constraint_info.h.

◆ shape_infos

template<int dim, typename Number >
std::vector<ShapeInfo<Number> > internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::shape_infos

Definition at line 169 of file constraint_info.h.

◆ hanging_node_constraint_masks

template<int dim, typename Number >
std::vector<compressed_constraint_kind> internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::hanging_node_constraint_masks

Definition at line 170 of file constraint_info.h.

◆ active_fe_indices

template<int dim, typename Number >
std::vector<unsigned int> internal::MatrixFreeFunctions::ConstraintInfo< dim, Number >::active_fe_indices

Definition at line 171 of file constraint_info.h.


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