deal.II version 9.7.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
Portable::internal Namespace Reference

Classes

struct  EvaluatorTensorProduct
struct  EvaluatorTensorProduct< evaluate_general, dim, n_rows, n_columns, Number >
struct  FEEvaluationImpl
struct  FEEvaluationImplCollocation
struct  FEEvaluationImplTransformToCollocation

Enumerations

enum  EvaluatorVariant { evaluate_general , evaluate_symmetric , evaluate_evenodd }

Functions

constexpr bool use_collocation_evaluation (const unsigned int fe_degree, const unsigned int n_q_points_1d)
template<unsigned int size>
unsigned int index2 (unsigned int i, unsigned int j)
template<unsigned int size>
unsigned int index3 (unsigned int i, unsigned int j, unsigned int k)
template<unsigned int fe_degree, unsigned int direction>
bool is_constrained_dof_2d (const ::internal::MatrixFreeFunctions::ConstraintKinds &constraint_mask, const unsigned int x_idx, const unsigned int y_idx)
template<unsigned int fe_degree, unsigned int direction>
bool is_constrained_dof_3d (const ::internal::MatrixFreeFunctions::ConstraintKinds &constraint_mask, const unsigned int x_idx, const unsigned int y_idx, const unsigned int z_idx, const ::internal::MatrixFreeFunctions::ConstraintKinds face1_type, const ::internal::MatrixFreeFunctions::ConstraintKinds face2_type, const ::internal::MatrixFreeFunctions::ConstraintKinds face1, const ::internal::MatrixFreeFunctions::ConstraintKinds face2, const ::internal::MatrixFreeFunctions::ConstraintKinds edge)
template<unsigned int fe_degree, unsigned int direction, bool transpose, typename Number, typename ViewType>
void interpolate_boundary_2d (const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type &team_member, Kokkos::View< Number *, MemorySpace::Default::kokkos_space > constraint_weights, const ::internal::MatrixFreeFunctions::ConstraintKinds &constraint_mask, ViewType values)
template<unsigned int fe_degree, unsigned int direction, bool transpose, typename Number, typename ViewType>
void interpolate_boundary_3d (const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type &team_member, Kokkos::View< Number *, MemorySpace::Default::kokkos_space > constraint_weights, const ::internal::MatrixFreeFunctions::ConstraintKinds constraint_mask, ViewType values)
template<int dim, int fe_degree, bool transpose, typename Number, typename ViewType>
void resolve_hanging_nodes (const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type &team_member, Kokkos::View< Number *, MemorySpace::Default::kokkos_space > constraint_weights, const ::internal::MatrixFreeFunctions::ConstraintKinds constraint_mask, ViewType values)
template<bool add, typename ViewTypeIn, typename ViewTypeOut>
void populate_view (const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type &team_member, ViewTypeOut dst, const ViewTypeIn src, const int N)
template<int dim, int n_rows, int n_columns, typename Number, int direction, bool contract_over_rows, bool add, typename ViewTypeIn, typename ViewTypeOut>
void apply (const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type &team_member, const Kokkos::View< Number *, MemorySpace::Default::kokkos_space > shape_data, const ViewTypeIn in, ViewTypeOut out)

Enumeration Type Documentation

◆ EvaluatorVariant

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

Enumerator
evaluate_general 
evaluate_symmetric 
evaluate_evenodd 

Definition at line 39 of file portable_tensor_product_kernels.h.

Function Documentation

◆ use_collocation_evaluation()

bool Portable::internal::use_collocation_evaluation ( const unsigned int fe_degree,
const unsigned int n_q_points_1d )
constexpr

Helper function to specify whether a transformation to collocation should be used: It should give correct results (first condition), we need to be able to initialize the fields in shape_info.templates.h from the polynomials (second condition), and it should be the most efficient choice in terms of operation counts (third condition).

Definition at line 45 of file portable_evaluation_kernels.h.

◆ index2()

template<unsigned int size>
unsigned int Portable::internal::index2 ( unsigned int i,
unsigned int j )
inline

Definition at line 35 of file portable_hanging_nodes_internal.h.

◆ index3()

template<unsigned int size>
unsigned int Portable::internal::index3 ( unsigned int i,
unsigned int j,
unsigned int k )
inline

Definition at line 44 of file portable_hanging_nodes_internal.h.

◆ is_constrained_dof_2d()

template<unsigned int fe_degree, unsigned int direction>
bool Portable::internal::is_constrained_dof_2d ( const ::internal::MatrixFreeFunctions::ConstraintKinds & constraint_mask,
const unsigned int x_idx,
const unsigned int y_idx )
inline

Definition at line 53 of file portable_hanging_nodes_internal.h.

◆ is_constrained_dof_3d()

template<unsigned int fe_degree, unsigned int direction>
bool Portable::internal::is_constrained_dof_3d ( const ::internal::MatrixFreeFunctions::ConstraintKinds & constraint_mask,
const unsigned int x_idx,
const unsigned int y_idx,
const unsigned int z_idx,
const ::internal::MatrixFreeFunctions::ConstraintKinds face1_type,
const ::internal::MatrixFreeFunctions::ConstraintKinds face2_type,
const ::internal::MatrixFreeFunctions::ConstraintKinds face1,
const ::internal::MatrixFreeFunctions::ConstraintKinds face2,
const ::internal::MatrixFreeFunctions::ConstraintKinds edge )
inline

Definition at line 77 of file portable_hanging_nodes_internal.h.

◆ interpolate_boundary_2d()

template<unsigned int fe_degree, unsigned int direction, bool transpose, typename Number, typename ViewType>
void Portable::internal::interpolate_boundary_2d ( const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type & team_member,
Kokkos::View< Number *, MemorySpace::Default::kokkos_space > constraint_weights,
const ::internal::MatrixFreeFunctions::ConstraintKinds & constraint_mask,
ViewType values )
inline

Definition at line 126 of file portable_hanging_nodes_internal.h.

◆ interpolate_boundary_3d()

template<unsigned int fe_degree, unsigned int direction, bool transpose, typename Number, typename ViewType>
void Portable::internal::interpolate_boundary_3d ( const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type & team_member,
Kokkos::View< Number *, MemorySpace::Default::kokkos_space > constraint_weights,
const ::internal::MatrixFreeFunctions::ConstraintKinds constraint_mask,
ViewType values )
inline

Definition at line 245 of file portable_hanging_nodes_internal.h.

◆ resolve_hanging_nodes()

template<int dim, int fe_degree, bool transpose, typename Number, typename ViewType>
void Portable::internal::resolve_hanging_nodes ( const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type & team_member,
Kokkos::View< Number *, MemorySpace::Default::kokkos_space > constraint_weights,
const ::internal::MatrixFreeFunctions::ConstraintKinds constraint_mask,
ViewType values )

This function resolves the hanging nodes using tensor product.

The implementation of this class is explained in Section 3 of [156] and in Section 3.4 of [146].

Definition at line 414 of file portable_hanging_nodes_internal.h.

◆ populate_view()

template<bool add, typename ViewTypeIn, typename ViewTypeOut>
void Portable::internal::populate_view ( const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type & team_member,
ViewTypeOut dst,
const ViewTypeIn src,
const int N )

Helper function that copies or adds the first N entries of src to dst, depending on the template argument "add".

Definition at line 54 of file portable_tensor_product_kernels.h.

◆ apply()

template<int dim, int n_rows, int n_columns, typename Number, int direction, bool contract_over_rows, bool add, typename ViewTypeIn, typename ViewTypeOut>
void Portable::internal::apply ( const Kokkos::TeamPolicy< MemorySpace::Default::kokkos_space::execution_space >::member_type & team_member,
const Kokkos::View< Number *, MemorySpace::Default::kokkos_space > shape_data,
const ViewTypeIn in,
ViewTypeOut out )

Definition at line 301 of file portable_tensor_product_kernels.h.