deal.II version GIT relicensing-2289-g1e5549a87a 2024-12-21 21:30: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 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 class  FaceCategory : char {
  locally_active_at_boundary , locally_active_done_here , locally_active_done_elsewhere , ghosted ,
  multigrid_refinement_edge
}
 

Public Member Functions

 FaceSetup ()
 
void initialize (const ::Triangulation< dim > &triangulation, const unsigned int mg_level, const bool hold_all_faces_to_owned_cells, const bool build_inner_faces, 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, const bool is_mixed_mesh)
 

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.

Definition at line 69 of file face_setup_internal.h.

Member Enumeration Documentation

◆ FaceCategory

template<int dim>
enum class 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 120 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>
void internal::MatrixFreeFunctions::FaceSetup< dim >::initialize ( const ::Triangulation< dim > &  triangulation,
const unsigned int  mg_level,
const bool  hold_all_faces_to_owned_cells,
const bool  build_inner_faces,
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,
const bool  is_mixed_mesh 
)

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 114 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 129 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 130 of file face_setup_internal.h.

◆ inner_faces

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

Definition at line 131 of file face_setup_internal.h.

◆ boundary_faces

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

Definition at line 132 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 133 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 134 of file face_setup_internal.h.


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