Bembel
Bembel::SuperSpace< Derived > Struct Template Reference

The superspace manages local polynomial bases on each element of the mesh and provides an interface to evaluate them. More...

#include <SuperSpace.hpp>

Detailed Description

template<typename Derived>
struct Bembel::SuperSpace< Derived >

The superspace manages local polynomial bases on each element of the mesh and provides an interface to evaluate them.

Definition at line 22 of file SuperSpace.hpp.

Public Member Functions

 SuperSpace ()
 Default constructor for the SuperSpace class. More...
 
 SuperSpace (Geometry &geom, int M, int P)
 Parameterized constructor for the SuperSpace class. More...
 
 SuperSpace (const SuperSpace &other)
 Copy constructor for the SuperSpace class. More...
 
 SuperSpace (SuperSpace &&other)
 Move constructor for the SuperSpace class. More...
 
SuperSpaceoperator= (SuperSpace other)
 Assignment operator for the SuperSpace class. More...
 
int get_polynomial_degree () const
 
int get_polynomial_degree_plus_one_squared () const
 
int get_refinement_level () const
 
int get_number_of_elements () const
 
int get_number_of_patches () const
 
const PatchVectorget_geometry () const
 
const ClusterTreeget_mesh () const
 
void init_SuperSpace (const Geometry &geom, int M, int P)
 
void map2surface (const ElementTreeNode &e, const Eigen::Vector2d &xi, double w, SurfacePoint *surf_pt) const
 Evaluation of a point in the element and its Jacobian matrix. More...
 
void addScaledBasisInteraction (Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > *intval, typename LinearOperatorTraits< Derived >::Scalar w, const Eigen::Vector2d &s, const Eigen::Vector2d &t) const
 Compute all products of local shape functions on the unit square at coordinates s,t, scale by w and add to intval.
 
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > basisInteraction (const Eigen::Vector2d &s, const Eigen::Vector2d &t) const
 Compute all products of local shape functions on the unit square at coordinates s,t.
 
void addScaledSurfaceCurlInteraction (Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > *intval, Scalar w, const SurfacePoint &p1, const SurfacePoint &p2) const
 Compute all products of surface curls of local shape functions on the unit square at coordinates s,t.
 
void addScaledSurfaceGradientInteraction (Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > *intval, Scalar w, const SurfacePoint &p1, const SurfacePoint &p2) const
 Compute all products of surface gradients of local shape functions on the unit square at coordinates s,t.
 
void addScaledVectorBasisInteraction (Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > *intval, Scalar w, const Eigen::Vector2d &s, const Eigen::Vector2d &t, const Eigen::Vector3d x_f_dx, const Eigen::Vector3d x_f_dy, const Eigen::Vector3d y_f_dx, const Eigen::Vector3d y_f_dy) const
 Compute all scalar products of vector valued local shape functions on the surface points with reference coordinates s,t, scale by w and add to intval.
 
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > vectorBasisInteraction (const Eigen::Vector2d &s, const Eigen::Vector2d &t, const Eigen::Vector3d x_f_dx, const Eigen::Vector3d x_f_dy, const Eigen::Vector3d y_f_dx, const Eigen::Vector3d y_f_dy) const
 Compute all scalar products of vector valued local shape functions on the surface points with reference coordinates s,t.
 
void addScaledVectorBasisDivergenceInteraction (Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > *intval, Scalar w, const Eigen::Vector2d &s, const Eigen::Vector2d &t) const
 Compute all products of divergences of local shape functions on the unit square at coordinates s,t, scale by w and add to intval.
 
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > vectorBasisDivergenceInteraction (const Eigen::Vector2d &s, const Eigen::Vector2d &t) const
 Compute all products of divergences of local shape functions on the unit square at coordinates s,t.
 
void addScaledBasis (Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > *intval, Scalar w, const Eigen::Vector2d &s) const
 Evaluate local shape functions on the unit square at coordinate s, scale by w and add to intval.
 
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > basis (const Eigen::Vector2d &s) const
 Evaluate local shape functions on the unit square at coordinate s.
 
void addScaledBasisDx (Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > *intval, typename LinearOperatorTraits< Derived >::Scalar w, const Eigen::Vector2d &s) const
 Evaluate derivatives in x direction of local shape functions on the unit square at coordinate s, scale by w and add to intval.
 
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > basisDx (const Eigen::Vector2d &s) const
 Evaluate derivatives in x direction of local shape functions on the unit square at coordinate s.
 
void addScaledBasisDy (Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > *intval, typename LinearOperatorTraits< Derived >::Scalar w, const Eigen::Vector2d &s) const
 Evaluate derivatives in y direction of local shape functions on the unit square at coordinate s, scale by w and add to intval.
 
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > basisDy (const Eigen::Vector2d &s) const
 Evaluate derivatives in y direction of local shape functions on the unit square at coordinate s.
 
void addScaledBasis1D (Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > *intval, Scalar w, double s) const
 Evaluate local shape functions on the unit interval at coordinate s, scale by w and add to intval.
 
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > basis1D (double s) const
 Evaluate local shape functions on the unit interval at coordinate s.
 
void addScaledBasis1DDx (Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > *intval, Scalar w, double s) const
 Evaluate derivatives of local shape functions on the unit interval at coordinate s, scale by w and add to intval.
 
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > basis1DDx (double s) const
 Evaluate derivatives of local shape functions on the unit interval at coordinate s.
 

Public Types

typedef LinearOperatorTraits< Derived >::Scalar Scalar
 

Constructor & Destructor Documentation

◆ SuperSpace() [1/4]

template<typename Derived >
Bembel::SuperSpace< Derived >::SuperSpace ( )
inline

Default constructor for the SuperSpace class.

This constructor creates a SuperSpace object with default parameters.

Definition at line 32 of file SuperSpace.hpp.

◆ SuperSpace() [2/4]

template<typename Derived >
Bembel::SuperSpace< Derived >::SuperSpace ( Geometry geom,
int  M,
int  P 
)
inline

Parameterized constructor for the SuperSpace class.

This constructor initializes a SuperSpace object with the provided parameters.

Parameters
geomThe geometry object defining the space.
MThe refinement level of the space.
PThe degree of polynomials used in the space.

Definition at line 43 of file SuperSpace.hpp.

◆ SuperSpace() [3/4]

template<typename Derived >
Bembel::SuperSpace< Derived >::SuperSpace ( const SuperSpace< Derived > &  other)
inline

Copy constructor for the SuperSpace class.

This constructor initializes a SuperSpace object by copying another SuperSpace object.

Parameters
otherThe SuperSpace object to copy from.

Definition at line 52 of file SuperSpace.hpp.

◆ SuperSpace() [4/4]

template<typename Derived >
Bembel::SuperSpace< Derived >::SuperSpace ( SuperSpace< Derived > &&  other)
inline

Move constructor for the SuperSpace class.

This constructor initializes a SuperSpace object by moving from another SuperSpace object.

Parameters
otherThe SuperSpace object to move from.

Definition at line 74 of file SuperSpace.hpp.

Member Function Documentation

◆ map2surface()

template<typename Derived >
void Bembel::SuperSpace< Derived >::map2surface ( const ElementTreeNode e,
const Eigen::Vector2d &  xi,
double  w,
SurfacePoint surf_pt 
) const
inline

Evaluation of a point in the element and its Jacobian matrix.

This function performs the affine transformation of an element to the reference domain of the patch and returns the output in a surface point.

Parameters
e: Element to be evaluated,
xi: Point in [0, 1]^2 of the element
w: Quadrature weight
surf_pt: Evaluated point and its jacobian

Definition at line 160 of file SuperSpace.hpp.

◆ operator=()

template<typename Derived >
SuperSpace& Bembel::SuperSpace< Derived >::operator= ( SuperSpace< Derived >  other)
inline

Assignment operator for the SuperSpace class.

This operator assigns the contents of another SuperSpace object to this one.

Parameters
otherThe SuperSpace object to copy from.
Returns
A reference to the updated SuperSpace object.

Definition at line 97 of file SuperSpace.hpp.


The documentation for this struct was generated from the following file: