NiHu  2.0

Definition of shape function sets. More...

#include "../tmp/algorithm.hpp"
#include "../tmp/vector.hpp"
#include "../util/conditional_precompute.hpp"
#include "../util/materialize_sequence.hpp"
#include "domain.hpp"
#include <iostream>
#include <stdexcept>
#include <type_traits>
Include dependency graph for shapeset.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  NiHu::position_dof< d >
 position degree of freedom of a point in the intrinsic domain More...
 
struct  NiHu::corner_index< index >
 
class  NiHu::shape_function< Derived, Order >
 
struct  NiHu::shape_set_traits::name< Derived >
 The shape set's textual id - used for debug information. More...
 
struct  NiHu::shape_set_traits::domain< Derived >
 Defines the domain where the shape function set is defined. More...
 
struct  NiHu::shape_set_traits::num_nodes< Derived >
 Defines the number of shape functions in the set. More...
 
struct  NiHu::shape_set_traits::id< Derived >
 Assigns an id to the shape set. More...
 
struct  NiHu::shape_set_traits::polynomial_order< Derived >
 Defines the polynomial order of the shape set. More...
 
struct  NiHu::shape_set_traits::jacobian_order< Derived >
 Defines the polynomial order of the shape set's Jacobian. More...
 
struct  NiHu::shape_set_traits::shape_complexity< Derived, Order >
 Defines the complexity to determine if the shape functions can be precomputed or not. More...
 
struct  NiHu::shape_set_traits::shape_value_type< Derived, Order >
 Defines the value type of the shape function matrix (and derivatives) More...
 
struct  NiHu::shape_set_traits::factory_functor< Derived, Order >
 Defines the factory functor that computes or stores the shape functions. More...
 
struct  NiHu::shape_set_traits::shape_return_type< Derived, Order >
 Defines the return type of the shape function matrix. More...
 
struct  NiHu::shape_set_traits::position_dof_vector< Derived >
 defines the nodal degrees of freedoms of the shape functions More...
 
struct  NiHu::shape_set_traits::position_dof_vector_mat< Derived >
 the materialized position vector type More...
 
struct  NiHu::shape_set_traits::corner_index_vector< Derived >
 
struct  NiHu::shape_set_traits::corner_index_vector_mat< Derived >
 the materialized corner index vector type More...
 
class  NiHu::shape_set_base< Derived >
 Shapeset base class for CRTP. More...
 
struct  NiHu::shape_set_base< Derived >::shape_value_type< Order >
 type of an \(L(\xi)\) vector More...
 
class  NiHu::constant_shape_set< Domain >
 Constant interpolation functions. More...
 
struct  NiHu::shape_set_traits::domain< constant_shape_set< Domain > >
 
struct  NiHu::shape_set_traits::num_nodes< constant_shape_set< Domain > >
 
struct  NiHu::shape_set_traits::polynomial_order< constant_shape_set< Domain > >
 
struct  NiHu::shape_set_traits::jacobian_order< constant_shape_set< Domain > >
 
struct  NiHu::shape_set_traits::shape_complexity< constant_shape_set< Domain >, 0 >
 
struct  NiHu::shape_set_traits::shape_complexity< constant_shape_set< Domain >, 1 >
 
struct  NiHu::shape_set_traits::shape_complexity< constant_shape_set< Domain >, 2 >
 
struct  NiHu::shape_set_traits::position_dof_vector< constant_shape_set< Domain > >
 
struct  NiHu::shape_set_traits::corner_index_vector< constant_shape_set< Domain > >
 
class  NiHu::constant_shape_set< Domain >
 Constant interpolation functions. More...
 
class  NiHu::shape_function< constant_shape_set< Domain >, 0 >
 
class  NiHu::shape_function< constant_shape_set< Domain >, 1 >
 
class  NiHu::shape_function< constant_shape_set< Domain >, 2 >
 
class  NiHu::isoparam_shape_set< Domain >
 Isoparametric shape sets. More...
 
struct  NiHu::shape_set_traits::domain< isoparam_shape_set< Domain > >
 
struct  NiHu::shape_set_traits::num_nodes< isoparam_shape_set< Domain > >
 
struct  NiHu::shape_set_traits::polynomial_order< isoparam_shape_set< Domain > >
 
struct  NiHu::shape_set_traits::position_dof_vector< isoparam_shape_set< Domain > >
 
struct  NiHu::shape_set_traits::corner_index_vector< isoparam_shape_set< Domain > >
 
class  NiHu::isoparam_shape_set< Domain >
 Isoparametric shape sets. More...
 

Namespaces

 NiHu::shape_derivative_index
 shape function derivative indices These indices are used to index the first and second derivatives of the shape functions.
 
 NiHu::shape_set_traits
 Traits of shape function sets.
 

Typedefs

typedef position_dof< 0 > NiHu::dof0
 shorthand for 0 dof
 
typedef position_dof< 1 > NiHu::dof1
 shorthand for 1 dof
 
typedef position_dof< 2 > NiHu::dof2
 shorthand for 2 dof
 
typedef position_dof< 3 > NiHu::dof3
 shorthand for 3 dof
 
typedef corner_index<-1 > NiHu::not_corner
 

Enumerations

enum  {
  NiHu::shape_derivative_index::dXI = 0, NiHu::shape_derivative_index::dETA = 1, NiHu::shape_derivative_index::dXIXI = 0, NiHu::shape_derivative_index::dXIETA = 1,
  NiHu::shape_derivative_index::dETAXI = 1, NiHu::shape_derivative_index::dETAETA = 2
}
 

Functions

constexpr unsigned NiHu::num_derivatives (unsigned order, unsigned dim)
 return the number of partial derivatives in dim dimensions In 1D there is one partial derivative and one second partial derivative. In 2D there are two partial derivatives and four second derivatives, but because of symmetry, the actual number of different second derivatives is 3.
 

Detailed Description

Definition of shape function sets.

Definition in file shapeset.hpp.