deal.II version GIT relicensing-6834-g5b78e6bcdf 2026-10-01 11:20:01+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
evaluation_selector.h
Go to the documentation of this file.
1// -----------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception OR LGPL-2.1-or-later
4// Copyright (C) 2017 - 2025 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Detailed license information governing the source code and contributions
9// can be found in LICENSE.md and CONTRIBUTING.md at the top level directory.
10//
11// -----------------------------------------------------------------------------
12
13
14#ifndef dealii_matrix_free_evaluation_selector_h
15#define dealii_matrix_free_evaluation_selector_h
16
17#include <deal.II/base/config.h>
18
22
23#include <type_traits>
24
25
27
28
29
35template <int dim, int fe_degree, int n_q_points_1d, typename Number>
37{
45 static void
46 evaluate(const unsigned int n_components,
47 const EvaluationFlags::EvaluationFlags evaluation_flag,
48 const Number *values_dofs,
50
58 static void
59 integrate(const unsigned int n_components,
60 const EvaluationFlags::EvaluationFlags integration_flag,
61 Number *values_dofs,
63 const bool sum_into_values_array = false);
64};
65
66//----------------------Implementation for SelectEvaluator---------------------
67#ifndef DOXYGEN
68
69template <int dim, int fe_degree, int n_q_points_1d, typename Number>
70inline void
72 const unsigned int n_components,
73 const EvaluationFlags::EvaluationFlags evaluation_flag,
74 const Number *values_dofs,
76{
77 Assert(fe_degree >= 0 && n_q_points_1d > 0, ExcInternalError());
78
80 fe_degree,
81 n_q_points_1d>(n_components, evaluation_flag, values_dofs, eval);
82}
83
84
85
86template <int dim, int fe_degree, int n_q_points_1d, typename Number>
87inline void
89 const unsigned int n_components,
90 const EvaluationFlags::EvaluationFlags integration_flag,
91 Number *values_dofs,
93 const bool sum_into_values_array)
94{
95 Assert(fe_degree >= 0 && n_q_points_1d > 0, ExcInternalError());
96
98 template run<fe_degree, n_q_points_1d>(
99 n_components, integration_flag, values_dofs, eval, sum_into_values_array);
100}
101#endif // DOXYGEN
102
104
105#endif
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39
#define Assert(cond, exc)
static ::ExceptionBase & ExcInternalError()
EvaluationFlags
The EvaluationFlags enum.
static void integrate(const unsigned int n_components, const EvaluationFlags::EvaluationFlags integration_flag, Number *values_dofs, FEEvaluationData< dim, Number, false > &eval, const bool sum_into_values_array=false)
static void evaluate(const unsigned int n_components, const EvaluationFlags::EvaluationFlags evaluation_flag, const Number *values_dofs, FEEvaluationData< dim, Number, false > &eval)