NiHu  2.0
nd_cheb.hpp File Reference

n-dimensional Chebyshev polynomial More...

#include "bounding_box.hpp"
#include "util/math_functions.hpp"
#include "util/misc.hpp"
#include <boost/math/special_functions/chebyshev.hpp>
#include <Eigen/Dense>
#include <cstddef>
Include dependency graph for nd_cheb.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<size_t Dim, class T = double>
Eigen::Matrix< T, Dim, Eigen::Dynamic > NiHu::fmm::lintrans (Eigen::Matrix< T, Dim, Eigen::Dynamic > const &x, bounding_box< Dim > const &bbTo, bounding_box< Dim > const &bbFrom)
 linear transform of points from a bounding box to an other More...
 
template<size_t Dim, class T = double>
Eigen::Matrix< T, Dim, Eigen::Dynamic > NiHu::fmm::chebnodes (size_t n, bounding_box< Dim > const &bb=bounding_box< Dim >())
 return Chebyshev nodes in a multidimensional bounding box More...
 
template<class T >
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > NiHu::fmm::chebanterp0 (size_t N, Eigen::Matrix< T, Eigen::Dynamic, 1 > const &x, Eigen::Matrix< T, Eigen::Dynamic, 1 > const &y)
 1D Chebyshev anterpolation matrix More...
 
template<class T >
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > NiHu::fmm::chebanterp0_dy (size_t N, Eigen::Matrix< T, Eigen::Dynamic, 1 > const &x, Eigen::Matrix< T, Eigen::Dynamic, 1 > const &y)
 y-derivative 1D Chebyshev anterpolation matrix More...
 
template<class T , size_t Dim>
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > NiHu::fmm::chebanterp (size_t N, bounding_box< Dim > const &bb, Eigen::Matrix< T, Dim, Eigen::Dynamic > const &y0)
 ND Chebyshev anterpolation matrix from points to Chebyshev nodes. More...
 
template<class T , size_t Dim>
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > NiHu::fmm::chebanterp_dny (size_t N, bounding_box< Dim > const &bb, Eigen::Matrix< T, Dim, Eigen::Dynamic > const &y0, Eigen::Matrix< T, Dim, Eigen::Dynamic > const &ny0)
 normal derivative of Chebyshev anterpolation matrix More...
 

Detailed Description

n-dimensional Chebyshev polynomial

Definition in file nd_cheb.hpp.

Function Documentation

◆ chebanterp()

template<class T , size_t Dim>
Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> NiHu::fmm::chebanterp ( size_t  N,
bounding_box< Dim > const &  bb,
Eigen::Matrix< T, Dim, Eigen::Dynamic > const &  y0 
)

ND Chebyshev anterpolation matrix from points to Chebyshev nodes.

Template Parameters
Tthe scalar type
Dimbounding box dimension
Parameters
[in]NChebyshev order
[in]bbthe bounding box of Chebyshev nodes
[in]y0the source nodes of anterpolation

Definition at line 148 of file nd_cheb.hpp.

◆ chebanterp0()

template<class T >
Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> NiHu::fmm::chebanterp0 ( size_t  N,
Eigen::Matrix< T, Eigen::Dynamic, 1 > const &  x,
Eigen::Matrix< T, Eigen::Dynamic, 1 > const &  y 
)

1D Chebyshev anterpolation matrix

Template Parameters
Tthe scalar type
Parameters
[in]NChebyshev order
[in]ysource nodes of anterpolation
[in]xreceiver nodes of anterpolation

Definition at line 89 of file nd_cheb.hpp.

◆ chebanterp0_dy()

template<class T >
Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> NiHu::fmm::chebanterp0_dy ( size_t  N,
Eigen::Matrix< T, Eigen::Dynamic, 1 > const &  x,
Eigen::Matrix< T, Eigen::Dynamic, 1 > const &  y 
)

y-derivative 1D Chebyshev anterpolation matrix

Template Parameters
Tthe scalar type
Parameters
[in]NChebyshev order
[in]ysource nodes of anterpolation
[in]xreceiver nodes of anterpolation

Definition at line 117 of file nd_cheb.hpp.

◆ chebanterp_dny()

template<class T , size_t Dim>
Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> NiHu::fmm::chebanterp_dny ( size_t  N,
bounding_box< Dim > const &  bb,
Eigen::Matrix< T, Dim, Eigen::Dynamic > const &  y0,
Eigen::Matrix< T, Dim, Eigen::Dynamic > const &  ny0 
)

normal derivative of Chebyshev anterpolation matrix

Template Parameters
Tthe scalar type
Dimbounding box dimension
Parameters
[in]NChebyshev order
[in]bbthe bounding box of Chebyshev nodes
[in]y0the source nodes of anterpolation
[in]ny0the source normal vectors

Definition at line 172 of file nd_cheb.hpp.

◆ chebnodes()

template<size_t Dim, class T = double>
Eigen::Matrix<T, Dim, Eigen::Dynamic> NiHu::fmm::chebnodes ( size_t  n,
bounding_box< Dim > const &  bb = bounding_box<Dim>() 
)

return Chebyshev nodes in a multidimensional bounding box

Template Parameters
Dimspace dimension
Tthe scalar type
Parameters
[in]nrequired number of Chebyshev nodes
[in]bbthe bounding box of Chebyshev nodes

Definition at line 55 of file nd_cheb.hpp.

◆ lintrans()

template<size_t Dim, class T = double>
Eigen::Matrix<T, Dim, Eigen::Dynamic> NiHu::fmm::lintrans ( Eigen::Matrix< T, Dim, Eigen::Dynamic > const &  x,
bounding_box< Dim > const &  bbTo,
bounding_box< Dim > const &  bbFrom 
)

linear transform of points from a bounding box to an other

Template Parameters
Dimdimension of space
Tthe scalar type
Parameters
[in]xDim x N matrix of points to transform
[in]bbTothe destination bounding box
[in]bbFromthe source bounding box

Definition at line 32 of file nd_cheb.hpp.