Reference documentation for deal.II version GIT relicensing-487-ge9eb5ab491 2024-04-25 07:20: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
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 > Struct Template Reference

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

Public Member Functions

 EvaluatorTensorProduct ()
 
 EvaluatorTensorProduct (const AlignedVector< Number2 > &shape_values, const AlignedVector< Number2 > &shape_gradients, const AlignedVector< Number2 > &shape_hessians, const unsigned int n_rows=0, const unsigned int n_columns=0)
 
 EvaluatorTensorProduct (const Number2 *shape_values, const Number2 *shape_gradients, const Number2 *shape_hessians, const unsigned int n_rows=0, const unsigned int n_columns=0)
 
template<int direction, bool contract_over_rows, bool add, int stride = 1>
void values (const Number *in, Number *out) const
 
template<int direction, bool contract_over_rows, bool add, int stride = 1>
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
 
template<int direction, bool contract_over_rows, bool add>
void values_one_line (const Number in[], Number out[]) const
 
template<int direction, bool contract_over_rows, bool add>
void gradients_one_line (const Number in[], Number out[]) const
 
template<int direction, bool contract_over_rows, bool add>
void hessians_one_line (const Number in[], Number out[]) const
 
template<int direction, bool contract_over_rows, bool add, bool one_line = false, EvaluatorQuantity quantity = EvaluatorQuantity::value, int stride = 1>
void apply (const Number2 *DEAL_II_RESTRICT shape_data, const Number *in, Number *out) const
 

Public Attributes

const Number2 * shape_values
 
const Number2 * shape_gradients
 
const Number2 * shape_hessians
 
const unsigned int n_rows
 
const unsigned int n_columns
 

Static Public Attributes

static constexpr unsigned int n_rows_of_product
 
static constexpr unsigned int n_columns_of_product
 

Detailed Description

template<EvaluatorVariant variant, int dim, typename Number, typename Number2>
struct internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >

Internal evaluator for shape function using the tensor product form of the basis functions. The same as the other templated class but without making use of template arguments and variable loop bounds instead.

Template Parameters
dimSpace dimension in which this class is applied
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 1473 of file tensor_product_kernels.h.

Constructor & Destructor Documentation

◆ EvaluatorTensorProduct() [1/3]

template<EvaluatorVariant variant, int dim, typename Number , typename Number2 >
internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >::EvaluatorTensorProduct ( )
inline

Empty constructor. Does nothing. Be careful when using 'values' and related methods because they need to be filled with the other constructor

Definition at line 1484 of file tensor_product_kernels.h.

◆ EvaluatorTensorProduct() [2/3]

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

Constructor, taking the data from ShapeInfo

Definition at line 1495 of file tensor_product_kernels.h.

◆ EvaluatorTensorProduct() [3/3]

template<EvaluatorVariant variant, int dim, typename Number , typename Number2 >
internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >::EvaluatorTensorProduct ( const Number2 *  shape_values,
const Number2 *  shape_gradients,
const Number2 *  shape_hessians,
const unsigned int  n_rows = 0,
const unsigned int  n_columns = 0 
)
inline

Constructor, taking the data from ShapeInfo

Definition at line 1537 of file tensor_product_kernels.h.

Member Function Documentation

◆ values()

template<EvaluatorVariant variant, int dim, typename Number , typename Number2 >
template<int direction, bool contract_over_rows, bool add, int stride = 1>
void internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >::values ( const Number *  in,
Number *  out 
) const
inline

Definition at line 1551 of file tensor_product_kernels.h.

◆ gradients()

template<EvaluatorVariant variant, int dim, typename Number , typename Number2 >
template<int direction, bool contract_over_rows, bool add, int stride = 1>
void internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >::gradients ( const Number *  in,
Number *  out 
) const
inline

Definition at line 1560 of file tensor_product_kernels.h.

◆ hessians()

template<EvaluatorVariant variant, int dim, typename Number , typename Number2 >
template<int direction, bool contract_over_rows, bool add>
void internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >::hessians ( const Number *  in,
Number *  out 
) const
inline

Definition at line 1571 of file tensor_product_kernels.h.

◆ values_one_line()

template<EvaluatorVariant variant, int dim, typename Number , typename Number2 >
template<int direction, bool contract_over_rows, bool add>
void internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >::values_one_line ( const Number  in[],
Number  out[] 
) const
inline

Definition at line 1582 of file tensor_product_kernels.h.

◆ gradients_one_line()

template<EvaluatorVariant variant, int dim, typename Number , typename Number2 >
template<int direction, bool contract_over_rows, bool add>
void internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >::gradients_one_line ( const Number  in[],
Number  out[] 
) const
inline

Definition at line 1591 of file tensor_product_kernels.h.

◆ hessians_one_line()

template<EvaluatorVariant variant, int dim, typename Number , typename Number2 >
template<int direction, bool contract_over_rows, bool add>
void internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >::hessians_one_line ( const Number  in[],
Number  out[] 
) const
inline

Definition at line 1603 of file tensor_product_kernels.h.

◆ apply()

template<EvaluatorVariant variant, int dim, typename Number , typename Number2 >
template<int direction, bool contract_over_rows, bool add, bool one_line, EvaluatorQuantity quantity, int stride>
void internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >::apply ( const Number2 *DEAL_II_RESTRICT  shape_data,
const Number *  in,
Number *  out 
) const
inline

Definition at line 1644 of file tensor_product_kernels.h.

Member Data Documentation

◆ n_rows_of_product

template<EvaluatorVariant variant, int dim, typename Number , typename Number2 >
constexpr unsigned int internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >::n_rows_of_product
staticconstexpr
Initial value:
=
static const unsigned int invalid_unsigned_int
Definition types.h:220

Definition at line 1475 of file tensor_product_kernels.h.

◆ n_columns_of_product

template<EvaluatorVariant variant, int dim, typename Number , typename Number2 >
constexpr unsigned int internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >::n_columns_of_product
staticconstexpr
Initial value:

Definition at line 1477 of file tensor_product_kernels.h.

◆ shape_values

template<EvaluatorVariant variant, int dim, typename Number , typename Number2 >
const Number2* internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >::shape_values

Definition at line 1624 of file tensor_product_kernels.h.

◆ shape_gradients

template<EvaluatorVariant variant, int dim, typename Number , typename Number2 >
const Number2* internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >::shape_gradients

Definition at line 1625 of file tensor_product_kernels.h.

◆ shape_hessians

template<EvaluatorVariant variant, int dim, typename Number , typename Number2 >
const Number2* internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >::shape_hessians

Definition at line 1626 of file tensor_product_kernels.h.

◆ n_rows

template<EvaluatorVariant variant, int dim, typename Number , typename Number2 >
const unsigned int internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >::n_rows

Definition at line 1627 of file tensor_product_kernels.h.

◆ n_columns

template<EvaluatorVariant variant, int dim, typename Number , typename Number2 >
const unsigned int internal::EvaluatorTensorProduct< variant, dim, 0, 0, Number, Number2 >::n_columns

Definition at line 1628 of file tensor_product_kernels.h.


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