Reference documentation for deal.II version Git ede8f93e86 2020-12-03 14:59:20 -0700
\(\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\}}\)
Namespaces | Classes | Enumerations | Functions | Variables

Namespaces

 AffineConstraints
 
 ArrayViewHelper
 
 BlockLinearOperatorImplementation
 
 BlockVectorIterators
 
 DataOutFacesImplementation
 
 DataOutImplementation
 
 DataOutRotationImplementation
 
 DoFAccessorImplementation
 
 DoFHandlerImplementation
 
 FE_BDM
 
 FE_DGPMonomial
 
 FE_DGQ
 
 FE_Enriched
 
 FE_FaceQImplementation
 
 FE_Nedelec
 
 FE_PolyTensor
 
 FE_Q
 
 FE_Q_Base
 
 FE_Q_Bubbles
 
 FE_Q_Hierarchical
 
 FEValuesImplementation
 
 FEValuesViews
 
 FilteredIteratorImplementation
 
 FunctionParser
 
 GrowingVectorMemoryImplementation
 
 hp
 
 LAPACKFullMatrixImplementation
 
 LinearOperatorImplementation
 
 Local
 
 MappingFEFieldImplementation
 
 MappingFEImplementation
 
 MappingManifoldImplementation
 
 MappingQ1
 
 MappingQGenericImplementation
 
 MatrixFreeFunctions
 
 MatrixOutImplementation
 
 MGTransfer
 
 p4est
 
 PackagedOperationImplementation
 
 parallel
 
 PointValueHistoryImplementation
 
 PolynomialsRannacherTurekImplementation
 
 QGaussChebyshev
 
 QGaussLobatto
 
 QGaussLobattoChebyshev
 
 QGaussRadauChebyshev
 
 QIteratedImplementation
 
 QRImplementation
 
 SD
 
 SolverGMRESImplementation
 
 SolverIDRImplementation
 
 SparseMatrixImplementation
 
 SymmetricTensorAccessors
 
 SymmetricTensorImplementation
 
 TableBaseAccessors
 
 TemplateConstraints
 
 TensorImplementation
 
 TensorProductManifoldImplementation
 
 TimerImplementation
 
 TriaAccessorImplementation
 
 TriangulationImplementation
 
 UtilitiesImplementation
 
 VectorImplementation
 
 VectorOperations
 

Classes

class  ActiveCellIterator
 
class  AlignedVectorCopy
 
class  AlignedVectorDefaultInitialize
 
class  AlignedVectorMove
 
class  AlignedVectorSet
 
struct  argument_type
 
struct  argument_type< T(U)>
 
struct  CellwiseInverseMassFactory
 
struct  CellwiseInverseMassMatrixImplBasic
 
struct  CellwiseInverseMassMatrixImplFlexible
 
struct  CellwiseInverseMassMatrixImplTransformFromQPoints
 
struct  CurlType
 
struct  CurlType< 1, NumberType >
 
struct  CurlType< 2, NumberType >
 
struct  CurlType< 3, NumberType >
 
struct  ElementAccess
 
struct  ElementAccess< LinearAlgebra::TpetraWrappers::Vector< NumberType > >
 
struct  EvaluatorSelector
 
struct  EvaluatorSelector< MatrixFreeFunctions::tensor_general, is_long >
 
struct  EvaluatorSelector< MatrixFreeFunctions::tensor_symmetric, false >
 
struct  EvaluatorSelector< MatrixFreeFunctions::tensor_symmetric, true >
 
struct  EvaluatorSelector< MatrixFreeFunctions::tensor_symmetric_collocation, is_long >
 
struct  EvaluatorSelector< MatrixFreeFunctions::tensor_symmetric_plus_dg0, false >
 
struct  EvaluatorSelector< MatrixFreeFunctions::tensor_symmetric_plus_dg0, true >
 
struct  EvaluatorSelector< MatrixFreeFunctions::truncated_tensor, is_long >
 
struct  EvaluatorTensorProduct
 
struct  EvaluatorTensorProduct< evaluate_evenodd, dim, n_rows, n_columns, Number, Number2 >
 
struct  EvaluatorTensorProduct< evaluate_general, dim, 0, 0, Number, Number2 >
 
struct  EvaluatorTensorProduct< evaluate_general, dim, n_rows, n_columns, Number, Number2 >
 
struct  EvaluatorTensorProduct< evaluate_symmetric, dim, n_rows, n_columns, Number, Number2 >
 
struct  EvaluatorTensorProduct< evaluate_symmetric_hierarchical, dim, n_rows, n_columns, Number, Number2 >
 
struct  FEEvaluationFactory
 
struct  FEEvaluationImpl
 
struct  FEEvaluationImpl< MatrixFreeFunctions::tensor_none, dim, fe_degree, n_q_points_1d, Number >
 
struct  FEEvaluationImplBasisChange
 
struct  FEEvaluationImplCollocation
 
struct  FEEvaluationImplEvaluateSelector
 
struct  FEEvaluationImplIntegrateSelector
 
struct  FEEvaluationImplTransformToCollocation
 
struct  FEFaceEvaluationFactory
 
struct  FEFaceEvaluationImpl
 
struct  FEFaceEvaluationImplEvaluateSelector
 
struct  FEFaceEvaluationImplGatherEvaluateSelector
 
struct  FEFaceEvaluationImplIntegrateScatterSelector
 
struct  FEFaceEvaluationImplIntegrateSelector
 
struct  FEFaceNormalEvaluationImpl
 
struct  GenericDoFsPerObject
 
struct  is_explicitly_convertible
 
struct  MatrixSelector
 
struct  MatrixSelector< LinearAlgebra::distributed::Vector< Number > >
 
struct  MatrixSelector<::LinearAlgebra::EpetraWrappers::Vector >
 
struct  MatrixSelector<::LinearAlgebra::TpetraWrappers::Vector< Number > >
 
struct  MatrixSelector<::PETScWrappers::MPI::Vector >
 
struct  MatrixSelector<::TrilinosWrappers::MPI::Vector >
 
struct  MFWorkerInterface
 
struct  NumberType
 
struct  NumberType< cuComplex >
 
struct  NumberType< cuDoubleComplex >
 
struct  NumberType< std::complex< T > >
 
struct  ProductTypeImpl
 
struct  ProductTypeImpl< adouble, adouble >
 
struct  ProductTypeImpl< adouble, adub >
 
struct  ProductTypeImpl< adouble, double >
 
struct  ProductTypeImpl< adouble, float >
 
struct  ProductTypeImpl< adtl::adouble, adtl::adouble >
 
struct  ProductTypeImpl< adtl::adouble, double >
 
struct  ProductTypeImpl< adtl::adouble, float >
 
struct  ProductTypeImpl< adub, adouble >
 
struct  ProductTypeImpl< adub, double >
 
struct  ProductTypeImpl< adub, float >
 
struct  ProductTypeImpl< Differentiation::SD::Expression, Differentiation::SD::Expression >
 
struct  ProductTypeImpl< Differentiation::SD::Expression, T >
 
struct  ProductTypeImpl< double, adouble >
 
struct  ProductTypeImpl< double, adtl::adouble >
 
struct  ProductTypeImpl< double, adub >
 
struct  ProductTypeImpl< double, Sacado::Fad::DFad< T > >
 
struct  ProductTypeImpl< double, Sacado::Rad::ADvar< T > >
 
struct  ProductTypeImpl< double, Sacado::Rad::ADvari< T > >
 
struct  ProductTypeImpl< double, std::complex< U > >
 
struct  ProductTypeImpl< float, adouble >
 
struct  ProductTypeImpl< float, adtl::adouble >
 
struct  ProductTypeImpl< float, adub >
 
struct  ProductTypeImpl< float, Sacado::Fad::DFad< T > >
 
struct  ProductTypeImpl< float, Sacado::Rad::ADvar< T > >
 
struct  ProductTypeImpl< float, Sacado::Rad::ADvari< T > >
 
struct  ProductTypeImpl< float, std::complex< U > >
 
struct  ProductTypeImpl< int, Sacado::Fad::DFad< T > >
 
struct  ProductTypeImpl< int, Sacado::Rad::ADvar< T > >
 
struct  ProductTypeImpl< int, Sacado::Rad::ADvari< T > >
 
struct  ProductTypeImpl< Sacado::Fad::DFad< T >, double >
 
struct  ProductTypeImpl< Sacado::Fad::DFad< T >, float >
 
struct  ProductTypeImpl< Sacado::Fad::DFad< T >, int >
 
struct  ProductTypeImpl< Sacado::Fad::DFad< T >, Sacado::Fad::DFad< U > >
 
struct  ProductTypeImpl< Sacado::Fad::Expr< T >, Sacado::Fad::Expr< U > >
 
struct  ProductTypeImpl< Sacado::Fad::Expr< T >, U >
 
struct  ProductTypeImpl< Sacado::Rad::ADvar< T >, double >
 
struct  ProductTypeImpl< Sacado::Rad::ADvar< T >, float >
 
struct  ProductTypeImpl< Sacado::Rad::ADvar< T >, int >
 
struct  ProductTypeImpl< Sacado::Rad::ADvar< T >, Sacado::Rad::ADvar< U > >
 
struct  ProductTypeImpl< Sacado::Rad::ADvar< T >, Sacado::Rad::ADvari< U > >
 
struct  ProductTypeImpl< Sacado::Rad::ADvari< T >, double >
 
struct  ProductTypeImpl< Sacado::Rad::ADvari< T >, float >
 
struct  ProductTypeImpl< Sacado::Rad::ADvari< T >, int >
 
struct  ProductTypeImpl< Sacado::Rad::ADvari< T >, Sacado::Rad::ADvar< U > >
 
struct  ProductTypeImpl< Sacado::Rad::ADvari< T >, Sacado::Rad::ADvari< U > >
 
struct  ProductTypeImpl< std::complex< adouble >, std::complex< adouble > >
 
struct  ProductTypeImpl< std::complex< adouble >, std::complex< adub > >
 
struct  ProductTypeImpl< std::complex< adouble >, std::complex< double > >
 
struct  ProductTypeImpl< std::complex< adouble >, std::complex< float > >
 
struct  ProductTypeImpl< std::complex< adtl::adouble >, std::complex< adtl::adouble > >
 
struct  ProductTypeImpl< std::complex< adtl::adouble >, std::complex< double > >
 
struct  ProductTypeImpl< std::complex< adtl::adouble >, std::complex< float > >
 
struct  ProductTypeImpl< std::complex< adub >, std::complex< adouble > >
 
struct  ProductTypeImpl< std::complex< double >, std::complex< adouble > >
 
struct  ProductTypeImpl< std::complex< double >, std::complex< adtl::adouble > >
 
struct  ProductTypeImpl< std::complex< float >, std::complex< adouble > >
 
struct  ProductTypeImpl< std::complex< float >, std::complex< adtl::adouble > >
 
struct  ProductTypeImpl< std::complex< T >, double >
 
struct  ProductTypeImpl< std::complex< T >, float >
 
struct  ProductTypeImpl< std::complex< T >, std::complex< T > >
 
struct  ProductTypeImpl< std::complex< T >, std::complex< U > >
 
struct  ProductTypeImpl< std::complex< T >, SymmetricTensor< rank, dim, std::complex< U > > >
 
struct  ProductTypeImpl< std::complex< T >, SymmetricTensor< rank, dim, U > >
 
struct  ProductTypeImpl< SymmetricTensor< rank, dim, std::complex< T > >, std::complex< U > >
 
struct  ProductTypeImpl< SymmetricTensor< rank, dim, T >, std::complex< U > >
 
struct  ProductTypeImpl< T, Differentiation::SD::Expression >
 
struct  ProductTypeImpl< T, Sacado::Fad::Expr< U > >
 
struct  ProductTypeNoPoint
 
struct  ProductTypeNoPoint< Point< dim, Number >, Number2 >
 
class  SolverBicgstabData
 
class  SubfaceCase
 
struct  SubfacePossibilities
 
struct  SubfacePossibilities< 0 >
 
struct  SubfacePossibilities< 1 >
 
struct  SubfacePossibilities< 2 >
 
struct  SubfacePossibilities< 3 >
 
struct  TableEntry
 
struct  VectorDistributorLocalToGlobal
 
struct  VectorizedArrayWidthSpecifier
 
struct  VectorizedArrayWidthSpecifier< double >
 
struct  VectorizedArrayWidthSpecifier< float >
 
struct  VectorReader
 
struct  VectorSetter
 

Enumerations

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

Functions

template<typename MatrixType >
void reinit (MatrixBlock< MatrixType > &v, const BlockSparsityPattern &p)
 
template<typename number >
void reinit (MatrixBlock<::SparseMatrix< number >> &v, const BlockSparsityPattern &p)
 
template<typename VectorizedArrayType , typename Number2 >
void do_vectorized_read (const Number2 *src_ptr, VectorizedArrayType &dst)
 
template<typename Number , unsigned int width>
void do_vectorized_read (const Number *src_ptr, VectorizedArray< Number, width > &dst)
 
template<typename VectorizedArrayType , typename Number2 >
void do_vectorized_gather (const Number2 *src_ptr, const unsigned int *indices, VectorizedArrayType &dst)
 
template<typename Number , unsigned int width>
void do_vectorized_gather (const Number *src_ptr, const unsigned int *indices, VectorizedArray< Number, width > &dst)
 
template<typename VectorizedArrayType , typename Number2 >
void do_vectorized_add (const VectorizedArrayType src, Number2 *dst_ptr)
 
template<typename Number , unsigned int width>
void do_vectorized_add (const VectorizedArray< Number, width > src, Number *dst_ptr)
 
template<typename VectorizedArrayType , typename Number2 >
void do_vectorized_scatter_add (const VectorizedArrayType src, const unsigned int *indices, Number2 *dst_ptr)
 
template<typename Number , unsigned int width>
void do_vectorized_scatter_add (const VectorizedArray< Number, width > src, const unsigned int *indices, Number *dst_ptr)
 
template<typename Number >
void adjust_for_face_orientation (const unsigned int dim, const unsigned int n_components, const unsigned int face_orientation, const Table< 2, unsigned int > &orientation_map, const bool integrate, const bool values, const bool gradients, const unsigned int n_q_points, Number *tmp_values, Number *values_quad, Number *gradients_quad)
 
template<int n_face_orientations, typename Processor >
static bool fe_face_evaluation_process_and_io (Processor &proc)
 
static ::ExceptionBaseExcAccessToUninitializedField ()
 
static ::ExceptionBaseExcMatrixFreeAccessToUninitializedMappingField (std::string arg1)
 
template<int dim, typename Number , typename Number2 >
std::pair< typename ProductTypeNoPoint< Number, Number2 >::type, Tensor< 1, dim, typename ProductTypeNoPoint< Number, Number2 >::type > > 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<typename VectorType , typename std::enable_if<!has_local_element< VectorType >::value, VectorType >::type * = nullptr>
VectorType::value_type vector_access (const VectorType &vec, const unsigned int entry)
 
template<typename VectorType , typename std::enable_if<!has_local_element< VectorType >::value, VectorType >::type * = nullptr>
VectorType::value_type & vector_access (VectorType &vec, const unsigned int entry)
 
template<typename VectorType , typename std::enable_if< has_add_local_element< VectorType >::value, VectorType >::type * = nullptr>
void vector_access_add (VectorType &vec, const unsigned int entry, const typename VectorType::value_type &val)
 
template<typename VectorType , typename std::enable_if< has_add_local_element< VectorType >::value, VectorType >::type * = nullptr>
void vector_access_add_global (VectorType &vec, const types::global_dof_index entry, const typename VectorType::value_type &val)
 
template<typename VectorType , typename std::enable_if< has_set_local_element< VectorType >::value, VectorType >::type * = nullptr>
void vector_access_set (VectorType &vec, const unsigned int entry, const typename VectorType::value_type &val)
 
template<typename VectorType , typename std::enable_if<!has_partitioners_are_compatible< VectorType >::value, VectorType >::type * = nullptr>
void check_vector_compatibility (const VectorType &vec, const internal::MatrixFreeFunctions::DoFInfo &dof_info)
 
template<class DI >
bool is_active_iterator (const DI &)
 
template<class ACCESSOR >
bool is_active_iterator (const TriaActiveIterator< ACCESSOR > &)
 
template<class ACCESSOR >
bool is_active_iterator (const ::FilteredIterator< TriaActiveIterator< ACCESSOR >> &)
 
template<int dim, class DOFINFO , class A >
void assemble (const MeshWorker::DoFInfoBox< dim, DOFINFO > &dinfo, A *assembler)
 
template<int dim, int spacedim>
std::string policy_to_string (const ::internal::DoFHandlerImplementation::Policy::PolicyBase< dim, spacedim > &policy)
 
template<class VectorType >
VectorType::value_type get_vector_element (const VectorType &vector, const types::global_dof_index cell_number)
 
IndexSet::value_type get_vector_element (const IndexSet &is, const types::global_dof_index cell_number)
 
template<int dim, int spacedim>
std::vector< unsigned intmake_shape_function_to_row_table (const FiniteElement< dim, spacedim > &fe)
 
template<typename Number , typename Number2 >
void do_function_values (const Number2 *dof_values_ptr, const ::Table< 2, double > &shape_values, std::vector< Number > &values)
 
template<int dim, int spacedim, typename VectorType >
void do_function_values (const typename VectorType::value_type *dof_values_ptr, const ::Table< 2, double > &shape_values, const FiniteElement< dim, spacedim > &fe, const std::vector< unsigned int > &shape_function_to_row_table, ArrayView< VectorType > values, const bool quadrature_points_fastest=false, const unsigned int component_multiple=1)
 
template<int order, int spacedim, typename Number >
void do_function_derivatives (const Number *dof_values_ptr, const ::Table< 2, Tensor< order, spacedim >> &shape_derivatives, std::vector< Tensor< order, spacedim, Number >> &derivatives)
 
template<int order, int dim, int spacedim, typename Number >
void do_function_derivatives (const Number *dof_values_ptr, const ::Table< 2, Tensor< order, spacedim >> &shape_derivatives, const FiniteElement< dim, spacedim > &fe, const std::vector< unsigned int > &shape_function_to_row_table, ArrayView< std::vector< Tensor< order, spacedim, Number >>> derivatives, const bool quadrature_points_fastest=false, const unsigned int component_multiple=1)
 
template<int spacedim, typename Number , typename Number2 >
void do_function_laplacians (const Number2 *dof_values_ptr, const ::Table< 2, Tensor< 2, spacedim >> &shape_hessians, std::vector< Number > &laplacians)
 
template<int dim, int spacedim, typename VectorType , typename Number >
void do_function_laplacians (const Number *dof_values_ptr, const ::Table< 2, Tensor< 2, spacedim >> &shape_hessians, const FiniteElement< dim, spacedim > &fe, const std::vector< unsigned int > &shape_function_to_row_table, std::vector< VectorType > &laplacians, const bool quadrature_points_fastest=false, const unsigned int component_multiple=1)
 
Tensor< 1, 3 > apply_exponential_map (const Tensor< 1, 3 > &u, const Tensor< 1, 3 > &dir)
 
Tensor< 1, 3 > projected_direction (const Tensor< 1, 3 > &u, const Tensor< 1, 3 > &v)
 
template<int spacedim>
Point< spacedim > compute_normal (const Tensor< 1, spacedim > &, bool=false)
 
Point< 3 > compute_normal (const Tensor< 1, 3 > &vector, bool normalize=false)
 
template<int dim, int spacedim>
void extract_interpolation_matrices (const ::DoFHandler< dim, spacedim > &dof, ::Table< 2, FullMatrix< double >> &matrices)
 
template<int dim, int spacedim>
void restriction_additive (const FiniteElement< dim, spacedim > &, std::vector< std::vector< bool >> &)
 
template<int dim, int spacedim>
void restriction_additive (const ::hp::FECollection< dim, spacedim > &fe, std::vector< std::vector< bool >> &restriction_is_additive)
 

Variables

static constexpr double invalid_pull_back_coordinate = 20.0
 

Detailed Description

This namespace defines the copy and set functions used in AlignedVector. These functions operate in parallel when there are enough elements in the vector.

Enumeration Type Documentation

◆ EvaluatorVariant

In this namespace, the evaluator routines that evaluate the tensor products are implemented.

Enumerator
evaluate_general 

Do not use anything more than the tensor product structure of the finite element.

evaluate_symmetric 

Perform evaluation by exploiting symmetry in the finite element: i.e., skip some computations by utilizing the symmetry in the shape functions and quadrature points.

evaluate_evenodd 

Use symmetry to apply the operator to even and odd parts of the input vector separately: see the documentation of the EvaluatorTensorProduct specialization for more information.

evaluate_symmetric_hierarchical 

Use symmetry in Legendre and similar polynomial spaces where the shape functions with even number are symmetric about the center of the quadrature points (think about even polynomial degrees) and the shape functions with odd number are anti-symmetric about the center of the quadrature points (think about odd polynomial degrees). This allows to use a strategy similar to the even-odd technique but without separate coefficient arrays. See the documentation of the EvaluatorTensorProduct specialization for more information.

Definition at line 37 of file tensor_product_kernels.h.

◆ EvaluatorQuantity

Determine which quantity should be computed via the tensor product kernels.

Enumerator
value 

Evaluate/integrate by shape functions.

gradient 

Evaluate/integrate by gradients of the shape functions.

hessian 

Evaluate/integrate by hessians of the shape functions.

Definition at line 74 of file tensor_product_kernels.h.

Function Documentation

◆ reinit() [1/2]

template<typename MatrixType >
void internal::reinit ( MatrixBlock< MatrixType > &  v,
const BlockSparsityPattern p 
)

Definition at line 618 of file matrix_block.h.

◆ reinit() [2/2]

template<typename number >
void internal::reinit ( MatrixBlock<::SparseMatrix< number >> &  v,
const BlockSparsityPattern p 
)

Definition at line 627 of file matrix_block.h.

◆ do_vectorized_read() [1/2]

template<typename VectorizedArrayType , typename Number2 >
void internal::do_vectorized_read ( const Number2 *  src_ptr,
VectorizedArrayType &  dst 
)

Definition at line 2381 of file evaluation_kernels.h.

◆ do_vectorized_read() [2/2]

template<typename Number , unsigned int width>
void internal::do_vectorized_read ( const Number *  src_ptr,
VectorizedArray< Number, width > &  dst 
)

Definition at line 2393 of file evaluation_kernels.h.

◆ do_vectorized_gather() [1/2]

template<typename VectorizedArrayType , typename Number2 >
void internal::do_vectorized_gather ( const Number2 *  src_ptr,
const unsigned int indices,
VectorizedArrayType &  dst 
)

Definition at line 2403 of file evaluation_kernels.h.

◆ do_vectorized_gather() [2/2]

template<typename Number , unsigned int width>
void internal::do_vectorized_gather ( const Number *  src_ptr,
const unsigned int indices,
VectorizedArray< Number, width > &  dst 
)

Definition at line 2417 of file evaluation_kernels.h.

◆ do_vectorized_add() [1/2]

template<typename VectorizedArrayType , typename Number2 >
void internal::do_vectorized_add ( const VectorizedArrayType  src,
Number2 *  dst_ptr 
)

Definition at line 2429 of file evaluation_kernels.h.

◆ do_vectorized_add() [2/2]

template<typename Number , unsigned int width>
void internal::do_vectorized_add ( const VectorizedArray< Number, width >  src,
Number *  dst_ptr 
)

Definition at line 2441 of file evaluation_kernels.h.

◆ do_vectorized_scatter_add() [1/2]

template<typename VectorizedArrayType , typename Number2 >
void internal::do_vectorized_scatter_add ( const VectorizedArrayType  src,
const unsigned int indices,
Number2 *  dst_ptr 
)

Definition at line 2453 of file evaluation_kernels.h.

◆ do_vectorized_scatter_add() [2/2]

template<typename Number , unsigned int width>
void internal::do_vectorized_scatter_add ( const VectorizedArray< Number, width >  src,
const unsigned int indices,
Number *  dst_ptr 
)

Definition at line 2467 of file evaluation_kernels.h.

◆ adjust_for_face_orientation()

template<typename Number >
void internal::adjust_for_face_orientation ( const unsigned int  dim,
const unsigned int  n_components,
const unsigned int  face_orientation,
const Table< 2, unsigned int > &  orientation_map,
const bool  integrate,
const bool  values,
const bool  gradients,
const unsigned int  n_q_points,
Number *  tmp_values,
Number *  values_quad,
Number *  gradients_quad 
)

Definition at line 2485 of file evaluation_kernels.h.

◆ fe_face_evaluation_process_and_io()

template<int n_face_orientations, typename Processor >
static bool internal::fe_face_evaluation_process_and_io ( Processor &  proc)
static

Definition at line 2850 of file evaluation_kernels.h.

◆ evaluate_tensor_product_value_and_gradient()

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 = {} 
)
inline

Compute the polynomial interpolation of a tensor product shape function \(\varphi_i\) given a vector of coefficients \(u_i\) in the form \(u_h(\mathbf{x}) = \sum_{i=1}^{k^d} \varphi_i(\mathbf{x}) u_i\). The shape functions \(\varphi_i(\mathbf{x}) = \prod_{d=1}^{\text{dim}}\varphi_{i_d}^\text{1D}(x_d)\) represent a tensor product. The function returns a pair with the value of the interpolation as the first component and the gradient in reference coordinates as the second component. Note that for compound types (e.g. the values field begin a Point<spacedim> argument), the components of the gradient are sorted as Tensor<1, dim, Tensor<1, spacedim>> with the derivatives as the first index; this is a consequence of the generic arguments in the function.

Parameters
polyThe underlying one-dimensional polynomial basis \(\{\varphi^{1D}_{i_1}\}\) given as a vector of polynomials.
valuesThe expansion coefficients \(u_i\) of type Number in the polynomial interpolation. The coefficients can be simply double variables but e.g. also Point<spacedim> in case they define arithmetic operations with the type Number2.
pThe position in reference coordinates where the interpolation should be evaluated.
d_linearFlag to specify whether a d-linear (linear in 1D, bi-linear in 2D, tri-linear in 3D) interpolation should be made, which allows to unroll loops and considerably speed up evaluation.
renumberOptional parameter to specify a renumbering in the coefficient vector, assuming that values[renumber[i]] returns the lexicographic (tensor product) entry of the coefficients. If the vector is entry, the values are assumed to be sorted lexicographically.

Definition at line 2389 of file tensor_product_kernels.h.

◆ vector_access() [1/2]

template<typename VectorType , typename std::enable_if<!has_local_element< VectorType >::value, VectorType >::type * = nullptr>
VectorType::value_type internal::vector_access ( const VectorType vec,
const unsigned int  entry 
)
inline

Definition at line 42 of file vector_access_internal.h.

◆ vector_access() [2/2]

template<typename VectorType , typename std::enable_if<!has_local_element< VectorType >::value, VectorType >::type * = nullptr>
VectorType::value_type & internal::vector_access ( VectorType vec,
const unsigned int  entry 
)
inline

Definition at line 56 of file vector_access_internal.h.

◆ vector_access_add()

template<typename VectorType , typename std::enable_if< has_add_local_element< VectorType >::value, VectorType >::type * = nullptr>
void internal::vector_access_add ( VectorType vec,
const unsigned int  entry,
const typename VectorType::value_type &  val 
)
inline

Definition at line 93 of file vector_access_internal.h.

◆ vector_access_add_global()

template<typename VectorType , typename std::enable_if< has_add_local_element< VectorType >::value, VectorType >::type * = nullptr>
void internal::vector_access_add_global ( VectorType vec,
const types::global_dof_index  entry,
const typename VectorType::value_type &  val 
)
inline

Definition at line 119 of file vector_access_internal.h.

◆ vector_access_set()

template<typename VectorType , typename std::enable_if< has_set_local_element< VectorType >::value, VectorType >::type * = nullptr>
void internal::vector_access_set ( VectorType vec,
const unsigned int  entry,
const typename VectorType::value_type &  val 
)
inline

Definition at line 145 of file vector_access_internal.h.

◆ check_vector_compatibility()

template<typename VectorType , typename std::enable_if<!has_partitioners_are_compatible< VectorType >::value, VectorType >::type * = nullptr>
void internal::check_vector_compatibility ( const VectorType vec,
const internal::MatrixFreeFunctions::DoFInfo dof_info 
)
inline

Definition at line 176 of file vector_access_internal.h.

◆ is_active_iterator() [1/3]

template<class DI >
bool internal::is_active_iterator ( const DI &  )
inline

Find out if an iterator supports inactive cells.

Definition at line 49 of file loop.h.

◆ is_active_iterator() [2/3]

template<class ACCESSOR >
bool internal::is_active_iterator ( const TriaActiveIterator< ACCESSOR > &  )
inline

Definition at line 56 of file loop.h.

◆ is_active_iterator() [3/3]

template<class ACCESSOR >
bool internal::is_active_iterator ( const ::FilteredIterator< TriaActiveIterator< ACCESSOR >> &  )
inline

Definition at line 63 of file loop.h.

◆ assemble()

template<int dim, class DOFINFO , class A >
void internal::assemble ( const MeshWorker::DoFInfoBox< dim, DOFINFO > &  dinfo,
A *  assembler 
)

Definition at line 71 of file loop.h.

◆ policy_to_string()

template<int dim, int spacedim>
std::string internal::policy_to_string ( const ::internal::DoFHandlerImplementation::Policy::PolicyBase< dim, spacedim > &  policy)

Definition at line 49 of file dof_handler.cc.

◆ get_vector_element() [1/2]

template<class VectorType >
VectorType::value_type internal::get_vector_element ( const VectorType vector,
const types::global_dof_index  cell_number 
)
inline

Definition at line 59 of file fe_values.cc.

◆ get_vector_element() [2/2]

IndexSet::value_type internal::get_vector_element ( const IndexSet is,
const types::global_dof_index  cell_number 
)
inline

Definition at line 68 of file fe_values.cc.

◆ make_shape_function_to_row_table()

template<int dim, int spacedim>
std::vector<unsigned int> internal::make_shape_function_to_row_table ( const FiniteElement< dim, spacedim > &  fe)
inline

Definition at line 79 of file fe_values.cc.

◆ do_function_values() [1/2]

template<typename Number , typename Number2 >
void internal::do_function_values ( const Number2 *  dof_values_ptr,
const ::Table< 2, double > &  shape_values,
std::vector< Number > &  values 
)

Definition at line 3114 of file fe_values.cc.

◆ do_function_values() [2/2]

template<int dim, int spacedim, typename VectorType >
void internal::do_function_values ( const typename VectorType::value_type *  dof_values_ptr,
const ::Table< 2, double > &  shape_values,
const FiniteElement< dim, spacedim > &  fe,
const std::vector< unsigned int > &  shape_function_to_row_table,
ArrayView< VectorType values,
const bool  quadrature_points_fastest = false,
const unsigned int  component_multiple = 1 
)

Definition at line 3156 of file fe_values.cc.

◆ do_function_derivatives() [1/2]

template<int order, int spacedim, typename Number >
void internal::do_function_derivatives ( const Number *  dof_values_ptr,
const ::Table< 2, Tensor< order, spacedim >> &  shape_derivatives,
std::vector< Tensor< order, spacedim, Number >> &  derivatives 
)

Definition at line 3266 of file fe_values.cc.

◆ do_function_derivatives() [2/2]

template<int order, int dim, int spacedim, typename Number >
void internal::do_function_derivatives ( const Number *  dof_values_ptr,
const ::Table< 2, Tensor< order, spacedim >> &  shape_derivatives,
const FiniteElement< dim, spacedim > &  fe,
const std::vector< unsigned int > &  shape_function_to_row_table,
ArrayView< std::vector< Tensor< order, spacedim, Number >>>  derivatives,
const bool  quadrature_points_fastest = false,
const unsigned int  component_multiple = 1 
)

Definition at line 3308 of file fe_values.cc.

◆ do_function_laplacians() [1/2]

template<int spacedim, typename Number , typename Number2 >
void internal::do_function_laplacians ( const Number2 *  dof_values_ptr,
const ::Table< 2, Tensor< 2, spacedim >> &  shape_hessians,
std::vector< Number > &  laplacians 
)

Definition at line 3414 of file fe_values.cc.

◆ do_function_laplacians() [2/2]

template<int dim, int spacedim, typename VectorType , typename Number >
void internal::do_function_laplacians ( const Number *  dof_values_ptr,
const ::Table< 2, Tensor< 2, spacedim >> &  shape_hessians,
const FiniteElement< dim, spacedim > &  fe,
const std::vector< unsigned int > &  shape_function_to_row_table,
std::vector< VectorType > &  laplacians,
const bool  quadrature_points_fastest = false,
const unsigned int  component_multiple = 1 
)

Definition at line 3453 of file fe_values.cc.

◆ apply_exponential_map()

Tensor<1, 3> internal::apply_exponential_map ( const Tensor< 1, 3 > &  u,
const Tensor< 1, 3 > &  dir 
)

Definition at line 49 of file manifold_lib.cc.

◆ projected_direction()

Tensor<1, 3> internal::projected_direction ( const Tensor< 1, 3 > &  u,
const Tensor< 1, 3 > &  v 
)

Definition at line 69 of file manifold_lib.cc.

◆ compute_normal() [1/2]

template<int spacedim>
Point<spacedim> internal::compute_normal ( const Tensor< 1, spacedim > &  ,
bool  = false 
)

Definition at line 80 of file manifold_lib.cc.

◆ compute_normal() [2/2]

Point<3> internal::compute_normal ( const Tensor< 1, 3 > &  vector,
bool  normalize = false 
)

Definition at line 87 of file manifold_lib.cc.

◆ extract_interpolation_matrices()

template<int dim, int spacedim>
void internal::extract_interpolation_matrices ( const ::DoFHandler< dim, spacedim > &  dof,
::Table< 2, FullMatrix< double >> &  matrices 
)

Generate a table that contains interpolation matrices between each combination of finite elements used in a DoFHandler of some kind. Since not all elements can be interpolated onto each other, the table may contain empty matrices for those combinations of elements for which no such interpolation is implemented.

Definition at line 201 of file solution_transfer.cc.

◆ restriction_additive() [1/2]

template<int dim, int spacedim>
void internal::restriction_additive ( const FiniteElement< dim, spacedim > &  ,
std::vector< std::vector< bool >> &   
)

Definition at line 238 of file solution_transfer.cc.

◆ restriction_additive() [2/2]

template<int dim, int spacedim>
void internal::restriction_additive ( const ::hp::FECollection< dim, spacedim > &  fe,
std::vector< std::vector< bool >> &  restriction_is_additive 
)

Definition at line 244 of file solution_transfer.cc.

Variable Documentation

◆ invalid_pull_back_coordinate

constexpr double internal::invalid_pull_back_coordinate = 20.0
static

Definition at line 43 of file manifold_lib.cc.