ngsolve 6.2.2502.post18.dev1__cp312-cp312-manylinux_2_28_x86_64.whl → 6.2.2504__cp312-cp312-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 (323) hide show
  1. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/bin/ngs_nvcc +1 -1
  2. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/bin/ngscxx +2 -2
  3. ngsolve-6.2.2504.data/data/bin/ngspy +2 -0
  4. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/integrator.hpp +4 -16
  5. ngsolve-6.2.2504.data/data/include/netgen/mp_coefficient.hpp +140 -0
  6. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/mptools.hpp +95 -163
  7. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/symbolicintegrator.hpp +1 -0
  8. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/cmake/ngsolve/NGSolveConfig.cmake +5 -5
  9. ngsolve-6.2.2504.data/data/lib/python3.12/site-packages/netgen_mesher.libs/libngbla.so +0 -0
  10. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/netgen_mesher.libs/libngcomp.so +0 -0
  11. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/netgen_mesher.libs/libngfem.so +0 -0
  12. ngsolve-6.2.2504.data/data/lib/python3.12/site-packages/netgen_mesher.libs/libngsbem.so +0 -0
  13. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/netgen_mesher.libs/libngscudalib.so +0 -0
  14. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/netgen_mesher.libs/libngstd.so +0 -0
  15. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/__init__.py +1 -0
  16. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/config/config.py +6 -6
  17. ngsolve-6.2.2504.data/data/lib/python3.12/site-packages/ngsolve/solve_implementation.py +146 -0
  18. {ngsolve-6.2.2502.post18.dev1.dist-info → ngsolve-6.2.2504.dist-info}/METADATA +2 -2
  19. ngsolve-6.2.2504.dist-info/RECORD +299 -0
  20. ngsolve-6.2.2502.post18.dev1.data/data/bin/ngspy +0 -2
  21. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/netgen_mesher.libs/libngbla.so +0 -0
  22. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/netgen_mesher.libs/libngsbem.so +0 -0
  23. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/__init__.pyi +0 -234
  24. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/bla.pyi +0 -1139
  25. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/bvp.pyi +0 -32
  26. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/comp/__init__.pyi +0 -5390
  27. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/comp/pml.pyi +0 -89
  28. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/config/__init__.pyi +0 -43
  29. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/config/config.pyi +0 -45
  30. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/directsolvers.pyi +0 -15
  31. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/eigenvalues.pyi +0 -30
  32. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/fem.pyi +0 -1635
  33. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/krylovspace.pyi +0 -301
  34. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/la.pyi +0 -1218
  35. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/ngstd.pyi +0 -58
  36. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/nonlinearsolvers.pyi +0 -97
  37. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/preconditioners.pyi +0 -6
  38. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/solve.pyi +0 -108
  39. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/solvers.pyi +0 -14
  40. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/timestepping.pyi +0 -27
  41. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/timing.pyi +0 -54
  42. ngsolve-6.2.2502.post18.dev1.data/data/lib/python3.12/site-packages/ngsolve/utils.pyi +0 -272
  43. ngsolve-6.2.2502.post18.dev1.dist-info/RECORD +0 -317
  44. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/bin/ngs_nvlink +0 -0
  45. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/bin/ngsld +0 -0
  46. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/bin/ngsolve.tcl +0 -0
  47. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/arnoldi.hpp +0 -0
  48. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/bandmatrix.hpp +0 -0
  49. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/basematrix.hpp +0 -0
  50. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/basevector.hpp +0 -0
  51. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/bdbequations.hpp +0 -0
  52. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/bdbintegrator.hpp +0 -0
  53. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/bessel.hpp +0 -0
  54. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/bilinearform.hpp +0 -0
  55. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/bla.hpp +0 -0
  56. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/blockalloc.hpp +0 -0
  57. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/blockjacobi.hpp +0 -0
  58. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/bspline.hpp +0 -0
  59. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/calcinverse.hpp +0 -0
  60. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/cg.hpp +0 -0
  61. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/chebyshev.hpp +0 -0
  62. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/cholesky.hpp +0 -0
  63. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/clapack.h +0 -0
  64. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/code_generation.hpp +0 -0
  65. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/coefficient.hpp +0 -0
  66. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/coefficient_impl.hpp +0 -0
  67. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/coefficient_stdmath.hpp +0 -0
  68. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/commutingAMG.hpp +0 -0
  69. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/comp.hpp +0 -0
  70. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/compatibility.hpp +0 -0
  71. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/complex_wrapper.hpp +0 -0
  72. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/compressedfespace.hpp +0 -0
  73. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/contact.hpp +0 -0
  74. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/cuda_linalg.hpp +0 -0
  75. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/cuda_ngbla.hpp +0 -0
  76. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/cuda_ngstd.hpp +0 -0
  77. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/cuda_profiler.hpp +0 -0
  78. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/diagonalmatrix.hpp +0 -0
  79. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/differentialoperator.hpp +0 -0
  80. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/diffop.hpp +0 -0
  81. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/diffop_impl.hpp +0 -0
  82. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/discontinuous.hpp +0 -0
  83. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/dump.hpp +0 -0
  84. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/ectypes.hpp +0 -0
  85. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/eigen.hpp +0 -0
  86. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/eigensystem.hpp +0 -0
  87. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/elasticity_equations.hpp +0 -0
  88. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/elementbyelement.hpp +0 -0
  89. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/elementtopology.hpp +0 -0
  90. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/elementtransformation.hpp +0 -0
  91. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/evalfunc.hpp +0 -0
  92. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/expr.hpp +0 -0
  93. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/facetfe.hpp +0 -0
  94. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/facetfespace.hpp +0 -0
  95. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/facethofe.hpp +0 -0
  96. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/facetsurffespace.hpp +0 -0
  97. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/fe_interfaces.hpp +0 -0
  98. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/fem.hpp +0 -0
  99. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/fesconvert.hpp +0 -0
  100. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/fespace.hpp +0 -0
  101. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/finiteelement.hpp +0 -0
  102. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/globalinterfacespace.hpp +0 -0
  103. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/globalspace.hpp +0 -0
  104. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/gridfunction.hpp +0 -0
  105. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/h1amg.hpp +0 -0
  106. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/h1hofe.hpp +0 -0
  107. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/h1hofe_impl.hpp +0 -0
  108. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/h1hofefo.hpp +0 -0
  109. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/h1hofefo_impl.hpp +0 -0
  110. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/h1hofespace.hpp +0 -0
  111. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/h1lofe.hpp +0 -0
  112. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/h1lumping.hpp +0 -0
  113. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hcurl_equations.hpp +0 -0
  114. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hcurlcurlfe.hpp +0 -0
  115. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hcurlcurlfespace.hpp +0 -0
  116. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hcurlfe.hpp +0 -0
  117. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hcurlfe_utils.hpp +0 -0
  118. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hcurlhdiv_dshape.hpp +0 -0
  119. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hcurlhdivfes.hpp +0 -0
  120. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hcurlhofe.hpp +0 -0
  121. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hcurlhofe_impl.hpp +0 -0
  122. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hcurlhofespace.hpp +0 -0
  123. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hcurllofe.hpp +0 -0
  124. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hdiv_equations.hpp +0 -0
  125. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hdivdivfe.hpp +0 -0
  126. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hdivdivsurfacespace.hpp +0 -0
  127. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hdivfe.hpp +0 -0
  128. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hdivfe_utils.hpp +0 -0
  129. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hdivfes.hpp +0 -0
  130. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hdivhofe.hpp +0 -0
  131. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hdivhofe_impl.hpp +0 -0
  132. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hdivhofefo.hpp +0 -0
  133. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hdivhofespace.hpp +0 -0
  134. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hdivhosurfacefespace.hpp +0 -0
  135. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hdivlofe.hpp +0 -0
  136. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hidden.hpp +0 -0
  137. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/householder.hpp +0 -0
  138. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hypre_ams_precond.hpp +0 -0
  139. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/hypre_precond.hpp +0 -0
  140. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/integratorcf.hpp +0 -0
  141. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/interpolate.hpp +0 -0
  142. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/intrule.hpp +0 -0
  143. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/intrules_SauterSchwab.hpp +0 -0
  144. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/irspace.hpp +0 -0
  145. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/jacobi.hpp +0 -0
  146. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/l2hofe.hpp +0 -0
  147. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/l2hofe_impl.hpp +0 -0
  148. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/l2hofefo.hpp +0 -0
  149. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/l2hofespace.hpp +0 -0
  150. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/la.hpp +0 -0
  151. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/linalg_kernels.hpp +0 -0
  152. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/linearform.hpp +0 -0
  153. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/matrix.hpp +0 -0
  154. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/memusage.hpp +0 -0
  155. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/meshaccess.hpp +0 -0
  156. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/mgpre.hpp +0 -0
  157. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/multigrid.hpp +0 -0
  158. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/multivector.hpp +0 -0
  159. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/mumpsinverse.hpp +0 -0
  160. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/mycomplex.hpp +0 -0
  161. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/ng_lapack.hpp +0 -0
  162. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/ngblas.hpp +0 -0
  163. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/ngs_defines.hpp +0 -0
  164. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/ngs_stdcpp_include.hpp +0 -0
  165. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/ngs_utils.hpp +0 -0
  166. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/ngsobject.hpp +0 -0
  167. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/ngsstream.hpp +0 -0
  168. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/ngstd.hpp +0 -0
  169. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/nodalhofe.hpp +0 -0
  170. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/nodalhofe_impl.hpp +0 -0
  171. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/normalfacetfe.hpp +0 -0
  172. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/normalfacetfespace.hpp +0 -0
  173. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/normalfacetsurfacefespace.hpp +0 -0
  174. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/order.hpp +0 -0
  175. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/parallel_matrices.hpp +0 -0
  176. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/paralleldofs.hpp +0 -0
  177. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/parallelngs.hpp +0 -0
  178. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/parallelvector.hpp +0 -0
  179. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/pardisoinverse.hpp +0 -0
  180. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/periodic.hpp +0 -0
  181. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/plateaufespace.hpp +0 -0
  182. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/pml.hpp +0 -0
  183. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/pmltrafo.hpp +0 -0
  184. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/postproc.hpp +0 -0
  185. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/potentialtools.hpp +0 -0
  186. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/precomp.hpp +0 -0
  187. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/preconditioner.hpp +0 -0
  188. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/prolongation.hpp +0 -0
  189. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/python_comp.hpp +0 -0
  190. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/python_fem.hpp +0 -0
  191. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/python_linalg.hpp +0 -0
  192. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/python_ngstd.hpp +0 -0
  193. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/recursive_pol.hpp +0 -0
  194. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/recursive_pol_tet.hpp +0 -0
  195. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/recursive_pol_trig.hpp +0 -0
  196. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/reorderedfespace.hpp +0 -0
  197. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/sample_sort.hpp +0 -0
  198. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/scalarfe.hpp +0 -0
  199. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/shapefunction_utils.hpp +0 -0
  200. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/simd_complex.hpp +0 -0
  201. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/smoother.hpp +0 -0
  202. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/solve.hpp +0 -0
  203. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/sparsecholesky.hpp +0 -0
  204. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/sparsematrix.hpp +0 -0
  205. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/sparsematrix_dyn.hpp +0 -0
  206. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/sparsematrix_impl.hpp +0 -0
  207. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/special_matrix.hpp +0 -0
  208. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/specialelement.hpp +0 -0
  209. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/statushandler.hpp +0 -0
  210. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/stringops.hpp +0 -0
  211. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/superluinverse.hpp +0 -0
  212. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/symmetricmatrix.hpp +0 -0
  213. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/tangentialfacetfe.hpp +0 -0
  214. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/tangentialfacetfespace.hpp +0 -0
  215. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/tensor.hpp +0 -0
  216. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/tensorcoefficient.hpp +0 -0
  217. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/tensorproductintegrator.hpp +0 -0
  218. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/thcurlfe.hpp +0 -0
  219. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/thcurlfe_impl.hpp +0 -0
  220. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/thdivfe.hpp +0 -0
  221. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/thdivfe_impl.hpp +0 -0
  222. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/tpdiffop.hpp +0 -0
  223. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/tpfes.hpp +0 -0
  224. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/tpintrule.hpp +0 -0
  225. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/triangular.hpp +0 -0
  226. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/tscalarfe.hpp +0 -0
  227. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/tscalarfe_impl.hpp +0 -0
  228. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/umfpackinverse.hpp +0 -0
  229. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/unifiedvector.hpp +0 -0
  230. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/vector.hpp +0 -0
  231. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/voxelcoefficientfunction.hpp +0 -0
  232. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/vtkoutput.hpp +0 -0
  233. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/vvector.hpp +0 -0
  234. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/include/netgen/webgui.hpp +0 -0
  235. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/cmake/ngsolve/ngsolve-targets-release.cmake +0 -0
  236. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/cmake/ngsolve/ngsolve-targets.cmake +0 -0
  237. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/netgen_mesher.libs/libngla.so +0 -0
  238. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/netgen_mesher.libs/libngsolve.so +0 -0
  239. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/TensorProductTools.py +0 -0
  240. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/__console.py +0 -0
  241. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/__expr.py +0 -0
  242. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/_scikit_build_core_dependencies.py +0 -0
  243. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/bvp.py +0 -0
  244. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/config/__init__.py +0 -0
  245. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/config/__main__.py +0 -0
  246. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/TensorProduct/__init__.py +0 -0
  247. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/TensorProduct/tp_dg_1d_1d.py +0 -0
  248. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/TensorProduct/tp_dg_1d_2d.py +0 -0
  249. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/TensorProduct/tp_dg_2d_1d.py +0 -0
  250. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/TensorProduct/tp_dg_2d_2d.py +0 -0
  251. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/__init__.py +0 -0
  252. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/howto/__init__.py +0 -0
  253. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/howto/hhj.py +0 -0
  254. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/howto/hybrid_dg.py +0 -0
  255. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/howto/mixed.py +0 -0
  256. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/howto/nonlin.py +0 -0
  257. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/howto/pickling.py +0 -0
  258. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/howto/pml.py +0 -0
  259. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/howto/taskmanager.py +0 -0
  260. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/howto/tdnns.py +0 -0
  261. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/howto/timeDG-skeleton.py +0 -0
  262. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/howto/timeDG.py +0 -0
  263. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/howto/timeDGlap.py +0 -0
  264. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/howto/timeDGwave.py +0 -0
  265. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/intro/__init__.py +0 -0
  266. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/intro/adaptive.py +0 -0
  267. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/intro/cmagnet.py +0 -0
  268. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/intro/elasticity.py +0 -0
  269. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/intro/navierstokes.py +0 -0
  270. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/intro/poisson.ipynb +0 -0
  271. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/intro/poisson.py +0 -0
  272. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/mpi/__init__.py +0 -0
  273. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/mpi/mpi_cmagnet.py +0 -0
  274. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/mpi/mpi_navierstokes.py +0 -0
  275. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/mpi/mpi_poisson.py +0 -0
  276. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/demos/mpi/mpi_timeDG.py +0 -0
  277. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/directsolvers.py +0 -0
  278. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/eigenvalues.py +0 -0
  279. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/internal.py +0 -0
  280. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/krylovspace.py +0 -0
  281. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/meshes.py +0 -0
  282. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/ngs2petsc.py +0 -0
  283. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/ngscuda.so +0 -0
  284. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/ngscxx.py +0 -0
  285. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/ngslib.so +0 -0
  286. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/nonlinearsolvers.py +0 -0
  287. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/preconditioners.py +0 -0
  288. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/solvers.py +0 -0
  289. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/timestepping.py +0 -0
  290. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/timing.py +0 -0
  291. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/utils.py +0 -0
  292. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/lib/python3.12/site-packages/ngsolve/webgui.py +0 -0
  293. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/beam.geo +0 -0
  294. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/beam.vol +0 -0
  295. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/chip.in2d +0 -0
  296. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/chip.vol +0 -0
  297. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/coil.geo +0 -0
  298. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/coil.vol +0 -0
  299. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/coilshield.geo +0 -0
  300. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/coilshield.vol +0 -0
  301. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/cube.geo +0 -0
  302. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/cube.vol +0 -0
  303. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d10_DGdoubleglazing.pde +0 -0
  304. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d11_chip_nitsche.pde +0 -0
  305. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d1_square.pde +0 -0
  306. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d2_chip.pde +0 -0
  307. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d3_helmholtz.pde +0 -0
  308. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d4_cube.pde +0 -0
  309. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d5_beam.pde +0 -0
  310. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d6_shaft.pde +0 -0
  311. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d7_coil.pde +0 -0
  312. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d8_coilshield.pde +0 -0
  313. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d9_hybridDG.pde +0 -0
  314. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/doubleglazing.in2d +0 -0
  315. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/doubleglazing.vol +0 -0
  316. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
  317. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/shaft.geo +0 -0
  318. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/shaft.vol +0 -0
  319. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/square.in2d +0 -0
  320. {ngsolve-6.2.2502.post18.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/square.vol +0 -0
  321. {ngsolve-6.2.2502.post18.dev1.dist-info → ngsolve-6.2.2504.dist-info}/WHEEL +0 -0
  322. {ngsolve-6.2.2502.post18.dev1.dist-info → ngsolve-6.2.2504.dist-info}/licenses/LICENSE +0 -0
  323. {ngsolve-6.2.2502.post18.dev1.dist-info → ngsolve-6.2.2504.dist-info}/top_level.txt +0 -0
@@ -11,4 +11,4 @@ if [ -f /usr/local/cuda/bin/nvcc ]
11
11
  else NVCC=nvcc
12
12
  fi
13
13
 
14
- $NVCC -DHAVE_NETGEN_SOURCES -DHAVE_DLFCN_H -DHAVE_CXA_DEMANGLE -DUSE_TIMEOFDAY -DTCL -DLAPACK -DUSE_PARDISO -DNGS_PYTHON -D_GLIBCXX_USE_CXX11_ABI=1 -DNETGEN_PYTHON -DNG_PYTHON -DPYBIND11_SIMPLE_GIL_MANAGEMENT -DPARALLEL -DNG_MPI_WRAPPER -arch=native -Xcompiler -std=c++17 -Xcompiler -DMAX_SYS_DIM=3 -Xcompiler -march=core-avx2 -Xcompiler -fabi-version=17 -Xcompiler -fPIC -I/opt/_internal/cpython-3.12.8/include -I/opt/_internal/cpython-3.12.8/include/python3.12 -I$NGSCXX_DIR/../include/netgen -I$NGSCXX_DIR/../include/netgen/include $PY_INCLUDE_FLAGS $*
14
+ $NVCC -DHAVE_NETGEN_SOURCES -DHAVE_DLFCN_H -DHAVE_CXA_DEMANGLE -DUSE_TIMEOFDAY -DTCL -DLAPACK -DUSE_PARDISO -DNGS_PYTHON -D_GLIBCXX_USE_CXX11_ABI=1 -DNETGEN_PYTHON -DNG_PYTHON -DPYBIND11_SIMPLE_GIL_MANAGEMENT -DPARALLEL -DNG_MPI_WRAPPER -arch=native -Xcompiler -std=c++17 -Xcompiler -DMAX_SYS_DIM=3 -Xcompiler -march=core-avx2 -Xcompiler -fabi-version=17 -Xcompiler -fPIC -I/opt/_internal/cpython-3.12.8/include -I/opt/_internal/cpython-3.12.11/include/python3.12 -I$NGSCXX_DIR/../include/netgen -I$NGSCXX_DIR/../include/netgen/include $PY_INCLUDE_FLAGS $*
@@ -10,6 +10,6 @@ export CCACHE_NOHASHDIR=1
10
10
 
11
11
 
12
12
  if [ -f /usr/bin/ccache ]
13
- then /usr/bin/ccache $NGSCXX -O3 -DNDEBUG -DHAVE_NETGEN_SOURCES -DHAVE_DLFCN_H -DHAVE_CXA_DEMANGLE -DUSE_TIMEOFDAY -DTCL -DLAPACK -DUSE_PARDISO -DNGS_PYTHON -D_GLIBCXX_USE_CXX11_ABI=1 -DNETGEN_PYTHON -DNG_PYTHON -DPYBIND11_SIMPLE_GIL_MANAGEMENT -DPARALLEL -DNG_MPI_WRAPPER -std=c++17 -DMAX_SYS_DIM=3 -march=core-avx2 -fabi-version=17 -fPIC -I/opt/_internal/cpython-3.12.8/include -I/opt/_internal/cpython-3.12.8/include/python3.12 -I$NGSCXX_DIR/../include/netgen -I$NGSCXX_DIR/../include/netgen/include $PY_INCLUDE_FLAGS $*
14
- else $NGSCXX -O3 -DNDEBUG -DHAVE_NETGEN_SOURCES -DHAVE_DLFCN_H -DHAVE_CXA_DEMANGLE -DUSE_TIMEOFDAY -DTCL -DLAPACK -DUSE_PARDISO -DNGS_PYTHON -D_GLIBCXX_USE_CXX11_ABI=1 -DNETGEN_PYTHON -DNG_PYTHON -DPYBIND11_SIMPLE_GIL_MANAGEMENT -DPARALLEL -DNG_MPI_WRAPPER -std=c++17 -DMAX_SYS_DIM=3 -march=core-avx2 -fabi-version=17 -fPIC -I/opt/_internal/cpython-3.12.8/include -I/opt/_internal/cpython-3.12.8/include/python3.12 -I$NGSCXX_DIR/../include/netgen -I$NGSCXX_DIR/../include/netgen/include $PY_INCLUDE_FLAGS $*
13
+ then /usr/bin/ccache $NGSCXX -O3 -DNDEBUG -DHAVE_NETGEN_SOURCES -DHAVE_DLFCN_H -DHAVE_CXA_DEMANGLE -DUSE_TIMEOFDAY -DTCL -DLAPACK -DUSE_PARDISO -DNGS_PYTHON -D_GLIBCXX_USE_CXX11_ABI=1 -DNETGEN_PYTHON -DNG_PYTHON -DPYBIND11_SIMPLE_GIL_MANAGEMENT -DPARALLEL -DNG_MPI_WRAPPER -std=c++17 -DMAX_SYS_DIM=3 -march=core-avx2 -fabi-version=17 -fPIC -I/opt/_internal/cpython-3.12.8/include -I/opt/_internal/cpython-3.12.11/include/python3.12 -I$NGSCXX_DIR/../include/netgen -I$NGSCXX_DIR/../include/netgen/include $PY_INCLUDE_FLAGS $*
14
+ else $NGSCXX -O3 -DNDEBUG -DHAVE_NETGEN_SOURCES -DHAVE_DLFCN_H -DHAVE_CXA_DEMANGLE -DUSE_TIMEOFDAY -DTCL -DLAPACK -DUSE_PARDISO -DNGS_PYTHON -D_GLIBCXX_USE_CXX11_ABI=1 -DNETGEN_PYTHON -DNG_PYTHON -DPYBIND11_SIMPLE_GIL_MANAGEMENT -DPARALLEL -DNG_MPI_WRAPPER -std=c++17 -DMAX_SYS_DIM=3 -march=core-avx2 -fabi-version=17 -fPIC -I/opt/_internal/cpython-3.12.8/include -I/opt/_internal/cpython-3.12.11/include/python3.12 -I$NGSCXX_DIR/../include/netgen -I$NGSCXX_DIR/../include/netgen/include $PY_INCLUDE_FLAGS $*
15
15
  fi
@@ -0,0 +1,2 @@
1
+ #! /usr/bin/bash
2
+ LD_PRELOAD=$LD_PRELOAD: /opt/_internal/cpython-3.12.11/bin/python $*
@@ -781,20 +781,14 @@ namespace ngfem
781
781
  const FiniteElement & volumefel2, int LocalFacetNr2,
782
782
  const ElementTransformation & eltrans2, FlatArray<int> & ElVertices2,
783
783
  FlatVector<double> elx, FlatVector<double> ely,
784
- LocalHeap & lh) const
785
- {
786
- throw Exception ("FacetBilinearFormIntegrator::ApplyFacetMatrix for inner facets not implemented!");
787
- }
784
+ LocalHeap & lh) const;
788
785
  virtual void
789
786
  ApplyFacetMatrix (const FiniteElement & volumefel1, int LocalFacetNr1,
790
787
  const ElementTransformation & eltrans1, FlatArray<int> & ElVertices1,
791
788
  const FiniteElement & volumefel2, int LocalFacetNr2,
792
789
  const ElementTransformation & eltrans2, FlatArray<int> & ElVertices2,
793
790
  FlatVector<Complex> elx, FlatVector<Complex> ely,
794
- LocalHeap & lh) const
795
- {
796
- throw Exception ("FacetBilinearFormIntegrator::ApplyFacetMatrix for inner facets not implemented!");
797
- }
791
+ LocalHeap & lh) const;
798
792
 
799
793
 
800
794
  virtual void
@@ -841,19 +835,13 @@ namespace ngfem
841
835
  const ElementTransformation & eltrans, FlatArray<int> & ElVertices,
842
836
  const ElementTransformation & seltrans, FlatArray<int> & SElVertices,
843
837
  FlatVector<double> elx, FlatVector<double> ely,
844
- LocalHeap & lh) const
845
- {
846
- throw Exception ("FacetBilinearFormIntegrator::ApplyFacetMatrix for boundary facets not implemented!");
847
- }
838
+ LocalHeap & lh) const;
848
839
  virtual void
849
840
  ApplyFacetMatrix (const FiniteElement & volumefel, int LocalFacetNr,
850
841
  const ElementTransformation & eltrans, FlatArray<int> & ElVertices,
851
842
  const ElementTransformation & seltrans, FlatArray<int> & SElVertices,
852
843
  FlatVector<Complex> elx, FlatVector<Complex> ely,
853
- LocalHeap & lh) const
854
- {
855
- throw Exception ("FacetBilinearFormIntegrator::ApplyFacetMatrix for boundary facets not implemented!");
856
- }
844
+ LocalHeap & lh) const;
857
845
 
858
846
 
859
847
  // calculate traces in integration points
@@ -0,0 +1,140 @@
1
+ #ifndef MP_COEFFICIENT
2
+ #define MP_COEFFICIENT
3
+
4
+
5
+ #include "mptools.hpp"
6
+
7
+ namespace ngsbem
8
+ {
9
+
10
+
11
+ // ******************** Coefficient Functions *********************
12
+
13
+
14
+ class SphericalHarmonicsCF : public CoefficientFunction
15
+ {
16
+ SphericalHarmonics<Complex> sh;
17
+ public:
18
+ SphericalHarmonicsCF (int order)
19
+ : CoefficientFunction(1, true), sh(order) { }
20
+ Complex & Coef(int n, int m) { return sh.Coef(n,m); }
21
+
22
+ virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
23
+ { throw Exception("real eval not available"); }
24
+
25
+ virtual void Evaluate (const BaseMappedIntegrationPoint & mip, FlatVector<Complex> values) const override
26
+ {
27
+ values(0) = sh.Eval(mip.GetPoint());
28
+ }
29
+
30
+ virtual void Evaluate (const BaseMappedIntegrationRule & ir, BareSliceMatrix<Complex> values) const override
31
+ {
32
+ for (int i = 0; i < ir.Size(); i++)
33
+ {
34
+ auto & mip = ir[i];
35
+ values(i,0) = sh.Eval(mip.GetPoint());
36
+ }
37
+ }
38
+
39
+ auto & SH() { return sh; }
40
+ };
41
+
42
+
43
+
44
+ template <typename entry_type> class RegularMLMultiPoleCF;
45
+
46
+
47
+ template <typename RADIAL, typename entry_type=Complex>
48
+ class MultiPoleCF : public CoefficientFunction
49
+ {
50
+ MultiPole<RADIAL, entry_type> mp;
51
+ Vec<3> center;
52
+ public:
53
+ MultiPoleCF (int order, double kappa, Vec<3> acenter, double rtyp = 1)
54
+ : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mp(order, kappa, rtyp), center(acenter) { }
55
+
56
+ entry_type & Coef(int n, int m) { return mp.Coef(n,m); }
57
+ auto & SH() { return mp.SH(); }
58
+ auto & MP() { return mp; }
59
+ Vec<3> Center() const { return center; }
60
+
61
+ virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
62
+ { throw Exception("real eval not available"); }
63
+
64
+ virtual void Evaluate (const BaseMappedIntegrationPoint & mip, FlatVector<Complex> values) const override
65
+ {
66
+ if constexpr (std::is_same<entry_type, Complex>())
67
+ values(0) = mp.Eval(mip.GetPoint()-center);
68
+ else
69
+ values = mp.Eval(mip.GetPoint()-center);
70
+ }
71
+
72
+ template <typename TARGET>
73
+ void ShiftZ (double z, MultiPole<TARGET, entry_type> & target) { mp.ShiftZ(z, target); }
74
+
75
+ using CoefficientFunction::Transform;
76
+ template <typename TARGET>
77
+ void Transform (MultiPoleCF<TARGET, entry_type> & target)
78
+ {
79
+ mp.Transform (target.MP(), target.Center()-center);
80
+ }
81
+ };
82
+
83
+ template <typename entry_type>
84
+ class SingularMLMultiPoleCF : public CoefficientFunction
85
+ {
86
+ shared_ptr<SingularMLMultiPole<entry_type>> mlmp;
87
+ public:
88
+ SingularMLMultiPoleCF (Vec<3> center, double r, double kappa)
89
+ : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<SingularMLMultiPole<entry_type>>(center, r, kappa)} { }
90
+
91
+ virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
92
+ { throw Exception("real eval not available"); }
93
+
94
+ virtual void Evaluate (const BaseMappedIntegrationPoint & mip, FlatVector<Complex> values) const override
95
+ {
96
+ // values(0) = mlmp->Evaluate(mip.GetPoint());
97
+
98
+ if constexpr (std::is_same<entry_type, Complex>())
99
+ values(0) = mlmp->Evaluate(mip.GetPoint());
100
+ else
101
+ values = mlmp->Evaluate(mip.GetPoint());
102
+
103
+
104
+ }
105
+
106
+ shared_ptr<SingularMLMultiPole<entry_type>> MLMP() const { return mlmp; }
107
+ shared_ptr<RegularMLMultiPoleCF<entry_type>> CreateRegularExpansion(Vec<3> center, double r) const;
108
+ };
109
+
110
+
111
+ template <typename entry_type>
112
+ class RegularMLMultiPoleCF : public CoefficientFunction
113
+ {
114
+ shared_ptr<RegularMLMultiPole<entry_type>> mlmp;
115
+ public:
116
+ RegularMLMultiPoleCF (shared_ptr<SingularMLMultiPoleCF<entry_type>> asingmp, Vec<3> center, double r)
117
+ : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<RegularMLMultiPole<entry_type>>(asingmp->MLMP(), center, r)} { }
118
+ RegularMLMultiPoleCF (shared_ptr<SingularMLMultiPole<entry_type>> asingmp, Vec<3> center, double r)
119
+ : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<RegularMLMultiPole<entry_type>>(asingmp, center, r)} { }
120
+
121
+ virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
122
+ { throw Exception("real eval not available"); }
123
+
124
+ virtual void Evaluate (const BaseMappedIntegrationPoint & mip, FlatVector<Complex> values) const override
125
+ {
126
+ // values(0) = mlmp->Evaluate(mip.GetPoint());
127
+
128
+ if constexpr (std::is_same<entry_type, Complex>())
129
+ values(0) = mlmp->Evaluate(mip.GetPoint());
130
+ else
131
+ values = mlmp->Evaluate(mip.GetPoint());
132
+ }
133
+
134
+ shared_ptr<RegularMLMultiPole<entry_type>> MLMP() { return mlmp; }
135
+ };
136
+
137
+
138
+ }
139
+
140
+ #endif
@@ -223,17 +223,46 @@ namespace ngsbem
223
223
  {
224
224
  SphericalHankel1(order, r, scale, values);
225
225
  }
226
+
227
+ template <typename T>
228
+ static void Eval (int order, double kappa, double r, double rtyp, T && values)
229
+ {
230
+ double scale = Scale(kappa, rtyp);
231
+ SphericalHankel1(order, r*kappa, scale, values);
232
+ }
233
+
234
+ static double Scale (double kappa, double rtyp)
235
+ {
236
+ // return min(1.0, rtyp*kappa);
237
+ return min(1.0, 0.5*rtyp*kappa);
238
+ }
226
239
  };
240
+
241
+
227
242
 
228
243
  // jn
229
244
  class MPRegular
230
245
  {
231
- public:
246
+ public:
232
247
  template <typename T>
233
248
  static void Eval (int order, double r, double scale, T && values)
234
249
  {
235
250
  SphericalBessel (order, r, 1.0/scale, values);
236
251
  }
252
+
253
+ template <typename T>
254
+ static void Eval (int order, double kappa, double r, double rtyp, T && values)
255
+ {
256
+ double scale = Scale(kappa, rtyp);
257
+ SphericalBessel (order, r*kappa, 1.0/scale, values);
258
+ }
259
+
260
+ static double Scale (double kappa, double rtyp)
261
+ {
262
+ // return 1.0/ min(1.0, 0.25*rtyp*kappa);
263
+ return 1.0/ min(1.0, 0.5*rtyp*kappa);
264
+ }
265
+
237
266
  };
238
267
 
239
268
 
@@ -244,22 +273,25 @@ namespace ngsbem
244
273
  {
245
274
  SphericalHarmonics<entry_type> sh;
246
275
  double kappa;
247
- double scale;
276
+ double rtyp;
248
277
  public:
249
- MultiPole (int aorder, double akappa, double ascale = 1)
250
- : sh(aorder), kappa(akappa), scale(ascale) { }
251
278
 
279
+ MultiPole (int aorder, double akappa, double artyp)
280
+ : sh(aorder), kappa(akappa), rtyp(artyp) { }
281
+
282
+
252
283
  entry_type & Coef(int n, int m) { return sh.Coef(n,m); }
253
284
  auto & SH() { return sh; }
254
285
  const auto & SH() const { return sh; }
255
286
  double Kappa() const { return kappa; }
256
- double Scale() const { return scale; }
287
+ double Scale() const { return RADIAL::Scale(kappa, rtyp); }
288
+ double RTyp() const { return rtyp; }
257
289
  int Order() const { return sh.Order(); }
258
290
 
259
291
  MultiPole Truncate(int neworder) const
260
292
  {
261
293
  if (neworder > sh.Order()) neworder=sh.Order();
262
- MultiPole nmp(neworder, kappa);
294
+ MultiPole nmp(neworder, kappa, rtyp);
263
295
  nmp.sh.Coefs() = sh.Coefs().Range(sqr(neworder+1));
264
296
  return nmp;
265
297
  }
@@ -278,15 +310,27 @@ namespace ngsbem
278
310
  void AddDipole (Vec<3> x, Vec<3> d, entry_type c);
279
311
  void AddCurrent (Vec<3> ap, Vec<3> ep, Complex j, int num=100);
280
312
 
281
-
313
+ /*
282
314
  void ChangeScaleTo (double newscale)
283
315
  {
284
- double fac = scale/newscale;
316
+ double fac = Scale()/newscale;
285
317
  double prod = 1;
286
318
  for (int n = 0; n <= sh.Order(); n++, prod*= fac)
287
319
  sh.CoefsN(n) *= prod;
288
320
  scale = newscale;
289
321
  }
322
+ */
323
+ void ChangeRTypTo (double new_rtyp)
324
+ {
325
+ // double fac = Scale()/newscale;
326
+ double fac = RADIAL::Scale(kappa, rtyp) / RADIAL::Scale(kappa, new_rtyp);
327
+ double prod = 1;
328
+ for (int n = 0; n <= sh.Order(); n++, prod*= fac)
329
+ sh.CoefsN(n) *= prod;
330
+ // scale = newscale;
331
+ rtyp = new_rtyp;
332
+ }
333
+
290
334
 
291
335
  Vector<double> Spectrum (bool scaled) const
292
336
  {
@@ -295,7 +339,7 @@ namespace ngsbem
295
339
  for (int n = 0; n <= Order(); n++)
296
340
  {
297
341
  spec(n) = fac * L2Norm2(sh.CoefsN(n));
298
- if (!scaled) fac *= sqr(scale);
342
+ if (!scaled) fac *= sqr(Scale());
299
343
  }
300
344
  return spec;
301
345
  }
@@ -311,8 +355,8 @@ namespace ngsbem
311
355
  return;
312
356
  }
313
357
 
314
- static Timer t("mptool Transform "+ToString(typeid(RADIAL).name())+ToString(typeid(TARGET).name()));
315
- RegionTimer reg(t);
358
+ // static Timer t("mptool Transform "+ToString(typeid(RADIAL).name())+ToString(typeid(TARGET).name()));
359
+ // RegionTimer reg(t);
316
360
 
317
361
  double len = L2Norm(dist);
318
362
  double theta, phi;
@@ -328,7 +372,10 @@ namespace ngsbem
328
372
  phi = atan2(dist(1), dist(0));
329
373
 
330
374
 
331
- MultiPole<RADIAL,entry_type> tmp(*this);
375
+ // MultiPole<RADIAL,entry_type> tmp{*this};
376
+ MultiPole<RADIAL,entry_type> tmp(Order(), kappa, rtyp);
377
+ tmp.SH().Coefs() = SH().Coefs();
378
+
332
379
  tmp.SH().RotateZ(phi);
333
380
  tmp.SH().RotateY(theta);
334
381
 
@@ -383,11 +430,9 @@ namespace ngsbem
383
430
  Array<tuple<Vec<3>, Vec<3>, Complex,int>> currents;
384
431
  int total_sources;
385
432
 
386
- Node (Vec<3> acenter, double ar, int alevel, int order, double kappa)
387
- : center(acenter), r(ar), level(alevel), mp(MPOrder(ar*kappa), kappa, min(1.0, r*kappa))
388
- // : center(acenter), r(ar), level(alevel), mp(MPOrder(ar*kappa), kappa, 1.0)
433
+ Node (Vec<3> acenter, double ar, int alevel, double akappa)
434
+ : center(acenter), r(ar), level(alevel), mp(MPOrder(ar*akappa), akappa, ar) // min(1.0, ar*akappa))
389
435
  {
390
- // cout << "singml, add node, level = " << level << endl;
391
436
  if (level < nodes_on_level.Size())
392
437
  nodes_on_level[level]++;
393
438
  }
@@ -402,7 +447,7 @@ namespace ngsbem
402
447
  cc(0) += (i&1) ? r/2 : -r/2;
403
448
  cc(1) += (i&2) ? r/2 : -r/2;
404
449
  cc(2) += (i&4) ? r/2 : -r/2;
405
- childs[i] = make_unique<Node> (cc, r/2, level+1, max(mp.SH().Order()/2, 8), mp.Kappa());
450
+ childs[i] = make_unique<Node> (cc, r/2, level+1, mp.Kappa());
406
451
  }
407
452
  }
408
453
 
@@ -422,7 +467,8 @@ namespace ngsbem
422
467
 
423
468
  charges.Append( tuple{x,c} );
424
469
 
425
- if (r*mp.Kappa() < 1e-8) return;
470
+ // if (r*mp.Kappa() < 1e-8) return;
471
+ if (level > 20) return;
426
472
  if (charges.Size() < maxdirect && r*mp.Kappa() < 1)
427
473
  return;
428
474
 
@@ -537,9 +583,17 @@ namespace ngsbem
537
583
  return sum;
538
584
  }
539
585
 
540
- for (auto [x,c] : charges)
541
- if (double rho = L2Norm(p-x); rho > 0)
542
- sum += (1/(4*M_PI))*exp(Complex(0,rho*mp.Kappa())) / rho * c;
586
+ // static Timer t("fmm direct eval"); RegionTimer reg(t);
587
+ if (mp.Kappa() < 1e-8)
588
+ {
589
+ for (auto [x,c] : charges)
590
+ if (double rho = L2Norm(p-x); rho > 0)
591
+ sum += (1/(4*M_PI))*Complex(1,rho*mp.Kappa()) / rho * c;
592
+ }
593
+ else
594
+ for (auto [x,c] : charges)
595
+ if (double rho = L2Norm(p-x); rho > 0)
596
+ sum += (1/(4*M_PI))*exp(Complex(0,rho*mp.Kappa())) / rho * c;
543
597
 
544
598
  for (auto [x,d,c] : dipoles)
545
599
  if (double rho = L2Norm(p-x); rho > 0)
@@ -632,7 +686,7 @@ namespace ngsbem
632
686
  {
633
687
  if (charges.Size()+dipoles.Size()+currents.Size() == 0)
634
688
  {
635
- mp = MultiPole<MPSingular,entry_type> (-1, mp.Kappa());
689
+ mp = MultiPole<MPSingular,entry_type> (-1, mp.Kappa(), 1.);
636
690
  return;
637
691
  }
638
692
 
@@ -720,8 +774,8 @@ namespace ngsbem
720
774
  bool havemp = false;
721
775
 
722
776
  public:
723
- SingularMLMultiPole (Vec<3> center, double r, int order, double kappa)
724
- : root(center, r, 0, order, kappa)
777
+ SingularMLMultiPole (Vec<3> center, double r, double kappa)
778
+ : root(center, r, 0, kappa)
725
779
  {
726
780
  nodes_on_level = 0;
727
781
  nodes_on_level[0] = 1;
@@ -729,7 +783,7 @@ namespace ngsbem
729
783
 
730
784
  double Kappa() const { return root.mp.Kappa(); }
731
785
 
732
- void AddCharge(Vec<3> x, Complex c)
786
+ void AddCharge(Vec<3> x, entry_type c)
733
787
  {
734
788
  root.AddCharge(x, c);
735
789
  }
@@ -791,6 +845,7 @@ namespace ngsbem
791
845
  for (int i = 0; i <= maxlevel; i++)
792
846
  cout << "sing " << i << ": " << nodes_on_level[i] << endl;
793
847
  */
848
+
794
849
  root.CalcTotalSources();
795
850
  root.CalcMP();
796
851
 
@@ -835,8 +890,8 @@ namespace ngsbem
835
890
 
836
891
  Array<const typename SingularMLMultiPole<elem_type>::Node*> singnodes;
837
892
 
838
- Node (Vec<3> acenter, double ar, int alevel, int order, double kappa)
839
- : center(acenter), r(ar), level(alevel), mp(MPOrder(ar*kappa), kappa, 1.0/min(1.0, 0.25*r*kappa))
893
+ Node (Vec<3> acenter, double ar, int alevel, double kappa)
894
+ : center(acenter), r(ar), level(alevel), mp(MPOrder(ar*kappa), kappa, ar) // 1.0/min(1.0, 0.25*r*kappa))
840
895
  // : center(acenter), r(ar), level(alevel), mp(MPOrder(ar*kappa), kappa, 1.0)
841
896
  {
842
897
  if (level < nodes_on_level.Size())
@@ -854,7 +909,7 @@ namespace ngsbem
854
909
  cc(0) += (i&1) ? r/2 : -r/2;
855
910
  cc(1) += (i&2) ? r/2 : -r/2;
856
911
  cc(2) += (i&4) ? r/2 : -r/2;
857
- childs[i] = make_unique<Node> (cc, r/2, level+1, max(mp.SH().Order()/2, 8), mp.Kappa());
912
+ childs[i] = make_unique<Node> (cc, r/2, level+1, mp.Kappa());
858
913
  }
859
914
  }
860
915
 
@@ -947,7 +1002,7 @@ namespace ngsbem
947
1002
  mp.TransformAdd (ch->mp, ch->center-center);
948
1003
  ch->LocalizeExpansion(allow_refine);
949
1004
  }
950
- mp = MultiPole<MPRegular,elem_type>(-1, mp.Kappa());
1005
+ mp = MultiPole<MPRegular,elem_type>(-1, mp.Kappa(), 1.);
951
1006
  //mp.SH().Coefs()=0.0;
952
1007
  }
953
1008
  }
@@ -976,7 +1031,7 @@ namespace ngsbem
976
1031
  sum = mp.Eval(p-center);
977
1032
 
978
1033
 
979
- static Timer t("mptool direct evaluate"); RegionTimer r(t);
1034
+ // static Timer t("mptool direct evaluate"); RegionTimer r(t);
980
1035
  for (auto sn : singnodes)
981
1036
  sum += sn->EvaluateMP(p);
982
1037
 
@@ -1038,7 +1093,8 @@ namespace ngsbem
1038
1093
 
1039
1094
  targets.Append( x );
1040
1095
 
1041
- if (r*mp.Kappa() < 1e-8) return;
1096
+ // if (r*mp.Kappa() < 1e-8) return;
1097
+ if (level > 20) return;
1042
1098
  if (targets.Size() < maxdirect && r*mp.Kappa() < 1)
1043
1099
  return;
1044
1100
 
@@ -1071,7 +1127,7 @@ namespace ngsbem
1071
1127
  }
1072
1128
 
1073
1129
  if (total_targets == 0)
1074
- mp = MultiPole<MPRegular,elem_type>(-1, mp.Kappa());
1130
+ mp = MultiPole<MPRegular,elem_type>(-1, mp.Kappa(),1.);
1075
1131
  }
1076
1132
 
1077
1133
 
@@ -1094,8 +1150,8 @@ namespace ngsbem
1094
1150
  shared_ptr<SingularMLMultiPole<elem_type>> singmp;
1095
1151
 
1096
1152
  public:
1097
- RegularMLMultiPole (shared_ptr<SingularMLMultiPole<elem_type>> asingmp, Vec<3> center, double r, int order)
1098
- : root(center, r, 0, order, asingmp->Kappa()), singmp(asingmp)
1153
+ RegularMLMultiPole (shared_ptr<SingularMLMultiPole<elem_type>> asingmp, Vec<3> center, double r)
1154
+ : root(center, r, 0, asingmp->Kappa()), singmp(asingmp)
1099
1155
  {
1100
1156
  if (!singmp->havemp) throw Exception("first call Calc for singular MP");
1101
1157
 
@@ -1124,8 +1180,8 @@ namespace ngsbem
1124
1180
  }
1125
1181
  }
1126
1182
 
1127
- RegularMLMultiPole (Vec<3> center, double r, int order, double kappa)
1128
- : root(center, r, 0, order, kappa)
1183
+ RegularMLMultiPole (Vec<3> center, double r, double kappa)
1184
+ : root(center, r, 0, kappa)
1129
1185
  {
1130
1186
  nodes_on_level = 0;
1131
1187
  nodes_on_level[0] = 1;
@@ -1138,6 +1194,8 @@ namespace ngsbem
1138
1194
 
1139
1195
  void CalcMP(shared_ptr<SingularMLMultiPole<elem_type>> asingmp)
1140
1196
  {
1197
+ static Timer t("mptool regular MLMP"); RegionTimer rg(t);
1198
+
1141
1199
  singmp = asingmp;
1142
1200
 
1143
1201
  root.CalcTotalTargets();
@@ -1154,6 +1212,7 @@ namespace ngsbem
1154
1212
  cout << "reg " << i << ": " << RegularMLMultiPole::nodes_on_level[i] << endl;
1155
1213
  */
1156
1214
 
1215
+ static Timer tloc("mptool regular localize expansion"); RegionTimer rloc(tloc);
1157
1216
  root.LocalizeExpansion(false);
1158
1217
  }
1159
1218
 
@@ -1200,132 +1259,5 @@ namespace ngsbem
1200
1259
 
1201
1260
 
1202
1261
 
1203
- // ******************** Coefficient Functions *********************
1204
-
1205
-
1206
- class SphericalHarmonicsCF : public CoefficientFunction
1207
- {
1208
- SphericalHarmonics<Complex> sh;
1209
- public:
1210
- SphericalHarmonicsCF (int order)
1211
- : CoefficientFunction(1, true), sh(order) { }
1212
- Complex & Coef(int n, int m) { return sh.Coef(n,m); }
1213
-
1214
- virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
1215
- { throw Exception("real eval not available"); }
1216
-
1217
- virtual void Evaluate (const BaseMappedIntegrationPoint & mip, FlatVector<Complex> values) const override
1218
- {
1219
- values(0) = sh.Eval(mip.GetPoint());
1220
- }
1221
-
1222
- virtual void Evaluate (const BaseMappedIntegrationRule & ir, BareSliceMatrix<Complex> values) const override
1223
- {
1224
- for (int i = 0; i < ir.Size(); i++)
1225
- {
1226
- auto & mip = ir[i];
1227
- values(i,0) = sh.Eval(mip.GetPoint());
1228
- }
1229
- }
1230
-
1231
- auto & SH() { return sh; }
1232
- };
1233
-
1234
-
1235
-
1236
- template <typename entry_type> class RegularMLMultiPoleCF;
1237
-
1238
-
1239
- template <typename RADIAL, typename entry_type=Complex>
1240
- class MultiPoleCF : public CoefficientFunction
1241
- {
1242
- MultiPole<RADIAL, entry_type> mp;
1243
- Vec<3> center;
1244
- public:
1245
- MultiPoleCF (int order, double kappa, Vec<3> acenter, double scale = 1)
1246
- : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mp(order, kappa, scale), center(acenter) { }
1247
-
1248
- entry_type & Coef(int n, int m) { return mp.Coef(n,m); }
1249
- auto & SH() { return mp.SH(); }
1250
- auto & MP() { return mp; }
1251
- Vec<3> Center() const { return center; }
1252
-
1253
- virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
1254
- { throw Exception("real eval not available"); }
1255
-
1256
- virtual void Evaluate (const BaseMappedIntegrationPoint & mip, FlatVector<Complex> values) const override
1257
- {
1258
- if constexpr (std::is_same<entry_type, Complex>())
1259
- values(0) = mp.Eval(mip.GetPoint()-center);
1260
- else
1261
- values = mp.Eval(mip.GetPoint()-center);
1262
- }
1263
-
1264
- template <typename TARGET>
1265
- void ShiftZ (double z, MultiPole<TARGET, entry_type> & target) { mp.ShiftZ(z, target); }
1266
-
1267
- using CoefficientFunction::Transform;
1268
- template <typename TARGET>
1269
- void Transform (MultiPoleCF<TARGET, entry_type> & target)
1270
- {
1271
- mp.Transform (target.MP(), target.Center()-center);
1272
- }
1273
- };
1274
-
1275
- template <typename entry_type>
1276
- class SingularMLMultiPoleCF : public CoefficientFunction
1277
- {
1278
- shared_ptr<SingularMLMultiPole<entry_type>> mlmp;
1279
- public:
1280
- SingularMLMultiPoleCF (Vec<3> center, double r, int order, double kappa)
1281
- : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<SingularMLMultiPole<entry_type>>(center, r, order, kappa)} { }
1282
-
1283
- virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
1284
- { throw Exception("real eval not available"); }
1285
-
1286
- virtual void Evaluate (const BaseMappedIntegrationPoint & mip, FlatVector<Complex> values) const override
1287
- {
1288
- // values(0) = mlmp->Evaluate(mip.GetPoint());
1289
-
1290
- if constexpr (std::is_same<entry_type, Complex>())
1291
- values(0) = mlmp->Evaluate(mip.GetPoint());
1292
- else
1293
- values = mlmp->Evaluate(mip.GetPoint());
1294
-
1295
-
1296
- }
1297
-
1298
- shared_ptr<SingularMLMultiPole<entry_type>> MLMP() const { return mlmp; }
1299
- shared_ptr<RegularMLMultiPoleCF<entry_type>> CreateRegularExpansion(Vec<3> center, double r) const;
1300
- };
1301
-
1302
-
1303
- template <typename entry_type>
1304
- class RegularMLMultiPoleCF : public CoefficientFunction
1305
- {
1306
- shared_ptr<RegularMLMultiPole<entry_type>> mlmp;
1307
- public:
1308
- RegularMLMultiPoleCF (shared_ptr<SingularMLMultiPoleCF<entry_type>> asingmp, Vec<3> center, double r, int order)
1309
- : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<RegularMLMultiPole<entry_type>>(asingmp->MLMP(), center, r, order)} { }
1310
- RegularMLMultiPoleCF (shared_ptr<SingularMLMultiPole<entry_type>> asingmp, Vec<3> center, double r, int order)
1311
- : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<RegularMLMultiPole<entry_type>>(asingmp, center, r, order)} { }
1312
-
1313
- virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
1314
- { throw Exception("real eval not available"); }
1315
-
1316
- virtual void Evaluate (const BaseMappedIntegrationPoint & mip, FlatVector<Complex> values) const override
1317
- {
1318
- // values(0) = mlmp->Evaluate(mip.GetPoint());
1319
-
1320
- if constexpr (std::is_same<entry_type, Complex>())
1321
- values(0) = mlmp->Evaluate(mip.GetPoint());
1322
- else
1323
- values = mlmp->Evaluate(mip.GetPoint());
1324
- }
1325
-
1326
- shared_ptr<RegularMLMultiPole<entry_type>> MLMP() { return mlmp; }
1327
- };
1328
-
1329
-
1330
1262
  }
1331
1263
  #endif
@@ -604,6 +604,7 @@ public:
604
604
 
605
605
  class SymbolicFacetLinearFormIntegrator : public FacetLinearFormIntegrator
606
606
  {
607
+ protected:
607
608
  shared_ptr<CoefficientFunction> cf;
608
609
  Array<ProxyFunction*> proxies;
609
610
  Array<CoefficientFunction*> cache_cfs;