Reference documentation for deal.II version 9.2.0
\(\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 Types | Public Member Functions | Public Attributes | List of all members
internal::MatrixFreeFunctions::FaceSetup< dim > Struct Template Reference

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

Public Types

enum  FaceCategory : char {
  FaceCategory::locally_active_at_boundary, FaceCategory::locally_active_done_here, FaceCategory::locally_active_done_elsewhere, FaceCategory::ghosted,
  FaceCategory::multigrid_refinement_edge
}
 

Public Member Functions

 FaceSetup ()
 
template<typename MFAddData >
void initialize (const ::Triangulation< dim > &triangulation, const MFAddData &additional_data, std::vector< std::pair< unsigned int, unsigned int >> &cell_levels)
 
void generate_faces (const ::Triangulation< dim > &triangulation, const std::vector< std::pair< unsigned int, unsigned int >> &cell_levels, TaskInfo &task_info)
 
FaceToCellTopology< 1 > create_face (const unsigned int face_no, const typename ::Triangulation< dim >::cell_iterator &cell, const unsigned int number_cell_interior, const typename ::Triangulation< dim >::cell_iterator &neighbor, const unsigned int number_cell_exterior)
 

Public Attributes

bool use_active_cells
 
std::vector< FaceCategoryface_is_owned
 
std::vector< boolat_processor_boundary
 
std::vector< FaceToCellTopology< 1 > > inner_faces
 
std::vector< FaceToCellTopology< 1 > > boundary_faces
 
std::vector< FaceToCellTopology< 1 > > inner_ghost_faces
 
std::vector< FaceToCellTopology< 1 > > refinement_edge_faces
 

Detailed Description

template<int dim>
struct internal::MatrixFreeFunctions::FaceSetup< dim >

A struct that extracts the faces relevant to a given set of cells, including the assignment of which of the two neighboring processors at a subdomain boundary with MPI should do the integration (from both sides). This data structure is used for the setup of the connectivity between faces and cells and for identification of the dof indices to be used for face integrals.

Author
Katharina Kormann, Martin Kronbichler, 2018

Definition at line 74 of file face_setup_internal.h.

Member Enumeration Documentation

◆ FaceCategory

template<int dim>
enum internal::MatrixFreeFunctions::FaceSetup::FaceCategory : char
strong

A type that categorizes faces in the first initialize() function such that we can later get their correct value in generate_faces().

Enumerator
locally_active_at_boundary 
locally_active_done_here 
locally_active_done_elsewhere 
ghosted 
multigrid_refinement_edge 

Definition at line 123 of file face_setup_internal.h.

Constructor & Destructor Documentation

◆ FaceSetup()

template<int dim>
internal::MatrixFreeFunctions::FaceSetup< dim >::FaceSetup ( )

Member Function Documentation

◆ initialize()

template<int dim>
template<typename MFAddData >
void internal::MatrixFreeFunctions::FaceSetup< dim >::initialize ( const ::Triangulation< dim > &  triangulation,
const MFAddData &  additional_data,
std::vector< std::pair< unsigned int, unsigned int >> &  cell_levels 
)

Perform the initial detection of faces before reading the indices on the cells. This does not add the faces yet but only decides on whether some of the faces should be considered for processing locally.

◆ generate_faces()

template<int dim>
void internal::MatrixFreeFunctions::FaceSetup< dim >::generate_faces ( const ::Triangulation< dim > &  triangulation,
const std::vector< std::pair< unsigned int, unsigned int >> &  cell_levels,
TaskInfo task_info 
)

Upon completion of the dof indices, this function extracts the information relevant for FaceToCellTopology and categorizes the faces into interior faces, boundary faces, and ghost faces (not processed locally but adjacent to some of the cells present locally).

◆ create_face()

template<int dim>
FaceToCellTopology<1> internal::MatrixFreeFunctions::FaceSetup< dim >::create_face ( const unsigned int  face_no,
const typename ::Triangulation< dim >::cell_iterator &  cell,
const unsigned int  number_cell_interior,
const typename ::Triangulation< dim >::cell_iterator &  neighbor,
const unsigned int  number_cell_exterior 
)

Fills the information about the cell, the face number, and numbers within the plain array representation in MatrixFree into FaceToCellTopology (without vectorization, which is something applied later).

Member Data Documentation

◆ use_active_cells

template<int dim>
bool internal::MatrixFreeFunctions::FaceSetup< dim >::use_active_cells

Definition at line 117 of file face_setup_internal.h.

◆ face_is_owned

template<int dim>
std::vector<FaceCategory> internal::MatrixFreeFunctions::FaceSetup< dim >::face_is_owned

Definition at line 132 of file face_setup_internal.h.

◆ at_processor_boundary

template<int dim>
std::vector<bool> internal::MatrixFreeFunctions::FaceSetup< dim >::at_processor_boundary

Definition at line 133 of file face_setup_internal.h.

◆ inner_faces

template<int dim>
std::vector<FaceToCellTopology<1> > internal::MatrixFreeFunctions::FaceSetup< dim >::inner_faces

Definition at line 134 of file face_setup_internal.h.

◆ boundary_faces

template<int dim>
std::vector<FaceToCellTopology<1> > internal::MatrixFreeFunctions::FaceSetup< dim >::boundary_faces

Definition at line 135 of file face_setup_internal.h.

◆ inner_ghost_faces

template<int dim>
std::vector<FaceToCellTopology<1> > internal::MatrixFreeFunctions::FaceSetup< dim >::inner_ghost_faces

Definition at line 136 of file face_setup_internal.h.

◆ refinement_edge_faces

template<int dim>
std::vector<FaceToCellTopology<1> > internal::MatrixFreeFunctions::FaceSetup< dim >::refinement_edge_faces

Definition at line 137 of file face_setup_internal.h.


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