ExaDG
Loading...
Searching...
No Matches
Public Member Functions | List of all members
ExaDG::VariableCoefficients< coefficient_type > Class Template Reference

#include <variable_coefficients.h>

Public Member Functions

template<int dim, typename Number >
void initialize (dealii::MatrixFree< dim, Number > const &matrix_free, unsigned int const quad_index, bool const store_face_data_in, bool const store_cell_based_face_data_in)
 
void set_coefficients (coefficient_type const &constant_coefficient)
 
coefficient_type get_coefficient_cell (unsigned int const cell, unsigned int const q) const
 
void set_coefficient_cell (unsigned int const cell, unsigned int const q, coefficient_type const &coefficient)
 
coefficient_type get_coefficient_face (unsigned int const face, unsigned int const q) const
 
void set_coefficient_face (unsigned int const face, unsigned int const q, coefficient_type const &coefficient)
 
coefficient_type get_coefficient_face_neighbor (unsigned int const face, unsigned int const q) const
 
void set_coefficient_face_neighbor (unsigned int const face, unsigned int const q, coefficient_type const &coefficient)
 
coefficient_type get_coefficient_face_cell_based (unsigned int const cell_based_face, unsigned int const q) const
 
void set_coefficient_face_cell_based (unsigned int const cell_based_face, unsigned int const q, coefficient_type const &coefficient)
 

Detailed Description

template<typename coefficient_type>
class ExaDG::VariableCoefficients< coefficient_type >

This class serves as a manager of several table objects, which hold quadrature-point-level coefficient information for the different matrix-free loop types and access methods.

The class provides data structures for cell loops, separate face loops, and cell-based face loops. It is responsible solely for the storage of coefficients. No generic way of computing the coefficients is provided here. This task is left to the owner of a VariableCoefficients object.

Template Parameters
coefficient_typeType of coefficient stored in the tables. In most cases, this is a dealii::Tensor or a similar object.

Member Function Documentation

◆ get_coefficient_cell()

template<typename coefficient_type >
coefficient_type ExaDG::VariableCoefficients< coefficient_type >::get_coefficient_cell ( unsigned int const cell,
unsigned int const q ) const
inline

Returns the coefficient in the entry (cell , q) in the cell coefficient table.

◆ get_coefficient_face()

template<typename coefficient_type >
coefficient_type ExaDG::VariableCoefficients< coefficient_type >::get_coefficient_face ( unsigned int const face,
unsigned int const q ) const
inline

Returns the coefficient in the entry (face , q) in the face coefficient table.

◆ get_coefficient_face_cell_based()

template<typename coefficient_type >
coefficient_type ExaDG::VariableCoefficients< coefficient_type >::get_coefficient_face_cell_based ( unsigned int const cell_based_face,
unsigned int const q ) const
inline

Returns the coefficient in the entry (cell_based_face , q) in the cell-based face coefficient table.

◆ get_coefficient_face_neighbor()

template<typename coefficient_type >
coefficient_type ExaDG::VariableCoefficients< coefficient_type >::get_coefficient_face_neighbor ( unsigned int const face,
unsigned int const q ) const
inline

Returns the coefficient in the entry (face , q) in the neighbor face coefficient table.

◆ initialize()

template<typename coefficient_type >
template<int dim, typename Number >
void ExaDG::VariableCoefficients< coefficient_type >::initialize ( dealii::MatrixFree< dim, Number > const & matrix_free,
unsigned int const quad_index,
bool const store_face_data_in,
bool const store_cell_based_face_data_in )
inline

Initializes the variable coefficients object based on matrix_free and quad_index according to the desired properties use_faces_in, and use_cell_based_face_loops_in, i.e. resizes the desired tables to the required number of cells, faces, and quadrature points.

Parameters
matrix_freeUnderlying matrix-free description
quad_indexQuadrature index in the matrix-free description to create the coefficient tables according to the quadrature points
store_face_data_inBoolean switch to use a coefficient table for faces (and neighbors)
store_cell_based_face_data_inBoolean switch to use a coefficient table for cell-based face access. This is an additional and optional way of accessing the face coefficients and should be false if store_face_data_in is false.

◆ set_coefficient_cell()

template<typename coefficient_type >
void ExaDG::VariableCoefficients< coefficient_type >::set_coefficient_cell ( unsigned int const cell,
unsigned int const q,
coefficient_type const & coefficient )
inline

Sets the specific entry (cell , q) in the cell coefficient table to coefficient.

◆ set_coefficient_face()

template<typename coefficient_type >
void ExaDG::VariableCoefficients< coefficient_type >::set_coefficient_face ( unsigned int const face,
unsigned int const q,
coefficient_type const & coefficient )
inline

Sets the specific entry (face , q) in the face coefficient table to coefficient.

◆ set_coefficient_face_cell_based()

template<typename coefficient_type >
void ExaDG::VariableCoefficients< coefficient_type >::set_coefficient_face_cell_based ( unsigned int const cell_based_face,
unsigned int const q,
coefficient_type const & coefficient )
inline

Sets the specific entry (cell_based_face , q) in the cell-based face coefficient table to coefficient.

◆ set_coefficient_face_neighbor()

template<typename coefficient_type >
void ExaDG::VariableCoefficients< coefficient_type >::set_coefficient_face_neighbor ( unsigned int const face,
unsigned int const q,
coefficient_type const & coefficient )
inline

Sets the specific entry (face , q) in the neighbor face coefficient table to coefficient.

◆ set_coefficients()

template<typename coefficient_type >
void ExaDG::VariableCoefficients< coefficient_type >::set_coefficients ( coefficient_type const & constant_coefficient)
inline

Sets the coefficient constant_coefficient everywhere.


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