netgen-mesher 6.2.2504.post11.dev0__cp313-cp313-win_amd64.whl → 6.2.2506.post48.dev0__cp313-cp313-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 (153) hide show
  1. netgen/__init__.pyi +3 -3
  2. netgen/cmake/NetgenConfig.cmake +10 -9
  3. netgen/config/__init__.pyi +8 -8
  4. netgen/config/config.py +7 -7
  5. netgen/config/config.pyi +8 -8
  6. netgen/include/core/archive.hpp +18 -3
  7. netgen/include/core/array.hpp +20 -4
  8. netgen/include/core/autodiff.hpp +9 -11
  9. netgen/include/core/autodiffdiff.hpp +0 -2
  10. netgen/include/core/bitarray.hpp +1 -1
  11. netgen/include/core/flags.hpp +1 -1
  12. netgen/include/core/hashtable.hpp +1 -1
  13. netgen/include/core/memtracer.hpp +7 -7
  14. netgen/include/core/ngcore.hpp +5 -0
  15. netgen/include/core/ngcore_api.hpp +11 -0
  16. netgen/include/core/paje_trace.hpp +9 -8
  17. netgen/include/core/profiler.hpp +5 -5
  18. netgen/include/core/register_archive.hpp +8 -0
  19. netgen/include/core/simd.hpp +69 -1
  20. netgen/include/core/simd_arm64.hpp +205 -1
  21. netgen/include/core/simd_avx.hpp +72 -4
  22. netgen/include/core/simd_avx512.hpp +9 -0
  23. netgen/include/core/simd_generic.hpp +274 -8
  24. netgen/include/core/simd_math.hpp +178 -0
  25. netgen/include/core/simd_sse.hpp +11 -1
  26. netgen/include/core/statushandler.hpp +37 -0
  27. netgen/include/core/table.hpp +3 -2
  28. netgen/include/core/taskmanager.hpp +34 -1
  29. netgen/include/core/utils.hpp +3 -8
  30. netgen/include/include/netgen_version.hpp +4 -4
  31. netgen/include/meshing/basegeom.hpp +1 -4
  32. netgen/include/meshing/global.hpp +0 -17
  33. netgen/include/meshing/hpref_tet.hpp +41 -0
  34. netgen/include/meshing/hprefinement.hpp +2 -0
  35. netgen/include/meshing/meshtype.hpp +2 -1
  36. netgen/include/meshing/msghandler.hpp +9 -6
  37. netgen/include/meshing/topology.hpp +2 -2
  38. netgen/include/nginterface.h +3 -2
  39. netgen/include/occ/occ_utils.hpp +26 -0
  40. netgen/include/occ/occgeom.hpp +8 -0
  41. netgen/include/pybind11/attr.h +40 -8
  42. netgen/include/pybind11/buffer_info.h +14 -14
  43. netgen/include/pybind11/cast.h +553 -29
  44. netgen/include/pybind11/chrono.h +4 -1
  45. netgen/include/pybind11/conduit/README.txt +15 -0
  46. netgen/include/pybind11/conduit/pybind11_conduit_v1.h +116 -0
  47. netgen/include/pybind11/conduit/pybind11_platform_abi_id.h +87 -0
  48. netgen/include/pybind11/conduit/wrap_include_python_h.h +72 -0
  49. netgen/include/pybind11/critical_section.h +56 -0
  50. netgen/include/pybind11/detail/class.h +172 -97
  51. netgen/include/pybind11/detail/common.h +270 -189
  52. netgen/include/pybind11/detail/cpp_conduit.h +75 -0
  53. netgen/include/pybind11/detail/descr.h +55 -0
  54. netgen/include/pybind11/detail/dynamic_raw_ptr_cast_if_possible.h +39 -0
  55. netgen/include/pybind11/detail/exception_translation.h +71 -0
  56. netgen/include/pybind11/detail/function_record_pyobject.h +191 -0
  57. netgen/include/pybind11/detail/init.h +113 -9
  58. netgen/include/pybind11/detail/internals.h +479 -344
  59. netgen/include/pybind11/detail/native_enum_data.h +209 -0
  60. netgen/include/pybind11/detail/pybind11_namespace_macros.h +82 -0
  61. netgen/include/pybind11/detail/struct_smart_holder.h +378 -0
  62. netgen/include/pybind11/detail/type_caster_base.h +506 -133
  63. netgen/include/pybind11/detail/using_smart_holder.h +22 -0
  64. netgen/include/pybind11/detail/value_and_holder.h +90 -0
  65. netgen/include/pybind11/eigen/matrix.h +19 -10
  66. netgen/include/pybind11/eigen/tensor.h +15 -11
  67. netgen/include/pybind11/embed.h +50 -46
  68. netgen/include/pybind11/eval.h +11 -6
  69. netgen/include/pybind11/functional.h +58 -49
  70. netgen/include/pybind11/gil.h +34 -82
  71. netgen/include/pybind11/gil_safe_call_once.h +12 -1
  72. netgen/include/pybind11/gil_simple.h +37 -0
  73. netgen/include/pybind11/native_enum.h +67 -0
  74. netgen/include/pybind11/numpy.h +272 -93
  75. netgen/include/pybind11/pybind11.h +947 -265
  76. netgen/include/pybind11/pytypes.h +127 -21
  77. netgen/include/pybind11/stl/filesystem.h +23 -25
  78. netgen/include/pybind11/stl.h +277 -59
  79. netgen/include/pybind11/stl_bind.h +42 -7
  80. netgen/include/pybind11/subinterpreter.h +299 -0
  81. netgen/include/pybind11/trampoline_self_life_support.h +65 -0
  82. netgen/include/pybind11/typing.h +177 -4
  83. netgen/include/pybind11/warnings.h +75 -0
  84. netgen/include/visualization/mvdraw.hpp +48 -12
  85. netgen/include/visualization/vssolution.hpp +3 -1
  86. netgen/lib/libnggui.lib +0 -0
  87. netgen/lib/ngcore.lib +0 -0
  88. netgen/lib/nglib.lib +0 -0
  89. netgen/libnggui.dll +0 -0
  90. netgen/libngguipy.pyd +0 -0
  91. netgen/libngpy/_NgOCC.pyi +224 -139
  92. netgen/libngpy/_csg.pyi +26 -26
  93. netgen/libngpy/_geom2d.pyi +34 -25
  94. netgen/libngpy/_meshing.pyi +262 -111
  95. netgen/libngpy/_stl.pyi +3 -4
  96. netgen/libngpy.pyd +0 -0
  97. netgen/ngcore.dll +0 -0
  98. netgen/nglib.dll +0 -0
  99. netgen/read_gmsh.py +41 -0
  100. netgen/togl.dll +0 -0
  101. netgen/version.py +1 -1
  102. netgen/webgui.py +38 -2
  103. {netgen_mesher-6.2.2504.post11.dev0.dist-info → netgen_mesher-6.2.2506.post48.dev0.dist-info}/METADATA +2 -1
  104. {netgen_mesher-6.2.2504.post11.dev0.dist-info → netgen_mesher-6.2.2506.post48.dev0.dist-info}/RECORD +153 -132
  105. pyngcore/pyngcore.cp313-win_amd64.pyd +0 -0
  106. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/boundarycondition.geo +0 -0
  107. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/boxcyl.geo +0 -0
  108. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/circle_on_cube.geo +0 -0
  109. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/cone.geo +0 -0
  110. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/cube.geo +0 -0
  111. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/cubeandring.geo +0 -0
  112. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/cubeandspheres.geo +0 -0
  113. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/cubemcyl.geo +0 -0
  114. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/cubemsphere.geo +0 -0
  115. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/cylinder.geo +0 -0
  116. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/cylsphere.geo +0 -0
  117. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/doc/ng4.pdf +0 -0
  118. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/ellipsoid.geo +0 -0
  119. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/ellipticcyl.geo +0 -0
  120. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/extrusion.geo +0 -0
  121. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/fichera.geo +0 -0
  122. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/frame.step +0 -0
  123. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/hinge.stl +0 -0
  124. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/lshape3d.geo +0 -0
  125. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/manyholes.geo +0 -0
  126. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/manyholes2.geo +0 -0
  127. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/matrix.geo +0 -0
  128. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/ortho.geo +0 -0
  129. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/part1.stl +0 -0
  130. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/period.geo +0 -0
  131. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/py_tutorials/exportNeutral.py +0 -0
  132. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/py_tutorials/mesh.py +0 -0
  133. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/py_tutorials/shaft.geo +0 -0
  134. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/revolution.geo +0 -0
  135. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/screw.step +0 -0
  136. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/sculpture.geo +0 -0
  137. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/shaft.geo +0 -0
  138. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/shell.geo +0 -0
  139. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/sphere.geo +0 -0
  140. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/sphereincube.geo +0 -0
  141. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/square.in2d +0 -0
  142. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/squarecircle.in2d +0 -0
  143. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/squarehole.in2d +0 -0
  144. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/torus.geo +0 -0
  145. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/trafo.geo +0 -0
  146. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/twobricks.geo +0 -0
  147. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/twocubes.geo +0 -0
  148. {netgen_mesher-6.2.2504.post11.dev0.data → netgen_mesher-6.2.2506.post48.dev0.data}/data/share/netgen/twocyl.geo +0 -0
  149. {netgen_mesher-6.2.2504.post11.dev0.dist-info → netgen_mesher-6.2.2506.post48.dev0.dist-info}/AUTHORS +0 -0
  150. {netgen_mesher-6.2.2504.post11.dev0.dist-info → netgen_mesher-6.2.2506.post48.dev0.dist-info}/LICENSE +0 -0
  151. {netgen_mesher-6.2.2504.post11.dev0.dist-info → netgen_mesher-6.2.2506.post48.dev0.dist-info}/WHEEL +0 -0
  152. {netgen_mesher-6.2.2504.post11.dev0.dist-info → netgen_mesher-6.2.2506.post48.dev0.dist-info}/entry_points.txt +0 -0
  153. {netgen_mesher-6.2.2504.post11.dev0.dist-info → netgen_mesher-6.2.2506.post48.dev0.dist-info}/top_level.txt +0 -0
netgen/__init__.pyi CHANGED
@@ -1,5 +1,5 @@
1
1
  from __future__ import annotations
2
- from netgen.libngpy._meshing import _Redraw
2
+ from netgen.libngpy._meshing.pybind11_detail_function_record_v1_msvc_md_mscver19 import _Redraw
3
3
  from pathlib._local import Path
4
4
  from pyngcore.pyngcore import Timer
5
5
  import sys
@@ -17,6 +17,6 @@ def _get_diagnostics():
17
17
  def load_occ_libs():
18
18
  ...
19
19
  __diagnostics_template: str = '\nNetgen diagnostics:\n sys.platform: {sys.platform}\n sys.executable: {sys.executable}\n sys.version: {sys.version}\n Netgen python version: {config.PYTHON_VERSION}\n Netgen path {__file__}\n Netgen config {config.__file__}\n Netgen version {config.NETGEN_VERSION}\n sys.path: {sys.path}\n'
20
- _netgen_bin_dir: str = 'C:\\gitlabci\\tools\\builds\\3zsqG5ns\\0\\ngsolve\\ngsolve\\external_dependencies\\netgen\\_skbuild\\win-amd64-3.13\\cmake-install\\netgen'
21
- _netgen_lib_dir: str = 'C:\\gitlabci\\tools\\builds\\3zsqG5ns\\0\\ngsolve\\ngsolve\\external_dependencies\\netgen\\_skbuild\\win-amd64-3.13\\cmake-install\\netgen'
20
+ _netgen_bin_dir: str = 'C:\\gitlabci\\tools\\builds\\3zsqG5ns9\\0\\ngsolve\\ngsolve\\external_dependencies\\netgen\\_skbuild\\win-amd64-3.13\\cmake-install\\netgen'
21
+ _netgen_lib_dir: str = 'C:\\gitlabci\\tools\\builds\\3zsqG5ns9\\0\\ngsolve\\ngsolve\\external_dependencies\\netgen\\_skbuild\\win-amd64-3.13\\cmake-install\\netgen'
22
22
  v: sys.version_info # value = sys.version_info(major=3, minor=13, micro=2, releaselevel='final', serial=0)
@@ -1,14 +1,15 @@
1
- set(NETGEN_VERSION "6.2.2504-11-gfea644ae")
1
+ set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
2
+ set(NETGEN_VERSION "6.2.2506-48-g8263c0bc")
2
3
  set(NETGEN_VERSION_MAJOR "6")
3
4
  set(NETGEN_VERSION_MINOR "2")
4
- set(NETGEN_VERSION_PATCH "2504")
5
- set(NETGEN_VERSION_TWEAK "11")
5
+ set(NETGEN_VERSION_PATCH "2506")
6
+ set(NETGEN_VERSION_TWEAK "48")
6
7
 
7
8
  get_filename_component(NETGEN_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
8
9
 
9
10
  get_filename_component(NETGEN_DIR "${NETGEN_CMAKE_DIR}/../../" ABSOLUTE)
10
11
 
11
- set(NETGEN_COMPILE_DEFINITIONS "$<$<CONFIG:Release>:UNICODE>;$<$<CONFIG:Release>:_UNICODE>;$<$<CONFIG:Release>:_CRT_SECURE_NO_WARNINGS>;$<$<CONFIG:Release>:_CRT_NONSTDC_NO_DEPRECATE>;OCCGEOMETRY")
12
+ set(NETGEN_COMPILE_DEFINITIONS "")
12
13
 
13
14
  get_filename_component(NETGEN_INCLUDE_DIR "${NETGEN_CMAKE_DIR}/../include" ABSOLUTE)
14
15
  get_filename_component(NETGEN_BINARY_DIR "${NETGEN_CMAKE_DIR}/../" ABSOLUTE)
@@ -16,7 +17,7 @@ get_filename_component(NETGEN_LIBRARY_DIR "${NETGEN_CMAKE_DIR}/../lib" ABSOLUTE)
16
17
  get_filename_component(NETGEN_PYTHON_DIR "${NETGEN_CMAKE_DIR}/../../" ABSOLUTE)
17
18
  get_filename_component(NETGEN_RESOURCE_DIR "${NETGEN_CMAKE_DIR}/../../share" ABSOLUTE)
18
19
 
19
- set(NETGEN_SOURCE_DIR "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/ngsolve/external_dependencies/netgen")
20
+ set(NETGEN_SOURCE_DIR "C:/gitlabci/tools/builds/3zsqG5ns9/0/ngsolve/ngsolve/external_dependencies/netgen")
20
21
 
21
22
  set(NETGEN_BUILD_FOR_CONDA "ON")
22
23
  set(NETGEN_CHECK_RANGE "OFF")
@@ -41,15 +42,15 @@ set(NETGEN_OPENGL_LIBRARIES "opengl32;glu32")
41
42
  set(NETGEN_PYTHON_EXECUTABLE "C:/Python313/python.exe")
42
43
  set(NETGEN_PYTHON_INCLUDE_DIRS "C:/Python313/Include")
43
44
  set(NETGEN_PYTHON_LIBRARIES "C:/Python313/libs/python313.lib")
44
- set(NETGEN_TCL_INCLUDE_PATH "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-build/dependencies/src/project_tcl/generic")
45
+ set(NETGEN_TCL_INCLUDE_PATH "C:/gitlabci/tools/builds/3zsqG5ns9/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-build/dependencies/src/project_tcl/generic")
45
46
  set(NETGEN_TCL_LIBRARY "C:/Python313/tcl/tclstub86.lib")
46
47
  set(NETGEN_TK_DND_LIBRARY "")
47
- set(NETGEN_TK_INCLUDE_PATH "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-build/dependencies/src/project_tk/generic")
48
+ set(NETGEN_TK_INCLUDE_PATH "C:/gitlabci/tools/builds/3zsqG5ns9/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-build/dependencies/src/project_tk/generic")
48
49
  set(NETGEN_TK_LIBRARY "C:/Python313/tcl/tkstub86.lib")
49
50
  set(NETGEN_X11_X11_LIB "")
50
51
  set(NETGEN_X11_Xmu_LIB "")
51
- set(NETGEN_ZLIB_INCLUDE_DIRS "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-build/dependencies/zlib/include")
52
- set(NETGEN_ZLIB_LIBRARIES "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-build/dependencies/zlib/lib/zlibstatic.lib")
52
+ set(NETGEN_ZLIB_INCLUDE_DIRS "C:/gitlabci/tools/builds/3zsqG5ns9/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-build/dependencies/zlib/include")
53
+ set(NETGEN_ZLIB_LIBRARIES "C:/gitlabci/tools/builds/3zsqG5ns9/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-build/dependencies/zlib/lib/zlibstatic.lib")
53
54
 
54
55
  set(NETGEN_USE_GUI ON)
55
56
  set(NETGEN_USE_PYTHON ON)
@@ -5,7 +5,7 @@ __all__ = ['BUILD_FOR_CONDA', 'BUILD_STUB_FILES', 'CHECK_RANGE', 'CMAKE_INSTALL_
5
5
  BUILD_FOR_CONDA: bool = True
6
6
  BUILD_STUB_FILES: bool = True
7
7
  CHECK_RANGE: bool = False
8
- CMAKE_INSTALL_PREFIX: str = 'C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-install'
8
+ CMAKE_INSTALL_PREFIX: str = 'C:/gitlabci/tools/builds/3zsqG5ns9/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-install'
9
9
  DEBUG_LOG: bool = False
10
10
  ENABLE_CPP_CORE_GUIDELINES_CHECK: bool = False
11
11
  ENABLE_UNIT_TESTS: bool = False
@@ -14,14 +14,14 @@ INTEL_MIC: bool = False
14
14
  NETGEN_PYTHON_PACKAGE_NAME: str = 'netgen-mesher'
15
15
  NETGEN_PYTHON_RPATH: str = 'netgen'
16
16
  NETGEN_PYTHON_RPATH_BIN: str = 'netgen'
17
- NETGEN_VERSION: str = '6.2.2504-11-gfea644ae'
18
- NETGEN_VERSION_GIT: str = 'v6.2.2504-11-gfea644ae'
19
- NETGEN_VERSION_HASH: str = 'gfea644ae'
17
+ NETGEN_VERSION: str = '6.2.2506-48-g8263c0bc'
18
+ NETGEN_VERSION_GIT: str = 'v6.2.2506-48-g8263c0bc'
19
+ NETGEN_VERSION_HASH: str = 'g8263c0bc'
20
20
  NETGEN_VERSION_MAJOR: str = '6'
21
21
  NETGEN_VERSION_MINOR: str = '2'
22
- NETGEN_VERSION_PATCH: str = '2504'
23
- NETGEN_VERSION_PYTHON: str = '6.2.2504.post11.dev0'
24
- NETGEN_VERSION_TWEAK: str = '11'
22
+ NETGEN_VERSION_PATCH: str = '2506'
23
+ NETGEN_VERSION_PYTHON: str = '6.2.2506.post48.dev0'
24
+ NETGEN_VERSION_TWEAK: str = '48'
25
25
  NG_COMPILE_FLAGS: str = '/arch:AVX2'
26
26
  NG_INSTALL_DIR_BIN: str = 'netgen'
27
27
  NG_INSTALL_DIR_CMAKE: str = 'netgen/cmake'
@@ -49,4 +49,4 @@ USE_SPDLOG: bool = False
49
49
  is_python_package: bool = True
50
50
  ngcore_compile_definitions: str = 'NETGEN_PYTHON;NG_PYTHON;PYBIND11_SIMPLE_GIL_MANAGEMENT;_WIN32_WINNT=0x1000;WNT;WNT_WINDOW;NOMINMAX;MSVC_EXPRESS;_CRT_SECURE_NO_WARNINGS;HAVE_STRUCT_TIMESPEC;WIN32'
51
51
  ngcore_compile_options: str = '/arch:AVX2;/bigobj;$<BUILD_INTERFACE:/MP;/W1;/wd4068>'
52
- version: str = 'v6.2.2504-11-gfea644ae'
52
+ version: str = 'v6.2.2506-48-g8263c0bc'
netgen/config/config.py CHANGED
@@ -26,7 +26,7 @@ USE_OCC = _cmake_to_bool("ON")
26
26
  USE_PYTHON = _cmake_to_bool("ON")
27
27
  USE_SPDLOG = _cmake_to_bool("")
28
28
 
29
- CMAKE_INSTALL_PREFIX = "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-install"
29
+ CMAKE_INSTALL_PREFIX = "C:/gitlabci/tools/builds/3zsqG5ns9/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-install"
30
30
  NG_INSTALL_DIR_PYTHON = "."
31
31
  NG_INSTALL_DIR_BIN = "netgen"
32
32
  NG_INSTALL_DIR_LIB = "netgen/lib"
@@ -42,15 +42,15 @@ NG_COMPILE_FLAGS = "/arch:AVX2"
42
42
  ngcore_compile_options = "/arch:AVX2;/bigobj;$<BUILD_INTERFACE:/MP;/W1;/wd4068>"
43
43
  ngcore_compile_definitions = "NETGEN_PYTHON;NG_PYTHON;PYBIND11_SIMPLE_GIL_MANAGEMENT;_WIN32_WINNT=0x1000;WNT;WNT_WINDOW;NOMINMAX;MSVC_EXPRESS;_CRT_SECURE_NO_WARNINGS;HAVE_STRUCT_TIMESPEC;WIN32"
44
44
 
45
- NETGEN_VERSION = "6.2.2504-11-gfea644ae"
46
- NETGEN_VERSION_GIT = "v6.2.2504-11-gfea644ae"
47
- NETGEN_VERSION_PYTHON = "6.2.2504.post11.dev0"
45
+ NETGEN_VERSION = "6.2.2506-48-g8263c0bc"
46
+ NETGEN_VERSION_GIT = "v6.2.2506-48-g8263c0bc"
47
+ NETGEN_VERSION_PYTHON = "6.2.2506.post48.dev0"
48
48
 
49
49
  NETGEN_VERSION_MAJOR = "6"
50
50
  NETGEN_VERSION_MINOR = "2"
51
- NETGEN_VERSION_TWEAK = "11"
52
- NETGEN_VERSION_PATCH = "2504"
53
- NETGEN_VERSION_HASH = "gfea644ae"
51
+ NETGEN_VERSION_TWEAK = "48"
52
+ NETGEN_VERSION_PATCH = "2506"
53
+ NETGEN_VERSION_HASH = "g8263c0bc"
54
54
 
55
55
  PYTHON_VERSION = "3.13.2"
56
56
  PYTHON_VERSION_MAJOR = "3"
netgen/config/config.pyi CHANGED
@@ -7,7 +7,7 @@ def get_cmake_dir():
7
7
  BUILD_FOR_CONDA: bool = True
8
8
  BUILD_STUB_FILES: bool = True
9
9
  CHECK_RANGE: bool = False
10
- CMAKE_INSTALL_PREFIX: str = 'C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-install'
10
+ CMAKE_INSTALL_PREFIX: str = 'C:/gitlabci/tools/builds/3zsqG5ns9/0/ngsolve/ngsolve/external_dependencies/netgen/_skbuild/win-amd64-3.13/cmake-install'
11
11
  DEBUG_LOG: bool = False
12
12
  ENABLE_CPP_CORE_GUIDELINES_CHECK: bool = False
13
13
  ENABLE_UNIT_TESTS: bool = False
@@ -16,14 +16,14 @@ INTEL_MIC: bool = False
16
16
  NETGEN_PYTHON_PACKAGE_NAME: str = 'netgen-mesher'
17
17
  NETGEN_PYTHON_RPATH: str = 'netgen'
18
18
  NETGEN_PYTHON_RPATH_BIN: str = 'netgen'
19
- NETGEN_VERSION: str = '6.2.2504-11-gfea644ae'
20
- NETGEN_VERSION_GIT: str = 'v6.2.2504-11-gfea644ae'
21
- NETGEN_VERSION_HASH: str = 'gfea644ae'
19
+ NETGEN_VERSION: str = '6.2.2506-48-g8263c0bc'
20
+ NETGEN_VERSION_GIT: str = 'v6.2.2506-48-g8263c0bc'
21
+ NETGEN_VERSION_HASH: str = 'g8263c0bc'
22
22
  NETGEN_VERSION_MAJOR: str = '6'
23
23
  NETGEN_VERSION_MINOR: str = '2'
24
- NETGEN_VERSION_PATCH: str = '2504'
25
- NETGEN_VERSION_PYTHON: str = '6.2.2504.post11.dev0'
26
- NETGEN_VERSION_TWEAK: str = '11'
24
+ NETGEN_VERSION_PATCH: str = '2506'
25
+ NETGEN_VERSION_PYTHON: str = '6.2.2506.post48.dev0'
26
+ NETGEN_VERSION_TWEAK: str = '48'
27
27
  NG_COMPILE_FLAGS: str = '/arch:AVX2'
28
28
  NG_INSTALL_DIR_BIN: str = 'netgen'
29
29
  NG_INSTALL_DIR_CMAKE: str = 'netgen/cmake'
@@ -51,4 +51,4 @@ USE_SPDLOG: bool = False
51
51
  is_python_package: bool = True
52
52
  ngcore_compile_definitions: str = 'NETGEN_PYTHON;NG_PYTHON;PYBIND11_SIMPLE_GIL_MANAGEMENT;_WIN32_WINNT=0x1000;WNT;WNT_WINDOW;NOMINMAX;MSVC_EXPRESS;_CRT_SECURE_NO_WARNINGS;HAVE_STRUCT_TIMESPEC;WIN32'
53
53
  ngcore_compile_options: str = '/arch:AVX2;/bigobj;$<BUILD_INTERFACE:/MP;/W1;/wd4068>'
54
- version: str = 'v6.2.2504-11-gfea644ae'
54
+ version: str = 'v6.2.2506-48-g8263c0bc'
@@ -70,7 +70,8 @@ namespace ngcore
70
70
 
71
71
 
72
72
  #ifdef NETGEN_PYTHON
73
- pybind11::object CastAnyToPy(const std::any& a);
73
+ NGCORE_API pybind11::object CastAnyToPy(const std::any& a);
74
+ NGCORE_API std::any CastPyToAny(pybind11::object& h);
74
75
  #endif // NETGEN_PYTHON
75
76
 
76
77
  class NGCORE_API Archive;
@@ -184,6 +185,7 @@ namespace ngcore
184
185
  #ifdef NETGEN_PYTHON
185
186
  // std::function<pybind11::object(const std::any&)> anyToPyCaster;
186
187
  pybind11::object (*anyToPyCaster)(const std::any&);
188
+ std::any (*pyToAnyCaster)(pybind11::object&);
187
189
  #endif // NETGEN_PYTHON
188
190
  };
189
191
  } // namespace detail
@@ -234,7 +236,10 @@ namespace ngcore
234
236
  // it archives the object normally.
235
237
  #ifdef NETGEN_PYTHON
236
238
  template<typename T>
237
- Archive& Shallow(T& val); // implemented in python_ngcore.hpp
239
+ Archive& Shallow(T& val); // implemented in register_archive.hpp
240
+ #ifndef __CUDACC__
241
+ Archive& Shallow(std::any& val); // implemented in python_ngcore.cpp
242
+ #endif // __CUDACC__
238
243
  #else // NETGEN_PYTHON
239
244
  template<typename T>
240
245
  Archive& Shallow(T& val)
@@ -276,6 +281,14 @@ namespace ngcore
276
281
  virtual Archive & operator & (std::string & str) = 0;
277
282
  virtual Archive & operator & (char *& str) = 0;
278
283
 
284
+ #ifdef NETGEN_PYTHON
285
+ Archive & operator &(std::any& a)
286
+ {
287
+ Shallow(a);
288
+ return *this;
289
+ }
290
+ #endif
291
+
279
292
  Archive & operator & (VersionInfo & version)
280
293
  {
281
294
  if(Output())
@@ -505,7 +518,8 @@ namespace ngcore
505
518
  template <typename T>
506
519
  Archive& operator & (ngcore::Shallow<T>& shallow)
507
520
  {
508
- this->Shallow(shallow.val);
521
+ if(shallow_to_python)
522
+ Shallow(shallow.val);
509
523
  return *this;
510
524
  }
511
525
 
@@ -763,6 +777,7 @@ namespace ngcore
763
777
 
764
778
  #ifdef NETGEN_PYTHON
765
779
  friend pybind11::object CastAnyToPy(const std::any&);
780
+ friend std::any CastPyToAny(pybind11::object&);
766
781
  #endif // NETGEN_PYTHON
767
782
 
768
783
  // Returns ClassArchiveInfo of Demangled typeid
@@ -347,7 +347,7 @@ namespace ngcore
347
347
 
348
348
  */
349
349
  template <typename T>
350
- auto Range(const T & x)
350
+ NETGEN_INLINE auto Range(const T & x)
351
351
  -> typename std::enable_if<std::is_integral_v<T> || !has_range<T>,
352
352
  decltype(Range_impl(x, std::is_integral<T>()))>::type {
353
353
  return Range_impl(x, std::is_integral<T>());
@@ -455,11 +455,11 @@ namespace ngcore
455
455
  using BaseArrayObject<FlatArray>::ILLEGAL_POSITION;
456
456
 
457
457
  /// initialize array
458
- NETGEN_INLINE FlatArray () = default;
458
+ FlatArray () = default;
459
459
  // { ; } // size = 0; data = 0; }
460
460
 
461
461
  /// copy constructor allows size-type conversion
462
- NETGEN_INLINE FlatArray (const FlatArray & a2) = default;
462
+ FlatArray (const FlatArray & a2) = default;
463
463
  // : size(a2.Size()), data(a2.data) { ; }
464
464
 
465
465
  /// provide size and memory
@@ -1442,8 +1442,24 @@ namespace ngcore
1442
1442
  template <class T, typename TLESS>
1443
1443
  void QuickSort (FlatArray<T> data, TLESS less)
1444
1444
  {
1445
- if (data.Size() <= 1) return;
1445
+ constexpr size_t INSERTION_SORT_THRESHOLD = 16;
1446
+
1447
+ if (data.Size() <= INSERTION_SORT_THRESHOLD) {
1448
+ // insertion sort
1449
+ for (ptrdiff_t k = 1; k < data.Size(); ++k)
1450
+ {
1451
+ auto newval = data[k];
1452
+ ptrdiff_t l = k;
1453
+ for ( ; l > 0 && less(newval, data[l-1]); --l)
1454
+ data[l] = data[l-1];
1455
+ data[l] = newval;
1456
+ }
1457
+
1458
+ return;
1459
+ }
1446
1460
 
1461
+ // if (data.Size() <= 1) return;
1462
+
1447
1463
  ptrdiff_t i = 0;
1448
1464
  ptrdiff_t j = data.Size()-1;
1449
1465
 
@@ -9,7 +9,6 @@
9
9
 
10
10
  namespace ngcore
11
11
  {
12
- using ngcore::IfPos;
13
12
 
14
13
  // Automatic differentiation datatype
15
14
 
@@ -247,7 +246,6 @@ NETGEN_INLINE AutoDiffVec<D,SCAL> operator* (const AutoDiffVec<D,SCAL> & x, cons
247
246
  }
248
247
 
249
248
  /// AutoDiffVec times AutoDiffVec
250
- using ngcore::sqr;
251
249
  template<int D, typename SCAL>
252
250
  NETGEN_INLINE AutoDiffVec<D,SCAL> sqr (const AutoDiffVec<D,SCAL> & x) throw()
253
251
  {
@@ -645,10 +643,10 @@ NETGEN_INLINE AutoDiffVec<D,SCAL> asin (AutoDiffVec<D,SCAL> x)
645
643
  SCAL last;
646
644
 
647
645
  public:
648
- NETGEN_INLINE AutoDiffRec () = default;
649
- NETGEN_INLINE AutoDiffRec (const AutoDiffRec &) = default;
646
+ AutoDiffRec () = default;
647
+ AutoDiffRec (const AutoDiffRec &) = default;
650
648
  NETGEN_INLINE AutoDiffRec (AutoDiffRec<D-1,SCAL> _rec, SCAL _last) : rec(_rec), last(_last) { ; }
651
- NETGEN_INLINE AutoDiffRec & operator= (const AutoDiffRec &) = default;
649
+ AutoDiffRec & operator= (const AutoDiffRec &) = default;
652
650
 
653
651
  NETGEN_INLINE AutoDiffRec (SCAL aval) : rec(aval), last(0.0) { ; }
654
652
  NETGEN_INLINE AutoDiffRec (SCAL aval, int diffindex) : rec(aval, diffindex), last((diffindex==D-1) ? 1.0 : 0.0) { ; }
@@ -691,14 +689,14 @@ NETGEN_INLINE AutoDiffVec<D,SCAL> asin (AutoDiffVec<D,SCAL> x)
691
689
  {
692
690
  SCAL val;
693
691
  public:
694
- NETGEN_INLINE AutoDiffRec () = default;
695
- NETGEN_INLINE AutoDiffRec (const AutoDiffRec &) = default;
692
+ AutoDiffRec () = default;
693
+ AutoDiffRec (const AutoDiffRec &) = default;
696
694
  NETGEN_INLINE AutoDiffRec (SCAL _val) : val(_val) { ; }
697
695
  NETGEN_INLINE AutoDiffRec (SCAL _val, SCAL /* _dummylast */) : val(_val) { ; }
698
696
  NETGEN_INLINE AutoDiffRec (SCAL aval, const SCAL * /* grad */)
699
697
  : val(aval) { }
700
698
 
701
- NETGEN_INLINE AutoDiffRec & operator= (const AutoDiffRec &) = default;
699
+ AutoDiffRec & operator= (const AutoDiffRec &) = default;
702
700
  NETGEN_INLINE AutoDiffRec & operator= (SCAL aval) { val = aval; return *this; }
703
701
 
704
702
  NETGEN_INLINE SCAL Value() const { return val; }
@@ -719,8 +717,8 @@ NETGEN_INLINE AutoDiffVec<D,SCAL> asin (AutoDiffVec<D,SCAL> x)
719
717
  SCAL val;
720
718
  SCAL last;
721
719
  public:
722
- NETGEN_INLINE AutoDiffRec () = default;
723
- NETGEN_INLINE AutoDiffRec (const AutoDiffRec &) = default;
720
+ AutoDiffRec () = default;
721
+ AutoDiffRec (const AutoDiffRec &) = default;
724
722
  NETGEN_INLINE AutoDiffRec (SCAL _val) : val(_val), last(0.0) { ; }
725
723
  NETGEN_INLINE AutoDiffRec (SCAL _val, SCAL _last) : val(_val), last(_last) { ; }
726
724
  NETGEN_INLINE AutoDiffRec (SCAL aval, int diffindex) : val(aval), last((diffindex==0) ? 1.0 : 0.0) { ; }
@@ -733,7 +731,7 @@ NETGEN_INLINE AutoDiffVec<D,SCAL> asin (AutoDiffVec<D,SCAL> x)
733
731
  DValue(0) = ad.DValue(0);
734
732
  }
735
733
 
736
- NETGEN_INLINE AutoDiffRec & operator= (const AutoDiffRec &) = default;
734
+ AutoDiffRec & operator= (const AutoDiffRec &) = default;
737
735
  NETGEN_INLINE AutoDiffRec & operator= (SCAL aval) { val = aval; last = 0.0; return *this; }
738
736
 
739
737
  NETGEN_INLINE SCAL Value() const { return val; }
@@ -9,8 +9,6 @@
9
9
 
10
10
  namespace ngcore
11
11
  {
12
- using ngcore::IfPos;
13
-
14
12
  // Automatic second differentiation datatype
15
13
 
16
14
 
@@ -155,7 +155,7 @@ public:
155
155
 
156
156
  NGCORE_API auto * Data() const { return data; }
157
157
 
158
- const size_t GetMemoryUsage() const { return owns_data ? (size+CHAR_BIT-1)/CHAR_BIT : 0; }
158
+ size_t GetMemoryUsage() const { return owns_data ? (size+CHAR_BIT-1)/CHAR_BIT : 0; }
159
159
  const MemoryTracer& GetMemoryTracer() const { return mt; }
160
160
  void StartMemoryTracing() const
161
161
  {
@@ -47,7 +47,7 @@ namespace ngcore
47
47
  /// copy flags
48
48
  Flags (const Flags & flags);
49
49
  /// steal flags
50
- Flags (Flags && flags);
50
+ Flags (Flags && flags) = default;
51
51
  ///
52
52
  Flags (std::initializer_list<std::string> list);
53
53
  ///
@@ -53,7 +53,7 @@ namespace ngcore
53
53
 
54
54
  public:
55
55
  ///
56
- constexpr NETGEN_INLINE IVec () = default;
56
+ constexpr IVec () = default;
57
57
  constexpr NETGEN_INLINE IVec (const IVec & i1) : i(i1.i) { }
58
58
 
59
59
  constexpr NETGEN_INLINE IVec (T ai1) : i(ai1) { }
@@ -198,17 +198,17 @@ namespace ngcore
198
198
  }
199
199
  #else // defined(NETGEN_TRACE_MEMORY) && !defined(__CUDA_ARCH__)
200
200
  public:
201
- MemoryTracer() {}
202
- MemoryTracer( std::string /* name */ ) {}
201
+ NETGEN_INLINE MemoryTracer() {}
202
+ NETGEN_INLINE MemoryTracer( std::string /* name */ ) {}
203
203
  template <typename... TRest>
204
- MemoryTracer( std::string /* name */, TRest & ... ) {}
204
+ NETGEN_INLINE MemoryTracer( std::string /* name */, TRest & ... ) {}
205
205
 
206
- void Alloc(size_t /* size */) const {}
207
- void Free(size_t /* size */) const {}
208
- int GetId() const { return 0; }
206
+ NETGEN_INLINE void Alloc(size_t /* size */) const {}
207
+ NETGEN_INLINE void Free(size_t /* size */) const {}
208
+ NETGEN_INLINE int GetId() const { return 0; }
209
209
 
210
210
  template <typename... TRest>
211
- void Track(TRest&...) const {}
211
+ NETGEN_INLINE void Track(TRest&...) const {}
212
212
 
213
213
  static std::string GetName(int /* id */) { return ""; }
214
214
  std::string GetName() const { return ""; }
@@ -23,5 +23,10 @@
23
23
  #include "ngstream.hpp"
24
24
  #include "utils.hpp"
25
25
  #include "ranges.hpp"
26
+ #include "statushandler.hpp"
26
27
 
27
28
  #endif // NETGEN_CORE_NGCORE_HPP
29
+
30
+
31
+
32
+
@@ -39,6 +39,9 @@
39
39
  #ifdef WIN32
40
40
  #define NGCORE_API_EXPORT __declspec(dllexport)
41
41
  #define NGCORE_API_IMPORT __declspec(dllimport)
42
+ #elif EMSCRIPTEN
43
+ #define NGCORE_API_EXPORT __attribute__((visibility("default"))) __attribute__((used))
44
+ #define NGCORE_API_IMPORT
42
45
  #else
43
46
  #define NGCORE_API_EXPORT __attribute__((visibility("default")))
44
47
  #define NGCORE_API_IMPORT __attribute__((visibility("default")))
@@ -57,6 +60,14 @@
57
60
  #define NETGEN_HD
58
61
  #endif // __CUDACC__
59
62
 
63
+
64
+ #ifdef __CUDACC__
65
+ // partial override of overloaded function (Archive, MultAdd)
66
+ #pragma nv_diag_suppress 611
67
+ #endif
68
+
69
+
70
+
60
71
  #ifdef __INTEL_COMPILER
61
72
  #define NETGEN_ALWAYS_INLINE __forceinline
62
73
  #define NETGEN_INLINE __forceinline inline
@@ -98,10 +98,11 @@ namespace ngcore
98
98
 
99
99
  struct TimerEvent
100
100
  {
101
- int timer_id;
102
101
  TTimePoint time;
103
- bool is_start;
102
+ int timer_id;
104
103
  int thread_id;
104
+ int custom_value = -1;
105
+ bool is_start;
105
106
 
106
107
  bool operator < (const TimerEvent & other) const { return time < other.time; }
107
108
  };
@@ -170,12 +171,12 @@ namespace ngcore
170
171
  if(!tracing_enabled) return;
171
172
  user_events.push_back(ue);
172
173
  }
173
- void StartGPU(int timer_id = 0)
174
+ void StartGPU(int timer_id = 0, int user_value = -1)
174
175
  {
175
176
  if(!tracing_enabled) return;
176
177
  if(unlikely(gpu_events.size() == max_num_events_per_thread))
177
178
  StopTracing();
178
- gpu_events.push_back(TimerEvent{timer_id, GetTimeCounter(), true});
179
+ gpu_events.push_back(TimerEvent{GetTimeCounter(), timer_id, 0, user_value, true});
179
180
  }
180
181
 
181
182
  void StopGPU(int timer_id)
@@ -183,15 +184,15 @@ namespace ngcore
183
184
  if(!tracing_enabled) return;
184
185
  if(unlikely(gpu_events.size() == max_num_events_per_thread))
185
186
  StopTracing();
186
- gpu_events.push_back(TimerEvent{timer_id, GetTimeCounter(), false});
187
+ gpu_events.push_back(TimerEvent{GetTimeCounter(), timer_id, 0, -1, false});
187
188
  }
188
189
 
189
- void StartTimer(int timer_id)
190
+ void StartTimer(int timer_id, int user_value = -1)
190
191
  {
191
192
  if(!tracing_enabled) return;
192
193
  if(unlikely(timer_events.size() == max_num_events_per_thread))
193
194
  StopTracing();
194
- timer_events.push_back(TimerEvent{timer_id, GetTimeCounter(), true});
195
+ timer_events.push_back(TimerEvent{GetTimeCounter(), timer_id, 0, user_value, true});
195
196
  }
196
197
 
197
198
  void StopTimer(int timer_id)
@@ -199,7 +200,7 @@ namespace ngcore
199
200
  if(!tracing_enabled) return;
200
201
  if(unlikely(timer_events.size() == max_num_events_per_thread))
201
202
  StopTracing();
202
- timer_events.push_back(TimerEvent{timer_id, GetTimeCounter(), false});
203
+ timer_events.push_back(TimerEvent{GetTimeCounter(), timer_id, 0, -1, false});
203
204
  }
204
205
 
205
206
  void AllocMemory(int id, size_t size)
@@ -202,21 +202,21 @@ namespace ngcore
202
202
  {
203
203
  Stop(TaskManager::GetThreadId());
204
204
  }
205
- void Start (int tid) const
205
+ void Start (int tid, int trace_value = -1) const
206
206
  {
207
207
  if(tid==0)
208
208
  {
209
209
  if constexpr(do_timing)
210
210
  NgProfiler::StartTimer (timernr);
211
211
  if constexpr(do_tracing)
212
- if(trace) trace->StartTimer(timernr);
212
+ if(trace) trace->StartTimer(timernr, trace_value);
213
213
  }
214
214
  else
215
215
  {
216
216
  if constexpr(do_timing)
217
217
  NgProfiler::StartThreadTimer(timernr, tid);
218
218
  if constexpr(do_tracing)
219
- if(trace) trace->StartTask (tid, timernr, PajeTrace::Task::ID_TIMER);
219
+ if(trace) trace->StartTask (tid, timernr, PajeTrace::Task::ID_TIMER, trace_value);
220
220
  }
221
221
  }
222
222
  void Stop (int tid) const
@@ -262,10 +262,10 @@ namespace ngcore
262
262
  int tid;
263
263
  public:
264
264
  /// start timer
265
- RegionTimer (const TTimer & atimer) : timer(atimer)
265
+ RegionTimer (const TTimer & atimer, int trace_value = -1) : timer(atimer)
266
266
  {
267
267
  tid = TaskManager::GetThreadId();
268
- timer.Start(tid);
268
+ timer.Start(tid, trace_value);
269
269
  }
270
270
 
271
271
  /// stop timer
@@ -84,6 +84,14 @@ namespace ngcore {
84
84
  return pybind11::cast(val);
85
85
  }
86
86
  };
87
+ info.pyToAnyCaster = [](pybind11::object &obj)
88
+ {
89
+ if constexpr(has_shared_from_this2<T>::value || !std::is_copy_constructible<T>::value)
90
+ return std::any { obj.cast<std::shared_ptr<T>>() };
91
+ else
92
+ return std::any { obj.cast<T>() };
93
+ };
94
+
87
95
  #endif // NETGEN_PYTHON
88
96
  Archive::SetArchiveRegister(std::string(Demangle(typeid(T).name())),info);
89
97
  }
@@ -7,10 +7,12 @@
7
7
  /* Date: 25. Mar. 16 */
8
8
  /**************************************************************************/
9
9
 
10
+ #include <array>
11
+ #include <tuple>
10
12
  #include "ngcore_api.hpp"
11
-
12
13
  #include "simd_generic.hpp"
13
14
 
15
+
14
16
  #ifndef __CUDA_ARCH__
15
17
 
16
18
  #ifdef NETGEN_ARCH_AMD64
@@ -87,6 +89,72 @@ namespace ngcore
87
89
  // return SIMD<double,4>(HSum(s1), HSum(s2), HSum(s3), HSum(s4));
88
90
  return SIMD<double,4>(HSum(s1, s2), HSum(s3,s4));
89
91
  }
92
+
93
+
94
+
95
+ template <typename T, size_t S> class MakeSimdCl;
96
+
97
+ template <typename T, size_t S>
98
+ auto MakeSimd (std::array<T,S> aa) { return MakeSimdCl(aa).Get(); }
99
+
100
+
101
+ template <typename T, size_t S>
102
+ class MakeSimdCl
103
+ {
104
+ std::array<T,S> a;
105
+ public:
106
+ MakeSimdCl (std::array<T,S> aa) : a(aa) { ; }
107
+ auto Get() const
108
+ {
109
+ SIMD<T,S> sa( [this] (auto i) { return (this->a)[i]; });
110
+ return sa;
111
+ }
112
+ };
113
+
114
+
115
+
116
+
117
+ template <typename Tfirst, size_t S, typename ...Trest>
118
+ class MakeSimdCl<std::tuple<Tfirst,Trest...>,S>
119
+ {
120
+ std::array<std::tuple<Tfirst,Trest...>,S> a;
121
+ public:
122
+ MakeSimdCl (std::array<std::tuple<Tfirst,Trest...>,S> aa) : a(aa) { ; }
123
+ auto Get() const
124
+ {
125
+ std::array<Tfirst,S> a0;
126
+ for (int i = 0; i < S; i++)
127
+ a0[i] = std::get<0> (a[i]);
128
+
129
+ if constexpr (std::tuple_size<std::tuple<Tfirst,Trest...>>::value == 1)
130
+ {
131
+ return std::tuple(MakeSimd(a0));
132
+ }
133
+ else
134
+ {
135
+ std::array<std::tuple<Trest...>,S> arest;
136
+ for (int i = 0; i < S; i++)
137
+ arest[i] = skip_first(a[i]);
138
+
139
+ return std::tuple_cat ( std::tuple (MakeSimd(a0)), MakeSimd(arest) );
140
+ }
141
+ }
142
+
143
+ template <typename... Ts>
144
+ static auto skip_first(const std::tuple<Ts...>& t) {
145
+ return std::apply([](auto first, auto... rest) {
146
+ return std::make_tuple(rest...);
147
+ }, t);
148
+ }
149
+ };
150
+
151
+
152
+
153
+
154
+
90
155
  }
91
156
 
157
+
158
+ #include "simd_math.hpp"
159
+
92
160
  #endif // NETGEN_CORE_SIMD_HPP