A static class template for generating quadrature abcsissas and weights for arbitrary-order and QuadratureRule and dimension.
More...
|
| static const double & | weight (const short unsigned int &k) |
| static const VectorDim | abscissa (const short unsigned int &k) |
| template<typename IntegrandType> |
| static void | integrate (IntegrandType(*fp)(const double &), IntegrandType &intgrl) |
| template<typename AnyClass, typename IntegrandType, typename ... Args> |
| static void | integrate (const AnyClass *const C, IntegrandType &intgrl, IntegrandType(AnyClass::*mfp)(const VectorDim &, const Args &...) const, const Args &...args) |
| template<typename AnyClass, typename IntegrandType, typename ... Args> |
| static void | integrate (const AnyClass *const C, IntegrandType &intgrl, IntegrandType(AnyClass::*mfp)(const int &, const Args &...) const, const Args &...args) |
| template<typename AnyClass, typename ... Args> |
| static void | execute (AnyClass *const C, void(AnyClass::*mfp)(const VectorDim &, const Args &...), const Args &...args) |
| template<typename AnyClass, typename ... Args> |
| static void | execute (AnyClass *const C, void(AnyClass::*mfp)(const int &, const Args &...), const Args &...args) |
template<short unsigned int dim, size_t qOrder, template< short unsigned int, size_t > class QuadratureRule = GaussLegendre>
struct model::Quadrature< dim, qOrder, QuadratureRule >
A static class template for generating quadrature abcsissas and weights for arbitrary-order and QuadratureRule and dimension.
Definition at line 49 of file Quadrature.h.
template<short unsigned int dim, size_t qOrder, template< short unsigned int, size_t > class QuadratureRule = GaussLegendre>
template<typename AnyClass, typename ... Args>
| void model::Quadrature< dim, qOrder, QuadratureRule >::execute |
( |
AnyClass *const | C, |
|
|
void(AnyClass::* | mfp )(const int &, const Args &...), |
|
|
const Args &... | args ) |
|
inlinestatic |
Execute non-static member function of arbitrary class, at quadrature points in range [0,1]
Definition at line 217 of file Quadrature.h.
template<short unsigned int dim, size_t qOrder, template< short unsigned int, size_t > class QuadratureRule = GaussLegendre>
template<typename AnyClass, typename ... Args>
| void model::Quadrature< dim, qOrder, QuadratureRule >::execute |
( |
AnyClass *const | C, |
|
|
void(AnyClass::* | mfp )(const VectorDim &, const Args &...), |
|
|
const Args &... | args ) |
|
inlinestatic |
Execute non-static member function of arbitrary class, at quadrature points in range [0,1]
Definition at line 205 of file Quadrature.h.
template<short unsigned int dim, size_t qOrder, template< short unsigned int, size_t > class QuadratureRule = GaussLegendre>
template<typename AnyClass, typename IntegrandType, typename ... Args>
| void model::Quadrature< dim, qOrder, QuadratureRule >::integrate |
( |
const AnyClass *const | C, |
|
|
IntegrandType & | intgrl, |
|
|
IntegrandType(AnyClass::* | mfp )(const int &, const Args &...) const, |
|
|
const Args &... | args ) |
|
inlinestatic |
Integrates non-static member function of arbitrary class in range [0,1]
- Parameters
-
| [out] | intgrl | The memory area to copy to. |
| [in] | mfp | The member function pointer. |
| [in] | C | The pointer to ... |
Sample code:
#include <iostream>
#include <Eigen/Dense>
class SomeClass{
Eigen::Matrix<double,3,3> integrand(
const double&
u)
const {
return Eigen::Matrix<double,3,3>::Ones()*
u*
u;
}
public:
template <size_t qOrder>
void compute_integral(){
Eigen::Matrix<double,3,3>
I=Eigen::Matrix<double,3,3>::Zero();
std::cout<<
I <<std::endl;
}
};
SomeClass sc;
sc.compute_integral<16>();
return 0;
}
static void integrate(IntegrandType(*fp)(const double &), IntegrandType &intgrl)
int main(int argc, char **argv) int main(argc
Definition at line 161 of file Quadrature.h.
template<short unsigned int dim, size_t qOrder, template< short unsigned int, size_t > class QuadratureRule = GaussLegendre>
template<typename AnyClass, typename IntegrandType, typename ... Args>
| void model::Quadrature< dim, qOrder, QuadratureRule >::integrate |
( |
const AnyClass *const | C, |
|
|
IntegrandType & | intgrl, |
|
|
IntegrandType(AnyClass::* | mfp )(const VectorDim &, const Args &...) const, |
|
|
const Args &... | args ) |
|
inlinestatic |
Integrates non-static member function of arbitrary class in range [0,1]
- Parameters
-
| [in] | C | The pointer to the class instance |
| [out] | intgrl | the returned integral (values are accumulated) |
| [in] | mfp | the member function pointer. |
Sample code:
#include <iostream>
#include <Eigen/Dense>
class SomeClass
{
Eigen::Matrix<double,3,3> integrand(
const double&
u)
const
{
return Eigen::Matrix<double,3,3>::Ones()*
u*
u;
}
public:
template <size_t qOrder>
void compute_integral()
{
Eigen::Matrix<double,3,3>
I=Eigen::Matrix<double,3,3>::Zero();
std::cout<<
I <<std::endl;
}
};
{
SomeClass sc;
sc.compute_integral<16>();
return 0;
}
Definition at line 113 of file Quadrature.h.
template<short unsigned int dim, size_t qOrder, template< short unsigned int, size_t > class QuadratureRule = GaussLegendre>
template<typename IntegrandType>
| void model::Quadrature< dim, qOrder, QuadratureRule >::integrate |
( |
IntegrandType(* | fp )(const double &), |
|
|
IntegrandType & | intgrl ) |
|
inlinestatic |
Integrates function in range [0,1]
- Parameters
-
| [in] | fp | the function pointer. |
| [out] | intgrl | the returned integral (values are accumulated) |
Sample code:
#include <iostream>
#include <Eigen/Dense>
Eigen::Matrix<double,3,3> integrand(
const double&
u)
{
return Eigen::Matrix<double,3,3>::Ones()*
u*
u;
}
{
Eigen::Matrix<double,3,3>
I=Eigen::Matrix<double,3,3>::Zero();
Q.integrate(&integrand,
I);
std::cout<<
I <<std::endl;
return 0;
}
Definition at line 81 of file Quadrature.h.