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,194 @@
1
+ #ifndef FILE_SPECPOIN
2
+ #define FILE_SPECPOIN
3
+
4
+
5
+ /**************************************************************************/
6
+ /* File: specpoin.hpp */
7
+ /* Author: Joachim Schoeberl */
8
+ /* Date: 01. Okt. 95 */
9
+ /**************************************************************************/
10
+
11
+ namespace netgen
12
+ {
13
+
14
+ // extern DLL_HEADER MeshingParameters mparam;
15
+
16
+ /*
17
+
18
+ Special Point Calculation
19
+
20
+ */
21
+
22
+ class Surface;
23
+ class Solid;
24
+
25
+ /// Special point.
26
+ class SpecialPoint
27
+ {
28
+ public:
29
+ /// coordinates
30
+ Point<3> p;
31
+ /// tangential to edge
32
+ Vec<3> v;
33
+ ///
34
+ int layer;
35
+ /// point must be used in mesh
36
+ bool unconditional;
37
+
38
+ /// surfaces defining edge
39
+ int s1, s2;
40
+ /// if s1 and s2 are only representatives, then these are the original indices
41
+ int s1_orig, s2_orig;
42
+ int nr;
43
+ ///
44
+ SpecialPoint () : p(0,0,0), v(0,0,0), layer(0), unconditional(0), s1(0), s2(0), s1_orig(0), s2_orig(0)
45
+ { ; }
46
+
47
+ ///
48
+ SpecialPoint (const SpecialPoint & sp2);
49
+
50
+ ///
51
+ SpecialPoint & operator= (const SpecialPoint & sp2);
52
+
53
+ ///
54
+ void Print (ostream & str) const;
55
+
56
+
57
+ int GetLayer() const { return layer; }
58
+
59
+ ///
60
+ bool HasSurfaces (int as1, int as2) const
61
+ {
62
+ return ( (s1 == as1 && s2 == as2) || (s1 == as2 && s2 == as1) );
63
+ }
64
+ };
65
+
66
+ inline ostream & operator<< (ostream & ost, const SpecialPoint & sp)
67
+ {
68
+ sp.Print (ost);
69
+ return ost;
70
+ }
71
+
72
+
73
+
74
+
75
+ ///
76
+ class SpecialPointCalculation
77
+ {
78
+ private:
79
+ ///
80
+ const CSGeometry * geometry;
81
+ ///
82
+ NgArray<MeshPoint> * points;
83
+ ///
84
+ NgArray<long int> boxesinlevel;
85
+
86
+ ///
87
+ double size;
88
+ ///
89
+ double relydegtest; // maximal dimension of bisection interval for
90
+ /// test of degeneration parameters
91
+ double cpeps1, epeps1, epeps2, epspointdist2;
92
+
93
+ double ideps;
94
+
95
+ public:
96
+
97
+ ///
98
+ SpecialPointCalculation ();
99
+
100
+ ///
101
+ void SetIdEps(const double epsin) {ideps = epsin;}
102
+
103
+ ///
104
+ void CalcSpecialPoints (const CSGeometry & ageometry,
105
+ NgArray<MeshPoint> & points);
106
+ ///
107
+ void AnalyzeSpecialPoints (const CSGeometry & geometry,
108
+ NgArray<MeshPoint> & points,
109
+ NgArray<SpecialPoint> & specpoints);
110
+
111
+ protected:
112
+ ///
113
+ void CalcSpecialPointsRec (const Solid * sol, int layer,
114
+ const BoxSphere<3> & box,
115
+ int level,
116
+ bool calccp, bool calcep);
117
+
118
+
119
+ ///
120
+ bool CrossPointNewtonConvergence (const Surface * f1, const Surface * f2,
121
+ const Surface * f3, const BoxSphere<3> & box);
122
+ ///
123
+ bool CrossPointDegenerated (const Surface * f1, const Surface * f2,
124
+ const Surface * f3, const BoxSphere<3> & box) const;
125
+ ///
126
+ void CrossPointNewton (const Surface * f1, const Surface * f2,
127
+ const Surface * f3, Point<3> & p);
128
+
129
+ bool EdgeNewtonConvergence (const Surface * f1, const Surface * f2,
130
+ const Point<3> & p);
131
+ ///
132
+ bool EdgeDegenerated (const Surface * f1, const Surface * f2,
133
+ const BoxSphere<3> & box) const;
134
+ ///
135
+ void EdgeNewton (const Surface * f1, const Surface * f2,
136
+ Point<3> & p);
137
+ ///
138
+ bool IsEdgeExtremalPoint (const Surface * f1, const Surface * f2,
139
+ const Point<3> & p, Point<3> & pp, double rad);
140
+
141
+
142
+
143
+ /*
144
+ ///
145
+ bool ExtremalPointPossible (const Surface * f1, const Surface * f2,
146
+ int dir, const BoxSphere<3> & box);
147
+ ///
148
+ bool ExtremalPointDegenerated (const Surface * f1, const Surface * f2,
149
+ int dir, const BoxSphere<3> & box);
150
+ ///
151
+ bool ExtremalPointNewtonConvergence (const Surface * f1, const Surface * f2,
152
+ int dir, const BoxSphere<3> & box);
153
+ */
154
+ ///
155
+ void ExtremalPointNewton (const Surface * f1, const Surface * f2,
156
+ int dir, Point<3> & p);
157
+
158
+
159
+ ///
160
+ bool AddPoint (const Point<3> & p, int layer);
161
+
162
+ void ComputeExtremalPoints (const Plane * plane,
163
+ const QuadraticSurface * quadric,
164
+ NgArray<Point<3> > & pts);
165
+
166
+ void ComputeExtremalPoints (const Sphere * sphere1,
167
+ const Sphere * sphere2,
168
+ NgArray<Point<3> > & pts);
169
+
170
+ bool ComputeExtremalPoints (const RevolutionFace * rev1,
171
+ const RevolutionFace * rev2,
172
+ NgArray<Point<3> > & pts);
173
+
174
+ void ComputeCrossPoints (const Plane * plane1,
175
+ const Plane * plane2,
176
+ const Plane * plane3,
177
+ NgArray<Point<3> > & pts);
178
+
179
+ void ComputeCrossPoints (const Plane * plane1,
180
+ const Plane * plane2,
181
+ const QuadraticSurface * quadratic,
182
+ NgArray<Point<3> > & pts);
183
+
184
+ void ComputeCrossPoints (const Sphere * sphere1,
185
+ const Sphere * sphere2,
186
+ const Sphere * sphere3,
187
+ NgArray<Point<3> > & pts);
188
+ };
189
+
190
+ }
191
+
192
+ #endif
193
+
194
+
@@ -0,0 +1,99 @@
1
+ namespace netgen
2
+ {
3
+
4
+ ///
5
+ class splinesegment3d
6
+ {
7
+ ///
8
+ Point<3> p1, p2, p3;
9
+
10
+ public:
11
+ ///
12
+ splinesegment3d (const Point<3> & ap1, const Point<3> & ap2,
13
+ const Point<3> & ap3);
14
+ ///
15
+ void Evaluate (double t, Point<3> & p) const;
16
+ ///
17
+ void EvaluateTangent (double t, Vec<3> & tang) const;
18
+ ///
19
+ const Point<3> & P1() const { return p1; }
20
+ ///
21
+ const Point<3> & P2() const { return p2; }
22
+ ///
23
+ const Point<3> & P3() const { return p3; }
24
+ };
25
+
26
+ ///
27
+ class spline3d
28
+ {
29
+ ///
30
+ NgArray<splinesegment3d *> segments;
31
+
32
+ public:
33
+ ///
34
+ spline3d () { };
35
+ ///
36
+ void AddSegment (const Point<3> & ap1, const Point<3> & ap2, const Point<3> & ap3);
37
+ ///
38
+ int GetNumSegments () const { return segments.Size(); }
39
+ ///
40
+ double ProjectToSpline (Point<3> & p) const;
41
+ ///
42
+ double ProjectToSpline (Point<3> & p, double t) const;
43
+ ///
44
+ void Evaluate (double t, Point<3> & p) const;
45
+ ///
46
+ void EvaluateTangent (double t, Vec<3> & tang) const;
47
+ ///
48
+ const Point<3> & P1(int i) const { return segments.Get(i)->P1(); }
49
+ ///
50
+ const Point<3> & P2(int i) const { return segments.Get(i)->P2(); }
51
+ ///
52
+ const Point<3> & P3(int i) const { return segments.Get(i)->P3(); }
53
+ };
54
+
55
+ ///
56
+ class splinetube : public Surface
57
+ {
58
+ ///
59
+ const spline3d & middlecurve;
60
+ ///
61
+ double r;
62
+ /// Vec<3> ex, ey, ez;
63
+ Vec<2> e2x, e2y;
64
+ ///
65
+ Point<3> cp;
66
+
67
+ public:
68
+ ///
69
+ splinetube (const spline3d & amiddlecurve, double ar);
70
+
71
+ ///
72
+ virtual void DefineTangentialPlane (const Point<3> & ap1, const Point<3> & ap2);
73
+ ///
74
+ virtual void ToPlane (const Point<3> & p, Point<2> & pplain, double h, int & zone) const;
75
+ ///
76
+ virtual void FromPlane (const Point<2> & pplain, Point<3> & p, double h) const;
77
+ ///
78
+ virtual void Project (Point<3> & p) const;
79
+
80
+ // virtual int RootInBox (const box3d & box) const { return 0; }
81
+ /// 0 .. no, 1 .. yes, 2 .. maybe
82
+
83
+ virtual int BoxInSolid (const BoxSphere<3> & box) const;
84
+ /// 0 .. no, 1 .. yes, 2 .. maybe
85
+
86
+ virtual double CalcFunctionValue (const Point<3> & point) const;
87
+ ///
88
+ virtual void CalcGradient (const Point<3> & point, Vec<3> & grad) const;
89
+ ///
90
+ virtual double HesseNorm () const { return 0.5 / r; }
91
+ ///
92
+ virtual Point<3> GetSurfacePoint () const;
93
+ ///
94
+ virtual void Print (ostream & str) const;
95
+ };
96
+
97
+
98
+ }
99
+
@@ -0,0 +1,85 @@
1
+ #ifndef FILE_SPLINESURFACE
2
+ #define FILE_SPLINESURFACE
3
+
4
+
5
+ namespace netgen
6
+ {
7
+ class SplineSurface : public OneSurfacePrimitive
8
+ {
9
+ protected:
10
+ NgArray<GeomPoint<3>> geompoints;
11
+ NgArray<shared_ptr<SplineSeg<3>>> splines;
12
+ NgArray<string> bcnames;
13
+ NgArray<double> maxh;
14
+ shared_ptr<OneSurfacePrimitive> baseprimitive;
15
+ shared_ptr<NgArray<shared_ptr<OneSurfacePrimitive>>> cuts;
16
+ shared_ptr<NgArray<shared_ptr<OneSurfacePrimitive>>> all_cuts;
17
+
18
+ public:
19
+ SplineSurface(shared_ptr<OneSurfacePrimitive> abaseprimitive, shared_ptr<NgArray<shared_ptr<OneSurfacePrimitive>>> acuts) :
20
+ OneSurfacePrimitive(), baseprimitive(abaseprimitive), cuts(acuts)
21
+ { ; }
22
+ // default constructor for archive
23
+ SplineSurface() {}
24
+ virtual ~SplineSurface() { ; }
25
+
26
+ const auto & GetSplines() const { return splines; }
27
+ int GetNSplines() const { return splines.Size(); }
28
+ const NgArray<GeomPoint<3>>& GetPoints() const { return geompoints; }
29
+ string GetSplineType(const int i) const { return splines[i]->GetType(); }
30
+ SplineSeg<3> & GetSpline(const int i) { return *splines[i]; }
31
+ const SplineSeg<3> & GetSpline(const int i) const { return *splines[i]; }
32
+ int GetNP() const { return geompoints.Size(); }
33
+ const GeomPoint<3> & GetPoint(int i) const { return geompoints[i]; }
34
+ string GetBCName(int i) const { return bcnames[i]; }
35
+ string GetBCNameOf(Point<3> p1, Point<3> p2) const;
36
+
37
+ DLL_HEADER void AppendPoint(const Point<3> & p, const double reffac = 1., const bool hpref=false);
38
+ void AppendSegment(shared_ptr<SplineSeg<3>> spline, string & bcname, double amaxh = -1);
39
+
40
+ const shared_ptr<NgArray<shared_ptr<OneSurfacePrimitive>>> CreateCuttingSurfaces();
41
+ const shared_ptr<NgArray<shared_ptr<OneSurfacePrimitive>>> GetCuts() const { return all_cuts; }
42
+ const shared_ptr<OneSurfacePrimitive> GetBase() const { return baseprimitive; }
43
+
44
+ virtual void Project (Point<3> & p3d) const { baseprimitive->Project(p3d); }
45
+ virtual double CalcFunctionValue (const Point<3> & point) const
46
+ { return baseprimitive->CalcFunctionValue (point); }
47
+ virtual void CalcGradient (const Point<3> & point, Vec<3> & grad) const
48
+ { baseprimitive->CalcGradient (point,grad); }
49
+ virtual double HesseNorm () const
50
+ { return baseprimitive->HesseNorm(); }
51
+ virtual Point<3> GetSurfacePoint () const
52
+ { return baseprimitive->GetSurfacePoint(); }
53
+ virtual void CalcSpecialPoints(NgArray<Point<3>> & pts) const
54
+ { baseprimitive->CalcSpecialPoints(pts); }
55
+
56
+ virtual INSOLID_TYPE BoxInSolid(const BoxSphere<3> & box) const
57
+ { return baseprimitive->BoxInSolid(box); }
58
+
59
+ virtual void DoArchive(Archive& ar)
60
+ {
61
+ ar & geompoints & splines & bcnames & maxh & baseprimitive & cuts & all_cuts;
62
+ }
63
+
64
+ /*
65
+ virtual void Project (Point<3> & p3d) const;
66
+ virtual double CalcFunctionValue (const Point<3> & point) const;
67
+ virtual void CalcGradient (const Point<3> & point, Vec<3> & grad) const;
68
+ virtual double HesseNorm () const;
69
+ virtual Point<3> GetSurfacePoint () const;
70
+ virtual void CalcSpecialPoints(NgArray<Point<3>> & pts) const;
71
+
72
+ virtual INSOLID_TYPE BoxInSolid(const BoxSphere<3> & box) const;
73
+
74
+ */
75
+
76
+ virtual void Print (ostream & str) const;
77
+
78
+
79
+ };
80
+
81
+
82
+
83
+ }
84
+
85
+ #endif