netgen-mesher 6.2.2506.post35.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.
Files changed (340) hide show
  1. netgen/NgOCC.py +7 -0
  2. netgen/__init__.py +114 -0
  3. netgen/__init__.pyi +22 -0
  4. netgen/__main__.py +53 -0
  5. netgen/cmake/NetgenConfig.cmake +79 -0
  6. netgen/cmake/netgen-targets-release.cmake +69 -0
  7. netgen/cmake/netgen-targets.cmake +146 -0
  8. netgen/config/__init__.py +1 -0
  9. netgen/config/__init__.pyi +52 -0
  10. netgen/config/__main__.py +4 -0
  11. netgen/config/config.py +68 -0
  12. netgen/config/config.pyi +54 -0
  13. netgen/csg.py +25 -0
  14. netgen/geom2d.py +178 -0
  15. netgen/gui.py +82 -0
  16. netgen/include/core/archive.hpp +1256 -0
  17. netgen/include/core/array.hpp +1760 -0
  18. netgen/include/core/autodiff.hpp +1131 -0
  19. netgen/include/core/autodiffdiff.hpp +733 -0
  20. netgen/include/core/bitarray.hpp +240 -0
  21. netgen/include/core/concurrentqueue.h +3619 -0
  22. netgen/include/core/exception.hpp +145 -0
  23. netgen/include/core/flags.hpp +199 -0
  24. netgen/include/core/hashtable.hpp +1281 -0
  25. netgen/include/core/localheap.hpp +318 -0
  26. netgen/include/core/logging.hpp +117 -0
  27. netgen/include/core/memtracer.hpp +221 -0
  28. netgen/include/core/mpi4py_pycapi.h +245 -0
  29. netgen/include/core/mpi_wrapper.hpp +643 -0
  30. netgen/include/core/ng_mpi.hpp +94 -0
  31. netgen/include/core/ng_mpi_generated_declarations.hpp +155 -0
  32. netgen/include/core/ng_mpi_native.hpp +25 -0
  33. netgen/include/core/ngcore.hpp +32 -0
  34. netgen/include/core/ngcore_api.hpp +152 -0
  35. netgen/include/core/ngstream.hpp +115 -0
  36. netgen/include/core/paje_trace.hpp +279 -0
  37. netgen/include/core/profiler.hpp +382 -0
  38. netgen/include/core/python_ngcore.hpp +457 -0
  39. netgen/include/core/ranges.hpp +109 -0
  40. netgen/include/core/register_archive.hpp +100 -0
  41. netgen/include/core/signal.hpp +82 -0
  42. netgen/include/core/simd.hpp +160 -0
  43. netgen/include/core/simd_arm64.hpp +407 -0
  44. netgen/include/core/simd_avx.hpp +394 -0
  45. netgen/include/core/simd_avx512.hpp +285 -0
  46. netgen/include/core/simd_generic.hpp +1053 -0
  47. netgen/include/core/simd_math.hpp +178 -0
  48. netgen/include/core/simd_sse.hpp +289 -0
  49. netgen/include/core/statushandler.hpp +37 -0
  50. netgen/include/core/symboltable.hpp +153 -0
  51. netgen/include/core/table.hpp +810 -0
  52. netgen/include/core/taskmanager.hpp +1161 -0
  53. netgen/include/core/type_traits.hpp +65 -0
  54. netgen/include/core/utils.hpp +385 -0
  55. netgen/include/core/version.hpp +102 -0
  56. netgen/include/core/xbool.hpp +47 -0
  57. netgen/include/csg/algprim.hpp +563 -0
  58. netgen/include/csg/brick.hpp +150 -0
  59. netgen/include/csg/csg.hpp +43 -0
  60. netgen/include/csg/csgeom.hpp +389 -0
  61. netgen/include/csg/csgparser.hpp +101 -0
  62. netgen/include/csg/curve2d.hpp +67 -0
  63. netgen/include/csg/edgeflw.hpp +112 -0
  64. netgen/include/csg/explicitcurve2d.hpp +113 -0
  65. netgen/include/csg/extrusion.hpp +185 -0
  66. netgen/include/csg/gencyl.hpp +70 -0
  67. netgen/include/csg/geoml.hpp +16 -0
  68. netgen/include/csg/identify.hpp +213 -0
  69. netgen/include/csg/manifold.hpp +29 -0
  70. netgen/include/csg/meshsurf.hpp +46 -0
  71. netgen/include/csg/polyhedra.hpp +121 -0
  72. netgen/include/csg/revolution.hpp +180 -0
  73. netgen/include/csg/singularref.hpp +84 -0
  74. netgen/include/csg/solid.hpp +295 -0
  75. netgen/include/csg/specpoin.hpp +194 -0
  76. netgen/include/csg/spline3d.hpp +99 -0
  77. netgen/include/csg/splinesurface.hpp +85 -0
  78. netgen/include/csg/surface.hpp +394 -0
  79. netgen/include/csg/triapprox.hpp +63 -0
  80. netgen/include/csg/vscsg.hpp +34 -0
  81. netgen/include/general/autodiff.hpp +356 -0
  82. netgen/include/general/autoptr.hpp +39 -0
  83. netgen/include/general/gzstream.h +121 -0
  84. netgen/include/general/hashtabl.hpp +1692 -0
  85. netgen/include/general/myadt.hpp +48 -0
  86. netgen/include/general/mystring.hpp +226 -0
  87. netgen/include/general/netgenout.hpp +205 -0
  88. netgen/include/general/ngarray.hpp +797 -0
  89. netgen/include/general/ngbitarray.hpp +149 -0
  90. netgen/include/general/ngpython.hpp +74 -0
  91. netgen/include/general/optmem.hpp +44 -0
  92. netgen/include/general/parthreads.hpp +138 -0
  93. netgen/include/general/seti.hpp +50 -0
  94. netgen/include/general/sort.hpp +47 -0
  95. netgen/include/general/spbita2d.hpp +59 -0
  96. netgen/include/general/stack.hpp +114 -0
  97. netgen/include/general/table.hpp +280 -0
  98. netgen/include/general/template.hpp +509 -0
  99. netgen/include/geom2d/csg2d.hpp +750 -0
  100. netgen/include/geom2d/geometry2d.hpp +280 -0
  101. netgen/include/geom2d/spline2d.hpp +234 -0
  102. netgen/include/geom2d/vsgeom2d.hpp +28 -0
  103. netgen/include/gprim/adtree.hpp +1392 -0
  104. netgen/include/gprim/geom2d.hpp +858 -0
  105. netgen/include/gprim/geom3d.hpp +749 -0
  106. netgen/include/gprim/geomfuncs.hpp +212 -0
  107. netgen/include/gprim/geomobjects.hpp +544 -0
  108. netgen/include/gprim/geomops.hpp +404 -0
  109. netgen/include/gprim/geomtest3d.hpp +101 -0
  110. netgen/include/gprim/gprim.hpp +33 -0
  111. netgen/include/gprim/spline.hpp +778 -0
  112. netgen/include/gprim/splinegeometry.hpp +73 -0
  113. netgen/include/gprim/transform3d.hpp +216 -0
  114. netgen/include/include/acisgeom.hpp +3 -0
  115. netgen/include/include/csg.hpp +1 -0
  116. netgen/include/include/geometry2d.hpp +1 -0
  117. netgen/include/include/gprim.hpp +1 -0
  118. netgen/include/include/incopengl.hpp +62 -0
  119. netgen/include/include/inctcl.hpp +13 -0
  120. netgen/include/include/incvis.hpp +6 -0
  121. netgen/include/include/linalg.hpp +1 -0
  122. netgen/include/include/meshing.hpp +1 -0
  123. netgen/include/include/myadt.hpp +1 -0
  124. netgen/include/include/mydefs.hpp +70 -0
  125. netgen/include/include/mystdlib.h +59 -0
  126. netgen/include/include/netgen_config.hpp +27 -0
  127. netgen/include/include/netgen_version.hpp +9 -0
  128. netgen/include/include/nginterface_v2_impl.hpp +395 -0
  129. netgen/include/include/ngsimd.hpp +1 -0
  130. netgen/include/include/occgeom.hpp +1 -0
  131. netgen/include/include/opti.hpp +1 -0
  132. netgen/include/include/parallel.hpp +1 -0
  133. netgen/include/include/stlgeom.hpp +1 -0
  134. netgen/include/include/visual.hpp +1 -0
  135. netgen/include/interface/rw_medit.hpp +11 -0
  136. netgen/include/interface/writeuser.hpp +80 -0
  137. netgen/include/linalg/densemat.hpp +414 -0
  138. netgen/include/linalg/linalg.hpp +29 -0
  139. netgen/include/linalg/opti.hpp +142 -0
  140. netgen/include/linalg/polynomial.hpp +47 -0
  141. netgen/include/linalg/vector.hpp +217 -0
  142. netgen/include/meshing/adfront2.hpp +274 -0
  143. netgen/include/meshing/adfront3.hpp +332 -0
  144. netgen/include/meshing/basegeom.hpp +370 -0
  145. netgen/include/meshing/bcfunctions.hpp +53 -0
  146. netgen/include/meshing/bisect.hpp +72 -0
  147. netgen/include/meshing/boundarylayer.hpp +113 -0
  148. netgen/include/meshing/classifyhpel.hpp +1984 -0
  149. netgen/include/meshing/clusters.hpp +46 -0
  150. netgen/include/meshing/curvedelems.hpp +274 -0
  151. netgen/include/meshing/delaunay2d.hpp +73 -0
  152. netgen/include/meshing/fieldlines.hpp +103 -0
  153. netgen/include/meshing/findip.hpp +198 -0
  154. netgen/include/meshing/findip2.hpp +103 -0
  155. netgen/include/meshing/geomsearch.hpp +69 -0
  156. netgen/include/meshing/global.hpp +54 -0
  157. netgen/include/meshing/hpref_hex.hpp +330 -0
  158. netgen/include/meshing/hpref_prism.hpp +3405 -0
  159. netgen/include/meshing/hpref_pyramid.hpp +154 -0
  160. netgen/include/meshing/hpref_quad.hpp +2082 -0
  161. netgen/include/meshing/hpref_segm.hpp +122 -0
  162. netgen/include/meshing/hpref_tet.hpp +4230 -0
  163. netgen/include/meshing/hpref_trig.hpp +848 -0
  164. netgen/include/meshing/hprefinement.hpp +366 -0
  165. netgen/include/meshing/improve2.hpp +178 -0
  166. netgen/include/meshing/improve3.hpp +151 -0
  167. netgen/include/meshing/localh.hpp +223 -0
  168. netgen/include/meshing/meshclass.hpp +1076 -0
  169. netgen/include/meshing/meshfunc.hpp +47 -0
  170. netgen/include/meshing/meshing.hpp +63 -0
  171. netgen/include/meshing/meshing2.hpp +163 -0
  172. netgen/include/meshing/meshing3.hpp +123 -0
  173. netgen/include/meshing/meshtool.hpp +90 -0
  174. netgen/include/meshing/meshtype.hpp +1930 -0
  175. netgen/include/meshing/msghandler.hpp +62 -0
  176. netgen/include/meshing/paralleltop.hpp +172 -0
  177. netgen/include/meshing/python_mesh.hpp +206 -0
  178. netgen/include/meshing/ruler2.hpp +172 -0
  179. netgen/include/meshing/ruler3.hpp +211 -0
  180. netgen/include/meshing/soldata.hpp +141 -0
  181. netgen/include/meshing/specials.hpp +17 -0
  182. netgen/include/meshing/surfacegeom.hpp +73 -0
  183. netgen/include/meshing/topology.hpp +1003 -0
  184. netgen/include/meshing/validate.hpp +21 -0
  185. netgen/include/meshing/visual_interface.hpp +71 -0
  186. netgen/include/mydefs.hpp +70 -0
  187. netgen/include/nginterface.h +474 -0
  188. netgen/include/nginterface_v2.hpp +406 -0
  189. netgen/include/nglib.h +697 -0
  190. netgen/include/nglib_occ.h +50 -0
  191. netgen/include/occ/occ_edge.hpp +47 -0
  192. netgen/include/occ/occ_face.hpp +52 -0
  193. netgen/include/occ/occ_solid.hpp +23 -0
  194. netgen/include/occ/occ_utils.hpp +376 -0
  195. netgen/include/occ/occ_vertex.hpp +30 -0
  196. netgen/include/occ/occgeom.hpp +659 -0
  197. netgen/include/occ/occmeshsurf.hpp +168 -0
  198. netgen/include/occ/vsocc.hpp +33 -0
  199. netgen/include/pybind11/LICENSE +29 -0
  200. netgen/include/pybind11/attr.h +722 -0
  201. netgen/include/pybind11/buffer_info.h +208 -0
  202. netgen/include/pybind11/cast.h +2361 -0
  203. netgen/include/pybind11/chrono.h +228 -0
  204. netgen/include/pybind11/common.h +2 -0
  205. netgen/include/pybind11/complex.h +74 -0
  206. netgen/include/pybind11/conduit/README.txt +15 -0
  207. netgen/include/pybind11/conduit/pybind11_conduit_v1.h +116 -0
  208. netgen/include/pybind11/conduit/pybind11_platform_abi_id.h +87 -0
  209. netgen/include/pybind11/conduit/wrap_include_python_h.h +72 -0
  210. netgen/include/pybind11/critical_section.h +56 -0
  211. netgen/include/pybind11/detail/class.h +823 -0
  212. netgen/include/pybind11/detail/common.h +1348 -0
  213. netgen/include/pybind11/detail/cpp_conduit.h +75 -0
  214. netgen/include/pybind11/detail/descr.h +226 -0
  215. netgen/include/pybind11/detail/dynamic_raw_ptr_cast_if_possible.h +39 -0
  216. netgen/include/pybind11/detail/exception_translation.h +71 -0
  217. netgen/include/pybind11/detail/function_record_pyobject.h +191 -0
  218. netgen/include/pybind11/detail/init.h +538 -0
  219. netgen/include/pybind11/detail/internals.h +799 -0
  220. netgen/include/pybind11/detail/native_enum_data.h +209 -0
  221. netgen/include/pybind11/detail/pybind11_namespace_macros.h +82 -0
  222. netgen/include/pybind11/detail/struct_smart_holder.h +378 -0
  223. netgen/include/pybind11/detail/type_caster_base.h +1591 -0
  224. netgen/include/pybind11/detail/typeid.h +65 -0
  225. netgen/include/pybind11/detail/using_smart_holder.h +22 -0
  226. netgen/include/pybind11/detail/value_and_holder.h +90 -0
  227. netgen/include/pybind11/eigen/common.h +9 -0
  228. netgen/include/pybind11/eigen/matrix.h +723 -0
  229. netgen/include/pybind11/eigen/tensor.h +521 -0
  230. netgen/include/pybind11/eigen.h +12 -0
  231. netgen/include/pybind11/embed.h +320 -0
  232. netgen/include/pybind11/eval.h +161 -0
  233. netgen/include/pybind11/functional.h +147 -0
  234. netgen/include/pybind11/gil.h +199 -0
  235. netgen/include/pybind11/gil_safe_call_once.h +102 -0
  236. netgen/include/pybind11/gil_simple.h +37 -0
  237. netgen/include/pybind11/iostream.h +265 -0
  238. netgen/include/pybind11/native_enum.h +67 -0
  239. netgen/include/pybind11/numpy.h +2312 -0
  240. netgen/include/pybind11/operators.h +202 -0
  241. netgen/include/pybind11/options.h +92 -0
  242. netgen/include/pybind11/pybind11.h +3645 -0
  243. netgen/include/pybind11/pytypes.h +2680 -0
  244. netgen/include/pybind11/stl/filesystem.h +114 -0
  245. netgen/include/pybind11/stl.h +666 -0
  246. netgen/include/pybind11/stl_bind.h +858 -0
  247. netgen/include/pybind11/subinterpreter.h +299 -0
  248. netgen/include/pybind11/trampoline_self_life_support.h +65 -0
  249. netgen/include/pybind11/type_caster_pyobject_ptr.h +61 -0
  250. netgen/include/pybind11/typing.h +298 -0
  251. netgen/include/pybind11/warnings.h +75 -0
  252. netgen/include/stlgeom/meshstlsurface.hpp +67 -0
  253. netgen/include/stlgeom/stlgeom.hpp +491 -0
  254. netgen/include/stlgeom/stlline.hpp +193 -0
  255. netgen/include/stlgeom/stltool.hpp +331 -0
  256. netgen/include/stlgeom/stltopology.hpp +419 -0
  257. netgen/include/stlgeom/vsstl.hpp +58 -0
  258. netgen/include/visualization/meshdoc.hpp +42 -0
  259. netgen/include/visualization/mvdraw.hpp +325 -0
  260. netgen/include/visualization/vispar.hpp +128 -0
  261. netgen/include/visualization/visual.hpp +28 -0
  262. netgen/include/visualization/visual_api.hpp +10 -0
  263. netgen/include/visualization/vssolution.hpp +399 -0
  264. netgen/lib/libnggui.lib +0 -0
  265. netgen/lib/ngcore.lib +0 -0
  266. netgen/lib/nglib.lib +0 -0
  267. netgen/lib/togl.lib +0 -0
  268. netgen/libnggui.dll +0 -0
  269. netgen/libngguipy.lib +0 -0
  270. netgen/libngguipy.pyd +0 -0
  271. netgen/libngpy/_NgOCC.pyi +1545 -0
  272. netgen/libngpy/__init__.pyi +7 -0
  273. netgen/libngpy/_csg.pyi +259 -0
  274. netgen/libngpy/_geom2d.pyi +323 -0
  275. netgen/libngpy/_meshing.pyi +1111 -0
  276. netgen/libngpy/_stl.pyi +131 -0
  277. netgen/libngpy.lib +0 -0
  278. netgen/libngpy.pyd +0 -0
  279. netgen/meshing.py +65 -0
  280. netgen/ngcore.dll +0 -0
  281. netgen/nglib.dll +0 -0
  282. netgen/occ.py +52 -0
  283. netgen/read_gmsh.py +259 -0
  284. netgen/read_meshio.py +22 -0
  285. netgen/stl.py +2 -0
  286. netgen/togl.dll +0 -0
  287. netgen/version.py +2 -0
  288. netgen/webgui.py +529 -0
  289. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/boundarycondition.geo +16 -0
  290. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/boxcyl.geo +32 -0
  291. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/circle_on_cube.geo +27 -0
  292. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cone.geo +13 -0
  293. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cube.geo +16 -0
  294. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubeandring.geo +55 -0
  295. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubeandspheres.geo +21 -0
  296. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubemcyl.geo +18 -0
  297. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubemsphere.geo +19 -0
  298. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cylinder.geo +12 -0
  299. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cylsphere.geo +12 -0
  300. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/doc/ng4.pdf +0 -0
  301. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ellipsoid.geo +8 -0
  302. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ellipticcyl.geo +10 -0
  303. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/extrusion.geo +99 -0
  304. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/fichera.geo +24 -0
  305. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/frame.step +11683 -0
  306. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/hinge.stl +8486 -0
  307. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/lshape3d.geo +26 -0
  308. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/manyholes.geo +26 -0
  309. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/manyholes2.geo +26 -0
  310. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/matrix.geo +27 -0
  311. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ortho.geo +11 -0
  312. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/part1.stl +2662 -0
  313. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/period.geo +33 -0
  314. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/exportNeutral.py +26 -0
  315. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/mesh.py +19 -0
  316. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/shaft.geo +65 -0
  317. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/revolution.geo +18 -0
  318. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/screw.step +1694 -0
  319. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sculpture.geo +13 -0
  320. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/shaft.geo +65 -0
  321. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/shell.geo +10 -0
  322. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sphere.geo +8 -0
  323. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sphereincube.geo +17 -0
  324. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/square.in2d +35 -0
  325. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/squarecircle.in2d +48 -0
  326. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/squarehole.in2d +47 -0
  327. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/torus.geo +8 -0
  328. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/trafo.geo +57 -0
  329. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twobricks.geo +15 -0
  330. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twocubes.geo +18 -0
  331. netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twocyl.geo +16 -0
  332. netgen_mesher-6.2.2506.post35.dev0.dist-info/METADATA +15 -0
  333. netgen_mesher-6.2.2506.post35.dev0.dist-info/RECORD +340 -0
  334. netgen_mesher-6.2.2506.post35.dev0.dist-info/WHEEL +5 -0
  335. netgen_mesher-6.2.2506.post35.dev0.dist-info/entry_points.txt +2 -0
  336. netgen_mesher-6.2.2506.post35.dev0.dist-info/licenses/AUTHORS +1 -0
  337. netgen_mesher-6.2.2506.post35.dev0.dist-info/licenses/LICENSE +504 -0
  338. netgen_mesher-6.2.2506.post35.dev0.dist-info/top_level.txt +2 -0
  339. pyngcore/__init__.py +1 -0
  340. pyngcore/pyngcore.cp314-win_amd64.pyd +0 -0
@@ -0,0 +1,211 @@
1
+ #ifndef FILE_RULER3
2
+ #define FILE_RULER3
3
+
4
+ namespace netgen
5
+ {
6
+
7
+ /**
8
+ 3D element generation rule.
9
+ */
10
+ class vnetrule
11
+ {
12
+ private:
13
+ /// rule is applicable for quality classes above this value
14
+ int quality;
15
+ /// name of rule
16
+ char * name;
17
+ /// point coordinates in reference position
18
+ NgArray<Point3d> points;
19
+ /// old and new faces in reference numbering
20
+ NgArray<Element2d> faces;
21
+ /// additional edges of rule
22
+ NgArray<twoint> edges;
23
+
24
+ /// points of freezone in reference coordinates
25
+ NgArray<Point3d> freezone;
26
+ /// points of freezone in reference coordinates if tolcalss to infty
27
+ NgArray<Point3d> freezonelimit;
28
+ /// point index, if point equal to mappoint, otherwise 0
29
+ NgArray<int> freezonepi;
30
+ /// faces of each convex part of freezone
31
+ NgArray<NgArray<threeint>*> freefaces;
32
+ /// set of points of each convex part of freezone
33
+ NgArray<NgArray<int>*> freesets;
34
+ /// points of transformed freezone
35
+ NgArray<Point3d> transfreezone;
36
+ /// edges of each convex part of freezone
37
+ NgArray<NgArray<twoint>*> freeedges;
38
+
39
+ /// face numbers to be deleted
40
+ NgArray<int> delfaces;
41
+ /// elements to be generated
42
+ NgArray<Element> elements;
43
+ /// tolerances for points and faces (used ??)
44
+ NgArray<double> tolerances, linetolerances;
45
+ /// transformation matrix
46
+ DenseMatrix oldutonewu;
47
+ /// transformation matrix: deviation old point to dev. freezone
48
+ DenseMatrix * oldutofreezone;
49
+ /** transformation matrix: deviation old point to dev. freezone,
50
+ quality class to infinity */
51
+ DenseMatrix * oldutofreezonelimit;
52
+
53
+ // can be deleted:
54
+ // BaseMatrix *outf, *outfl;
55
+
56
+ /**
57
+ a point is outside of convex part of freezone,
58
+ iff mat * (point, 1) >= 0 for each component (correct ?)
59
+ */
60
+ NgArray<DenseMatrix*> freefaceinequ;
61
+ ///
62
+ NgArray<fourint> orientations;
63
+ /**
64
+ flags specified in rule-description file:
65
+ t .. test rule
66
+ */
67
+ NgArray<char> flags;
68
+
69
+ /**
70
+ topological distance of face to base element
71
+ non-connected: > 100 (??)
72
+ */
73
+ NgArray<int> fnearness;
74
+ NgArray<int> pnearness;
75
+ int maxpnearness;
76
+
77
+ /// number of old points in rule
78
+ int noldp;
79
+ /// number of new poitns in rule
80
+ int noldf;
81
+ /// box containing free-zone
82
+ public:
83
+ // double fzminx, fzmaxx, fzminy, fzmaxy, fzminz, fzmaxz;
84
+ Box3d fzbox;
85
+
86
+ public:
87
+
88
+ ///
89
+ vnetrule ();
90
+ ///
91
+ ~vnetrule ();
92
+ ///
93
+ int GetNP () const { return points.Size(); }
94
+ ///
95
+ int GetNF () const { return faces.Size(); }
96
+ ///
97
+ int GetNE () const { return elements.Size(); }
98
+ ///
99
+ int GetNO () const { return orientations.Size(); }
100
+ ///
101
+ int GetNEd () const { return edges.Size(); }
102
+ ///
103
+ int GetNOldP () const { return noldp; }
104
+ ///
105
+ int GetNOldF () const { return noldf; }
106
+ ///
107
+ int GetNDelF () const { return delfaces.Size(); }
108
+ ///
109
+ int GetQuality () const { return quality; }
110
+ ///
111
+ int GetFNearness (int fi) const { return fnearness.Get(fi); }
112
+ ///
113
+ int GetPNearness (int pi) const { return pnearness.Get(pi); }
114
+ ///
115
+ int GetMaxPNearness () const { return maxpnearness; }
116
+
117
+
118
+ ///
119
+ const Point3d & GetPoint (int i) const { return points.Get(i); }
120
+ ///
121
+ const Element2d & GetFace (int i) const { return faces.Get(i); }
122
+ ///
123
+ const Element & GetElement (int i) const { return elements.Get(i); }
124
+ ///
125
+ const twoint & GetEdge (int i) const { return edges.Get(i); }
126
+ ///
127
+ int GetDelFace (int i) const { return delfaces.Get(i); }
128
+ ///
129
+ int IsDelFace (int fn) const;
130
+
131
+ ///
132
+ float CalcPointDist (int pi, const Point3d & p) const;
133
+ ///
134
+ double PointDistFactor (int pi) const
135
+ {
136
+ return tolerances.Get(pi);
137
+ }
138
+ ///
139
+ void SetFreeZoneTransformation (const Vector & allp,
140
+ int tolclass);
141
+ ///
142
+ int IsInFreeZone (const Point3d & p) const;
143
+ /**
144
+ 0 not in free-zone
145
+ 1 in free-zone
146
+ -1 maybe
147
+ */
148
+ int IsTriangleInFreeZone (const Point3d & p1, const Point3d & p2,
149
+ const Point3d & p3, const NgArray<int> & pi, int newone);
150
+ ///
151
+ int IsQuadInFreeZone (const Point3d & p1, const Point3d & p2,
152
+ const Point3d & p3, const Point3d & p4,
153
+ const NgArray<int> & pi, int newone);
154
+ ///
155
+ int IsTriangleInFreeSet (const Point3d & p1, const Point3d & p2,
156
+ const Point3d & p3, int fs, const NgArray<int> & pi, int newone);
157
+
158
+ ///
159
+ int IsQuadInFreeSet (const Point3d & p1, const Point3d & p2,
160
+ const Point3d & p3, const Point3d & p4,
161
+ int fs, const NgArray<int> & pi, int newone);
162
+
163
+ ///
164
+ int ConvexFreeZone () const;
165
+
166
+ /// if t1 and t2 are neighbourtriangles, NTP returns the opposite Point of t1 in t2
167
+ int NeighbourTrianglePoint (const threeint & t1, const threeint & t2) const;
168
+ ///
169
+ const Point3d & GetTransFreeZone (int i) { return transfreezone.Get(i); }
170
+
171
+ ///
172
+ int GetNP (int fn) const
173
+ { return faces.Get(fn).GetNP(); }
174
+ ///
175
+ PointIndex GetPointNr (int fn, int endp) const
176
+ { return faces.Get(fn).PNum(endp); }
177
+ ///
178
+ PointIndex GetPointNrMod (int fn, int endp) const
179
+ { return faces.Get(fn).PNumMod(endp); }
180
+ ///
181
+ const fourint & GetOrientation (int i) { return orientations.Get(i); }
182
+
183
+ ///
184
+ int TestFlag (char flag) const;
185
+
186
+ ///
187
+ const DenseMatrix & GetOldUToNewU () const { return oldutonewu; }
188
+ //
189
+ // const DenseMatrix & GetOldUToFreeZone () const { return oldutofreezone; }
190
+ //
191
+ // const DenseMatrix & GetOldUToFreeZoneLimit () const
192
+ // { return oldutofreezonelimit; }
193
+ ///
194
+ const char * Name () const { return name; }
195
+ ///
196
+ void LoadRule (istream & ist);
197
+
198
+ ///
199
+ const NgArray<Point3d> & GetTransFreeZone () { return transfreezone; }
200
+ ///
201
+ int TestOk () const;
202
+
203
+ ///
204
+ friend void TestRules ();
205
+ ///
206
+ // friend void Plot3DRule (const ROT3D & r, char key);
207
+ };
208
+
209
+ } // namespace netgen
210
+ #endif
211
+
@@ -0,0 +1,141 @@
1
+ #ifndef FILE_SOLDATA
2
+ #define FILE_SOLDATA
3
+
4
+ #include <myadt.hpp> // for tAVX
5
+ namespace netgen
6
+ {
7
+
8
+ using namespace std;
9
+
10
+ class SolutionData
11
+ {
12
+ protected:
13
+
14
+ string name;
15
+ int components;
16
+ bool iscomplex;
17
+
18
+ int multidimcomponent;
19
+
20
+ public:
21
+ SolutionData (const string & aname,
22
+ int acomponents = 1, bool aiscomplex = 0)
23
+ : name(aname), components(acomponents), iscomplex(aiscomplex)
24
+ { ; }
25
+
26
+ virtual ~SolutionData ()
27
+ { ; }
28
+
29
+ int GetComponents()
30
+ {
31
+ return components;
32
+ }
33
+
34
+ bool IsComplex()
35
+ {
36
+ return iscomplex;
37
+ }
38
+
39
+ virtual bool GetValue (int /* elnr */,
40
+ double /* lam1 */, double /* lam2 */, double /* lam3 */,
41
+ double * /* values */)
42
+ {
43
+ return false;
44
+ }
45
+
46
+ virtual bool GetValue (int selnr,
47
+ const double xref[], const double x[], const double dxdxref[],
48
+ double * values)
49
+ {
50
+ return GetValue (selnr, xref[0], xref[1], xref[2], values);
51
+ }
52
+
53
+ virtual bool GetMultiValue (int elnr, int facetnr, int npts,
54
+ const double * xref, int sxref,
55
+ const double * x, int sx,
56
+ const double * dxdxref, int sdxdxref,
57
+ double * values, int svalues)
58
+ {
59
+ bool res = false;
60
+ for (int i = 0; i < npts; i++)
61
+ res = GetValue (elnr, &xref[i*sxref], &x[i*sx], &dxdxref[i*sdxdxref], &values[i*svalues]);
62
+ return res;
63
+ }
64
+
65
+
66
+
67
+ virtual bool GetSurfValue (int /* selnr */, int facetnr,
68
+ double /* lam1 */, double /* lam2 */,
69
+ double * /* values */)
70
+ {
71
+ return false;
72
+ }
73
+
74
+
75
+ virtual bool GetSurfValue (int selnr, int facetnr,
76
+ const double xref[], const double x[], const double dxdxref[],
77
+ double * values)
78
+ {
79
+ return GetSurfValue (selnr, facetnr, xref[0], xref[1], values);
80
+ }
81
+
82
+
83
+ virtual bool GetMultiSurfValue (int selnr, int facetnr, int npts,
84
+ const double * xref, int sxref,
85
+ const double * x, int sx,
86
+ const double * dxdxref, int sdxdxref,
87
+ double * values, int svalues)
88
+ {
89
+ bool res = false;
90
+ for (int i = 0; i < npts; i++)
91
+ res = GetSurfValue (selnr, facetnr, &xref[i*sxref], &x[i*sx], &dxdxref[i*sdxdxref], &values[i*svalues]);
92
+ return res;
93
+ }
94
+
95
+ virtual bool GetMultiSurfValue (size_t selnr, size_t facetnr, size_t npts,
96
+ const SIMD<double> * xref,
97
+ const SIMD<double> * x,
98
+ const SIMD<double> * dxdxref,
99
+ SIMD<double> * values)
100
+ {
101
+ cerr << "GetMultiSurfVaue not overloaded for SIMD<double>" << endl;
102
+ return false;
103
+ }
104
+
105
+ virtual bool GetSegmentValue (int segnr, double xref, double * values)
106
+ { return false; }
107
+
108
+
109
+ virtual int GetNumMultiDimComponents ()
110
+ {
111
+ return 1;
112
+ }
113
+
114
+ virtual void SetMultiDimComponent (int mc)
115
+ {
116
+ if (mc >= GetNumMultiDimComponents()) mc = GetNumMultiDimComponents()-1;
117
+ if (mc < 0) mc = 0;
118
+ multidimcomponent = mc;
119
+ }
120
+ };
121
+
122
+
123
+ class DLL_HEADER MouseEventHandler
124
+ {
125
+ public:
126
+ virtual void DblClick (int elnr, double x, double y, double z) = 0;
127
+ };
128
+
129
+
130
+ class DLL_HEADER UserVisualizationObject
131
+ {
132
+ public:
133
+ virtual ~UserVisualizationObject() { ; }
134
+ virtual void Draw () = 0;
135
+ };
136
+
137
+
138
+ }
139
+
140
+ #endif
141
+
@@ -0,0 +1,17 @@
1
+ #ifndef FILE_SPECIALS
2
+ #define FILE_SPECIALS
3
+
4
+ /*
5
+
6
+ Very special implementations ..
7
+
8
+ */
9
+
10
+ namespace netgen {
11
+ ///
12
+ DLL_HEADER extern void CutOffAndCombine (Mesh & mesh, const Mesh & othermesh);
13
+
14
+ DLL_HEADER extern void HelmholtzMesh (Mesh & mesh);
15
+
16
+ } // namespace netgen
17
+ #endif
@@ -0,0 +1,73 @@
1
+ #ifndef FILE_SURFACEGEOM
2
+ #define FILE_SURFACEGEOM
3
+
4
+ /* *************************************************************************/
5
+ /* File: surfacegeom.hpp */
6
+ /* Author: Michael Neunteufel */
7
+ /* Date: Jun. 2020 */
8
+ /* *************************************************************************/
9
+
10
+
11
+ #include <functional>
12
+
13
+
14
+ namespace netgen
15
+ {
16
+
17
+ class DLL_HEADER SurfaceGeometry : public NetgenGeometry
18
+ {
19
+ function<Vec<3>(Point<2>)> func;
20
+ double eps=1e-4;
21
+
22
+ private:
23
+
24
+ void CalcHesse(double u, double v, Vec<3>& f_uu, Vec<3>& f_vv, Vec<3>& f_uv) const;
25
+ public:
26
+
27
+ SurfaceGeometry();
28
+ SurfaceGeometry(function<Vec<3>(Point<2>)> func);
29
+ SurfaceGeometry(const SurfaceGeometry& geom);
30
+ SurfaceGeometry& operator =(const SurfaceGeometry& geom)
31
+ {
32
+ func = geom.func;
33
+ eps = geom.eps;
34
+ return *this;
35
+ }
36
+
37
+ Array<Vec<3>> GetTangentVectors(double u, double v) const;
38
+
39
+ void GetTangentVectors(double u, double v, Array<Vec<3>>& tang) const;
40
+
41
+
42
+ virtual Vec<3> GetNormal(int surfind, const Point<3> & p, const PointGeomInfo* gi) const override;
43
+
44
+ virtual PointGeomInfo ProjectPoint(int surfind, Point<3> & p) const override;
45
+
46
+ virtual void ProjectPointEdge (int surfind, int surfind2, Point<3> & p,
47
+ EdgePointGeomInfo* gi = nullptr) const override;
48
+
49
+ virtual bool ProjectPointGI (int surfind, Point<3> & p, PointGeomInfo & gi) const override;
50
+
51
+ virtual bool CalcPointGeomInfo(int surfind, PointGeomInfo& gi, const Point<3> & p3) const override;
52
+
53
+ virtual void PointBetweenEdge(const Point<3> & p1, const Point<3> & p2, double secpoint,
54
+ int surfi1, int surfi2,
55
+ const EdgePointGeomInfo & ap1,
56
+ const EdgePointGeomInfo & ap2,
57
+ Point<3> & newp, EdgePointGeomInfo & newgi) const override;
58
+
59
+ virtual void PointBetween(const Point<3> & p1, const Point<3> & p2, double secpoint,
60
+ int surfi,
61
+ const PointGeomInfo & gi1,
62
+ const PointGeomInfo & gi2,
63
+ Point<3> & newp, PointGeomInfo & newgi) const override;
64
+
65
+ int GenerateStructuredMesh(shared_ptr<Mesh> & mesh, bool quads, int nx, int ny, bool flip_triangles, const Array<Point<3>>& bbbpts, const Array<string>& bbbnames, const Array<Point<3>>& hppoints, const Array<float>& hpptsfac, const Array<string>& hpbnd, const Array<float>& hpbndfac, Array<double> layer_thickness[4], bool layer_quad);
66
+
67
+ };
68
+
69
+ }
70
+
71
+
72
+
73
+ #endif //SURFACEGEOM