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,217 @@
1
+ #ifndef FILE_VECTOR
2
+ #define FILE_VECTOR
3
+
4
+ /* *************************************************************************/
5
+ /* File: vector.hpp */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 01. Oct. 94 */
8
+ /* *************************************************************************/
9
+
10
+ namespace netgen
11
+ {
12
+
13
+ template <typename T>
14
+ class TFlatVector
15
+ {
16
+ protected:
17
+ int s;
18
+ T * data;
19
+ public:
20
+ TFlatVector () { ; }
21
+ TFlatVector (int as, T * adata)
22
+ { s = as; data = adata; }
23
+
24
+ int Size () const
25
+ { return s; }
26
+
27
+ TFlatVector & operator= (const TFlatVector & v)
28
+ { memcpy (data, v.data, s*sizeof(T)); return *this; }
29
+
30
+ TFlatVector & operator= (T scal)
31
+ {
32
+ for (int i = 0; i < s; i++) data[i] = scal;
33
+ return *this;
34
+ }
35
+
36
+ T & operator[] (int i) { return data[i]; }
37
+ const T & operator[] (int i) const { return data[i]; }
38
+ T & operator() (int i) { return data[i]; }
39
+ const T & operator() (int i) const { return data[i]; }
40
+
41
+ // double & Elem (int i) { return data[i-1]; }
42
+ // const double & Get (int i) const { return data[i-1]; }
43
+ // void Set (int i, double val) { data[i-1] = val; }
44
+
45
+ TFlatVector & operator*= (T scal)
46
+ {
47
+ for (int i = 0; i < s; i++) data[i] *= scal;
48
+ return *this;
49
+ }
50
+ };
51
+
52
+
53
+
54
+
55
+ class FlatVector
56
+ {
57
+ protected:
58
+ int s;
59
+ double *data;
60
+ public:
61
+ FlatVector () { ; }
62
+ FlatVector (int as, double * adata)
63
+ { s = as; data = adata; }
64
+
65
+ int Size () const
66
+ { return s; }
67
+
68
+ FlatVector & operator= (const FlatVector & v)
69
+ { memcpy (data, v.data, s*sizeof(double)); return *this; }
70
+
71
+ FlatVector & operator= (double scal)
72
+ {
73
+ for (int i = 0; i < s; i++) data[i] = scal;
74
+ return *this;
75
+ }
76
+
77
+ double & operator[] (int i) { return data[i]; }
78
+ const double & operator[] (int i) const { return data[i]; }
79
+ double & operator() (int i) { return data[i]; }
80
+ const double & operator() (int i) const { return data[i]; }
81
+
82
+ // double & Elem (int i) { return data[i-1]; }
83
+ // const double & Get (int i) const { return data[i-1]; }
84
+ // void Set (int i, double val) { data[i-1] = val; }
85
+
86
+ FlatVector & operator*= (double scal)
87
+ {
88
+ for (int i = 0; i < s; i++) data[i] *= scal;
89
+ return *this;
90
+ }
91
+
92
+ FlatVector & Add (double scal, const FlatVector & v2)
93
+ {
94
+ for (int i = 0; i < s; i++)
95
+ data[i] += scal * v2[i];
96
+ return *this;
97
+ }
98
+
99
+ FlatVector & Set (double scal, const FlatVector & v2)
100
+ {
101
+ for (int i = 0; i < s; i++)
102
+ data[i] = scal * v2[i];
103
+ return *this;
104
+ }
105
+
106
+ FlatVector & Set2 (double scal1, const FlatVector & v1,
107
+ double scal2, const FlatVector & v2)
108
+ {
109
+ for (int i = 0; i < s; i++)
110
+ data[i] = scal1 * v1[i] + scal2 * v2[i];
111
+ return *this;
112
+ }
113
+
114
+ double L2Norm() const
115
+ {
116
+ double sum = 0;
117
+ for (int i = 0; i < s; i++)
118
+ sum += data[i] * data[i];
119
+ return sqrt (sum);
120
+ }
121
+
122
+ operator TFlatVector<double> () const { return TFlatVector<double> (s, data); }
123
+ friend double operator* (const FlatVector & v1, const FlatVector & v2);
124
+ };
125
+
126
+
127
+
128
+
129
+ class Vector : public FlatVector
130
+ {
131
+ bool ownmem;
132
+ public:
133
+ Vector ()
134
+ { s = 0; data = 0; ownmem = false; }
135
+ Vector (int as)
136
+ { s = as; data = new double[s]; ownmem = true; }
137
+ Vector (int as, double * mem)
138
+ { s = as; data = mem; ownmem = false; }
139
+ ~Vector ()
140
+ { if (ownmem) delete [] data; }
141
+
142
+ template<typename ARCHIVE>
143
+ void DoArchive(ARCHIVE& ar)
144
+ {
145
+ auto size = s;
146
+ ar & ownmem & size;
147
+ if(!ar.Output())
148
+ SetSize(size);
149
+ ar.Do(data, size);
150
+ }
151
+ Vector & operator= (const FlatVector & v)
152
+ { memcpy (data, &v(0), s*sizeof(double)); return *this; }
153
+
154
+ Vector & operator= (double scal)
155
+ {
156
+ for (int i = 0; i < s; i++) data[i] = scal;
157
+ return *this;
158
+ }
159
+
160
+ void SetSize (int as)
161
+ {
162
+ if (s != as)
163
+ {
164
+ s = as;
165
+ if (ownmem) delete [] data;
166
+ data = new double [s];
167
+ ownmem = true;
168
+ }
169
+ }
170
+
171
+ operator TFlatVector<double> () const { return TFlatVector<double> (s, data); }
172
+ };
173
+
174
+ template <int S>
175
+ class VectorMem : public Vector
176
+ {
177
+ double mem[S];
178
+ public:
179
+ VectorMem () : Vector(S, &mem[0]) { ; }
180
+
181
+ VectorMem & operator= (const FlatVector & v)
182
+ { memcpy (data, &v(0), S*sizeof(double)); return *this; }
183
+
184
+ VectorMem & operator= (double scal)
185
+ {
186
+ for (int i = 0; i < S; i++) data[i] = scal;
187
+ return *this;
188
+ }
189
+ };
190
+
191
+
192
+
193
+
194
+
195
+ inline double operator* (const FlatVector & v1, const FlatVector & v2)
196
+ {
197
+ double sum = 0;
198
+ for (int i = 0; i < v1.s; i++)
199
+ sum += v1.data[i] * v2.data[i];
200
+ return sum;
201
+ }
202
+
203
+
204
+
205
+
206
+ inline ostream & operator<< (ostream & ost, const FlatVector & v)
207
+ {
208
+ for (int i = 0; i < v.Size(); i++)
209
+ ost << " " << setw(7) << v[i];
210
+ return ost;
211
+ }
212
+
213
+ } //namespace netgen
214
+
215
+ #endif
216
+
217
+
@@ -0,0 +1,274 @@
1
+ #ifndef NETGEN_ADFRONT2_HPP
2
+ #define NETGEN_ADFRONT2_HPP
3
+
4
+ /**************************************************************************/
5
+ /* File: adfront2.hpp */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 01. Okt. 95 */
8
+ /**************************************************************************/
9
+
10
+
11
+ /**
12
+
13
+ Advancing front class for surfaces
14
+
15
+ */
16
+
17
+ #include <gprim/geomobjects.hpp>
18
+ #include <gprim/adtree.hpp>
19
+ #include "meshtype.hpp"
20
+
21
+ namespace netgen
22
+ {
23
+ ///
24
+ class FrontPoint2
25
+ {
26
+ /// coordinates
27
+ Point<3> p;
28
+ /// global node index
29
+ PointIndex globalindex;
30
+ /// number of front lines connected to point
31
+ int nlinetopoint;
32
+ /// distance to original boundary
33
+ int frontnr;
34
+
35
+ bool onsurface;
36
+
37
+ public:
38
+ ///
39
+ MultiPointGeomInfo * mgi;
40
+
41
+ ///
42
+ FrontPoint2 ()
43
+ {
44
+ globalindex.Invalidate(); // = -1;
45
+ nlinetopoint = 0;
46
+ frontnr = INT_MAX-10; // attention: overflow on calculating INT_MAX + 1
47
+ mgi = NULL;
48
+ onsurface = true;
49
+ }
50
+
51
+ ///
52
+ FrontPoint2 (const Point<3> & ap, PointIndex agi,
53
+ MultiPointGeomInfo * amgi, bool aonsurface = true);
54
+ ///
55
+ ~FrontPoint2 () { ; }
56
+
57
+ ///
58
+ const Point<3> & P () const { return p; }
59
+ ///
60
+ operator const Point<3> & () const { return p; }
61
+ ///
62
+ PointIndex GlobalIndex () const { return globalindex; }
63
+
64
+ ///
65
+ void AddLine () { nlinetopoint++; }
66
+ ///
67
+ void RemoveLine ()
68
+ {
69
+ nlinetopoint--;
70
+ if (nlinetopoint == 0)
71
+ nlinetopoint = -1;
72
+ }
73
+
74
+ ///
75
+ bool Valid () const
76
+ { return nlinetopoint >= 0; }
77
+
78
+ ///
79
+ bool OnSurface() const
80
+ { return onsurface; }
81
+
82
+ ///
83
+ void DecFrontNr (int afrontnr)
84
+ {
85
+ if (frontnr > afrontnr) frontnr = afrontnr;
86
+ }
87
+
88
+ ///
89
+ int FrontNr () const { return frontnr; }
90
+ };
91
+
92
+
93
+ ///
94
+ class FrontLine
95
+ {
96
+ private:
97
+ /// Point Indizes
98
+ INDEX_2 l; // want to replace by std::array<int,2> l;
99
+ /// quality class
100
+ int lineclass;
101
+ /// geometry specific data
102
+ PointGeomInfo geominfo[2];
103
+ public:
104
+
105
+ FrontLine ()
106
+ {
107
+ lineclass = 1;
108
+ }
109
+
110
+ ///
111
+ FrontLine (const INDEX_2 & al)
112
+ : l(al), lineclass(1) { }
113
+
114
+ ///
115
+ const auto & L () const { return l; }
116
+ ///
117
+ int LineClass() const { return lineclass; }
118
+
119
+ ///
120
+ void IncrementClass ()
121
+ {
122
+ lineclass++;
123
+ }
124
+ ///
125
+ void ResetClass ()
126
+ {
127
+ lineclass = 1;
128
+ }
129
+
130
+ ///
131
+ bool Valid () const
132
+ {
133
+ return l[0] != -1;
134
+ }
135
+ ///
136
+ void Invalidate ()
137
+ {
138
+ l[0] = -1;
139
+ l[1] = -1;
140
+ lineclass = 1000;
141
+ }
142
+
143
+ void SetGeomInfo (const PointGeomInfo & gi1, const PointGeomInfo & gi2)
144
+ {
145
+ geominfo[0] = gi1;
146
+ geominfo[1] = gi2;
147
+ }
148
+
149
+ const PointGeomInfo * GetGeomInfo () const
150
+ { return geominfo; }
151
+
152
+ const PointGeomInfo & GetGeomInfo (int endp) const
153
+ { return geominfo[endp-1]; }
154
+
155
+ friend class AdFront2;
156
+ };
157
+
158
+
159
+ class AdFront2
160
+ {
161
+
162
+ ///
163
+ Array<FrontPoint2> points; /// front points
164
+ Array<FrontLine> lines; /// front lines
165
+
166
+ Box3d boundingbox;
167
+ BoxTree<3> linesearchtree; /// search tree for lines
168
+ Point3dTree pointsearchtree; /// search tree for points
169
+ Point3dTree cpointsearchtree; /// search tree for cone points (not used ???)
170
+
171
+ Array<int> delpointl; /// list of deleted front points
172
+ Array<int> dellinel; /// list of deleted front lines
173
+
174
+ int nfl; /// number of front lines;
175
+ INDEX_2_HASHTABLE<int> * allflines; /// all front lines ever have been
176
+
177
+ Array<int> invpindex;
178
+
179
+ int minval;
180
+ int starti;
181
+
182
+ public:
183
+ ///
184
+ // AdFront2 ();
185
+ AdFront2 (const Box3d & aboundingbox);
186
+ ///
187
+ ~AdFront2 ();
188
+
189
+ ///
190
+ // void GetPoints (NgArray<Point<3> > & apoints) const;
191
+ ///
192
+ void Print (ostream & ost) const;
193
+
194
+ ///
195
+ bool Empty () const
196
+ {
197
+ return nfl == 0;
198
+ }
199
+ ///
200
+ int GetNFL () const { return nfl; }
201
+
202
+ const FrontLine & GetLine (int nr) const { return lines[nr]; }
203
+ const FrontPoint2 & GetPoint (int nr) const { return points[nr]; }
204
+ const auto & GetLines () const { return lines; }
205
+
206
+ ///
207
+ int SelectBaseLine (Point<3> & p1, Point<3> & p2,
208
+ const PointGeomInfo *& geominfo1,
209
+ const PointGeomInfo *& geominfo2,
210
+ int & qualclass);
211
+
212
+ ///
213
+ int GetLocals (int baseline,
214
+ NgArray<Point<3>> & locpoints,
215
+ NgArray<MultiPointGeomInfo> & pgeominfo,
216
+ NgArray<INDEX_2> & loclines, // local index
217
+ NgArray<int> & pindex,
218
+ NgArray<int> & lindex,
219
+ double xh);
220
+
221
+ ///
222
+ void DeleteLine (int li);
223
+ ///
224
+ int AddPoint (const Point<3> & p, PointIndex globind,
225
+ MultiPointGeomInfo * mgi = NULL,
226
+ bool pointonsurface = true);
227
+ ///
228
+ int AddLine (int pi1, int pi2,
229
+ const PointGeomInfo & gi1, const PointGeomInfo & gi2);
230
+ ///
231
+ int ExistsLine (int gpi1, int gpi2);
232
+
233
+ ///
234
+ void IncrementClass (int li)
235
+ {
236
+ lines[li].IncrementClass();
237
+ }
238
+
239
+ ///
240
+ void ResetClass (int li)
241
+ {
242
+ lines[li].ResetClass();
243
+ }
244
+
245
+ ///
246
+ const PointGeomInfo & GetLineGeomInfo (int li, int lend) const
247
+ { return lines[li].GetGeomInfo (lend); }
248
+ ///
249
+
250
+ PointIndex GetGlobalIndex (int pi) const
251
+ {
252
+ return points[pi].GlobalIndex();
253
+ }
254
+
255
+
256
+ /// is Point p inside Surface (flat geometry only)
257
+ bool Inside (const Point<2> & p) const;
258
+
259
+ bool SameSide (const Point<2> & lp1, const Point<2> & lp2,
260
+ const FlatArray<int> * /* testfaces */ = NULL) const;
261
+ /*
262
+ {
263
+ return Inside (lp1) == Inside (lp2);
264
+ }
265
+ */
266
+
267
+ ///
268
+ void SetStartFront ();
269
+ ///
270
+ void PrintOpenSegments (ostream & ost) const;
271
+ };
272
+
273
+ } // namespace netgen
274
+ #endif // NETGEN_ADFRONT2_HPP