Reference documentation for deal.II version GIT relicensing-830-g705d74db9d 2024-06-15 08:50:02+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: LGPL-2.1-or-later
4// Copyright (C) 2017 - 2023 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Part of the source code is dual licensed under Apache-2.0 WITH
9// LLVM-exception OR LGPL-2.1-or-later. Detailed license information
10// governing the source code and code contributions can be found in
11// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II.
12//
13// ------------------------------------------------------------------------
14
15
16#ifndef dealii_matrix_free_evaluation_selector_h
17#define dealii_matrix_free_evaluation_selector_h
18
19#include <deal.II/base/config.h>
20
24
26
27
28
34template <int dim, int fe_degree, int n_q_points_1d, typename Number>
36{
44 static void
45 evaluate(const unsigned int n_components,
46 const EvaluationFlags::EvaluationFlags evaluation_flag,
47 const Number *values_dofs,
49
57 static void
58 integrate(const unsigned int n_components,
59 const EvaluationFlags::EvaluationFlags integration_flag,
60 Number *values_dofs,
62 const bool sum_into_values_array = false);
63};
64
65//----------------------Implementation for SelectEvaluator---------------------
66#ifndef DOXYGEN
67
68template <int dim, int fe_degree, int n_q_points_1d, typename Number>
69inline void
71 const unsigned int n_components,
72 const EvaluationFlags::EvaluationFlags evaluation_flag,
73 const Number *values_dofs,
75{
76 Assert(fe_degree >= 0 && n_q_points_1d > 0, ExcInternalError());
77
79 fe_degree,
80 n_q_points_1d>(n_components, evaluation_flag, values_dofs, eval);
81}
82
83
84
85template <int dim, int fe_degree, int n_q_points_1d, typename Number>
86inline void
88 const unsigned int n_components,
89 const EvaluationFlags::EvaluationFlags integration_flag,
90 Number *values_dofs,
92 const bool sum_into_values_array)
93{
94 Assert(fe_degree >= 0 && n_q_points_1d > 0, ExcInternalError());
95
97 template run<fe_degree, n_q_points_1d>(
98 n_components, integration_flag, values_dofs, eval, sum_into_values_array);
99}
100#endif // DOXYGEN
101
103
104#endif
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:502
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:503
#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)