ngsolve 6.2.2506.post74.dev0__cp314-cp314-macosx_10_15_universal2.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (315) hide show
  1. netgen/include/analytic_integrals.hpp +10 -0
  2. netgen/include/arnoldi.hpp +55 -0
  3. netgen/include/bandmatrix.hpp +334 -0
  4. netgen/include/basematrix.hpp +957 -0
  5. netgen/include/basevector.hpp +1268 -0
  6. netgen/include/bdbequations.hpp +2805 -0
  7. netgen/include/bdbintegrator.hpp +1660 -0
  8. netgen/include/bem_diffops.hpp +475 -0
  9. netgen/include/bessel.hpp +1064 -0
  10. netgen/include/bilinearform.hpp +963 -0
  11. netgen/include/bla.hpp +29 -0
  12. netgen/include/blockalloc.hpp +95 -0
  13. netgen/include/blockjacobi.hpp +328 -0
  14. netgen/include/bspline.hpp +116 -0
  15. netgen/include/calcinverse.hpp +141 -0
  16. netgen/include/cg.hpp +368 -0
  17. netgen/include/chebyshev.hpp +44 -0
  18. netgen/include/cholesky.hpp +720 -0
  19. netgen/include/clapack.h +7254 -0
  20. netgen/include/code_generation.hpp +296 -0
  21. netgen/include/coefficient.hpp +2033 -0
  22. netgen/include/coefficient_impl.hpp +19 -0
  23. netgen/include/coefficient_stdmath.hpp +167 -0
  24. netgen/include/commutingAMG.hpp +106 -0
  25. netgen/include/comp.hpp +79 -0
  26. netgen/include/compatibility.hpp +41 -0
  27. netgen/include/complex_wrapper.hpp +73 -0
  28. netgen/include/compressedfespace.hpp +110 -0
  29. netgen/include/contact.hpp +235 -0
  30. netgen/include/diagonalmatrix.hpp +154 -0
  31. netgen/include/differentialoperator.hpp +276 -0
  32. netgen/include/diffop.hpp +1286 -0
  33. netgen/include/diffop_impl.hpp +328 -0
  34. netgen/include/diffopwithfactor.hpp +123 -0
  35. netgen/include/discontinuous.hpp +84 -0
  36. netgen/include/dump.hpp +949 -0
  37. netgen/include/ectypes.hpp +121 -0
  38. netgen/include/eigen.hpp +60 -0
  39. netgen/include/eigensystem.hpp +18 -0
  40. netgen/include/elasticity_equations.hpp +595 -0
  41. netgen/include/elementbyelement.hpp +195 -0
  42. netgen/include/elementtopology.hpp +1760 -0
  43. netgen/include/elementtransformation.hpp +339 -0
  44. netgen/include/evalfunc.hpp +405 -0
  45. netgen/include/expr.hpp +1686 -0
  46. netgen/include/facetfe.hpp +175 -0
  47. netgen/include/facetfespace.hpp +180 -0
  48. netgen/include/facethofe.hpp +111 -0
  49. netgen/include/facetsurffespace.hpp +112 -0
  50. netgen/include/fe_interfaces.hpp +32 -0
  51. netgen/include/fem.hpp +87 -0
  52. netgen/include/fesconvert.hpp +14 -0
  53. netgen/include/fespace.hpp +1449 -0
  54. netgen/include/finiteelement.hpp +286 -0
  55. netgen/include/globalinterfacespace.hpp +77 -0
  56. netgen/include/globalspace.hpp +115 -0
  57. netgen/include/gridfunction.hpp +525 -0
  58. netgen/include/h1amg.hpp +124 -0
  59. netgen/include/h1hofe.hpp +188 -0
  60. netgen/include/h1hofe_impl.hpp +1262 -0
  61. netgen/include/h1hofefo.hpp +148 -0
  62. netgen/include/h1hofefo_impl.hpp +185 -0
  63. netgen/include/h1hofespace.hpp +167 -0
  64. netgen/include/h1lofe.hpp +1240 -0
  65. netgen/include/h1lumping.hpp +41 -0
  66. netgen/include/hcurl_equations.hpp +1381 -0
  67. netgen/include/hcurlcurlfe.hpp +2241 -0
  68. netgen/include/hcurlcurlfespace.hpp +78 -0
  69. netgen/include/hcurlfe.hpp +259 -0
  70. netgen/include/hcurlfe_utils.hpp +107 -0
  71. netgen/include/hcurlhdiv_dshape.hpp +857 -0
  72. netgen/include/hcurlhdivfes.hpp +308 -0
  73. netgen/include/hcurlhofe.hpp +175 -0
  74. netgen/include/hcurlhofe_impl.hpp +1871 -0
  75. netgen/include/hcurlhofespace.hpp +193 -0
  76. netgen/include/hcurllofe.hpp +1146 -0
  77. netgen/include/hdiv_equations.hpp +880 -0
  78. netgen/include/hdivdivfe.hpp +2923 -0
  79. netgen/include/hdivdivsurfacespace.hpp +76 -0
  80. netgen/include/hdivfe.hpp +206 -0
  81. netgen/include/hdivfe_utils.hpp +717 -0
  82. netgen/include/hdivfes.hpp +75 -0
  83. netgen/include/hdivhofe.hpp +447 -0
  84. netgen/include/hdivhofe_impl.hpp +1107 -0
  85. netgen/include/hdivhofefo.hpp +229 -0
  86. netgen/include/hdivhofespace.hpp +177 -0
  87. netgen/include/hdivhosurfacefespace.hpp +106 -0
  88. netgen/include/hdivlofe.hpp +773 -0
  89. netgen/include/hidden.hpp +74 -0
  90. netgen/include/householder.hpp +181 -0
  91. netgen/include/hypre_ams_precond.hpp +123 -0
  92. netgen/include/hypre_precond.hpp +73 -0
  93. netgen/include/integrator.hpp +2012 -0
  94. netgen/include/integratorcf.hpp +253 -0
  95. netgen/include/interpolate.hpp +49 -0
  96. netgen/include/intrule.hpp +2542 -0
  97. netgen/include/intrules_SauterSchwab.hpp +25 -0
  98. netgen/include/irspace.hpp +49 -0
  99. netgen/include/jacobi.hpp +153 -0
  100. netgen/include/kernels.hpp +762 -0
  101. netgen/include/l2hofe.hpp +194 -0
  102. netgen/include/l2hofe_impl.hpp +564 -0
  103. netgen/include/l2hofefo.hpp +542 -0
  104. netgen/include/l2hofespace.hpp +344 -0
  105. netgen/include/la.hpp +38 -0
  106. netgen/include/linearform.hpp +266 -0
  107. netgen/include/matrix.hpp +2140 -0
  108. netgen/include/memusage.hpp +41 -0
  109. netgen/include/meshaccess.hpp +1359 -0
  110. netgen/include/mgpre.hpp +204 -0
  111. netgen/include/mp_coefficient.hpp +145 -0
  112. netgen/include/mptools.hpp +2281 -0
  113. netgen/include/multigrid.hpp +42 -0
  114. netgen/include/multivector.hpp +447 -0
  115. netgen/include/mumpsinverse.hpp +187 -0
  116. netgen/include/mycomplex.hpp +361 -0
  117. netgen/include/ng_lapack.hpp +1661 -0
  118. netgen/include/ngblas.hpp +1232 -0
  119. netgen/include/ngs_defines.hpp +30 -0
  120. netgen/include/ngs_stdcpp_include.hpp +106 -0
  121. netgen/include/ngs_utils.hpp +121 -0
  122. netgen/include/ngsobject.hpp +1019 -0
  123. netgen/include/ngsstream.hpp +113 -0
  124. netgen/include/ngstd.hpp +72 -0
  125. netgen/include/nodalhofe.hpp +96 -0
  126. netgen/include/nodalhofe_impl.hpp +141 -0
  127. netgen/include/normalfacetfe.hpp +223 -0
  128. netgen/include/normalfacetfespace.hpp +98 -0
  129. netgen/include/normalfacetsurfacefespace.hpp +84 -0
  130. netgen/include/order.hpp +251 -0
  131. netgen/include/parallel_matrices.hpp +222 -0
  132. netgen/include/paralleldofs.hpp +340 -0
  133. netgen/include/parallelngs.hpp +23 -0
  134. netgen/include/parallelvector.hpp +269 -0
  135. netgen/include/pardisoinverse.hpp +200 -0
  136. netgen/include/periodic.hpp +129 -0
  137. netgen/include/plateaufespace.hpp +25 -0
  138. netgen/include/pml.hpp +275 -0
  139. netgen/include/pmltrafo.hpp +631 -0
  140. netgen/include/postproc.hpp +142 -0
  141. netgen/include/potentialtools.hpp +22 -0
  142. netgen/include/precomp.hpp +60 -0
  143. netgen/include/preconditioner.hpp +602 -0
  144. netgen/include/prolongation.hpp +377 -0
  145. netgen/include/python_comp.hpp +107 -0
  146. netgen/include/python_fem.hpp +89 -0
  147. netgen/include/python_linalg.hpp +58 -0
  148. netgen/include/python_ngstd.hpp +386 -0
  149. netgen/include/recursive_pol.hpp +4896 -0
  150. netgen/include/recursive_pol_tet.hpp +395 -0
  151. netgen/include/recursive_pol_trig.hpp +492 -0
  152. netgen/include/reorderedfespace.hpp +81 -0
  153. netgen/include/sample_sort.hpp +105 -0
  154. netgen/include/scalarfe.hpp +335 -0
  155. netgen/include/shapefunction_utils.hpp +113 -0
  156. netgen/include/simd_complex.hpp +329 -0
  157. netgen/include/smoother.hpp +253 -0
  158. netgen/include/solve.hpp +89 -0
  159. netgen/include/sparsecholesky.hpp +313 -0
  160. netgen/include/sparsematrix.hpp +1038 -0
  161. netgen/include/sparsematrix_dyn.hpp +90 -0
  162. netgen/include/sparsematrix_impl.hpp +1013 -0
  163. netgen/include/special_matrix.hpp +463 -0
  164. netgen/include/specialelement.hpp +125 -0
  165. netgen/include/statushandler.hpp +33 -0
  166. netgen/include/stringops.hpp +12 -0
  167. netgen/include/superluinverse.hpp +136 -0
  168. netgen/include/symbolicintegrator.hpp +850 -0
  169. netgen/include/symmetricmatrix.hpp +144 -0
  170. netgen/include/tangentialfacetfe.hpp +224 -0
  171. netgen/include/tangentialfacetfespace.hpp +91 -0
  172. netgen/include/tensor.hpp +522 -0
  173. netgen/include/tensorcoefficient.hpp +446 -0
  174. netgen/include/tensorproductintegrator.hpp +113 -0
  175. netgen/include/thcurlfe.hpp +128 -0
  176. netgen/include/thcurlfe_impl.hpp +380 -0
  177. netgen/include/thdivfe.hpp +80 -0
  178. netgen/include/thdivfe_impl.hpp +492 -0
  179. netgen/include/tpdiffop.hpp +461 -0
  180. netgen/include/tpfes.hpp +133 -0
  181. netgen/include/tpintrule.hpp +224 -0
  182. netgen/include/triangular.hpp +465 -0
  183. netgen/include/tscalarfe.hpp +245 -0
  184. netgen/include/tscalarfe_impl.hpp +1029 -0
  185. netgen/include/umfpackinverse.hpp +148 -0
  186. netgen/include/vector.hpp +1273 -0
  187. netgen/include/voxelcoefficientfunction.hpp +41 -0
  188. netgen/include/vtkoutput.hpp +198 -0
  189. netgen/include/vvector.hpp +208 -0
  190. netgen/include/webgui.hpp +92 -0
  191. netgen/libngbla.dylib +0 -0
  192. netgen/libngcomp.dylib +0 -0
  193. netgen/libngfem.dylib +0 -0
  194. netgen/libngla.dylib +0 -0
  195. netgen/libngsbem.dylib +0 -0
  196. netgen/libngsolve.dylib +0 -0
  197. netgen/libngstd.dylib +0 -0
  198. ngsolve/TensorProductTools.py +210 -0
  199. ngsolve/__console.py +94 -0
  200. ngsolve/__expr.py +181 -0
  201. ngsolve/__init__.py +148 -0
  202. ngsolve/__init__.pyi +233 -0
  203. ngsolve/_scikit_build_core_dependencies.py +30 -0
  204. ngsolve/bla.pyi +1153 -0
  205. ngsolve/bvp.py +78 -0
  206. ngsolve/bvp.pyi +32 -0
  207. ngsolve/cmake/NGSolveConfig.cmake +102 -0
  208. ngsolve/cmake/ngsolve-targets-release.cmake +79 -0
  209. ngsolve/cmake/ngsolve-targets.cmake +163 -0
  210. ngsolve/comp/__init__.pyi +5449 -0
  211. ngsolve/comp/pml.pyi +89 -0
  212. ngsolve/config/__init__.py +1 -0
  213. ngsolve/config/__init__.pyi +43 -0
  214. ngsolve/config/__main__.py +4 -0
  215. ngsolve/config/config.py +60 -0
  216. ngsolve/config/config.pyi +45 -0
  217. ngsolve/demos/TensorProduct/__init__.py +0 -0
  218. ngsolve/demos/TensorProduct/tp_dg_1d_1d.py +80 -0
  219. ngsolve/demos/TensorProduct/tp_dg_1d_2d.py +73 -0
  220. ngsolve/demos/TensorProduct/tp_dg_2d_1d.py +72 -0
  221. ngsolve/demos/TensorProduct/tp_dg_2d_2d.py +66 -0
  222. ngsolve/demos/__init__.py +0 -0
  223. ngsolve/demos/howto/__init__.py +0 -0
  224. ngsolve/demos/howto/hhj.py +44 -0
  225. ngsolve/demos/howto/hybrid_dg.py +53 -0
  226. ngsolve/demos/howto/mixed.py +30 -0
  227. ngsolve/demos/howto/nonlin.py +29 -0
  228. ngsolve/demos/howto/pickling.py +26 -0
  229. ngsolve/demos/howto/pml.py +31 -0
  230. ngsolve/demos/howto/taskmanager.py +20 -0
  231. ngsolve/demos/howto/tdnns.py +47 -0
  232. ngsolve/demos/howto/timeDG-skeleton.py +45 -0
  233. ngsolve/demos/howto/timeDG.py +38 -0
  234. ngsolve/demos/howto/timeDGlap.py +42 -0
  235. ngsolve/demos/howto/timeDGwave.py +61 -0
  236. ngsolve/demos/intro/__init__.py +0 -0
  237. ngsolve/demos/intro/adaptive.py +123 -0
  238. ngsolve/demos/intro/cmagnet.py +59 -0
  239. ngsolve/demos/intro/elasticity.py +76 -0
  240. ngsolve/demos/intro/navierstokes.py +74 -0
  241. ngsolve/demos/intro/poisson.ipynb +170 -0
  242. ngsolve/demos/intro/poisson.py +41 -0
  243. ngsolve/demos/mpi/__init__.py +0 -0
  244. ngsolve/demos/mpi/mpi_cmagnet.py +87 -0
  245. ngsolve/demos/mpi/mpi_navierstokes.py +117 -0
  246. ngsolve/demos/mpi/mpi_poisson.py +89 -0
  247. ngsolve/demos/mpi/mpi_timeDG.py +82 -0
  248. ngsolve/directsolvers.py +26 -0
  249. ngsolve/directsolvers.pyi +15 -0
  250. ngsolve/eigenvalues.py +364 -0
  251. ngsolve/eigenvalues.pyi +30 -0
  252. ngsolve/fem.pyi +1647 -0
  253. ngsolve/internal.py +89 -0
  254. ngsolve/krylovspace.py +1013 -0
  255. ngsolve/krylovspace.pyi +298 -0
  256. ngsolve/la.pyi +1230 -0
  257. ngsolve/meshes.py +748 -0
  258. ngsolve/ngs2petsc.py +310 -0
  259. ngsolve/ngscxx.py +42 -0
  260. ngsolve/ngslib.so +0 -0
  261. ngsolve/ngstd.pyi +59 -0
  262. ngsolve/nonlinearsolvers.py +203 -0
  263. ngsolve/nonlinearsolvers.pyi +95 -0
  264. ngsolve/preconditioners.py +11 -0
  265. ngsolve/preconditioners.pyi +7 -0
  266. ngsolve/solve.pyi +109 -0
  267. ngsolve/solve_implementation.py +168 -0
  268. ngsolve/solve_implementation.pyi +42 -0
  269. ngsolve/solvers.py +7 -0
  270. ngsolve/solvers.pyi +14 -0
  271. ngsolve/timestepping.py +185 -0
  272. ngsolve/timestepping.pyi +28 -0
  273. ngsolve/timing.py +108 -0
  274. ngsolve/timing.pyi +54 -0
  275. ngsolve/utils.py +167 -0
  276. ngsolve/utils.pyi +273 -0
  277. ngsolve/webgui.py +670 -0
  278. ngsolve-6.2.2506.post74.dev0.data/data/Netgen.icns +0 -0
  279. ngsolve-6.2.2506.post74.dev0.data/data/bin/ngscxx +17 -0
  280. ngsolve-6.2.2506.post74.dev0.data/data/bin/ngsld +13 -0
  281. ngsolve-6.2.2506.post74.dev0.data/data/bin/ngsolve.tcl +648 -0
  282. ngsolve-6.2.2506.post74.dev0.data/data/bin/ngspy +2 -0
  283. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.geo +17 -0
  284. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.vol +240 -0
  285. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.in2d +41 -0
  286. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.vol +614 -0
  287. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.geo +12 -0
  288. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.vol +2560 -0
  289. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.geo +24 -0
  290. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.vol +3179 -0
  291. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.geo +19 -0
  292. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.vol +1832 -0
  293. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde +50 -0
  294. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde +40 -0
  295. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d1_square.pde +43 -0
  296. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d2_chip.pde +35 -0
  297. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d3_helmholtz.pde +22 -0
  298. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d4_cube.pde +46 -0
  299. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d5_beam.pde +74 -0
  300. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d6_shaft.pde +73 -0
  301. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d7_coil.pde +50 -0
  302. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d8_coilshield.pde +49 -0
  303. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d9_hybridDG.pde +72 -0
  304. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.in2d +27 -0
  305. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.vol +737 -0
  306. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
  307. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.geo +73 -0
  308. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.vol +4291 -0
  309. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.in2d +17 -0
  310. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.vol +149 -0
  311. ngsolve-6.2.2506.post74.dev0.dist-info/METADATA +13 -0
  312. ngsolve-6.2.2506.post74.dev0.dist-info/RECORD +315 -0
  313. ngsolve-6.2.2506.post74.dev0.dist-info/WHEEL +5 -0
  314. ngsolve-6.2.2506.post74.dev0.dist-info/licenses/LICENSE +504 -0
  315. ngsolve-6.2.2506.post74.dev0.dist-info/top_level.txt +2 -0
ngsolve/comp/pml.pyi ADDED
@@ -0,0 +1,89 @@
1
+ """
2
+ module for perfectly matched layers
3
+ """
4
+ from __future__ import annotations
5
+ import ngsolve.bla
6
+ import ngsolve.fem
7
+ import typing
8
+ __all__: list[str] = ['BrickRadial', 'Cartesian', 'Compound', 'Custom', 'HalfSpace', 'PML', 'Radial']
9
+ class PML:
10
+ """
11
+ Base PML object
12
+
13
+ can only be created by generator functions. Use PML(x, [y, z]) to evaluate the scaling.
14
+ """
15
+ @staticmethod
16
+ def __call__(*args) -> ngsolve.bla.VectorC:
17
+ """
18
+ map a point
19
+ """
20
+ @staticmethod
21
+ def call_jacobian(*args) -> ngsolve.bla.MatrixC:
22
+ """
23
+ evaluate PML jacobian at point x, [y, z]
24
+ """
25
+ def __add__(self, pml: PML) -> PML:
26
+ ...
27
+ def __str__(self) -> str:
28
+ ...
29
+ @property
30
+ def Det_CF(self) -> ngsolve.fem.CoefficientFunction:
31
+ """
32
+ the determinant of the jacobian as coefficient function
33
+ """
34
+ @property
35
+ def JacInv_CF(self) -> ngsolve.fem.CoefficientFunction:
36
+ """
37
+ the inverse of the jacobian as coefficient function
38
+ """
39
+ @property
40
+ def Jac_CF(self) -> ngsolve.fem.CoefficientFunction:
41
+ """
42
+ the jacobian of the PML as coefficient function
43
+ """
44
+ @property
45
+ def PML_CF(self) -> ngsolve.fem.CoefficientFunction:
46
+ """
47
+ the scaling as coefficient function
48
+ """
49
+ @property
50
+ def dim(self) -> int:
51
+ """
52
+ dimension
53
+ """
54
+ def BrickRadial(mins: typing.Any, maxs: typing.Any, origin: typing.Any = (0.0, 0.0, 0.0), alpha: complex = 1j) -> PML:
55
+ """
56
+ radial pml on a brick
57
+
58
+ mins, maxs and origin are given as tuples/lists
59
+ """
60
+ def Cartesian(mins: typing.Any, maxs: typing.Any, alpha: complex = 1j) -> PML:
61
+ """
62
+ cartesian pml transformation
63
+
64
+ mins and maxs are tuples/lists determining the dimension
65
+ """
66
+ def Compound(pml1: PML, pml2: PML, dims1: typing.Any = None, dims2: typing.Any = None) -> PML:
67
+ """
68
+ tensor product of two pml transformations
69
+
70
+ dimensions are optional, given as tuples/lists and start with 1
71
+ """
72
+ def Custom(trafo: ngsolve.fem.CoefficientFunction, jac: ngsolve.fem.CoefficientFunction) -> PML:
73
+ """
74
+ custom pml transformation
75
+
76
+ trafo and jac are coefficient functions of the scaling and the jacobian
77
+ """
78
+ def HalfSpace(point: typing.Any, normal: typing.Any, alpha: complex = 1j) -> PML:
79
+ """
80
+ half space pml
81
+
82
+ scales orthogonal to specified plane in direction of normal point and normal are given as tuples/lists determining the dimension
83
+ """
84
+ def Radial(origin: typing.Any, rad: typing.SupportsFloat = 1, alpha: complex = 1j) -> PML:
85
+ """
86
+ radial pml transformation
87
+
88
+ origin is a list/tuple with as many entries as dimenson
89
+ """
@@ -0,0 +1 @@
1
+ from .config import *
@@ -0,0 +1,43 @@
1
+ from __future__ import annotations
2
+ from ngsolve.config.config import get_cmake_dir
3
+ from . import config
4
+ __all__: list[str] = ['BUILD_STUB_FILES', 'BUILD_UMFPACK', 'CMAKE_CUDA_COMPILER', 'CMAKE_CXX_COMPILER', 'CMAKE_CXX_COMPILER_LAUNCHER', 'CMAKE_C_COMPILER', 'CMAKE_INSTALL_PREFIX', 'CMAKE_LINKER', 'ENABLE_UNIT_TESTS', 'INSTALL_DEPENDENCIES', 'MKL_LINK', 'NETGEN_DIR', 'NGSOLVE_COMPILE_DEFINITIONS', 'NGSOLVE_COMPILE_DEFINITIONS_PRIVATE', 'NGSOLVE_COMPILE_INCLUDE_DIRS', 'NGSOLVE_COMPILE_OPTIONS', 'NGSOLVE_INSTALL_DIR_BIN', 'NGSOLVE_INSTALL_DIR_CMAKE', 'NGSOLVE_INSTALL_DIR_INCLUDE', 'NGSOLVE_INSTALL_DIR_LIB', 'NGSOLVE_INSTALL_DIR_PYTHON', 'NGSOLVE_INSTALL_DIR_RES', 'NGSOLVE_VERSION', 'NGSOLVE_VERSION_GIT', 'NGSOLVE_VERSION_HASH', 'NGSOLVE_VERSION_MAJOR', 'NGSOLVE_VERSION_MINOR', 'NGSOLVE_VERSION_PATCH', 'NGSOLVE_VERSION_PYTHON', 'NGSOLVE_VERSION_TWEAK', 'USE_CCACHE', 'USE_HYPRE', 'USE_LAPACK', 'USE_MKL', 'USE_MUMPS', 'USE_PARDISO', 'USE_UMFPACK', 'config', 'get_cmake_dir', 'is_python_package', 'version']
5
+ BUILD_STUB_FILES: bool = True
6
+ BUILD_UMFPACK: bool = False
7
+ CMAKE_CUDA_COMPILER: str = ''
8
+ CMAKE_CXX_COMPILER: str = '/Library/Developer/CommandLineTools/usr/bin/c++'
9
+ CMAKE_CXX_COMPILER_LAUNCHER: str = '/usr/local/bin/ccache'
10
+ CMAKE_C_COMPILER: str = '/Library/Developer/CommandLineTools/usr/bin/cc'
11
+ CMAKE_INSTALL_PREFIX: str = '/Users/gitlab-runner/builds/builds/rL7WHzyj/0/ngsolve/ngsolve/_skbuild/macosx-10.15-universal2-3.14/cmake-install'
12
+ CMAKE_LINKER: str = '/Library/Developer/CommandLineTools/usr/bin/ld'
13
+ ENABLE_UNIT_TESTS: bool = False
14
+ INSTALL_DEPENDENCIES: bool = False
15
+ MKL_LINK: str = ''
16
+ NETGEN_DIR: str = '/Users/gitlab-runner/Library/Python/3.14/lib/python/site-packages'
17
+ NGSOLVE_COMPILE_DEFINITIONS: str = 'HAVE_NETGEN_SOURCES;HAVE_DLFCN_H;HAVE_CXA_DEMANGLE;USE_TIMEOFDAY;MSG_NOSIGNAL=0;TCL;LAPACK;NGS_PYTHON;USE_UMFPACK'
18
+ NGSOLVE_COMPILE_DEFINITIONS_PRIVATE: str = ''
19
+ NGSOLVE_COMPILE_INCLUDE_DIRS: str = ''
20
+ NGSOLVE_COMPILE_OPTIONS: str = '$<$<COMPILE_LANGUAGE:CXX>:-std=c++17>;$<$<COMPILE_LANGUAGE:CXX>:-Wno-undefined-var-template;-Wno-vla-extension>;-DMAX_SYS_DIM=3'
21
+ NGSOLVE_INSTALL_DIR_BIN: str = 'bin'
22
+ NGSOLVE_INSTALL_DIR_CMAKE: str = 'ngsolve/cmake'
23
+ NGSOLVE_INSTALL_DIR_INCLUDE: str = 'netgen/include'
24
+ NGSOLVE_INSTALL_DIR_LIB: str = 'netgen'
25
+ NGSOLVE_INSTALL_DIR_PYTHON: str = '.'
26
+ NGSOLVE_INSTALL_DIR_RES: str = 'share'
27
+ NGSOLVE_VERSION: str = '6.2.2506-74-gd430159c1'
28
+ NGSOLVE_VERSION_GIT: str = 'v6.2.2506-74-gd430159c1'
29
+ NGSOLVE_VERSION_HASH: str = 'gd430159c1'
30
+ NGSOLVE_VERSION_MAJOR: str = '6'
31
+ NGSOLVE_VERSION_MINOR: str = '2'
32
+ NGSOLVE_VERSION_PATCH: str = '2506'
33
+ NGSOLVE_VERSION_PYTHON: str = '6.2.2506.post74.dev0'
34
+ NGSOLVE_VERSION_TWEAK: str = '74'
35
+ USE_CCACHE: bool = True
36
+ USE_HYPRE: bool = False
37
+ USE_LAPACK: bool = True
38
+ USE_MKL: bool = False
39
+ USE_MUMPS: bool = False
40
+ USE_PARDISO: bool = False
41
+ USE_UMFPACK: bool = True
42
+ is_python_package: bool = True
43
+ version: str = 'v6.2.2506-74-gd430159c1'
@@ -0,0 +1,4 @@
1
+ from .config import get_cmake_dir
2
+
3
+ if __name__ == '__main__':
4
+ print(get_cmake_dir())
@@ -0,0 +1,60 @@
1
+ def _cmake_to_bool(s):
2
+ return s.upper() not in ['', '0','FALSE','OFF','N','NO','IGNORE','NOTFOUND']
3
+
4
+ is_python_package = _cmake_to_bool("TRUE")
5
+
6
+ BUILD_STUB_FILES = _cmake_to_bool("ON")
7
+ BUILD_UMFPACK = _cmake_to_bool("")
8
+ ENABLE_UNIT_TESTS = _cmake_to_bool("OFF")
9
+ INSTALL_DEPENDENCIES = _cmake_to_bool("OFF")
10
+ USE_CCACHE = _cmake_to_bool("ON")
11
+ USE_HYPRE = _cmake_to_bool("OFF")
12
+ USE_LAPACK = _cmake_to_bool("ON")
13
+ USE_MKL = _cmake_to_bool("OFF")
14
+ USE_MUMPS = _cmake_to_bool("OFF")
15
+ USE_PARDISO = _cmake_to_bool("OFF")
16
+ USE_UMFPACK = _cmake_to_bool("ON")
17
+
18
+ NETGEN_DIR = "/Users/gitlab-runner/Library/Python/3.14/lib/python/site-packages"
19
+
20
+ NGSOLVE_COMPILE_DEFINITIONS = "HAVE_NETGEN_SOURCES;HAVE_DLFCN_H;HAVE_CXA_DEMANGLE;USE_TIMEOFDAY;MSG_NOSIGNAL=0;TCL;LAPACK;NGS_PYTHON;USE_UMFPACK"
21
+ NGSOLVE_COMPILE_DEFINITIONS_PRIVATE = ""
22
+ NGSOLVE_COMPILE_INCLUDE_DIRS = ""
23
+ NGSOLVE_COMPILE_OPTIONS = "$<$<COMPILE_LANGUAGE:CXX>:-std=c++17>;$<$<COMPILE_LANGUAGE:CXX>:-Wno-undefined-var-template;-Wno-vla-extension>;-DMAX_SYS_DIM=3"
24
+
25
+ NGSOLVE_INSTALL_DIR_PYTHON = "."
26
+ NGSOLVE_INSTALL_DIR_BIN = "bin"
27
+ NGSOLVE_INSTALL_DIR_LIB = "netgen"
28
+ NGSOLVE_INSTALL_DIR_INCLUDE = "netgen/include"
29
+ NGSOLVE_INSTALL_DIR_CMAKE = "ngsolve/cmake"
30
+ NGSOLVE_INSTALL_DIR_RES = "share"
31
+
32
+ NGSOLVE_VERSION = "6.2.2506-74-gd430159c1"
33
+ NGSOLVE_VERSION_GIT = "v6.2.2506-74-gd430159c1"
34
+ NGSOLVE_VERSION_PYTHON = "6.2.2506.post74.dev0"
35
+
36
+ NGSOLVE_VERSION_MAJOR = "6"
37
+ NGSOLVE_VERSION_MINOR = "2"
38
+ NGSOLVE_VERSION_TWEAK = "74"
39
+ NGSOLVE_VERSION_PATCH = "2506"
40
+ NGSOLVE_VERSION_HASH = "gd430159c1"
41
+
42
+ CMAKE_CXX_COMPILER = "/Library/Developer/CommandLineTools/usr/bin/c++"
43
+ CMAKE_CUDA_COMPILER = ""
44
+ CMAKE_C_COMPILER = "/Library/Developer/CommandLineTools/usr/bin/cc"
45
+ CMAKE_LINKER = "/Library/Developer/CommandLineTools/usr/bin/ld"
46
+ CMAKE_INSTALL_PREFIX = "/Users/gitlab-runner/builds/builds/rL7WHzyj/0/ngsolve/ngsolve/_skbuild/macosx-10.15-universal2-3.14/cmake-install"
47
+ CMAKE_CXX_COMPILER_LAUNCHER = "/usr/local/bin/ccache"
48
+
49
+ version = NGSOLVE_VERSION_GIT
50
+
51
+ MKL_LINK = ""
52
+
53
+ def get_cmake_dir():
54
+ import os.path as p
55
+ d_python = p.dirname(p.dirname(p.dirname(__file__)))
56
+ py_to_cmake = p.relpath(
57
+ NGSOLVE_INSTALL_DIR_CMAKE,
58
+ NGSOLVE_INSTALL_DIR_PYTHON
59
+ )
60
+ return p.normpath(p.join(d_python,py_to_cmake))
@@ -0,0 +1,45 @@
1
+ from __future__ import annotations
2
+ __all__: list[str] = ['BUILD_STUB_FILES', 'BUILD_UMFPACK', 'CMAKE_CUDA_COMPILER', 'CMAKE_CXX_COMPILER', 'CMAKE_CXX_COMPILER_LAUNCHER', 'CMAKE_C_COMPILER', 'CMAKE_INSTALL_PREFIX', 'CMAKE_LINKER', 'ENABLE_UNIT_TESTS', 'INSTALL_DEPENDENCIES', 'MKL_LINK', 'NETGEN_DIR', 'NGSOLVE_COMPILE_DEFINITIONS', 'NGSOLVE_COMPILE_DEFINITIONS_PRIVATE', 'NGSOLVE_COMPILE_INCLUDE_DIRS', 'NGSOLVE_COMPILE_OPTIONS', 'NGSOLVE_INSTALL_DIR_BIN', 'NGSOLVE_INSTALL_DIR_CMAKE', 'NGSOLVE_INSTALL_DIR_INCLUDE', 'NGSOLVE_INSTALL_DIR_LIB', 'NGSOLVE_INSTALL_DIR_PYTHON', 'NGSOLVE_INSTALL_DIR_RES', 'NGSOLVE_VERSION', 'NGSOLVE_VERSION_GIT', 'NGSOLVE_VERSION_HASH', 'NGSOLVE_VERSION_MAJOR', 'NGSOLVE_VERSION_MINOR', 'NGSOLVE_VERSION_PATCH', 'NGSOLVE_VERSION_PYTHON', 'NGSOLVE_VERSION_TWEAK', 'USE_CCACHE', 'USE_HYPRE', 'USE_LAPACK', 'USE_MKL', 'USE_MUMPS', 'USE_PARDISO', 'USE_UMFPACK', 'get_cmake_dir', 'is_python_package', 'version']
3
+ def _cmake_to_bool(s):
4
+ ...
5
+ def get_cmake_dir():
6
+ ...
7
+ BUILD_STUB_FILES: bool = True
8
+ BUILD_UMFPACK: bool = False
9
+ CMAKE_CUDA_COMPILER: str = ''
10
+ CMAKE_CXX_COMPILER: str = '/Library/Developer/CommandLineTools/usr/bin/c++'
11
+ CMAKE_CXX_COMPILER_LAUNCHER: str = '/usr/local/bin/ccache'
12
+ CMAKE_C_COMPILER: str = '/Library/Developer/CommandLineTools/usr/bin/cc'
13
+ CMAKE_INSTALL_PREFIX: str = '/Users/gitlab-runner/builds/builds/rL7WHzyj/0/ngsolve/ngsolve/_skbuild/macosx-10.15-universal2-3.14/cmake-install'
14
+ CMAKE_LINKER: str = '/Library/Developer/CommandLineTools/usr/bin/ld'
15
+ ENABLE_UNIT_TESTS: bool = False
16
+ INSTALL_DEPENDENCIES: bool = False
17
+ MKL_LINK: str = ''
18
+ NETGEN_DIR: str = '/Users/gitlab-runner/Library/Python/3.14/lib/python/site-packages'
19
+ NGSOLVE_COMPILE_DEFINITIONS: str = 'HAVE_NETGEN_SOURCES;HAVE_DLFCN_H;HAVE_CXA_DEMANGLE;USE_TIMEOFDAY;MSG_NOSIGNAL=0;TCL;LAPACK;NGS_PYTHON;USE_UMFPACK'
20
+ NGSOLVE_COMPILE_DEFINITIONS_PRIVATE: str = ''
21
+ NGSOLVE_COMPILE_INCLUDE_DIRS: str = ''
22
+ NGSOLVE_COMPILE_OPTIONS: str = '$<$<COMPILE_LANGUAGE:CXX>:-std=c++17>;$<$<COMPILE_LANGUAGE:CXX>:-Wno-undefined-var-template;-Wno-vla-extension>;-DMAX_SYS_DIM=3'
23
+ NGSOLVE_INSTALL_DIR_BIN: str = 'bin'
24
+ NGSOLVE_INSTALL_DIR_CMAKE: str = 'ngsolve/cmake'
25
+ NGSOLVE_INSTALL_DIR_INCLUDE: str = 'netgen/include'
26
+ NGSOLVE_INSTALL_DIR_LIB: str = 'netgen'
27
+ NGSOLVE_INSTALL_DIR_PYTHON: str = '.'
28
+ NGSOLVE_INSTALL_DIR_RES: str = 'share'
29
+ NGSOLVE_VERSION: str = '6.2.2506-74-gd430159c1'
30
+ NGSOLVE_VERSION_GIT: str = 'v6.2.2506-74-gd430159c1'
31
+ NGSOLVE_VERSION_HASH: str = 'gd430159c1'
32
+ NGSOLVE_VERSION_MAJOR: str = '6'
33
+ NGSOLVE_VERSION_MINOR: str = '2'
34
+ NGSOLVE_VERSION_PATCH: str = '2506'
35
+ NGSOLVE_VERSION_PYTHON: str = '6.2.2506.post74.dev0'
36
+ NGSOLVE_VERSION_TWEAK: str = '74'
37
+ USE_CCACHE: bool = True
38
+ USE_HYPRE: bool = False
39
+ USE_LAPACK: bool = True
40
+ USE_MKL: bool = False
41
+ USE_MUMPS: bool = False
42
+ USE_PARDISO: bool = False
43
+ USE_UMFPACK: bool = True
44
+ is_python_package: bool = True
45
+ version: str = 'v6.2.2506-74-gd430159c1'
File without changes
@@ -0,0 +1,80 @@
1
+ from ngsolve.TensorProductTools import *
2
+ from ngsolve.comp import *
3
+ from ngsolve import *
4
+ import netgen.gui
5
+
6
+ mesh1 = Mesh(SegMesh(20,0,1,periodic=True) )
7
+ mesh2 = Mesh(SegMesh(20,0,1,periodic=True) )
8
+
9
+ tpmesh = Mesh(MakeTensorProductMesh(mesh1,mesh2))
10
+ Draw(tpmesh)
11
+
12
+ n=5
13
+ m=5
14
+
15
+ fesx = L2(mesh1,order=n)
16
+ fesy = L2(mesh2,order=m)
17
+
18
+ tpfes = TensorProductFESpace([fesx,fesy])
19
+
20
+ fes = L2(tpmesh,order=n)
21
+ u = tpfes.TrialFunction()
22
+ v = tpfes.TestFunction()
23
+ vx = v.Operator("gradx")
24
+ vy = v.Operator("grady")
25
+ b = (-1)*CoefficientFunction( (0.25,0.5) )
26
+
27
+
28
+ uin = ProlongateCoefficientFunction(IfPos((1.0-x)*(x-0.5),sin((x-0.5)*2*3.14159),0) + IfPos((x-0.0)*(0.5-x),sin((x)*2*3.14159),0) , 0 , tpfes)
29
+
30
+ gradv = CoefficientFunction((vx,vy))
31
+
32
+ a = BilinearForm(tpfes)
33
+
34
+ n = CoefficientFunction((ProlongateCoefficientFunction(specialcf.normal(1),1,tpfes),ProlongateCoefficientFunction(specialcf.normal(1),0,tpfes)))
35
+ bn = b*n
36
+
37
+ a += SymbolicTPBFI ( (-u * b*gradv).Compile() )
38
+ a += SymbolicTPBFI ( (bn) *IfPos(bn, u, u.Other( )) * (v-v.Other()).Compile(), VOL, skeleton=True)
39
+ a += SymbolicTPBFI ( (bn) *IfPos(bn, u, u.Other(bnd = CoefficientFunction(uin) )) * (v).Compile(), BND, skeleton=True)
40
+
41
+
42
+
43
+ u = GridFunction(tpfes)
44
+ v = GridFunction(tpfes)
45
+
46
+ uu = GridFunction(fes)
47
+ print("Setting")
48
+ u.Set(exp( ProlongateCoefficientFunction(-200*(x-0.4)*(x-0.4), 1, tpfes)+ ProlongateCoefficientFunction(-200*(x-0.4)*(x-0.4),0,tpfes) ) )
49
+ print("Done")
50
+ Transfer2StdMesh(u,uu)
51
+
52
+ Draw(uu,sd=2,autoscale=False)
53
+
54
+ h = u.vec.CreateVector()
55
+ #u.vec[:] = 1.0
56
+ print('To start the simulation type Run(n_steps)!')
57
+
58
+ def Step():
59
+ a.Apply(u.vec,v.vec)
60
+ h.data = 0.00125*v.vec.data
61
+ tpfes.SolveM(rho=CoefficientFunction(1), vec = h)
62
+ u.vec.data-=h.data
63
+ #Redraw()
64
+
65
+ def Run(nsteps):
66
+ count = 0
67
+ with TaskManager():
68
+ for i in range(nsteps):
69
+ print("Step ",i+1, "/",nsteps)
70
+ Step()
71
+ count += 1
72
+ if count % 1 == 0:
73
+ Transfer2StdMesh(u,uu)
74
+ count = 0
75
+ Redraw()
76
+
77
+ Transfer2StdMesh(u,uu)
78
+ Run(100)
79
+ for t in Timers():
80
+ print(t["counts"], t["time"], t["name"])
@@ -0,0 +1,73 @@
1
+ from ngsolve.TensorProductTools import *
2
+ from ngsolve.comp import *
3
+ from ngsolve import *
4
+ from netgen.geom2d import unit_square
5
+ import netgen.gui
6
+
7
+ mesh1 = Mesh(SegMesh(20,0,1))
8
+ mesh2 = Mesh(unit_square.GenerateMesh(maxh=0.15))
9
+
10
+ tpmesh = Mesh(MakeTensorProductMesh(mesh1,mesh2))
11
+ Draw(tpmesh)
12
+
13
+ n=3
14
+ m=3
15
+
16
+ fesx = L2(mesh1,order=n)
17
+ fesy = L2(mesh2,order=m)
18
+ tpfes = TensorProductFESpace([fesx,fesy])
19
+
20
+ fes = L2(tpmesh,order=n)
21
+
22
+ u = tpfes.TrialFunction()
23
+ v = tpfes.TestFunction()
24
+
25
+ vx = v.Operator("gradx")
26
+ vy = v.Operator("grady")
27
+
28
+ b = CoefficientFunction( (ProlongateCoefficientFunction(x-0.5,0,tpfes),ProlongateCoefficientFunction(0.5-x,1,tpfes),0) )
29
+
30
+ uin = CoefficientFunction(0.0)
31
+
32
+
33
+ gradv = CoefficientFunction((vx,vy))
34
+
35
+ a = BilinearForm(tpfes)
36
+
37
+ n = CoefficientFunction(( ProlongateCoefficientFunction(specialcf.normal(1)[0],1,tpfes),ProlongateCoefficientFunction(specialcf.normal(2)[0],0,tpfes),ProlongateCoefficientFunction(specialcf.normal(2)[1],0,tpfes)))
38
+ bn = b*n
39
+
40
+ a += SymbolicTPBFI ( -u * b*gradv )
41
+ a += SymbolicTPBFI ( (bn) *IfPos(bn, u, u.Other(bnd = uin )) * (v-v.Other(bnd = 0.0)), VOL, skeleton=True)
42
+ a += SymbolicTPBFI ( (bn) *IfPos(bn, u, u.Other(bnd = uin )) * (v), BND, skeleton=True)
43
+
44
+
45
+ u = GridFunction(tpfes)
46
+ v = GridFunction(tpfes)
47
+
48
+
49
+ uu = GridFunction(fes)
50
+
51
+ u.Set(exp(ProlongateCoefficientFunction( -70*(x-0.25)*(x-0.25),1,tpfes) + ProlongateCoefficientFunction(-70*(x-0.25)*(x-0.25)-70*(y-0.75)*(y-0.75),0,tpfes) ))
52
+ Transfer2StdMesh(u,uu)
53
+ Draw(uu,sd=3,autoscale=False)
54
+
55
+ h = u.vec.CreateVector()
56
+ print('To start the simulation type Run(n_steps)!')
57
+ def Step():
58
+ a.Apply(u.vec,v.vec)
59
+ h.data = 0.001*v.vec.data
60
+ tpfes.SolveM(rho=CoefficientFunction(1), vec = h)
61
+ u.vec.data-=h.data
62
+ Transfer2StdMesh(u,uu)
63
+ Redraw()
64
+
65
+ def Run(nsteps):
66
+ with TaskManager():
67
+ for i in range(nsteps):
68
+ print("Step ",i+1, "/",nsteps)
69
+ Step()
70
+
71
+ #Run(100)
72
+ for t in Timers():
73
+ print(t["counts"], t["time"], t["name"])
@@ -0,0 +1,72 @@
1
+ from ngsolve.TensorProductTools import *
2
+ from ngsolve.comp import *
3
+ from ngsolve import *
4
+ from netgen.geom2d import unit_square
5
+ import netgen.gui
6
+
7
+ mesh1 = Mesh(unit_square.GenerateMesh(maxh=0.15))
8
+ mesh2 = Mesh(SegMesh(20,0,1))
9
+
10
+ tpmesh = Mesh(MakeTensorProductMesh(mesh1,mesh2))
11
+ Draw(tpmesh)
12
+
13
+ n=3
14
+ m=3
15
+
16
+ fesx = L2(mesh1,order=n)
17
+ fesy = L2(mesh2,order=m)
18
+ tpfes = TensorProductFESpace([fesx,fesy])
19
+
20
+ fes = L2(tpmesh,order=n)
21
+
22
+ u = tpfes.TrialFunction()
23
+ v = tpfes.TestFunction()
24
+
25
+ vx = v.Operator("gradx")
26
+ vy = v.Operator("grady")
27
+
28
+ b = CoefficientFunction( (0,0,1) )
29
+
30
+ uin = CoefficientFunction(0.0)
31
+
32
+ gradv = CoefficientFunction((vx,vy))
33
+
34
+ a = BilinearForm(tpfes)
35
+
36
+ n = CoefficientFunction((ProlongateCoefficientFunction(specialcf.normal(2)[0],1,tpfes),ProlongateCoefficientFunction(specialcf.normal(2)[1],1,tpfes),ProlongateCoefficientFunction(specialcf.normal(1)[0],0,tpfes)))
37
+ bn = b*n
38
+
39
+ a += SymbolicTPBFI ( -u * b*gradv )
40
+ a += SymbolicTPBFI ( (bn) *IfPos(bn, u, u.Other(bnd = uin )) * (v-v.Other(bnd = 0.0)), VOL, skeleton=True)
41
+ a += SymbolicTPBFI ( (bn) *IfPos(bn, u, u.Other(bnd = uin )) * (v), BND, skeleton=True)
42
+
43
+
44
+ u = GridFunction(tpfes)
45
+ v = GridFunction(tpfes)
46
+
47
+
48
+ uu = GridFunction(fes)
49
+
50
+ u.Set(exp(ProlongateCoefficientFunction(-70*(x-0.125)*(x-0.125)-70*(y-0.125)*(y-0.125),1,tpfes)+ProlongateCoefficientFunction(-70*(x-0.75)*(x-0.75),0,tpfes) ))
51
+ Transfer2StdMesh(u,uu)
52
+ Draw(uu,sd=3,autoscale=False)
53
+
54
+ h = u.vec.CreateVector()
55
+ print('To start the simulation type Run(n_steps)!')
56
+ def Step():
57
+ a.Apply(u.vec,v.vec)
58
+ h.data = 0.001*v.vec.data
59
+ tpfes.SolveM(rho=CoefficientFunction(1), vec = h)
60
+ u.vec.data-=h.data
61
+ Transfer2StdMesh(u,uu)
62
+ Redraw()
63
+
64
+ def Run(nsteps):
65
+ with TaskManager():
66
+ for i in range(nsteps):
67
+ print("Step ",i+1, "/",nsteps)
68
+ Step()
69
+
70
+ Run(100)
71
+ for t in Timers():
72
+ print(t["counts"], t["time"], t["name"])
@@ -0,0 +1,66 @@
1
+ from ngsolve.TensorProductTools import *
2
+ from ngsolve.comp import *
3
+ from ngsolve import *
4
+ from netgen.geom2d import unit_square
5
+ import netgen.gui
6
+
7
+ mesh1 = Mesh(unit_square.GenerateMesh(maxh=0.15))
8
+ mesh2 = Mesh(MakeHexagonalMesh2D(maxh=0.2))
9
+ n=4
10
+ m=4
11
+ SetHeapSize(1000000000)
12
+
13
+ fesx = L2(mesh1,order=n)
14
+ fesy = L2(mesh2,order=m)
15
+ tpfes = TensorProductFESpace([fesx,fesy])
16
+
17
+ u = tpfes.TrialFunction()
18
+ v = tpfes.TestFunction()
19
+
20
+ vx = v.Operator("gradx")
21
+ vy = v.Operator("grady")
22
+
23
+ b = CoefficientFunction( ( ProlongateCoefficientFunction(y-0.5,1,tpfes),ProlongateCoefficientFunction(0.5-x,1,tpfes),1,1 ) )
24
+
25
+ uin = CoefficientFunction(0.0)
26
+
27
+ gradv = CoefficientFunction((vx,vy))
28
+
29
+ a = BilinearForm(tpfes)
30
+
31
+ n = CoefficientFunction((ProlongateCoefficientFunction(specialcf.normal(2)[0],1,tpfes),ProlongateCoefficientFunction(specialcf.normal(2)[1],1,tpfes),ProlongateCoefficientFunction(specialcf.normal(2)[0],0,tpfes),ProlongateCoefficientFunction(specialcf.normal(2)[1],0,tpfes)))
32
+ bn = b*n
33
+
34
+ a += SymbolicTPBFI ( -u * b*gradv )
35
+ a += SymbolicTPBFI ( (bn) *IfPos(bn, u, u.Other(bnd = uin )) * (v-v.Other(bnd = 0.0)), VOL, skeleton=True)
36
+ a += SymbolicTPBFI ( (bn) *IfPos(bn, u, u.Other(bnd = uin )) * (v), BND, skeleton=True)
37
+
38
+
39
+ u = GridFunction(tpfes)
40
+ v = GridFunction(tpfes)
41
+ print(1)
42
+ with TaskManager():
43
+ u.Set(exp(ProlongateCoefficientFunction(-90*(x-0.25)*(x-0.25)-90*(y-0.5)*(y-0.5),1,tpfes)+ProlongateCoefficientFunction(-70*(x-0.75)*(x-0.75)-70*(y-0.75)*(y-0.75),0,tpfes) ))
44
+ print(2)
45
+ rho = GridFunction(fesx,name="rho")
46
+ Draw(rho)
47
+ h = u.vec.CreateVector()
48
+ print('To start the simulation type Run(n_steps)!')
49
+
50
+ def Step():
51
+ a.Apply(u.vec,v.vec)
52
+ h.data = 0.005*v.vec.data
53
+ tpfes.SolveM(rho=CoefficientFunction(1), vec = h)
54
+ u.vec.data-=h.data
55
+ TensorProductIntegrate(u,rho)
56
+ Redraw()
57
+
58
+ def Run(nsteps):
59
+ with TaskManager():
60
+ for i in range(nsteps):
61
+ print("Step ",i+1, "/",nsteps)
62
+ Step()
63
+
64
+ Run(1000)
65
+ for t in Timers():
66
+ print(t["counts"], t["time"], t["name"])
File without changes
File without changes
@@ -0,0 +1,44 @@
1
+ #
2
+ # The Hellan-Herrmann-Johnson method for a Kirchhoff plate
3
+ #
4
+ # M. I. Comodi: The Hellan–Herrmann-Johnson Method
5
+ # Some error estimates and postprocessing. Math. Comp. 52, 17–39, 1989
6
+ #
7
+
8
+ from ngsolve import *
9
+ from netgen.geom2d import unit_square
10
+
11
+ mesh = Mesh (unit_square.GenerateMesh(maxh=0.05))
12
+ order = 3
13
+
14
+ V = HDivDiv(mesh, order=order-1)
15
+ Q = H1(mesh, order=order, dirichlet="left|right|top|bottom")
16
+ X = V*Q
17
+
18
+ print ("ndof-V:", V.ndof, ", ndof-Q:", Q.ndof)
19
+
20
+ sigma, u = X.TrialFunction()
21
+ tau, v = X.TestFunction()
22
+
23
+ n = specialcf.normal(2)
24
+
25
+ def tang(u): return u-(u*n)*n
26
+
27
+ a = BilinearForm(X, symmetric=True)
28
+ a += (InnerProduct (sigma, tau) + div(sigma)*grad(v) + div(tau)*grad(u) - 1e-10*u*v)*dx
29
+ a += (-(sigma*n) * tang(grad(v)) - (tau*n)*tang(grad(u)))*dx(element_boundary=True)
30
+ a.Assemble()
31
+
32
+ f = LinearForm(X)
33
+ f += 1 * v * dx
34
+ # f += Trace(tau.Trace()) * ds("bottom")
35
+ f.Assemble()
36
+
37
+ u = GridFunction(X)
38
+ u.vec.data = a.mat.Inverse(X.FreeDofs()) * f.vec
39
+
40
+ Draw (u.components[0], mesh, name="sigma")
41
+ Draw (u.components[1], mesh, name="disp")
42
+
43
+
44
+
@@ -0,0 +1,53 @@
1
+ from netgen.geom2d import unit_square
2
+ from ngsolve import *
3
+
4
+
5
+ ngsglobals.msg_level = 1
6
+ mesh = Mesh(unit_square.GenerateMesh(maxh=0.4))
7
+ for k in range(5):
8
+ mesh.Refine()
9
+
10
+
11
+ order = 3
12
+ fes1 = L2(mesh, order=order)
13
+ fes2 = FacetFESpace(mesh, order=order, dirichlet="bottom|right|top")
14
+
15
+ print ("element dofs: ", fes1.ndof)
16
+ print ("facet dofs: ", fes2.ndof)
17
+
18
+ fes = fes1*fes2
19
+
20
+ u,uhat = fes.TrialFunction()
21
+ v,vhat = fes.TestFunction()
22
+
23
+ n = specialcf.normal(mesh.dim)
24
+ h = specialcf.mesh_size
25
+
26
+ a = BilinearForm(fes, symmetric=True, condense = True)
27
+ a += grad(u) * grad(v) * dx
28
+ a += (grad(u)*n*(vhat-v)+grad(v)*n*(uhat-u)+10*order*order/h*(u-uhat)*(v-vhat))*dx(element_boundary=True)
29
+
30
+ c = Preconditioner(type="direct", bf=a, inverse = "sparsecholesky")
31
+ # c = Preconditioner(type="bddc", bf=a)
32
+
33
+ with TaskManager():
34
+ a.Assemble()
35
+ ainv = CGSolver(a.mat, c.mat)
36
+
37
+ f = LinearForm(fes)
38
+ f += 1*v*dx
39
+ f.Assemble()
40
+
41
+ u = GridFunction(fes)
42
+
43
+
44
+ f.vec.data += a.harmonic_extension_trans * f.vec
45
+
46
+ u.vec.data = ainv * f.vec
47
+
48
+ u.vec.data += a.harmonic_extension * u.vec
49
+ u.vec.data += a.inner_solve * f.vec
50
+
51
+ Draw (u.components[0], mesh, "sol")
52
+
53
+
@@ -0,0 +1,30 @@
1
+ from netgen.geom2d import unit_square
2
+ from ngsolve import *
3
+
4
+ ngsglobals.msg_level = 1
5
+
6
+ mesh = Mesh(unit_square.GenerateMesh(maxh=0.1))
7
+
8
+ order = 2
9
+ fes1 = HDiv(mesh, order=order)
10
+ fes2 = L2(mesh, order=order-1)
11
+
12
+ fes = fes1*fes2
13
+
14
+ sigma,u = fes.TrialFunction()
15
+ tau,v = fes.TestFunction()
16
+
17
+ a = BilinearForm(fes)
18
+ a += (sigma*tau + div(sigma)*v + div(tau)*u - 1e-10*u*v)*dx
19
+ # (regularization needed for direct solver)
20
+ a.Assemble()
21
+
22
+ f = LinearForm(fes)
23
+ f += -v*dx
24
+ f.Assemble()
25
+
26
+ u = GridFunction(fes)
27
+ u.vec.data = a.mat.Inverse(fes.FreeDofs()) * f.vec
28
+
29
+ Draw (u.components[0], mesh, "flux")
30
+ Draw (u.components[1], mesh, "sol")