ngsolve 6.2.2506.post75.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.

Potentially problematic release.


This version of ngsolve might be problematic. Click here for more details.

Files changed (303) hide show
  1. ngsolve-6.2.2506.post75.dev0.data/data/bin/ngs_nvcc +14 -0
  2. ngsolve-6.2.2506.post75.dev0.data/data/bin/ngs_nvlink +14 -0
  3. ngsolve-6.2.2506.post75.dev0.data/data/bin/ngscxx +15 -0
  4. ngsolve-6.2.2506.post75.dev0.data/data/bin/ngsld +11 -0
  5. ngsolve-6.2.2506.post75.dev0.data/data/bin/ngsolve.tcl +648 -0
  6. ngsolve-6.2.2506.post75.dev0.data/data/bin/ngspy +2 -0
  7. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/analytic_integrals.hpp +10 -0
  8. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/arnoldi.hpp +55 -0
  9. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/bandmatrix.hpp +334 -0
  10. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/basematrix.hpp +957 -0
  11. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/basevector.hpp +1268 -0
  12. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/bdbequations.hpp +2805 -0
  13. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/bdbintegrator.hpp +1660 -0
  14. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/bem_diffops.hpp +475 -0
  15. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/bessel.hpp +1064 -0
  16. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/bilinearform.hpp +963 -0
  17. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/bla.hpp +29 -0
  18. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/blockalloc.hpp +95 -0
  19. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/blockjacobi.hpp +328 -0
  20. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/bspline.hpp +116 -0
  21. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/calcinverse.hpp +141 -0
  22. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/cg.hpp +368 -0
  23. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/chebyshev.hpp +44 -0
  24. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/cholesky.hpp +720 -0
  25. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/clapack.h +7254 -0
  26. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/code_generation.hpp +296 -0
  27. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/coefficient.hpp +2033 -0
  28. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/coefficient_impl.hpp +19 -0
  29. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/coefficient_stdmath.hpp +167 -0
  30. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/commutingAMG.hpp +106 -0
  31. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/comp.hpp +79 -0
  32. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/compatibility.hpp +41 -0
  33. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/complex_wrapper.hpp +73 -0
  34. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/compressedfespace.hpp +110 -0
  35. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/contact.hpp +235 -0
  36. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/cuda_linalg.hpp +175 -0
  37. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/cuda_ngbla.hpp +226 -0
  38. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/cuda_ngstd.hpp +527 -0
  39. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/cuda_profiler.hpp +240 -0
  40. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/diagonalmatrix.hpp +154 -0
  41. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/differentialoperator.hpp +276 -0
  42. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/diffop.hpp +1286 -0
  43. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/diffop_impl.hpp +328 -0
  44. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/diffopwithfactor.hpp +123 -0
  45. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/discontinuous.hpp +84 -0
  46. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/dump.hpp +949 -0
  47. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ectypes.hpp +121 -0
  48. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/eigen.hpp +60 -0
  49. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/eigensystem.hpp +18 -0
  50. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/elasticity_equations.hpp +595 -0
  51. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/elementbyelement.hpp +195 -0
  52. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/elementtopology.hpp +1760 -0
  53. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/elementtransformation.hpp +339 -0
  54. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/evalfunc.hpp +405 -0
  55. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/expr.hpp +1686 -0
  56. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/facetfe.hpp +175 -0
  57. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/facetfespace.hpp +180 -0
  58. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/facethofe.hpp +111 -0
  59. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/facetsurffespace.hpp +112 -0
  60. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/fe_interfaces.hpp +32 -0
  61. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/fem.hpp +87 -0
  62. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/fesconvert.hpp +14 -0
  63. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/fespace.hpp +1449 -0
  64. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/finiteelement.hpp +286 -0
  65. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/globalinterfacespace.hpp +77 -0
  66. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/globalspace.hpp +115 -0
  67. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/gridfunction.hpp +525 -0
  68. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/h1amg.hpp +124 -0
  69. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/h1hofe.hpp +188 -0
  70. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/h1hofe_impl.hpp +1262 -0
  71. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/h1hofefo.hpp +148 -0
  72. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/h1hofefo_impl.hpp +185 -0
  73. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/h1hofespace.hpp +167 -0
  74. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/h1lofe.hpp +1240 -0
  75. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/h1lumping.hpp +41 -0
  76. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurl_equations.hpp +1381 -0
  77. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlcurlfe.hpp +2241 -0
  78. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlcurlfespace.hpp +78 -0
  79. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlfe.hpp +259 -0
  80. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlfe_utils.hpp +107 -0
  81. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlhdiv_dshape.hpp +857 -0
  82. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlhdivfes.hpp +308 -0
  83. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlhofe.hpp +175 -0
  84. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlhofe_impl.hpp +1871 -0
  85. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlhofespace.hpp +193 -0
  86. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurllofe.hpp +1146 -0
  87. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdiv_equations.hpp +880 -0
  88. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivdivfe.hpp +2923 -0
  89. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivdivsurfacespace.hpp +76 -0
  90. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivfe.hpp +206 -0
  91. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivfe_utils.hpp +717 -0
  92. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivfes.hpp +75 -0
  93. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivhofe.hpp +447 -0
  94. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivhofe_impl.hpp +1107 -0
  95. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivhofefo.hpp +229 -0
  96. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivhofespace.hpp +177 -0
  97. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivhosurfacefespace.hpp +106 -0
  98. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivlofe.hpp +773 -0
  99. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hidden.hpp +74 -0
  100. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/householder.hpp +181 -0
  101. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hypre_ams_precond.hpp +123 -0
  102. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hypre_precond.hpp +73 -0
  103. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/integrator.hpp +2012 -0
  104. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/integratorcf.hpp +253 -0
  105. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/interpolate.hpp +49 -0
  106. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/intrule.hpp +2542 -0
  107. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/intrules_SauterSchwab.hpp +25 -0
  108. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/irspace.hpp +49 -0
  109. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/jacobi.hpp +153 -0
  110. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/kernels.hpp +762 -0
  111. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/l2hofe.hpp +194 -0
  112. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/l2hofe_impl.hpp +564 -0
  113. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/l2hofefo.hpp +542 -0
  114. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/l2hofespace.hpp +344 -0
  115. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/la.hpp +38 -0
  116. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/linalg_kernels.hpp +102 -0
  117. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/linearform.hpp +266 -0
  118. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/matrix.hpp +2140 -0
  119. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/memusage.hpp +41 -0
  120. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/meshaccess.hpp +1359 -0
  121. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/mgpre.hpp +204 -0
  122. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/mp_coefficient.hpp +145 -0
  123. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/mptools.hpp +2281 -0
  124. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/multigrid.hpp +42 -0
  125. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/multivector.hpp +447 -0
  126. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/mumpsinverse.hpp +187 -0
  127. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/mycomplex.hpp +361 -0
  128. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ng_lapack.hpp +1661 -0
  129. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ngblas.hpp +1232 -0
  130. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ngs_defines.hpp +30 -0
  131. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ngs_stdcpp_include.hpp +106 -0
  132. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ngs_utils.hpp +121 -0
  133. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ngsobject.hpp +1019 -0
  134. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ngsstream.hpp +113 -0
  135. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ngstd.hpp +72 -0
  136. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/nodalhofe.hpp +96 -0
  137. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/nodalhofe_impl.hpp +141 -0
  138. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/normalfacetfe.hpp +223 -0
  139. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/normalfacetfespace.hpp +98 -0
  140. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/normalfacetsurfacefespace.hpp +84 -0
  141. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/order.hpp +251 -0
  142. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/parallel_matrices.hpp +222 -0
  143. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/paralleldofs.hpp +340 -0
  144. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/parallelngs.hpp +23 -0
  145. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/parallelvector.hpp +269 -0
  146. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/pardisoinverse.hpp +200 -0
  147. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/periodic.hpp +129 -0
  148. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/plateaufespace.hpp +25 -0
  149. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/pml.hpp +275 -0
  150. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/pmltrafo.hpp +631 -0
  151. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/postproc.hpp +142 -0
  152. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/potentialtools.hpp +22 -0
  153. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/precomp.hpp +60 -0
  154. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/preconditioner.hpp +602 -0
  155. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/prolongation.hpp +377 -0
  156. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/python_comp.hpp +107 -0
  157. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/python_fem.hpp +89 -0
  158. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/python_linalg.hpp +58 -0
  159. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/python_ngstd.hpp +386 -0
  160. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/recursive_pol.hpp +4896 -0
  161. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/recursive_pol_tet.hpp +395 -0
  162. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/recursive_pol_trig.hpp +492 -0
  163. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/reorderedfespace.hpp +81 -0
  164. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/sample_sort.hpp +105 -0
  165. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/scalarfe.hpp +335 -0
  166. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/shapefunction_utils.hpp +113 -0
  167. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/simd_complex.hpp +329 -0
  168. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/smoother.hpp +253 -0
  169. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/solve.hpp +89 -0
  170. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/sparsecholesky.hpp +313 -0
  171. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/sparsematrix.hpp +1038 -0
  172. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/sparsematrix_dyn.hpp +90 -0
  173. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/sparsematrix_impl.hpp +1013 -0
  174. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/special_matrix.hpp +463 -0
  175. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/specialelement.hpp +125 -0
  176. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/statushandler.hpp +33 -0
  177. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/stringops.hpp +12 -0
  178. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/superluinverse.hpp +136 -0
  179. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/symbolicintegrator.hpp +850 -0
  180. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/symmetricmatrix.hpp +144 -0
  181. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tangentialfacetfe.hpp +224 -0
  182. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tangentialfacetfespace.hpp +91 -0
  183. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tensor.hpp +522 -0
  184. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tensorcoefficient.hpp +446 -0
  185. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tensorproductintegrator.hpp +113 -0
  186. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/thcurlfe.hpp +128 -0
  187. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/thcurlfe_impl.hpp +380 -0
  188. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/thdivfe.hpp +80 -0
  189. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/thdivfe_impl.hpp +492 -0
  190. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tpdiffop.hpp +461 -0
  191. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tpfes.hpp +133 -0
  192. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tpintrule.hpp +224 -0
  193. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/triangular.hpp +465 -0
  194. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tscalarfe.hpp +245 -0
  195. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tscalarfe_impl.hpp +1029 -0
  196. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/umfpackinverse.hpp +148 -0
  197. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/unifiedvector.hpp +103 -0
  198. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/vector.hpp +1273 -0
  199. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/voxelcoefficientfunction.hpp +41 -0
  200. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/vtkoutput.hpp +198 -0
  201. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/vvector.hpp +208 -0
  202. ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/webgui.hpp +92 -0
  203. ngsolve-6.2.2506.post75.dev0.data/data/lib/cmake/ngsolve/NGSolveConfig.cmake +102 -0
  204. ngsolve-6.2.2506.post75.dev0.data/data/lib/cmake/ngsolve/ngsolve-targets-release.cmake +89 -0
  205. ngsolve-6.2.2506.post75.dev0.data/data/lib/cmake/ngsolve/ngsolve-targets.cmake +173 -0
  206. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngbla.so +0 -0
  207. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngcomp.so +0 -0
  208. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngfem.so +0 -0
  209. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngla.so +0 -0
  210. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngsbem.so +0 -0
  211. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngscudalib.so +0 -0
  212. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngsolve.so +0 -0
  213. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngstd.so +0 -0
  214. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/TensorProductTools.py +210 -0
  215. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/__console.py +94 -0
  216. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/__expr.py +181 -0
  217. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/__init__.py +148 -0
  218. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/_scikit_build_core_dependencies.py +30 -0
  219. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/bvp.py +78 -0
  220. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/__init__.py +1 -0
  221. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/__main__.py +4 -0
  222. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/config.py +60 -0
  223. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/__init__.py +0 -0
  224. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_1d_1d.py +80 -0
  225. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_1d_2d.py +73 -0
  226. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_2d_1d.py +72 -0
  227. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_2d_2d.py +66 -0
  228. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/__init__.py +0 -0
  229. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/__init__.py +0 -0
  230. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/hhj.py +44 -0
  231. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/hybrid_dg.py +53 -0
  232. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/mixed.py +30 -0
  233. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/nonlin.py +29 -0
  234. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/pickling.py +26 -0
  235. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/pml.py +31 -0
  236. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/taskmanager.py +20 -0
  237. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/tdnns.py +47 -0
  238. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDG-skeleton.py +45 -0
  239. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDG.py +38 -0
  240. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDGlap.py +42 -0
  241. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDGwave.py +61 -0
  242. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/__init__.py +0 -0
  243. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/adaptive.py +123 -0
  244. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/cmagnet.py +59 -0
  245. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/elasticity.py +76 -0
  246. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/navierstokes.py +74 -0
  247. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/poisson.ipynb +170 -0
  248. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/poisson.py +41 -0
  249. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/__init__.py +0 -0
  250. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_cmagnet.py +87 -0
  251. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_navierstokes.py +117 -0
  252. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_poisson.py +89 -0
  253. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_timeDG.py +82 -0
  254. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/directsolvers.py +26 -0
  255. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/eigenvalues.py +364 -0
  256. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/internal.py +89 -0
  257. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/krylovspace.py +1013 -0
  258. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/meshes.py +748 -0
  259. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngs2petsc.py +310 -0
  260. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngscuda.so +0 -0
  261. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngscxx.py +42 -0
  262. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngslib.so +0 -0
  263. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/nonlinearsolvers.py +203 -0
  264. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/preconditioners.py +11 -0
  265. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/solve_implementation.py +168 -0
  266. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/solvers.py +7 -0
  267. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/timestepping.py +185 -0
  268. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/timing.py +108 -0
  269. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/utils.py +167 -0
  270. ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/webgui.py +670 -0
  271. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/beam.geo +17 -0
  272. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/beam.vol +240 -0
  273. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/chip.in2d +41 -0
  274. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/chip.vol +614 -0
  275. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/coil.geo +12 -0
  276. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/coil.vol +2560 -0
  277. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/coilshield.geo +24 -0
  278. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/coilshield.vol +3179 -0
  279. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/cube.geo +19 -0
  280. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/cube.vol +1832 -0
  281. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde +50 -0
  282. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde +40 -0
  283. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d1_square.pde +43 -0
  284. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d2_chip.pde +35 -0
  285. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d3_helmholtz.pde +22 -0
  286. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d4_cube.pde +46 -0
  287. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d5_beam.pde +74 -0
  288. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d6_shaft.pde +73 -0
  289. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d7_coil.pde +50 -0
  290. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d8_coilshield.pde +49 -0
  291. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d9_hybridDG.pde +72 -0
  292. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/doubleglazing.in2d +27 -0
  293. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/doubleglazing.vol +737 -0
  294. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
  295. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/shaft.geo +73 -0
  296. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/shaft.vol +4291 -0
  297. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/square.in2d +17 -0
  298. ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/square.vol +149 -0
  299. ngsolve-6.2.2506.post75.dev0.dist-info/METADATA +14 -0
  300. ngsolve-6.2.2506.post75.dev0.dist-info/RECORD +303 -0
  301. ngsolve-6.2.2506.post75.dev0.dist-info/WHEEL +5 -0
  302. ngsolve-6.2.2506.post75.dev0.dist-info/licenses/LICENSE +504 -0
  303. ngsolve-6.2.2506.post75.dev0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,329 @@
1
+ #ifndef FILE_SIMD_COMPLEX
2
+ #define FILE_SIMD_COMPLEX
3
+
4
+ /**************************************************************************/
5
+ /* File: simd.hpp */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 06. Nov. 16 */
8
+ /**************************************************************************/
9
+
10
+ #include <core/simd.hpp>
11
+
12
+ namespace ngcore
13
+ {
14
+
15
+ INLINE SIMD<mask64> Mask128 (int64_t nr)
16
+ {
17
+ #ifdef __CUDA_ARCH__
18
+ return 2*nr;
19
+
20
+ #else // __CUDA_ARCH__
21
+ #ifdef __AVX512F__
22
+
23
+ return _mm512_cmpgt_epi64_mask(_mm512_set1_epi64(nr),
24
+ _mm512_set_epi64(3, 3, 2, 2, 1, 1, 0, 0));
25
+
26
+ #elif defined(__AVX__)
27
+
28
+ return my_mm256_cmpgt_epi64(_mm256_set1_epi64x(nr),
29
+ _mm256_set_epi64x(1, 1, 0, 0));
30
+
31
+ #elif defined NETGEN_ARCH_AMD64
32
+ return _mm_cmpgt_epi32(_mm_set1_epi32(nr),
33
+ _mm_set_epi32(0, 0, 0, 0));
34
+ #else
35
+ return 2*nr;
36
+ #endif
37
+ #endif // __CUDA_ARCH__
38
+ }
39
+
40
+
41
+
42
+ template <int N>
43
+ class SIMD<Complex, N>
44
+ {
45
+ SIMD<double,N> re, im;
46
+ public:
47
+ SIMD () = default;
48
+ SIMD (SIMD<double,N> _r, SIMD<double,N> _i = 0.0) : re(_r), im(_i) { ; }
49
+ SIMD (Complex c) : re(c.real()), im(c.imag()) { ; }
50
+ SIMD (double d) : re(d), im(0.0) { ; }
51
+ static constexpr int Size() { return SIMD<double>::Size(); }
52
+
53
+ auto real() const { return re; }
54
+ auto imag() const { return im; }
55
+ auto & real() { return re; }
56
+ auto & imag() { return im; }
57
+
58
+
59
+ auto Lo() const
60
+ {
61
+ if constexpr (N == 2) return Complex(re.Lo(), im.Lo());
62
+ else return SIMD<Complex,N/2> (re.Lo(), im.Lo());
63
+ }
64
+ auto Hi() const
65
+ {
66
+ if constexpr (N == 2) return Complex(re.Hi(), im.Hi());
67
+ else return SIMD<Complex,N/2> (re.Hi(), im.Hi());
68
+ }
69
+
70
+ // Numbers in SIMD structure are not necessarily in same order as in memory
71
+ // for instance:
72
+ // [x0,y0,x1,y1,x2,y2,x3,y3] -> [x0,x2,x1,x3,y0,y2,y1,y3]
73
+ void LoadFast (Complex * p)
74
+ {
75
+ SIMD<double,N> c1((double*)p);
76
+ SIMD<double,N> c2((double*)(p+SIMD<double>::Size()/2));
77
+ std::tie(re,im) = Unpack(c1,c2);
78
+ }
79
+
80
+ void StoreFast (Complex * p)
81
+ {
82
+ auto [h1,h2] = Unpack(re,im);
83
+ h1.Store((double*)p);
84
+ h2.Store((double*)(p+SIMD<double,N>::Size()/2));
85
+ }
86
+
87
+ void LoadFast (Complex * p, int nr)
88
+ {
89
+ SIMD<double> c1((double*)p, Mask128(nr));
90
+ SIMD<double> c2((double*)(p+SIMD<double>::Size()/2), Mask128(nr-SIMD<double>::Size()/2));
91
+ std::tie(re,im) = Unpack(c1,c2);
92
+ }
93
+
94
+ void StoreFast (Complex * p, int nr)
95
+ {
96
+ auto [h1,h2] = Unpack(re,im);
97
+ h1.Store((double*)p, Mask128(nr));
98
+ h2.Store((double*)(p+SIMD<double>::Size()/2), Mask128(nr-SIMD<double>::Size()/2));
99
+ }
100
+ };
101
+
102
+ // templatize all with N ???
103
+ template <int N>
104
+ inline SIMD<double, N> Real(SIMD<Complex, N> a) { return a.real(); }
105
+ template <int N>
106
+ inline SIMD<double, N> Imag(SIMD<Complex, N> a) { return a.imag(); }
107
+
108
+ template <int N> INLINE auto operator+ (SIMD<Complex, N> a, SIMD<Complex, N> b)
109
+ { return SIMD<Complex, N> (a.real()+b.real(), a.imag()+b.imag()); }
110
+ template <int N> INLINE auto operator+ (SIMD<Complex, N> a, SIMD<double, N> b)
111
+ { return SIMD<Complex, N> (a.real()+b, a.imag()); }
112
+ template <int N> INLINE auto operator+ (SIMD<double, N> b, SIMD<Complex, N> a)
113
+ { return SIMD<Complex, N> (a.real()+b, a.imag()); }
114
+ template <int N> INLINE auto operator+ (SIMD<Complex, N> a, double b)
115
+ { return SIMD<Complex, N> (a.real()+b, a.imag()); }
116
+ template <int N> INLINE auto operator+ (double b, SIMD<Complex, N> a)
117
+ { return SIMD<Complex, N> (a.real()+b, a.imag()); }
118
+ template <int N> INLINE auto operator+ (SIMD<Complex, N> a, Complex b)
119
+ { return a + SIMD<Complex, N> (b); }
120
+ template <int N> INLINE auto operator+ (Complex b, SIMD<Complex, N> a)
121
+ { return a + SIMD<Complex, N> (b); }
122
+
123
+
124
+ template <int N> INLINE auto operator- (SIMD<Complex, N> a, SIMD<Complex, N> b)
125
+ { return SIMD<Complex, N> (a.real()-b.real(), a.imag()-b.imag()); }
126
+
127
+
128
+ template <int N>
129
+ INLINE auto operator- (SIMD<Complex, N> a)
130
+ { return SIMD<Complex, N>(-a.real(), -a.imag()); }
131
+
132
+
133
+ template <int N> INLINE auto operator* (SIMD<Complex, N> a, SIMD<Complex, N> b)
134
+ { return SIMD<Complex, N> (a.real()*b.real()-a.imag()*b.imag(),
135
+ a.real()*b.imag()+a.imag()*b.real()); }
136
+ template <int N> INLINE auto operator* (SIMD<double, N> a, SIMD<Complex, N> b)
137
+ { return SIMD<Complex, N> (a*b.real(), a*b.imag()); }
138
+ template <int N> INLINE auto operator* (SIMD<Complex, N> b, SIMD<double, N> a)
139
+ { return SIMD<Complex, N> (a*b.real(), a*b.imag()); }
140
+
141
+ template <int N> INLINE auto operator* (double a, SIMD<Complex, N> b)
142
+ { return SIMD<Complex, N> (a*b.real(), a*b.imag()); }
143
+ template <int N> INLINE auto operator* (SIMD<Complex, N> b, double a)
144
+ { return SIMD<Complex, N> (a*b.real(), a*b.imag()); }
145
+ template <int N> INLINE auto operator* (Complex a, SIMD<Complex, N> b)
146
+ { return SIMD<Complex, N> (a)*b; }
147
+ template <int N> INLINE auto operator* (SIMD<Complex, N> b, Complex a)
148
+ { return SIMD<Complex, N> (a)*b; }
149
+ template <int N> INLINE auto operator* (SIMD<double, N> b, Complex a)
150
+ { return SIMD<Complex, N> (a.real()*b, a.imag()*b); }
151
+ template <int N> INLINE auto operator* (Complex a, SIMD<double, N> b)
152
+ { return SIMD<Complex, N> (a.real()*b, a.imag()*b); }
153
+
154
+
155
+ template <int N>
156
+ INLINE SIMD<Complex, N> & operator+= (SIMD<Complex, N> & a, SIMD<Complex, N> b)
157
+ { a.real()+=b.real(); a.imag()+=b.imag(); return a; }
158
+ template <int N>
159
+ INLINE SIMD<Complex, N> & operator-= (SIMD<Complex, N> & a, SIMD<Complex, N> b)
160
+ { a.real()-=b.real(); a.imag()-=b.imag(); return a; }
161
+
162
+ template <int N>
163
+ INLINE SIMD<Complex, N> & operator*= (SIMD<Complex, N> & a, double b)
164
+ { a.real()*= b; a.imag() *= b; return a; }
165
+ template <int N>
166
+ INLINE SIMD<Complex, N> & operator*= (SIMD<Complex, N> & a, Complex b)
167
+ { a = a*SIMD<Complex, N>(b); return a; }
168
+ template <int N>
169
+ INLINE SIMD<Complex, N> & operator*= (SIMD<Complex, N> & a, SIMD<double> b)
170
+ { a.real()*= b; a.imag() *= b; return a; }
171
+ template <int N>
172
+ INLINE SIMD<Complex, N> & operator*= (SIMD<Complex, N> & a, SIMD<Complex, N> b)
173
+ { a = a*b; return a; }
174
+
175
+ template <int N>
176
+ INLINE SIMD<Complex, N> Inv (SIMD<Complex, N> a)
177
+ {
178
+ SIMD<double> n2 = a.real()*a.real()+a.imag()*a.imag();
179
+ return SIMD<Complex, N> (a.real()/n2, -a.imag()/n2);
180
+ }
181
+
182
+ template <int N> INLINE auto operator/ (double a, SIMD<Complex, N> b)
183
+ { return a * Inv(b); }
184
+
185
+ template <int N> INLINE auto operator/ (Complex a, SIMD<Complex, N> b)
186
+ { return a * Inv(b); }
187
+
188
+ template <int N> INLINE auto operator/ (SIMD<Complex, N> a, SIMD<Complex, N> b)
189
+ { return a * Inv(b); }
190
+
191
+ template <int N> INLINE auto operator/ (SIMD<Complex, N> a, SIMD<double, N> b)
192
+ { return a * (1.0/b); }
193
+
194
+ template <int N>
195
+ INLINE Complex HSum (SIMD<Complex, N> sc)
196
+ {
197
+ auto [re,im] = HSum(sc.real(), sc.imag());
198
+ return Complex(re,im);
199
+ }
200
+
201
+ template <int N>
202
+ INLINE auto HSum (SIMD<Complex, N> sc1, SIMD<Complex, N> sc2)
203
+ {
204
+ auto [re1,im1,re2,im2] = HSum(sc1.real(), sc1.imag(), sc2.real(), sc2.imag());
205
+ return std::tuple(Complex(re1,im1), Complex(re2,im2));
206
+ }
207
+
208
+ template <int N>
209
+ ostream & operator<< (ostream & ost, SIMD<Complex, N> c)
210
+ {
211
+ ost << c.real() << ", " << c.imag();
212
+ return ost;
213
+ }
214
+
215
+
216
+ template <typename FUNC, int N>
217
+ SIMD<Complex, N> SIMDComplexWrapper (SIMD<Complex, N> x, FUNC f)
218
+ {
219
+ Complex hx[N];
220
+ x.StoreFast(hx);
221
+ for (auto & hxi : hx) hxi = f(hxi);
222
+ x.LoadFast(hx);
223
+ return x;
224
+ }
225
+
226
+ template <int N>
227
+ inline SIMD<Complex, N> cos (SIMD<Complex, N> x)
228
+ { return SIMDComplexWrapper (x, [](Complex c) { return cos(c); }); }
229
+
230
+ template <int N>
231
+ inline SIMD<Complex, N> sin (SIMD<Complex, N> x)
232
+ { return SIMDComplexWrapper (x, [](Complex c) { return sin(c); }); }
233
+
234
+ template <int N>
235
+ inline SIMD<Complex, N> tan (SIMD<Complex, N> x)
236
+ { return SIMDComplexWrapper (x, [](Complex c) { return tan(c); }); }
237
+
238
+ template <int N>
239
+ inline SIMD<Complex, N> atan (SIMD<Complex, N> x)
240
+ { return SIMDComplexWrapper (x, [](Complex c) { return atan(c); }); }
241
+
242
+ template <int N>
243
+ inline SIMD<Complex, N> acos (SIMD<Complex, N> x)
244
+ { return SIMDComplexWrapper (x, [](Complex c) { return acos(c); }); }
245
+
246
+ template <int N>
247
+ inline SIMD<Complex, N> asin (SIMD<Complex, N> x)
248
+ { return SIMDComplexWrapper (x, [](Complex c) { return asin(c); }); }
249
+
250
+ template <int N>
251
+ inline SIMD<Complex, N> cosh (SIMD<Complex, N> x)
252
+ { return SIMDComplexWrapper (x, [](Complex c) { return cosh(c); }); }
253
+
254
+ template <int N>
255
+ inline SIMD<Complex, N> sinh (SIMD<Complex, N> x)
256
+ { return SIMDComplexWrapper (x, [](Complex c) { return sinh(c); }); }
257
+
258
+ template <int N>
259
+ inline SIMD<Complex, N> exp (SIMD<Complex, N> x)
260
+ { return SIMDComplexWrapper (x, [](Complex c) { return exp(c); }); }
261
+
262
+ template <int N>
263
+ inline SIMD<Complex, N> log (SIMD<Complex, N> x)
264
+ { return SIMDComplexWrapper (x, [](Complex c) { return log(c); }); }
265
+
266
+ template <int N>
267
+ inline SIMD<Complex, N> sqrt (SIMD<Complex, N> x)
268
+ { return SIMDComplexWrapper (x, [](Complex c) { return sqrt(c); }); }
269
+
270
+ template <int N>
271
+ inline SIMD<Complex, N> Conj (SIMD<Complex, N> x)
272
+ { return SIMD<Complex, N> (x.real(), -x.imag()); }
273
+
274
+ template <int N>
275
+ INLINE SIMD<Complex, N> IfPos (SIMD<Complex, N> a, SIMD<Complex, N> b, SIMD<Complex, N> c)
276
+ {
277
+ return SIMD<Complex, N> (IfPos (a.real(), b.real(), c.real()),
278
+ IfPos (a.real(), b.imag(), c.imag()));
279
+ }
280
+
281
+
282
+ template <int N>
283
+ INLINE SIMD<Complex, N> If (SIMD<mask64, N> a, SIMD<Complex, N> b, SIMD<Complex, N> c)
284
+ {
285
+ return SIMD<Complex, N> (If (a, b.real(), c.real()),
286
+ If (a, b.imag(), c.imag()));
287
+ }
288
+
289
+
290
+
291
+
292
+ template <typename T, size_t S> class MakeSimdCl;
293
+
294
+ template <size_t S>
295
+ class MakeSimdCl<Complex,S>
296
+ {
297
+ std::array<Complex,S> a;
298
+ public:
299
+ MakeSimdCl (std::array<Complex,S> aa) : a(aa) { ; }
300
+ auto Get() const
301
+ {
302
+ std::array<double,S> ar, ai;
303
+ for (int j = 0; j < S; j++)
304
+ {
305
+ ar[j] = ngbla::Real(a[j]);
306
+ ai[j] = ngbla::Imag(a[j]);
307
+ }
308
+
309
+ return SIMD<Complex,S> (MakeSimd(ar), MakeSimd(ai));
310
+ }
311
+ };
312
+
313
+
314
+ }
315
+
316
+
317
+ namespace ngbla
318
+ {
319
+ template <typename T> struct is_scalar_type;
320
+ template <int N>
321
+ struct is_scalar_type<ngcore::SIMD<double,N>> { static constexpr bool value = true; };
322
+
323
+ template <typename T> struct is_scalar_type;
324
+ template <int N>
325
+ struct is_scalar_type<ngcore::SIMD<ngcore::Complex,N>> { static constexpr bool value = true; };
326
+ }
327
+
328
+
329
+ #endif
@@ -0,0 +1,253 @@
1
+ #ifndef FILE_SMOOTHER
2
+ #define FILE_SMOOTHER
3
+
4
+ /*********************************************************************/
5
+ /* File: smoother.hh */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 20. Apr. 2000 */
8
+ /*********************************************************************/
9
+
10
+ namespace ngmg
11
+ {
12
+
13
+ /**
14
+ Smoothing iteration for multigrid method.
15
+ Pure virtual base class.
16
+ */
17
+ class NGS_DLL_HEADER Smoother
18
+ {
19
+ protected:
20
+ /// additive or multiplicative smoothing
21
+ int additive;
22
+ /// should coarse levels be updated, too ?
23
+ int updateall;
24
+ ///
25
+ Flags flags;
26
+ public:
27
+ /// Constructor
28
+ Smoother();
29
+ /// Constructor
30
+ Smoother(const Flags & aflags);
31
+ /// Destructor
32
+ virtual ~Smoother();
33
+
34
+ /// Update smoother (fine level or all levels)
35
+ virtual void Update (bool force_update = 0) = 0;
36
+
37
+ /// Do steps iterations of pre-smoothing
38
+ virtual void PreSmooth (int level, ngla::BaseVector & u,
39
+ const ngla::BaseVector & f, int steps) const = 0;
40
+
41
+
42
+ /// Do steps iterations of pre-smoothing
43
+ virtual void PreSmoothResiduum (int level, ngla::BaseVector & u,
44
+ const ngla::BaseVector & f,
45
+ ngla::BaseVector & res,
46
+ int steps) const
47
+ {
48
+ PreSmooth (level, u, f, steps);
49
+ Residuum (level, u, f, res);
50
+ }
51
+
52
+
53
+ /// Do steps iterations of post-smoothing
54
+ virtual void PostSmooth (int level, ngla::BaseVector & u,
55
+ const ngla::BaseVector & f, int steps) const = 0;
56
+ /// Apply the preconditioning action (additive or multiplicative)
57
+ virtual void Precond (int level, const ngla::BaseVector & f, ngla::BaseVector & u) const;
58
+
59
+ ///
60
+ virtual void Residuum (int level, ngla::BaseVector & u,
61
+ const ngla::BaseVector & f,
62
+ ngla::BaseVector & d) const = 0;
63
+
64
+ ///
65
+ void SetAdditive () { additive = 1; }
66
+ ///
67
+ void SetUpdateAll (int ua) { updateall = ua; }
68
+ ///
69
+ void SetMultiplicative () { additive = 0; }
70
+ ///
71
+ int Additive () const { return additive; }
72
+
73
+ ///
74
+ virtual AutoVector CreateVector(int level) const = 0;
75
+
76
+ virtual Array<MemoryUsage> GetMemoryUsage () const { return Array<MemoryUsage>(); }
77
+ private:
78
+ MemoryTracer mt = { "Smoother" };
79
+ public:
80
+ const MemoryTracer& GetMemoryTracer() const { return mt; }
81
+ };
82
+
83
+
84
+ /**
85
+ Gauss-Seidel smoother.
86
+ Common relaxation of unknowns in node.
87
+ */
88
+ class GSSmoother : public Smoother
89
+ {
90
+ ///
91
+ // const MeshAccess & ma;
92
+ ///
93
+ const BilinearForm & biform;
94
+ ///
95
+ Array<shared_ptr<BaseJacobiPrecond>> jac;
96
+
97
+ public:
98
+ ///
99
+ GSSmoother (const MeshAccess & ama,
100
+ const BilinearForm & abiform);
101
+ ///
102
+ virtual ~GSSmoother();
103
+
104
+ ///
105
+ virtual void Update (bool force_update = 0);
106
+ ///
107
+ virtual void PreSmooth (int level, ngla::BaseVector & u,
108
+ const ngla::BaseVector & f, int steps) const;
109
+ ///
110
+ virtual void PostSmooth (int level, ngla::BaseVector & u,
111
+ const ngla::BaseVector & f, int steps) const;
112
+
113
+ virtual void PreSmoothResiduum (int level, ngla::BaseVector & u,
114
+ const ngla::BaseVector & f,
115
+ ngla::BaseVector & res,
116
+ int steps) const;
117
+
118
+ ///
119
+ virtual void Residuum (int level, ngla::BaseVector & u,
120
+ const ngla::BaseVector & f, ngla::BaseVector & d) const;
121
+ ///
122
+ virtual AutoVector CreateVector(int level) const;
123
+ };
124
+
125
+
126
+ /**
127
+ Anisotropic smoother.
128
+ Common relaxation of vertically aligned nodes.
129
+ */
130
+ class AnisotropicSmoother : public Smoother
131
+ {
132
+ ///
133
+ const MeshAccess & ma;
134
+ ///
135
+ const BilinearForm & biform;
136
+ ///
137
+ Array<shared_ptr<BaseBlockJacobiPrecond>> jac;
138
+
139
+ public:
140
+ ///
141
+ AnisotropicSmoother (const MeshAccess & ama,
142
+ const BilinearForm & abiform);
143
+ ///
144
+ virtual ~AnisotropicSmoother();
145
+
146
+ ///
147
+ virtual void Update (bool forace_update = 0);
148
+ ///
149
+ virtual void PreSmooth (int level, ngla::BaseVector & u,
150
+ const ngla::BaseVector & f, int steps) const;
151
+ ///
152
+ virtual void PostSmooth (int level, ngla::BaseVector & u,
153
+ const ngla::BaseVector & f, int steps) const;
154
+ ///
155
+ virtual void Residuum (int level, ngla::BaseVector & u,
156
+ const ngla::BaseVector & f, ngla::BaseVector & d) const;
157
+ ///
158
+ virtual AutoVector CreateVector(int level) const;
159
+ };
160
+
161
+
162
+
163
+
164
+
165
+ /**
166
+ Block-Gauss-Seidel smoother.
167
+ Blocks are defined by underlying FESpace.
168
+ */
169
+ class BlockSmoother : public Smoother
170
+ {
171
+ ///
172
+ // const MeshAccess & ma;
173
+ ///
174
+ const BilinearForm & biform;
175
+ ///
176
+ const LinearForm * constraint;
177
+ ///
178
+ Array<shared_ptr<BaseBlockJacobiPrecond>> jac;
179
+ ///
180
+ Array<shared_ptr<BaseMatrix>> inv;
181
+ ///
182
+ shared_ptr<Array<int>> direct;
183
+ shared_ptr<Array<int>> userdefined_direct;
184
+
185
+ Array<shared_ptr<Table<int>>> smoothing_blocks;
186
+
187
+ public:
188
+ ///
189
+ BlockSmoother (const MeshAccess & ama,
190
+ const BilinearForm & abiform, const Flags & aflags);
191
+ ///
192
+ BlockSmoother (const MeshAccess & ama,
193
+ const BilinearForm & abiform,
194
+ const LinearForm & aconstraint, const Flags & aflags);
195
+ ///
196
+ virtual ~BlockSmoother();
197
+
198
+ ///
199
+ virtual void Update (bool forace_update = 0);
200
+ ///
201
+ virtual void PreSmooth (int level, BaseVector & u,
202
+ const BaseVector & f, int steps) const;
203
+ ///
204
+ virtual void PreSmoothResiduum (int level, ngla::BaseVector & u,
205
+ const ngla::BaseVector & f,
206
+ ngla::BaseVector & res,
207
+ int steps) const;
208
+
209
+ ///
210
+ virtual void PostSmooth (int level, ngla::BaseVector & u,
211
+ const ngla::BaseVector & f, int steps) const;
212
+ ///
213
+ virtual void Precond (int level, const ngla::BaseVector & f, ngla::BaseVector & u) const;
214
+ ///
215
+ virtual void Residuum (int level, ngla::BaseVector & u,
216
+ const ngla::BaseVector & f, ngla::BaseVector & d) const;
217
+ ///
218
+ virtual AutoVector CreateVector(int level) const;
219
+
220
+ virtual Array<MemoryUsage> GetMemoryUsage () const;
221
+
222
+ void SetDirectSolverCluster(shared_ptr<Array<int>> cluster)
223
+ { userdefined_direct = cluster; }
224
+ };
225
+
226
+
227
+
228
+
229
+
230
+ #ifdef XXX_OBSOLETE
231
+ /**
232
+ Matrix - vector multiplication by smoothing step.
233
+ */
234
+ class SmoothingPreconditioner : public ngla::BaseMatrix
235
+ {
236
+ ///
237
+ const Smoother & smoother;
238
+ ///
239
+ int level;
240
+ public:
241
+ ///
242
+ SmoothingPreconditioner (const Smoother & asmoother,
243
+ int alevel = 0);
244
+ ///
245
+ virtual void Mult (const ngla::BaseVector & f, ngla::BaseVector & u) const;
246
+ ///
247
+ virtual AutoVector CreateVector () const;
248
+ };
249
+ #endif
250
+
251
+ }
252
+
253
+ #endif
@@ -0,0 +1,89 @@
1
+ #ifndef FILE_SOLVE
2
+ #define FILE_SOLVE
3
+
4
+ /*********************************************************************/
5
+ /* File: solve.hpp */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 25. Mar. 2000 */
8
+ /*********************************************************************/
9
+
10
+
11
+ /*
12
+ NGS Solvers: BVP, Instationary, ...
13
+ */
14
+
15
+
16
+ #include <ngstd.hpp>
17
+ #include <nginterface.h>
18
+
19
+ #include <comp.hpp>
20
+ #include <multigrid.hpp>
21
+
22
+ struct Tcl_Interp;
23
+
24
+
25
+ /*
26
+ #ifdef WIN32
27
+ #define LOCAL_EXPORTS __declspec(dllexport)
28
+ #else
29
+ #define LOCAL_EXPORTS
30
+ #endif
31
+ */
32
+
33
+ /**
34
+ A collection of solvers.
35
+ Numerical procedures NumProc, e.g. for
36
+ the solution of boundary value problems NumProcBVP or
37
+ eigen value problems NumProcEVP, and many many more.
38
+ */
39
+ namespace ngsolve
40
+ {
41
+ using namespace std;
42
+
43
+ using namespace ngstd;
44
+ using namespace ngla;
45
+ using namespace ngfem;
46
+ using namespace ngcomp;
47
+ using namespace ngmg;
48
+ }
49
+
50
+
51
+ /*
52
+ #include "numproc.hpp"
53
+ #include "pde.hpp"
54
+ */
55
+
56
+
57
+ /*
58
+ #ifdef WIN32
59
+ // trick from http://social.msdn.microsoft.com/Forums/en/vclanguage/thread/ab642c88-2d2d-4f5d-9fd7-2341442d5a46
60
+ // all new/delete allocation is done from ngsolve heap
61
+
62
+ NGS_DLL_HEADER void * __cdecl my_operator_new_replacement(size_t _count);
63
+ NGS_DLL_HEADER void __cdecl my_operator_delete_replacement(void * _ptr);
64
+ NGS_DLL_HEADER void * __cdecl my_operator_new_array_replacement(size_t _count);
65
+ NGS_DLL_HEADER void __cdecl my_operator_delete_array_replacement(void * _ptr);
66
+
67
+ #ifndef NGS_EXPORTS
68
+ inline void * __cdecl operator new(size_t _count) {
69
+ return my_operator_new_replacement(_count);
70
+ }
71
+ inline void __cdecl operator delete(void * _ptr) {
72
+ my_operator_delete_replacement(_ptr);
73
+ }
74
+ inline void * __cdecl operator new[](size_t _count) {
75
+ return my_operator_new_array_replacement(_count);
76
+ }
77
+ inline void __cdecl operator delete[](void * _ptr) {
78
+ my_operator_delete_array_replacement(_ptr);
79
+ }
80
+
81
+ #endif
82
+
83
+ #endif
84
+ */
85
+
86
+
87
+
88
+
89
+ #endif