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,47 @@
1
+ #ifndef FILE_MESHFUNC
2
+ #define FILE_MESHFUNC
3
+
4
+ /**************************************************************************/
5
+ /* File: meshfunc.hpp */
6
+ /* Author: Johannes Gerstmayr, Joachim Schoeberl */
7
+ /* Date: 26. Jan. 98 */
8
+ /**************************************************************************/
9
+
10
+ #include <mydefs.hpp>
11
+ #include "meshing3.hpp"
12
+ #include "meshtype.hpp"
13
+
14
+ namespace netgen
15
+ {
16
+ /*
17
+ Functions for mesh-generations strategies
18
+ */
19
+
20
+ class Mesh;
21
+ // class CSGeometry;
22
+
23
+ /// Build tet-mesh
24
+ DLL_HEADER MESHING3_RESULT MeshVolume (const MeshingParameters & mp, Mesh& mesh3d);
25
+
26
+ /// Build mixed-element mesh
27
+ // MESHING3_RESULT MeshMixedVolume (MeshingParameters & mp, Mesh& mesh3d);
28
+
29
+ /// Optimize tet-mesh
30
+ DLL_HEADER MESHING3_RESULT OptimizeVolume (const MeshingParameters & mp, Mesh& mesh3d);
31
+ // const CSGeometry * geometry = NULL);
32
+
33
+ DLL_HEADER void RemoveIllegalElements (Mesh & mesh3d, int domain = 0);
34
+ DLL_HEADER void ConformToFreeSegments (Mesh & mesh3d, int domain);
35
+
36
+
37
+ enum MESHING_STEP {
38
+ MESHCONST_ANALYSE = 1,
39
+ MESHCONST_MESHEDGES = 2,
40
+ MESHCONST_MESHSURFACE = 3,
41
+ MESHCONST_OPTSURFACE = 4,
42
+ MESHCONST_MESHVOLUME = 5,
43
+ MESHCONST_OPTVOLUME = 6
44
+ };
45
+ } // namespace netgen
46
+
47
+ #endif
@@ -0,0 +1,63 @@
1
+ #ifndef FILE_MESHING
2
+ #define FILE_MESHING
3
+
4
+ #include "../include/myadt.hpp"
5
+ #include "../include/gprim.hpp"
6
+ #include "../include/linalg.hpp"
7
+ #include "../include/opti.hpp"
8
+
9
+
10
+ namespace netgen
11
+ {
12
+ // extern int printmessage_importance;
13
+
14
+ // class CSGeometry;
15
+ using namespace std;
16
+ class NetgenGeometry;
17
+ }
18
+
19
+
20
+ // #include "msghandler.hpp"
21
+ // #include "meshtype.hpp"
22
+ // #include "localh.hpp"
23
+ // #include "topology.hpp"
24
+ // #include "meshclass.hpp"
25
+ // #include "global.hpp"
26
+
27
+ #include "meshtool.hpp"
28
+
29
+ #include "ruler2.hpp"
30
+ #include "adfront2.hpp"
31
+
32
+
33
+ #include "meshing2.hpp"
34
+ #include "improve2.hpp"
35
+
36
+
37
+ #include "geomsearch.hpp"
38
+ #include "adfront3.hpp"
39
+ #include "ruler3.hpp"
40
+
41
+ #include "findip.hpp"
42
+ #include "findip2.hpp"
43
+
44
+ #include "meshing3.hpp"
45
+ #include "improve3.hpp"
46
+
47
+ #include "curvedelems.hpp"
48
+ #include "clusters.hpp"
49
+ #include "meshfunc.hpp"
50
+
51
+ #include "bisect.hpp"
52
+ #include "hprefinement.hpp"
53
+
54
+ #include "specials.hpp"
55
+ #include "validate.hpp"
56
+ #include "basegeom.hpp"
57
+ #include "surfacegeom.hpp"
58
+
59
+ #include "paralleltop.hpp"
60
+
61
+
62
+
63
+ #endif
@@ -0,0 +1,163 @@
1
+ #ifndef NETGEN_MESHING2_HPP
2
+ #define NETGEN_MESHING2_HPP
3
+
4
+ /**************************************************************************/
5
+ /* File: meshing2.hpp */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 01. Okt. 95 */
8
+ /**************************************************************************/
9
+
10
+
11
+ #include "adfront2.hpp"
12
+ #include "ruler2.hpp"
13
+ #include "basegeom.hpp"
14
+
15
+ namespace netgen
16
+ {
17
+
18
+
19
+ enum MESHING2_RESULT
20
+ {
21
+ MESHING2_OK = 0,
22
+ MESHING2_GIVEUP = 1
23
+ };
24
+
25
+
26
+ /*
27
+
28
+ The basis class for 2D mesh generation.
29
+ Has the method GenerateMesh
30
+
31
+ For surface mesh generation, or non-Euklidean meshing,
32
+ derive from Meshing2, and replace transformation.
33
+
34
+ */
35
+
36
+ class Meshing2
37
+ {
38
+ /// the current advancing front
39
+ AdFront2 adfront;
40
+ /// rules for mesh generation
41
+ Array<unique_ptr<netrule>> rules;
42
+ /// statistics
43
+ NgArray<int> ruleused, canuse, foundmap;
44
+ ///
45
+ Box<3> boundingbox;
46
+ ///
47
+ double starttime;
48
+ ///
49
+ double maxarea;
50
+
51
+ Vec3d ex, ey, ez;
52
+ Point<3> p1, p2;
53
+
54
+ const NetgenGeometry& geo;
55
+
56
+ public:
57
+ ///
58
+ DLL_HEADER Meshing2 (const NetgenGeometry& geo,
59
+ const MeshingParameters & mp,
60
+ const Box<3> & aboundingbox);
61
+
62
+ ///
63
+ DLL_HEADER virtual ~Meshing2 ();
64
+
65
+ /// Load rules, either from file, or compiled rules
66
+ void LoadRules (const char * filename, bool quad);
67
+
68
+ ///
69
+ DLL_HEADER MESHING2_RESULT GenerateMesh (Mesh & mesh, const MeshingParameters & mp, double gh, int facenr, int layer=1);
70
+
71
+ DLL_HEADER void Delaunay (Mesh & mesh, int domainnr, const MeshingParameters & mp);
72
+ DLL_HEADER void BlockFillLocalH (Mesh & mesh, const MeshingParameters & mp);
73
+
74
+
75
+ ///
76
+ DLL_HEADER int AddPoint (const Point3d & p, PointIndex globind, MultiPointGeomInfo * mgi = NULL,
77
+ bool pointonsurface = true);
78
+ DLL_HEADER PointIndex GetGlobalIndex(int pi) const;
79
+
80
+ ///
81
+ DLL_HEADER void AddBoundaryElement (INDEX i1, INDEX i2,
82
+ const PointGeomInfo & gi1, const PointGeomInfo & gi2);
83
+
84
+ ///
85
+ void SetStartTime (double astarttime);
86
+
87
+ ///
88
+ void SetMaxArea (double amaxarea);
89
+
90
+ protected:
91
+ ///
92
+ virtual void StartMesh ();
93
+ ///
94
+ virtual void EndMesh ();
95
+ ///
96
+ virtual double CalcLocalH (const Point<3> & p, double gh) const;
97
+
98
+ ///
99
+ virtual void DefineTransformation (const Point<3> & p1, const Point<3> & p2,
100
+ const PointGeomInfo * geominfo1,
101
+ const PointGeomInfo * geominfo2);
102
+ ///
103
+ virtual void TransformToPlain (const Point<3> & locpoint, const MultiPointGeomInfo & geominfo,
104
+ Point<2> & plainpoint, double h, int & zone);
105
+ /// return 0 .. ok
106
+ /// return >0 .. cannot transform point to true surface
107
+ virtual int TransformFromPlain (const Point<2>& plainpoint,
108
+ Point<3> & locpoint,
109
+ PointGeomInfo & geominfo,
110
+ double h);
111
+
112
+ /// projects to surface
113
+ /// return 0 .. ok
114
+ virtual int BelongsToActiveChart (const Point3d & p,
115
+ const PointGeomInfo & gi);
116
+
117
+ /// computes geoinfo data for line with respect to
118
+ /// selected chart
119
+ virtual int ComputePointGeomInfo (const Point3d & p,
120
+ PointGeomInfo & gi);
121
+
122
+ /// Tries to select unique geominfo on active chart
123
+ /// return 0: success
124
+ /// return 1: failed
125
+ virtual int ChooseChartPointGeomInfo (const MultiPointGeomInfo & mpgi,
126
+ PointGeomInfo & pgi);
127
+
128
+
129
+
130
+ /*
131
+ tests, whether endpoint (= 1 or 2) of line segment p1-p2
132
+ is inside of the selected chart. The endpoint must be on the
133
+ chart
134
+ */
135
+ virtual int IsLineVertexOnChart (const Point3d & p1, const Point3d & p2,
136
+ int endpoint, const PointGeomInfo & geominfo);
137
+
138
+ /*
139
+ get (projected) boundary of current chart
140
+ */
141
+ virtual void GetChartBoundary (NgArray<Point<2>> & points,
142
+ NgArray<Point<3>> & points3d,
143
+ NgArray<INDEX_2> & lines, double p) const;
144
+
145
+ virtual double Area () const;
146
+
147
+
148
+ /** Applies 2D rules.
149
+ Tests all 2D rules */
150
+ int ApplyRules (NgArray<Point<2>> & lpoints,
151
+ NgArray<int> & legalpoints,
152
+ int maxlegalpoint,
153
+ NgArray<INDEX_2> & llines,
154
+ int maxlegelline,
155
+ NgArray<Element2d> & elements, NgArray<INDEX> & dellines,
156
+ int tolerance,
157
+ const MeshingParameters & mp);
158
+
159
+
160
+ };
161
+ } // namespace netgen
162
+
163
+ #endif // NETGEN_MESHING2_HPP
@@ -0,0 +1,123 @@
1
+ #ifndef FILE_MESHING3
2
+ #define FILE_MESHING3
3
+
4
+ #include "meshclass.hpp"
5
+ #include "adfront3.hpp"
6
+ #include "ruler3.hpp"
7
+
8
+ namespace netgen
9
+ {
10
+
11
+ enum MESHING3_RESULT
12
+ {
13
+ MESHING3_OK = 0,
14
+ MESHING3_GIVEUP = 1,
15
+ MESHING3_NEGVOL = 2,
16
+ MESHING3_OUTERSTEPSEXCEEDED = 3,
17
+ MESHING3_TERMINATE = 4,
18
+ MESHING3_BADSURFACEMESH = 5
19
+ };
20
+
21
+
22
+ /// 3d volume mesh generation
23
+ class Meshing3
24
+ {
25
+ /// current state of front
26
+ unique_ptr<AdFront3> adfront;
27
+ /// 3d generation rules
28
+ Array<unique_ptr<vnetrule>> rules;
29
+ /// counts how often a rule is used
30
+ Array<int> ruleused, canuse, foundmap;
31
+ /// describes, why a rule is not applied
32
+ Array<string> problems;
33
+ /// tolerance criterion
34
+ double tolfak;
35
+ public:
36
+ ///
37
+ Meshing3 (const string & rulefilename);
38
+ ///
39
+ Meshing3 (const char ** rulep);
40
+ ///
41
+ virtual ~Meshing3 ();
42
+
43
+ ///
44
+ void LoadRules (const char * filename, const char ** prules);
45
+ ///
46
+ MESHING3_RESULT GenerateMesh (Mesh & mesh, const MeshingParameters & mp);
47
+
48
+ ///
49
+ int ApplyRules (Array<Point3d, PointIndex> & lpoints,
50
+ Array<int, PointIndex> & allowpoint,
51
+ Array<MiniElement2d> & lfaces, INDEX lfacesplit,
52
+ INDEX_2_HASHTABLE<int> & connectedpairs,
53
+ NgArray<Element> & elements,
54
+ NgArray<INDEX> & delfaces, int tolerance,
55
+ double sloppy, int rotind1,
56
+ float & retminerr);
57
+
58
+ ///
59
+ PointIndex AddPoint (const Point3d & p, PointIndex globind);
60
+ ///
61
+ void AddBoundaryElement (const Element2d & elem);
62
+ ///
63
+ void AddBoundaryElement (const MiniElement2d & elem);
64
+ ///
65
+ int AddConnectedPair (const INDEX_2 & pair);
66
+
67
+ ///
68
+ void BlockFill (Mesh & mesh, double gh);
69
+ ///
70
+ void BlockFillLocalH (Mesh & mesh, const MeshingParameters & mp);
71
+
72
+ /// uses points of adfront, and puts new elements into mesh
73
+ void Delaunay (Mesh & mesh, int domainnr, const MeshingParameters & mp);
74
+ ///
75
+ friend class PlotVolMesh;
76
+ ///
77
+ friend void TestRules ();
78
+ };
79
+
80
+
81
+
82
+
83
+ /// status of mesh generation
84
+ class MeshingStat3d
85
+ {
86
+ public:
87
+ ///
88
+ MeshingStat3d ();
89
+ ///
90
+ int cntsucc;
91
+ ///
92
+ int cnttrials;
93
+ ///
94
+ int cntelem;
95
+ ///
96
+ int nff;
97
+ ///
98
+ int qualclass;
99
+ ///
100
+ double vol0;
101
+ ///
102
+ double vol;
103
+ ///
104
+ double h;
105
+ ///
106
+ int problemindex;
107
+ };
108
+
109
+
110
+
111
+
112
+
113
+ /*
114
+ template <typename POINTArray, typename FACEArray>
115
+ extern int FindInnerPoint (POINTArray & grouppoints,
116
+ FACEArray & groupfaces,
117
+ Point3d & p);
118
+
119
+ */
120
+
121
+ } // namespace netgen
122
+
123
+ #endif
@@ -0,0 +1,90 @@
1
+ #ifndef NETGEN_MESHTOOL_HPP
2
+ #define NETGEN_MESHTOOL_HPP
3
+
4
+ // #include "../general/ngarray.hpp"
5
+ // #include "../gprim/geom3d.hpp"
6
+ // #include "../gprim/geomobjects.hpp"
7
+
8
+ #include "meshtype.hpp"
9
+ #include "meshclass.hpp"
10
+
11
+ namespace netgen {
12
+ ///
13
+ extern void MeshQuality2d (const Mesh & mesh);
14
+
15
+ ///
16
+ extern void MeshQuality3d (const Mesh & mesh,
17
+ NgArray<int> * inclass = NULL);
18
+
19
+ ///
20
+ extern void SaveEdges (const Mesh & mesh,
21
+ const char * geomfile,
22
+ double h,
23
+ char * filename);
24
+
25
+ ///
26
+ extern void SaveSurfaceMesh (const Mesh & mesh,
27
+ double h,
28
+ char * filename);
29
+ /*
30
+ ///
31
+ extern void Save2DMesh (
32
+ const Mesh & mesh2d,
33
+ const NgArray<class SplineSegment*> * splines,
34
+ ostream & outfile);
35
+ */
36
+
37
+ class Surface;
38
+ ///
39
+ extern void SaveVolumeMesh (
40
+ const NgArray<Point3d> & points,
41
+ const NgArray<Element> & elements,
42
+ const NgArray<Element> & volelements,
43
+ const NgArray<Surface*> & surfaces,
44
+ char * filename);
45
+
46
+ ///
47
+ void SaveVolumeMesh (const Mesh & mesh,
48
+ const class NetgenGeometry & geometry,
49
+ char * filename);
50
+
51
+ ///
52
+ extern int CheckCode ();
53
+
54
+
55
+ ///
56
+ extern double CalcTetBadness (const Point3d & p1, const Point3d & p2,
57
+ const Point3d & p3, const Point3d & p4,
58
+ double h,
59
+ const MeshingParameters & mp);
60
+ ///
61
+ extern double CalcTetBadnessGrad (const Point3d & p1, const Point3d & p2,
62
+ const Point3d & p3, const Point3d & p4,
63
+ double h, int pi,
64
+ Vec<3> & grad,
65
+ const MeshingParameters & mp);
66
+
67
+
68
+ /** Calculates volume of an element.
69
+ The volume of the tetrahedron el is computed
70
+ */
71
+ // extern double CalcVolume (const NgArray<Point3d> & points,
72
+ // const Element & el);
73
+
74
+ /** The total volume of all elements is computed.
75
+ This function calculates the volume of the mesh */
76
+ extern double CalcVolume (const NgArray<Point3d> & points,
77
+ const NgArray<Element> & elements);
78
+
79
+ ///
80
+ extern int CheckSurfaceMesh (const Mesh & mesh);
81
+
82
+ ///
83
+ extern int CheckSurfaceMesh2 (const Mesh & mesh);
84
+ ///
85
+ extern int CheckMesh3D (const Mesh & mesh);
86
+ ///
87
+ extern void RemoveProblem (Mesh & mesh, int domainnr);
88
+
89
+ } // namespace netgen
90
+ #endif // NETGEN_MESHTOOL_HPP