PRISMS-PF Manual
Loading...
Searching...
No Matches
DoFManager< dim, degree > Class Template Reference

Class that manages the deal.II DoFHandlers. More...

#include <dof_manager.h>

Public Member Functions

 DoFManager ()=default
 Constructor.
 
 DoFManager (const DoFManager &)=delete
 Disable copying.
 
 DoFManager (const DoFManager &&)=delete
 
DoFManager operator= (const DoFManager &)=delete
 
DoFManageroperator= (DoFManager &&other)=delete
 
 ~DoFManager ()=default
 Destructor.
 
void reinit (const TriangulationManager< dim > &triangulation_manager, bool init_mg=false)
 Reinitialize the DoFHandlers.
 
void reinit_mapping (const std::vector< FieldAttributes > &field_attributes)
 Reinitialize the DoFHandlers.
 
const std::vector< const dealii::DoFHandler< dim > * > & get_field_dof_handlers () const
 Getter function for all the DoFHandlers on a level.
 
const dealii::DoFHandler< dim > & get_field_dof_handler (Types::Index field_index) const
 Getter function for the DoFHandler (reference).
 
std::vector< const dealii::DoFHandler< dim > * > get_block_dof_handlers (const std::set< unsigned int > &field_indices) const
 Getter the DoFHandlers for a block of fields.
 
const std::array< dealii::DoFHandler< dim >, 2 > & get_dof_handlers () const
 Getter function for the scalar and vector DoFHandlers on a level.
 
const dealii::DoFHandler< dim > & get_dof_handler (const unsigned int &rank) const
 Getter function for a specific scalar or vector DoFHandler.
 
bool has_mg () const
 Has distribute_mg_dofs() been called?
 
unsigned int num_levels () const
 Get the total number of levels in the triangulation.
 
dealii::types::global_dof_index get_total_dofs () const
 Get the total DoFs excluding multigrid DoFs.
 

Private Attributes

std::vector< const dealii::DoFHandler< dim > * > field_dof_handlers
 Pointers to the dof handlers for each field on every mg level. Vector is indexed by field index.
 
std::array< dealii::DoFHandler< dim >, 2 > level_dof_handlers
 A scalar and a vector dof handler.
 

Detailed Description

template<unsigned int dim, unsigned int degree>
class DoFManager< dim, degree >

Class that manages the deal.II DoFHandlers.

Constructor & Destructor Documentation

◆ DoFManager() [1/3]

template<unsigned int dim, unsigned int degree>
DoFManager< dim, degree >::DoFManager ( )
default

Constructor.

◆ DoFManager() [2/3]

template<unsigned int dim, unsigned int degree>
DoFManager< dim, degree >::DoFManager ( const DoFManager< dim, degree > & )
delete

Disable copying.

◆ DoFManager() [3/3]

template<unsigned int dim, unsigned int degree>
DoFManager< dim, degree >::DoFManager ( const DoFManager< dim, degree > && )
delete

◆ ~DoFManager()

template<unsigned int dim, unsigned int degree>
DoFManager< dim, degree >::~DoFManager ( )
default

Destructor.

Member Function Documentation

◆ get_block_dof_handlers()

template<unsigned int dim, unsigned int degree>
std::vector< const dealii::DoFHandler< dim > * > DoFManager< dim, degree >::get_block_dof_handlers ( const std::set< unsigned int > & field_indices) const
nodiscard

Getter the DoFHandlers for a block of fields.

Precondition
reinit_mapping() must have been called.

◆ get_dof_handler()

template<unsigned int dim, unsigned int degree>
const dealii::DoFHandler< dim > & DoFManager< dim, degree >::get_dof_handler ( const unsigned int & rank) const
nodiscard

Getter function for a specific scalar or vector DoFHandler.

◆ get_dof_handlers()

template<unsigned int dim, unsigned int degree>
const std::array< dealii::DoFHandler< dim >, 2 > & DoFManager< dim, degree >::get_dof_handlers ( ) const
nodiscard

Getter function for the scalar and vector DoFHandlers on a level.

◆ get_field_dof_handler()

template<unsigned int dim, unsigned int degree>
const dealii::DoFHandler< dim > & DoFManager< dim, degree >::get_field_dof_handler ( Types::Index field_index) const
nodiscard

Getter function for the DoFHandler (reference).

Precondition
reinit_mapping() must have been called.

◆ get_field_dof_handlers()

template<unsigned int dim, unsigned int degree>
const std::vector< const dealii::DoFHandler< dim > * > & DoFManager< dim, degree >::get_field_dof_handlers ( ) const
nodiscard

Getter function for all the DoFHandlers on a level.

Precondition
reinit_mapping() must have been called.

◆ get_total_dofs()

template<unsigned int dim, unsigned int degree>
dealii::types::global_dof_index DoFManager< dim, degree >::get_total_dofs ( ) const
nodiscard

Get the total DoFs excluding multigrid DoFs.

Precondition
reinit_mapping() must have been called.

◆ has_mg()

template<unsigned int dim, unsigned int degree>
bool DoFManager< dim, degree >::has_mg ( ) const
nodiscard

Has distribute_mg_dofs() been called?

◆ num_levels()

template<unsigned int dim, unsigned int degree>
unsigned int DoFManager< dim, degree >::num_levels ( ) const
nodiscard

Get the total number of levels in the triangulation.

◆ operator=() [1/2]

template<unsigned int dim, unsigned int degree>
DoFManager DoFManager< dim, degree >::operator= ( const DoFManager< dim, degree > & )
delete

◆ operator=() [2/2]

template<unsigned int dim, unsigned int degree>
DoFManager & DoFManager< dim, degree >::operator= ( DoFManager< dim, degree > && other)
delete

◆ reinit()

template<unsigned int dim, unsigned int degree>
PRISMS_PF_BEGIN_NAMESPACE void DoFManager< dim, degree >::reinit ( const TriangulationManager< dim > & triangulation_manager,
bool init_mg = false )

Reinitialize the DoFHandlers.

Parameters
triangulation_managerThe triangulation manager.
init_mgWhether to initialize the multigrid DoFHandlers.
Precondition
init() must have been called with the correct number of levels.

◆ reinit_mapping()

template<unsigned int dim, unsigned int degree>
void DoFManager< dim, degree >::reinit_mapping ( const std::vector< FieldAttributes > & field_attributes)

Reinitialize the DoFHandlers.

Precondition
reinit() must have been called.

Member Data Documentation

◆ field_dof_handlers

template<unsigned int dim, unsigned int degree>
std::vector<const dealii::DoFHandler<dim> *> DoFManager< dim, degree >::field_dof_handlers
private

Pointers to the dof handlers for each field on every mg level. Vector is indexed by field index.

◆ level_dof_handlers

template<unsigned int dim, unsigned int degree>
std::array<dealii::DoFHandler<dim>, 2> DoFManager< dim, degree >::level_dof_handlers
private

A scalar and a vector dof handler.


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