The abstract interface for any numerical model. Most methods have a standard implementation, which can be overwritten if needed. To see how the models are used, refer to the DiFfRG::AbstractAssembler class and the guide.
More...
|
const auto & | get_components () const |
|
|
template<int dim, typename Vector > |
void | initial_condition (const Point< dim > &x, Vector &u_i) const =delete |
| This method implements the initial condition for the FE functions.
|
|
template<int dim, typename NumberType , typename Vector , typename Vector_dot , size_t n_fe_functions> |
void | mass (std::array< NumberType, n_fe_functions > &m_i, const Point< dim > &x, const Vector &u_i, const Vector_dot &dt_u_i) const |
| The mass function \(m_i(\partial_t u_j, u_j, x)\) is implemented in this method.
|
|
template<int dim, typename NumberType , size_t n_fe_functions> |
void | mass (std::array< std::array< NumberType, n_fe_functions >, n_fe_functions > &m_ij, const Point< dim > &x) const |
| If not using a DAE, the mass matrix \(m_{ij}(x)\) is implemented in this method.
|
|
template<int dim, typename NumberType , typename Solutions , size_t n_fe_functions> |
void | flux (std::array< Tensor< 1, dim, NumberType >, n_fe_functions > &F_i, const Point< dim > &x, const Solutions &sol) const |
| The flux function \(F_i(u_j, \partial_x u_j, \partial_x^2 u_j, e_b, v_a, x)\) is implemented by this method.
|
|
template<int dim, typename NumberType , typename Solutions , size_t n_fe_functions> |
void | source (std::array< NumberType, n_fe_functions > &s_i, const Point< dim > &x, const Solutions &sol) const |
| The source function \(s_i(u_j, \partial_x u_j, \partial_x^2 u_j, e_b, v_a, x)\) is implemented by this method.
|
|
template<uint dim> |
std::vector< bool > | differential_components () const |
| A method to find out which components of the mass function are differential when using a DAE.
|
|
|
template<typename Vector > |
void | initial_condition_variables (Vector &v_a) const |
|
template<typename Vector , typename Solution > |
void | dt_variables (Vector &r_a, const Solution &sol) const |
|
|
template<int dim, typename Vector , typename Solutions > |
void | extract (Vector &, const Point< dim > &, const Solutions &) const |
|
|
template<uint dependent, int dim, typename NumberType , typename Vector , size_t n_fe_functions_dep> |
void | ldg_flux (std::array< Tensor< 1, dim, NumberType >, n_fe_functions_dep > &F, const Point< dim > &x, const Vector &u) const |
| The LDG flux function \(F^{LDG}_i(u_j, x),\,i>0\) is implemented by this method.
|
|
template<uint dependent, int dim, typename NumberType , typename Vector , size_t n_fe_functions_dep> |
void | ldg_source (std::array< NumberType, n_fe_functions_dep > &s, const Point< dim > &x, const Vector &u) const |
| The LDG source function \(s^{LDG}_i(u_j, x),\,i>0\) is implemented by this method.
|
|
|
template<int dim, typename NumberType , typename Solutions_s , typename Solutions_n > |
void | face_indicator (std::array< NumberType, 2 > &, const Tensor< 1, dim > &, const Point< dim > &, const Solutions_s &, const Solutions_n &) const |
|
template<int dim, typename NumberType , typename Solution > |
void | cell_indicator (NumberType &, const Point< dim > &, const Solution &) const |
|
|
template<int dim, typename Vector > |
std::array< double, dim > | EoM (const Point< dim > &x, const Vector &u) const |
|
template<int dim, typename Vector > |
Point< dim > | EoM_postprocess (const Point< dim > &EoM, const Vector &) const |
|
template<typename FUN , typename DataOut > |
void | readouts_multiple (FUN &helper, DataOut &) const |
|
template<int dim, typename DataOut , typename Solutions > |
void | readouts (DataOut &output, const Point< dim > &x, const Solutions &sol) const |
|
template<int dim, typename Constraints > |
void | affine_constraints (Constraints &constraints, const std::vector< IndexSet > &component_boundary_dofs, const std::vector< std::vector< Point< dim > > > &component_boundary_points) |
|
template<typename Model, typename Components_>
class DiFfRG::def::AbstractModel< Model, Components_ >
The abstract interface for any numerical model. Most methods have a standard implementation, which can be overwritten if needed. To see how the models are used, refer to the DiFfRG::AbstractAssembler class and the guide.
- Template Parameters
-
Model | The model which implements this interface. (CRTP) |
Components_ | The components of the model, this must be a DiFfRG::ComponentDescriptor. |