File schemes.py changed (mode: 100644) (index 0034d2e..0552567) |
... |
... |
def get_all_tn_simplex_schemes(dim): |
60 |
60 |
scheme = Scheme(dim) |
scheme = Scheme(dim) |
61 |
61 |
schemes[scheme.name] = scheme |
schemes[scheme.name] = scheme |
62 |
62 |
except: |
except: |
63 |
|
pass |
|
|
63 |
|
print(item, "Excluded") |
64 |
64 |
|
|
65 |
65 |
return schemes |
return schemes |
66 |
66 |
|
|
67 |
67 |
tn_simplices = [ |
tn_simplices = [ |
68 |
68 |
'stroud_tn_1_1', |
'stroud_tn_1_1', |
69 |
|
'stroud_tn_1_2', |
|
|
69 |
|
'stroud_tn_1_2', # laufer_1 |
70 |
70 |
'stroud_tn_2_1a', |
'stroud_tn_2_1a', |
71 |
71 |
'stroud_tn_2_1b', |
'stroud_tn_2_1b', |
72 |
|
'stroud_tn_2_2', |
|
|
72 |
|
'stroud_tn_2_2', # laufer_2 |
73 |
73 |
'stroud_tn_3_1', |
'stroud_tn_3_1', |
74 |
74 |
'stroud_tn_3_2', |
'stroud_tn_3_2', |
75 |
75 |
'stroud_tn_3_3', |
'stroud_tn_3_3', |
|
... |
... |
tn_simplices = [ |
79 |
79 |
'stroud_tn_3_6b', |
'stroud_tn_3_6b', |
80 |
80 |
'stroud_tn_3_7', |
'stroud_tn_3_7', |
81 |
81 |
'stroud_tn_3_8', |
'stroud_tn_3_8', |
82 |
|
'stroud_tn_3_9', |
|
|
82 |
|
'stroud_tn_3_9', # laufer_3 |
83 |
83 |
'stroud_tn_3_10', |
'stroud_tn_3_10', |
84 |
84 |
'stroud_tn_3_11', |
'stroud_tn_3_11', |
85 |
|
'stroud_tn_4_1', |
|
|
85 |
|
'stroud_tn_4_1', # laufer_4 n>=3 |
86 |
86 |
'stroud_tn_5_1', |
'stroud_tn_5_1', |
87 |
|
'stroud_tn_5_2', |
|
|
87 |
|
'stroud_tn_5_2', # laufer_5 n>=4 |
88 |
88 |
'walkington_1', |
'walkington_1', |
89 |
89 |
'walkington_2', |
'walkington_2', |
90 |
90 |
'walkington_3', |
'walkington_3', |
91 |
|
'walkington_5', |
|
92 |
|
'walkington_7' |
|
|
91 |
|
'walkington_5', #owntest n=2,3 |
|
92 |
|
'walkington_7' #owntest n=3 |
93 |
93 |
] |
] |
94 |
94 |
|
|
|
95 |
|
tn_simplices_2d = [ |
|
96 |
|
'stroud_tn_1_1', |
|
97 |
|
'stroud_tn_1_2', # laufer_1 |
|
98 |
|
'stroud_tn_2_1a', |
|
99 |
|
'stroud_tn_2_1b', |
|
100 |
|
'stroud_tn_2_2', # laufer_2 |
|
101 |
|
'stroud_tn_3_1', |
|
102 |
|
'stroud_tn_3_2', |
|
103 |
|
'stroud_tn_3_3', |
|
104 |
|
'stroud_tn_3_4', |
|
105 |
|
'stroud_tn_3_6a', |
|
106 |
|
'stroud_tn_3_6b', |
|
107 |
|
'stroud_tn_3_8', |
|
108 |
|
'stroud_tn_3_9', # laufer_3 |
|
109 |
|
'walkington_1', |
|
110 |
|
'walkington_2', |
|
111 |
|
'walkington_3', |
|
112 |
|
'walkington_5', #owntest n=2,3 |
|
113 |
|
] |
|
114 |
|
|
|
115 |
|
def get_t2_keys(): |
|
116 |
|
return list(quadpy.t2.schemes.keys()).extend(tn_simplices_2d) |
|
117 |
|
|
|
118 |
|
def get_t3_keys(): |
|
119 |
|
return list(quadpy.t3.schemes.keys()).extend(tn_simplices) |
|
120 |
|
|
|
121 |
|
def get_t2_scheme(key): |
|
122 |
|
try: |
|
123 |
|
return quadpy.t2.schemes[key] |
|
124 |
|
except KeyError: |
|
125 |
|
Scheme = getattr(quadpy.tn, key) |
|
126 |
|
return Scheme(2) |
|
127 |
|
|
|
128 |
|
def get_t3_scheme(key): |
|
129 |
|
try: |
|
130 |
|
return quadpy.t3.schemes[key] |
|
131 |
|
except KeyError: |
|
132 |
|
Scheme = getattr(quadpy.tn, key) |
|
133 |
|
return Scheme(3) |
|
134 |
|
|
|
135 |
|
|
|
136 |
|
def get_tn_keys(ndim): |
|
137 |
|
keys = ['Grundmann-Möller', 'Silvester open', 'Silvester closed'] |
|
138 |
|
if ndim == 2: |
|
139 |
|
keys.extend(quadpy.t2.schemes.keys()) |
|
140 |
|
keys.extend(tn_simplices_2d) |
|
141 |
|
elif ndim == 3: |
|
142 |
|
keys.extend(quadpy.t3.schemes.keys()) |
|
143 |
|
keys.extend(tn_simplices) |
|
144 |
|
keys.remove('stroud_tn_5_2') |
|
145 |
|
elif ndim == 4: |
|
146 |
|
keys.extend(tn_simplices) |
|
147 |
|
keys.remove('walkington_5') |
|
148 |
|
keys.remove('walkington_7') |
|
149 |
|
elif ndim == 5: |
|
150 |
|
keys.extend(tn_simplices) |
|
151 |
|
keys.remove('stroud_tn_3_10') |
|
152 |
|
keys.remove('stroud_tn_3_11') |
|
153 |
|
keys.remove('walkington_5') |
|
154 |
|
keys.remove('walkington_7') |
|
155 |
|
|
|
156 |
|
else: |
|
157 |
|
keys.extend(tn_simplices) |
|
158 |
|
return keys |
|
159 |
|
|
|
160 |
|
|
|
161 |
|
def get_tn_scheme(key, ndim, degree=5): |
|
162 |
|
if key == 'Grundmann-Möller': |
|
163 |
|
return quadpy.tn.grundmann_moeller(ndim, degree) |
|
164 |
|
elif key == 'Silvester open': |
|
165 |
|
return quadpy.tn.silvester(ndim, variant="open", n=degree+1, symbolic=False) |
|
166 |
|
elif key == 'Silvester closed': |
|
167 |
|
return quadpy.tn.silvester(ndim, variant="closed", n=degree+1, symbolic=False) |
|
168 |
|
elif ndim == 2: |
|
169 |
|
return get_t2_scheme(key) |
|
170 |
|
elif ndim == 3: |
|
171 |
|
return get_t3_scheme(key) |
|
172 |
|
else: |
|
173 |
|
Scheme = getattr(quadpy.tn, key) |
|
174 |
|
return Scheme(ndim) |
|
175 |
|
|
|
176 |
|
|
|
177 |
|
|
|
178 |
|
|
|
179 |
|
|