Reference documentation for deal.II version 9.5.0
\(\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
Public Member Functions | Static Public Attributes | Private Attributes | List of all members
internal::EvaluatorTensorProduct< evaluate_symmetric, dim, n_rows, n_columns, Number, Number2 > Struct Template Reference

#include <deal.II/matrix_free/tensor_product_kernels.h>

Public Member Functions

 EvaluatorTensorProduct (const AlignedVector< Number2 > &shape_values, const AlignedVector< Number2 > &shape_gradients, const AlignedVector< Number2 > &shape_hessians, const unsigned int dummy1=0, const unsigned int dummy2=0)
 
template<int direction, bool contract_over_rows, bool add>
void values (const Number in[], Number out[]) const
 
template<int direction, bool contract_over_rows, bool add>
void gradients (const Number in[], Number out[]) const
 
template<int direction, bool contract_over_rows, bool add>
void hessians (const Number in[], Number out[]) const
 

Static Public Attributes

static constexpr unsigned int n_rows_of_product
 
static constexpr unsigned int n_columns_of_product
 

Private Attributes

const Number2 * shape_values
 
const Number2 * shape_gradients
 
const Number2 * shape_hessians
 

Detailed Description

template<int dim, int n_rows, int n_columns, typename Number, typename Number2>
struct internal::EvaluatorTensorProduct< evaluate_symmetric, dim, n_rows, n_columns, Number, Number2 >

Internal evaluator for 1d-3d shape function using the tensor product form of the basis functions. This class specializes the general application of tensor-product based elements for "symmetric" finite elements, i.e., when the shape functions are symmetric about 0.5 and the quadrature points are, too.

Template Parameters
dimSpace dimension in which this class is applied
n_rowsNumber of rows in the transformation matrix, which corresponds to the number of 1d shape functions in the usual tensor contraction setting
n_columnsNumber of columns in the transformation matrix, which corresponds to the number of 1d shape functions in the usual tensor contraction setting
NumberAbstract number type for input and output arrays
Number2Abstract number type for coefficient arrays (defaults to same type as the input/output arrays); must implement operator* with Number and produce Number as an output to be a valid type

Definition at line 1041 of file tensor_product_kernels.h.

Constructor & Destructor Documentation

◆ EvaluatorTensorProduct()

template<int dim, int n_rows, int n_columns, typename Number , typename Number2 >
internal::EvaluatorTensorProduct< evaluate_symmetric, dim, n_rows, n_columns, Number, Number2 >::EvaluatorTensorProduct ( const AlignedVector< Number2 > &  shape_values,
const AlignedVector< Number2 > &  shape_gradients,
const AlignedVector< Number2 > &  shape_hessians,
const unsigned int  dummy1 = 0,
const unsigned int  dummy2 = 0 
)
inline

Constructor, taking the data from ShapeInfo

Definition at line 1056 of file tensor_product_kernels.h.

Member Function Documentation

◆ values()

template<int dim, int n_rows, int n_columns, typename Number , typename Number2 >
template<int direction, bool contract_over_rows, bool add>
void internal::EvaluatorTensorProduct< evaluate_symmetric, dim, n_rows, n_columns, Number, Number2 >::values ( const Number  in[],
Number  out[] 
) const
inline

Definition at line 1128 of file tensor_product_kernels.h.

◆ gradients()

template<int dim, int n_rows, int n_columns, typename Number , typename Number2 >
template<int direction, bool contract_over_rows, bool add>
void internal::EvaluatorTensorProduct< evaluate_symmetric, dim, n_rows, n_columns, Number, Number2 >::gradients ( const Number  in[],
Number  out[] 
) const
inline

Definition at line 1316 of file tensor_product_kernels.h.

◆ hessians()

template<int dim, int n_rows, int n_columns, typename Number , typename Number2 >
template<int direction, bool contract_over_rows, bool add>
void internal::EvaluatorTensorProduct< evaluate_symmetric, dim, n_rows, n_columns, Number, Number2 >::hessians ( const Number  in[],
Number  out[] 
) const
inline

Definition at line 1452 of file tensor_product_kernels.h.

Member Data Documentation

◆ n_rows_of_product

template<int dim, int n_rows, int n_columns, typename Number , typename Number2 >
constexpr unsigned int internal::EvaluatorTensorProduct< evaluate_symmetric, dim, n_rows, n_columns, Number, Number2 >::n_rows_of_product
staticconstexpr
Initial value:
=
Utilities::pow(n_rows, dim)
constexpr T pow(const T base, const int iexp)
Definition utilities.h:447

Definition at line 1048 of file tensor_product_kernels.h.

◆ n_columns_of_product

template<int dim, int n_rows, int n_columns, typename Number , typename Number2 >
constexpr unsigned int internal::EvaluatorTensorProduct< evaluate_symmetric, dim, n_rows, n_columns, Number, Number2 >::n_columns_of_product
staticconstexpr
Initial value:
=
Utilities::pow(n_columns, dim)

Definition at line 1050 of file tensor_product_kernels.h.

◆ shape_values

template<int dim, int n_rows, int n_columns, typename Number , typename Number2 >
const Number2* internal::EvaluatorTensorProduct< evaluate_symmetric, dim, n_rows, n_columns, Number, Number2 >::shape_values
private

Definition at line 1091 of file tensor_product_kernels.h.

◆ shape_gradients

template<int dim, int n_rows, int n_columns, typename Number , typename Number2 >
const Number2* internal::EvaluatorTensorProduct< evaluate_symmetric, dim, n_rows, n_columns, Number, Number2 >::shape_gradients
private

Definition at line 1092 of file tensor_product_kernels.h.

◆ shape_hessians

template<int dim, int n_rows, int n_columns, typename Number , typename Number2 >
const Number2* internal::EvaluatorTensorProduct< evaluate_symmetric, dim, n_rows, n_columns, Number, Number2 >::shape_hessians
private

Definition at line 1093 of file tensor_product_kernels.h.


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