@@ -263,13 +263,15 @@ def signature(self) -> str:
263
263
"""String identifying the finite element."""
264
264
return self ._cpp_object .signature
265
265
266
- def T_apply (self , x : npt .NDArray [np .floating ], cell_permutations : np .int32 , dim : int ) -> None :
266
+ def T_apply (
267
+ self , x : npt .NDArray [np .floating ], cell_permutations : npt .NDArray [np .uint32 ], dim : int
268
+ ) -> None :
267
269
"""Transform basis functions from the reference element ordering and orientation to the
268
270
globally consistent physical element ordering and orientation.
269
271
270
272
Args:
271
- x: Data to transform (in place). The shape is ``(m , n)``, where `m` is the number of
272
- dgerees -of-freedom and the storage is row-major.
273
+ x: Data to transform (in place). The shape is ``(num_cells , n, dim )``, where ``n`` is
274
+ the number degrees -of-freedom and the data is flattened ( row-major) .
273
275
cell_permutations: Permutation data for the cell.
274
276
dim: Number of columns in ``data``.
275
277
@@ -279,37 +281,31 @@ def T_apply(self, x: npt.NDArray[np.floating], cell_permutations: np.int32, dim:
279
281
"""
280
282
self ._cpp_object .T_apply (x , cell_permutations , dim )
281
283
282
- def Tt_apply (self , x : npt .NDArray [np .floating ], cell_permutations : np .int32 , dim : int ) -> None :
284
+ def Tt_apply (
285
+ self , x : npt .NDArray [np .floating ], cell_permutations : npt .NDArray [np .uint32 ], dim : int
286
+ ) -> None :
283
287
"""Apply the transpose of the operator applied by T_apply().
284
288
285
289
Args:
286
- x: Data to transform (in place). The shape is ``(m, n)``, where `m` is the number of
287
- dgerees-of-freedom and the storage is row-major.
288
- cell_permutations: Permutation data for the cell.
289
- dim: Number of columns in `data`.
290
-
291
- Note:
292
- Exposed for testing. Function is not vectorised across multiple cells. Please see
293
- `basix.numba_helpers` for performant versions.
290
+ x: Data to transform (in place). The shape is ``(num_cells, n, dim)``, where ``n`` is
291
+ the number degrees-of-freedom and the data is flattened (row-major).
292
+ cell_permutations: Permutation data for the cells
293
+ dim: Number of columns in ``data``.
294
294
"""
295
295
self ._cpp_object .Tt_apply (x , cell_permutations , dim )
296
296
297
297
def Tt_inv_apply (
298
- self , x : npt .NDArray [np .floating ], cell_permutations : np .int32 , dim : int
298
+ self , x : npt .NDArray [np .floating ], cell_permutations : npt . NDArray [ np .uint32 ] , dim : int
299
299
) -> None :
300
300
"""Apply the inverse transpose of the operator applied by T_apply().
301
301
302
302
Args:
303
- x: Data to transform (in place). The shape is ``(m, n)``, where ``m`` is the number of
304
- dgerees-of-freedom and the storage is row-major.
305
- cell_permutations: Permutation data for the cell.
306
- dim: Number of columns in `data`.
307
-
308
- Note:
309
- Exposed for testing. Function is not vectorised across multiple cells. Please see
310
- ``basix.numba_helpers`` for performant versions.
303
+ x: Data to transform (in place). The shape is ``(num_cells, n, dim)``, where ``n`` is
304
+ the number degrees-of-freedom and the data is flattened (row-major).
305
+ cell_permutations: Permutation data for the cells
306
+ dim: Number of columns in ``data``.
311
307
"""
312
- self ._cpp_object .Tt_apply (x , cell_permutations , dim )
308
+ self ._cpp_object .Tt_inv_apply (x , cell_permutations , dim )
313
309
314
310
315
311
def finiteelement (
0 commit comments