ngsolve 6.2.2506.post216.dev0__cp314-cp314-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.
Files changed (306) hide show
  1. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngs_nvcc +22 -0
  2. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngs_nvlink +17 -0
  3. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngscxx +15 -0
  4. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngsld +11 -0
  5. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngsolve.tcl +648 -0
  6. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngspy +2 -0
  7. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/analytic_integrals.hpp +10 -0
  8. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/arnoldi.hpp +55 -0
  9. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bandmatrix.hpp +334 -0
  10. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/basematrix.hpp +963 -0
  11. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/basevector.hpp +1268 -0
  12. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bdbequations.hpp +2807 -0
  13. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bdbintegrator.hpp +1660 -0
  14. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bem_diffops.hpp +475 -0
  15. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bessel.hpp +1064 -0
  16. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bilinearform.hpp +966 -0
  17. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bla.hpp +29 -0
  18. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/blockalloc.hpp +95 -0
  19. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/blockjacobi.hpp +328 -0
  20. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bspline.hpp +116 -0
  21. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/calcinverse.hpp +141 -0
  22. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cg.hpp +368 -0
  23. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/chebyshev.hpp +44 -0
  24. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cholesky.hpp +720 -0
  25. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/clapack.h +7254 -0
  26. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/code_generation.hpp +296 -0
  27. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/coefficient.hpp +2033 -0
  28. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/coefficient_impl.hpp +19 -0
  29. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/coefficient_stdmath.hpp +167 -0
  30. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/commutingAMG.hpp +106 -0
  31. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/comp.hpp +79 -0
  32. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/compatibility.hpp +41 -0
  33. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/complex_wrapper.hpp +101 -0
  34. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/compressedfespace.hpp +110 -0
  35. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/contact.hpp +239 -0
  36. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_core.hpp +216 -0
  37. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_linalg.hpp +185 -0
  38. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_ngbla.hpp +317 -0
  39. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_ngstd.hpp +414 -0
  40. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_profiler.hpp +240 -0
  41. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/diagonalmatrix.hpp +160 -0
  42. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/differentialoperator.hpp +276 -0
  43. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/diffop.hpp +1286 -0
  44. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/diffop_impl.hpp +328 -0
  45. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/diffopwithfactor.hpp +123 -0
  46. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/discontinuous.hpp +84 -0
  47. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/dump.hpp +949 -0
  48. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ectypes.hpp +121 -0
  49. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/eigen.hpp +60 -0
  50. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/eigensystem.hpp +18 -0
  51. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/elasticity_equations.hpp +595 -0
  52. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/elementbyelement.hpp +201 -0
  53. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/elementtopology.hpp +1760 -0
  54. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/elementtransformation.hpp +339 -0
  55. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/evalfunc.hpp +405 -0
  56. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/expr.hpp +1693 -0
  57. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/facetfe.hpp +175 -0
  58. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/facetfespace.hpp +180 -0
  59. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/facethofe.hpp +111 -0
  60. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/facetsurffespace.hpp +112 -0
  61. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/fe_interfaces.hpp +32 -0
  62. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/fem.hpp +87 -0
  63. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/fesconvert.hpp +14 -0
  64. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/fespace.hpp +1454 -0
  65. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/finiteelement.hpp +286 -0
  66. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/globalinterfacespace.hpp +77 -0
  67. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/globalspace.hpp +115 -0
  68. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/gridfunction.hpp +525 -0
  69. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1amg.hpp +124 -0
  70. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofe.hpp +188 -0
  71. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofe_impl.hpp +1262 -0
  72. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofefo.hpp +148 -0
  73. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofefo_impl.hpp +185 -0
  74. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofespace.hpp +167 -0
  75. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1lofe.hpp +1240 -0
  76. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1lumping.hpp +41 -0
  77. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurl_equations.hpp +1381 -0
  78. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlcurlfe.hpp +2241 -0
  79. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlcurlfespace.hpp +78 -0
  80. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlfe.hpp +259 -0
  81. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlfe_utils.hpp +107 -0
  82. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhdiv_dshape.hpp +857 -0
  83. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhdivfes.hpp +308 -0
  84. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhofe.hpp +175 -0
  85. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhofe_impl.hpp +1871 -0
  86. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhofespace.hpp +193 -0
  87. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurllofe.hpp +1146 -0
  88. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdiv_equations.hpp +880 -0
  89. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivdivfe.hpp +2923 -0
  90. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivdivsurfacespace.hpp +76 -0
  91. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivfe.hpp +206 -0
  92. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivfe_utils.hpp +717 -0
  93. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivfes.hpp +75 -0
  94. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhofe.hpp +447 -0
  95. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhofe_impl.hpp +1107 -0
  96. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhofefo.hpp +229 -0
  97. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhofespace.hpp +177 -0
  98. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhosurfacefespace.hpp +106 -0
  99. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivlofe.hpp +773 -0
  100. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hidden.hpp +74 -0
  101. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/householder.hpp +181 -0
  102. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hypre_ams_precond.hpp +123 -0
  103. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hypre_precond.hpp +73 -0
  104. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/integrator.hpp +2012 -0
  105. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/integratorcf.hpp +253 -0
  106. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/interpolate.hpp +49 -0
  107. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/intrule.hpp +2542 -0
  108. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/intrules_SauterSchwab.hpp +25 -0
  109. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/irspace.hpp +49 -0
  110. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/jacobi.hpp +153 -0
  111. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/kernels.hpp +724 -0
  112. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/l2hofe.hpp +194 -0
  113. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/l2hofe_impl.hpp +564 -0
  114. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/l2hofefo.hpp +542 -0
  115. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/l2hofespace.hpp +344 -0
  116. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/la.hpp +38 -0
  117. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/linalg_kernels.hpp +70 -0
  118. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/linearform.hpp +266 -0
  119. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/matrix.hpp +2145 -0
  120. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/memusage.hpp +41 -0
  121. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/meshaccess.hpp +1359 -0
  122. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mgpre.hpp +204 -0
  123. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mp_coefficient.hpp +145 -0
  124. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mptools.hpp +2281 -0
  125. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/multigrid.hpp +42 -0
  126. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/multivector.hpp +447 -0
  127. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mumpsinverse.hpp +187 -0
  128. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mycomplex.hpp +361 -0
  129. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ng_lapack.hpp +1661 -0
  130. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngblas.hpp +1232 -0
  131. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngs_defines.hpp +30 -0
  132. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngs_stdcpp_include.hpp +106 -0
  133. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngs_utils.hpp +121 -0
  134. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngsobject.hpp +1019 -0
  135. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngsstream.hpp +113 -0
  136. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngstd.hpp +72 -0
  137. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/nodalhofe.hpp +96 -0
  138. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/nodalhofe_impl.hpp +141 -0
  139. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/normalfacetfe.hpp +223 -0
  140. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/normalfacetfespace.hpp +98 -0
  141. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/normalfacetsurfacefespace.hpp +84 -0
  142. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/order.hpp +251 -0
  143. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/parallel_matrices.hpp +222 -0
  144. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/paralleldofs.hpp +340 -0
  145. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/parallelngs.hpp +23 -0
  146. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/parallelvector.hpp +269 -0
  147. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/pardisoinverse.hpp +200 -0
  148. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/periodic.hpp +129 -0
  149. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/plateaufespace.hpp +25 -0
  150. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/pml.hpp +275 -0
  151. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/pmltrafo.hpp +631 -0
  152. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/postproc.hpp +142 -0
  153. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/potentialtools.hpp +22 -0
  154. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/precomp.hpp +60 -0
  155. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/preconditioner.hpp +602 -0
  156. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/prolongation.hpp +380 -0
  157. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/python_comp.hpp +107 -0
  158. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/python_fem.hpp +89 -0
  159. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/python_linalg.hpp +58 -0
  160. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/python_ngstd.hpp +386 -0
  161. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/recursive_pol.hpp +4896 -0
  162. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/recursive_pol_tet.hpp +395 -0
  163. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/recursive_pol_trig.hpp +492 -0
  164. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/reorderedfespace.hpp +81 -0
  165. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sample_sort.hpp +105 -0
  166. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/scalarfe.hpp +335 -0
  167. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/shapefunction_utils.hpp +113 -0
  168. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/simd_complex.hpp +329 -0
  169. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/smoother.hpp +253 -0
  170. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/solve.hpp +89 -0
  171. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsecholesky.hpp +317 -0
  172. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsefactorization_interface.hpp +159 -0
  173. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsematrix.hpp +1052 -0
  174. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsematrix_dyn.hpp +90 -0
  175. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsematrix_impl.hpp +1055 -0
  176. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/special_matrix.hpp +463 -0
  177. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/specialelement.hpp +125 -0
  178. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/statushandler.hpp +33 -0
  179. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/stringops.hpp +12 -0
  180. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/superluinverse.hpp +136 -0
  181. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/symbolicintegrator.hpp +850 -0
  182. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/symmetricmatrix.hpp +144 -0
  183. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tangentialfacetfe.hpp +224 -0
  184. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tangentialfacetfespace.hpp +91 -0
  185. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tensor.hpp +522 -0
  186. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tensorcoefficient.hpp +446 -0
  187. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tensorproductintegrator.hpp +113 -0
  188. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/thcurlfe.hpp +128 -0
  189. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/thcurlfe_impl.hpp +380 -0
  190. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/thdivfe.hpp +80 -0
  191. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/thdivfe_impl.hpp +492 -0
  192. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tpdiffop.hpp +461 -0
  193. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tpfes.hpp +133 -0
  194. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tpintrule.hpp +224 -0
  195. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/triangular.hpp +465 -0
  196. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tscalarfe.hpp +245 -0
  197. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tscalarfe_impl.hpp +1029 -0
  198. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/umfpackinverse.hpp +148 -0
  199. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/unifiedvector.hpp +103 -0
  200. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/vector.hpp +1452 -0
  201. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/voxelcoefficientfunction.hpp +41 -0
  202. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/vtkoutput.hpp +198 -0
  203. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/vvector.hpp +208 -0
  204. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/webgui.hpp +92 -0
  205. ngsolve-6.2.2506.post216.dev0.data/data/lib/cmake/ngsolve/NGSolveConfig.cmake +102 -0
  206. ngsolve-6.2.2506.post216.dev0.data/data/lib/cmake/ngsolve/ngsolve-targets-release.cmake +89 -0
  207. ngsolve-6.2.2506.post216.dev0.data/data/lib/cmake/ngsolve/ngsolve-targets.cmake +180 -0
  208. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngbla.so +0 -0
  209. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngcomp.so +0 -0
  210. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngfem.so +0 -0
  211. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngla.so +0 -0
  212. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngsbem.so +0 -0
  213. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngscudalib.so +0 -0
  214. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngsolve.so +0 -0
  215. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngstd.so +0 -0
  216. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/TensorProductTools.py +210 -0
  217. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/__console.py +94 -0
  218. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/__expr.py +181 -0
  219. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/__init__.py +148 -0
  220. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/_scikit_build_core_dependencies.py +30 -0
  221. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/bvp.py +78 -0
  222. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/__init__.py +1 -0
  223. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/__main__.py +4 -0
  224. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/config.py +60 -0
  225. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/__init__.py +0 -0
  226. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_1d_1d.py +80 -0
  227. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_1d_2d.py +73 -0
  228. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_2d_1d.py +72 -0
  229. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_2d_2d.py +66 -0
  230. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/__init__.py +0 -0
  231. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/__init__.py +0 -0
  232. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/hhj.py +44 -0
  233. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/hybrid_dg.py +53 -0
  234. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/mixed.py +30 -0
  235. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/nonlin.py +29 -0
  236. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/pickling.py +26 -0
  237. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/pml.py +31 -0
  238. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/taskmanager.py +20 -0
  239. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/tdnns.py +47 -0
  240. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDG-skeleton.py +45 -0
  241. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDG.py +38 -0
  242. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDGlap.py +42 -0
  243. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDGwave.py +61 -0
  244. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/__init__.py +0 -0
  245. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/adaptive.py +123 -0
  246. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/cmagnet.py +59 -0
  247. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/elasticity.py +76 -0
  248. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/navierstokes.py +74 -0
  249. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/poisson.ipynb +170 -0
  250. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/poisson.py +41 -0
  251. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/__init__.py +0 -0
  252. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_cmagnet.py +87 -0
  253. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_navierstokes.py +117 -0
  254. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_poisson.py +89 -0
  255. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_timeDG.py +82 -0
  256. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/directsolvers.py +14 -0
  257. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/eigenvalues.py +364 -0
  258. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/internal.py +89 -0
  259. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/krylovspace.py +1182 -0
  260. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/meshes.py +748 -0
  261. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngs2petsc.py +310 -0
  262. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngscuda.so +0 -0
  263. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngscxx.py +42 -0
  264. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngslib.so +0 -0
  265. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/nonlinearsolvers.py +203 -0
  266. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/preconditioners.py +11 -0
  267. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/solve_implementation.py +168 -0
  268. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/solvers/__init__.py +7 -0
  269. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/solvers/cudss.py +112 -0
  270. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/timestepping.py +185 -0
  271. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/timing.py +108 -0
  272. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/utils.py +167 -0
  273. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/webgui.py +671 -0
  274. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/beam.geo +17 -0
  275. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/beam.vol +240 -0
  276. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/chip.in2d +41 -0
  277. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/chip.vol +614 -0
  278. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/coil.geo +12 -0
  279. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/coil.vol +2560 -0
  280. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/coilshield.geo +24 -0
  281. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/coilshield.vol +3179 -0
  282. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/cube.geo +19 -0
  283. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/cube.vol +1832 -0
  284. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde +50 -0
  285. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde +40 -0
  286. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d1_square.pde +43 -0
  287. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d2_chip.pde +35 -0
  288. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d3_helmholtz.pde +22 -0
  289. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d4_cube.pde +46 -0
  290. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d5_beam.pde +74 -0
  291. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d6_shaft.pde +73 -0
  292. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d7_coil.pde +50 -0
  293. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d8_coilshield.pde +49 -0
  294. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d9_hybridDG.pde +72 -0
  295. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/doubleglazing.in2d +27 -0
  296. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/doubleglazing.vol +737 -0
  297. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
  298. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/shaft.geo +73 -0
  299. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/shaft.vol +4291 -0
  300. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/square.in2d +17 -0
  301. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/square.vol +149 -0
  302. ngsolve-6.2.2506.post216.dev0.dist-info/METADATA +14 -0
  303. ngsolve-6.2.2506.post216.dev0.dist-info/RECORD +306 -0
  304. ngsolve-6.2.2506.post216.dev0.dist-info/WHEEL +5 -0
  305. ngsolve-6.2.2506.post216.dev0.dist-info/licenses/LICENSE +504 -0
  306. ngsolve-6.2.2506.post216.dev0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,492 @@
1
+ #ifndef FILE_RECURSIVE_POL_TRIG
2
+ #define FILE_RECURSIVE_POL_TRIG
3
+
4
+
5
+ #include "recursive_pol.hpp"
6
+
7
+ namespace ngfem
8
+ {
9
+
10
+ /**
11
+ Computes face shape functions for triangles.
12
+
13
+ */
14
+ class TrigShapesInnerLegendre
15
+ {
16
+ public:
17
+ /// compute shape functions in factored form $\varphi_{ij} = u_i v_j$
18
+ template <typename Sx, typename Sy, typename T>
19
+ INLINE static void CalcSplitted (int n, Sx x, Sy y, T & val1, T & val2)
20
+ {
21
+ LegendrePolynomial leg;
22
+
23
+ Sx bub1 = (1-x-y)*(1+x-y);
24
+ leg.EvalScaledMult (n-3, x, 1-y, bub1, val1);
25
+ leg.EvalMult (n-3, 2*y-1, y, val2);
26
+ }
27
+
28
+
29
+ template <int n, typename Sx, typename Sy, typename T>
30
+ INLINE static void CalcSplitted (Sx x, Sy y, T & val1, T & val2)
31
+ {
32
+ Sx bub1 = (1-x-y)*(1+x-y);
33
+ // ScaledLegendrePolynomialMult (n-3, x, 1-y, bub1, val1);
34
+ // LegendrePolynomialFO<n-3>::EvalScaledMult (x, 1-y, bub1, val1);
35
+ LegendrePolynomial leg;
36
+ leg.EvalScaledMultFO<n-3> (x, 1-y, bub1, val1);
37
+
38
+ // LegendrePolynomialMult (n-3, 2*y-1, y, val2);
39
+ // LegendrePolynomialFO<n-3>::EvalMult (2*y-1, y, val2);
40
+ leg.EvalMultFO<n-3> (2*y-1, y, val2);
41
+ }
42
+
43
+
44
+ /// computes all shape functions
45
+ template < typename Sx, typename Sy, typename T>
46
+ static int Calc (int n, Sx x, Sy y, T & values)
47
+ {
48
+ ArrayMem<Sx, 20> polx(n-2), poly(n-2);
49
+
50
+ ScaledLegendrePolynomial (n-3, x, 1-y, polx);
51
+ LegendrePolynomial (n-3, 2*y-1, poly);
52
+ Sx bub = y * (1-x-y) * (1+x-y);
53
+
54
+ int ii = 0;
55
+ for (int i = 0; i <= n-3; i++)
56
+ for (int j = 0; j <= n-3-i; j++)
57
+ values[ii++] = bub * polx[i] * poly[j];
58
+
59
+ return ii;
60
+ }
61
+
62
+ template <int n, typename Sx, typename Sy, typename T>
63
+ static int Calc (Sx x, Sy y, T & values)
64
+ {
65
+ // ArrayMem<Sx, 20> polx(n-2), poly(n-2);
66
+ Sx polx[n], poly[n];
67
+
68
+ /*
69
+ ScaledLegendrePolynomial (n-3, x, 1-y, polx);
70
+ LegendrePolynomial (n-3, 2*y-1, poly);
71
+ Sx bub = y * (1-x-y) * (1+x-y);
72
+ */
73
+ CalcSplitted<n> (x, y, polx, poly);
74
+ int ii = 0;
75
+ for (int i = 0; i <= n-3; i++)
76
+ for (int j = 0; j <= n-3-i; j++)
77
+ values[ii++] = /* bub * */ polx[i] * poly[j];
78
+
79
+ return ii;
80
+ }
81
+
82
+
83
+
84
+
85
+
86
+ /// computes all shape functions
87
+ template <typename Sx, typename Sy, typename Sf, typename T>
88
+ static int CalcMult (int n, Sx x, Sy y, Sf & fac, T & values)
89
+ {
90
+ ArrayMem<Sx, 20> polx(n-2), poly(n-2);
91
+
92
+ ScaledLegendrePolynomial (n-3, x, 1-y, polx);
93
+ LegendrePolynomial (n-3, 2*y-1, poly);
94
+
95
+ Sx bub = fac * y * (1-x-y) * (1+x-y);
96
+
97
+ int ii = 0;
98
+ for (int i = 0; i <= n-3; i++)
99
+ for (int j = 0; j <= n-3-i; j++)
100
+ values[ii++] = bub * polx[i] * poly[j];
101
+
102
+ return ii;
103
+ }
104
+
105
+
106
+ };
107
+
108
+
109
+ /**
110
+ Compute triangular face shape functions.
111
+ Shape functions are $L_2$-orthogonal Jacobi polynomials
112
+ */
113
+ class TrigShapesInnerJacobi
114
+ {
115
+ public:
116
+ /// computes all base functions
117
+ template <typename Sx, typename Sy, typename T>
118
+ static int Calc (int n, Sx x, Sy y, T & values)
119
+ {
120
+ int ii = 0;
121
+ ArrayMem<Sx, 20> polx(n+1), poly(n+1);
122
+
123
+ Sx bub = y * (1-x-y) * (1+x-y);
124
+ ScaledJacobiPolynomial (n-3, x, 1-y, 2, 2, polx);
125
+
126
+ for (int ix = 0; ix <= n-3; ix++)
127
+ {
128
+ JacobiPolynomial (n-3, 2*y-1, 2*ix+5, 2, poly);
129
+ for (int j = 0; j <= n-3-ix; j++)
130
+ values[ii++] = bub * polx[ix] * poly[j];
131
+ }
132
+ return ii;
133
+ }
134
+
135
+
136
+ };
137
+
138
+
139
+ //*************************************MONOMIAL EXTENSION***********************************************************
140
+
141
+ /**
142
+ Compute triangle edge-shape functions.
143
+
144
+ functions vanish on upper two edges
145
+
146
+ x,y: coordinates in triangle (-1, 0), (1, 0), (0, 1)
147
+
148
+ f_i (x, 0) = IntegratedLegendrePol_i (x)
149
+
150
+ f_i ... pol of order i
151
+
152
+ Monomial extension:
153
+ */
154
+ class TrigExtensionMonomial
155
+ {
156
+ public:
157
+ /// computes function on triangle
158
+ template <class Sx, class Sy, class T>
159
+ inline static int CalcTrigExt (int n, Sx x, Sy y, T & values)
160
+ {
161
+ Sy fy = (1-y)*(1-y);
162
+ Sx p3 = 0;
163
+ Sx p2 = -1;
164
+ Sx p1 = x;
165
+
166
+ for (int j=2; j<=n; j++)
167
+ {
168
+ p3=p2; p2=p1;
169
+ p1=( (2*j-3) * x * p2 - (j-3) * fy * p3) / j;
170
+ values[j-2] = p1;
171
+ }
172
+ return n-1;
173
+ }
174
+
175
+
176
+ /// computes derivates on triangle, values must be $N \times 2$ matrix
177
+ template <class T>
178
+ inline static int CalcTrigExtDeriv (int n, double x, double y, T & values)
179
+ {
180
+ double fy = (1-y)*(1-y);
181
+ double p3 = 0, p3x = 0, p3y = 0;
182
+ double p2 = -1, p2x = 0, p2y = 0;
183
+ double p1 = x, p1x = 1, p1y = 0;
184
+
185
+ for (int j=2; j<=n; j++)
186
+ {
187
+ p3=p2; p3x = p2x; p3y = p2y;
188
+ p2=p1; p2x = p1x; p2y = p1y;
189
+ double c1 = (2.0*j-3) / j;
190
+ double c2 = (j-3.0) / j;
191
+
192
+ p1 = c1 * x * p2 - c2 * fy * p3;
193
+ p1x = c1 * p2 + c1 * x * p2x - c2 * fy * p3x;
194
+ p1y = c1 * x * p2y - (c2 * 2 * (y-1) * p3 + c2 * fy * p3y);
195
+ values (j-2, 0) = p1x;
196
+ values (j-2, 1) = p1y;
197
+ }
198
+ return n-1;
199
+ }
200
+
201
+ /// computes values on edge
202
+ template <class Sx, class T>
203
+ inline static int Calc (int n, Sx x, T & values)
204
+ {
205
+ Sx p3 = 0;
206
+ Sx p2 = -1;
207
+ Sx p1 = x;
208
+
209
+ for (int j=2; j<=n; j++)
210
+ {
211
+ p3=p2; p2=p1;
212
+ p1=( (2*j-3) * x * p2 - (j-3) * p3) / j;
213
+ values[j-2] = p1;
214
+ }
215
+ return n-1;
216
+
217
+ }
218
+
219
+ /// computes derivatives on edge
220
+ template <class T>
221
+ inline static int CalcDeriv (int n, double x, T & values)
222
+ {
223
+ double p1 = 1.0, p2 = 0.0, p3;
224
+
225
+ for (int j=1; j<=n-1; j++)
226
+ {
227
+ p3 = p2; p2 = p1;
228
+ p1 = ((2.0*j-1.0)*x*p2 - (j-1.0)*p3) / j;
229
+ values[j-1] = p1;
230
+ }
231
+ return n-1;
232
+
233
+ }
234
+ };
235
+
236
+
237
+ // *********************** OPTIMAL EXTENSION *****************************************
238
+ /**
239
+ Evaluete optimal edge-shape function.
240
+ on triangle (with coordinates (-1,0),(1,0),(0,1))
241
+ $$
242
+ \varphi_i:=\frac{1}{y}\int_{x-y}^{x+y}C_{i-1}^{-1/2}(s)ds
243
+ $$
244
+ vanishes on other both edges
245
+ Computed by recurrence
246
+ $$
247
+ {\varphi}_i:=
248
+ p_n(x,y) = a_n p_{n-4}} + b_n x p_{n-3} + (c_n + d_n (x*x-y*y)) p_{n-2}} + e_n x p_{n-1}}
249
+ $$
250
+ */
251
+ class TrigExtensionOptimal
252
+ {
253
+ enum { SIZE = 1000 };
254
+ static double coefs[SIZE][5];
255
+ static bool initialized;
256
+ public:
257
+
258
+ TrigExtensionOptimal ();
259
+
260
+ template <class Sx, class Sy, class T>
261
+ inline static int CalcTrigExt (int p, Sx x, Sy y, T & values)
262
+ {
263
+ Sx p1(0.0), p2(0.0), p3(0.0), p4(0.0), p5(0.0);
264
+ Sx bub = (1.+x-y)*(x+y-1);
265
+ switch(p)
266
+ {
267
+ default:
268
+ case 5:
269
+
270
+ {
271
+ p5 = -1./24. * bub*x * (-9.+21.*x*x-14.*y+35.*y*y);
272
+ values[3] = p5;
273
+ }
274
+
275
+ case 4:
276
+
277
+ {
278
+ p4 = -0.125 * bub * (-1.+5.*x*x-2.*y+3.*y*y);
279
+ values[2] = p4;
280
+ }
281
+
282
+ case 3:
283
+
284
+ {
285
+ p3 = -0.5 * bub * x;
286
+ values[1] = p3;
287
+ }
288
+
289
+ case 2:
290
+
291
+ {
292
+ p2 = -0.5 * bub;
293
+ values[0] = p2;
294
+ }
295
+ case 1:
296
+ case 0:
297
+ ;
298
+ }
299
+
300
+ for (int j = 6; j <= p; j++)
301
+ {
302
+ p1 =
303
+ -coefs[j-6][0] * p2
304
+ + coefs[j-6][1] * x * p3
305
+ - (coefs[j-6][2]+coefs[j-6][3]*(x*x-y*y)) * p4
306
+ + coefs[j-6][4] * x * p5;
307
+ p2 = p3; p3 = p4; p4 = p5; p5 = p1;
308
+ values[j-2] = p1;
309
+ }
310
+
311
+ return p-1;
312
+ }
313
+
314
+ template <class T>
315
+ inline static int CalcTrigExtDeriv (int n, double x, double y, T & values)
316
+ {
317
+ ArrayMem<AutoDiff<2>,10> ad_values(n-1);
318
+ AutoDiff<2> ad_x(x, 0);
319
+ AutoDiff<2> ad_y(y, 1);
320
+
321
+ CalcTrigExt (n, ad_x, ad_y, ad_values);
322
+
323
+ for (int i = 0; i < n-1; i++)
324
+ for (int j = 0; j < 2; j++)
325
+ values(i,j) = ad_values[i].DValue(j);
326
+ return n-1;
327
+ }
328
+
329
+
330
+ template <class Sx, class T>
331
+ inline static int Calc (int n, Sx x, T & values)
332
+ {
333
+ Sx y = 0.0;
334
+ return CalcTrigExt (n, x, y, values);
335
+ }
336
+
337
+ template <class T>
338
+ inline static int CalcDeriv (int n, double x, T & values)
339
+ {
340
+ return CalcTrigExtDeriv (n, x, 0.0, values);
341
+ }
342
+ };
343
+
344
+
345
+
346
+ // ************************ MINIMAL EXTENSION *************************
347
+
348
+
349
+ /**
350
+ .......
351
+ */
352
+ class TrigExtensionMin
353
+ {
354
+ public:
355
+ template <class Sx, class Sy, class T>
356
+ inline static int CalcTrigExt (int n, Sx x, Sy y, T & values)
357
+ {
358
+ #ifdef ABC
359
+ // TrigExtensionOptimal::CalcTrigExt (n, x, y, values);
360
+
361
+ ArrayMem<Sx, 20> polx(n+1);
362
+
363
+ const IntegrationRule & rule =
364
+ GetIntegrationRules().SelectIntegrationRule (ET_SEGM, n+2);
365
+
366
+ Sx bub = (1-x-y) * (1+x-y);
367
+ for (int i = 0; i <= n-2; i++)
368
+ values[i] = 0;
369
+
370
+ for (int i = 0; i < rule.GetNIP(); i++)
371
+ {
372
+ const IntegrationPoint & ip = rule.GetIP(i);
373
+
374
+ Sx hx = x + y * (2.0*ip(0)-1.0);
375
+
376
+ JacobiPolynomial (n-2, hx, 1, 1, polx);
377
+ // LegendrePolynomial (n-2, hx, polx);
378
+
379
+ Sx fac = bub * ip.Weight(); // / (z*z);
380
+
381
+ for (int j = 0; j <= n-2; j++)
382
+ values[j] += fac * polx[j];
383
+ }
384
+
385
+
386
+
387
+ // IntegratedLegendreMonomialExt::CalcTrigExt (n, x, y, values);
388
+
389
+ /*
390
+ Sy fy = (1-y)*(1-y);
391
+ Sx p3 = 0;
392
+ Sx p2 = -1;
393
+ Sx p1 = x;
394
+
395
+ for (int j=2; j<=n; j++)
396
+ {
397
+ p3=p2; p2=p1;
398
+ p1=( (2*j-3) * x * p2 - (j-3) * fy * p3) / j;
399
+ values[j-2] = p1;
400
+ }
401
+ */
402
+
403
+ /*
404
+ Sx fac = 1;
405
+ for (int j = n-2; j >= 0; j--)
406
+ {
407
+ values[j] = fac * values[j];
408
+ fac = fac * (1-y);
409
+ }
410
+ */
411
+
412
+ for (int j = 0; j < n-3; j++)
413
+ values[j] *= VertexExtensionOptimal<2>::Calc (n-2-j, 1-y);
414
+
415
+ return n-1;
416
+ #endif
417
+
418
+ if (y == 0.0) y += 1e-8;
419
+ ArrayMem<Sx, 20> pol1(n+2), pol2(n+2);
420
+ JacobiPolynomial (n+1, x-y, 1, 1, pol1);
421
+ JacobiPolynomial (n+1, x+y, 1, 1, pol2);
422
+ for (int i = 0; i <= n-2; i++)
423
+ values[i] = (pol2[i+1]-pol1[i+1]) / (2*y);
424
+
425
+ /*
426
+ ScaledJacobiPolynomial (n-2, x, 1-y, 2, 2, values);
427
+ for (int i = 0; i < n-1; i++)
428
+ values[i] *= 0.5 * (i+4) * (1-x*x);
429
+ */
430
+
431
+
432
+
433
+ LowEnergyVertexPolynomials2D (n, 1-2*y, pol1);
434
+ for (int i = 0; i <= n-2; i++)
435
+ values[i] *= pol1[n-2-i] * (1-x-y) * (1+x-y);
436
+
437
+ return n-1;
438
+ }
439
+
440
+ template <class T>
441
+ inline static int CalcTrigExtDeriv (int n, double x, double y, T & values)
442
+ {
443
+ ArrayMem<AutoDiff<2>,10> ad_values(n-1);
444
+ AutoDiff<2> ad_x(x, 0);
445
+ AutoDiff<2> ad_y(y, 1);
446
+
447
+ CalcTrigExt (n, ad_x, ad_y, ad_values);
448
+
449
+ for (int i = 0; i < n-1; i++)
450
+ for (int j = 0; j < 2; j++)
451
+ values(i,j) = ad_values[i].DValue(j);
452
+ return n-1;
453
+ }
454
+
455
+
456
+
457
+ template <class Sx, class T>
458
+ inline static int Calc (int n, Sx x, T & values)
459
+ {
460
+ /*
461
+ Sx y = 0.0;
462
+ CalcTrigExt (n, x, y, values);
463
+ */
464
+
465
+ JacobiPolynomial (n-2, x, 2, 2, values);
466
+ for (int i = 0; i < n-1; i++)
467
+ values[i] *= 0.5 * (i+4) * (1-x*x);
468
+
469
+ return n-1;
470
+
471
+ }
472
+
473
+ template <class T>
474
+ inline static int CalcDeriv (int n, double x, T & values)
475
+ {
476
+ ArrayMem<AutoDiff<1>,10> ad_values(n-1);
477
+ AutoDiff<1> ad_x(x, 0);
478
+
479
+ Calc (n, ad_x, ad_values);
480
+
481
+ for (int i = 0; i < n-1; i++)
482
+ values[i] = ad_values[i].DValue(0);
483
+ return n-1;
484
+
485
+ // return CalcTrigExtDeriv (n, x, 0.0, values);
486
+ }
487
+ };
488
+
489
+
490
+ }
491
+
492
+ #endif
@@ -0,0 +1,81 @@
1
+ #ifndef FILE_REORDERED_
2
+ #define FILE_REORDERED_
3
+
4
+ /*********************************************************************/
5
+ /* File: reordered.hpp */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: Jun 2019 */
8
+ /*********************************************************************/
9
+
10
+ #include "fespace.hpp"
11
+
12
+ namespace ngcomp
13
+ {
14
+
15
+ // A reordered wrapper class for fespaces
16
+
17
+ class ReorderedFESpace : public FESpace
18
+ {
19
+ protected:
20
+ Array<DofId> dofmap;
21
+ shared_ptr<FESpace> space;
22
+ shared_ptr<Table<DofId>> clusters;
23
+
24
+ public:
25
+ ReorderedFESpace (shared_ptr<FESpace> space, const Flags & flags);
26
+
27
+ virtual ~ReorderedFESpace () { ; }
28
+
29
+ virtual void Update() override;
30
+
31
+ virtual void FinalizeUpdate() override;
32
+
33
+ ProxyNode MakeProxyFunction (bool testfunction,
34
+ const function<shared_ptr<ProxyFunction>(shared_ptr<ProxyFunction>)> & addblock) const override
35
+ {
36
+ return GetBaseSpace()->MakeProxyFunction (testfunction, addblock);
37
+ }
38
+
39
+ virtual string GetClassName() const override { return "Reordered" + space->GetClassName(); }
40
+ shared_ptr<FESpace> GetBaseSpace() const { return space; }
41
+
42
+ virtual FiniteElement & GetFE (ElementId ei, Allocator & alloc) const override;
43
+
44
+ virtual void GetDofNrs (ElementId ei, Array<DofId> & dnums) const override;
45
+ virtual void GetDofNrs (NodeId ni, Array<DofId> & dnums) const override;
46
+
47
+ auto GetClusters() const { return clusters; }
48
+
49
+
50
+ virtual SymbolTable<shared_ptr<DifferentialOperator>> GetAdditionalEvaluators () const override
51
+ { return space->GetAdditionalEvaluators (); }
52
+
53
+ [[deprecated("Use GetDofNrs(NODE_TYPE(NT_VERTEX,nr) instead")]]
54
+ virtual void GetVertexDofNrs (int vnr, Array<DofId> & dnums) const override;
55
+
56
+ [[deprecated("Use GetDofNrs(NODE_TYPE(NT_EDGE,nr) instead")]]
57
+ virtual void GetEdgeDofNrs (int ednr, Array<DofId> & dnums) const override;
58
+
59
+ virtual void GetFaceDofNrs (int fanr, Array<DofId> & dnums) const override;
60
+
61
+ virtual void GetInnerDofNrs (int elnr, Array<DofId> & dnums) const override
62
+ { space->GetInnerDofNrs(elnr, dnums); }
63
+
64
+ virtual void VTransformMR (ElementId ei,
65
+ SliceMatrix<double> mat, TRANSFORM_TYPE tt) const override
66
+ { space-> VTransformMR(ei, mat, tt); }
67
+ virtual void VTransformMC (ElementId ei,
68
+ SliceMatrix<Complex> mat, TRANSFORM_TYPE tt) const override
69
+ { space->VTransformMC (ei, mat, tt); }
70
+ virtual void VTransformVR (ElementId ei,
71
+ SliceVector<double> vec, TRANSFORM_TYPE tt) const override
72
+ { space->VTransformVR(ei, vec, tt); }
73
+ virtual void VTransformVC (ElementId ei,
74
+ SliceVector<Complex> vec, TRANSFORM_TYPE tt) const override
75
+ { space->VTransformVC(ei, vec, tt); }
76
+ };
77
+
78
+ }
79
+
80
+
81
+ #endif // FILE_REORDERED_
@@ -0,0 +1,105 @@
1
+ #ifndef SAMPLE_SORT_HPP_
2
+ #define SAMPLE_SORT_HPP_
3
+
4
+ /**************************************************************************/
5
+ /* File: sample_sort.hpp */
6
+ /* Author: Bernd Schwarzenbacher, Joachim Schoeberl */
7
+ /* Date: Nov 2017 */
8
+ /**************************************************************************/
9
+
10
+ #include <random>
11
+
12
+ namespace ngstd
13
+ {
14
+
15
+ template <typename T, typename TI>
16
+ void SampleSortI(FlatArray<T> data, FlatArray<TI> index)
17
+ {
18
+ static Timer Tsample_sort("Sample Sort");
19
+ RegionTimer Rsample_sort(Tsample_sort);
20
+
21
+ size_t n = index.Size();
22
+ int nr_buckets = ngstd::TaskManager::GetNumThreads();
23
+ int sample_size = nr_buckets-1;
24
+ int over_sample = 10;
25
+ int over_sample_size = over_sample * sample_size;
26
+
27
+ Array<TI> over_sampled_ind(over_sample_size);
28
+
29
+ std::random_device rd;
30
+ std::mt19937 engine(rd());
31
+ std::uniform_int_distribution<int> dist(0, index.Size()-1);
32
+ for (auto i : Range(over_sample_size))
33
+ over_sampled_ind[i] = index[dist(engine)];
34
+
35
+ QuickSortI(data, over_sampled_ind);
36
+
37
+ Array<TI> sample_ind(sample_size);
38
+ for (auto i : Range(sample_size)) {
39
+ sample_ind[i] = over_sampled_ind[i * over_sample];
40
+ }
41
+
42
+ Array<int> bucket_of_ind(n);
43
+ ParallelFor(n, [&] (auto i) {
44
+ int start = 0;
45
+ int end = sample_size-1;
46
+ int mid = (start+end)/2;
47
+ while (start <= end) {
48
+ mid = (start+end)/2;
49
+ if (data[sample_ind[mid]] < data[i]) {
50
+ start = mid + 1;
51
+ continue;
52
+ }
53
+ else if (data[sample_ind[mid]] > data[i]) {
54
+ end = mid - 1;
55
+ continue;
56
+ }
57
+ else { break; }
58
+ }
59
+ if (start > end) {
60
+ bucket_of_ind[i] = start;
61
+ }
62
+ else {
63
+ bucket_of_ind[i] = mid;
64
+ }
65
+ });
66
+
67
+ static Timer T3_2("Sample Sort - inverse index bucket map");
68
+ T3_2.Start();
69
+ ngstd::TableCreator<int> buckets_creator(nr_buckets);
70
+ for (; !buckets_creator.Done(); buckets_creator++) {
71
+ ParallelForRange (n, [&] (IntRange r)
72
+ {
73
+ ngstd::TableCreator<int> mycreator(nr_buckets);
74
+ for (; !mycreator.Done(); mycreator++)
75
+ for (auto i : r)
76
+ mycreator.Add (bucket_of_ind[i], i);
77
+
78
+ auto mytab = mycreator.MoveTable();
79
+ for (auto i : Range(nr_buckets))
80
+ buckets_creator.Add (i, mytab[i]);
81
+ });
82
+ }
83
+
84
+ auto table = buckets_creator.MoveTable();
85
+ T3_2.Stop();
86
+
87
+ static Timer T4("Sample Sort - sort buckets");
88
+ T4.Start();
89
+ ParallelFor(nr_buckets, [&] (auto bucket) {
90
+ QuickSortI(data, table[bucket]);
91
+ });
92
+ T4.Stop();
93
+
94
+ size_t start = 0;
95
+ for (size_t bucket = 0; bucket < table.Size(); ++bucket) {
96
+ size_t end = start+table[bucket].Size();
97
+ index.Range(start, end) = table[bucket];
98
+ start = end;
99
+ }
100
+ }
101
+
102
+
103
+ }
104
+
105
+ #endif // SAMPLE_SORT_HPP_