Welcome to the Bug Tracking System for the DUNE project.
Due to increasing spam attacks, we had to disable the feature of anonymous bug reports. You will have to register before you are able to report a new bug.
In case you experience any problems, let us know at http://www.dune-project.org/mailinglists.html .
Due to increasing spam attacks, we had to disable the feature of anonymous bug reports. You will have to register before you are able to report a new bug.
In case you experience any problems, let us know at http://www.dune-project.org/mailinglists.html .
FS#723 - method order on basis
|
DetailsWhat is the exact semantics of order()?
We would suggest to have two methods: k=interpolationOrder(): P_k subset span<b_i> K=maxOrder(): span<b_i> subset P_K Example: RT_0 would have k=0, K=1 Q_p would have k=p, K=2p P_p would have k=K=p Note that the maxOrder is only meaningful for polynomial basis functions (e.g. a sin/cos basis would have to have k=0, K=infinity). A third value which might be even more practical, is a bit difficult to define and has something todo with the required quadrature order. Assuming e.g. that a tensor product quadrature is used on cubes then the quadrature order for Q_p would be p=interpolationOrder(); but for RT_0 on simplex elements we need order 1=maxOrder(). Of course maxOrder always works but in the case of Q_p it is much to large. At the moment the order seems not consistently implemented: Q1LocalBasis::order returns 1 (interpolation order) RT0LocalBasis::order returns 1 (max order) Our basis function return the ''quadrature order''. |
This task depends upon
However returning one order is not sufficient in general:
1) Either we use the approach suggested above then Q_p might sometimes have p and some times not. Otherwise the rule for p might not be able to integrate exactly.
2) RefinedP* elements need quadrature rules on subtriangles obtained by red refinement.
3) There are elements defined on barycentric refined triangles (Hsieh-Clough-Tocher).
4) For hierarchical basis functions there are different orders for the functions.
5) If QuadRule(k) with k=basis.order() can integrate the basis functions which rule is needed derivatives, products, products of derivatives, ...
In order to really solve the problem we would need to return some struct that contains more information and a mechanism to construct this for derivatives, products,... . Then some kind of factory should return a proper quadrature.