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,148 @@
1
+ #ifndef FILE_H1HOFEFO
2
+ #define FILE_H1HOFEFO
3
+
4
+ /*********************************************************************/
5
+ /* File: h1hofefo.hpp */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: Apr. 2009 */
8
+ /*********************************************************************/
9
+
10
+
11
+ #include <recursive_pol.hpp>
12
+
13
+ namespace ngfem
14
+ {
15
+
16
+ /**
17
+ High order finite elements for H^1 of fixed order
18
+ */
19
+
20
+ template <ELEMENT_TYPE ET, int ORDER> class H1HighOrderFEFO;
21
+
22
+ /**
23
+ High order triangular finite element
24
+ */
25
+ template <int ORDER>
26
+ class H1HighOrderFEFO<ET_TRIG, ORDER> :
27
+ public T_ScalarFiniteElement< H1HighOrderFEFO<ET_TRIG,ORDER>, ET_TRIG >,
28
+ public ET_trait<ET_TRIG>
29
+ {
30
+ using ScalarFiniteElement<2>::ndof;
31
+ using ScalarFiniteElement<2>::order;
32
+
33
+ using ET_trait<ET_TRIG> :: N_VERTEX;
34
+
35
+ int vnums[N_VERTEX];
36
+
37
+ public:
38
+ enum { NDOF = (ORDER+1)*(ORDER+2)/2 };
39
+
40
+ INLINE H1HighOrderFEFO ()
41
+ {
42
+ order = ORDER;
43
+ ndof = NDOF;
44
+ for (int i = 0; i < N_VERTEX; i++) vnums[i] = i;
45
+ }
46
+
47
+ template <typename TA>
48
+ INLINE H1HighOrderFEFO<ET_TRIG, ORDER> * SetVertexNumbers (const TA & avnums)
49
+ {
50
+ for (int i = 0; i < N_VERTEX; i++) vnums[i] = avnums[i];
51
+ return this;
52
+ }
53
+
54
+ template<typename Tx, typename TFA>
55
+ INLINE void T_CalcShape (TIP<2,Tx> ip, TFA & shape) const;
56
+ };
57
+
58
+
59
+ /**
60
+ High order tet finite element
61
+ */
62
+ template <int ORDER>
63
+ class H1HighOrderFEFO<ET_TET, ORDER> :
64
+ public T_ScalarFiniteElement< H1HighOrderFEFO<ET_TET,ORDER>, ET_TET>,
65
+ public ET_trait<ET_TET>
66
+ {
67
+ using ET_trait<ET_TET> :: N_VERTEX;
68
+
69
+ int vnums[N_VERTEX];
70
+ using ScalarFiniteElement<3>::ndof;
71
+ using ScalarFiniteElement<3>::order;
72
+
73
+ typedef IntegratedLegendreMonomialExt T_ORTHOPOL;
74
+
75
+ public:
76
+ enum { NDOF = (ORDER+1)*(ORDER+2)*(ORDER+3)/6 };
77
+ NGS_DLL_HEADER H1HighOrderFEFO ()
78
+ {
79
+ order = ORDER;
80
+ ndof = NDOF;
81
+ for (int i = 0; i < N_VERTEX; i++) vnums[i] = i;
82
+ }
83
+
84
+ template <typename TA>
85
+ INLINE H1HighOrderFEFO<ET_TET, ORDER> * SetVertexNumbers (const TA & avnums)
86
+ {
87
+ for (int i = 0; i < N_VERTEX; i++) vnums[i] = avnums[i];
88
+ return this;
89
+ }
90
+
91
+ template<typename Tx, typename TFA>
92
+ INLINE void T_CalcShape (TIP<3,Tx> ip, TFA & shape) const;
93
+ };
94
+
95
+
96
+
97
+ }
98
+
99
+
100
+
101
+
102
+ #ifdef FILE_H1HOFEFO_CPP
103
+
104
+ #define H1HOFEFO_EXTERN
105
+ #include <h1hofefo_impl.hpp>
106
+ #include <tscalarfe_impl.hpp>
107
+
108
+ #else
109
+ #define H1HOFEFO_EXTERN extern
110
+ #endif
111
+
112
+
113
+ namespace ngfem
114
+ {
115
+
116
+ H1HOFEFO_EXTERN template class T_ScalarFiniteElement<H1HighOrderFEFO<ET_TRIG,1>, ET_TRIG>;
117
+ H1HOFEFO_EXTERN template class T_ScalarFiniteElement<H1HighOrderFEFO<ET_TRIG,2>, ET_TRIG>;
118
+ H1HOFEFO_EXTERN template class T_ScalarFiniteElement<H1HighOrderFEFO<ET_TRIG,3>, ET_TRIG>;
119
+ H1HOFEFO_EXTERN template class T_ScalarFiniteElement<H1HighOrderFEFO<ET_TRIG,4>, ET_TRIG>;
120
+ H1HOFEFO_EXTERN template class T_ScalarFiniteElement<H1HighOrderFEFO<ET_TRIG,5>, ET_TRIG>;
121
+ H1HOFEFO_EXTERN template class T_ScalarFiniteElement<H1HighOrderFEFO<ET_TRIG,6>, ET_TRIG>;
122
+
123
+ H1HOFEFO_EXTERN template class T_ScalarFiniteElement<H1HighOrderFEFO<ET_TET,1>, ET_TET>;
124
+ H1HOFEFO_EXTERN template class T_ScalarFiniteElement<H1HighOrderFEFO<ET_TET,2>, ET_TET>;
125
+ H1HOFEFO_EXTERN template class T_ScalarFiniteElement<H1HighOrderFEFO<ET_TET,3>, ET_TET>;
126
+ H1HOFEFO_EXTERN template class T_ScalarFiniteElement<H1HighOrderFEFO<ET_TET,4>, ET_TET>;
127
+ H1HOFEFO_EXTERN template class T_ScalarFiniteElement<H1HighOrderFEFO<ET_TET,5>, ET_TET>;
128
+ H1HOFEFO_EXTERN template class T_ScalarFiniteElement<H1HighOrderFEFO<ET_TET,6>, ET_TET>;
129
+
130
+ H1HOFEFO_EXTERN template class H1HighOrderFEFO<ET_TRIG,1>;
131
+ H1HOFEFO_EXTERN template class H1HighOrderFEFO<ET_TRIG,2>;
132
+ H1HOFEFO_EXTERN template class H1HighOrderFEFO<ET_TRIG,3>;
133
+ H1HOFEFO_EXTERN template class H1HighOrderFEFO<ET_TRIG,4>;
134
+ H1HOFEFO_EXTERN template class H1HighOrderFEFO<ET_TRIG,5>;
135
+ H1HOFEFO_EXTERN template class H1HighOrderFEFO<ET_TRIG,6>;
136
+
137
+ H1HOFEFO_EXTERN template class H1HighOrderFEFO<ET_TET,1>;
138
+ H1HOFEFO_EXTERN template class H1HighOrderFEFO<ET_TET,2>;
139
+ H1HOFEFO_EXTERN template class H1HighOrderFEFO<ET_TET,3>;
140
+ H1HOFEFO_EXTERN template class H1HighOrderFEFO<ET_TET,4>;
141
+ H1HOFEFO_EXTERN template class H1HighOrderFEFO<ET_TET,5>;
142
+ H1HOFEFO_EXTERN template class H1HighOrderFEFO<ET_TET,6>;
143
+
144
+
145
+ }
146
+
147
+
148
+ #endif
@@ -0,0 +1,185 @@
1
+ #ifndef FILE_H1HOFEFO_IMPL
2
+ #define FILE_H1HOFEFO_IMPL
3
+
4
+ /*********************************************************************/
5
+ /* File: h1hofefo_impl.hpp */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 2009 */
8
+ /*********************************************************************/
9
+
10
+ #include "recursive_pol_tet.hpp"
11
+
12
+
13
+
14
+ namespace ngfem
15
+ {
16
+
17
+ template <int ORDER, int I = ORDER>
18
+ class TrigProduct
19
+ {
20
+ public:
21
+ template <class PX, class PY, class TRes>
22
+ static void Do (const PX & polx, const PY & poly, TRes && res)
23
+ {
24
+ TrigProduct<ORDER, I-1>::Do (polx,poly, res);
25
+
26
+ int ii = (ORDER+1)*(ORDER+2)/2 - (ORDER-I+1)*(ORDER-I+2)/2;
27
+
28
+ for (int j = 0; j <= ORDER-I; j++)
29
+ res[ii++] = polx[I] * poly[j];
30
+ }
31
+ };
32
+
33
+ template <int ORDER>
34
+ class TrigProduct<ORDER,-1>
35
+ {
36
+ public:
37
+ template <class PX, class PY, class TRes>
38
+ static void Do (const PX & polx, const PY & poly, TRes && res) { ; }
39
+ };
40
+
41
+
42
+
43
+
44
+ template <int ORDER> template<typename Tx, typename TFA>
45
+ void H1HighOrderFEFO<ET_TRIG, ORDER> :: T_CalcShape (TIP<2,Tx> ip, TFA & shape) const
46
+ {
47
+ Tx lam[3] = { ip.x, ip.y, 1-ip.x-ip.y };
48
+
49
+ for (int i = 0; i < 3; i++) shape[i] = lam[i];
50
+
51
+ int ii = 3;
52
+
53
+ for (int i = 0; i < 3; i++)
54
+ {
55
+ IVec<2> e = GetEdgeSort (i, vnums);
56
+ LegendrePolynomial::EvalScaledMult (ORDER-2,
57
+ lam[e[1]]-lam[e[0]], lam[e[0]]+lam[e[1]],
58
+ lam[e[0]]*lam[e[1]], shape.Addr(ii));
59
+ ii += ORDER-1;
60
+ }
61
+
62
+ // inner dofs
63
+ if (ORDER >= 3)
64
+ {
65
+ IVec<4> f = GetFaceSort (0, vnums);
66
+ DubinerBasis::EvalMult (ORDER-3,
67
+ lam[f[0]], lam[f[1]],
68
+ lam[f[0]]*lam[f[1]]*lam[f[2]], shape+ii);
69
+ }
70
+ }
71
+
72
+ template <> template<typename Tx, typename TFA>
73
+ void H1HighOrderFEFO<ET_TRIG, 2> :: T_CalcShape (TIP<2,Tx> ip, TFA & shape) const
74
+ {
75
+ Tx lam[3] = { ip.x, ip.y, 1-ip.x-ip.y };
76
+ for (int i = 0; i < 3; i++) shape[i] = lam[i];
77
+
78
+ int ii = 3;
79
+ for (int i = 0; i < 3; i++)
80
+ {
81
+ IVec<2> e = GetEdge (i);
82
+ shape[ii] = lam[e[0]] * lam[e[1]];
83
+ ii++;
84
+ }
85
+ }
86
+
87
+ template <> template<typename Tx, typename TFA>
88
+ void H1HighOrderFEFO<ET_TRIG, 1> :: T_CalcShape (TIP<2,Tx> ip, TFA & shape) const
89
+ {
90
+ Tx lam[3] = { ip.x, ip.y, 1-ip.x-ip.y };
91
+ for (int i = 0; i < 3; i++) shape[i] = lam[i];
92
+ }
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+ template <int ORDER> template<typename Tx, typename TFA>
102
+ void H1HighOrderFEFO<ET_TET, ORDER> :: T_CalcShape (TIP<3,Tx> ip, TFA & shape) const
103
+ {
104
+ Tx lam[4] = { ip.x, ip.y, ip.z, 1-ip.x-ip.y-ip.z };
105
+
106
+ for (int i = 0; i < 4; i++) shape[i] = lam[i];
107
+
108
+ int ii = 4;
109
+ for (int i = 0; i < 6; i++)
110
+ {
111
+ IVec<2> e = GetEdgeSort (i, vnums);
112
+ LegendrePolynomial::
113
+ EvalScaledMultFO<ORDER-2> (lam[e[1]]-lam[e[0]], lam[e[0]]+lam[e[1]],
114
+ lam[e[0]]*lam[e[1]], shape+ii);
115
+ ii += ORDER-1;
116
+ }
117
+
118
+ // face dofs
119
+ for (int i = 0; i < 4; i++)
120
+ if (ORDER >= 3)
121
+ {
122
+ IVec<4> f = GetFaceSort (i, vnums);
123
+ int vop = 6 - f[0] - f[1] - f[2];
124
+
125
+ DubinerBasis::EvalScaledMult (ORDER-3, lam[f[0]], lam[f[1]], 1-lam[vop],
126
+ lam[f[0]]*lam[f[1]]*lam[f[2]], shape+ii);
127
+ ii += (ORDER-2)*(ORDER-1)/2;
128
+ }
129
+
130
+ if (ORDER >= 4)
131
+ ii += TetShapesInnerLegendre::
132
+ Calc (ORDER, lam[0]-lam[3], lam[1], lam[2],
133
+ shape.Addr(ii) );
134
+ }
135
+
136
+
137
+
138
+ template <> template<typename Tx, typename TFA>
139
+ void H1HighOrderFEFO<ET_TET, 2> :: T_CalcShape (TIP<3,Tx> ip, TFA & shape) const
140
+ {
141
+ // Tx lam[4] = { hx[0], hx[1], hx[2], 1-hx[0]-hx[1]-hx[2] };
142
+ Tx lam[4] = { ip.x, ip.y, ip.z, 1-ip.x-ip.y-ip.z };
143
+
144
+ for (int i = 0; i < 4; i++) shape[i] = lam[i];
145
+
146
+ int ii = 4;
147
+
148
+ for (int i = 0; i < 6; i++)
149
+ {
150
+ IVec<2> e = GetEdge (i);
151
+ shape[ii] = lam[e[0]] * lam[e[1]];
152
+ ii++;
153
+ }
154
+ }
155
+
156
+
157
+ template <> template<typename Tx, typename TFA>
158
+ void H1HighOrderFEFO<ET_TET, 3> :: T_CalcShape (TIP<3,Tx> ip, TFA & shape) const
159
+ {
160
+ Tx lam[4] = { ip.x, ip.y, ip.z, 1-ip.x-ip.y-ip.z };
161
+ // Tx lam[4] = { hx[0], hx[1], hx[2], 1-hx[0]-hx[1]-hx[2] };
162
+
163
+ for (int i = 0; i < 4; i++) shape[i] = lam[i];
164
+
165
+ int ii = 4;
166
+ for (int i = 0; i < 6; i++)
167
+ {
168
+ IVec<2> e = GetEdgeSort (i, vnums);
169
+ Tx bub = lam[e[0]]*lam[e[1]];
170
+ shape[ii] = bub;
171
+ shape[ii+1] = bub * (lam[e[1]]-lam[e[0]]);
172
+ ii += 2;
173
+ }
174
+
175
+ for (int i = 0; i < 4; i++)
176
+ {
177
+ IVec<4> f = GetFace (i);
178
+ shape[ii++] = lam[f[0]]*lam[f[1]]*lam[f[2]];
179
+ }
180
+ }
181
+
182
+ }
183
+
184
+ #endif
185
+
@@ -0,0 +1,167 @@
1
+ #ifndef FILE_H1HOFESPACE
2
+ #define FILE_H1HOFESPACE
3
+
4
+ /*********************************************************************/
5
+ /* File: h1hofespace.hpp */
6
+ /* Author: Start */
7
+ /* Date: 10. Feb. 2003 */
8
+ /*********************************************************************/
9
+
10
+ #include "fespace.hpp"
11
+
12
+ namespace ngcomp
13
+ {
14
+
15
+ /**
16
+ High Order Finite Element Space
17
+ */
18
+
19
+ class NGS_DLL_HEADER H1HighOrderFESpace : public FESpace
20
+ {
21
+ protected:
22
+ int level;
23
+
24
+ Array<DofId> first_edge_dof;
25
+ Array<DofId> first_face_dof;
26
+ Array<DofId> first_element_dof;
27
+
28
+ // typedef short TORDER;
29
+ typedef unsigned char TORDER;
30
+
31
+ /// relative order to mesh-order
32
+ int rel_order;
33
+ bool var_order;
34
+ bool fixed_order;
35
+ bool wb_loedge, wb_edge;
36
+ Array<TORDER> order_edge;
37
+ Array<IVec<2,TORDER>> order_face;
38
+ Array<IVec<3,TORDER>> order_inner;
39
+ Array<bool> used_vertex;
40
+ Array<bool> used_edge;
41
+ Array<bool> used_face;
42
+
43
+ int uniform_order_inner;
44
+ int uniform_order_face;
45
+ int uniform_order_edge;
46
+ int uniform_order_quad;
47
+ int uniform_order_trig;
48
+ Array<IVec<3>> dom_order_min;
49
+ Array<IVec<3>> dom_order_max;
50
+
51
+ bool level_adapted_order;
52
+ bool nodalp2;
53
+ bool nodal;
54
+ bool highest_order_dc;
55
+ bool test_ho_prolongation;
56
+ public:
57
+
58
+ H1HighOrderFESpace (shared_ptr<MeshAccess> ama, const Flags & flags, bool checkflags=false);
59
+ ///
60
+ virtual ~H1HighOrderFESpace ();
61
+
62
+ static DocInfo GetDocu ();
63
+
64
+
65
+ virtual string GetClassName () const override
66
+ {
67
+ return "H1HighOrderFESpace";
68
+ }
69
+
70
+ ///
71
+ void Update() override;
72
+
73
+ virtual void DoArchive (Archive & archive) override;
74
+ Array<MemoryUsage> GetMemoryUsage () const override;
75
+
76
+ ///
77
+ virtual FiniteElement & GetFE (ElementId ei, Allocator & alloc) const override;
78
+
79
+ ///
80
+ template <ELEMENT_TYPE ET>
81
+ FiniteElement & T_GetFE (int elnr, Allocator & alloc) const;
82
+ ///
83
+ template <ELEMENT_TYPE ET>
84
+ FiniteElement & T_GetSFE (int elnr, Allocator & alloc) const;
85
+ ///
86
+ template <ELEMENT_TYPE ET>
87
+ FiniteElement & T_GetCD2FE(int elnr, Allocator & alloc) const;
88
+ virtual void GetDofNrs (ElementId ei, Array<DofId> & dnums) const override;
89
+
90
+ virtual void GetDofRanges (ElementId ei, Array<IntRange> & dranges) const;
91
+
92
+ virtual void GetVertexDofNrs (int vnr, Array<DofId> & dnums) const override;
93
+ virtual void GetEdgeDofNrs (int ednr, Array<DofId> & dnums) const override;
94
+ virtual void GetFaceDofNrs (int fanr, Array<DofId> & dnums) const override;
95
+ virtual void GetInnerDofNrs (int elnr, Array<DofId> & dnums) const override;
96
+ ///
97
+ virtual shared_ptr<Table<int>> CreateSmoothingBlocks (const Flags & precflags) const override;
98
+ // virtual void CreateSmoothingBlocks2 (SmoothingBlocksCreator & sbc, const Flags & precflags) const;
99
+ ///
100
+ virtual shared_ptr<Array<int>> CreateDirectSolverClusters (const Flags & flags) const override;
101
+
102
+ virtual void UpdateDofTables () override;
103
+ virtual void UpdateCouplingDofArray() override;
104
+
105
+ virtual void SetOrder (NodeId ni, int order) override;
106
+ virtual int GetOrder (NodeId ni) const override;
107
+ using FESpace::GetOrder;
108
+
109
+ void SetEdgeOrder (int enr, int eo) { order_edge[enr] = eo; }
110
+ void SetFaceOrder (int fnr, IVec<2> fo) { order_face[fnr] = fo; }
111
+ void SetElementOrder (int elnr, IVec<3> elo) { order_inner[elnr] = elo; }
112
+
113
+ /// get relative (to mesh) order of finite elements
114
+ virtual int GetRelOrder() const override { return rel_order; }
115
+ virtual bool VarOrder() const override { return var_order; }
116
+ virtual FlatArray<VorB> GetDualShapeNodes (VorB vb) const override;
117
+
118
+ auto GetEdgeDofs (size_t nr) const
119
+ {
120
+ return Range (first_edge_dof[nr], first_edge_dof[nr+1]);
121
+ }
122
+
123
+ auto GetFaceDofs (size_t nr) const
124
+ {
125
+ return Range (first_face_dof[nr], first_face_dof[nr+1]);
126
+ }
127
+
128
+ auto GetElementDofs (size_t nr) const
129
+ {
130
+ return Range (first_element_dof[nr], first_element_dof[nr+1]);
131
+ }
132
+
133
+ };
134
+
135
+
136
+ class VectorH1FESpace : public CompoundFESpace
137
+ {
138
+ bool interleaved;
139
+ public:
140
+ VectorH1FESpace (shared_ptr<MeshAccess> ama, const Flags & flags,
141
+ bool checkflags = false);
142
+
143
+ FiniteElement & GetFE (ElementId ei, Allocator & alloc) const override;
144
+
145
+ static DocInfo GetDocu ();
146
+
147
+ virtual void SetOrder (ELEMENT_TYPE et, TORDER order) override;
148
+
149
+ virtual void SetOrder (NodeId ni, int order) override;
150
+ virtual int GetOrder (NodeId ni) const override;
151
+ using FESpace::GetOrder;
152
+
153
+ virtual void FinalizeUpdate() override;
154
+
155
+ void GetDofNrs (ElementId ei, Array<DofId> & dnums) const override;
156
+ void GetDofNrs (NodeId ni, Array<DofId> & dnums) const override;
157
+
158
+ virtual string GetClassName () const override
159
+ {
160
+ return "VectorH1FESpace";
161
+ }
162
+ };
163
+
164
+ }
165
+
166
+ #endif
167
+