ngsolve 6.2.2406.post126.dev1__cp39-cp39-manylinux_2_28_x86_64.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 ngsolve might be problematic. Click here for more details.

Files changed (293) hide show
  1. ngsolve-6.2.2406.post126.dev1.data/data/bin/ngs_nvcc +14 -0
  2. ngsolve-6.2.2406.post126.dev1.data/data/bin/ngs_nvlink +14 -0
  3. ngsolve-6.2.2406.post126.dev1.data/data/bin/ngscxx +15 -0
  4. ngsolve-6.2.2406.post126.dev1.data/data/bin/ngsld +11 -0
  5. ngsolve-6.2.2406.post126.dev1.data/data/bin/ngsolve.tcl +648 -0
  6. ngsolve-6.2.2406.post126.dev1.data/data/bin/ngspy +2 -0
  7. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/arnoldi.hpp +55 -0
  8. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/bandmatrix.hpp +334 -0
  9. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/basematrix.hpp +957 -0
  10. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/basevector.hpp +1268 -0
  11. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/bdbequations.hpp +2752 -0
  12. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/bdbintegrator.hpp +1659 -0
  13. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/bessel.hpp +1064 -0
  14. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/bilinearform.hpp +963 -0
  15. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/bla.hpp +29 -0
  16. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/blockalloc.hpp +95 -0
  17. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/blockjacobi.hpp +316 -0
  18. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/bspline.hpp +114 -0
  19. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/calcinverse.hpp +141 -0
  20. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/cg.hpp +368 -0
  21. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/chebyshev.hpp +44 -0
  22. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/cholesky.hpp +720 -0
  23. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/clapack.h +7254 -0
  24. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/code_generation.hpp +296 -0
  25. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/coefficient.hpp +2006 -0
  26. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/coefficient_impl.hpp +18 -0
  27. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/coefficient_stdmath.hpp +157 -0
  28. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/commutingAMG.hpp +106 -0
  29. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/comp.hpp +79 -0
  30. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/compatibility.hpp +41 -0
  31. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/complex_wrapper.hpp +73 -0
  32. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/compressedfespace.hpp +110 -0
  33. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/contact.hpp +231 -0
  34. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/cuda_linalg.hpp +176 -0
  35. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/cuda_ngbla.hpp +226 -0
  36. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/cuda_ngstd.hpp +527 -0
  37. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/cuda_profiler.hpp +240 -0
  38. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/diagonalmatrix.hpp +154 -0
  39. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/differentialoperator.hpp +276 -0
  40. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/diffop.hpp +1286 -0
  41. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/diffop_impl.hpp +326 -0
  42. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/discontinuous.hpp +84 -0
  43. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/dump.hpp +949 -0
  44. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/eigen.hpp +60 -0
  45. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/eigensystem.hpp +18 -0
  46. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/elasticity_equations.hpp +595 -0
  47. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/elementbyelement.hpp +195 -0
  48. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/elementtopology.hpp +1760 -0
  49. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/elementtransformation.hpp +339 -0
  50. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/evalfunc.hpp +405 -0
  51. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/expr.hpp +1655 -0
  52. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/facetfe.hpp +175 -0
  53. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/facetfespace.hpp +178 -0
  54. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/facethofe.hpp +111 -0
  55. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/facetsurffespace.hpp +112 -0
  56. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/fe_interfaces.hpp +32 -0
  57. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/fem.hpp +87 -0
  58. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/fesconvert.hpp +14 -0
  59. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/fespace.hpp +1445 -0
  60. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/finiteelement.hpp +286 -0
  61. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/globalinterfacespace.hpp +77 -0
  62. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/globalspace.hpp +115 -0
  63. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/gridfunction.hpp +525 -0
  64. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/h1amg.hpp +41 -0
  65. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/h1hofe.hpp +188 -0
  66. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/h1hofe_impl.hpp +1262 -0
  67. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/h1hofefo.hpp +148 -0
  68. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/h1hofefo_impl.hpp +185 -0
  69. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/h1hofespace.hpp +167 -0
  70. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/h1lofe.hpp +1237 -0
  71. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/h1lumping.hpp +35 -0
  72. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hcurl_equations.hpp +1352 -0
  73. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hcurlcurlfe.hpp +2221 -0
  74. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hcurlfe.hpp +259 -0
  75. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hcurlfe_utils.hpp +107 -0
  76. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hcurlhdiv_dshape.hpp +857 -0
  77. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hcurlhdivfes.hpp +308 -0
  78. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hcurlhofe.hpp +175 -0
  79. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hcurlhofe_impl.hpp +1871 -0
  80. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hcurlhofespace.hpp +193 -0
  81. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hcurllofe.hpp +1146 -0
  82. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hdiv_equations.hpp +865 -0
  83. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hdivdivfe.hpp +2923 -0
  84. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hdivdivsurfacespace.hpp +76 -0
  85. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hdivfe.hpp +206 -0
  86. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hdivfe_utils.hpp +716 -0
  87. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hdivfes.hpp +75 -0
  88. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hdivhofe.hpp +447 -0
  89. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hdivhofe_impl.hpp +1107 -0
  90. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hdivhofefo.hpp +229 -0
  91. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hdivhofespace.hpp +175 -0
  92. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hdivhosurfacefespace.hpp +106 -0
  93. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hdivlofe.hpp +773 -0
  94. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hidden.hpp +74 -0
  95. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/householder.hpp +181 -0
  96. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hypre_ams_precond.hpp +123 -0
  97. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/hypre_precond.hpp +73 -0
  98. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/integrator.hpp +2024 -0
  99. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/integratorcf.hpp +253 -0
  100. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/interpolate.hpp +49 -0
  101. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/intrule.hpp +2541 -0
  102. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/irspace.hpp +49 -0
  103. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/jacobi.hpp +136 -0
  104. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/l2hofe.hpp +193 -0
  105. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/l2hofe_impl.hpp +564 -0
  106. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/l2hofefo.hpp +542 -0
  107. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/l2hofespace.hpp +344 -0
  108. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/la.hpp +38 -0
  109. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/linalg_kernels.hpp +102 -0
  110. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/linearform.hpp +266 -0
  111. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/matrix.hpp +2140 -0
  112. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/memusage.hpp +41 -0
  113. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/meshaccess.hpp +1358 -0
  114. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/mgpre.hpp +204 -0
  115. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/mptools.hpp +2145 -0
  116. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/multigrid.hpp +42 -0
  117. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/multivector.hpp +447 -0
  118. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/mumpsinverse.hpp +185 -0
  119. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/mycomplex.hpp +361 -0
  120. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/ng_lapack.hpp +1661 -0
  121. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/ngblas.hpp +1099 -0
  122. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/ngs_defines.hpp +30 -0
  123. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/ngs_stdcpp_include.hpp +106 -0
  124. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/ngs_utils.hpp +121 -0
  125. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/ngsobject.hpp +1019 -0
  126. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/ngsstream.hpp +113 -0
  127. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/ngstd.hpp +72 -0
  128. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/nodalhofe.hpp +96 -0
  129. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/nodalhofe_impl.hpp +141 -0
  130. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/normalfacetfe.hpp +223 -0
  131. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/normalfacetfespace.hpp +98 -0
  132. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/normalfacetsurfacefespace.hpp +84 -0
  133. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/order.hpp +251 -0
  134. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/parallel_matrices.hpp +222 -0
  135. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/paralleldofs.hpp +340 -0
  136. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/parallelngs.hpp +23 -0
  137. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/parallelvector.hpp +269 -0
  138. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/pardisoinverse.hpp +200 -0
  139. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/periodic.hpp +125 -0
  140. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/plateaufespace.hpp +25 -0
  141. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/pml.hpp +275 -0
  142. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/pmltrafo.hpp +631 -0
  143. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/postproc.hpp +142 -0
  144. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/precomp.hpp +60 -0
  145. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/preconditioner.hpp +602 -0
  146. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/prolongation.hpp +235 -0
  147. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/python_comp.hpp +107 -0
  148. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/python_fem.hpp +89 -0
  149. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/python_linalg.hpp +58 -0
  150. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/python_ngstd.hpp +385 -0
  151. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/recursive_pol.hpp +4844 -0
  152. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/recursive_pol_tet.hpp +395 -0
  153. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/recursive_pol_trig.hpp +492 -0
  154. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/reorderedfespace.hpp +81 -0
  155. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/sample_sort.hpp +105 -0
  156. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/scalarfe.hpp +335 -0
  157. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/shapefunction_utils.hpp +113 -0
  158. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/simd_complex.hpp +284 -0
  159. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/smoother.hpp +253 -0
  160. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/solve.hpp +89 -0
  161. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/sparsecholesky.hpp +313 -0
  162. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/sparsematrix.hpp +1038 -0
  163. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/sparsematrix_dyn.hpp +91 -0
  164. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/sparsematrix_impl.hpp +920 -0
  165. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/special_matrix.hpp +461 -0
  166. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/specialelement.hpp +125 -0
  167. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/statushandler.hpp +33 -0
  168. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/stringops.hpp +12 -0
  169. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/superluinverse.hpp +136 -0
  170. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/symbolicintegrator.hpp +849 -0
  171. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/symmetricmatrix.hpp +144 -0
  172. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/tangentialfacetfe.hpp +224 -0
  173. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/tangentialfacetfespace.hpp +106 -0
  174. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/tensor.hpp +522 -0
  175. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/tensorcoefficient.hpp +446 -0
  176. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/tensorproductintegrator.hpp +113 -0
  177. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/thcurlfe.hpp +128 -0
  178. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/thcurlfe_impl.hpp +380 -0
  179. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/thdivfe.hpp +80 -0
  180. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/thdivfe_impl.hpp +426 -0
  181. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/tpdiffop.hpp +461 -0
  182. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/tpfes.hpp +133 -0
  183. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/tpintrule.hpp +224 -0
  184. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/triangular.hpp +465 -0
  185. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/tscalarfe.hpp +245 -0
  186. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/tscalarfe_impl.hpp +1029 -0
  187. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/umfpackinverse.hpp +148 -0
  188. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/unifiedvector.hpp +103 -0
  189. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/vector.hpp +1219 -0
  190. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/voxelcoefficientfunction.hpp +41 -0
  191. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/vtkoutput.hpp +198 -0
  192. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/vvector.hpp +208 -0
  193. ngsolve-6.2.2406.post126.dev1.data/data/include/netgen/webgui.hpp +92 -0
  194. ngsolve-6.2.2406.post126.dev1.data/data/lib/cmake/ngsolve/NGSolveConfig.cmake +102 -0
  195. ngsolve-6.2.2406.post126.dev1.data/data/lib/cmake/ngsolve/ngsolve-targets-release.cmake +79 -0
  196. ngsolve-6.2.2406.post126.dev1.data/data/lib/cmake/ngsolve/ngsolve-targets.cmake +173 -0
  197. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/netgen_mesher.libs/libngbla.so +0 -0
  198. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/netgen_mesher.libs/libngcomp.so +0 -0
  199. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/netgen_mesher.libs/libngfem.so +0 -0
  200. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/netgen_mesher.libs/libngla.so +0 -0
  201. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/netgen_mesher.libs/libngscudalib.so +0 -0
  202. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/netgen_mesher.libs/libngsolve.so +0 -0
  203. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/netgen_mesher.libs/libngstd.so +0 -0
  204. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/TensorProductTools.py +210 -0
  205. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/__console.py +94 -0
  206. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/__expr.py +181 -0
  207. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/__init__.py +143 -0
  208. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/_scikit_build_core_dependencies.py +30 -0
  209. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/bvp.py +78 -0
  210. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/config/__init__.py +1 -0
  211. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/config/__main__.py +4 -0
  212. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/config/config.py +59 -0
  213. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/config.py +59 -0
  214. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/TensorProduct/__init__.py +0 -0
  215. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/TensorProduct/tp_dg_1d_1d.py +80 -0
  216. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/TensorProduct/tp_dg_1d_2d.py +73 -0
  217. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/TensorProduct/tp_dg_2d_1d.py +72 -0
  218. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/TensorProduct/tp_dg_2d_2d.py +66 -0
  219. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/__init__.py +0 -0
  220. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/howto/__init__.py +0 -0
  221. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/howto/hhj.py +44 -0
  222. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/howto/hybrid_dg.py +53 -0
  223. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/howto/mixed.py +30 -0
  224. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/howto/nonlin.py +29 -0
  225. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/howto/pickling.py +26 -0
  226. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/howto/pml.py +31 -0
  227. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/howto/taskmanager.py +20 -0
  228. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/howto/tdnns.py +47 -0
  229. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/howto/timeDG-skeleton.py +45 -0
  230. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/howto/timeDG.py +38 -0
  231. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/howto/timeDGlap.py +42 -0
  232. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/howto/timeDGwave.py +61 -0
  233. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/intro/__init__.py +0 -0
  234. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/intro/adaptive.py +123 -0
  235. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/intro/cmagnet.py +62 -0
  236. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/intro/elasticity.py +76 -0
  237. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/intro/navierstokes.py +74 -0
  238. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/intro/poisson.ipynb +170 -0
  239. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/intro/poisson.py +41 -0
  240. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/mpi/__init__.py +0 -0
  241. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/mpi/mpi_cmagnet.py +87 -0
  242. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/mpi/mpi_navierstokes.py +117 -0
  243. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/mpi/mpi_poisson.py +89 -0
  244. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/demos/mpi/mpi_timeDG.py +82 -0
  245. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/directsolvers.py +26 -0
  246. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/eigenvalues.py +364 -0
  247. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/internal.py +89 -0
  248. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/krylovspace.py +1013 -0
  249. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/meshes.py +748 -0
  250. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/ngs2petsc.py +310 -0
  251. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/ngscuda.so +0 -0
  252. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/ngscxx.py +42 -0
  253. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/ngslib.so +0 -0
  254. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/nonlinearsolvers.py +203 -0
  255. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/preconditioners.py +10 -0
  256. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/solvers.py +7 -0
  257. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/timestepping.py +185 -0
  258. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/timing.py +108 -0
  259. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/utils.py +167 -0
  260. ngsolve-6.2.2406.post126.dev1.data/data/lib/python3.9/site-packages/ngsolve/webgui.py +669 -0
  261. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/beam.geo +17 -0
  262. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/beam.vol +240 -0
  263. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/chip.in2d +41 -0
  264. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/chip.vol +614 -0
  265. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/coil.geo +12 -0
  266. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/coil.vol +2560 -0
  267. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/coilshield.geo +24 -0
  268. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/coilshield.vol +3179 -0
  269. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/cube.geo +19 -0
  270. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/cube.vol +1832 -0
  271. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/d10_DGdoubleglazing.pde +50 -0
  272. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/d11_chip_nitsche.pde +40 -0
  273. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/d1_square.pde +43 -0
  274. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/d2_chip.pde +35 -0
  275. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/d3_helmholtz.pde +22 -0
  276. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/d4_cube.pde +46 -0
  277. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/d5_beam.pde +74 -0
  278. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/d6_shaft.pde +73 -0
  279. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/d7_coil.pde +50 -0
  280. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/d8_coilshield.pde +49 -0
  281. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/d9_hybridDG.pde +72 -0
  282. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/doubleglazing.in2d +27 -0
  283. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/doubleglazing.vol +737 -0
  284. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
  285. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/shaft.geo +73 -0
  286. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/shaft.vol +4291 -0
  287. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/square.in2d +17 -0
  288. ngsolve-6.2.2406.post126.dev1.data/data/share/ngsolve/square.vol +149 -0
  289. ngsolve-6.2.2406.post126.dev1.dist-info/LICENSE +504 -0
  290. ngsolve-6.2.2406.post126.dev1.dist-info/METADATA +13 -0
  291. ngsolve-6.2.2406.post126.dev1.dist-info/RECORD +293 -0
  292. ngsolve-6.2.2406.post126.dev1.dist-info/WHEEL +5 -0
  293. ngsolve-6.2.2406.post126.dev1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,385 @@
1
+ #ifndef PYTHON_NGSTD_HPP___
2
+ #define PYTHON_NGSTD_HPP___
3
+ #ifdef NGS_PYTHON
4
+
5
+ #ifdef __clang__
6
+ #pragma clang diagnostic push
7
+ // #pragma clang diagnostic ignored "-W#pragma-messages"
8
+ #pragma clang diagnostic ignored "-Wunused-local-typedefs"
9
+ #pragma clang diagnostic ignored "-Wparentheses-equality"
10
+ #pragma clang diagnostic ignored "-Wunused-value"
11
+ #pragma clang diagnostic ignored "-Wdeprecated-declarations"
12
+ #endif
13
+
14
+ #include <pybind11/pybind11.h>
15
+ #include <pybind11/eval.h>
16
+ #include <pybind11/operators.h>
17
+ #include <pybind11/complex.h>
18
+ #include <pybind11/stl.h>
19
+ #include<pybind11/numpy.h>
20
+
21
+ #ifdef __clang__
22
+ #pragma clang diagnostic pop
23
+ #endif
24
+
25
+ #include <core/python_ngcore.hpp>
26
+ #include <ngstd.hpp>
27
+ #include <thread>
28
+ #include <iostream>
29
+
30
+ namespace py = pybind11;
31
+ using namespace pybind11::literals;
32
+
33
+ using std::string;
34
+ using std::cout;
35
+ using std::endl;
36
+
37
+ namespace ngstd {
38
+ extern bool have_numpy;
39
+
40
+ template<typename TClass, typename TFunc, typename... T>
41
+ TClass & PyDefVectorized(TClass & cls, const char * name, TFunc && f, T && ... args )
42
+ {
43
+ if(have_numpy)
44
+ cls.def(name, py::vectorize(std::forward<TFunc>(f)), std::forward<T>(args)...);
45
+ else
46
+ cls.def(name, std::forward<TFunc>(f), std::forward<T>(args)...);
47
+ return cls;
48
+ }
49
+
50
+ template<typename T, typename TOffset>
51
+ auto getNumpyFieldDescriptor(const char *name, TOffset offset) {
52
+ return py::detail::field_descriptor {
53
+ name, static_cast<py::ssize_t>(offset), sizeof(T),
54
+ py::format_descriptor<T>::format(),
55
+ py::detail::npy_format_descriptor<T>::dtype()
56
+ };
57
+ }
58
+ }
59
+
60
+ using namespace ngstd;
61
+
62
+ namespace pybind11 {
63
+ template <typename T>
64
+ struct extract
65
+ {
66
+ py::handle obj;
67
+ extract( py::handle aobj ) : obj(aobj) {}
68
+
69
+ bool check() {
70
+ try
71
+ {
72
+ obj.cast<T>();
73
+ }
74
+ catch(const std::runtime_error &e)
75
+ {
76
+ return false;
77
+ }
78
+ return true;
79
+ }
80
+
81
+ T operator()() { return obj.cast<T>(); }
82
+ };
83
+ }
84
+
85
+ struct DummyArgument {};
86
+
87
+ class PythonEnvironment
88
+ {
89
+ public:
90
+
91
+ PythonEnvironment () { ; }
92
+
93
+ virtual ~PythonEnvironment() { }
94
+
95
+ auto operator[] ( const char *s )
96
+ {
97
+ return py::module::import("__main__").attr(s);
98
+ }
99
+
100
+ virtual void exec(const string s)
101
+ {
102
+ try{
103
+ PyRun_SimpleString(s.c_str());
104
+ }
105
+ catch (py::error_already_set const &e) {
106
+ cout << "caught python error: " << e.what() << endl;
107
+ PyErr_Print();
108
+ }
109
+ }
110
+
111
+ virtual void exec_file(const string fstr) {
112
+ string output;
113
+ ifstream file;
114
+ file.open(fstr.c_str());
115
+ if (file.is_open())
116
+ {
117
+ while (!file.eof())
118
+ {
119
+ std::string line;
120
+ std::getline(file, line);
121
+ output += line.append("\n");
122
+ }
123
+ }
124
+ file.close();
125
+ exec(output);
126
+ }
127
+ };
128
+
129
+
130
+
131
+ typedef py::gil_scoped_acquire AcquireGIL;
132
+ typedef py::gil_scoped_release ReleaseGIL;
133
+
134
+
135
+ inline void InitSlice( const py::slice &inds, size_t len, size_t &start, size_t &step, size_t &n ) {
136
+ size_t stop;
137
+ if (!inds.compute(len, &start, &stop, &step, &n))
138
+ throw py::error_already_set();
139
+ }
140
+
141
+ template<typename T>
142
+ py::array_t<T> MoveToNumpyArray( Array<T> &a )
143
+ {
144
+ if(a.Size()) {
145
+ py::capsule free_when_done(&a[0], [](void *f) {
146
+ delete [] reinterpret_cast<T *>(f);
147
+ });
148
+ a.NothingToDelete();
149
+ return py::array_t<T>(a.Size(), &a[0], free_when_done);
150
+ }
151
+ else
152
+ return py::array_t<T>(0, nullptr);
153
+ }
154
+
155
+
156
+ template<typename ... Args>
157
+ inline py::object PyRange(Args ... i)
158
+ {
159
+ constexpr size_t n = sizeof...(Args);
160
+ static_assert(n>=1 && n<=3, "Wrong number of arguments");
161
+ return py::module::import("__main__").attr("__builtins__").attr("range")(i...);
162
+ }
163
+
164
+ inline py::object PyRange(IntRange i)
165
+ {
166
+ return PyRange(i.First(), i.Next());
167
+ }
168
+
169
+ //////////////////////////////////////////////////////////////////////
170
+ template <typename T, typename TCLASS = py::class_<T> >
171
+ void PyDefToString( py::module &m, TCLASS &c )
172
+ {
173
+ c.def("__str__", &ToString<T>);
174
+ c.def("__repr__", &ToString<T>);
175
+ }
176
+
177
+ /*
178
+ template <typename T>
179
+ class cl_NonElement
180
+ {
181
+ public:
182
+ static T Val() { return 0; }
183
+ };
184
+
185
+ template <typename T>
186
+ inline T NonElement() { return cl_NonElement<T>::Val(); }
187
+ */
188
+
189
+ //////////////////////////////////////////////////////////////////////
190
+ // read-only bracket operator
191
+ template< typename T, typename TELEM, typename TCLASS = py::class_<T>>
192
+ void PyDefROBracketOperator( py::module &m, TCLASS &c )
193
+ {
194
+ auto Get = [](T& self, int i) {
195
+ if (i < 0) i += self.Size();
196
+ if( i<self.Size() && i>=0 )
197
+ return self[i];
198
+ throw py::index_error();
199
+ return TELEM();
200
+ };
201
+ c.def("__getitem__", Get,py::arg("pos"), "Return value at given position");
202
+ c.def("Get", Get, py::arg("pos"), "Return value at given position");
203
+ }
204
+
205
+ // read-write bracket operator
206
+ template< typename T, typename TELEM, typename TCLASS = py::class_<T>>
207
+ void PyDefBracketOperator( py::module &m, TCLASS &c )
208
+ {
209
+ PyDefROBracketOperator<T, TELEM>(m, c);
210
+ auto Set = [](T& self, int i, TELEM val) {
211
+ if (i < 0) i += self.Size();
212
+ if( i<self.Size() && i>=0 )
213
+ self[i] = val;
214
+ else
215
+ throw py::index_error();
216
+ };
217
+ c.def("__setitem__", Set, py::arg("pos"), py::arg("value"), "Set value at given position");
218
+ c.def("Set", Set, py::arg("pos"), py::arg("value"), "Set value at given position");
219
+ }
220
+
221
+
222
+ //////////////////////////////////////////////////////////////////////
223
+ // Export len, bracket operator and iterator protocol at once
224
+ template <typename T, typename TELEM = double, typename TCLASS = py::class_<T> >
225
+ void PyDefVector( py::module &m, TCLASS &c )
226
+ {
227
+ c.def("__len__", []( T& v) { return v.Size();}, "Return length of the array" );
228
+ c.def("__iter__", [] (T &v)
229
+ { return py::make_iterator(v.begin(), v.end()); },
230
+ py::keep_alive<0,1>()
231
+ );
232
+ PyDefBracketOperator<T, TELEM>(m,c);
233
+ }
234
+
235
+
236
+ //////////////////////////////////////////////////////////////////
237
+ // SymbolTable - template
238
+
239
+ template <typename T>
240
+ class PyRef
241
+ {
242
+ const T & ref;
243
+ public:
244
+ PyRef (const T & aref) : ref(aref) { ; }
245
+ const T & Cast () const { return ref; }
246
+ };
247
+
248
+ template <typename T>
249
+ inline ostream & operator<< (ostream & ost, PyRef<T> ref)
250
+ {
251
+ ost << (ref.Cast());
252
+ return ost;
253
+ }
254
+
255
+ template<typename T> struct PyTraits { };
256
+ template<> struct PyTraits<double> {typedef py::float_ type;};
257
+ template<> struct PyTraits<string> {typedef py::str type;};
258
+ template<> struct PyTraits<bool> {typedef py::bool_ type;};
259
+ template<> struct PyTraits<int> {typedef py::int_ type;};
260
+
261
+ template <typename T>
262
+ Table<T> makeCTable (py::list obj)
263
+ {
264
+ size_t n = py::len(obj);
265
+ Array<int> entrysize(n);
266
+
267
+ for (size_t i = 0; i < n; i++)
268
+ entrysize[i] = py::len(obj[i]);
269
+
270
+ Table<T> tab(entrysize);
271
+ for (size_t i = 0; i < n; i++)
272
+ {
273
+ const py::object & obji = obj[i];
274
+ tab[i] = makeCArray<T> (obji);
275
+ }
276
+ return tab;
277
+ }
278
+
279
+ template <typename T>
280
+ py::tuple MakePyTuple (const BaseArrayObject<T> & ao)
281
+ {
282
+ size_t s = ao.Size();
283
+ py::tuple tup(s);
284
+ for (size_t i = 0; i < s; i++)
285
+ tup[i] = ao[i];
286
+ return tup;
287
+ }
288
+
289
+ template <typename T>
290
+ py::list MakePyList (const BaseArrayObject<T> & ao)
291
+ {
292
+ size_t s = ao.Size();
293
+ py::list l;
294
+ for (size_t i = 0; i < s; i++)
295
+ l.append (ao[i]);
296
+ return l;
297
+ }
298
+
299
+
300
+
301
+
302
+ template<typename T>
303
+ struct PyNameTraits<SymbolTable<T>> {
304
+ static string GetName() { return string("SymbolTable_") + GetPyName<T>(); }
305
+ };
306
+
307
+ template<typename T>
308
+ struct PyNameTraits<PyRef<T>> {
309
+ static string GetName() { return string("Ref_") + GetPyName<T>(); }
310
+ };
311
+
312
+ template <typename T, typename PY_T = T>
313
+ void PyExportSymbolTable (py::module &m)
314
+ {
315
+ typedef SymbolTable<T> ST;
316
+
317
+ string name = GetPyName<ST>();
318
+ py::class_<ST>(m, name.c_str())
319
+ .def("__str__", &ToString<ST>)
320
+ .def("__len__", &ST::Size)
321
+ .def("__contains__", &ST::Used)
322
+ .def("GetName", [](ST & self, int i) { return string(self.GetName(i)); })
323
+ .def("__getitem__", [](ST & self, string name) -> PY_T
324
+ {
325
+ if (!self.Used(name)) throw py::index_error();
326
+ return self[name];
327
+ }, py::arg("name"))
328
+ .def("__getitem__", [](ST & self, int i) -> PY_T
329
+ {
330
+ if (i < 0 || i >= self.Size()) throw py::index_error();
331
+ return self[i];
332
+ }, py::arg("pos"))
333
+ ;
334
+ }
335
+
336
+
337
+ // conversion not possible for shared_ptr<double>, so we have a special treatment:
338
+ template <> inline void PyExportSymbolTable<shared_ptr<double>, shared_ptr<double>> (py::module &m)
339
+ {
340
+ typedef SymbolTable<shared_ptr<double>> ST;
341
+
342
+ string name = GetPyName<ST>();
343
+ py::class_<ST>(m, name.c_str())
344
+ .def("__str__", &ToString<ST>)
345
+ .def("__len__", &ST::Size)
346
+ .def("__contains__", &ST::Used)
347
+ .def("GetName", [](ST & self, int i) { return string(self.GetName(i)); }, py::arg("pos"))
348
+ .def("__getitem__", [](ST & self, string name)
349
+ {
350
+ if (!self.Used(name)) throw py::index_error();
351
+ return *self[name];
352
+ }, py::arg("name"))
353
+ .def("__getitem__", [](ST & self, int i)
354
+ {
355
+ if (i < 0 || i >= self.Size()) throw py::index_error();
356
+ return *self[i];
357
+ }, py::arg("pos"))
358
+ ;
359
+ }
360
+
361
+ // replace docu links with plain text for help function
362
+ NGS_DLL_HEADER const char* docu_string(const char* str);
363
+
364
+ PYBIND11_DECLARE_HOLDER_TYPE(T, std::shared_ptr<T>);
365
+
366
+ namespace ngstd
367
+ {
368
+ // MemoryView for pickling without copying
369
+ // doesn't provide memory management, it has to be done from the outside!
370
+ class MemoryView
371
+ {
372
+ private:
373
+ void* ptr;
374
+ size_t size;
375
+
376
+ public:
377
+ MemoryView(void* aptr, size_t asize) : ptr(aptr), size(asize) { ; }
378
+
379
+ size_t Size() const { return size; }
380
+ void* Ptr() const { return ptr; }
381
+ };
382
+ }
383
+
384
+ #endif // NGS_PYTHON
385
+ #endif // PYTHON_NGSTD_HPP___