warp-lang 1.10.0__py3-none-macosx_11_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of warp-lang might be problematic. Click here for more details.

Files changed (468) hide show
  1. warp/__init__.py +334 -0
  2. warp/__init__.pyi +5856 -0
  3. warp/_src/__init__.py +14 -0
  4. warp/_src/autograd.py +1077 -0
  5. warp/_src/build.py +620 -0
  6. warp/_src/build_dll.py +642 -0
  7. warp/_src/builtins.py +10555 -0
  8. warp/_src/codegen.py +4361 -0
  9. warp/_src/config.py +178 -0
  10. warp/_src/constants.py +59 -0
  11. warp/_src/context.py +8352 -0
  12. warp/_src/dlpack.py +464 -0
  13. warp/_src/fabric.py +362 -0
  14. warp/_src/fem/__init__.py +14 -0
  15. warp/_src/fem/adaptivity.py +510 -0
  16. warp/_src/fem/cache.py +689 -0
  17. warp/_src/fem/dirichlet.py +190 -0
  18. warp/_src/fem/domain.py +553 -0
  19. warp/_src/fem/field/__init__.py +131 -0
  20. warp/_src/fem/field/field.py +703 -0
  21. warp/_src/fem/field/nodal_field.py +403 -0
  22. warp/_src/fem/field/restriction.py +39 -0
  23. warp/_src/fem/field/virtual.py +1021 -0
  24. warp/_src/fem/geometry/__init__.py +32 -0
  25. warp/_src/fem/geometry/adaptive_nanogrid.py +782 -0
  26. warp/_src/fem/geometry/closest_point.py +99 -0
  27. warp/_src/fem/geometry/deformed_geometry.py +277 -0
  28. warp/_src/fem/geometry/element.py +854 -0
  29. warp/_src/fem/geometry/geometry.py +693 -0
  30. warp/_src/fem/geometry/grid_2d.py +478 -0
  31. warp/_src/fem/geometry/grid_3d.py +539 -0
  32. warp/_src/fem/geometry/hexmesh.py +956 -0
  33. warp/_src/fem/geometry/nanogrid.py +660 -0
  34. warp/_src/fem/geometry/partition.py +483 -0
  35. warp/_src/fem/geometry/quadmesh.py +597 -0
  36. warp/_src/fem/geometry/tetmesh.py +762 -0
  37. warp/_src/fem/geometry/trimesh.py +588 -0
  38. warp/_src/fem/integrate.py +2507 -0
  39. warp/_src/fem/linalg.py +385 -0
  40. warp/_src/fem/operator.py +398 -0
  41. warp/_src/fem/polynomial.py +231 -0
  42. warp/_src/fem/quadrature/__init__.py +17 -0
  43. warp/_src/fem/quadrature/pic_quadrature.py +318 -0
  44. warp/_src/fem/quadrature/quadrature.py +665 -0
  45. warp/_src/fem/space/__init__.py +248 -0
  46. warp/_src/fem/space/basis_function_space.py +499 -0
  47. warp/_src/fem/space/basis_space.py +681 -0
  48. warp/_src/fem/space/dof_mapper.py +253 -0
  49. warp/_src/fem/space/function_space.py +312 -0
  50. warp/_src/fem/space/grid_2d_function_space.py +179 -0
  51. warp/_src/fem/space/grid_3d_function_space.py +229 -0
  52. warp/_src/fem/space/hexmesh_function_space.py +255 -0
  53. warp/_src/fem/space/nanogrid_function_space.py +199 -0
  54. warp/_src/fem/space/partition.py +435 -0
  55. warp/_src/fem/space/quadmesh_function_space.py +222 -0
  56. warp/_src/fem/space/restriction.py +221 -0
  57. warp/_src/fem/space/shape/__init__.py +152 -0
  58. warp/_src/fem/space/shape/cube_shape_function.py +1107 -0
  59. warp/_src/fem/space/shape/shape_function.py +134 -0
  60. warp/_src/fem/space/shape/square_shape_function.py +928 -0
  61. warp/_src/fem/space/shape/tet_shape_function.py +829 -0
  62. warp/_src/fem/space/shape/triangle_shape_function.py +674 -0
  63. warp/_src/fem/space/tetmesh_function_space.py +270 -0
  64. warp/_src/fem/space/topology.py +461 -0
  65. warp/_src/fem/space/trimesh_function_space.py +193 -0
  66. warp/_src/fem/types.py +114 -0
  67. warp/_src/fem/utils.py +488 -0
  68. warp/_src/jax.py +188 -0
  69. warp/_src/jax_experimental/__init__.py +14 -0
  70. warp/_src/jax_experimental/custom_call.py +389 -0
  71. warp/_src/jax_experimental/ffi.py +1286 -0
  72. warp/_src/jax_experimental/xla_ffi.py +658 -0
  73. warp/_src/marching_cubes.py +710 -0
  74. warp/_src/math.py +416 -0
  75. warp/_src/optim/__init__.py +14 -0
  76. warp/_src/optim/adam.py +165 -0
  77. warp/_src/optim/linear.py +1608 -0
  78. warp/_src/optim/sgd.py +114 -0
  79. warp/_src/paddle.py +408 -0
  80. warp/_src/render/__init__.py +14 -0
  81. warp/_src/render/imgui_manager.py +291 -0
  82. warp/_src/render/render_opengl.py +3638 -0
  83. warp/_src/render/render_usd.py +939 -0
  84. warp/_src/render/utils.py +162 -0
  85. warp/_src/sparse.py +2718 -0
  86. warp/_src/tape.py +1208 -0
  87. warp/_src/thirdparty/__init__.py +0 -0
  88. warp/_src/thirdparty/appdirs.py +598 -0
  89. warp/_src/thirdparty/dlpack.py +145 -0
  90. warp/_src/thirdparty/unittest_parallel.py +676 -0
  91. warp/_src/torch.py +393 -0
  92. warp/_src/types.py +5888 -0
  93. warp/_src/utils.py +1695 -0
  94. warp/autograd.py +33 -0
  95. warp/bin/libwarp-clang.dylib +0 -0
  96. warp/bin/libwarp.dylib +0 -0
  97. warp/build.py +29 -0
  98. warp/build_dll.py +24 -0
  99. warp/codegen.py +24 -0
  100. warp/constants.py +24 -0
  101. warp/context.py +33 -0
  102. warp/dlpack.py +24 -0
  103. warp/examples/__init__.py +24 -0
  104. warp/examples/assets/bear.usd +0 -0
  105. warp/examples/assets/bunny.usd +0 -0
  106. warp/examples/assets/cube.usd +0 -0
  107. warp/examples/assets/nonuniform.usd +0 -0
  108. warp/examples/assets/nvidia_logo.png +0 -0
  109. warp/examples/assets/pixel.jpg +0 -0
  110. warp/examples/assets/rocks.nvdb +0 -0
  111. warp/examples/assets/rocks.usd +0 -0
  112. warp/examples/assets/sphere.usd +0 -0
  113. warp/examples/assets/square_cloth.usd +0 -0
  114. warp/examples/benchmarks/benchmark_api.py +389 -0
  115. warp/examples/benchmarks/benchmark_cloth.py +296 -0
  116. warp/examples/benchmarks/benchmark_cloth_cupy.py +96 -0
  117. warp/examples/benchmarks/benchmark_cloth_jax.py +105 -0
  118. warp/examples/benchmarks/benchmark_cloth_numba.py +161 -0
  119. warp/examples/benchmarks/benchmark_cloth_numpy.py +85 -0
  120. warp/examples/benchmarks/benchmark_cloth_paddle.py +94 -0
  121. warp/examples/benchmarks/benchmark_cloth_pytorch.py +94 -0
  122. warp/examples/benchmarks/benchmark_cloth_taichi.py +120 -0
  123. warp/examples/benchmarks/benchmark_cloth_warp.py +153 -0
  124. warp/examples/benchmarks/benchmark_gemm.py +164 -0
  125. warp/examples/benchmarks/benchmark_interop_paddle.py +166 -0
  126. warp/examples/benchmarks/benchmark_interop_torch.py +166 -0
  127. warp/examples/benchmarks/benchmark_launches.py +301 -0
  128. warp/examples/benchmarks/benchmark_tile_load_store.py +103 -0
  129. warp/examples/benchmarks/benchmark_tile_sort.py +155 -0
  130. warp/examples/browse.py +37 -0
  131. warp/examples/core/example_cupy.py +86 -0
  132. warp/examples/core/example_dem.py +241 -0
  133. warp/examples/core/example_fluid.py +299 -0
  134. warp/examples/core/example_graph_capture.py +150 -0
  135. warp/examples/core/example_marching_cubes.py +195 -0
  136. warp/examples/core/example_mesh.py +180 -0
  137. warp/examples/core/example_mesh_intersect.py +211 -0
  138. warp/examples/core/example_nvdb.py +182 -0
  139. warp/examples/core/example_raycast.py +111 -0
  140. warp/examples/core/example_raymarch.py +205 -0
  141. warp/examples/core/example_render_opengl.py +290 -0
  142. warp/examples/core/example_sample_mesh.py +300 -0
  143. warp/examples/core/example_sph.py +411 -0
  144. warp/examples/core/example_spin_lock.py +93 -0
  145. warp/examples/core/example_torch.py +211 -0
  146. warp/examples/core/example_wave.py +269 -0
  147. warp/examples/core/example_work_queue.py +118 -0
  148. warp/examples/distributed/example_jacobi_mpi.py +506 -0
  149. warp/examples/fem/example_adaptive_grid.py +286 -0
  150. warp/examples/fem/example_apic_fluid.py +469 -0
  151. warp/examples/fem/example_burgers.py +261 -0
  152. warp/examples/fem/example_convection_diffusion.py +181 -0
  153. warp/examples/fem/example_convection_diffusion_dg.py +225 -0
  154. warp/examples/fem/example_darcy_ls_optimization.py +489 -0
  155. warp/examples/fem/example_deformed_geometry.py +172 -0
  156. warp/examples/fem/example_diffusion.py +196 -0
  157. warp/examples/fem/example_diffusion_3d.py +225 -0
  158. warp/examples/fem/example_diffusion_mgpu.py +225 -0
  159. warp/examples/fem/example_distortion_energy.py +228 -0
  160. warp/examples/fem/example_elastic_shape_optimization.py +387 -0
  161. warp/examples/fem/example_magnetostatics.py +242 -0
  162. warp/examples/fem/example_mixed_elasticity.py +293 -0
  163. warp/examples/fem/example_navier_stokes.py +263 -0
  164. warp/examples/fem/example_nonconforming_contact.py +300 -0
  165. warp/examples/fem/example_stokes.py +213 -0
  166. warp/examples/fem/example_stokes_transfer.py +262 -0
  167. warp/examples/fem/example_streamlines.py +357 -0
  168. warp/examples/fem/utils.py +1047 -0
  169. warp/examples/interop/example_jax_callable.py +146 -0
  170. warp/examples/interop/example_jax_ffi_callback.py +132 -0
  171. warp/examples/interop/example_jax_kernel.py +232 -0
  172. warp/examples/optim/example_diffray.py +561 -0
  173. warp/examples/optim/example_fluid_checkpoint.py +497 -0
  174. warp/examples/tile/example_tile_block_cholesky.py +502 -0
  175. warp/examples/tile/example_tile_cholesky.py +88 -0
  176. warp/examples/tile/example_tile_convolution.py +66 -0
  177. warp/examples/tile/example_tile_fft.py +55 -0
  178. warp/examples/tile/example_tile_filtering.py +113 -0
  179. warp/examples/tile/example_tile_matmul.py +85 -0
  180. warp/examples/tile/example_tile_mcgp.py +191 -0
  181. warp/examples/tile/example_tile_mlp.py +385 -0
  182. warp/examples/tile/example_tile_nbody.py +199 -0
  183. warp/fabric.py +24 -0
  184. warp/fem/__init__.py +173 -0
  185. warp/fem/adaptivity.py +26 -0
  186. warp/fem/cache.py +30 -0
  187. warp/fem/dirichlet.py +24 -0
  188. warp/fem/field/__init__.py +24 -0
  189. warp/fem/field/field.py +26 -0
  190. warp/fem/geometry/__init__.py +21 -0
  191. warp/fem/geometry/closest_point.py +31 -0
  192. warp/fem/linalg.py +38 -0
  193. warp/fem/operator.py +32 -0
  194. warp/fem/polynomial.py +29 -0
  195. warp/fem/space/__init__.py +22 -0
  196. warp/fem/space/basis_space.py +24 -0
  197. warp/fem/space/shape/__init__.py +68 -0
  198. warp/fem/space/topology.py +24 -0
  199. warp/fem/types.py +24 -0
  200. warp/fem/utils.py +32 -0
  201. warp/jax.py +29 -0
  202. warp/jax_experimental/__init__.py +29 -0
  203. warp/jax_experimental/custom_call.py +29 -0
  204. warp/jax_experimental/ffi.py +39 -0
  205. warp/jax_experimental/xla_ffi.py +24 -0
  206. warp/marching_cubes.py +24 -0
  207. warp/math.py +37 -0
  208. warp/native/array.h +1687 -0
  209. warp/native/builtin.h +2327 -0
  210. warp/native/bvh.cpp +562 -0
  211. warp/native/bvh.cu +826 -0
  212. warp/native/bvh.h +555 -0
  213. warp/native/clang/clang.cpp +541 -0
  214. warp/native/coloring.cpp +622 -0
  215. warp/native/crt.cpp +51 -0
  216. warp/native/crt.h +568 -0
  217. warp/native/cuda_crt.h +1058 -0
  218. warp/native/cuda_util.cpp +677 -0
  219. warp/native/cuda_util.h +313 -0
  220. warp/native/error.cpp +77 -0
  221. warp/native/error.h +36 -0
  222. warp/native/exports.h +2023 -0
  223. warp/native/fabric.h +246 -0
  224. warp/native/hashgrid.cpp +311 -0
  225. warp/native/hashgrid.cu +89 -0
  226. warp/native/hashgrid.h +240 -0
  227. warp/native/initializer_array.h +41 -0
  228. warp/native/intersect.h +1253 -0
  229. warp/native/intersect_adj.h +375 -0
  230. warp/native/intersect_tri.h +348 -0
  231. warp/native/mat.h +5189 -0
  232. warp/native/mathdx.cpp +93 -0
  233. warp/native/matnn.h +221 -0
  234. warp/native/mesh.cpp +266 -0
  235. warp/native/mesh.cu +406 -0
  236. warp/native/mesh.h +2097 -0
  237. warp/native/nanovdb/GridHandle.h +533 -0
  238. warp/native/nanovdb/HostBuffer.h +591 -0
  239. warp/native/nanovdb/NanoVDB.h +6246 -0
  240. warp/native/nanovdb/NodeManager.h +323 -0
  241. warp/native/nanovdb/PNanoVDB.h +3390 -0
  242. warp/native/noise.h +859 -0
  243. warp/native/quat.h +1664 -0
  244. warp/native/rand.h +342 -0
  245. warp/native/range.h +145 -0
  246. warp/native/reduce.cpp +174 -0
  247. warp/native/reduce.cu +363 -0
  248. warp/native/runlength_encode.cpp +79 -0
  249. warp/native/runlength_encode.cu +61 -0
  250. warp/native/scan.cpp +47 -0
  251. warp/native/scan.cu +55 -0
  252. warp/native/scan.h +23 -0
  253. warp/native/solid_angle.h +466 -0
  254. warp/native/sort.cpp +251 -0
  255. warp/native/sort.cu +286 -0
  256. warp/native/sort.h +35 -0
  257. warp/native/sparse.cpp +241 -0
  258. warp/native/sparse.cu +435 -0
  259. warp/native/spatial.h +1306 -0
  260. warp/native/svd.h +727 -0
  261. warp/native/temp_buffer.h +46 -0
  262. warp/native/tile.h +4124 -0
  263. warp/native/tile_radix_sort.h +1112 -0
  264. warp/native/tile_reduce.h +838 -0
  265. warp/native/tile_scan.h +240 -0
  266. warp/native/tuple.h +189 -0
  267. warp/native/vec.h +2199 -0
  268. warp/native/version.h +23 -0
  269. warp/native/volume.cpp +501 -0
  270. warp/native/volume.cu +68 -0
  271. warp/native/volume.h +970 -0
  272. warp/native/volume_builder.cu +483 -0
  273. warp/native/volume_builder.h +52 -0
  274. warp/native/volume_impl.h +70 -0
  275. warp/native/warp.cpp +1143 -0
  276. warp/native/warp.cu +4604 -0
  277. warp/native/warp.h +358 -0
  278. warp/optim/__init__.py +20 -0
  279. warp/optim/adam.py +24 -0
  280. warp/optim/linear.py +35 -0
  281. warp/optim/sgd.py +24 -0
  282. warp/paddle.py +24 -0
  283. warp/py.typed +0 -0
  284. warp/render/__init__.py +22 -0
  285. warp/render/imgui_manager.py +29 -0
  286. warp/render/render_opengl.py +24 -0
  287. warp/render/render_usd.py +24 -0
  288. warp/render/utils.py +24 -0
  289. warp/sparse.py +51 -0
  290. warp/tape.py +24 -0
  291. warp/tests/__init__.py +1 -0
  292. warp/tests/__main__.py +4 -0
  293. warp/tests/assets/curlnoise_golden.npy +0 -0
  294. warp/tests/assets/mlp_golden.npy +0 -0
  295. warp/tests/assets/pixel.npy +0 -0
  296. warp/tests/assets/pnoise_golden.npy +0 -0
  297. warp/tests/assets/spiky.usd +0 -0
  298. warp/tests/assets/test_grid.nvdb +0 -0
  299. warp/tests/assets/test_index_grid.nvdb +0 -0
  300. warp/tests/assets/test_int32_grid.nvdb +0 -0
  301. warp/tests/assets/test_vec_grid.nvdb +0 -0
  302. warp/tests/assets/torus.nvdb +0 -0
  303. warp/tests/assets/torus.usda +105 -0
  304. warp/tests/aux_test_class_kernel.py +34 -0
  305. warp/tests/aux_test_compile_consts_dummy.py +18 -0
  306. warp/tests/aux_test_conditional_unequal_types_kernels.py +29 -0
  307. warp/tests/aux_test_dependent.py +29 -0
  308. warp/tests/aux_test_grad_customs.py +29 -0
  309. warp/tests/aux_test_instancing_gc.py +26 -0
  310. warp/tests/aux_test_module_aot.py +7 -0
  311. warp/tests/aux_test_module_unload.py +23 -0
  312. warp/tests/aux_test_name_clash1.py +40 -0
  313. warp/tests/aux_test_name_clash2.py +40 -0
  314. warp/tests/aux_test_reference.py +9 -0
  315. warp/tests/aux_test_reference_reference.py +8 -0
  316. warp/tests/aux_test_square.py +16 -0
  317. warp/tests/aux_test_unresolved_func.py +22 -0
  318. warp/tests/aux_test_unresolved_symbol.py +22 -0
  319. warp/tests/cuda/__init__.py +0 -0
  320. warp/tests/cuda/test_async.py +676 -0
  321. warp/tests/cuda/test_conditional_captures.py +1147 -0
  322. warp/tests/cuda/test_ipc.py +124 -0
  323. warp/tests/cuda/test_mempool.py +233 -0
  324. warp/tests/cuda/test_multigpu.py +169 -0
  325. warp/tests/cuda/test_peer.py +139 -0
  326. warp/tests/cuda/test_pinned.py +84 -0
  327. warp/tests/cuda/test_streams.py +691 -0
  328. warp/tests/geometry/__init__.py +0 -0
  329. warp/tests/geometry/test_bvh.py +335 -0
  330. warp/tests/geometry/test_hash_grid.py +259 -0
  331. warp/tests/geometry/test_marching_cubes.py +294 -0
  332. warp/tests/geometry/test_mesh.py +318 -0
  333. warp/tests/geometry/test_mesh_query_aabb.py +392 -0
  334. warp/tests/geometry/test_mesh_query_point.py +935 -0
  335. warp/tests/geometry/test_mesh_query_ray.py +323 -0
  336. warp/tests/geometry/test_volume.py +1103 -0
  337. warp/tests/geometry/test_volume_write.py +346 -0
  338. warp/tests/interop/__init__.py +0 -0
  339. warp/tests/interop/test_dlpack.py +730 -0
  340. warp/tests/interop/test_jax.py +1673 -0
  341. warp/tests/interop/test_paddle.py +800 -0
  342. warp/tests/interop/test_torch.py +1001 -0
  343. warp/tests/run_coverage_serial.py +39 -0
  344. warp/tests/test_adam.py +162 -0
  345. warp/tests/test_arithmetic.py +1096 -0
  346. warp/tests/test_array.py +3756 -0
  347. warp/tests/test_array_reduce.py +156 -0
  348. warp/tests/test_assert.py +303 -0
  349. warp/tests/test_atomic.py +336 -0
  350. warp/tests/test_atomic_bitwise.py +209 -0
  351. warp/tests/test_atomic_cas.py +312 -0
  352. warp/tests/test_bool.py +220 -0
  353. warp/tests/test_builtins_resolution.py +732 -0
  354. warp/tests/test_closest_point_edge_edge.py +327 -0
  355. warp/tests/test_codegen.py +974 -0
  356. warp/tests/test_codegen_instancing.py +1495 -0
  357. warp/tests/test_compile_consts.py +215 -0
  358. warp/tests/test_conditional.py +298 -0
  359. warp/tests/test_context.py +35 -0
  360. warp/tests/test_copy.py +319 -0
  361. warp/tests/test_ctypes.py +618 -0
  362. warp/tests/test_dense.py +73 -0
  363. warp/tests/test_devices.py +127 -0
  364. warp/tests/test_enum.py +136 -0
  365. warp/tests/test_examples.py +424 -0
  366. warp/tests/test_fabricarray.py +998 -0
  367. warp/tests/test_fast_math.py +72 -0
  368. warp/tests/test_fem.py +2204 -0
  369. warp/tests/test_fixedarray.py +229 -0
  370. warp/tests/test_fp16.py +136 -0
  371. warp/tests/test_func.py +501 -0
  372. warp/tests/test_future_annotations.py +100 -0
  373. warp/tests/test_generics.py +656 -0
  374. warp/tests/test_grad.py +893 -0
  375. warp/tests/test_grad_customs.py +339 -0
  376. warp/tests/test_grad_debug.py +341 -0
  377. warp/tests/test_implicit_init.py +411 -0
  378. warp/tests/test_import.py +45 -0
  379. warp/tests/test_indexedarray.py +1140 -0
  380. warp/tests/test_intersect.py +103 -0
  381. warp/tests/test_iter.py +76 -0
  382. warp/tests/test_large.py +177 -0
  383. warp/tests/test_launch.py +411 -0
  384. warp/tests/test_lerp.py +151 -0
  385. warp/tests/test_linear_solvers.py +223 -0
  386. warp/tests/test_lvalue.py +427 -0
  387. warp/tests/test_map.py +526 -0
  388. warp/tests/test_mat.py +3515 -0
  389. warp/tests/test_mat_assign_copy.py +178 -0
  390. warp/tests/test_mat_constructors.py +573 -0
  391. warp/tests/test_mat_lite.py +122 -0
  392. warp/tests/test_mat_scalar_ops.py +2913 -0
  393. warp/tests/test_math.py +212 -0
  394. warp/tests/test_module_aot.py +287 -0
  395. warp/tests/test_module_hashing.py +258 -0
  396. warp/tests/test_modules_lite.py +70 -0
  397. warp/tests/test_noise.py +252 -0
  398. warp/tests/test_operators.py +299 -0
  399. warp/tests/test_options.py +129 -0
  400. warp/tests/test_overwrite.py +551 -0
  401. warp/tests/test_print.py +408 -0
  402. warp/tests/test_quat.py +2653 -0
  403. warp/tests/test_quat_assign_copy.py +145 -0
  404. warp/tests/test_rand.py +339 -0
  405. warp/tests/test_reload.py +303 -0
  406. warp/tests/test_rounding.py +157 -0
  407. warp/tests/test_runlength_encode.py +196 -0
  408. warp/tests/test_scalar_ops.py +133 -0
  409. warp/tests/test_smoothstep.py +108 -0
  410. warp/tests/test_snippet.py +318 -0
  411. warp/tests/test_sparse.py +845 -0
  412. warp/tests/test_spatial.py +2859 -0
  413. warp/tests/test_spatial_assign_copy.py +160 -0
  414. warp/tests/test_special_values.py +361 -0
  415. warp/tests/test_static.py +640 -0
  416. warp/tests/test_struct.py +901 -0
  417. warp/tests/test_tape.py +242 -0
  418. warp/tests/test_transient_module.py +93 -0
  419. warp/tests/test_triangle_closest_point.py +192 -0
  420. warp/tests/test_tuple.py +361 -0
  421. warp/tests/test_types.py +615 -0
  422. warp/tests/test_utils.py +594 -0
  423. warp/tests/test_vec.py +1408 -0
  424. warp/tests/test_vec_assign_copy.py +143 -0
  425. warp/tests/test_vec_constructors.py +325 -0
  426. warp/tests/test_vec_lite.py +80 -0
  427. warp/tests/test_vec_scalar_ops.py +2327 -0
  428. warp/tests/test_verify_fp.py +100 -0
  429. warp/tests/test_version.py +75 -0
  430. warp/tests/tile/__init__.py +0 -0
  431. warp/tests/tile/test_tile.py +1519 -0
  432. warp/tests/tile/test_tile_atomic_bitwise.py +403 -0
  433. warp/tests/tile/test_tile_cholesky.py +608 -0
  434. warp/tests/tile/test_tile_load.py +724 -0
  435. warp/tests/tile/test_tile_mathdx.py +156 -0
  436. warp/tests/tile/test_tile_matmul.py +179 -0
  437. warp/tests/tile/test_tile_mlp.py +400 -0
  438. warp/tests/tile/test_tile_reduce.py +950 -0
  439. warp/tests/tile/test_tile_shared_memory.py +376 -0
  440. warp/tests/tile/test_tile_sort.py +121 -0
  441. warp/tests/tile/test_tile_view.py +173 -0
  442. warp/tests/unittest_serial.py +47 -0
  443. warp/tests/unittest_suites.py +430 -0
  444. warp/tests/unittest_utils.py +469 -0
  445. warp/tests/walkthrough_debug.py +95 -0
  446. warp/torch.py +24 -0
  447. warp/types.py +51 -0
  448. warp/utils.py +31 -0
  449. warp_lang-1.10.0.dist-info/METADATA +459 -0
  450. warp_lang-1.10.0.dist-info/RECORD +468 -0
  451. warp_lang-1.10.0.dist-info/WHEEL +5 -0
  452. warp_lang-1.10.0.dist-info/licenses/LICENSE.md +176 -0
  453. warp_lang-1.10.0.dist-info/licenses/licenses/Gaia-LICENSE.txt +6 -0
  454. warp_lang-1.10.0.dist-info/licenses/licenses/appdirs-LICENSE.txt +22 -0
  455. warp_lang-1.10.0.dist-info/licenses/licenses/asset_pixel_jpg-LICENSE.txt +3 -0
  456. warp_lang-1.10.0.dist-info/licenses/licenses/cuda-LICENSE.txt +1582 -0
  457. warp_lang-1.10.0.dist-info/licenses/licenses/dlpack-LICENSE.txt +201 -0
  458. warp_lang-1.10.0.dist-info/licenses/licenses/fp16-LICENSE.txt +28 -0
  459. warp_lang-1.10.0.dist-info/licenses/licenses/libmathdx-LICENSE.txt +220 -0
  460. warp_lang-1.10.0.dist-info/licenses/licenses/llvm-LICENSE.txt +279 -0
  461. warp_lang-1.10.0.dist-info/licenses/licenses/moller-LICENSE.txt +16 -0
  462. warp_lang-1.10.0.dist-info/licenses/licenses/nanovdb-LICENSE.txt +2 -0
  463. warp_lang-1.10.0.dist-info/licenses/licenses/nvrtc-LICENSE.txt +1592 -0
  464. warp_lang-1.10.0.dist-info/licenses/licenses/svd-LICENSE.txt +23 -0
  465. warp_lang-1.10.0.dist-info/licenses/licenses/unittest_parallel-LICENSE.txt +21 -0
  466. warp_lang-1.10.0.dist-info/licenses/licenses/usd-LICENSE.txt +213 -0
  467. warp_lang-1.10.0.dist-info/licenses/licenses/windingnumber-LICENSE.txt +21 -0
  468. warp_lang-1.10.0.dist-info/top_level.txt +1 -0
warp/fem/__init__.py ADDED
@@ -0,0 +1,173 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # isort: skip_file
17
+
18
+ from . import adaptivity as adaptivity
19
+ from . import cache as cache
20
+ from . import field as field
21
+ from . import geometry as geometry
22
+ from . import linalg as linalg
23
+ from . import operator as operator
24
+ from . import space as space
25
+ from . import utils as utils
26
+ from . import types as types
27
+
28
+ from warp._src.fem.adaptivity import adaptive_nanogrid_from_field as adaptive_nanogrid_from_field
29
+ from warp._src.fem.adaptivity import adaptive_nanogrid_from_hierarchy as adaptive_nanogrid_from_hierarchy
30
+
31
+ from warp._src.fem.cache import Temporary as Temporary
32
+ from warp._src.fem.cache import TemporaryStore as TemporaryStore
33
+ from warp._src.fem.cache import borrow_temporary as borrow_temporary
34
+ from warp._src.fem.cache import borrow_temporary_like as borrow_temporary_like
35
+ from warp._src.fem.cache import set_default_temporary_store as set_default_temporary_store
36
+
37
+ from warp._src.fem.dirichlet import normalize_dirichlet_projector as normalize_dirichlet_projector
38
+ from warp._src.fem.dirichlet import project_linear_system as project_linear_system
39
+ from warp._src.fem.dirichlet import project_system_matrix as project_system_matrix
40
+ from warp._src.fem.dirichlet import project_system_rhs as project_system_rhs
41
+
42
+ from warp._src.fem.domain import BoundarySides as BoundarySides
43
+ from warp._src.fem.domain import Cells as Cells
44
+ from warp._src.fem.domain import FrontierSides as FrontierSides
45
+ from warp._src.fem.domain import GeometryDomain as GeometryDomain
46
+ from warp._src.fem.domain import Sides as Sides
47
+ from warp._src.fem.domain import Subdomain as Subdomain
48
+
49
+ from warp._src.fem.field.field import DiscreteField as DiscreteField
50
+ from warp._src.fem.field.field import GeometryField as GeometryField
51
+ from warp._src.fem.field.field import FieldLike as FieldLike
52
+ from warp._src.fem.field.field import ImplicitField as ImplicitField
53
+ from warp._src.fem.field.field import NonconformingField as NonconformingField
54
+ from warp._src.fem.field.field import UniformField as UniformField
55
+
56
+ from warp._src.fem.field import make_discrete_field as make_discrete_field
57
+ from warp._src.fem.field import make_restriction as make_restriction
58
+ from warp._src.fem.field import make_test as make_test
59
+ from warp._src.fem.field import make_trial as make_trial
60
+
61
+ from warp._src.fem.geometry.adaptive_nanogrid import AdaptiveNanogrid as AdaptiveNanogrid
62
+
63
+ from warp._src.fem.geometry.element import Element as Element
64
+
65
+ from warp._src.fem.geometry.geometry import Geometry as Geometry
66
+
67
+ from warp._src.fem.geometry.partition import ExplicitGeometryPartition as ExplicitGeometryPartition
68
+ from warp._src.fem.geometry.partition import GeometryPartition as GeometryPartition
69
+ from warp._src.fem.geometry.partition import LinearGeometryPartition as LinearGeometryPartition
70
+
71
+ from warp._src.fem.geometry.grid_2d import Grid2D as Grid2D
72
+
73
+ from warp._src.fem.geometry.grid_3d import Grid3D as Grid3D
74
+
75
+ from warp._src.fem.geometry.hexmesh import Hexmesh as Hexmesh
76
+
77
+ from warp._src.fem.geometry.nanogrid import Nanogrid as Nanogrid
78
+
79
+ from warp._src.fem.geometry.quadmesh import Quadmesh2D as Quadmesh2D
80
+ from warp._src.fem.geometry.quadmesh import Quadmesh3D as Quadmesh3D
81
+
82
+ from warp._src.fem.geometry.tetmesh import Tetmesh as Tetmesh
83
+
84
+ from warp._src.fem.geometry.trimesh import Trimesh2D as Trimesh2D
85
+ from warp._src.fem.geometry.trimesh import Trimesh3D as Trimesh3D
86
+
87
+ from warp._src.fem.integrate import integrate as integrate
88
+ from warp._src.fem.integrate import interpolate as interpolate
89
+
90
+ from warp._src.fem.operator import Integrand as Integrand
91
+
92
+ from warp._src.fem.operator import D as D
93
+ from warp._src.fem.operator import at_node as at_node
94
+ from warp._src.fem.operator import average as average
95
+ from warp._src.fem.operator import cells as cells
96
+ from warp._src.fem.operator import curl as curl
97
+ from warp._src.fem.operator import deformation_gradient as deformation_gradient
98
+ from warp._src.fem.operator import degree as degree
99
+ from warp._src.fem.operator import div as div
100
+ from warp._src.fem.operator import div_outer as div_outer
101
+ from warp._src.fem.operator import element_closest_point as element_closest_point
102
+ from warp._src.fem.operator import element_coordinates as element_coordinates
103
+ from warp._src.fem.operator import grad as grad
104
+ from warp._src.fem.operator import grad_average as grad_average
105
+ from warp._src.fem.operator import grad_jump as grad_jump
106
+ from warp._src.fem.operator import grad_outer as grad_outer
107
+ from warp._src.fem.operator import inner as inner
108
+ from warp._src.fem.operator import integrand as integrand
109
+ from warp._src.fem.operator import jump as jump
110
+ from warp._src.fem.operator import lookup as lookup
111
+ from warp._src.fem.operator import measure as measure
112
+ from warp._src.fem.operator import measure_ratio as measure_ratio
113
+ from warp._src.fem.operator import node_count as node_count
114
+ from warp._src.fem.operator import node_index as node_index
115
+ from warp._src.fem.operator import normal as normal
116
+ from warp._src.fem.operator import outer as outer
117
+ from warp._src.fem.operator import partition_lookup as partition_lookup
118
+ from warp._src.fem.operator import position as position
119
+ from warp._src.fem.operator import to_cell_side as to_cell_side
120
+ from warp._src.fem.operator import to_inner_cell as to_inner_cell
121
+ from warp._src.fem.operator import to_outer_cell as to_outer_cell
122
+
123
+ from warp._src.fem.polynomial import Polynomial as Polynomial
124
+
125
+ from warp._src.fem.quadrature.pic_quadrature import PicQuadrature as PicQuadrature
126
+
127
+ from warp._src.fem.quadrature.quadrature import ExplicitQuadrature as ExplicitQuadrature
128
+ from warp._src.fem.quadrature.quadrature import NodalQuadrature as NodalQuadrature
129
+ from warp._src.fem.quadrature.quadrature import Quadrature as Quadrature
130
+ from warp._src.fem.quadrature.quadrature import RegularQuadrature as RegularQuadrature
131
+
132
+ from warp._src.fem.space.basis_space import BasisSpace as BasisSpace
133
+ from warp._src.fem.space.basis_space import PointBasisSpace as PointBasisSpace
134
+ from warp._src.fem.space.basis_space import ShapeBasisSpace as ShapeBasisSpace
135
+
136
+ from warp._src.fem.space.dof_mapper import DofMapper as DofMapper
137
+ from warp._src.fem.space.dof_mapper import SkewSymmetricTensorMapper as SkewSymmetricTensorMapper
138
+ from warp._src.fem.space.dof_mapper import SymmetricTensorMapper as SymmetricTensorMapper
139
+
140
+ from warp._src.fem.space.function_space import FunctionSpace as FunctionSpace
141
+
142
+ from warp._src.fem.space.partition import SpacePartition as SpacePartition
143
+ from warp._src.fem.space.partition import make_space_partition as make_space_partition
144
+
145
+ from warp._src.fem.space.restriction import SpaceRestriction as SpaceRestriction
146
+
147
+ from warp._src.fem.space.shape import ElementBasis as ElementBasis
148
+ from warp._src.fem.space.shape import ShapeFunction as ShapeFunction
149
+
150
+ from warp._src.fem.space import make_collocated_function_space as make_collocated_function_space
151
+ from warp._src.fem.space import make_contravariant_function_space as make_contravariant_function_space
152
+ from warp._src.fem.space import make_covariant_function_space as make_covariant_function_space
153
+ from warp._src.fem.space import make_element_shape_function as make_element_shape_function
154
+ from warp._src.fem.space import make_element_based_space_topology as make_element_based_space_topology
155
+ from warp._src.fem.space import make_polynomial_basis_space as make_polynomial_basis_space
156
+ from warp._src.fem.space import make_polynomial_space as make_polynomial_space
157
+ from warp._src.fem.space import make_space_restriction as make_space_restriction
158
+
159
+ from warp._src.fem.space.topology import SpaceTopology as SpaceTopology
160
+
161
+ from warp._src.fem.types import NULL_ELEMENT_INDEX as NULL_ELEMENT_INDEX
162
+ from warp._src.fem.types import NULL_NODE_INDEX as NULL_NODE_INDEX
163
+ from warp._src.fem.types import NULL_QP_INDEX as NULL_QP_INDEX
164
+ from warp._src.fem.types import OUTSIDE as OUTSIDE
165
+ from warp._src.fem.types import Coords as Coords
166
+ from warp._src.fem.types import Domain as Domain
167
+ from warp._src.fem.types import ElementIndex as ElementIndex
168
+ from warp._src.fem.types import ElementKind as ElementKind
169
+ from warp._src.fem.types import Field as Field
170
+ from warp._src.fem.types import QuadraturePointIndex as QuadraturePointIndex
171
+ from warp._src.fem.types import NodeIndex as NodeIndex
172
+ from warp._src.fem.types import Sample as Sample
173
+ from warp._src.fem.types import make_free_sample as make_free_sample
warp/fem/adaptivity.py ADDED
@@ -0,0 +1,26 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # isort: skip_file
17
+
18
+ # TODO: Remove after cleaning up the public API.
19
+
20
+ from warp._src.fem import adaptivity as _adaptivity
21
+
22
+
23
+ def __getattr__(name):
24
+ from warp._src.utils import get_deprecated_api
25
+
26
+ return get_deprecated_api(_adaptivity, "wp.fem", name)
warp/fem/cache.py ADDED
@@ -0,0 +1,30 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # isort: skip_file
17
+
18
+ from warp._src.fem.cache import dynamic_kernel as dynamic_kernel
19
+ from warp._src.fem.cache import dynamic_func as dynamic_func
20
+
21
+
22
+ # TODO: Remove after cleaning up the public API.
23
+
24
+ from warp._src.fem import cache as _cache
25
+
26
+
27
+ def __getattr__(name):
28
+ from warp._src.utils import get_deprecated_api
29
+
30
+ return get_deprecated_api(_cache, "wp.fem", name)
warp/fem/dirichlet.py ADDED
@@ -0,0 +1,24 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # TODO: Remove after cleaning up the public API.
17
+
18
+ from warp._src.fem import dirichlet as _dirichlet
19
+
20
+
21
+ def __getattr__(name):
22
+ from warp._src.utils import get_deprecated_api
23
+
24
+ return get_deprecated_api(_dirichlet, "wp.fem", name)
@@ -0,0 +1,24 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # isort: skip_file
17
+
18
+ from . import field as field
19
+
20
+ from warp._src.fem.field import FieldRestriction as FieldRestriction
21
+ from warp._src.fem.field import GeometryField as GeometryField
22
+ from warp._src.fem.field import SpaceField as SpaceField
23
+ from warp._src.fem.field import TestField as TestField
24
+ from warp._src.fem.field import TrialField as TrialField
@@ -0,0 +1,26 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # isort: skip_file
17
+
18
+ # TODO: Remove after cleaning up the public API.
19
+
20
+ from warp._src.fem.field import field as _field
21
+
22
+
23
+ def __getattr__(name):
24
+ from warp._src.utils import get_deprecated_api
25
+
26
+ return get_deprecated_api(_field, "wp.fem.field", name)
@@ -0,0 +1,21 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # isort: skip_file
17
+
18
+ from . import closest_point as closest_point
19
+
20
+ from warp._src.fem.geometry import DeformedGeometry as DeformedGeometry
21
+ from warp._src.fem.geometry import WholeGeometryPartition as WholeGeometryPartition
@@ -0,0 +1,31 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # isort: skip_file
17
+
18
+ from warp._src.fem.geometry.closest_point import project_on_seg_at_origin as project_on_seg_at_origin
19
+ from warp._src.fem.geometry.closest_point import project_on_tri_at_origin as project_on_tri_at_origin
20
+ from warp._src.fem.geometry.closest_point import project_on_tet_at_origin as project_on_tet_at_origin
21
+ from warp._src.fem.geometry.closest_point import project_on_box_at_origin as project_on_box_at_origin
22
+
23
+ # TODO: Remove after cleaning up the public API.
24
+
25
+ from warp._src.fem.geometry import closest_point as _closest_point
26
+
27
+
28
+ def __getattr__(name):
29
+ from warp._src.utils import get_deprecated_api
30
+
31
+ return get_deprecated_api(_closest_point, "wp.fem.geometry", name)
warp/fem/linalg.py ADDED
@@ -0,0 +1,38 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # isort: skip_file
17
+
18
+ from warp._src.fem.linalg import array_axpy as array_axpy
19
+ from warp._src.fem.linalg import generalized_inner as generalized_inner
20
+ from warp._src.fem.linalg import generalized_outer as generalized_outer
21
+ from warp._src.fem.linalg import spherical_part as spherical_part
22
+ from warp._src.fem.linalg import symmetric_part as symmetric_part
23
+ from warp._src.fem.linalg import skew_part as skew_part
24
+ from warp._src.fem.linalg import householder_make_hessenberg as householder_make_hessenberg
25
+ from warp._src.fem.linalg import householder_qr_decomposition as householder_qr_decomposition
26
+ from warp._src.fem.linalg import inverse_qr as inverse_qr
27
+ from warp._src.fem.linalg import solve_triangular as solve_triangular
28
+ from warp._src.fem.linalg import symmetric_eigenvalues_qr as symmetric_eigenvalues_qr
29
+
30
+ # TODO: Remove after cleaning up the public API.
31
+
32
+ from warp._src.fem import linalg as _linalg
33
+
34
+
35
+ def __getattr__(name):
36
+ from warp._src.utils import get_deprecated_api
37
+
38
+ return get_deprecated_api(_linalg, "wp.fem", name)
warp/fem/operator.py ADDED
@@ -0,0 +1,32 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # isort: skip_file
17
+
18
+ from warp._src.fem.operator import element_partition_index as element_partition_index
19
+ from warp._src.fem.operator import node_partition_index as node_partition_index
20
+ from warp._src.fem.operator import operator as operator
21
+ from warp._src.fem.operator import Operator as Operator
22
+
23
+
24
+ # TODO: Remove after cleaning up the public API.
25
+
26
+ from warp._src.fem import operator as _operator
27
+
28
+
29
+ def __getattr__(name):
30
+ from warp._src.utils import get_deprecated_api
31
+
32
+ return get_deprecated_api(_operator, "wp.fem", name)
warp/fem/polynomial.py ADDED
@@ -0,0 +1,29 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # isort: skip_file
17
+
18
+ from warp._src.fem.polynomial import quadrature_1d as quadrature_1d
19
+ from warp._src.fem.polynomial import lagrange_scales as lagrange_scales
20
+
21
+ # TODO: Remove after cleaning up the public API.
22
+
23
+ from warp._src.fem import polynomial as _polynomial
24
+
25
+
26
+ def __getattr__(name):
27
+ from warp._src.utils import get_deprecated_api
28
+
29
+ return get_deprecated_api(_polynomial, "wp.fem", name)
@@ -0,0 +1,22 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # isort: skip_file
17
+
18
+ from warp._src.fem.space import CollocatedFunctionSpace as CollocatedFunctionSpace
19
+ from warp._src.fem.space import ContravariantFunctionSpace as ContravariantFunctionSpace
20
+ from warp._src.fem.space import CovariantFunctionSpace as CovariantFunctionSpace
21
+
22
+ from . import shape as shape
@@ -0,0 +1,24 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # TODO: Remove after cleaning up the public API.
17
+
18
+ from warp._src.fem.space import basis_space as _basis_space
19
+
20
+
21
+ def __getattr__(name):
22
+ from warp._src.utils import get_deprecated_api
23
+
24
+ return get_deprecated_api(_basis_space, "wp.fem.space", name)
@@ -0,0 +1,68 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # isort: skip_file
17
+
18
+ # Keeping those imports non-deprecated for now,
19
+ # Will be deprecated after unification of the shape functions API (1.11+)
20
+
21
+ from warp._src.fem.space.shape import CubeShapeFunction as CubeShapeFunction
22
+ from warp._src.fem.space.shape import CubeNedelecFirstKindShapeFunctions as CubeNedelecFirstKindShapeFunctions
23
+ from warp._src.fem.space.shape import (
24
+ CubeNonConformingPolynomialShapeFunctions as CubeNonConformingPolynomialShapeFunctions,
25
+ )
26
+ from warp._src.fem.space.shape import CubeRaviartThomasShapeFunctions as CubeRaviartThomasShapeFunctions
27
+ from warp._src.fem.space.shape import CubeSerendipityShapeFunctions as CubeSerendipityShapeFunctions
28
+ from warp._src.fem.space.shape import CubeTripolynomialShapeFunctions as CubeTripolynomialShapeFunctions
29
+
30
+ from warp._src.fem.space.shape import SquareShapeFunction as SquareShapeFunction
31
+ from warp._src.fem.space.shape import SquareBipolynomialShapeFunctions as SquareBipolynomialShapeFunctions
32
+ from warp._src.fem.space.shape import SquareNedelecFirstKindShapeFunctions as SquareNedelecFirstKindShapeFunctions
33
+ from warp._src.fem.space.shape import (
34
+ SquareNonConformingPolynomialShapeFunctions as SquareNonConformingPolynomialShapeFunctions,
35
+ )
36
+ from warp._src.fem.space.shape import SquareRaviartThomasShapeFunctions as SquareRaviartThomasShapeFunctions
37
+ from warp._src.fem.space.shape import SquareSerendipityShapeFunctions as SquareSerendipityShapeFunctions
38
+
39
+ from warp._src.fem.space.shape import TriangleShapeFunction as TriangleShapeFunction
40
+ from warp._src.fem.space.shape import TriangleNedelecFirstKindShapeFunctions as TriangleNedelecFirstKindShapeFunctions
41
+ from warp._src.fem.space.shape import (
42
+ TriangleNonConformingPolynomialShapeFunctions as TriangleNonConformingPolynomialShapeFunctions,
43
+ )
44
+ from warp._src.fem.space.shape import TrianglePolynomialShapeFunctions as TrianglePolynomialShapeFunctions
45
+ from warp._src.fem.space.shape import TriangleRaviartThomasShapeFunctions as TriangleRaviartThomasShapeFunctions
46
+
47
+ from warp._src.fem.space.shape import TetrahedronShapeFunction as TetrahedronShapeFunction
48
+ from warp._src.fem.space.shape import (
49
+ TetrahedronNedelecFirstKindShapeFunctions as TetrahedronNedelecFirstKindShapeFunctions,
50
+ )
51
+ from warp._src.fem.space.shape import (
52
+ TetrahedronNonConformingPolynomialShapeFunctions as TetrahedronNonConformingPolynomialShapeFunctions,
53
+ )
54
+ from warp._src.fem.space.shape import TetrahedronPolynomialShapeFunctions as TetrahedronPolynomialShapeFunctions
55
+ from warp._src.fem.space.shape import TetrahedronRaviartThomasShapeFunctions as TetrahedronRaviartThomasShapeFunctions
56
+
57
+ from warp._src.fem.space.shape import ConstantShapeFunction as ConstantShapeFunction
58
+
59
+
60
+ # TODO: Remove after cleaning up the public API.
61
+
62
+ from warp._src.fem.space import shape as _shape
63
+
64
+
65
+ def __getattr__(name):
66
+ from warp._src.utils import get_deprecated_api
67
+
68
+ return get_deprecated_api(_shape, "wp.fem.space", name)
@@ -0,0 +1,24 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # TODO: Remove after cleaning up the public API.
17
+
18
+ from warp._src.fem.space import topology as _topology
19
+
20
+
21
+ def __getattr__(name):
22
+ from warp._src.utils import get_deprecated_api
23
+
24
+ return get_deprecated_api(_topology, "wp.fem.space", name)
warp/fem/types.py ADDED
@@ -0,0 +1,24 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # TODO: Remove after cleaning up the public API.
17
+
18
+ from warp._src.fem import types as _types
19
+
20
+
21
+ def __getattr__(name):
22
+ from warp._src.utils import get_deprecated_api
23
+
24
+ return get_deprecated_api(_types, "wp.fem", name)
warp/fem/utils.py ADDED
@@ -0,0 +1,32 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ # isort: skip_file
17
+
18
+ from warp._src.fem.utils import grid_to_quads as grid_to_quads
19
+ from warp._src.fem.utils import grid_to_tris as grid_to_tris
20
+ from warp._src.fem.utils import grid_to_tets as grid_to_tets
21
+ from warp._src.fem.utils import grid_to_hexes as grid_to_hexes
22
+
23
+
24
+ # TODO: Remove after cleaning up the public API.
25
+
26
+ from warp._src.fem import utils as _utils
27
+
28
+
29
+ def __getattr__(name):
30
+ from warp._src.utils import get_deprecated_api
31
+
32
+ return get_deprecated_api(_utils, "wp.fem", name)