36 List all existing schemes for triangles.
38 L = [(quadpy.triangle.BerntsenEspelid(k), 1.0e-11)
for k
in range(1, 5)] \
39 + [(quadpy.triangle.Centroid(), 1.0e-14)] \
40 + [(quadpy.triangle.CoolsHaegemans(k), 1.0e-13)
for k
in [1]] \
41 + [(quadpy.triangle.Cubtri(), 1.0e-14)] \
42 + [(quadpy.triangle.Dunavant(k), 1.0e-12)
for k
in range(1, 21)] \
43 + [(quadpy.triangle.Gatermann(), 1.0e-12)] \
44 + [(quadpy.triangle.GrundmannMoeller(k), 1.0e-12)
for k
in range(10)] \
45 + [(quadpy.triangle.HammerMarloweStroud(k), 1.0e-14)
for k
in range(1, 6)] \
46 + [(quadpy.triangle.HammerStroud(k), 1.0e-14)
for k
in [2, 3]] \
47 + [(quadpy.triangle.Hillion(k), 1.0e-14)
for k
in range(1, 11)] \
48 + [(quadpy.triangle.LaursenGellert(key), 1.0e-13)
for key
in quadpy.triangle.LaursenGellert.keys] \
49 + [(quadpy.triangle.Lether(k), 1.0e-14)
for k
in range(1, 14)] \
50 + [(quadpy.triangle.LiuVinokur(k), 1.0e-14)
for k
in range(1, 14)] \
51 + [(quadpy.triangle.LynessJespersen(k), 1.0e-11)
for k
in range(1, 22)] \
52 + [(quadpy.triangle.NewtonCotesClosed(k), 1.0e-14)
for k
in range(1, 6)] \
53 + [(quadpy.triangle.NewtonCotesOpen(k), 1.0e-13)
for k
in range(6)] \
54 + [(quadpy.triangle.Papanicolopulos(
'fs', k), 1.0e-13)
for k
in range(9)] \
55 + [(quadpy.triangle.Papanicolopulos(
'rot', k), 1.0e-14)
57 for k
in range(8, 18)] \
58 + [(quadpy.triangle.SevenPoint(), 1.0e-14)] \
59 + [(quadpy.triangle.Strang(k), 1.0e-14)
for k
in range(1, 11)] \
60 + [(quadpy.triangle.Stroud(k), 1.0e-12)
for k
in [
'T2 3-1',
'T2 5-1',
'T2 7-1']] \
61 + [(quadpy.triangle.TaylorWingateBos(k), 1.0e-12)
for k
in [1, 2, 4, 5, 8]] \
62 + [(quadpy.triangle.Triex(k), 1.0e-13)
for k
in [19, 28]] \
63 + [(quadpy.triangle.Vertex(), 1.0e-14)] \
64 + [(quadpy.triangle.VioreanuRokhlin(k), 1.0e-11)
for k
in range(20)] \
65 + [(quadpy.triangle.Walkington(k), 1.0e-14)
for k
in [1, 2, 3, 5,
'p5']] \
66 + [(quadpy.triangle.WandzuraXiao(k), 1.0e-14)
for k
in range(1, 7)] \
67 + [(quadpy.triangle.WilliamsShunnJameson(k), 1.0e-11)
for k
in range(1, 9)] \
68 + [(quadpy.triangle.WitherdenVincent(k), 1.0e-14)
for k
in [
69 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
71 + [(quadpy.triangle.XiaoGimbutas(k), 1.0e-14)
for k
in range(1, 51)] \
72 + [(quadpy.triangle.ZhangCuiLiu(k), 1.0e-14)
for k
in [1, 2, 3]]
93 1. All its weights sums up to one;
94 2. All the weights are positive;
95 3. All its points are inside the reference triangle;
96 4. No point lie on an edge.
98 return math.isclose(numpy.sum(scheme.weights), 1.0, rel_tol=1e-10) \
99 and (scheme.weights >= tol).all() \
100 and (scheme.points >= 0).all() \
101 and (scheme.points[:, 0] + scheme.points[:, 1] <= 1 - tol).all() \
102 and (scheme.points[:, 0] >= tol).all() \
103 and (scheme.points[:, 1] >= tol).all()