ngsolve 6.2.2506.post216.dev0__cp314-cp314-manylinux_2_28_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngs_nvcc +22 -0
  2. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngs_nvlink +17 -0
  3. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngscxx +15 -0
  4. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngsld +11 -0
  5. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngsolve.tcl +648 -0
  6. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngspy +2 -0
  7. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/analytic_integrals.hpp +10 -0
  8. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/arnoldi.hpp +55 -0
  9. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bandmatrix.hpp +334 -0
  10. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/basematrix.hpp +963 -0
  11. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/basevector.hpp +1268 -0
  12. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bdbequations.hpp +2807 -0
  13. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bdbintegrator.hpp +1660 -0
  14. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bem_diffops.hpp +475 -0
  15. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bessel.hpp +1064 -0
  16. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bilinearform.hpp +966 -0
  17. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bla.hpp +29 -0
  18. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/blockalloc.hpp +95 -0
  19. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/blockjacobi.hpp +328 -0
  20. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bspline.hpp +116 -0
  21. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/calcinverse.hpp +141 -0
  22. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cg.hpp +368 -0
  23. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/chebyshev.hpp +44 -0
  24. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cholesky.hpp +720 -0
  25. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/clapack.h +7254 -0
  26. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/code_generation.hpp +296 -0
  27. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/coefficient.hpp +2033 -0
  28. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/coefficient_impl.hpp +19 -0
  29. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/coefficient_stdmath.hpp +167 -0
  30. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/commutingAMG.hpp +106 -0
  31. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/comp.hpp +79 -0
  32. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/compatibility.hpp +41 -0
  33. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/complex_wrapper.hpp +101 -0
  34. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/compressedfespace.hpp +110 -0
  35. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/contact.hpp +239 -0
  36. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_core.hpp +216 -0
  37. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_linalg.hpp +185 -0
  38. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_ngbla.hpp +317 -0
  39. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_ngstd.hpp +414 -0
  40. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_profiler.hpp +240 -0
  41. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/diagonalmatrix.hpp +160 -0
  42. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/differentialoperator.hpp +276 -0
  43. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/diffop.hpp +1286 -0
  44. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/diffop_impl.hpp +328 -0
  45. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/diffopwithfactor.hpp +123 -0
  46. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/discontinuous.hpp +84 -0
  47. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/dump.hpp +949 -0
  48. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ectypes.hpp +121 -0
  49. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/eigen.hpp +60 -0
  50. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/eigensystem.hpp +18 -0
  51. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/elasticity_equations.hpp +595 -0
  52. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/elementbyelement.hpp +201 -0
  53. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/elementtopology.hpp +1760 -0
  54. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/elementtransformation.hpp +339 -0
  55. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/evalfunc.hpp +405 -0
  56. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/expr.hpp +1693 -0
  57. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/facetfe.hpp +175 -0
  58. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/facetfespace.hpp +180 -0
  59. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/facethofe.hpp +111 -0
  60. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/facetsurffespace.hpp +112 -0
  61. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/fe_interfaces.hpp +32 -0
  62. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/fem.hpp +87 -0
  63. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/fesconvert.hpp +14 -0
  64. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/fespace.hpp +1454 -0
  65. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/finiteelement.hpp +286 -0
  66. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/globalinterfacespace.hpp +77 -0
  67. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/globalspace.hpp +115 -0
  68. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/gridfunction.hpp +525 -0
  69. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1amg.hpp +124 -0
  70. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofe.hpp +188 -0
  71. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofe_impl.hpp +1262 -0
  72. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofefo.hpp +148 -0
  73. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofefo_impl.hpp +185 -0
  74. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofespace.hpp +167 -0
  75. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1lofe.hpp +1240 -0
  76. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1lumping.hpp +41 -0
  77. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurl_equations.hpp +1381 -0
  78. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlcurlfe.hpp +2241 -0
  79. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlcurlfespace.hpp +78 -0
  80. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlfe.hpp +259 -0
  81. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlfe_utils.hpp +107 -0
  82. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhdiv_dshape.hpp +857 -0
  83. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhdivfes.hpp +308 -0
  84. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhofe.hpp +175 -0
  85. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhofe_impl.hpp +1871 -0
  86. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhofespace.hpp +193 -0
  87. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurllofe.hpp +1146 -0
  88. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdiv_equations.hpp +880 -0
  89. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivdivfe.hpp +2923 -0
  90. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivdivsurfacespace.hpp +76 -0
  91. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivfe.hpp +206 -0
  92. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivfe_utils.hpp +717 -0
  93. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivfes.hpp +75 -0
  94. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhofe.hpp +447 -0
  95. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhofe_impl.hpp +1107 -0
  96. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhofefo.hpp +229 -0
  97. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhofespace.hpp +177 -0
  98. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhosurfacefespace.hpp +106 -0
  99. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivlofe.hpp +773 -0
  100. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hidden.hpp +74 -0
  101. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/householder.hpp +181 -0
  102. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hypre_ams_precond.hpp +123 -0
  103. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hypre_precond.hpp +73 -0
  104. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/integrator.hpp +2012 -0
  105. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/integratorcf.hpp +253 -0
  106. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/interpolate.hpp +49 -0
  107. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/intrule.hpp +2542 -0
  108. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/intrules_SauterSchwab.hpp +25 -0
  109. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/irspace.hpp +49 -0
  110. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/jacobi.hpp +153 -0
  111. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/kernels.hpp +724 -0
  112. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/l2hofe.hpp +194 -0
  113. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/l2hofe_impl.hpp +564 -0
  114. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/l2hofefo.hpp +542 -0
  115. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/l2hofespace.hpp +344 -0
  116. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/la.hpp +38 -0
  117. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/linalg_kernels.hpp +70 -0
  118. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/linearform.hpp +266 -0
  119. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/matrix.hpp +2145 -0
  120. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/memusage.hpp +41 -0
  121. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/meshaccess.hpp +1359 -0
  122. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mgpre.hpp +204 -0
  123. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mp_coefficient.hpp +145 -0
  124. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mptools.hpp +2281 -0
  125. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/multigrid.hpp +42 -0
  126. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/multivector.hpp +447 -0
  127. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mumpsinverse.hpp +187 -0
  128. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mycomplex.hpp +361 -0
  129. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ng_lapack.hpp +1661 -0
  130. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngblas.hpp +1232 -0
  131. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngs_defines.hpp +30 -0
  132. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngs_stdcpp_include.hpp +106 -0
  133. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngs_utils.hpp +121 -0
  134. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngsobject.hpp +1019 -0
  135. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngsstream.hpp +113 -0
  136. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngstd.hpp +72 -0
  137. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/nodalhofe.hpp +96 -0
  138. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/nodalhofe_impl.hpp +141 -0
  139. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/normalfacetfe.hpp +223 -0
  140. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/normalfacetfespace.hpp +98 -0
  141. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/normalfacetsurfacefespace.hpp +84 -0
  142. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/order.hpp +251 -0
  143. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/parallel_matrices.hpp +222 -0
  144. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/paralleldofs.hpp +340 -0
  145. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/parallelngs.hpp +23 -0
  146. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/parallelvector.hpp +269 -0
  147. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/pardisoinverse.hpp +200 -0
  148. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/periodic.hpp +129 -0
  149. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/plateaufespace.hpp +25 -0
  150. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/pml.hpp +275 -0
  151. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/pmltrafo.hpp +631 -0
  152. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/postproc.hpp +142 -0
  153. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/potentialtools.hpp +22 -0
  154. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/precomp.hpp +60 -0
  155. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/preconditioner.hpp +602 -0
  156. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/prolongation.hpp +380 -0
  157. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/python_comp.hpp +107 -0
  158. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/python_fem.hpp +89 -0
  159. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/python_linalg.hpp +58 -0
  160. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/python_ngstd.hpp +386 -0
  161. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/recursive_pol.hpp +4896 -0
  162. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/recursive_pol_tet.hpp +395 -0
  163. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/recursive_pol_trig.hpp +492 -0
  164. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/reorderedfespace.hpp +81 -0
  165. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sample_sort.hpp +105 -0
  166. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/scalarfe.hpp +335 -0
  167. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/shapefunction_utils.hpp +113 -0
  168. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/simd_complex.hpp +329 -0
  169. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/smoother.hpp +253 -0
  170. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/solve.hpp +89 -0
  171. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsecholesky.hpp +317 -0
  172. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsefactorization_interface.hpp +159 -0
  173. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsematrix.hpp +1052 -0
  174. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsematrix_dyn.hpp +90 -0
  175. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsematrix_impl.hpp +1055 -0
  176. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/special_matrix.hpp +463 -0
  177. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/specialelement.hpp +125 -0
  178. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/statushandler.hpp +33 -0
  179. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/stringops.hpp +12 -0
  180. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/superluinverse.hpp +136 -0
  181. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/symbolicintegrator.hpp +850 -0
  182. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/symmetricmatrix.hpp +144 -0
  183. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tangentialfacetfe.hpp +224 -0
  184. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tangentialfacetfespace.hpp +91 -0
  185. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tensor.hpp +522 -0
  186. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tensorcoefficient.hpp +446 -0
  187. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tensorproductintegrator.hpp +113 -0
  188. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/thcurlfe.hpp +128 -0
  189. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/thcurlfe_impl.hpp +380 -0
  190. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/thdivfe.hpp +80 -0
  191. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/thdivfe_impl.hpp +492 -0
  192. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tpdiffop.hpp +461 -0
  193. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tpfes.hpp +133 -0
  194. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tpintrule.hpp +224 -0
  195. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/triangular.hpp +465 -0
  196. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tscalarfe.hpp +245 -0
  197. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tscalarfe_impl.hpp +1029 -0
  198. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/umfpackinverse.hpp +148 -0
  199. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/unifiedvector.hpp +103 -0
  200. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/vector.hpp +1452 -0
  201. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/voxelcoefficientfunction.hpp +41 -0
  202. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/vtkoutput.hpp +198 -0
  203. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/vvector.hpp +208 -0
  204. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/webgui.hpp +92 -0
  205. ngsolve-6.2.2506.post216.dev0.data/data/lib/cmake/ngsolve/NGSolveConfig.cmake +102 -0
  206. ngsolve-6.2.2506.post216.dev0.data/data/lib/cmake/ngsolve/ngsolve-targets-release.cmake +89 -0
  207. ngsolve-6.2.2506.post216.dev0.data/data/lib/cmake/ngsolve/ngsolve-targets.cmake +180 -0
  208. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngbla.so +0 -0
  209. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngcomp.so +0 -0
  210. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngfem.so +0 -0
  211. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngla.so +0 -0
  212. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngsbem.so +0 -0
  213. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngscudalib.so +0 -0
  214. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngsolve.so +0 -0
  215. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngstd.so +0 -0
  216. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/TensorProductTools.py +210 -0
  217. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/__console.py +94 -0
  218. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/__expr.py +181 -0
  219. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/__init__.py +148 -0
  220. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/_scikit_build_core_dependencies.py +30 -0
  221. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/bvp.py +78 -0
  222. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/__init__.py +1 -0
  223. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/__main__.py +4 -0
  224. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/config.py +60 -0
  225. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/__init__.py +0 -0
  226. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_1d_1d.py +80 -0
  227. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_1d_2d.py +73 -0
  228. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_2d_1d.py +72 -0
  229. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_2d_2d.py +66 -0
  230. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/__init__.py +0 -0
  231. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/__init__.py +0 -0
  232. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/hhj.py +44 -0
  233. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/hybrid_dg.py +53 -0
  234. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/mixed.py +30 -0
  235. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/nonlin.py +29 -0
  236. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/pickling.py +26 -0
  237. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/pml.py +31 -0
  238. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/taskmanager.py +20 -0
  239. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/tdnns.py +47 -0
  240. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDG-skeleton.py +45 -0
  241. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDG.py +38 -0
  242. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDGlap.py +42 -0
  243. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDGwave.py +61 -0
  244. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/__init__.py +0 -0
  245. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/adaptive.py +123 -0
  246. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/cmagnet.py +59 -0
  247. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/elasticity.py +76 -0
  248. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/navierstokes.py +74 -0
  249. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/poisson.ipynb +170 -0
  250. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/poisson.py +41 -0
  251. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/__init__.py +0 -0
  252. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_cmagnet.py +87 -0
  253. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_navierstokes.py +117 -0
  254. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_poisson.py +89 -0
  255. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_timeDG.py +82 -0
  256. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/directsolvers.py +14 -0
  257. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/eigenvalues.py +364 -0
  258. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/internal.py +89 -0
  259. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/krylovspace.py +1182 -0
  260. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/meshes.py +748 -0
  261. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngs2petsc.py +310 -0
  262. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngscuda.so +0 -0
  263. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngscxx.py +42 -0
  264. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngslib.so +0 -0
  265. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/nonlinearsolvers.py +203 -0
  266. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/preconditioners.py +11 -0
  267. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/solve_implementation.py +168 -0
  268. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/solvers/__init__.py +7 -0
  269. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/solvers/cudss.py +112 -0
  270. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/timestepping.py +185 -0
  271. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/timing.py +108 -0
  272. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/utils.py +167 -0
  273. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/webgui.py +671 -0
  274. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/beam.geo +17 -0
  275. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/beam.vol +240 -0
  276. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/chip.in2d +41 -0
  277. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/chip.vol +614 -0
  278. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/coil.geo +12 -0
  279. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/coil.vol +2560 -0
  280. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/coilshield.geo +24 -0
  281. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/coilshield.vol +3179 -0
  282. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/cube.geo +19 -0
  283. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/cube.vol +1832 -0
  284. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde +50 -0
  285. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde +40 -0
  286. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d1_square.pde +43 -0
  287. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d2_chip.pde +35 -0
  288. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d3_helmholtz.pde +22 -0
  289. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d4_cube.pde +46 -0
  290. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d5_beam.pde +74 -0
  291. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d6_shaft.pde +73 -0
  292. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d7_coil.pde +50 -0
  293. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d8_coilshield.pde +49 -0
  294. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d9_hybridDG.pde +72 -0
  295. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/doubleglazing.in2d +27 -0
  296. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/doubleglazing.vol +737 -0
  297. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
  298. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/shaft.geo +73 -0
  299. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/shaft.vol +4291 -0
  300. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/square.in2d +17 -0
  301. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/square.vol +149 -0
  302. ngsolve-6.2.2506.post216.dev0.dist-info/METADATA +14 -0
  303. ngsolve-6.2.2506.post216.dev0.dist-info/RECORD +306 -0
  304. ngsolve-6.2.2506.post216.dev0.dist-info/WHEEL +5 -0
  305. ngsolve-6.2.2506.post216.dev0.dist-info/licenses/LICENSE +504 -0
  306. ngsolve-6.2.2506.post216.dev0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,525 @@
1
+ #ifndef FILE_GRIDFUNCTION
2
+ #define FILE_GRIDFUNCTION
3
+
4
+ /*********************************************************************/
5
+ /* File: gridfunction.hpp */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 10. Jul. 2000 */
8
+ /*********************************************************************/
9
+
10
+
11
+ #include <meshing/soldata.hpp> // netgen visualization
12
+ #include "fespace.hpp"
13
+
14
+ namespace ngcomp
15
+ {
16
+
17
+
18
+ class GridFunction;
19
+
20
+ class NGS_DLL_HEADER GridFunctionCoefficientFunction : public CoefficientFunctionNoDerivative
21
+ {
22
+ protected:
23
+ shared_ptr<GridFunction> gf_shared_ptr;
24
+ GridFunction* gf;
25
+ shared_ptr<FESpace> fes;
26
+ shared_ptr<DifferentialOperator> diffop[4];
27
+ int comp;
28
+ GridFunctionCoefficientFunction (shared_ptr<DifferentialOperator> adiffop,
29
+ shared_ptr<DifferentialOperator> atrace_diffop = nullptr,
30
+ shared_ptr<DifferentialOperator> attrace_diffop = nullptr,
31
+ shared_ptr<DifferentialOperator> atttrace_diffop = nullptr,
32
+ int acomp = 0);
33
+ public:
34
+ GridFunctionCoefficientFunction () = default;
35
+ GridFunctionCoefficientFunction (shared_ptr<GridFunction> agf, int acomp = 0);
36
+ GridFunctionCoefficientFunction (shared_ptr<GridFunction> agf,
37
+ shared_ptr<DifferentialOperator> adiffop,
38
+ shared_ptr<DifferentialOperator> atrace_diffop = nullptr,
39
+ shared_ptr<DifferentialOperator> attrace_diffop = nullptr,
40
+ shared_ptr<DifferentialOperator> atttrace_diffop = nullptr,
41
+ int acomp = 0);
42
+ GridFunctionCoefficientFunction (shared_ptr<GridFunction> agf,
43
+ shared_ptr<BilinearFormIntegrator> abfi, int acomp = 0);
44
+ GridFunctionCoefficientFunction (shared_ptr<GridFunction> agf, shared_ptr<ProxyFunction> proxy);
45
+
46
+ virtual ~GridFunctionCoefficientFunction ();
47
+ void DoArchive(Archive& ar) override;
48
+ /// scalar valued or vector valued
49
+ virtual bool IsComplex() const;
50
+ virtual int Dimension() const;
51
+ virtual Array<int> Dimensions() const;
52
+ virtual bool DefinedOn (const ElementTransformation & trafo) override;
53
+ void SelectComponent (int acomp) { comp = acomp; }
54
+ const GridFunction & GetGridFunction() const { return *gf; }
55
+ using CoefficientFunction::Evaluate;
56
+ using CoefficientFunctionNoDerivative::Evaluate;
57
+ virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override;
58
+ virtual Complex EvaluateComplex (const BaseMappedIntegrationPoint & ip) const override;
59
+
60
+ virtual void Evaluate(const BaseMappedIntegrationPoint & ip,
61
+ FlatVector<> result) const override;
62
+ virtual void Evaluate(const BaseMappedIntegrationPoint & ip,
63
+ FlatVector<Complex> result) const override;
64
+
65
+ virtual void Evaluate (const BaseMappedIntegrationRule & ir,
66
+ BareSliceMatrix<double> values) const override;
67
+ virtual void Evaluate (const BaseMappedIntegrationRule & ir,
68
+ BareSliceMatrix<Complex> values) const override;
69
+ virtual void Evaluate (const SIMD_BaseMappedIntegrationRule & ir, BareSliceMatrix<SIMD<double>> values) const override;
70
+ virtual void Evaluate (const SIMD_BaseMappedIntegrationRule & ir, BareSliceMatrix<SIMD<Complex>> values) const override;
71
+
72
+ virtual bool StoreUserData() const override { return true; }
73
+
74
+ virtual void NonZeroPattern (const class ProxyUserData & ud, FlatVector<AutoDiffDiff<1,NonZero>> nonzero) const override
75
+ {
76
+ nonzero = AutoDiffDiff<1,NonZero> (true);
77
+ }
78
+
79
+ // generation information for pickling:
80
+ bool generated_from_deriv = false;
81
+ string generated_from_operator;
82
+ shared_ptr<GridFunction> GetGridFunctionPtr() const { return gf_shared_ptr; }
83
+ const auto & GetDifferentialOperator (VorB vb) const { return diffop[vb]; }
84
+
85
+ virtual shared_ptr<CoefficientFunction>
86
+ Diff (const CoefficientFunction * var, shared_ptr<CoefficientFunction> dir) const override;
87
+
88
+ shared_ptr<CoefficientFunction> Primary() const override;
89
+ shared_ptr<GridFunctionCoefficientFunction> GetTrace() const;
90
+ };
91
+
92
+
93
+
94
+
95
+
96
+
97
+ /**
98
+ Grid-functions
99
+ */
100
+ class NGS_DLL_HEADER GridFunction
101
+ : public GridFunctionCoefficientFunction // , public NGS_Object
102
+ {
103
+ protected:
104
+ string name;
105
+ Flags flags;
106
+ Flags flaglist;
107
+ /// the finite element space
108
+ shared_ptr<FESpace> fespace;
109
+ /// should we do a prolongation from one multigrid-level to the next ?
110
+ bool nested;
111
+ /// should the GF be updated automatically on an update of the underliying space?
112
+ bool autoupdate;
113
+ /// should we visualize the gridfunction ?
114
+ bool visual;
115
+ /// how many functions
116
+ int multidim;
117
+ /// highest multigrid-level for which Update was called (memory allocation)
118
+ int level_updated = -1;
119
+
120
+ /// used for many right-hand-sides
121
+ int cacheblocksize = 1;
122
+ /// Component gridfunctions living somewhere - need to call update on them
123
+ Array<weak_ptr<GridFunction>> compgfs;
124
+ /// the actual data, array for multi-dim
125
+ Array<shared_ptr<BaseVector>> vec;
126
+ /// component GridFunctions if fespace is a CompoundFESpace
127
+ weak_ptr<GridFunctionCoefficientFunction> derivcf;
128
+ public:
129
+ ///
130
+ explicit GridFunction () = default;
131
+ GridFunction (shared_ptr<FESpace> afespace,
132
+ const string & name = "gfu",
133
+ const Flags & flags = Flags());
134
+ ///
135
+ virtual ~GridFunction ();
136
+ ///
137
+ virtual void Update ();
138
+ ///
139
+ bool DoesAutoUpdate () const { return autoupdate; }
140
+ void ConnectAutoUpdate();
141
+
142
+ ///
143
+ virtual void DoArchive (Archive & archive) override;
144
+ ///
145
+ virtual BaseVector & GetVector (int comp = 0) { return *vec[comp]; }
146
+ virtual const BaseVector & GetVector (int comp = 0) const { return *vec[comp]; }
147
+ ///
148
+ virtual shared_ptr<BaseVector> GetVectorPtr (int comp = 0) const { return vec[comp]; }
149
+ auto GetVectors() const { return MultiVector(vec); }
150
+ ///
151
+ void SetNested (int anested = 1) { nested = anested; }
152
+ ///
153
+ bool GetVisual () const { return visual; }
154
+ ///
155
+ void SetVisual (bool avisual = 1) { visual = avisual; }
156
+
157
+ int GetMultiDim () const { return multidim; }
158
+
159
+ /// increase multidim and copy vec to new component
160
+ void AddMultiDimComponent (BaseVector & vec, bool copy = true);
161
+
162
+ int GetLevelUpdated() const { return level_updated; }
163
+ ///
164
+
165
+ // const FESpace & GetFESpace() const { return *fespace; }
166
+ ///
167
+ const shared_ptr<FESpace> & GetFESpace() const { return fespace; }
168
+ ///
169
+ const shared_ptr<MeshAccess> & GetMeshAccess() const { return fespace->GetMeshAccess(); }
170
+ ///
171
+ virtual string GetClassName () const
172
+ {
173
+ return "GridFunction";
174
+ }
175
+
176
+ void SetName(const string & aname) { name = aname; }
177
+ string GetName () const { return name; }
178
+
179
+ const Flags& GetFlags() const { return flags; }
180
+ Flags& GetFlags() { return flags; }
181
+
182
+ virtual void Interpolate (const CoefficientFunction & cf,
183
+ const Region * reg, int mdcomp, LocalHeap & lh);
184
+
185
+ ///
186
+ virtual void PrintReport (ostream & ost) const override;
187
+ ///
188
+ virtual Array<MemoryUsage> GetMemoryUsage () const;
189
+
190
+ // void Visualize(const string & name);
191
+
192
+ ///
193
+ virtual void SetCacheBlockSize (const int size) {cacheblocksize = size;}
194
+ ///
195
+ virtual int GetCacheBlockSize (void) const { return cacheblocksize;}
196
+ ///
197
+ virtual bool IsUpdated () const;
198
+
199
+
200
+ int GetNComponents () const
201
+ {
202
+ auto compfes = dynamic_pointer_cast<CompoundFESpace>(fespace);
203
+ if(compfes)
204
+ return compfes->GetNSpaces();
205
+ return 0;
206
+ }
207
+ shared_ptr<GridFunction> GetComponent (int compound_comp);
208
+
209
+ [[deprecated("Use GridFunction.Deriv instead!")]]
210
+ shared_ptr<GridFunctionCoefficientFunction> GetDeriv()
211
+ {
212
+ return Deriv();
213
+ }
214
+
215
+ shared_ptr<GridFunctionCoefficientFunction> Deriv()
216
+ {
217
+ auto res = derivcf.lock();
218
+ if(res) return res;
219
+
220
+ // derivcf is not set -> initialize it
221
+ res =
222
+ make_shared<GridFunctionCoefficientFunction> (dynamic_pointer_cast<GridFunction> (shared_from_this()),
223
+ GetFESpace()->GetFluxEvaluator(),
224
+ GetFESpace()->GetFluxEvaluator(BND),
225
+ GetFESpace()->GetFluxEvaluator(BBND));
226
+ res -> generated_from_deriv = true;
227
+ derivcf = res;
228
+ return res;
229
+ }
230
+
231
+ shared_ptr<CoefficientFunction> Operator (shared_ptr<DifferentialOperator> diffop) const override;
232
+ shared_ptr<CoefficientFunction> Operator (const string& name) const override;
233
+
234
+
235
+ ///
236
+ virtual void GetElementVector (FlatArray<int> dnums,
237
+ FlatVector<double> elvec) const
238
+ { vec[0] -> GetIndirect (dnums, elvec); }
239
+
240
+ ///
241
+ virtual void SetElementVector (FlatArray<int> dnums,
242
+ FlatVector<double> elvec)
243
+ { vec[0] -> SetIndirect (dnums, elvec); }
244
+
245
+
246
+ ///
247
+ virtual void GetElementVector (int comp,
248
+ FlatArray<int> dnums,
249
+ FlatVector<double> elvec) const
250
+ { vec[comp] -> GetIndirect (dnums, elvec); }
251
+
252
+
253
+ ///
254
+ virtual void SetElementVector (int comp,
255
+ FlatArray<int> dnums,
256
+ FlatVector<double> elvec)
257
+ { vec[comp] -> SetIndirect (dnums, elvec); }
258
+
259
+ ///
260
+ virtual void GetElementVector (FlatArray<int> dnums,
261
+ FlatVector<Complex> elvec) const
262
+ { vec[0] -> GetIndirect (dnums, elvec); }
263
+
264
+ ///
265
+ virtual void SetElementVector (FlatArray<int> dnums,
266
+ FlatVector<Complex> elvec)
267
+ { vec[0] -> SetIndirect (dnums, elvec); }
268
+
269
+
270
+ ///
271
+ virtual void GetElementVector (int comp,
272
+ FlatArray<int> dnums,
273
+ FlatVector<Complex> elvec) const
274
+ { vec[comp] -> GetIndirect (dnums, elvec); }
275
+
276
+
277
+ ///
278
+ virtual void SetElementVector (int comp,
279
+ FlatArray<int> dnums,
280
+ FlatVector<Complex> elvec)
281
+ { vec[comp] -> SetIndirect (dnums, elvec); }
282
+
283
+
284
+ // multidim component, if -1 then all components are loaded/saved
285
+ virtual void Load (istream & ist, int mdcomp = -1) = 0;
286
+ virtual void Save (ostream & ost, int mdcomp = -1) const = 0;
287
+ };
288
+
289
+
290
+ inline ostream & operator<< (ostream & ost, const GridFunction & gf)
291
+ {
292
+ gf.PrintReport (ost);
293
+ return ost;
294
+ }
295
+
296
+
297
+ extern NGS_DLL_HEADER void Visualize(shared_ptr<GridFunction> gf, const string & name);
298
+
299
+ template <class SCAL>
300
+ class NGS_DLL_HEADER S_GridFunction : public GridFunction
301
+ {
302
+ public:
303
+ S_GridFunction () = default;
304
+ S_GridFunction (shared_ptr<FESpace> afespace,
305
+ const string & aname = "gfu",
306
+ const Flags & flags = Flags());
307
+
308
+ // parallel Load/Save by Martin Huber and Lothar Nannen
309
+ virtual void Load (istream & ist, int mdcomp);
310
+ virtual void Save (ostream & ost, int mdcomp) const;
311
+
312
+ virtual void Update ();
313
+
314
+ private:
315
+ template <int N, NODE_TYPE NT> void LoadNodeType (istream & ist, int mdcomp);
316
+ template <int N, NODE_TYPE NT> void SaveNodeType (ostream & ost, int mdcomp) const;
317
+ };
318
+
319
+
320
+
321
+ template <class TV>
322
+ class NGS_DLL_HEADER T_GridFunction : public S_GridFunction<typename mat_traits<TV>::TSCAL>
323
+ {
324
+ public:
325
+ typedef typename mat_traits<TV>::TSCAL TSCAL;
326
+
327
+ [[deprecated("Use T_GridFunction(shared_ptr<FESpace> ... instead!")]]
328
+ T_GridFunction (const FESpace & afespace,
329
+ const string & aname = "gfu",
330
+ const Flags & flags = Flags())
331
+ : T_GridFunction(shared_ptr<FESpace> (const_cast<FESpace*>(&afespace),NOOP_Deleter), aname, flags)
332
+ { ; }
333
+
334
+ T_GridFunction (shared_ptr<FESpace> afespace,
335
+ const string & aname = "gfu",
336
+ const Flags & flags = Flags())
337
+ : S_GridFunction<TSCAL> (afespace, aname, flags)
338
+ { ; }
339
+
340
+ virtual ~T_GridFunction () { ; }
341
+ };
342
+
343
+
344
+
345
+
346
+ extern NGS_DLL_HEADER
347
+ shared_ptr<GridFunction> CreateGridFunction (shared_ptr<FESpace> space,
348
+ const string & name, const Flags & flags);
349
+
350
+ [[deprecated("Use CreateGridFunction(shared_ptr<FESpace> ... instead!")]]
351
+ inline
352
+ shared_ptr<GridFunction> CreateGridFunction (const FESpace * space,
353
+ const string & name, const Flags & flags)
354
+ {
355
+ return
356
+ CreateGridFunction (shared_ptr<FESpace> (const_cast<FESpace*>(space), NOOP_Deleter),
357
+ name, flags);
358
+ }
359
+
360
+
361
+
362
+ class NGS_DLL_HEADER ComponentGridFunction : public GridFunction
363
+ {
364
+ shared_ptr<GridFunction> gf_parent;
365
+ int comp;
366
+ public:
367
+ ComponentGridFunction (shared_ptr<GridFunction> agf_parent, int acomp);
368
+ ~ComponentGridFunction () override;
369
+ void Update () override;
370
+ void Load(istream& ist, int mdcomp) override { throw Exception("Load not implemented for ComponentGF"); }
371
+ void Save(ostream& ost, int mdcomp) const override { throw Exception("Save not implemented for ComponentGF"); }
372
+ shared_ptr<GridFunction> GetParent() const { return gf_parent; }
373
+ int GetComponent() const { return comp; }
374
+ };
375
+
376
+
377
+
378
+
379
+
380
+
381
+ template <class SCAL>
382
+ class NGS_DLL_HEADER VisualizeGridFunction : public netgen::SolutionData
383
+ {
384
+ shared_ptr<MeshAccess> ma;
385
+ shared_ptr<GridFunction> gf;
386
+ Array<shared_ptr<BilinearFormIntegrator>> bfi2d;
387
+ Array<shared_ptr<BilinearFormIntegrator>> bfi3d;
388
+ bool applyd;
389
+
390
+ public:
391
+ VisualizeGridFunction (shared_ptr<MeshAccess> ama,
392
+ shared_ptr<GridFunction> agf,
393
+ const shared_ptr<BilinearFormIntegrator> abfi2d,
394
+ const shared_ptr<BilinearFormIntegrator> abfi3d,
395
+ bool aapplyd);
396
+ VisualizeGridFunction (shared_ptr<MeshAccess> ama,
397
+ shared_ptr<GridFunction> agf,
398
+ const Array<shared_ptr<BilinearFormIntegrator>> & abfi2d,
399
+ const Array<shared_ptr<BilinearFormIntegrator>> & abfi3d,
400
+ bool aapplyd);
401
+
402
+ virtual ~VisualizeGridFunction ();
403
+
404
+ virtual bool GetValue (int elnr,
405
+ double lam1, double lam2, double lam3,
406
+ double * values) ;
407
+
408
+ virtual bool GetValue (int elnr,
409
+ const double xref[], const double x[], const double dxdxref[],
410
+ double * values) ;
411
+
412
+ virtual bool GetMultiValue (int elnr, int facetnr, int npts,
413
+ const double * xref, int sxref,
414
+ const double * x, int sx,
415
+ const double * dxdxref, int sdxdxref,
416
+ double * values, int svalues);
417
+
418
+ virtual bool GetSurfValue (int elnr, int facetnr,
419
+ double lam1, double lam2,
420
+ double * values) ;
421
+
422
+ virtual bool GetSurfValue (int selnr, int facetnr,
423
+ const double xref[], const double x[], const double dxdxref[],
424
+ double * values);
425
+
426
+ virtual bool GetMultiSurfValue (int selnr, int facetnr, int npts,
427
+ const double * xref, int sxref,
428
+ const double * x, int sx,
429
+ const double * dxdxref, int sdxdxref,
430
+ double * values, int svalues);
431
+
432
+ virtual bool GetMultiSurfValue (size_t selnr, size_t facetnr, size_t npts,
433
+ const SIMD<double> * xref,
434
+ const SIMD<double> * x,
435
+ const SIMD<double> * dxdxref,
436
+ SIMD<double> * values);
437
+
438
+ virtual bool GetSegmentValue (int segnr, double xref, double * values);
439
+
440
+ virtual int GetNumMultiDimComponents ()
441
+ {
442
+ return gf->GetMultiDim();
443
+ }
444
+
445
+
446
+ void Analyze(Array<double> & minima, Array<double> & maxima, Array<double> & averages, int component = -1);
447
+ void Analyze(Array<double> & minima, Array<double> & maxima, Array<double> & averages_times_volumes, Array<double> & volumes, int component = -1);
448
+
449
+
450
+ };
451
+
452
+
453
+
454
+
455
+
456
+
457
+
458
+
459
+
460
+
461
+
462
+
463
+
464
+ class NGS_DLL_HEADER VisualizeCoefficientFunction : public netgen::SolutionData
465
+ {
466
+ shared_ptr<MeshAccess> ma;
467
+ shared_ptr<CoefficientFunction> cf;
468
+ // LocalHeap lh;
469
+ public:
470
+ VisualizeCoefficientFunction (shared_ptr<MeshAccess> ama,
471
+ shared_ptr<CoefficientFunction> acf);
472
+
473
+ virtual ~VisualizeCoefficientFunction ();
474
+
475
+ virtual bool GetValue (int elnr,
476
+ double lam1, double lam2, double lam3,
477
+ double * values) ;
478
+
479
+ virtual bool GetValue (int elnr,
480
+ const double xref[], const double x[], const double dxdxref[],
481
+ double * values) ;
482
+
483
+ virtual bool GetMultiValue (int elnr, int facetnr, int npts,
484
+ const double * xref, int sxref,
485
+ const double * x, int sx,
486
+ const double * dxdxref, int sdxdxref,
487
+ double * values, int svalues);
488
+
489
+ virtual bool GetSurfValue (int elnr, int facetnr,
490
+ double lam1, double lam2,
491
+ double * values) ;
492
+
493
+ virtual bool GetSurfValue (int selnr, int facetnr,
494
+ const double xref[], const double x[], const double dxdxref[],
495
+ double * values);
496
+
497
+ virtual bool GetMultiSurfValue (int selnr, int facetnr, int npts,
498
+ const double * xref, int sxref,
499
+ const double * x, int sx,
500
+ const double * dxdxref, int sdxdxref,
501
+ double * values, int svalues);
502
+
503
+ virtual bool GetMultiSurfValue (size_t selnr, size_t facetnr, size_t npts,
504
+ const SIMD<double> * xref,
505
+ const SIMD<double> * x,
506
+ const SIMD<double> * dxdxref,
507
+ SIMD<double> * values);
508
+
509
+ virtual bool GetSegmentValue (int segnr, double xref, double * values);
510
+
511
+ void Analyze(Array<double> & minima, Array<double> & maxima, Array<double> & averages, int component = -1);
512
+ void Analyze(Array<double> & minima, Array<double> & maxima, Array<double> & averages_times_volumes, Array<double> & volumes, int component = -1);
513
+
514
+
515
+ virtual int GetNumMultiDimComponents ();
516
+ virtual void SetMultiDimComponent (int mc);
517
+ };
518
+
519
+
520
+
521
+ }
522
+
523
+
524
+
525
+ #endif
@@ -0,0 +1,124 @@
1
+ #ifndef H1AMGxx_HPP_
2
+ #define H1AMGxx_HPP_
3
+
4
+ // #include <la.hpp>
5
+ #include <basematrix.hpp>
6
+ #include <sparsematrix.hpp>
7
+ #include <preconditioner.hpp>
8
+
9
+ namespace ngcomp
10
+ {
11
+ using namespace ngla;
12
+
13
+
14
+
15
+ struct H1AMG_Parameters
16
+ {
17
+ int verbose = 0;
18
+ int smoothing_steps = 3;
19
+ int coarsenings_per_level = 3; // number of binary coarsenings per level
20
+ bool block_smoother = true; // block or point smoother ?
21
+ bool use_smoothed_prolongation = true;
22
+ int max_coarse = 10;
23
+ int max_level = 20;
24
+ };
25
+
26
+
27
+ template <class SCAL>
28
+ class NGS_DLL_HEADER H1AMG_Matrix : public ngla::BaseMatrix
29
+ {
30
+ size_t size;
31
+ std::shared_ptr<ngla::SparseMatrixTM<SCAL>> mat;
32
+ std::shared_ptr<ngla::BaseBlockJacobiPrecond> smoother;
33
+ std::shared_ptr<ngla::SparseMatrixTM<double>> prolongation, restriction;
34
+ std::shared_ptr<ngla::BaseMatrix> coarse_precond;
35
+ int smoothing_steps = 1;
36
+
37
+ public:
38
+ H1AMG_Matrix (std::shared_ptr<ngla::SparseMatrixTM<SCAL>> amat,
39
+ std::shared_ptr<ngcore::BitArray> freedofs,
40
+ ngcore::FlatArray<ngcore::IVec<2>> e2v,
41
+ ngcore::FlatArray<double> edge_weights,
42
+ ngcore::FlatArray<double> vertex_weights,
43
+ const H1AMG_Parameters & param,
44
+ size_t level);
45
+
46
+ virtual int VHeight() const override { return size; }
47
+ virtual int VWidth() const override { return size; }
48
+ virtual bool IsComplex() const override { return is_same<SCAL,Complex>(); }
49
+
50
+ virtual AutoVector CreateRowVector () const override { return mat->CreateColVector(); }
51
+ virtual AutoVector CreateColVector () const override { return mat->CreateRowVector(); }
52
+
53
+ virtual void Mult (const ngla::BaseVector & b, ngla::BaseVector & x) const override;
54
+ };
55
+
56
+
57
+
58
+
59
+
60
+ template <class SCAL>
61
+ class H1AMG_Preconditioner : public Preconditioner
62
+ {
63
+ shared_ptr<BitArray> freedofs;
64
+ shared_ptr<H1AMG_Matrix<SCAL>> mat;
65
+
66
+ ParallelHashTable<IVec<2>,double> edge_weights_ht;
67
+ ParallelHashTable<IVec<1>,double> vertex_weights_ht;
68
+
69
+ H1AMG_Parameters param;
70
+
71
+ public:
72
+
73
+ static shared_ptr<Preconditioner> CreateBF (shared_ptr<BilinearForm> bfa, const Flags & flags, const string & name)
74
+ {
75
+ if (bfa->GetFESpace()->IsComplex())
76
+ return make_shared<H1AMG_Preconditioner<Complex>> (bfa, flags, name);
77
+ else
78
+ return make_shared<H1AMG_Preconditioner<double>> (bfa, flags, name);
79
+ }
80
+
81
+ static DocInfo GetDocu ();
82
+
83
+ H1AMG_Preconditioner (shared_ptr<BilinearForm> abfa, const Flags & aflags,
84
+ const string aname = "H1AMG_cprecond")
85
+ : Preconditioner (abfa, aflags, aname)
86
+ {
87
+ if (is_same<SCAL,double>::value)
88
+ cout << IM(3) << "Create H1AMG" << endl;
89
+ else
90
+ cout << IM(3) << "Create H1AMG, complex" << endl;
91
+
92
+ param.verbose = int(flags.GetNumFlag("verbose", 0));
93
+ param.smoothing_steps = int(flags.GetNumFlag("smoothingsteps", 1));
94
+ param.use_smoothed_prolongation = flags.GetDefineFlagX("smoothedprolongation").IsMaybeTrue();
95
+ param.max_coarse = int(flags.GetNumFlag("maxcoarse", 10));
96
+ param.max_level = int(flags.GetNumFlag("maxlevel", 20));
97
+ }
98
+
99
+ virtual void InitLevel (shared_ptr<BitArray> _freedofs) override
100
+ {
101
+ freedofs = _freedofs;
102
+ }
103
+
104
+ virtual void FinalizeLevel (const BaseMatrix * matrix) override;
105
+
106
+ virtual void AddElementMatrix (FlatArray<int> dnums,
107
+ FlatMatrix<SCAL> elmat,
108
+ ElementId id,
109
+ LocalHeap & lh) override;
110
+
111
+ virtual void Update () override { ; }
112
+
113
+ virtual const BaseMatrix & GetMatrix() const override
114
+ {
115
+ return *mat;
116
+ }
117
+
118
+ };
119
+
120
+
121
+
122
+ }
123
+
124
+ #endif // H1AMG_HPP_