deal.II version GIT relicensing-2171-g98af52917d 2024-11-23 14: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 | Functions
tensor_product_point_kernels.h File Reference
#include <deal.II/base/config.h>
#include <deal.II/base/ndarray.h>
#include <deal.II/base/polynomial.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::ProductTypeNoPoint< Number, Number2 >
 
struct  internal::ProductTypeNoPoint< Point< dim, Number >, Number2 >
 

Namespaces

namespace  internal
 

Functions

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, typename Number >
void internal::compute_values_of_array_in_pairs (::ndarray< Number, 2, dim > *shapes, const std::vector< Polynomials::Polynomial< double > > &poly, const Point< dim, Number > &p0, const Point< dim, Number > &p1)
 
template<int dim, int length, typename Number2 , typename Number , int n_values = 1, bool do_renumber = true, int stride = 1>
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, int stride = 1>
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, int stride = 1>
std::array< typename ProductTypeNoPoint< Number, Number2 >::type, dim+n_values > internal::evaluate_tensor_product_value_and_gradient_linear (const Number *values, const Point< dim, Number2 > &p)
 
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 ArrayView< const 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, int stride = 1>
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, int stride = 1>
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 , int stride = 1>
ProductTypeNoPoint< Number, Number2 >::type internal::evaluate_tensor_product_value_linear (const Number *values, const Point< dim, Number2 > &p)
 
template<int dim, typename Number , typename Number2 >
ProductTypeNoPoint< Number, Number2 >::type internal::evaluate_tensor_product_value (const std::vector< Polynomials::Polynomial< double > > &poly, const ArrayView< const 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 ArrayView< const 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 ArrayView< const 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 ArrayView< const 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 ArrayView< const 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 Number2 *value, const Tensor< 1, dim, Number2 > &gradient, Number2 *values, const Point< dim, Number > &p)
 
template<bool is_linear, 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 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 Number2 &value, Number2 *values, const Point< dim, Number > &p)
 
template<bool is_linear, 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 do_add)