21#include "rheolef/quadrature.h"
22#include "rheolef/gauss_jacobi.h"
40 quadrature_option::family_type
f = opt.get_family();
44 if (
f == quadrature_option::equispaced) {
52 wx (
x(
T(
int(i))/r), w);
65 if (
f == quadrature_option::gauss_lobatto) {
66 switch (opt.get_order()) {
84 wx(
x(0.5-0.5/sqrt(
T(5))),
T(5)/
T(12));
85 wx(
x(0.5+0.5/sqrt(
T(5))),
T(5)/
T(12));
92 wx(
x(0.5-0.5/sqrt(
T(3)/
T(7))),
T(49)/
T(180));
93 wx(
x(
T(0.5)),
T(64)/
T(180));
94 wx(
x(0.5+0.5/sqrt(
T(3)/
T(7))),
T(49)/
T(180));
98 error_macro (
"unsupported Gauss-Lobatto("<<opt.get_order()<<
")");
106 "unsupported quadrature family \"" << opt.get_family_name() <<
"\"");
111 vector<T> zeta(n), omega(n);
114 wx (
x((1+zeta[i])/2), omega[i]/2);
119#define _RHEOLEF_instanciation(T) \
120template void quadrature_on_geo<T>::init_edge (quadrature_option);
#define _RHEOLEF_instanciation(T, M, A)
see the Float page for the full documentation
base::size_type size_type
static size_type n_node_gauss(size_type r)
void init_edge(quadrature_option opt)
void wx(const point_basic< T > &x, const T &w)
#define error_macro(message)
check_macro(expr1.have_homogeneous_space(Xh1), "dual(expr1,expr2); expr1 should have homogeneous space. HINT: use dual(interpolate(Xh, expr1),expr2)")
This file is part of Rheolef.
void gauss_jacobi(Size R, typename std::iterator_traits< OutputIterator1 >::value_type alpha, typename std::iterator_traits< OutputIterator1 >::value_type beta, OutputIterator1 zeta, OutputIterator2 omega)