ngsolve 6.2.2506.post74.dev0__cp314-cp314-win_amd64.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 (288) 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/lib/libngsolve.lib +0 -0
  192. netgen/libngsolve.dll +0 -0
  193. netgen/ngscxx.bat +4 -0
  194. netgen/ngsld.bat +6 -0
  195. ngsolve/TensorProductTools.py +210 -0
  196. ngsolve/__console.py +94 -0
  197. ngsolve/__expr.py +181 -0
  198. ngsolve/__init__.py +148 -0
  199. ngsolve/_scikit_build_core_dependencies.py +30 -0
  200. ngsolve/bvp.py +78 -0
  201. ngsolve/cmake/NGSolveConfig.cmake +102 -0
  202. ngsolve/cmake/ngsolve-targets-release.cmake +19 -0
  203. ngsolve/cmake/ngsolve-targets.cmake +164 -0
  204. ngsolve/config/__init__.py +1 -0
  205. ngsolve/config/__main__.py +4 -0
  206. ngsolve/config/config.py +60 -0
  207. ngsolve/demos/TensorProduct/__init__.py +0 -0
  208. ngsolve/demos/TensorProduct/tp_dg_1d_1d.py +80 -0
  209. ngsolve/demos/TensorProduct/tp_dg_1d_2d.py +73 -0
  210. ngsolve/demos/TensorProduct/tp_dg_2d_1d.py +72 -0
  211. ngsolve/demos/TensorProduct/tp_dg_2d_2d.py +66 -0
  212. ngsolve/demos/__init__.py +0 -0
  213. ngsolve/demos/howto/__init__.py +0 -0
  214. ngsolve/demos/howto/hhj.py +44 -0
  215. ngsolve/demos/howto/hybrid_dg.py +53 -0
  216. ngsolve/demos/howto/mixed.py +30 -0
  217. ngsolve/demos/howto/nonlin.py +29 -0
  218. ngsolve/demos/howto/pickling.py +26 -0
  219. ngsolve/demos/howto/pml.py +31 -0
  220. ngsolve/demos/howto/taskmanager.py +20 -0
  221. ngsolve/demos/howto/tdnns.py +47 -0
  222. ngsolve/demos/howto/timeDG-skeleton.py +45 -0
  223. ngsolve/demos/howto/timeDG.py +38 -0
  224. ngsolve/demos/howto/timeDGlap.py +42 -0
  225. ngsolve/demos/howto/timeDGwave.py +61 -0
  226. ngsolve/demos/intro/__init__.py +0 -0
  227. ngsolve/demos/intro/adaptive.py +123 -0
  228. ngsolve/demos/intro/cmagnet.py +59 -0
  229. ngsolve/demos/intro/elasticity.py +76 -0
  230. ngsolve/demos/intro/navierstokes.py +74 -0
  231. ngsolve/demos/intro/poisson.ipynb +170 -0
  232. ngsolve/demos/intro/poisson.py +41 -0
  233. ngsolve/demos/mpi/__init__.py +0 -0
  234. ngsolve/demos/mpi/mpi_cmagnet.py +87 -0
  235. ngsolve/demos/mpi/mpi_navierstokes.py +117 -0
  236. ngsolve/demos/mpi/mpi_poisson.py +89 -0
  237. ngsolve/demos/mpi/mpi_timeDG.py +82 -0
  238. ngsolve/directsolvers.py +26 -0
  239. ngsolve/eigenvalues.py +364 -0
  240. ngsolve/internal.py +89 -0
  241. ngsolve/krylovspace.py +1013 -0
  242. ngsolve/meshes.py +748 -0
  243. ngsolve/ngs2petsc.py +310 -0
  244. ngsolve/ngscxx.py +42 -0
  245. ngsolve/ngslib.lib +0 -0
  246. ngsolve/ngslib.pyd +0 -0
  247. ngsolve/nonlinearsolvers.py +203 -0
  248. ngsolve/preconditioners.py +11 -0
  249. ngsolve/solve_implementation.py +168 -0
  250. ngsolve/solvers.py +7 -0
  251. ngsolve/timestepping.py +185 -0
  252. ngsolve/timing.py +108 -0
  253. ngsolve/utils.py +167 -0
  254. ngsolve/webgui.py +670 -0
  255. ngsolve-6.2.2506.post74.dev0.data/data/Scripts/ngsolve.tcl +648 -0
  256. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.geo +17 -0
  257. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.vol +240 -0
  258. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.in2d +41 -0
  259. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.vol +614 -0
  260. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.geo +12 -0
  261. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.vol +2560 -0
  262. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.geo +24 -0
  263. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.vol +3179 -0
  264. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.geo +19 -0
  265. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.vol +1832 -0
  266. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde +50 -0
  267. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde +40 -0
  268. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d1_square.pde +43 -0
  269. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d2_chip.pde +35 -0
  270. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d3_helmholtz.pde +22 -0
  271. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d4_cube.pde +46 -0
  272. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d5_beam.pde +74 -0
  273. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d6_shaft.pde +73 -0
  274. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d7_coil.pde +50 -0
  275. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d8_coilshield.pde +49 -0
  276. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d9_hybridDG.pde +72 -0
  277. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.in2d +27 -0
  278. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.vol +737 -0
  279. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
  280. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.geo +73 -0
  281. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.vol +4291 -0
  282. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.in2d +17 -0
  283. ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.vol +149 -0
  284. ngsolve-6.2.2506.post74.dev0.dist-info/METADATA +14 -0
  285. ngsolve-6.2.2506.post74.dev0.dist-info/RECORD +288 -0
  286. ngsolve-6.2.2506.post74.dev0.dist-info/WHEEL +5 -0
  287. ngsolve-6.2.2506.post74.dev0.dist-info/licenses/LICENSE +504 -0
  288. ngsolve-6.2.2506.post74.dev0.dist-info/top_level.txt +2 -0
ngsolve/bvp.py ADDED
@@ -0,0 +1,78 @@
1
+
2
+ def BVP(bf, lf, gf, \
3
+ pre=None, pre_flags={}, \
4
+ solver=None, solver_flags={},
5
+ maxsteps=200, tol=1e-8, print=True, inverse="umfpack",
6
+ needsassembling=True):
7
+ """
8
+ Solve a linear boundary value problem A(u,v) = f(v)
9
+
10
+ Parameters
11
+ ----------
12
+
13
+ bf : BilinearForm
14
+ provides the matrix.
15
+
16
+ lf : LinearForm
17
+ provides the right hand side.
18
+
19
+ gf : GridFunction
20
+ provides the solution vector
21
+
22
+ pre : Basematrix or class or string = None
23
+ used if an iterative solver is used
24
+ can be one of
25
+ * a preconditioner object
26
+ * a preconditioner class
27
+ * a preconditioner class name
28
+
29
+ pre_flags : dictionary = { }
30
+ flags used to create preconditioner
31
+
32
+
33
+ """
34
+ from ngsolve import Projector, Preconditioner
35
+ from ngsolve.krylovspace import CG
36
+
37
+
38
+ if isinstance(pre,type):
39
+ pre = pre(bf, **pre_flags)
40
+ if not needsassembling:
41
+ pre.Update()
42
+
43
+ if isinstance(pre,str):
44
+ pre = Preconditioner(bf, pre, **pre_flags)
45
+ if not needsassembling:
46
+ pre.Update()
47
+
48
+
49
+ if needsassembling:
50
+ bf.Assemble()
51
+ lf.Assemble()
52
+
53
+ r = lf.vec.CreateVector()
54
+ r.data = lf.vec
55
+
56
+ if bf.condense:
57
+ r.data += bf.harmonic_extension_trans * r
58
+
59
+ # zero local dofs
60
+ innerbits = gf.space.FreeDofs(False) & ~gf.space.FreeDofs(True)
61
+ Projector(innerbits, False).Project(gf.vec)
62
+
63
+ if solver:
64
+ inv = solver(mat=bf.mat, pre=pre, **solver_flags)
65
+ r.data -= bf.mat * gf.vec
66
+ gf.vec.data += inv * r
67
+
68
+ elif pre:
69
+ CG(mat = bf.mat, rhs = r, pre=pre, sol=gf.vec, tol=tol, maxsteps=maxsteps, initialize=False, printrates=print)
70
+ else:
71
+ inv = bf.mat.Inverse(gf.space.FreeDofs(bf.condense), inverse=inverse)
72
+ r.data -= bf.mat * gf.vec
73
+ gf.vec.data += inv * r
74
+
75
+ if bf.condense:
76
+ gf.vec.data += bf.harmonic_extension * gf.vec
77
+ gf.vec.data += bf.inner_solve * r
78
+
@@ -0,0 +1,102 @@
1
+ set(PACKAGE_VERSION "6.2.2506-74-gd430159c1")
2
+ find_package(Netgen CONFIG REQUIRED HINTS
3
+ ${CMAKE_CURRENT_LIST_DIR}
4
+ ${CMAKE_CURRENT_LIST_DIR}/..
5
+ ${CMAKE_CURRENT_LIST_DIR}/../netgen
6
+ )
7
+
8
+ get_filename_component(NGSOLVE_DIR "${NETGEN_DIR}" ABSOLUTE)
9
+
10
+ get_filename_component(NGSOLVE_INSTALL_DIR "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE)
11
+ get_filename_component(NGSOLVE_INCLUDE_DIR "${NETGEN_INCLUDE_DIR}" ABSOLUTE)
12
+ get_filename_component(NGSOLVE_BINARY_DIR "${NETGEN_BINARY_DIR}" ABSOLUTE)
13
+ get_filename_component(NGSOLVE_LIBRARY_DIR "${NETGEN_LIBRARY_DIR}" ABSOLUTE)
14
+ get_filename_component(NGSOLVE_PYTHON_DIR "${NETGEN_PYTHON_DIR}" ABSOLUTE)
15
+ get_filename_component(NGSOLVE_RESOURCE_DIR "${NETGEN_RESOURCE_DIR}" ABSOLUTE)
16
+
17
+ set(NGSOLVE_CXX_COMPILER "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/cl.exe")
18
+ set(NGSOLVE_CMAKE_BUILD_TYPE "Release")
19
+
20
+ set(NGSOLVE_CMAKE_THREAD_LIBS_INIT "")
21
+ set(NGSOLVE_MKL_LIBRARIES "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/venv_ngs/Library/lib/mkl_rt.lib")
22
+ set(NGSOLVE_PYBIND_INCLUDE_DIR "")
23
+ set(NGSOLVE_PYTHON_INCLUDE_DIRS "C:/Python314/Include")
24
+ set(NGSOLVE_PYTHON_LIBRARIES "C:/Python314/libs/python314.lib")
25
+ set(NGSOLVE_PYTHON_PACKAGES_INSTALL_DIR "")
26
+ set(NGSOLVE_TCL_INCLUDE_PATH "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/netgen/_skbuild/win-amd64-3.14/cmake-build/dependencies/src/project_tcl/generic")
27
+ set(NGSOLVE_TCL_LIBRARY "C:/Python314/tcl/tclstub86.lib")
28
+ set(NGSOLVE_TK_DND_LIBRARY "")
29
+ set(NGSOLVE_TK_INCLUDE_PATH "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/netgen/_skbuild/win-amd64-3.14/cmake-build/dependencies/src/project_tk/generic")
30
+ set(NGSOLVE_TK_LIBRARY "C:/Python314/tcl/tkstub86.lib")
31
+ set(NGSOLVE_X11_X11_LIB "")
32
+ set(NGSOLVE_X11_Xmu_LIB "")
33
+ set(NGSOLVE_ZLIB_INCLUDE_DIRS "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/netgen/_skbuild/win-amd64-3.14/cmake-build/dependencies/zlib/include")
34
+ set(NGSOLVE_ZLIB_LIBRARIES "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/netgen/_skbuild/win-amd64-3.14/cmake-build/dependencies/zlib/lib/zlibstatic.lib")
35
+
36
+ set(NGSOLVE_INTEL_MIC OFF)
37
+ set(NGSOLVE_USE_CCACHE ON)
38
+ set(NGSOLVE_USE_CUDA OFF)
39
+ set(NGSOLVE_USE_GUI ON)
40
+ set(NGSOLVE_USE_LAPACK ON)
41
+ set(NGSOLVE_USE_MKL ON)
42
+ set(NGSOLVE_USE_MPI OFF)
43
+ set(NGSOLVE_USE_MUMPS OFF)
44
+ set(NGSOLVE_USE_NUMA )
45
+ set(NGSOLVE_USE_PARDISO OFF)
46
+ set(NGSOLVE_USE_PYTHON ON)
47
+ set(NGSOLVE_USE_UMFPACK OFF)
48
+ set(NGSOLVE_USE_VT )
49
+ set(NGSOLVE_USE_VTUNE OFF)
50
+ set(NGSOLVE_MAX_SYS_DIM 3)
51
+
52
+ set(NGSOLVE_COMPILE_FLAGS " /DHAVE_NETGEN_SOURCES /DUSE_TIMEOFDAY /DTCL /DLAPACK /DUSE_PARDISO /DNGS_PYTHON /DNETGEN_PYTHON /DNG_PYTHON /DPYBIND11_SIMPLE_GIL_MANAGEMENT /D_WIN32_WINNT=0x1000 /DWNT /DWNT_WINDOW /DNOMINMAX /DMSVC_EXPRESS /D_CRT_SECURE_NO_WARNINGS /DHAVE_STRUCT_TIMESPEC /DWIN32" CACHE STRING "Preprocessor definitions of ngscxx")
53
+ set(NGSOLVE_LINK_FLAGS " -LC:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/venv_ngs/Library/lib -l_rt /LIBPATH:\"%NGSCXX_DIR%/lib\" nglib.lib ngcore.lib libngsolve.lib /LIBPATH:\"%PYTHON_LIBDIR%\"" CACHE STRING "Link flags set in ngsld")
54
+ set(NGSOLVE_INCLUDE_DIRS C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/venv_ngs/Library/include;C:/Python314/Include CACHE STRING "Include dirs set in ngscxx")
55
+
56
+ set(NGSOLVE_INSTALL_DIR_PYTHON .)
57
+ set(NGSOLVE_INSTALL_DIR_BIN netgen)
58
+ set(NGSOLVE_INSTALL_DIR_LIB netgen/lib)
59
+ set(NGSOLVE_INSTALL_DIR_INCLUDE netgen/include)
60
+ set(NGSOLVE_INSTALL_DIR_CMAKE ngsolve/cmake)
61
+ set(NGSOLVE_INSTALL_DIR_RES share)
62
+
63
+ include(${CMAKE_CURRENT_LIST_DIR}/ngsolve-targets.cmake)
64
+
65
+ if(WIN32)
66
+ # Libraries like ngstd, ngbla etc. are only dummy libs on Windows (there is only one library libngsolve.dll)
67
+ # make sure that all those dummy libs link ngsolve when used with CMake
68
+ target_link_libraries(ngstd INTERFACE ngsolve)
69
+ endif(WIN32)
70
+
71
+ if(NGSOLVE_USE_PYTHON)
72
+ function(add_ngsolve_python_module target)
73
+ if(NOT CMAKE_BUILD_TYPE)
74
+ message(STATUS "Setting build type to NGSolve build type: ${NGSOLVE_CMAKE_BUILD_TYPE}")
75
+ set(CMAKE_BUILD_TYPE ${NGSOLVE_CMAKE_BUILD_TYPE} PARENT_SCOPE)
76
+ endif()
77
+ add_library(${target} SHARED ${ARGN})
78
+
79
+ find_package(PythonInterp 3 REQUIRED)
80
+ find_package(PythonLibs 3 REQUIRED)
81
+ target_include_directories(${target} PRIVATE ${PYTHON_INCLUDE_DIR})
82
+
83
+ if(NETGEN_BUILD_FOR_CONDA AND NOT WIN32)
84
+ if(APPLE)
85
+ target_link_options(${target} PUBLIC -undefined dynamic_lookup)
86
+ endif(APPLE)
87
+ else(NETGEN_BUILD_FOR_CONDA AND NOT WIN32)
88
+ target_link_libraries(${target} PUBLIC ${PYTHON_LIBRARY})
89
+ endif(NETGEN_BUILD_FOR_CONDA AND NOT WIN32)
90
+
91
+ set_target_properties(${target} PROPERTIES PREFIX "" CXX_STANDARD 17)
92
+ target_link_libraries(${target} PUBLIC ngsolve)
93
+
94
+ if(WIN32)
95
+ set_target_properties( ${target} PROPERTIES SUFFIX ".pyd" )
96
+ else(WIN32)
97
+ set_target_properties(${target} PROPERTIES SUFFIX ".so")
98
+ endif(WIN32)
99
+
100
+ set_target_properties(${target} PROPERTIES INSTALL_RPATH "${NGSOLVE_LIBRARY_DIR}")
101
+ endfunction()
102
+ endif(NGSOLVE_USE_PYTHON)
@@ -0,0 +1,19 @@
1
+ #----------------------------------------------------------------
2
+ # Generated CMake target import file for configuration "Release".
3
+ #----------------------------------------------------------------
4
+
5
+ # Commands may need to know the format version.
6
+ set(CMAKE_IMPORT_FILE_VERSION 1)
7
+
8
+ # Import target "ngsolve" for configuration "Release"
9
+ set_property(TARGET ngsolve APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
10
+ set_target_properties(ngsolve PROPERTIES
11
+ IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/netgen/lib/libngsolve.lib"
12
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/netgen/libngsolve.dll"
13
+ )
14
+
15
+ list(APPEND _cmake_import_check_targets ngsolve )
16
+ list(APPEND _cmake_import_check_files_for_ngsolve "${_IMPORT_PREFIX}/netgen/lib/libngsolve.lib" "${_IMPORT_PREFIX}/netgen/libngsolve.dll" )
17
+
18
+ # Commands beyond this point should not need to know the version.
19
+ set(CMAKE_IMPORT_FILE_VERSION)
@@ -0,0 +1,164 @@
1
+ # Generated by CMake
2
+
3
+ if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
4
+ message(FATAL_ERROR "CMake >= 2.8.0 required")
5
+ endif()
6
+ if(CMAKE_VERSION VERSION_LESS "2.8.3")
7
+ message(FATAL_ERROR "CMake >= 2.8.3 required")
8
+ endif()
9
+ cmake_policy(PUSH)
10
+ cmake_policy(VERSION 2.8.3...3.25)
11
+ #----------------------------------------------------------------
12
+ # Generated CMake target import file.
13
+ #----------------------------------------------------------------
14
+
15
+ # Commands may need to know the format version.
16
+ set(CMAKE_IMPORT_FILE_VERSION 1)
17
+
18
+ # Protect against multiple inclusion, which would fail when already imported targets are added once more.
19
+ set(_cmake_targets_defined "")
20
+ set(_cmake_targets_not_defined "")
21
+ set(_cmake_expected_targets "")
22
+ foreach(_cmake_expected_target IN ITEMS netgen_libs ngs_lapack ngstd ngbla ngla ngfem ngsbem ngcomp ngsolve)
23
+ list(APPEND _cmake_expected_targets "${_cmake_expected_target}")
24
+ if(TARGET "${_cmake_expected_target}")
25
+ list(APPEND _cmake_targets_defined "${_cmake_expected_target}")
26
+ else()
27
+ list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}")
28
+ endif()
29
+ endforeach()
30
+ unset(_cmake_expected_target)
31
+ if(_cmake_targets_defined STREQUAL _cmake_expected_targets)
32
+ unset(_cmake_targets_defined)
33
+ unset(_cmake_targets_not_defined)
34
+ unset(_cmake_expected_targets)
35
+ unset(CMAKE_IMPORT_FILE_VERSION)
36
+ cmake_policy(POP)
37
+ return()
38
+ endif()
39
+ if(NOT _cmake_targets_defined STREQUAL "")
40
+ string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}")
41
+ string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}")
42
+ message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n")
43
+ endif()
44
+ unset(_cmake_targets_defined)
45
+ unset(_cmake_targets_not_defined)
46
+ unset(_cmake_expected_targets)
47
+
48
+
49
+ # Compute the installation prefix relative to this file.
50
+ get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
51
+ get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
52
+ get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
53
+ if(_IMPORT_PREFIX STREQUAL "/")
54
+ set(_IMPORT_PREFIX "")
55
+ endif()
56
+
57
+ # Create imported target netgen_libs
58
+ add_library(netgen_libs INTERFACE IMPORTED)
59
+
60
+ set_target_properties(netgen_libs PROPERTIES
61
+ INTERFACE_LINK_LIBRARIES "nglib;ngcore"
62
+ )
63
+
64
+ # Create imported target ngs_lapack
65
+ add_library(ngs_lapack INTERFACE IMPORTED)
66
+
67
+ set_target_properties(ngs_lapack PROPERTIES
68
+ INTERFACE_INCLUDE_DIRECTORIES "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/venv_ngs/Library/include"
69
+ INTERFACE_LINK_LIBRARIES "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/venv_ngs/Library/lib/mkl_rt.lib"
70
+ )
71
+
72
+ # Create imported target ngstd
73
+ add_library(ngstd INTERFACE IMPORTED)
74
+
75
+ set_target_properties(ngstd PROPERTIES
76
+ INTERFACE_COMPILE_DEFINITIONS "HAVE_NETGEN_SOURCES;USE_TIMEOFDAY;TCL;LAPACK;USE_PARDISO;NGS_PYTHON"
77
+ INTERFACE_COMPILE_OPTIONS "/std:c++17;/bigobj;/wd4068;-DMAX_SYS_DIM=3"
78
+ INTERFACE_LINK_LIBRARIES "netgen_libs;\$<LINK_ONLY:>"
79
+ )
80
+
81
+ # Create imported target ngbla
82
+ add_library(ngbla INTERFACE IMPORTED)
83
+
84
+ set_target_properties(ngbla PROPERTIES
85
+ INTERFACE_LINK_LIBRARIES "ngstd;\$<LINK_ONLY:>"
86
+ )
87
+
88
+ # Create imported target ngla
89
+ add_library(ngla INTERFACE IMPORTED)
90
+
91
+ set_target_properties(ngla PROPERTIES
92
+ INTERFACE_LINK_LIBRARIES "ngbla;ngstd;\$<LINK_ONLY:>"
93
+ )
94
+
95
+ # Create imported target ngfem
96
+ add_library(ngfem INTERFACE IMPORTED)
97
+
98
+ set_target_properties(ngfem PROPERTIES
99
+ INTERFACE_LINK_LIBRARIES "ngbla;ngstd;\$<LINK_ONLY:>"
100
+ )
101
+
102
+ # Create imported target ngsbem
103
+ add_library(ngsbem INTERFACE IMPORTED)
104
+
105
+ set_target_properties(ngsbem PROPERTIES
106
+ INTERFACE_LINK_LIBRARIES "ngcomp;ngfem;ngla;ngbla;ngstd;\$<LINK_ONLY:>"
107
+ )
108
+
109
+ # Create imported target ngcomp
110
+ add_library(ngcomp INTERFACE IMPORTED)
111
+
112
+ set_target_properties(ngcomp PROPERTIES
113
+ INTERFACE_LINK_LIBRARIES "ngfem;ngla;ngbla;ngstd;\$<LINK_ONLY:>"
114
+ )
115
+
116
+ # Create imported target ngsolve
117
+ add_library(ngsolve SHARED IMPORTED)
118
+
119
+ set_target_properties(ngsolve PROPERTIES
120
+ INTERFACE_LINK_LIBRARIES "netgen_libs;ngsolve;ngcomp;ngfem;ngsbem;ngbla;ngla;ngstd"
121
+ )
122
+
123
+ if(CMAKE_VERSION VERSION_LESS 3.0.0)
124
+ message(FATAL_ERROR "This file relies on consumers using CMake 3.0.0 or greater.")
125
+ endif()
126
+
127
+ # Load information for each installed configuration.
128
+ file(GLOB _cmake_config_files "${CMAKE_CURRENT_LIST_DIR}/ngsolve-targets-*.cmake")
129
+ foreach(_cmake_config_file IN LISTS _cmake_config_files)
130
+ include("${_cmake_config_file}")
131
+ endforeach()
132
+ unset(_cmake_config_file)
133
+ unset(_cmake_config_files)
134
+
135
+ # Cleanup temporary variables.
136
+ set(_IMPORT_PREFIX)
137
+
138
+ # Loop over all imported files and verify that they actually exist
139
+ foreach(_cmake_target IN LISTS _cmake_import_check_targets)
140
+ foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
141
+ if(NOT EXISTS "${_cmake_file}")
142
+ message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
143
+ \"${_cmake_file}\"
144
+ but this file does not exist. Possible reasons include:
145
+ * The file was deleted, renamed, or moved to another location.
146
+ * An install or uninstall procedure did not complete successfully.
147
+ * The installation package was faulty and contained
148
+ \"${CMAKE_CURRENT_LIST_FILE}\"
149
+ but not all the files it references.
150
+ ")
151
+ endif()
152
+ endforeach()
153
+ unset(_cmake_file)
154
+ unset("_cmake_import_check_files_for_${_cmake_target}")
155
+ endforeach()
156
+ unset(_cmake_target)
157
+ unset(_cmake_import_check_targets)
158
+
159
+ # This file does not depend on other imported targets which have
160
+ # been exported from the same project but in a separate export set.
161
+
162
+ # Commands beyond this point should not need to know the version.
163
+ set(CMAKE_IMPORT_FILE_VERSION)
164
+ cmake_policy(POP)
@@ -0,0 +1 @@
1
+ from .config import *
@@ -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("OFF")
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("ON")
14
+ USE_MUMPS = _cmake_to_bool("OFF")
15
+ USE_PARDISO = _cmake_to_bool("OFF")
16
+ USE_UMFPACK = _cmake_to_bool("OFF")
17
+
18
+ NETGEN_DIR = "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/venv_ngs/Lib/site-packages"
19
+
20
+ NGSOLVE_COMPILE_DEFINITIONS = "HAVE_NETGEN_SOURCES;USE_TIMEOFDAY;TCL;LAPACK;USE_PARDISO;NGS_PYTHON"
21
+ NGSOLVE_COMPILE_DEFINITIONS_PRIVATE = "USE_MKL"
22
+ NGSOLVE_COMPILE_INCLUDE_DIRS = ""
23
+ NGSOLVE_COMPILE_OPTIONS = "/std:c++17;/bigobj;/wd4068;-DMAX_SYS_DIM=3"
24
+
25
+ NGSOLVE_INSTALL_DIR_PYTHON = "."
26
+ NGSOLVE_INSTALL_DIR_BIN = "netgen"
27
+ NGSOLVE_INSTALL_DIR_LIB = "netgen/lib"
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 = "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/cl.exe"
43
+ CMAKE_CUDA_COMPILER = ""
44
+ CMAKE_C_COMPILER = "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/cl.exe"
45
+ CMAKE_LINKER = "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/link.exe"
46
+ CMAKE_INSTALL_PREFIX = "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/ngsolve/_skbuild/win-amd64-3.14/cmake-install"
47
+ CMAKE_CXX_COMPILER_LAUNCHER = ""
48
+
49
+ version = NGSOLVE_VERSION_GIT
50
+
51
+ MKL_LINK = "sdl"
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))
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"])