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,280 @@
1
+ #ifndef FILE_GEOMETRY2D
2
+ #define FILE_GEOMETRY2D
3
+
4
+ /* *************************************************************************/
5
+ /* File: geometry2d.hpp */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 20. Jul. 02 */
8
+ /* *************************************************************************/
9
+
10
+ #include <myadt.hpp>
11
+ #include <gprim.hpp>
12
+ #include <meshing.hpp>
13
+
14
+
15
+ // #include "../gprim/spline.hpp"
16
+ // #include "../gprim/splinegeometry.hpp"
17
+
18
+ namespace netgen
19
+ {
20
+
21
+ class SplineSegExt : public SplineSeg<2>
22
+ {
23
+ public:
24
+ SplineSeg<2>* seg;
25
+
26
+ /// left domain
27
+ int leftdom;
28
+ /// right domain
29
+ int rightdom;
30
+ /// refinement at line
31
+ double reffak;
32
+ /// maximal h;
33
+ double hmax;
34
+ /// boundary condition number
35
+ int bc;
36
+ /// copy spline mesh from other spline (-1.. do not copy)
37
+ int copyfrom;
38
+ /// perform anisotropic refinement (hp-refinement) to edge
39
+ double hpref_left;
40
+ /// perform anisotropic refinement (hp-refinement) to edge
41
+ double hpref_right;
42
+ ///
43
+ int layer;
44
+
45
+ SplineSegExt (SplineSeg<2> & hseg)
46
+ : seg(&hseg)
47
+ {
48
+ layer = 1;
49
+ }
50
+ // default constructor for archive
51
+ SplineSegExt() {}
52
+
53
+ ~SplineSegExt ()
54
+ {
55
+ delete seg;
56
+ }
57
+
58
+ virtual void DoArchive(Archive& ar)
59
+ {
60
+ ar & seg & leftdom & rightdom & reffak & hmax & bc & copyfrom
61
+ & hpref_left & hpref_right & layer;
62
+ }
63
+
64
+ virtual const GeomPoint<2> & StartPI () const
65
+ {
66
+ return seg->StartPI();
67
+ }
68
+
69
+ virtual const GeomPoint<2> & EndPI () const
70
+ {
71
+ return seg->EndPI();
72
+ }
73
+
74
+ virtual Point<2> GetPoint (double t) const
75
+ {
76
+ return seg->GetPoint(t);
77
+ }
78
+
79
+ virtual Vec<2> GetTangent (const double t) const
80
+ {
81
+ return seg->GetTangent(t);
82
+ }
83
+
84
+ virtual void GetDerivatives (const double t,
85
+ Point<2> & point,
86
+ Vec<2> & first,
87
+ Vec<2> & second) const
88
+ {
89
+ seg->GetDerivatives (t, point, first, second);
90
+ }
91
+
92
+ virtual void GetCoeff (Vector & coeffs) const
93
+ {
94
+ seg->GetCoeff (coeffs);
95
+ }
96
+
97
+ virtual void GetPoints (int n, NgArray<Point<2> > & points) const
98
+ {
99
+ seg->GetPoints (n, points);
100
+ }
101
+
102
+ virtual double MaxCurvature () const
103
+ {
104
+ return seg->MaxCurvature();
105
+ }
106
+
107
+ virtual string GetType () const
108
+ {
109
+ return seg->GetType();
110
+ }
111
+
112
+ virtual double CalcCurvature (double t) const
113
+ {
114
+ Point<2> point;
115
+ Vec<2> first, second;
116
+ GetDerivatives (t, point, first, second);
117
+ double curv = fabs(first(0)*second(1)-first(1)*second(0)) / pow(first.Length(), 3);
118
+ return curv;
119
+ }
120
+
121
+ virtual bool InConvexHull (Point<2> p, double eps) const
122
+ {
123
+ return seg->InConvexHull (p, eps);
124
+ }
125
+
126
+ };
127
+
128
+
129
+
130
+
131
+ class DLL_HEADER SplineGeometry2d : public SplineGeometry<2>, public NetgenGeometry
132
+ {
133
+ protected:
134
+ NgArray<char*> materials;
135
+ NgArray<double> maxh;
136
+ NgArray<bool> quadmeshing;
137
+ Array<bool> tensormeshing;
138
+ NgArray<int> layer;
139
+ NgArray<string*> bcnames;
140
+ double elto0 = 1.0;
141
+
142
+
143
+ public:
144
+ virtual ~SplineGeometry2d();
145
+
146
+ void Load (const filesystem::path & filename);
147
+
148
+ void LoadData( ifstream & infile );
149
+ void LoadDataNew ( ifstream & infile );
150
+ void LoadDataV2 ( ifstream & infile );
151
+
152
+ void TestComment ( ifstream & infile ) ;
153
+
154
+ void DoArchive(Archive& ar) override
155
+ {
156
+ SplineGeometry<2>::DoArchive(ar);
157
+ ar & materials & maxh & quadmeshing & tensormeshing & layer & bcnames & elto0;
158
+ }
159
+
160
+ bool ProjectPointGI (int surfind, Point<3> & p, PointGeomInfo & gi) const override
161
+ {
162
+ p(2) = 0.0;
163
+ return true;
164
+ }
165
+
166
+ void PointBetween(const Point<3> & p1, const Point<3> & p2, double secpoint,
167
+ int surfi,
168
+ const PointGeomInfo & gi1,
169
+ const PointGeomInfo & gi2,
170
+ Point<3> & newp, PointGeomInfo & newgi) const override
171
+ {
172
+ newp = p1+secpoint*(p2-p1);
173
+ newgi.trignum = 1;
174
+ }
175
+
176
+ void PointBetweenEdge(const Point<3> & p1, const Point<3> & p2, double secpoint,
177
+ int surfi1, int surfi2,
178
+ const EdgePointGeomInfo & ap1,
179
+ const EdgePointGeomInfo & ap2,
180
+ Point<3> & newp, EdgePointGeomInfo & newgi) const override;
181
+
182
+
183
+ Vec<3> GetTangent (const Point<3> & p, int surfi1, int surfi2,
184
+ const EdgePointGeomInfo & ap1) const override;
185
+ Vec<3> GetNormal(int surfi1, const Point<3> & p,
186
+ const PointGeomInfo* gi) const override;
187
+
188
+ const SplineSegExt & GetSpline (const int i) const
189
+ {
190
+ return dynamic_cast<const SplineSegExt&> (*splines[i]);
191
+ }
192
+
193
+ SplineSegExt & GetSpline (const int i)
194
+ {
195
+ return dynamic_cast<SplineSegExt&> (*splines[i]);
196
+ }
197
+
198
+
199
+ int GenerateMesh (shared_ptr<Mesh> & mesh, MeshingParameters & mparam) override;
200
+
201
+ void PartitionBoundary (MeshingParameters & mp, double h, Mesh & mesh2d);
202
+
203
+ void CopyEdgeMesh (int from, int to, Mesh & mesh2d, Point3dTree & searchtree);
204
+
205
+
206
+ size_t GetNDomains() const { return materials.Size(); }
207
+ void GetMaterial (int domnr, char* & material );
208
+ void SetMaterial (int domnr, const string & material);
209
+
210
+ double GetDomainMaxh ( const int domnr );
211
+ void SetDomainMaxh ( const int domnr, double maxh );
212
+
213
+ bool GetDomainQuadMeshing ( int domnr )
214
+ {
215
+ if ( quadmeshing.Size() ) return quadmeshing[domnr-1];
216
+ else return false;
217
+ }
218
+ void SetDomainQuadMeshing ( int domnr, bool quad_meshing )
219
+ {
220
+ auto oldsize = quadmeshing.Size();
221
+
222
+ if ( oldsize<domnr )
223
+ {
224
+ quadmeshing.SetSize(domnr);
225
+ for(auto dom : IntRange(oldsize, domnr-1))
226
+ quadmeshing[dom] = false;
227
+ }
228
+
229
+ quadmeshing[domnr-1] = quad_meshing;
230
+ }
231
+
232
+ bool GetDomainTensorMeshing ( int domnr )
233
+ {
234
+ if ( tensormeshing.Size()>=domnr ) return tensormeshing[domnr-1];
235
+ else return false;
236
+ }
237
+ void SetDomainTensorMeshing ( int domnr, bool tm )
238
+ {
239
+ if ( tensormeshing.Size()<domnr )
240
+ {
241
+ auto oldsize = tensormeshing.Size();
242
+ tensormeshing.SetSize(domnr);
243
+ for(auto i : IntRange(oldsize, domnr-1))
244
+ tensormeshing[i] = false;
245
+ }
246
+ tensormeshing[domnr-1] = tm;
247
+ }
248
+ int GetDomainLayer ( int domnr )
249
+ {
250
+ if ( layer.Size() ) return layer[domnr-1];
251
+ else return 1;
252
+ }
253
+ void SetDomainLayer (int domnr, int layernr)
254
+ {
255
+ auto old_size = layer.Size();
256
+ if(domnr > old_size)
257
+ {
258
+ layer.SetSize(domnr);
259
+ for(size_t i = old_size; i < domnr; i++)
260
+ layer[i] = 1;
261
+ }
262
+ layer[domnr-1] = layernr;
263
+ }
264
+
265
+ string GetBCName (int bcnr) const;
266
+ void SetBCName (int bcnr, string name);
267
+ int GetBCNumber (string name) const; // 0 if not exists
268
+ int AddBCName (string name);
269
+
270
+ string * BCNamePtr ( const int bcnr );
271
+ };
272
+ }
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+ #endif
@@ -0,0 +1,234 @@
1
+
2
+
3
+
4
+
5
+ das File sollte nicht mehr verwendet werden ---> spline.hpp
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+ #ifndef FILE_SPLINE2D
14
+ #define FILE_SPLINE2D
15
+
16
+ /**************************************************************************/
17
+ /* File: spline2d.hh */
18
+ /* Author: Joachim Schoeberl */
19
+ /* Date: 24. Jul. 96 */
20
+ /**************************************************************************/
21
+
22
+
23
+ /*
24
+ Spline curves for 2D mesh generation
25
+ */
26
+
27
+ #include "spline.hpp"
28
+
29
+
30
+ //#define OLDSPLINEVERSION
31
+ #ifdef OLDSPLINEVERSION
32
+
33
+ /// Geometry point
34
+ class GeomPoint2d : public Point<2>
35
+ {
36
+ public:
37
+ /// refinement to point
38
+ double refatpoint;
39
+ bool hpref;
40
+
41
+ GeomPoint2d ()
42
+ { ; }
43
+
44
+ ///
45
+ GeomPoint2d (double ax, double ay, double aref = 1)
46
+ : Point<2> (ax, ay), refatpoint(aref) { ; }
47
+ };
48
+
49
+
50
+
51
+ /// base class for 2d - segment
52
+ class SplineSegment
53
+ {
54
+ public:
55
+ /// left domain
56
+ int leftdom;
57
+ /// right domain
58
+ int rightdom;
59
+ /// refinement at line
60
+ double reffak;
61
+ /// boundary condition number
62
+ int bc;
63
+ /// copy spline mesh from other spline (-1.. do not copy)
64
+ int copyfrom;
65
+ /// perform anisotropic refinement (hp-refinement) to edge
66
+ bool hpref_left;
67
+ bool hpref_right;
68
+ /// calculates length of curve
69
+ virtual double Length () const;
70
+ /// returns point at curve, 0 <= t <= 1
71
+ virtual Point<2> GetPoint (double t) const = 0;
72
+ /// partitionizes curve
73
+ void Partition (double h, double elto0,
74
+ Mesh & mesh, Point3dTree & searchtree, int segnr) const;
75
+ /// returns initial point on curve
76
+ virtual const GeomPoint2d & StartPI () const = 0;
77
+ /// returns terminal point on curve
78
+ virtual const GeomPoint2d & EndPI () const = 0;
79
+ /** writes curve description for fepp:
80
+ for implicitly given quadratic curves, the 6 coefficients of
81
+ the polynomial
82
+ $$ a x^2 + b y^2 + c x y + d x + e y + f = 0 $$
83
+ are written to ost */
84
+ void PrintCoeff (ostream & ost) const;
85
+
86
+ virtual void GetCoeff (Vector & coeffs) const = 0;
87
+
88
+ virtual void GetPoints (int n, NgArray<Point<2> > & points);
89
+
90
+ /** calculates lineintersections:
91
+ for lines $$ a x + b y + c = 0 $$ the intersecting points are calculated
92
+ and stored in points */
93
+ virtual void LineIntersections (const double a, const double b, const double c,
94
+ NgArray < Point<2> > & points, const double eps) const
95
+ {points.SetSize(0);}
96
+
97
+ virtual double MaxCurvature(void) const = 0;
98
+
99
+ virtual string GetType(void) const {return "splinebase";}
100
+ };
101
+
102
+
103
+ /// Straight line form p1 to p2
104
+ class LineSegment : public SplineSegment
105
+ {
106
+ ///
107
+ const GeomPoint2d &p1, &p2;
108
+ public:
109
+ ///
110
+ LineSegment (const GeomPoint2d & ap1, const GeomPoint2d & ap2);
111
+ ///
112
+ virtual double Length () const;
113
+ ///
114
+ virtual Point<2> GetPoint (double t) const;
115
+ ///
116
+ virtual const GeomPoint2d & StartPI () const { return p1; };
117
+ ///
118
+ virtual const GeomPoint2d & EndPI () const { return p2; }
119
+ ///
120
+ //virtual void PrintCoeff (ostream & ost) const;
121
+ virtual void GetCoeff (Vector & coeffs) const;
122
+
123
+ virtual string GetType(void) const {return "line";}
124
+
125
+ virtual void LineIntersections (const double a, const double b, const double c,
126
+ NgArray < Point<2> > & points, const double eps) const;
127
+
128
+ virtual double MaxCurvature(void) const {return 0;}
129
+ };
130
+
131
+
132
+ /// curve given by a rational, quadratic spline (including ellipses)
133
+ class SplineSegment3 : public SplineSegment
134
+ {
135
+ ///
136
+ const GeomPoint2d &p1, &p2, &p3;
137
+ public:
138
+ ///
139
+ SplineSegment3 (const GeomPoint2d & ap1,
140
+ const GeomPoint2d & ap2,
141
+ const GeomPoint2d & ap3);
142
+ ///
143
+ virtual Point<2> GetPoint (double t) const;
144
+ ///
145
+ virtual const GeomPoint2d & StartPI () const { return p1; };
146
+ ///
147
+ virtual const GeomPoint2d & EndPI () const { return p3; }
148
+ ///
149
+ //virtual void PrintCoeff (ostream & ost) const;
150
+ virtual void GetCoeff (Vector & coeffs) const;
151
+
152
+ virtual string GetType(void) const {return "spline3";}
153
+
154
+ const GeomPoint2d & TangentPoint (void) const { return p2; }
155
+
156
+ virtual void LineIntersections (const double a, const double b, const double c,
157
+ NgArray < Point<2> > & points, const double eps) const;
158
+
159
+ virtual double MaxCurvature(void) const;
160
+ };
161
+
162
+
163
+ // Gundolf Haase 8/26/97
164
+ /// A circle
165
+ class CircleSegment : public SplineSegment
166
+ {
167
+ ///
168
+ private:
169
+ const GeomPoint2d &p1, &p2, &p3;
170
+ Point<2> pm;
171
+ double radius, w1,w3;
172
+ public:
173
+ ///
174
+ CircleSegment (const GeomPoint2d & ap1,
175
+ const GeomPoint2d & ap2,
176
+ const GeomPoint2d & ap3);
177
+ ///
178
+ virtual Point<2> GetPoint (double t) const;
179
+ ///
180
+ virtual const GeomPoint2d & StartPI () const { return p1; }
181
+ ///
182
+ virtual const GeomPoint2d & EndPI () const { return p3; }
183
+ ///
184
+ //virtual void PrintCoeff (ostream & ost) const;
185
+ virtual void GetCoeff (Vector & coeffs) const;
186
+ ///
187
+ double Radius() const { return radius; }
188
+ ///
189
+ double StartAngle() const { return w1; }
190
+ ///
191
+ double EndAngle() const { return w3; }
192
+ ///
193
+ const Point<2> & MidPoint(void) const {return pm; }
194
+
195
+ virtual string GetType(void) const {return "circle";}
196
+
197
+ virtual void LineIntersections (const double a, const double b, const double c,
198
+ NgArray < Point<2> > & points, const double eps) const;
199
+
200
+ virtual double MaxCurvature(void) const {return 1./radius;}
201
+ };
202
+
203
+
204
+
205
+
206
+
207
+
208
+ ///
209
+ class DiscretePointsSegment : public SplineSegment
210
+ {
211
+ NgArray<Point<2> > pts;
212
+ GeomPoint2d p1, p2;
213
+ public:
214
+ ///
215
+ DiscretePointsSegment (const NgArray<Point<2> > & apts);
216
+ ///
217
+ virtual ~DiscretePointsSegment ();
218
+ ///
219
+ virtual Point<2> GetPoint (double t) const;
220
+ ///
221
+ virtual const GeomPoint2d & StartPI () const { return p1; };
222
+ ///
223
+ virtual const GeomPoint2d & EndPI () const { return p2; }
224
+ ///
225
+ //virtual void PrintCoeff (ostream & /* ost */) const { ; }
226
+ virtual void GetCoeff (Vector & coeffs) const {;}
227
+
228
+ virtual double MaxCurvature(void) const {return 1;}
229
+ };
230
+
231
+
232
+ #endif
233
+
234
+ #endif
@@ -0,0 +1,28 @@
1
+ #ifndef FILE_VSGEOM2D
2
+ #define FILE_VSGEOM2D
3
+
4
+ /**************************************************************************/
5
+ /* File: vsgeom2d.hpp */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 05. Jan. 2011 */
8
+ /**************************************************************************/
9
+
10
+ namespace netgen
11
+ {
12
+
13
+ class NGGUI_API VisualSceneGeometry2d : public VisualScene
14
+ {
15
+ const class SplineGeometry2d * geometry2d;
16
+ public:
17
+ VisualSceneGeometry2d ();
18
+ virtual ~VisualSceneGeometry2d ();
19
+ void SetGeometry (const class SplineGeometry2d * ageometry2d) { geometry2d = ageometry2d; }
20
+ virtual void BuildScene (int zoomall = 0);
21
+ virtual void DrawScene ();
22
+ };
23
+
24
+ }
25
+
26
+
27
+
28
+ #endif