Class triangle_quadrature_rule


Code: quadrature/quadrature.mpl

An instance of this class represents a rule for approximate integration of functions on the two-simplex. Such a rule consists of a list of sample points and a list of weights; the approximate integral is obtained by evaluating at the sample points, multiplying by the corresponding weights, and taking the sum. Following work of Dunavant, we consider only rules that are invariant under the evident action of the symmetric group $S_3$ on the simplex. We choose one sample point from each $S_3$-orbit, and call these the base points for the rule.

Field: description::string = ""
Field: degree::integer

The degree should be set to $d$ if the quadrature rule integrates all polynomials of degree at most $d$ exactly (up to the working precision).

Field: num_base_points::integer

The number of base points, or equivalently the number of $S_3$-orbits of sample points.

Field: base_points::list(RR_3)

The list of base points. These should have the form [p1,p2,p3] where either p1 < p2 < p3 or p1 <> p2 = p3 or p1 = p2 = p3.

Field: base_weights::list(RR)

The list of weights of base points

Field: base_multiplicities::list(posint)

The list of multiplicities of base points; the multiplicity is the size of the $S_3$-orbit

Field: base_r::list(RR)

The list of $r$-values for base points. Here the $r$-value of a point $u$ is the distance from the origin to the point triangle_proj(u) in $\mathbb{R}^2$.

Field: base_theta::list(RR)

The list of $\theta$-values for base points. Here the $\theta$-value of a point $u$ is the standard polar coordinate for the point triangle_proj(u) in $\mathbb{R}^2$.

Field: num_points::integer

The number of sample points.

Field: points::list(RR_3)

The list of all sample points

Field: weights::list(RR)

The list of weights for all sample points

Constructor: `new/triangle_quadrature_rule`(deg::integer,pts::list(RR_3),wgts::list(RR),)

Method: set(deg::integer,pts::list([numeric, numeric, numeric]),wgts::list(numeric))::void
Method: int(u)

This returns the approximate integral of u, which is expected to be an expression in the variables t[1], t[2] and t[3]


Method: split_int(u,k)

This returns an approximate integral of u, obtained by dividing the triangle into $4^k$ smaller triangles, and applying the givenquadrature rule on each piece.


Method: exact_int(u)

This calculates the integral of u using Maple's adaptive algorithms.


Method: base_plot()

This generates a plot showing the base points


Method: plot()

This generates a plot showing all the quadrature points


Method: moment_eq(j,k)

This generates an equation depending on j and k, which will be satisfied if the quadrature rule is exact.


Method: accuracy()::numeric
Method: adjust()
Method: improve()