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,229 @@
1
+ #ifndef FILE_L2HOFEFO
2
+ #define FILE_L2HOFEFO
3
+
4
+ /*********************************************************************/
5
+ /* File: l2hofefo.hpp */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: Apr. 2009 */
8
+ /*********************************************************************/
9
+
10
+ #include "thdivfe.hpp"
11
+
12
+
13
+ namespace ngfem
14
+ {
15
+
16
+ /**
17
+ High order finite elements for L2 of fixed order
18
+ */
19
+
20
+ /*
21
+ template<int DIM>
22
+ class HDivHighOrderFiniteElementFO : virtual public HDivFiniteElement<DIM>
23
+ {
24
+ protected:
25
+ int vnums[8];
26
+ bool ho_div_free;
27
+ bool only_ho_div;
28
+ public:
29
+ void SetVertexNumber (int nr, int vnum) { vnums[nr] = vnum; }
30
+ void SetHODivFree (bool aho_div_free) { ho_div_free = aho_div_free; only_ho_div = only_ho_div && !ho_div_free;};
31
+ void SetOnlyHODiv (bool aonly_ho_div) { only_ho_div = aonly_ho_div; ho_div_free = ho_div_free && !only_ho_div;};
32
+ virtual void ComputeNDof () = 0;
33
+ };
34
+ */
35
+
36
+ template <ELEMENT_TYPE ET, int ORDER> class HDivHighOrderFEFO;
37
+
38
+
39
+ /*
40
+ template <ELEMENT_TYPE ET, int ORDER>
41
+ class T_HDivHighOrderFiniteElementFO :
42
+ public HDivHighOrderFiniteElementFO<ET_trait<ET>::DIM>,
43
+ public T_HDivFiniteElement< HDivHighOrderFEFO<ET,ORDER>, ET >,
44
+ public ET_trait<ET>
45
+ {
46
+ protected:
47
+ enum { DIM = ET_trait<ET>::DIM };
48
+
49
+ using HDivFiniteElement<DIM>::ndof;
50
+ using HDivFiniteElement<DIM>::order;
51
+
52
+ using HDivHighOrderFiniteElementFO<DIM>::vnums;
53
+ using HDivHighOrderFiniteElementFO<DIM>::ho_div_free;
54
+ using HDivHighOrderFiniteElementFO<DIM>::only_ho_div;
55
+
56
+ using ET_trait<ET>::N_VERTEX;
57
+ using ET_trait<ET>::N_EDGE;
58
+ using ET_trait<ET>::N_FACE;
59
+ using ET_trait<ET>::FaceType;
60
+ using ET_trait<ET>::GetEdgeSort;
61
+ using ET_trait<ET>::GetFaceSort;
62
+
63
+
64
+
65
+ public:
66
+
67
+ T_HDivHighOrderFiniteElementFO ()
68
+ {
69
+ for (int i = 0; i < ET_trait<ET>::N_VERTEX; i++)
70
+ vnums[i] = i;
71
+ ho_div_free = false;
72
+ only_ho_div = false;
73
+ order = ORDER;
74
+ }
75
+ };
76
+ */
77
+
78
+
79
+
80
+ /**
81
+ High order triangular finite element
82
+ */
83
+ template <int ORDER>
84
+ class HDivHighOrderFEFO<ET_TRIG, ORDER> :
85
+ public T_HDivFiniteElement<HDivHighOrderFEFO<ET_TRIG,ORDER>, ET_TRIG>,
86
+ public ET_trait<ET_TRIG>
87
+ {
88
+ using T_HDivFiniteElement<HDivHighOrderFEFO<ET_TRIG,ORDER>, ET_TRIG> :: ndof;
89
+ using T_HDivFiniteElement<HDivHighOrderFEFO<ET_TRIG,ORDER>, ET_TRIG> :: order;
90
+ /*
91
+ using T_HDivFiniteElement<ET_TRIG, ORDER>::ndof;
92
+ using T_HDivFiniteElement<ET_TRIG, ORDER>::vnums;
93
+ using T_HDivFiniteElement<ET_TRIG, ORDER>::ho_div_free;
94
+ using T_HDivFiniteElement<ET_TRIG, ORDER>::only_ho_div;
95
+ */
96
+
97
+ int vnums[3];
98
+ bool ho_div_free;
99
+ bool only_ho_div;
100
+
101
+ public:
102
+
103
+ typedef IntegratedLegendreMonomialExt T_ORTHOPOL;
104
+ typedef TrigShapesInnerLegendre T_TRIGSHAPES;
105
+
106
+ public:
107
+ HDivHighOrderFEFO ()
108
+ : ho_div_free(false), only_ho_div(false)
109
+ {
110
+ order = ORDER;
111
+ }
112
+
113
+
114
+ void SetVertexNumber (int nr, int vnum) { vnums[nr] = vnum; }
115
+ void SetHODivFree (bool aho_div_free) { ho_div_free = aho_div_free; only_ho_div = only_ho_div && !ho_div_free;};
116
+ void SetOnlyHODiv (bool aonly_ho_div) { only_ho_div = aonly_ho_div; ho_div_free = ho_div_free && !only_ho_div;};
117
+
118
+
119
+
120
+ virtual ELEMENT_TYPE ElementType() const { return ET_TRIG; }
121
+
122
+ virtual void ComputeNDof()
123
+ {
124
+ if (only_ho_div)
125
+ ndof = ORDER*(ORDER+1)/2 - 1;
126
+ else
127
+ {
128
+ ndof = 3 * (ORDER+1);
129
+ ndof += (ho_div_free) ? ORDER*(ORDER-1)/2 : ORDER*ORDER-1;
130
+ }
131
+ }
132
+
133
+ virtual void GetInternalDofs (Array<int> & idofs) const
134
+ {
135
+ idofs.SetSize(0);
136
+ idofs += IntRange (3*(ORDER+1), ndof);
137
+ }
138
+
139
+ virtual void GetFacetDofs(int i, Array<int> & dnums) const
140
+ {
141
+ dnums.SetSize (0);
142
+ dnums += i;
143
+ dnums += 3+IntRange (i*ORDER,(i+1)*ORDER);
144
+ }
145
+
146
+
147
+ template<typename Tx, typename TFA>
148
+ void T_CalcShape (TIP<2,Tx> ip, TFA & shape) const
149
+ {
150
+ if (only_ho_div && (ORDER <= 1)) return;
151
+ Tx x = ip.x, y = ip.y;
152
+ Tx lami[3] = { x, y, 1-x-y };
153
+
154
+ Tx adpol1[ORDER], adpol2[ORDER];
155
+
156
+ int ii = 3;
157
+
158
+ if (!only_ho_div){
159
+ // const EDGE * edges = ElementTopology::GetEdges (ET_TRIG);
160
+ for (int i = 0; i < 3; i++)
161
+ {
162
+ IVec<2> e = this->GetEdgeSort (i, vnums);
163
+
164
+ //Nedelec low order edge shape function
165
+ shape[i] = uDv_minus_vDu (lami[e[0]], lami[e[1]]);
166
+
167
+ //HO-Edge shapes (Gradient Fields)
168
+ if(ORDER > 0) // && usegrad_edge[i])
169
+ {
170
+ Tx xi = lami[e[1]] - lami[e[0]];
171
+ // LegendrePolynomial::
172
+ IntLegNoBubble::
173
+ EvalScaledMult (ORDER-1, xi, lami[e[0]]+lami[e[1]],
174
+ lami[e[0]]*lami[e[1]],
175
+ SBLambda([&](int i, Tx v)
176
+ {
177
+ shape[ii++] = Du(v);
178
+ }));
179
+ /*
180
+ AutoDiff<2> eta = 1 - lami[e[1]] - lami[e[0]];
181
+ // T_ORTHOPOL::CalcTrigExt(ORDER+1, xi, eta, adpol1);
182
+ T_ORTHOPOL::CalcScaled<ORDER+1> (xi, 1-eta, adpol1);
183
+
184
+ for(int j = 0; j < ORDER; j++)
185
+ shape[ii++] = Du<2> (adpol1[j]);
186
+ */
187
+ }
188
+ }
189
+ }
190
+ else
191
+ ii = 0;
192
+ //Inner shapes (Face)
193
+ if(ORDER > 1)
194
+ {
195
+ IVec<4> fav = this->GetFaceSort (0, vnums);
196
+
197
+ Tx xi = lami[fav[2]]-lami[fav[1]];
198
+ Tx eta = lami[fav[0]];
199
+
200
+ TrigShapesInnerLegendre::CalcSplitted<ORDER+1> (xi, eta, adpol1,adpol2);
201
+
202
+ if (!only_ho_div)
203
+ {
204
+ // rotated gradients:
205
+ for (int j = 0; j < ORDER-1; j++)
206
+ for (int k = 0; k < ORDER-1-j; k++, ii++)
207
+ shape[ii] = Du (adpol1[j] * adpol2[k]);
208
+ }
209
+
210
+ if (!ho_div_free)
211
+ {
212
+ // other combination
213
+ for (int j = 0; j < ORDER-1; j++)
214
+ for (int k = 0; k < ORDER-1-j; k++, ii++)
215
+ shape[ii] = uDv_minus_vDu (adpol2[k], adpol1[j]);
216
+
217
+ // rec_pol * Nedelec0
218
+ for (int j = 0; j < ORDER-1; j++, ii++)
219
+ shape[ii] = wuDv_minus_wvDu (lami[fav[1]], lami[fav[2]], adpol2[j]);
220
+ }
221
+ }
222
+ }
223
+
224
+ };
225
+
226
+ }
227
+
228
+
229
+ #endif
@@ -0,0 +1,177 @@
1
+ #ifndef FILE_HDIVHOFESPACE
2
+ #define FILE_HDIVHOFESPACE
3
+
4
+ /*********************************************************************/
5
+ /* File: hdivhofespace.hpp */
6
+ /* Author: START */
7
+ /* Date: Feb. 2003, update (SZ) Jan. 2007 */
8
+ /*********************************************************************/
9
+
10
+ #include "fespace.hpp"
11
+
12
+ namespace ngcomp
13
+ {
14
+
15
+ /**
16
+ HDiv High Order Finite Element Space
17
+ */
18
+
19
+ class NGS_DLL_HEADER HDivHighOrderFESpace : public FESpace
20
+ {
21
+ protected:
22
+ // Level
23
+ int level;
24
+ // Number Dofs
25
+ // int ndof;
26
+ // order of curl-fields
27
+ int curl_order;
28
+
29
+ Array<DofId> first_facet_dof;
30
+ Array<DofId> first_inner_dof;
31
+
32
+ /// relative order to mesh-order
33
+ int rel_order;
34
+ // curl-order relative to mesh order
35
+ int rel_curl_order;
36
+ // space is of variable order
37
+ bool var_order;
38
+ // space is continuous/discontinuous
39
+ bool discont;
40
+
41
+ Array<IVec<3> > order_inner;
42
+ Array<IVec<3> > order_inner_curl;
43
+ Array<IVec<2> > order_facet;
44
+ Array<bool> fine_facet;
45
+ Array<bool> boundary_facet;
46
+
47
+ // Array<int> ndlevel;
48
+ int uniform_order_inner;
49
+ int uniform_order_facet;
50
+
51
+ // high order divergence free
52
+ bool ho_div_free;
53
+ ///
54
+ bool fixed_order;
55
+
56
+ bool RT = false;
57
+
58
+ // highest-order facet dofs discontinuous ?
59
+ bool highest_order_dc;
60
+ // hide all used dofs
61
+ bool hide_all_dofs;
62
+ // discontinuous facet pairs:
63
+ Array<IVec<2>> dc_pairs;
64
+ public:
65
+ HDivHighOrderFESpace (shared_ptr<MeshAccess> ama, const Flags & flags,
66
+ bool parseflags=false);
67
+ ///
68
+ virtual ~HDivHighOrderFESpace ();
69
+ static DocInfo GetDocu ();
70
+
71
+ virtual void UpdateDofTables() override;
72
+
73
+ virtual void UpdateCouplingDofArray() override;
74
+
75
+ virtual void SetOrder (NodeId ni, int order) override;
76
+ virtual int GetOrder (NodeId ni) const override;
77
+ using FESpace::GetOrder;
78
+
79
+ virtual FlatArray<VorB> GetDualShapeNodes (VorB vb) const override
80
+ {
81
+ static VorB nodes[] = { VOL, BND };
82
+ return FlatArray<VorB> (2, &nodes[0]);
83
+ }
84
+
85
+ virtual string GetClassName () const override
86
+ {
87
+ return "HDivHighOrderFESpace";
88
+ }
89
+
90
+ /// averaging over high-order dc dofs
91
+ void Average (BaseVector & vec) const;
92
+
93
+ ///
94
+ void Update() override;
95
+ ///
96
+ // virtual size_t GetNDof () const throw() override;
97
+ ///
98
+ // virtual size_t GetNDofLevel (int level) const override;
99
+ ///
100
+ virtual FiniteElement & GetFE (ElementId ei, Allocator & alloc) const override;
101
+ ///
102
+ // virtual const FiniteElement & GetFE (int elnr, LocalHeap & lh) const override;
103
+ ///
104
+ template <ELEMENT_TYPE ET>
105
+ FiniteElement & T_GetFE (int elnr, bool onlyhdiv, Allocator & lh) const;
106
+ ///
107
+ virtual const FiniteElement & GetHODivFE (int elnr, LocalHeap & lh) const;
108
+ ///
109
+ // virtual const FiniteElement & GetSFE (int selnr, LocalHeap & lh) const override; // 2D: array =0.;
110
+ ///
111
+ virtual void GetDofNrs (ElementId ei, Array<DofId> & dnums) const override;
112
+ ///
113
+ virtual shared_ptr<Table<int>> CreateSmoothingBlocks (const Flags & precflags) const override;
114
+ ///
115
+ virtual shared_ptr<Array<int>> CreateDirectSolverClusters (const Flags & precflags) const override;
116
+ ///
117
+ virtual void GetVertexDofNrs (int vnr, Array<DofId> & dnums) const override;
118
+ ///
119
+ virtual void GetEdgeDofNrs (int ednr, Array<DofId> & dnums) const override;
120
+ ///
121
+ virtual void GetFaceDofNrs (int fanr, Array<DofId> & dnums) const override;
122
+ ///
123
+ virtual void GetFacetDofNrs(int fanr, Array<DofId> & dnums) const
124
+ {
125
+ if (ma->GetDimension() == 2) GetEdgeDofNrs(fanr,dnums);
126
+ else if (ma->GetDimension() == 3) GetFaceDofNrs(fanr,dnums);
127
+ }
128
+ ///
129
+ virtual void GetInnerDofNrs (int elnr, Array<DofId> & dnums) const override;
130
+ ///
131
+ void GetFacetOrder (Array<IVec<2> > & of, Array<bool> & ff) const
132
+ {of = order_facet; ff = fine_facet;};
133
+
134
+ ///
135
+ int GetNElemDofs(int elnr) const
136
+ {
137
+ if(discont) return(first_inner_dof[elnr+1] - first_inner_dof[elnr]);
138
+ else
139
+ {
140
+ Array<DofId> dnums;
141
+ this->GetDofNrs(elnr,dnums);
142
+ return(dnums.Size());
143
+ }
144
+ }
145
+
146
+ void SelectDofs (const string & name, BitArray & dofs) const override;
147
+
148
+ int GetFirstInnerDof(int elnr) const { return(first_inner_dof[elnr]);};
149
+ // virtual int LowOrderDof() const { if(discont) return(0); else return(1);}
150
+
151
+
152
+ const Array<IVec<2>> & GetDCPairs () const { return dc_pairs; }
153
+
154
+ virtual bool VarOrder() const override { return var_order; }
155
+ virtual int GetRelOrder() const override { return rel_order; }
156
+
157
+
158
+ auto GetFacetDofs (size_t nr) const
159
+ {
160
+ return Range (first_facet_dof[nr], first_facet_dof[nr+1]);
161
+ }
162
+
163
+ auto GetElementDofs (size_t nr) const
164
+ {
165
+ return Range (first_inner_dof[nr], first_inner_dof[nr+1]);
166
+ }
167
+
168
+ };
169
+
170
+ }
171
+
172
+ #endif
173
+
174
+
175
+
176
+
177
+
@@ -0,0 +1,106 @@
1
+ #ifndef FILE_HDIVHOSURFACEFESPACE
2
+ #define FILE_HDIVHOSURFACEFESPACE
3
+
4
+ /*********************************************************************/
5
+ /* File: hdivhosurfacefespace.hpp */
6
+ /* Author: Philip Lederer, Michael Neunteufel */
7
+ /* Date: September 2017 */
8
+ /*********************************************************************/
9
+
10
+ #include "fespace.hpp"
11
+
12
+ namespace ngcomp
13
+ {
14
+ class NGS_DLL_HEADER HDivHighOrderSurfaceFESpace : public FESpace
15
+ {
16
+ protected:
17
+
18
+ // int ndof;
19
+
20
+ Array<DofId> first_facet_dof;
21
+ Array<DofId> first_inner_dof;
22
+
23
+ bool discont;
24
+
25
+ Array<IVec<3> > order_inner;
26
+ //Array<IVec<3> > order_inner_curl;
27
+ Array<IVec<2> > order_facet;
28
+ Array<bool> fine_facet;
29
+ Array<bool> boundary_facet;
30
+
31
+ // Array<int> ndlevel;
32
+ int uniform_order_inner;
33
+ int uniform_order_facet;
34
+
35
+ bool ho_div_free;
36
+ bool highest_order_dc;
37
+
38
+ bool RT = false;
39
+
40
+ Array<IVec<2>> dc_pairs;
41
+
42
+ public:
43
+ HDivHighOrderSurfaceFESpace (shared_ptr<MeshAccess> ama, const Flags & flags,
44
+ bool parseflags=false);
45
+
46
+ virtual ~HDivHighOrderSurfaceFESpace ();
47
+ static DocInfo GetDocu ();
48
+
49
+ virtual string GetClassName () const override
50
+ {
51
+ return "HDivHighOrderSurfaceFESpace";
52
+ }
53
+
54
+ virtual FlatArray<VorB> GetDualShapeNodes (VorB vb) const override
55
+ {
56
+ static VorB nodes[] = { VOL, BND };
57
+ return FlatArray<VorB> (2, &nodes[0]);
58
+ }
59
+
60
+ void Average (BaseVector & vec) const;
61
+
62
+ void Update() override;
63
+
64
+ virtual void UpdateDofTables() override;
65
+ virtual void UpdateCouplingDofArray() override;
66
+
67
+ // virtual size_t GetNDof () const throw() override;
68
+
69
+ virtual FiniteElement & GetFE (ElementId ei, Allocator & alloc) const override;
70
+
71
+ template <ELEMENT_TYPE ET>
72
+ FiniteElement & T_GetSFE (ElementId ei, bool onlyhdiv, Allocator & alloc) const;
73
+
74
+ virtual const FiniteElement & GetHODivFE (int elnr, LocalHeap & lh) const;
75
+
76
+ virtual void GetDofNrs (ElementId ei, Array<DofId> & dnums) const override;
77
+ //virtual void GetSDofNrs (ElementId ei, Array<DofId> & dnums) const;
78
+
79
+ const Array<IVec<2>> & GetDCPairs () const { return dc_pairs; }
80
+
81
+ virtual void GetVertexDofNrs (int vnr, Array<DofId> & dnums) const override;
82
+
83
+ virtual void GetFacetDofNrs(int fanr, Array<DofId> & dnums) const;
84
+
85
+ virtual void GetInnerDofNrs(int elnr, Array<DofId> & dnums) const override;
86
+
87
+ auto GetFacetDofs (size_t nr) const
88
+ {
89
+ return Range (first_facet_dof[nr], first_facet_dof[nr+1]);
90
+ }
91
+
92
+ auto GetElementDofs (size_t nr) const
93
+ {
94
+ return Range (first_inner_dof[nr], first_inner_dof[nr+1]);
95
+ }
96
+
97
+ };
98
+
99
+ }
100
+
101
+ #endif
102
+
103
+
104
+
105
+
106
+