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
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/ndarray.h>
#include <deal.II/base/polynomial.h>
#include <deal.II/base/utilities.h>

Go to the source code of this file.

Classes

struct  internal::EvaluatorTensorProduct< variant, dim, n_rows, n_columns, Number, Number2 >
 
struct  internal::EvaluatorTensorProductAnisotropic< variant, dim, n_rows, n_columns, normal_dir, Number, Number2 >
 
struct  internal::EvaluatorTensorProduct< evaluate_general, dim, n_rows, n_columns, Number, Number2 >
 
struct  internal::EvaluatorTensorProduct< evaluate_general, dim, 0, 0, Number, Number2 >
 
struct  internal::EvaluatorTensorProduct< evaluate_symmetric, dim, n_rows, n_columns, Number, Number2 >
 
struct  internal::EvaluatorTensorProduct< evaluate_evenodd, dim, n_rows, n_columns, Number, Number2 >
 
struct  internal::EvaluatorTensorProduct< evaluate_evenodd, dim, 0, 0, Number, Number2 >
 
struct  internal::EvaluatorTensorProduct< evaluate_symmetric_hierarchical, dim, n_rows, n_columns, Number, Number2 >
 
struct  internal::EvaluatorTensorProductAnisotropic< evaluate_raviart_thomas, dim, n_rows, n_columns, normal_dir, Number, Number2 >
 
struct  internal::ProductTypeNoPoint< Number, Number2 >
 
struct  internal::ProductTypeNoPoint< Point< dim, Number >, Number2 >
 

Namespaces

namespace  internal
 

Enumerations

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

Functions

template<int dim, int n_rows_static, int n_columns_static, typename Number , typename Number2 , int direction, bool contract_over_rows, bool add, int type, bool one_line>
void internal::even_odd_apply (const int n_rows_in, const int n_columns_in, const Number2 *DEAL_II_RESTRICT shapes, const Number *in, Number *out)
 
template<int dim, typename Number >
void internal::compute_values_of_array (::ndarray< Number, 2, dim > *shapes, const std::vector< Polynomials::Polynomial< double > > &poly, const Point< dim, Number > &p, const unsigned int derivative=1)
 
template<typename Number >
void internal::compute_values_of_array (::ndarray< Number, 2, 0 > *, const std::vector< Polynomials::Polynomial< double > > &, const Point< 0, Number > &, const unsigned int)
 
template<int dim, int length, typename Number2 , typename Number , int n_values = 1, bool do_renumber = true>
std::array< typename ProductTypeNoPoint< Number, Number2 >::type, 2+n_values > internal::do_interpolate_xy (const Number *values, const std::vector< unsigned int > &renumber, const ::ndarray< Number2, 2, dim > *shapes, const int n_shapes_runtime, int &i)
 
template<int dim, typename Number , typename Number2 , int n_values = 1, bool do_renumber = true>
std::array< typename ProductTypeNoPoint< Number, Number2 >::type, dim+n_values > internal::evaluate_tensor_product_value_and_gradient_shapes (const ::ndarray< Number2, 2, dim > *shapes, const int n_shapes, const Number *values, const std::vector< unsigned int > &renumber={})
 
template<int dim, typename Number , typename Number2 , int n_values = 1>
std::array< typename ProductTypeNoPoint< Number, Number2 >::type, dim+n_values > internal::evaluate_tensor_product_value_and_gradient_linear (const unsigned int n_shapes, const Number *values, const Point< dim, Number2 > &p, const std::vector< unsigned int > &renumber={})
 
template<int dim, typename Number , typename Number2 >
std::pair< typename ProductTypeNoPoint< Number, Number2 >::type, Tensor< 1, dim, typename ProductTypeNoPoint< Number, Number2 >::type > > internal::evaluate_tensor_product_value_and_gradient (const std::vector< Polynomials::Polynomial< double > > &poly, const std::vector< Number > &values, const Point< dim, Number2 > &p, const bool d_linear=false, const std::vector< unsigned int > &renumber={})
 
template<int dim, int length, typename Number2 , typename Number , bool do_renumber = true>
ProductTypeNoPoint< Number, Number2 >::type internal::do_interpolate_xy_value (const Number *values, const std::vector< unsigned int > &renumber, const ::ndarray< Number2, 2, dim > *shapes, const int n_shapes_runtime, int &i)
 
template<int dim, typename Number , typename Number2 , bool do_renumber = true>
ProductTypeNoPoint< Number, Number2 >::type internal::evaluate_tensor_product_value_shapes (const ::ndarray< Number2, 2, dim > *shapes, const int n_shapes, const Number *values, const std::vector< unsigned int > &renumber={})
 
template<int dim, typename Number , typename Number2 >
ProductTypeNoPoint< Number, Number2 >::type internal::evaluate_tensor_product_value_linear (const unsigned int n_shapes, const Number *values, const Point< dim, Number2 > &p, const std::vector< unsigned int > &renumber={})
 
template<int dim, typename Number , typename Number2 >
ProductTypeNoPoint< Number, Number2 >::type internal::evaluate_tensor_product_value (const std::vector< Polynomials::Polynomial< double > > &poly, const std::vector< Number > &values, const Point< dim, Number2 > &p, const bool d_linear=false, const std::vector< unsigned int > &renumber={})
 
template<int derivative_order, typename Number , typename Number2 >
Tensor< 1, 1, typename ProductTypeNoPoint< Number, Number2 >::type > internal::evaluate_tensor_product_higher_derivatives (const std::vector< Polynomials::Polynomial< double > > &poly, const std::vector< Number > &values, const Point< 1, Number2 > &p, const std::vector< unsigned int > &renumber={})
 
template<int derivative_order, typename Number , typename Number2 >
Tensor< 1, derivative_order+1, typename ProductTypeNoPoint< Number, Number2 >::type > internal::evaluate_tensor_product_higher_derivatives (const std::vector< Polynomials::Polynomial< double > > &poly, const std::vector< Number > &values, const Point< 2, Number2 > &p, const std::vector< unsigned int > &renumber={})
 
template<int derivative_order, typename Number , typename Number2 >
Tensor< 1,((derivative_order+1) *(derivative_order+2))/2, typename ProductTypeNoPoint< Number, Number2 >::type > internal::evaluate_tensor_product_higher_derivatives (const std::vector< Polynomials::Polynomial< double > > &poly, const std::vector< Number > &values, const Point< 3, Number2 > &p, const std::vector< unsigned int > &renumber={})
 
template<int dim, typename Number , typename Number2 >
SymmetricTensor< 2, dim, typename ProductTypeNoPoint< Number, Number2 >::type > internal::evaluate_tensor_product_hessian (const std::vector< Polynomials::Polynomial< double > > &poly, const std::vector< Number > &values, const Point< dim, Number2 > &p, const std::vector< unsigned int > &renumber={})
 
template<int dim, int length, typename Number2 , typename Number , bool add, int n_values = 1>
void internal::do_apply_test_functions_xy (Number2 *values, const ::ndarray< Number, 2, dim > *shapes, const std::array< Number2, 2+n_values > &test_grads_value, const int n_shapes_runtime, int &i)
 
template<int dim, typename Number , typename Number2 , bool add, int n_values = 1>
void internal::integrate_add_tensor_product_value_and_gradient_shapes (const ::ndarray< Number, 2, dim > *shapes, const int n_shapes, const Number2 *value, const Tensor< 1, dim, Number2 > &gradient, Number2 *values)
 
template<int dim, typename Number , typename Number2 , bool add, int n_values = 1>
void internal::integrate_add_tensor_product_value_and_gradient_linear (const unsigned int n_shapes, const Number2 *value, const Tensor< 1, dim, Number2 > &gradient, Number2 *values, const Point< dim, Number > &p)
 
template<int dim, typename Number , typename Number2 , int n_values = 1>
void internal::integrate_tensor_product_value_and_gradient (const ::ndarray< Number, 2, dim > *shapes, const unsigned int n_shapes, const Number2 *value, const Tensor< 1, dim, Number2 > &gradient, Number2 *values, const Point< dim, Number > &p, const bool is_linear, const bool do_add)
 
template<int dim, int length, typename Number2 , typename Number , bool add>
void internal::do_apply_test_functions_xy_value (Number2 *values, const ::ndarray< Number, 2, dim > *shapes, const Number2 &test_value, const int n_shapes_runtime, int &i)
 
template<int dim, typename Number , typename Number2 , bool add>
void internal::integrate_add_tensor_product_value_shapes (const ::ndarray< Number, 2, dim > *shapes, const int n_shapes, const Number2 &value, Number2 *values)
 
template<int dim, typename Number , typename Number2 , bool add>
void internal::integrate_add_tensor_product_value_linear (const unsigned int n_shapes, const Number2 &value, Number2 *values, const Point< dim, Number > &p)
 
template<int dim, typename Number , typename Number2 >
void internal::integrate_tensor_product_value (const ::ndarray< Number, 2, dim > *shapes, const unsigned int n_shapes, const Number2 &value, Number2 *values, const Point< dim, Number > &p, const bool is_linear, const bool do_add)
 
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)