archimedes.quadrature.compositeΒΆ
- archimedes.quadrature.composite(
- base: QuadratureRule,
- breakpoints: ndarray,
Tile
baseacross elements of its reference domain.Partitions
base.measure.supportatbreakpointsand appliesbase, affinely rescaled, to each element, concatenating the resulting nodes and weights. The result is itself aQuadratureRuleon the same reference domain β its nodes are just clustered at the element boundaries rather than spread uniformly β so it can be mapped onto a target domain/measure viascaled_points/scaled_weights/integrateexactly like any other rule ofbase.measure. This works becausemeasure.affine_paramsmaps affinely, and affine maps commute with subdivision: rescaling the whole composite pattern onto[a, b]is the same as building the elements directly on the rescaled sub-intervals of[a, b].Only defined for families whose reference weight is uniform (see
Measure.uniform_weight) β otherwise each interior element boundary would pick up a spurious copy of the weightβs shape, which is only meaningful at the true endpoints of the reference domain.- Parameters:
base (QuadratureRule) β Rule to tile across elements.
base.measure.uniform_weightmust beTrue.breakpoints (array_like) β Element boundaries, shape
(k + 1,)forkelements. Must be strictly increasing and spanbase.measure.supportexactly (first/last entries equal to its endpoints).
- Returns:
rule β Composite rule with
k * len(base)nodes on the same reference domain asbase.- Return type:
- Raises:
ValueError β If
base.measure.uniform_weightisFalse, ifbreakpointshas fewer than 2 entries or is not strictly increasing, or if it does not spanbase.measure.supportexactly.