deal.II version GIT relicensing-2167-g9622207b8f 2024-11-21 12:40:00+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
Classes | Namespaces | Enumerations | Functions
tensor_product_kernels.h File Reference
#include <deal.II/base/config.h>
#include <deal.II/base/aligned_vector.h>
#include <deal.II/base/utilities.h>
#include <deal.II/matrix_free/shape_info.h>

Go to the source code of this file.

Classes

struct  internal::EvaluatorTensorProduct< variant, dim, n_rows, n_columns, Number, Number2 >
 
struct  internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >
 
struct  internal::EvaluatorTensorProductAnisotropic< dim, fe_degree, n_q_points_1d, contract_over_rows, symmetric_evaluate >
 

Namespaces

namespace  internal
 

Enumerations

enum  internal::EvaluatorVariant { internal::evaluate_general , internal::evaluate_symmetric , internal::evaluate_evenodd , internal::evaluate_symmetric_hierarchical }
 
enum class  internal::EvaluatorQuantity { internal::value , internal::gradient , internal::hessian }
 

Functions

template<EvaluatorVariant variant, EvaluatorQuantity quantity, int n_rows, int n_columns, int stride_in, int stride_out, bool transpose_matrix, bool add, typename Number , typename Number2 >
std::enable_if_t<(variant==evaluate_general), void > internal::apply_matrix_vector_product (const Number2 *matrix, const Number *in, Number *out)
 
template<EvaluatorVariant variant, EvaluatorQuantity quantity, bool transpose_matrix, bool add, bool consider_strides, typename Number , typename Number2 , int n_components = 1>
std::enable_if_t<(variant==evaluate_general), void > internal::apply_matrix_vector_product (const Number2 *matrix, const Number *in, Number *out, const int n_rows, const int n_columns, const int stride_in_given, const int stride_out_given)
 
template<EvaluatorVariant variant, EvaluatorQuantity quantity, int n_rows, int n_columns, int stride_in, int stride_out, bool transpose_matrix, bool add, typename Number , typename Number2 >
std::enable_if_t<(variant==evaluate_symmetric), void > internal::apply_matrix_vector_product (const Number2 *matrix, const Number *in, Number *out)
 
template<EvaluatorVariant variant, EvaluatorQuantity quantity, int n_rows_static, int n_columns_static, int stride_in_static, int stride_out_static, bool transpose_matrix, bool add, typename Number , typename Number2 >
std::enable_if_t<(variant==evaluate_evenodd), void > internal::apply_matrix_vector_product (const Number2 *DEAL_II_RESTRICT matrix, const Number *in, Number *out, int n_rows_runtime=0, int n_columns_runtime=0, int stride_in_runtime=0, int stride_out_runtime=0)
 
template<EvaluatorVariant variant, EvaluatorQuantity quantity, bool transpose_matrix, bool add, bool consider_strides, typename Number , typename Number2 >
std::enable_if_t<(variant==evaluate_evenodd), void > internal::apply_matrix_vector_product (const Number2 *matrix, const Number *in, Number *out, int n_rows, int n_columns, int stride_in, int stride_out)
 
template<EvaluatorVariant variant, EvaluatorQuantity quantity, int n_rows, int n_columns, int stride_in, int stride_out, bool transpose_matrix, bool add, typename Number , typename Number2 >
std::enable_if_t<(variant==evaluate_symmetric_hierarchical), void > internal::apply_matrix_vector_product (const Number2 *matrix, const Number *in, Number *out)
 
template<int n_rows_template, int stride_template, bool contract_onto_face, bool add, int max_derivative, typename Number , typename Number2 >
std::enable_if_t< contract_onto_face, void > internal::interpolate_to_face (const Number2 *shape_values, const std::array< int, 2 > &n_blocks, const std::array< int, 2 > &steps, const Number *input, Number *DEAL_II_RESTRICT output, const int n_rows_runtime=0, const int stride_runtime=1)
 
constexpr bool internal::use_collocation_evaluation (const unsigned int fe_degree, const unsigned int n_q_points_1d)
 
template<int n_rows_template, int stride_template, bool contract_onto_face, bool add, int max_derivative, typename Number , typename Number2 >
std::enable_if_t<!contract_onto_face, void > internal::interpolate_to_face (const Number2 *shape_values, const std::array< int, 2 > &n_blocks, const std::array< int, 2 > &steps, const Number *input, Number *DEAL_II_RESTRICT output, const int n_rows_runtime=0, const int stride_runtime=1)
 
template<int dim, int n_points_1d_template, typename Number >
void internal::weight_fe_q_dofs_by_entity (const Number *weights, const unsigned int n_components, const int n_points_1d_non_template, Number *data)
 
template<int dim, int n_points_1d_template, typename Number >
void internal::weight_fe_q_dofs_by_entity_shifted (const Number *weights, const unsigned int n_components, const int n_points_1d_non_template, Number *data)
 
template<int dim, int n_points_1d_template, typename Number >
bool internal::compute_weights_fe_q_dofs_by_entity (const Number *data, const unsigned int n_components, const int n_points_1d_non_template, Number *weights)
 
template<int dim, int n_points_1d_template, typename Number >
bool internal::compute_weights_fe_q_dofs_by_entity_shifted (const Number *data, const unsigned int n_components, const int n_points_1d_non_template, Number *weights)