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 (const std::vector< FieldAttributes > &field_attributes)
 Constructor.
 
 DoFManager (const std::vector< FieldAttributes > &field_attributes, const TriangulationManager< dim > &triangulation_handler)
 Constructor.
 
void init (const TriangulationManager< dim > &triangulation_handler)
 Initialize the DoFHandlers.
 
void reinit (const TriangulationManager< dim > &triangulation_handler)
 Reinitialize the DoFHandlers.
 
std::vector< const dealii::DoFHandler< dim > * > get_field_dof_handlers (const std::set< unsigned int > &field_indices, unsigned int relative_level=0) const
 Getter function for the DoFHandlers (constant reference).
 
const dealii::DoFHandler< dim > & get_field_dof_handler (Types::Index field_index, unsigned int relative_level=0) const
 Getter function for the DoFHandler (reference).
 
const std::vector< std::array< dealii::DoFHandler< dim >, 2 > > & get_dof_handlers () const
 Getter function for the scalar and vector DoFHandlers.
 
const dealii::DoFHandler< dim > & get_dof_handler (const unsigned int &rank, unsigned int relative_level=0) const
 Getter function for a specific scalar or vector DoFHandler.
 
dealii::types::global_dof_index get_total_dofs () const
 Get the total DoFs excluding multigrid DoFs.
 

Private Attributes

std::vector< std::vector< const dealii::DoFHandler< dim > * > > dof_handlers
 Collection of the triangulation DoFs. The number of DoFHandlers should be equal to or less than the number of fields. Technically, there's a small optimization we can use when multiple fields have the same constraints and quadrature rule, allowing us to share the same DoFHandler. An example of this might be grain growth. Outer vector is indexed by field index. Inner vector is indexed by relative mg level.
 
std::vector< std::array< dealii::DoFHandler< dim >, 2 > > level_dof_handlers
 A scalar and a vector dof handler for each level.
 

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/2]

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

Constructor.

◆ DoFManager() [2/2]

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

Constructor.

Member Function Documentation

◆ get_dof_handler()

template<unsigned int dim, unsigned int degree>
const dealii::DoFHandler< dim > & DoFManager< dim, degree >::get_dof_handler ( const unsigned int rank,
unsigned int  relative_level = 0 
) const
inline

Getter function for a specific scalar or vector DoFHandler.

◆ get_dof_handlers()

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

Getter function for the scalar and vector DoFHandlers.

◆ 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,
unsigned int  relative_level = 0 
) const
inline

Getter function for the DoFHandler (reference).

◆ get_field_dof_handlers()

template<unsigned int dim, unsigned int degree>
std::vector< const dealii::DoFHandler< dim > * > DoFManager< dim, degree >::get_field_dof_handlers ( const std::set< unsigned int > &  field_indices,
unsigned int  relative_level = 0 
) const

Getter function for the DoFHandlers (constant reference).

◆ get_total_dofs()

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

Get the total DoFs excluding multigrid DoFs.

◆ init()

template<unsigned int dim, unsigned int degree>
void DoFManager< dim, degree >::init ( const TriangulationManager< dim > &  triangulation_handler)

Initialize the DoFHandlers.

◆ reinit()

template<unsigned int dim, unsigned int degree>
void DoFManager< dim, degree >::reinit ( const TriangulationManager< dim > &  triangulation_handler)

Reinitialize the DoFHandlers.

Member Data Documentation

◆ dof_handlers

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

Collection of the triangulation DoFs. The number of DoFHandlers should be equal to or less than the number of fields. Technically, there's a small optimization we can use when multiple fields have the same constraints and quadrature rule, allowing us to share the same DoFHandler. An example of this might be grain growth. Outer vector is indexed by field index. Inner vector is indexed by relative mg level.

◆ level_dof_handlers

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

A scalar and a vector dof handler for each level.


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