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,563 @@
1
+ #ifndef FILE_ALGPRIM
2
+ #define FILE_ALGPRIM
3
+
4
+
5
+ /**************************************************************************/
6
+ /* File: algprim.hpp */
7
+ /* Author: Joachim Schoeberl */
8
+ /* Date: 1. Dez. 95 */
9
+ /**************************************************************************/
10
+
11
+ namespace netgen
12
+ {
13
+
14
+ /*
15
+
16
+ Quadric Surfaces (Plane, Sphere, Cylinder)
17
+
18
+ */
19
+
20
+
21
+ /**
22
+ A quadric surface.
23
+ surface defined by
24
+ cxx x^2 + cyy y^2 + czz z^2 + cxy x y + cxz x z + cyz y z +
25
+ cx x + cy y + cz z + c1 = 0.
26
+ **/
27
+ class QuadraticSurface : public OneSurfacePrimitive
28
+ {
29
+ protected:
30
+ double cxx, cyy, czz, cxy, cxz, cyz, cx, cy, cz, c1;
31
+
32
+ public:
33
+ virtual double CalcFunctionValue (const Point<3> & point) const;
34
+ virtual void CalcGradient (const Point<3> & point, Vec<3> & grad) const;
35
+ virtual void CalcHesse (const Point<3> & point, Mat<3> & hesse) const;
36
+ /*
37
+ virtual int RootInBox (const Box<3> & box)
38
+ const { return 0; }
39
+ virtual INSOLID_TYPE BoxInSolid (const BoxSphere<3> & box)
40
+ const { return DOES_INTERSECT; }
41
+ */
42
+ virtual double HesseNorm () const { return cxx + cyy + czz; }
43
+
44
+ virtual Point<3> GetSurfacePoint () const;
45
+
46
+
47
+ virtual void Print (ostream & str) const;
48
+ virtual void Read (istream & ist);
49
+ void PrintCoeff (ostream & ost) const;
50
+ virtual void DoArchive(Archive& ar)
51
+ {
52
+ OneSurfacePrimitive::DoArchive(ar);
53
+ ar & cxx & cyy & czz & cxy & cxz & cyz & cx & cy & cz & c1;
54
+ }
55
+ };
56
+
57
+
58
+ /// A Plane (i.e., the plane and everything behind it).
59
+ class Plane : public QuadraticSurface
60
+ {
61
+ protected:
62
+ /// a point in the plane
63
+ Point<3> p;
64
+ /// outward normal vector
65
+ Vec<3> n;
66
+
67
+ double eps_base;
68
+
69
+ public:
70
+ ///
71
+ Plane (const Point<3> & ap, Vec<3> an);
72
+ // default constructor for archive
73
+ Plane() {}
74
+
75
+ virtual void DoArchive(Archive& ar)
76
+ {
77
+ QuadraticSurface::DoArchive(ar);
78
+ ar & p & n & eps_base;
79
+ }
80
+ Point<3> P() const { return p; }
81
+ Vec<3> N() const { return n; }
82
+ virtual void GetPrimitiveData (const char *& classname,
83
+ NgArray<double> & coeffs) const;
84
+ virtual void SetPrimitiveData (NgArray<double> & coeffs);
85
+ static Primitive * CreateDefault ();
86
+
87
+ virtual Primitive * Copy () const;
88
+ virtual void Print (ostream & str) const;
89
+
90
+ virtual void Transform (Transformation<3> & trans);
91
+
92
+
93
+ virtual int IsIdentic (const Surface & s2, int & inv, double eps) const;
94
+
95
+ ///
96
+ virtual void DefineTangentialPlane (const Point<3> & ap1,
97
+ const Point<3> & ap2);
98
+ ///
99
+ virtual void ToPlane (const Point<3> & p3d,
100
+ Point<2> & pplane, double h,
101
+ int & zone) const;
102
+ ///
103
+ virtual void FromPlane (const Point<2> & pplane,
104
+ Point<3> & p3d,
105
+ double h) const;
106
+ ///
107
+ virtual void Project (Point<3> & p) const;
108
+
109
+ ///
110
+ virtual INSOLID_TYPE BoxInSolid (const BoxSphere<3> & box) const;
111
+
112
+ ///
113
+ inline virtual double CalcFunctionValue (const Point<3> & p3d) const
114
+ {return cx * p3d(0) + cy * p3d(1) + cz * p3d(2) + c1;}
115
+ ///
116
+ virtual void CalcGradient (const Point<3> & point,
117
+ Vec<3> & grad) const;
118
+ ///
119
+ virtual void CalcHesse (const Point<3> & point,
120
+ Mat<3> & hesse) const;
121
+ ///
122
+ virtual double HesseNorm () const;
123
+ ///
124
+ virtual Point<3> GetSurfacePoint () const;
125
+ ///
126
+ virtual void GetTriangleApproximation
127
+ (TriangleApproximation & tas,
128
+ const Box<3> & boundingbox, double facets) const;
129
+ protected:
130
+ void CalcData();
131
+ };
132
+
133
+ // typedef Plane Plane;
134
+
135
+
136
+ ///
137
+ class Sphere : public QuadraticSurface
138
+ {
139
+ ///
140
+ Point<3> c;
141
+ ///
142
+ double r, invr;
143
+ public:
144
+ ///
145
+ Sphere (const Point<3> & ac, double ar);
146
+ // default constructor for archive
147
+ Sphere() {}
148
+
149
+ virtual void DoArchive(Archive& ar)
150
+ {
151
+ QuadraticSurface::DoArchive(ar);
152
+ ar & c & r & invr;
153
+ }
154
+
155
+ virtual void GetPrimitiveData (const char *& classname,
156
+ NgArray<double> & coeffs) const;
157
+ virtual void SetPrimitiveData (NgArray<double> & coeffs);
158
+ static Primitive * CreateDefault ();
159
+
160
+ virtual Primitive * Copy () const;
161
+ virtual void Transform (Transformation<3> & trans);
162
+
163
+ virtual double CalcFunctionValue (const Point<3> & point) const;
164
+
165
+
166
+ virtual int IsIdentic (const Surface & s2, int & inv, double eps) const;
167
+
168
+ ///
169
+ virtual void DefineTangentialPlane (const Point<3> & ap1,
170
+ const Point<3> & ap2);
171
+ ///
172
+ virtual void ToPlane (const Point<3> & p3d,
173
+ Point<2> & pplane, double h,
174
+ int & zone) const;
175
+ ///
176
+ virtual void FromPlane (const Point<2> & pplane,
177
+ Point<3> & p, double h) const;
178
+ ///
179
+ virtual void Project (Point<3> & p) const;
180
+
181
+ ///
182
+ virtual INSOLID_TYPE BoxInSolid (const BoxSphere<3> & box) const;
183
+ ///
184
+ virtual double HesseNorm () const;
185
+ ///
186
+ virtual Point<3> GetSurfacePoint () const;
187
+ ///
188
+ const Point<3> & Center () const { return c; }
189
+ ///
190
+ double Radius () const { return r; }
191
+
192
+ ///
193
+ virtual void GetTriangleApproximation (TriangleApproximation & tas,
194
+ const Box<3> & bbox,
195
+ double facets) const;
196
+ };
197
+
198
+
199
+ ///
200
+ class Cylinder : public QuadraticSurface
201
+ {
202
+ ///
203
+ Point<3> a, b;
204
+ ///
205
+ double r;
206
+ ///
207
+ Vec<3> vab;
208
+
209
+ public:
210
+ Cylinder (const Point<3> & aa, const Point<3> & ab, double ar);
211
+ Cylinder (NgArray<double> & coeffs);
212
+ // default constructor for archive
213
+ Cylinder() {}
214
+
215
+ virtual void DoArchive(Archive& ar)
216
+ {
217
+ QuadraticSurface::DoArchive(ar);
218
+ ar & a & b & r & vab;
219
+ }
220
+ Point<3> A() const { return a; }
221
+ Point<3> B() const { return b; }
222
+ double R() const { return r; }
223
+ virtual void GetPrimitiveData (const char *& classname, NgArray<double> & coeffs) const;
224
+ virtual void SetPrimitiveData (NgArray<double> & coeffs);
225
+ static Primitive * CreateDefault ();
226
+
227
+ virtual Primitive * Copy () const;
228
+ virtual void Print (ostream & str) const;
229
+
230
+ virtual void Transform (Transformation<3> & trans);
231
+
232
+ ///
233
+ virtual int IsIdentic (const Surface & s2, int & inv, double eps) const;
234
+ ///
235
+ virtual void DefineTangentialPlane (const Point<3> & ap1,
236
+ const Point<3> & ap2);
237
+ ///
238
+ virtual void ToPlane (const Point<3> & p,
239
+ Point<2> & pplane,
240
+ double h,
241
+ int & zone) const;
242
+ ///
243
+ virtual void FromPlane (const Point<2> & pplane,
244
+ Point<3> & p,
245
+ double h) const;
246
+ ///
247
+ virtual void Project (Point<3> & p) const;
248
+
249
+ ///
250
+ virtual INSOLID_TYPE BoxInSolid (const BoxSphere<3> & box) const;
251
+ ///
252
+ virtual double HesseNorm () const;
253
+ ///
254
+ virtual Point<3> GetSurfacePoint () const;
255
+ ///
256
+ virtual void GetTriangleApproximation (TriangleApproximation & tas,
257
+ const Box<3> & bbox,
258
+ double facets) const;
259
+ };
260
+
261
+
262
+
263
+
264
+
265
+ ///
266
+ class EllipticCylinder : public QuadraticSurface
267
+ {
268
+ private:
269
+ ///
270
+ Point<3> a;
271
+ ///
272
+ Vec<3> vl, vs;
273
+ ///
274
+ Vec<3> vab, t0vec, t1vec;
275
+ ///
276
+ double vabl, t0, t1;
277
+ public:
278
+ ///
279
+ EllipticCylinder (const Point<3> & aa,
280
+ const Vec<3> & avl, const Vec<3> & avs);
281
+ EllipticCylinder (NgArray<double> & coeffs);
282
+ // default constructor for archive
283
+ EllipticCylinder() {}
284
+
285
+ virtual void DoArchive(Archive& ar)
286
+ {
287
+ QuadraticSurface::DoArchive(ar);
288
+ ar & a & vl & vs & vab & t0vec & t1vec & vabl & t0 & t1;
289
+ }
290
+
291
+ // static Primitive * CreateDefault ();
292
+ virtual void GetPrimitiveData (const char *& classname, NgArray<double> & coeffs) const;
293
+ virtual void SetPrimitiveData (NgArray<double> & coeffs);
294
+
295
+ ///
296
+ virtual INSOLID_TYPE BoxInSolid (const BoxSphere<3> & box) const;
297
+ ///
298
+ virtual double HesseNorm () const;
299
+ ///
300
+ virtual Point<3> GetSurfacePoint () const;
301
+
302
+ virtual void GetTriangleApproximation (TriangleApproximation & tas,
303
+ const Box<3> & bbox,
304
+ double facets) const;
305
+
306
+ virtual int IsIdentic (const Surface & s2, int & inv, double eps) const;
307
+
308
+ virtual double MaxCurvature () const;
309
+
310
+ virtual double MaxCurvatureLoc (const Point<3> & /* c */ ,
311
+ double /* rad */) const;
312
+
313
+
314
+ private:
315
+ void CalcData();
316
+ };
317
+
318
+
319
+
320
+
321
+
322
+
323
+ ///
324
+ class Ellipsoid : public QuadraticSurface
325
+ {
326
+ private:
327
+ ///
328
+ Point<3> a;
329
+ ///
330
+ Vec<3> v1, v2, v3;
331
+ ///
332
+ double rmin;
333
+ public:
334
+ ///
335
+ Ellipsoid (const Point<3> & aa,
336
+ const Vec<3> & av1,
337
+ const Vec<3> & av2,
338
+ const Vec<3> & av3);
339
+ // default constructor for archive
340
+ Ellipsoid() {}
341
+
342
+ void DoArchive(Archive& ar) override
343
+ {
344
+ QuadraticSurface::DoArchive(ar);
345
+ ar & a & v1 & v2 & v3 & rmin;
346
+ }
347
+ ///
348
+ INSOLID_TYPE BoxInSolid (const BoxSphere<3> & box) const override;
349
+ ///
350
+ double HesseNorm () const override;
351
+ ///
352
+ double MaxCurvature () const override;
353
+ ///
354
+ Point<3> GetSurfacePoint () const override;
355
+
356
+ void GetTriangleApproximation (TriangleApproximation & tas,
357
+ const Box<3> & bbox,
358
+ double facets) const override;
359
+
360
+ void GetPrimitiveData (const char *& classname, NgArray<double> & coeffs) const override;
361
+ void SetPrimitiveData (NgArray<double> & coeffs) override;
362
+
363
+ private:
364
+ void CalcData();
365
+ };
366
+
367
+
368
+
369
+
370
+
371
+
372
+
373
+
374
+ ///
375
+ class Cone : public QuadraticSurface
376
+ {
377
+ ///
378
+ Point<3> a, b;
379
+ ///
380
+ double ra, rb, minr;
381
+ ///
382
+ Vec<3> vab, t0vec, t1vec;
383
+ ///
384
+ double vabl, t0, t1;
385
+ double cosphi;
386
+ public:
387
+ ///
388
+ Cone (const Point<3> & aa, const Point<3> & ab, double ara, double arb);
389
+ ///
390
+ // default constructor for archive
391
+ Cone() {}
392
+
393
+ virtual void DoArchive(Archive& ar)
394
+ {
395
+ QuadraticSurface::DoArchive(ar);
396
+ ar & a & b & ra & rb & minr & vab & t0vec & t1vec & vabl & t0 & t1 & cosphi;
397
+ }
398
+ static Primitive * CreateDefault ();
399
+ virtual void GetPrimitiveData (const char *& classname, NgArray<double> & coeffs) const;
400
+ virtual void SetPrimitiveData (NgArray<double> & coeffs);
401
+
402
+ ///
403
+ virtual INSOLID_TYPE BoxInSolid (const BoxSphere<3> & box) const;
404
+ ///
405
+ virtual double HesseNorm () const;
406
+
407
+ virtual double LocH (const Point<3> & p, double x,
408
+ double c,
409
+ const MeshingParameters & mparam,
410
+ double hmax) const;
411
+
412
+ ///
413
+ virtual Point<3> GetSurfacePoint () const;
414
+
415
+ virtual void GetTriangleApproximation (TriangleApproximation & tas,
416
+ const Box<3> & bbox,
417
+ double facets) const;
418
+
419
+ private:
420
+ void CalcData();
421
+ };
422
+
423
+
424
+ ///
425
+
426
+ /// Elliptic Cone
427
+ /// Josephat Kalezhi (kalezhi@cbu.ac.zm)
428
+ /// February 21st, 2018
429
+ ///
430
+
431
+ ///
432
+ class EllipticCone : public QuadraticSurface
433
+ {
434
+ Point<3> a;
435
+ Vec<3> vl, vs;
436
+ double h, vlr;
437
+
438
+ public:
439
+ ///
440
+ EllipticCone (const Point<3> & aa, const Vec<3> & avl,
441
+ const Vec<3> & avs, double ah, double avlr);
442
+ // default constructor for archive
443
+ EllipticCone() {}
444
+
445
+ virtual void DoArchive(Archive& ar)
446
+ {
447
+ QuadraticSurface::DoArchive(ar);
448
+ ar & a & vl & vs & h & vlr;
449
+ }
450
+ static Primitive * CreateDefault ();
451
+ virtual void GetPrimitiveData (const char *& classname, NgArray<double> & coeffs) const;
452
+ virtual void SetPrimitiveData (NgArray<double> & coeffs);
453
+
454
+ ///
455
+ virtual INSOLID_TYPE BoxInSolid (const BoxSphere<3> & box) const;
456
+ ///
457
+ virtual double HesseNorm () const;
458
+ virtual double MaxCurvature () const;
459
+ virtual double MaxCurvatureLoc (const Point<3> & /* c */ ,
460
+ double /* rad */) const;
461
+ ///
462
+ virtual Point<3> GetSurfacePoint () const;
463
+
464
+ virtual void GetTriangleApproximation (TriangleApproximation & tas,
465
+ const Box<3> & bbox,
466
+ double facets) const;
467
+
468
+ private:
469
+ void CalcData();
470
+ };
471
+
472
+
473
+ /** Torus
474
+ /// Lorenzo Codecasa (codecasa@elet.polimi.it)
475
+ /// April 27th, 2005
476
+ */
477
+ class Torus : public OneSurfacePrimitive
478
+ {
479
+ /// center of the torus
480
+ Point<3> c;
481
+ /// vector normal to the symmetry plane of the torus
482
+ Vec<3> n;
483
+ /// Large radius of the torus
484
+ double R;
485
+ /// Small radius of the torus
486
+ double r;
487
+
488
+ public:
489
+ /// OK
490
+ Torus (const Point<3> & ac, const Vec<3> & an, double aR, double ar);
491
+ // default constructor for archive
492
+ Torus() {}
493
+
494
+ virtual void DoArchive(Archive& ar)
495
+ {
496
+ OneSurfacePrimitive::DoArchive(ar);
497
+ ar & c & n & R & r;
498
+ }
499
+ /// OK
500
+ const Point<3> & Center () const { return c; }
501
+ /// OK
502
+ const Vec<3> & NormalToPlane () const { return n; }
503
+ /// OK
504
+ double LargeRadius () const { return R; }
505
+ /// OK
506
+ double SmallRadius () const { return r; }
507
+ /// OK
508
+ virtual double CalcFunctionValue (const Point<3> & point) const;
509
+ /// OK
510
+ virtual void CalcGradient (const Point<3> & point, Vec<3> & grad) const;
511
+ /// OK
512
+ virtual void CalcHesse (const Point<3> & point, Mat<3> & hesse) const;
513
+ /// OK
514
+ virtual double HesseNorm () const;
515
+ /// OK
516
+ virtual Point<3> GetSurfacePoint () const;
517
+ /// OK
518
+ virtual void GetPrimitiveData (const char *& classname,
519
+ NgArray<double> & coeffs) const;
520
+ /// OK
521
+ virtual void SetPrimitiveData (NgArray<double> & coeffs);
522
+ /// OK
523
+ static Primitive * CreateDefault ();
524
+ /// OK
525
+ virtual Primitive * Copy () const;
526
+ /// OK
527
+ virtual void Transform (Transformation<3> & trans);
528
+ /// OK
529
+ virtual int IsIdentic (const Surface & s2, int & inv, double eps) const;
530
+ /// OK
531
+ /// virtual void DefineTangentialPlane (const Point<3> & ap1,
532
+ // const Point<3> & ap2);
533
+ /// OK
534
+ /// virtual void ToPlane (const Point<3> & p3d,
535
+ /// Point<2> & pplane,
536
+ /// double h, int & zone) const;
537
+ /// OK
538
+ /// virtual void FromPlane (const Point<2> & pplane,
539
+ // Point<3> & p, double h) const;
540
+ /// OK
541
+ /// virtual void Project (Point<3> & p) const;
542
+ /// OK
543
+ virtual INSOLID_TYPE BoxInSolid (const BoxSphere<3> & box) const;
544
+ /// OK
545
+ virtual void GetTriangleApproximation (TriangleApproximation & tas,
546
+ const Box<3> & bbox,
547
+ double facets) const;
548
+ /// OK
549
+ virtual void Print (ostream & ist) const;
550
+ /// OK
551
+ virtual void Read (istream & ist);
552
+ };
553
+
554
+ /// ...end
555
+
556
+
557
+ }
558
+
559
+
560
+
561
+
562
+
563
+ #endif
@@ -0,0 +1,150 @@
1
+ #ifndef FILE_BRICK
2
+ #define FILE_BRICK
3
+
4
+
5
+ /**************************************************************************/
6
+ /* File: brick.hpp */
7
+ /* Author: Joachim Schoeberl */
8
+ /* Date: 11. Mar. 98 */
9
+ /**************************************************************************/
10
+
11
+ namespace netgen
12
+ {
13
+
14
+
15
+ /*
16
+
17
+ brick geometry, has several surfaces
18
+
19
+ */
20
+
21
+
22
+
23
+ class Parallelogram3d : public Surface
24
+ {
25
+ Point<3> p1, p2, p3, p4;
26
+ Vec<3> v12, v13;
27
+ Vec<3> n;
28
+
29
+ public:
30
+ Parallelogram3d (Point<3> ap1, Point<3> ap2, Point<3> ap3);
31
+ // default constructor for archive
32
+ Parallelogram3d() {}
33
+ virtual ~Parallelogram3d ();
34
+
35
+ virtual void DoArchive(Archive& ar)
36
+ {
37
+ Surface::DoArchive(ar);
38
+ ar & p1 & p2 & p3 & p4 & v12 & v13 & n;
39
+ }
40
+
41
+ void SetPoints (Point<3> ap1, Point<3> ap2, Point<3> ap3);
42
+
43
+ virtual int IsIdentic (const Surface & s2, int & inv, double eps) const;
44
+
45
+ virtual double CalcFunctionValue (const Point<3> & point) const;
46
+ virtual void CalcGradient (const Point<3> & point, Vec<3> & grad) const;
47
+ virtual void CalcHesse (const Point<3> & point, Mat<3> & hesse) const;
48
+ virtual double HesseNorm () const;
49
+
50
+ virtual Point<3> GetSurfacePoint () const;
51
+ virtual void Print (ostream & str) const;
52
+
53
+ virtual void GetTriangleApproximation (TriangleApproximation & tas,
54
+ const Box<3> & boundingbox,
55
+ double facets) const;
56
+
57
+ protected:
58
+ void CalcData();
59
+ };
60
+
61
+
62
+ class Brick : public Primitive
63
+ {
64
+ Point<3> p1, p2, p3, p4;
65
+ Vec<3> v12, v13, v14;
66
+ // NgArray<OneSurfacePrimitive*> faces;
67
+ NgArray<Plane*> faces;
68
+
69
+ public:
70
+ Brick (Point<3> ap1, Point<3> ap2, Point<3> ap3, Point<3> ap4);
71
+ // default constructor for archive
72
+ Brick() {}
73
+ virtual ~Brick ();
74
+
75
+ virtual void DoArchive(Archive& ar)
76
+ {
77
+ Primitive::DoArchive(ar);
78
+ ar & p1 & p2 & p3 & p4 & v12 & v13 & v14 & faces;
79
+ }
80
+ static Primitive * CreateDefault ();
81
+
82
+ virtual Primitive * Copy () const;
83
+ virtual void Transform (Transformation<3> & trans);
84
+
85
+
86
+ virtual INSOLID_TYPE BoxInSolid (const BoxSphere<3> & box) const;
87
+
88
+ virtual INSOLID_TYPE PointInSolid (const Point<3> & p,
89
+ double eps) const;
90
+ virtual INSOLID_TYPE VecInSolid (const Point<3> & p,
91
+ const Vec<3> & v,
92
+ double eps) const;
93
+ virtual INSOLID_TYPE VecInSolid2 (const Point<3> & p,
94
+ const Vec<3> & v1,
95
+ const Vec<3> & v2,
96
+ double eps) const;
97
+
98
+ virtual INSOLID_TYPE VecInSolid3 (const Point<3> & p,
99
+ const Vec<3> & v1,
100
+ const Vec<3> & v2,
101
+ double eps) const;
102
+
103
+ virtual INSOLID_TYPE VecInSolid4 (const Point<3> & p,
104
+ const Vec<3> & v,
105
+ const Vec<3> & v2,
106
+ const Vec<3> & m,
107
+ double eps) const;
108
+
109
+
110
+ virtual int GetNSurfaces() const
111
+ { return 6; }
112
+ virtual Surface & GetSurface (int i)
113
+ { return *faces[i]; }
114
+ virtual const Surface & GetSurface (int i) const
115
+ { return *faces[i]; }
116
+
117
+
118
+ virtual void GetPrimitiveData (const char *& classname, NgArray<double> & coeffs) const;
119
+ virtual void SetPrimitiveData (NgArray<double> & coeffs);
120
+
121
+ virtual void Reduce (const BoxSphere<3> & box);
122
+ virtual void UnReduce ();
123
+
124
+ protected:
125
+ void CalcData();
126
+ };
127
+
128
+
129
+ class OrthoBrick : public Brick
130
+ {
131
+ protected:
132
+ Point<3> pmin, pmax;
133
+ public:
134
+ OrthoBrick (const Point<3> & ap1, const Point<3> & ap2);
135
+ // default constructor for archive
136
+ OrthoBrick() {}
137
+
138
+ virtual void DoArchive(Archive& ar)
139
+ {
140
+ Brick::DoArchive(ar);
141
+ ar & pmin & pmax;
142
+ }
143
+
144
+ virtual INSOLID_TYPE BoxInSolid (const BoxSphere<3> & box) const;
145
+ virtual void Reduce (const BoxSphere<3> & box);
146
+ };
147
+
148
+ }
149
+
150
+ #endif