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()) {
76 wx(
x(
T(0)),
T(1)/
T(6));
77 wx(
x(
T(0.5)),
T(4)/
T(6));
78 wx(
x(
T(1)),
T(1)/
T(6));
83 wx(
x(
T(0)),
T(1)/
T(12));
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));
86 wx(
x(
T(1)),
T(1)/
T(12));
91 wx(
x(
T(0)),
T( 9)/
T(180));
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));
95 wx(
x(
T(1)),
T( 9)/
T(180));
98 error_macro (
"unsupported Gauss-Lobatto("<<opt.get_order()<<
")");
106 "unsupported quadrature family \"" << opt.get_family_name() <<
"\"");
110 size_type n = n_node_gauss(opt.get_order());
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
void init_edge(quadrature_option opt)
#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)