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
@@ -0,0 +1,41 @@
1
+ #ifndef NGSOLVE_VOXELCOEFFICIENTFUNCTION_HPP
2
+ #define NGSOLVE_VOXELCOEFFICIENTFUNCTION_HPP
3
+
4
+ #include "coefficient.hpp"
5
+
6
+ namespace ngfem
7
+ {
8
+ template<typename SCAL>
9
+ class VoxelCoefficientFunction : public CoefficientFunctionNoDerivative
10
+ {
11
+ Array<double> start, end;
12
+ Array<size_t> dim_vals;
13
+ Array<SCAL> values;
14
+ bool linear;
15
+ shared_ptr<CoefficientFunction> trafocf;
16
+ public:
17
+ VoxelCoefficientFunction(const Array<double>& _start,
18
+ const Array<double>& _end,
19
+ const Array<size_t>& _dim_vals,
20
+ Array<SCAL>&& _values,
21
+ bool _linear,
22
+ shared_ptr<CoefficientFunction> trafo=nullptr)
23
+ : CoefficientFunctionNoDerivative(1, is_same_v<SCAL, Complex>),
24
+ start(_start), end(_end), dim_vals(_dim_vals),
25
+ values(std::move(_values)), linear(_linear), trafocf(trafo)
26
+ { ; }
27
+
28
+ using CoefficientFunctionNoDerivative::Evaluate;
29
+ double Evaluate(const BaseMappedIntegrationPoint& ip) const override;
30
+ Complex EvaluateComplex(const BaseMappedIntegrationPoint& ip) const override;
31
+
32
+ void Evaluate(const BaseMappedIntegrationPoint& mip, FlatVector<Complex> values) const override;
33
+ auto GetCArgs() const
34
+ { return make_tuple(start, end, dim_vals, values, linear); }
35
+
36
+ private:
37
+ SCAL T_Evaluate(const BaseMappedIntegrationPoint& ip) const;
38
+ };
39
+ } // namespace ngfem
40
+
41
+ #endif // NGSOLVE_VOXELCOEFFICIENTFUNCTION_HPP
@@ -0,0 +1,198 @@
1
+ #pragma once
2
+
3
+ /*********************************************************************/
4
+ /* File: vtkoutput.hpp */
5
+ /* Author: Christoph Lehrenfeld */
6
+ /* Date: 1. June 2014 */
7
+ /*********************************************************************/
8
+
9
+ namespace ngcomp
10
+ {
11
+
12
+ class ValueField : public Array<double>
13
+ {
14
+ int dim = 1;
15
+ string name = "none";
16
+
17
+ public:
18
+ ValueField() { ; };
19
+ NGS_DLL_HEADER ValueField(int adim, string aname);
20
+ void SetDimension(int adim) { dim = adim; }
21
+ int Dimension() { return dim; }
22
+ void SetName(string aname) { name = aname; }
23
+ string Name() { return name; }
24
+ };
25
+
26
+ class BaseVTKOutput
27
+ {
28
+ public:
29
+ virtual ~BaseVTKOutput() { ; }
30
+ virtual void Do(LocalHeap &lh, double time = -1, VorB vb = VOL, const BitArray *drawelems = 0) = 0;
31
+ string lastoutputname = "";
32
+ };
33
+
34
+ struct VTKCell {
35
+ int type = 0;
36
+ ArrayMem<int, ELEMENT_MAXPOINTS> pi;
37
+
38
+ VTKCell() = default;
39
+
40
+ VTKCell & operator=(const VTKCell&other) {
41
+ type = other.type;
42
+ pi.SetSize(other.pi.Size());
43
+ for(auto i : Range(other.pi))
44
+ pi[i] = other.pi[i];
45
+ return *this;
46
+ }
47
+
48
+ VTKCell(ELEMENT_TYPE et, int order, const std::map<tuple<int,int,int>, int> &m,
49
+ int i, int j, int k, Vec<3,int> vi={1,0,0}, Vec<3,int> vj={0,1,0}, Vec<3,int> vk={0,0,1});
50
+
51
+ static int GetVtkType(ELEMENT_TYPE et, int order=1);
52
+
53
+ enum VTK_CELL_TYPE
54
+ {
55
+ // Linear cells
56
+ VTK_EMPTY_CELL = 0,
57
+ VTK_VERTEX = 1,
58
+ VTK_POLY_VERTEX = 2,
59
+ VTK_LINE = 3,
60
+ VTK_POLY_LINE = 4,
61
+ VTK_TRIANGLE = 5,
62
+ VTK_TRIANGLE_STRIP = 6,
63
+ VTK_POLYGON = 7,
64
+ VTK_PIXEL = 8,
65
+ VTK_QUAD = 9,
66
+ VTK_TETRA = 10,
67
+ VTK_VOXEL = 11,
68
+ VTK_HEXAHEDRON = 12,
69
+ VTK_WEDGE = 13,
70
+ VTK_PYRAMID = 14,
71
+ VTK_PENTAGONAL_PRISM = 15,
72
+ VTK_HEXAGONAL_PRISM = 16,
73
+
74
+ // Quadratic, isoparametric cells
75
+ VTK_QUADRATIC_EDGE = 21,
76
+ VTK_QUADRATIC_TRIANGLE = 22,
77
+ VTK_QUADRATIC_QUAD = 23,
78
+ VTK_QUADRATIC_POLYGON = 36,
79
+ VTK_QUADRATIC_TETRA = 24,
80
+ VTK_QUADRATIC_HEXAHEDRON = 25,
81
+ VTK_QUADRATIC_WEDGE = 26,
82
+ VTK_QUADRATIC_PYRAMID = 27,
83
+ VTK_BIQUADRATIC_QUAD = 28,
84
+ VTK_TRIQUADRATIC_HEXAHEDRON = 29,
85
+ VTK_TRIQUADRATIC_PYRAMID = 37,
86
+ VTK_QUADRATIC_LINEAR_QUAD = 30,
87
+ VTK_QUADRATIC_LINEAR_WEDGE = 31,
88
+ VTK_BIQUADRATIC_QUADRATIC_WEDGE = 32,
89
+ VTK_BIQUADRATIC_QUADRATIC_HEXAHEDRON = 33,
90
+ VTK_BIQUADRATIC_TRIANGLE = 34,
91
+
92
+ // Cubic, isoparametric cell
93
+ VTK_CUBIC_LINE = 35,
94
+
95
+ // Special class of cells formed by convex group of points
96
+ VTK_CONVEX_POINT_SET = 41,
97
+
98
+ // Polyhedron cell (consisting of polygonal faces)
99
+ VTK_POLYHEDRON = 42,
100
+
101
+ // Higher order cells in parametric form
102
+ VTK_PARAMETRIC_CURVE = 51,
103
+ VTK_PARAMETRIC_SURFACE = 52,
104
+ VTK_PARAMETRIC_TRI_SURFACE = 53,
105
+ VTK_PARAMETRIC_QUAD_SURFACE = 54,
106
+ VTK_PARAMETRIC_TETRA_REGION = 55,
107
+ VTK_PARAMETRIC_HEX_REGION = 56,
108
+
109
+ // Higher order cells
110
+ VTK_HIGHER_ORDER_EDGE = 60,
111
+ VTK_HIGHER_ORDER_TRIANGLE = 61,
112
+ VTK_HIGHER_ORDER_QUAD = 62,
113
+ VTK_HIGHER_ORDER_POLYGON = 63,
114
+ VTK_HIGHER_ORDER_TETRAHEDRON = 64,
115
+ VTK_HIGHER_ORDER_WEDGE = 65,
116
+ VTK_HIGHER_ORDER_PYRAMID = 66,
117
+ VTK_HIGHER_ORDER_HEXAHEDRON = 67,
118
+
119
+ // Arbitrary order Lagrange elements (formulated separated from generic higher order cells)
120
+ VTK_LAGRANGE_CURVE = 68,
121
+ VTK_LAGRANGE_TRIANGLE = 69,
122
+ VTK_LAGRANGE_QUADRILATERAL = 70,
123
+ VTK_LAGRANGE_TETRAHEDRON = 71,
124
+ VTK_LAGRANGE_HEXAHEDRON = 72,
125
+ VTK_LAGRANGE_WEDGE = 73,
126
+ VTK_LAGRANGE_PYRAMID = 74,
127
+
128
+ // Arbitrary order Bezier elements (formulated separated from generic higher order cells)
129
+ VTK_BEZIER_CURVE = 75,
130
+ VTK_BEZIER_TRIANGLE = 76,
131
+ VTK_BEZIER_QUADRILATERAL = 77,
132
+ VTK_BEZIER_TETRAHEDRON = 78,
133
+ VTK_BEZIER_HEXAHEDRON = 79,
134
+ VTK_BEZIER_WEDGE = 80,
135
+ VTK_BEZIER_PYRAMID = 81,
136
+
137
+ VTK_NUMBER_OF_CELL_TYPES
138
+ };
139
+ };
140
+
141
+ template <int D>
142
+ class VTKOutput : public BaseVTKOutput
143
+ {
144
+ protected:
145
+ shared_ptr<MeshAccess> ma = nullptr;
146
+ Array<shared_ptr<CoefficientFunction>> coefs;
147
+ Array<string> fieldnames;
148
+
149
+ string filename;
150
+ int subdivision, r;
151
+ double h;
152
+ int order = 1;
153
+ int only_element = -1;
154
+ string floatsize = "double";
155
+ bool legacy = false;
156
+ Array<shared_ptr<ValueField>>
157
+ value_field;
158
+ Array<Vec<D>> points;
159
+ Array<VTKCell> cells;
160
+
161
+ int output_cnt = 0;
162
+ std::vector<double> times = {0};
163
+ shared_ptr<ofstream> fileout;
164
+
165
+ public:
166
+ VTKOutput(const Array<shared_ptr<CoefficientFunction>> &,
167
+ const Flags &, shared_ptr<MeshAccess>);
168
+
169
+ VTKOutput(shared_ptr<MeshAccess>, const Array<shared_ptr<CoefficientFunction>> &,
170
+ const Array<string> &, string, int, int, string, bool, int);
171
+ virtual ~VTKOutput() { ; }
172
+
173
+ void ResetArrays();
174
+
175
+ void FillReferenceTrig(Array<IntegrationPoint> &ref_coords, Array<VTKCell> &ref_elems);
176
+ void FillReferenceQuad(Array<IntegrationPoint> &ref_coords, Array<VTKCell> &ref_elems);
177
+ void FillReferenceTet(Array<IntegrationPoint> &ref_coords, Array<VTKCell> &ref_elems);
178
+ void FillReferenceHex(Array<IntegrationPoint> &ref_coords, Array<VTKCell> &ref_elems);
179
+ void FillReferencePrism(Array<IntegrationPoint> &ref_coords, Array<VTKCell> &ref_elems);
180
+ void FillReferencePyramid(Array<IntegrationPoint> &ref_coords, Array<VTKCell> &ref_elems);
181
+ // void FillReferenceData3D(Array<IntegrationPoint> & ref_coords, Array<INT<D+1>> & ref_tets);
182
+ // XML Methods
183
+ void PrintPoints(int *offset, stringstream *appenddata);
184
+ void PrintCells(int *offset, stringstream *appenddata);
185
+ void PrintCellTypes(VorB vb, int *offset, stringstream *appenddata, const BitArray *drawelems = nullptr);
186
+ void PrintFieldData(int *offset, stringstream *appenddata);
187
+
188
+ void PrintAppended(stringstream *appenddata);
189
+ void PvdFile(string filename, int index);
190
+ // Legacy Methods
191
+ void PrintPointsLegacy();
192
+ void PrintCellsLegacy();
193
+ void PrintCellTypesLegacy(VorB vb, const BitArray *drawelems = nullptr);
194
+ void PrintFieldDataLegacy();
195
+ virtual void Do(LocalHeap &lh, double time = -1, VorB vb = VOL, const BitArray *drawelems = 0);
196
+ };
197
+
198
+ }
@@ -0,0 +1,208 @@
1
+ #ifndef FILE_VVECTOR
2
+ #define FILE_VVECTOR
3
+
4
+ #include "basevector.hpp"
5
+
6
+ namespace ngla
7
+ {
8
+
9
+
10
+ template <class T> class VFlatVector;
11
+ template <class T> class VVector;
12
+
13
+
14
+
15
+
16
+ template <typename TSCAL = double>
17
+ class NGS_DLL_HEADER S_BaseVectorPtr : virtual public S_BaseVector<TSCAL>
18
+ {
19
+ protected:
20
+ TSCAL * pdata;
21
+ int es; // entry size in in term of TSCALs
22
+ bool ownmem;
23
+
24
+ public:
25
+ S_BaseVectorPtr (size_t as, int aes, void * adata) throw()
26
+ {
27
+ this->size = as;
28
+ es = aes;
29
+ pdata = static_cast<TSCAL*> (adata);
30
+ ownmem = false;
31
+ this->entrysize = es * sizeof(TSCAL) / sizeof(double);
32
+ }
33
+
34
+ S_BaseVectorPtr (size_t as, int aes)
35
+ {
36
+ this->size = as;
37
+ es = aes;
38
+ pdata = new TSCAL[as*aes];
39
+ ownmem = true;
40
+ GetMemoryTracer().Alloc(sizeof(TSCAL) * as * aes);
41
+ this->entrysize = es * sizeof(TSCAL) / sizeof(double);
42
+ }
43
+
44
+ void SetSize (size_t as)
45
+ {
46
+ if (ownmem)
47
+ {
48
+ GetMemoryTracer().Free(sizeof(TSCAL) * this->size * es);
49
+ delete [] pdata;
50
+ }
51
+ this->size = as;
52
+ pdata = new TSCAL[as*es];
53
+ ownmem = true;
54
+ GetMemoryTracer().Alloc(sizeof(TSCAL) * as * es);
55
+ }
56
+
57
+ void AssignMemory (size_t as, void * adata)
58
+ {
59
+ this->size = as;
60
+ this->pdata = static_cast<TSCAL*> (adata);
61
+ }
62
+
63
+ virtual ~S_BaseVectorPtr ();
64
+
65
+ virtual void * Memory () const throw() override
66
+ {
67
+ return pdata;
68
+ }
69
+
70
+ virtual Array<MemoryUsage> GetMemoryUsage () const override;
71
+
72
+
73
+ // virtual AutoVector Range (size_t begin, size_t end) const override;
74
+ virtual AutoVector Range (T_Range<size_t> range) const override;
75
+
76
+ template<typename TIND, typename std::enable_if<std::is_integral<TIND>::value, int>::type = 0>
77
+ FlatVector<TSCAL> operator() (TIND i) const
78
+ {
79
+ return FlatVector<TSCAL> (es, pdata+i*es);
80
+ }
81
+
82
+ virtual AutoVector CreateVector () const override;
83
+ virtual unique_ptr<MultiVector> CreateMultiVector (size_t cnt) const override;
84
+
85
+ virtual ostream & Print (ostream & ost) const override;
86
+ using BaseVector::GetMemoryTracer;
87
+ };
88
+
89
+
90
+ extern template class S_BaseVectorPtr<double>;
91
+ extern template class S_BaseVectorPtr<Complex>;
92
+
93
+
94
+
95
+
96
+ /**
97
+ A specific vector based on Vector.
98
+ */
99
+ template <typename T = double>
100
+ class VFlatVector : virtual public S_BaseVectorPtr<typename mat_traits<T>::TSCAL>
101
+ {
102
+ public:
103
+ typedef typename mat_traits<T>::TSCAL TSCAL;
104
+ enum { ES = sizeof(T) / sizeof(TSCAL) };
105
+
106
+ explicit VFlatVector () throw()
107
+ : S_BaseVectorPtr<TSCAL> (0, ES, NULL)
108
+ { ; }
109
+
110
+ explicit VFlatVector (size_t as, T * adata) throw()
111
+ : S_BaseVectorPtr<TSCAL> (as, ES, (void*)adata)
112
+ { ; }
113
+
114
+ VFlatVector (FlatVector<T> fv)
115
+ : S_BaseVectorPtr<TSCAL> (fv.Size(), ES, fv.Data())
116
+ { ; }
117
+
118
+ VFlatVector & operator= (TSCAL s1)
119
+ {
120
+ BaseVector::operator= (s1);
121
+ return *this;
122
+ }
123
+
124
+ template <typename T2>
125
+ VFlatVector & operator= (const VVecExpr<T2> & v)
126
+ {
127
+ BaseVector::operator= (v);
128
+ return *this;
129
+ }
130
+
131
+ FlatVector<T> FV () const throw()
132
+ {
133
+ return FlatVector<T> (this->size, this->pdata);
134
+ }
135
+
136
+ T & operator() (size_t i) const
137
+ {
138
+ return static_cast<T*> (static_cast<void*> (this->pdata))[i];
139
+ }
140
+
141
+ };
142
+
143
+
144
+
145
+
146
+
147
+
148
+ /**
149
+ A specific vector based on Vector.
150
+ */
151
+ template <typename T = double>
152
+ class VVector : virtual public S_BaseVectorPtr<typename mat_traits<T>::TSCAL>
153
+ {
154
+ public:
155
+ typedef typename mat_traits<T>::TSCAL TSCAL;
156
+ enum { ES = sizeof(T) / sizeof(TSCAL) };
157
+
158
+ explicit VVector (size_t as)
159
+ : S_BaseVectorPtr<TSCAL> (as, ES)
160
+ { ; }
161
+
162
+ explicit VVector (const VVector & v2)
163
+ : S_BaseVectorPtr<TSCAL> (v2.Size(), ES)
164
+ {
165
+ *this = v2;
166
+ }
167
+
168
+ // virtual ~VVector() { ; }
169
+
170
+ VVector & operator= (TSCAL s1)
171
+ {
172
+ BaseVector::operator= (s1);
173
+ return *this;
174
+ }
175
+
176
+ VVector & operator= (const VVector & v2)
177
+ {
178
+ BaseVector::operator= (v2);
179
+ return *this;
180
+ }
181
+
182
+ template <typename T2>
183
+ VVector & operator= (const VVecExpr<T2> & v)
184
+ {
185
+ BaseVector::operator= (v);
186
+ return *this;
187
+ }
188
+
189
+ using S_BaseVectorPtr<TSCAL> :: FV;
190
+
191
+ FlatVector<T> FV () const throw()
192
+ {
193
+ return FlatVector<T> (this->size, (T*)this->pdata);
194
+ }
195
+
196
+ T & operator() (size_t i) const
197
+ {
198
+ return static_cast<T*> (static_cast<void*> (this->pdata))[i];
199
+ }
200
+ };
201
+
202
+ extern template class VVector<double>;
203
+ extern template class VVector<Complex>;
204
+ }
205
+
206
+
207
+
208
+ #endif
@@ -0,0 +1,92 @@
1
+ #ifndef FILE_WEBGUI_HPP_INCLUDED
2
+ #define FILE_WEBGUI_HPP_INCLUDED
3
+
4
+ #include <core/archive.hpp>
5
+
6
+ // #include "comp.hpp"
7
+ #include "meshaccess.hpp"
8
+
9
+
10
+ namespace webgui {
11
+ using namespace ngcomp;
12
+
13
+ struct WebguiArchiveData {
14
+ shared_ptr<MeshAccess> mesh;
15
+ shared_ptr<CoefficientFunction> cf;
16
+
17
+ WebguiArchiveData() = default;
18
+
19
+ WebguiArchiveData(shared_ptr<MeshAccess> mesh, shared_ptr<CoefficientFunction> cf)
20
+ : mesh(mesh), cf(cf) { }
21
+
22
+ shared_ptr<MeshAccess> GetMeshAccess() { return mesh; }
23
+
24
+ void DoArchive(Archive & ar) {
25
+ shared_ptr<netgen::NetgenGeometry> geo;
26
+ if(ar.Output())
27
+ {
28
+ geo = mesh->GetNetgenMesh()->GetGeometry();
29
+ mesh->GetNetgenMesh()->SetGeometry(nullptr);
30
+ }
31
+
32
+ ar & mesh & cf;
33
+
34
+ if(ar.Output())
35
+ mesh->GetNetgenMesh()->SetGeometry(geo);
36
+ }
37
+ };
38
+
39
+ struct WebguiData {
40
+ int mesh_dim, order2d, order3d;
41
+ double funcmin, funcmax, mesh_radius;
42
+ vector<double> mesh_center;
43
+ bool draw_vol, draw_surf, show_wireframe, show_mesh;
44
+
45
+ vector<string> Bezier_trig_points, Bezier_points, points3d;
46
+ vector<string> objects, names, edges;
47
+ };
48
+
49
+ unique_ptr<WebguiData> GenerateWebguiData(shared_ptr<MeshAccess> ma,
50
+ shared_ptr<CoefficientFunction> cf,
51
+ int order = 1);
52
+
53
+ template<typename T>
54
+ string ToArchive(shared_ptr<T> obj, bool binary=true) {
55
+ auto ss = make_shared<stringstream>();
56
+ shared_ptr<netgen::NetgenGeometry> geo;
57
+ if constexpr(is_same_v<T, netgen::Mesh>)
58
+ {
59
+ geo = obj->GetGeometry();
60
+ obj->SetGeometry(nullptr);
61
+ }
62
+ if(binary) {
63
+ BinaryOutArchive ar(ss);
64
+ ar & obj;
65
+ }
66
+ else {
67
+ TextOutArchive ar(ss);
68
+ ar & obj;
69
+ }
70
+ if constexpr(is_same_v<T, netgen::Mesh>)
71
+ obj->SetGeometry(geo);
72
+ return ss->str();
73
+ }
74
+
75
+ template<typename T>
76
+ shared_ptr<T> FromArchive(string s, bool binary=true) {
77
+ auto ss = make_shared<stringstream>(s);
78
+ shared_ptr<T> obj;
79
+ if(binary) {
80
+ BinaryInArchive ar(ss);
81
+ ar & obj;
82
+ }
83
+ else {
84
+ TextInArchive ar(ss);
85
+ ar & obj;
86
+ }
87
+ return obj;
88
+ }
89
+
90
+ } // namespace webgui
91
+
92
+ #endif // FILE_WEBGUI_HPP_INCLUDED
netgen/libngbla.dylib ADDED
Binary file
netgen/libngcomp.dylib ADDED
Binary file
netgen/libngfem.dylib ADDED
Binary file
netgen/libngla.dylib ADDED
Binary file
netgen/libngsbem.dylib ADDED
Binary file
Binary file
netgen/libngstd.dylib ADDED
Binary file