netgen-mesher 6.2.2506.post31.dev0__cp313-cp313-win_amd64.whl → 6.2.2506.post35.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 (67) hide show
  1. netgen/cmake/NetgenConfig.cmake +2 -2
  2. netgen/config/__init__.pyi +6 -6
  3. netgen/config/config.py +5 -5
  4. netgen/config/config.pyi +6 -6
  5. netgen/include/core/array.hpp +17 -1
  6. netgen/include/core/simd_arm64.hpp +87 -1
  7. netgen/include/core/simd_generic.hpp +181 -4
  8. netgen/include/core/taskmanager.hpp +34 -1
  9. netgen/include/include/netgen_version.hpp +3 -3
  10. netgen/libnggui.dll +0 -0
  11. netgen/libngguipy.pyd +0 -0
  12. netgen/libngpy.pyd +0 -0
  13. netgen/ngcore.dll +0 -0
  14. netgen/nglib.dll +0 -0
  15. netgen/togl.dll +0 -0
  16. netgen/version.py +1 -1
  17. {netgen_mesher-6.2.2506.post31.dev0.dist-info → netgen_mesher-6.2.2506.post35.dev0.dist-info}/METADATA +1 -1
  18. {netgen_mesher-6.2.2506.post31.dev0.dist-info → netgen_mesher-6.2.2506.post35.dev0.dist-info}/RECORD +67 -67
  19. pyngcore/pyngcore.cp313-win_amd64.pyd +0 -0
  20. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/boundarycondition.geo +0 -0
  21. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/boxcyl.geo +0 -0
  22. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/circle_on_cube.geo +0 -0
  23. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/cone.geo +0 -0
  24. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/cube.geo +0 -0
  25. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/cubeandring.geo +0 -0
  26. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/cubeandspheres.geo +0 -0
  27. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/cubemcyl.geo +0 -0
  28. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/cubemsphere.geo +0 -0
  29. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/cylinder.geo +0 -0
  30. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/cylsphere.geo +0 -0
  31. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/doc/ng4.pdf +0 -0
  32. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/ellipsoid.geo +0 -0
  33. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/ellipticcyl.geo +0 -0
  34. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/extrusion.geo +0 -0
  35. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/fichera.geo +0 -0
  36. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/frame.step +0 -0
  37. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/hinge.stl +0 -0
  38. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/lshape3d.geo +0 -0
  39. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/manyholes.geo +0 -0
  40. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/manyholes2.geo +0 -0
  41. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/matrix.geo +0 -0
  42. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/ortho.geo +0 -0
  43. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/part1.stl +0 -0
  44. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/period.geo +0 -0
  45. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/py_tutorials/exportNeutral.py +0 -0
  46. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/py_tutorials/mesh.py +0 -0
  47. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/py_tutorials/shaft.geo +0 -0
  48. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/revolution.geo +0 -0
  49. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/screw.step +0 -0
  50. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/sculpture.geo +0 -0
  51. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/shaft.geo +0 -0
  52. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/shell.geo +0 -0
  53. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/sphere.geo +0 -0
  54. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/sphereincube.geo +0 -0
  55. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/square.in2d +0 -0
  56. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/squarecircle.in2d +0 -0
  57. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/squarehole.in2d +0 -0
  58. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/torus.geo +0 -0
  59. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/trafo.geo +0 -0
  60. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/twobricks.geo +0 -0
  61. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/twocubes.geo +0 -0
  62. {netgen_mesher-6.2.2506.post31.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/twocyl.geo +0 -0
  63. {netgen_mesher-6.2.2506.post31.dev0.dist-info → netgen_mesher-6.2.2506.post35.dev0.dist-info}/AUTHORS +0 -0
  64. {netgen_mesher-6.2.2506.post31.dev0.dist-info → netgen_mesher-6.2.2506.post35.dev0.dist-info}/LICENSE +0 -0
  65. {netgen_mesher-6.2.2506.post31.dev0.dist-info → netgen_mesher-6.2.2506.post35.dev0.dist-info}/WHEEL +0 -0
  66. {netgen_mesher-6.2.2506.post31.dev0.dist-info → netgen_mesher-6.2.2506.post35.dev0.dist-info}/entry_points.txt +0 -0
  67. {netgen_mesher-6.2.2506.post31.dev0.dist-info → netgen_mesher-6.2.2506.post35.dev0.dist-info}/top_level.txt +0 -0
@@ -1,9 +1,9 @@
1
1
  set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
2
- set(NETGEN_VERSION "6.2.2506-31-ga34e6d60")
2
+ set(NETGEN_VERSION "6.2.2506-35-ga9438ce2")
3
3
  set(NETGEN_VERSION_MAJOR "6")
4
4
  set(NETGEN_VERSION_MINOR "2")
5
5
  set(NETGEN_VERSION_PATCH "2506")
6
- set(NETGEN_VERSION_TWEAK "31")
6
+ set(NETGEN_VERSION_TWEAK "35")
7
7
 
8
8
  get_filename_component(NETGEN_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
9
9
 
@@ -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.2506-31-ga34e6d60'
18
- NETGEN_VERSION_GIT: str = 'v6.2.2506-31-ga34e6d60'
19
- NETGEN_VERSION_HASH: str = 'ga34e6d60'
17
+ NETGEN_VERSION: str = '6.2.2506-35-ga9438ce2'
18
+ NETGEN_VERSION_GIT: str = 'v6.2.2506-35-ga9438ce2'
19
+ NETGEN_VERSION_HASH: str = 'ga9438ce2'
20
20
  NETGEN_VERSION_MAJOR: str = '6'
21
21
  NETGEN_VERSION_MINOR: str = '2'
22
22
  NETGEN_VERSION_PATCH: str = '2506'
23
- NETGEN_VERSION_PYTHON: str = '6.2.2506.post31.dev0'
24
- NETGEN_VERSION_TWEAK: str = '31'
23
+ NETGEN_VERSION_PYTHON: str = '6.2.2506.post35.dev0'
24
+ NETGEN_VERSION_TWEAK: str = '35'
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.2506-31-ga34e6d60'
52
+ version: str = 'v6.2.2506-35-ga9438ce2'
netgen/config/config.py CHANGED
@@ -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.2506-31-ga34e6d60"
46
- NETGEN_VERSION_GIT = "v6.2.2506-31-ga34e6d60"
47
- NETGEN_VERSION_PYTHON = "6.2.2506.post31.dev0"
45
+ NETGEN_VERSION = "6.2.2506-35-ga9438ce2"
46
+ NETGEN_VERSION_GIT = "v6.2.2506-35-ga9438ce2"
47
+ NETGEN_VERSION_PYTHON = "6.2.2506.post35.dev0"
48
48
 
49
49
  NETGEN_VERSION_MAJOR = "6"
50
50
  NETGEN_VERSION_MINOR = "2"
51
- NETGEN_VERSION_TWEAK = "31"
51
+ NETGEN_VERSION_TWEAK = "35"
52
52
  NETGEN_VERSION_PATCH = "2506"
53
- NETGEN_VERSION_HASH = "ga34e6d60"
53
+ NETGEN_VERSION_HASH = "ga9438ce2"
54
54
 
55
55
  PYTHON_VERSION = "3.13.2"
56
56
  PYTHON_VERSION_MAJOR = "3"
netgen/config/config.pyi CHANGED
@@ -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.2506-31-ga34e6d60'
20
- NETGEN_VERSION_GIT: str = 'v6.2.2506-31-ga34e6d60'
21
- NETGEN_VERSION_HASH: str = 'ga34e6d60'
19
+ NETGEN_VERSION: str = '6.2.2506-35-ga9438ce2'
20
+ NETGEN_VERSION_GIT: str = 'v6.2.2506-35-ga9438ce2'
21
+ NETGEN_VERSION_HASH: str = 'ga9438ce2'
22
22
  NETGEN_VERSION_MAJOR: str = '6'
23
23
  NETGEN_VERSION_MINOR: str = '2'
24
24
  NETGEN_VERSION_PATCH: str = '2506'
25
- NETGEN_VERSION_PYTHON: str = '6.2.2506.post31.dev0'
26
- NETGEN_VERSION_TWEAK: str = '31'
25
+ NETGEN_VERSION_PYTHON: str = '6.2.2506.post35.dev0'
26
+ NETGEN_VERSION_TWEAK: str = '35'
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.2506-31-ga34e6d60'
54
+ version: str = 'v6.2.2506-35-ga9438ce2'
@@ -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
 
@@ -31,7 +31,93 @@ namespace ngcore
31
31
  };
32
32
 
33
33
 
34
- // *************************** int64 ***************************
34
+ // *************************** int32 ***************************
35
+
36
+
37
+
38
+ template<>
39
+ class SIMD<int32_t,2>
40
+ {
41
+ int32x2_t data;
42
+ public:
43
+ static constexpr int Size() { return 2; }
44
+ SIMD() {}
45
+ SIMD (int32_t val) : data{val,val} {}
46
+ SIMD (int32_t v0, int32_t v1) : data{v0,v1} { }
47
+ SIMD (SIMD<int32_t,1> lo, SIMD<int32_t,1> hi) : data{lo[0], hi[0] } { }
48
+ SIMD (std::array<int32_t, 2> arr) : data{arr[0], arr[1]} { }
49
+
50
+ SIMD (int32x2_t _data) { data = _data; }
51
+
52
+ NETGEN_INLINE auto Data() const { return data; }
53
+ NETGEN_INLINE auto & Data() { return data; }
54
+
55
+ SIMD<int32_t,1> Lo() const { return Get<0>(); }
56
+ SIMD<int32_t,1> Hi() const { return Get<1>(); }
57
+
58
+ int32_t operator[] (int i) const { return data[i]; }
59
+ int32_t & operator[] (int i) { return ((int32_t*)&data)[i]; }
60
+
61
+ template <int I>
62
+ int32_t Get() const { return data[I]; }
63
+ static SIMD FirstInt(int n0=0) { return { n0+0, n0+1 }; }
64
+ };
65
+
66
+
67
+ template<>
68
+ class SIMD<int32_t,4>
69
+ {
70
+ int32x4_t data;
71
+ public:
72
+ static constexpr int Size() { return 4; }
73
+ SIMD() {}
74
+ SIMD (int32_t val) : data{val,val,val,val} {}
75
+ SIMD (int32_t v0, int32_t v1, int32_t v2, int32_t v3) : data{v0,v1,v2,v3} { }
76
+ SIMD (std::array<int32_t, 4> arr) : data{arr[0], arr[1], arr[2], arr[3]} { }
77
+
78
+ SIMD (int32x4_t _data) { data = _data; }
79
+ SIMD (SIMD<int32_t,2> lo, SIMD<int32_t,2> hi) : data{vcombine_s32(lo.Data(), hi.Data())} {}
80
+ SIMD (int32_t * p) : data{vld1q_s32(p)} { }
81
+
82
+ NETGEN_INLINE auto Data() const { return data; }
83
+ NETGEN_INLINE auto & Data() { return data; }
84
+
85
+ SIMD<int32_t,2> Lo() const { return vget_low_s32(data); }
86
+ SIMD<int32_t,2> Hi() const { return vget_high_s32(data); }
87
+
88
+ int32_t operator[] (int i) const { return data[i]; }
89
+ int32_t & operator[] (int i) { return ((int32_t*)&data)[i]; }
90
+
91
+ void Store (int32_t * p) { vst1q_s32(p, data); }
92
+
93
+ template <int I>
94
+ int32_t Get() const { return data[I]; }
95
+ static SIMD FirstInt(int n0=0) { return { n0+0, n0+1, n0+2, n0+3 }; }
96
+ };
97
+
98
+
99
+
100
+ NETGEN_INLINE auto Min (SIMD<int32_t,2> a, SIMD<int32_t,2> b) {
101
+ return SIMD<int32_t,2>(vmin_s32(a.Data(), b.Data()));
102
+ }
103
+
104
+ NETGEN_INLINE auto Max (SIMD<int32_t,2> a, SIMD<int32_t,2> b) {
105
+ return SIMD<int32_t,2>(vmax_s32(a.Data(), b.Data()));
106
+ }
107
+
108
+
109
+ NETGEN_INLINE auto Min (SIMD<int32_t,4> a, SIMD<int32_t,4> b) {
110
+ return SIMD<int32_t,4>(vminq_s32(a.Data(), b.Data()));
111
+ }
112
+
113
+ NETGEN_INLINE auto Max (SIMD<int32_t,4> a, SIMD<int32_t,4> b) {
114
+ return SIMD<int32_t,4>(vmaxq_s32(a.Data(), b.Data()));
115
+ }
116
+
117
+
118
+
119
+
120
+ // *************************** int64 ***************************
35
121
 
36
122
  template<>
37
123
  class SIMD<int64_t,2>
@@ -48,6 +48,13 @@ namespace ngcore
48
48
  return k;
49
49
  }
50
50
 
51
+ constexpr size_t LargestPowerOfTwo (size_t x)
52
+ {
53
+ size_t y = 1;
54
+ while (2*y <= x) y *= 2;
55
+ return y;
56
+ }
57
+
51
58
 
52
59
  template <typename T, int N=GetDefaultSIMDSize()> class SIMD;
53
60
 
@@ -89,7 +96,8 @@ namespace ngcore
89
96
  template <int N>
90
97
  class alignas(GetLargestNativeSIMDPart(N)*sizeof(int64_t)) SIMD<mask64,N>
91
98
  {
92
- static constexpr int N1 = GetLargestNativeSIMDPart(N);
99
+ // static constexpr int N1 = GetLargestNativeSIMDPart(N);
100
+ static constexpr size_t N1 = LargestPowerOfTwo(N-1);
93
101
  static constexpr int N2 = N-N1;
94
102
 
95
103
  SIMD<mask64,N1> lo;
@@ -111,6 +119,113 @@ namespace ngcore
111
119
  }
112
120
 
113
121
 
122
+ ////////////////////////////////////////////////////////////////////////////
123
+ // int32
124
+
125
+ template<>
126
+ class SIMD<int32_t,1>
127
+ {
128
+ int32_t data;
129
+
130
+ public:
131
+ static constexpr int Size() { return 1; }
132
+ SIMD () {}
133
+ SIMD (const SIMD &) = default;
134
+ SIMD & operator= (const SIMD &) = default;
135
+ // SIMD (int val) : data{val} {}
136
+ SIMD (int32_t val) : data{val} {}
137
+ SIMD (size_t val) : data(val) {}
138
+ explicit SIMD (std::array<int32_t, 1> arr) : data{arr[0]} {}
139
+
140
+
141
+
142
+ int32_t operator[] (int i) const { return ((int32_t*)(&data))[i]; }
143
+ auto Data() const { return data; }
144
+ static SIMD FirstInt(int32_t n0=0) { return {n0}; }
145
+ template <int I>
146
+ int32_t Get()
147
+ {
148
+ static_assert(I==0);
149
+ return data;
150
+ }
151
+ };
152
+
153
+ template<int N>
154
+ class alignas(GetLargestNativeSIMDPart(N)*sizeof(int64_t)) SIMD<int32_t,N>
155
+ {
156
+ // static constexpr int N1 = GetLargestNativeSIMDPart(N);
157
+ static constexpr size_t N1 = LargestPowerOfTwo(N-1);
158
+ static constexpr int N2 = N-N1;
159
+
160
+ SIMD<int32_t,N1> lo;
161
+ SIMD<int32_t,N2> high;
162
+
163
+ public:
164
+ static constexpr int Size() { return N; }
165
+
166
+ SIMD () {}
167
+ SIMD (const SIMD &) = default;
168
+ SIMD & operator= (const SIMD &) = default;
169
+
170
+ // SIMD (int val) : lo{val}, high{val} { ; }
171
+ SIMD (int32_t val) : lo{val}, high{val} { ; }
172
+ SIMD (size_t val) : lo{val}, high{val} { ; }
173
+ SIMD (int32_t * p) : lo{p}, high{p+N1} { ; }
174
+
175
+ SIMD (SIMD<int32_t,N1> lo_, SIMD<int32_t,N2> high_) : lo(lo_), high(high_) { ; }
176
+
177
+ explicit SIMD( std::array<int32_t, N> arr )
178
+ : lo(detail::array_range<N1>(arr, 0)),
179
+ high(detail::array_range<N2>(arr, N1))
180
+ {}
181
+
182
+
183
+ template<typename ...T>
184
+ explicit SIMD(const T... vals)
185
+ : lo(detail::array_range<N1>(std::array<int32_t, N>{vals...}, 0)),
186
+ high(detail::array_range<N2>(std::array<int32_t, N>{vals...}, N1))
187
+ {
188
+ static_assert(sizeof...(vals)==N, "wrong number of arguments");
189
+ }
190
+
191
+
192
+ template<typename T, typename std::enable_if<std::is_convertible<T, std::function<int32_t(int)>>::value, int>::type = 0>
193
+ SIMD (const T & func)
194
+ {
195
+ for(auto i : IntRange(N1))
196
+ lo[i] = func(i);
197
+ for(auto i : IntRange(N2))
198
+ high[i] = func(N1+i);
199
+ }
200
+
201
+ auto Lo() const { return lo; }
202
+ auto Hi() const { return high; }
203
+
204
+ int32_t operator[] (int i) const { return ((int32_t*)(&lo))[i]; }
205
+
206
+ void Store (int32_t * p) { lo.Store(p); high.Store(p+N1); }
207
+
208
+
209
+ /*
210
+ operator tuple<int32_t&,int32_t&,int32_t&,int32_t&> ()
211
+ { return tuple<int32_t&,int32_t&,int32_t&,int32_t&>((*this)[0], (*this)[1], (*this)[2], (*this)[3]); }
212
+ */
213
+
214
+ /*
215
+ static SIMD FirstInt() { return { 0, 1, 2, 3 }; }
216
+ */
217
+ static SIMD FirstInt(int32_t n0=0) { return {SIMD<int32_t,N1>::FirstInt(n0), SIMD<int32_t,N2>::FirstInt(n0+N1)}; }
218
+ template <int I>
219
+ int32_t Get()
220
+ {
221
+ static_assert(I>=0 && I<N, "Index out of range");
222
+ if constexpr(I<N1) return lo.template Get<I>();
223
+ else return high.template Get<I-N1>();
224
+ }
225
+ };
226
+
227
+
228
+
114
229
  ////////////////////////////////////////////////////////////////////////////
115
230
  // int64
116
231
 
@@ -145,7 +260,8 @@ namespace ngcore
145
260
  template<int N>
146
261
  class alignas(GetLargestNativeSIMDPart(N)*sizeof(int64_t)) SIMD<int64_t,N>
147
262
  {
148
- static constexpr int N1 = GetLargestNativeSIMDPart(N);
263
+ // static constexpr int N1 = GetLargestNativeSIMDPart(N);
264
+ static constexpr size_t N1 = LargestPowerOfTwo(N-1);
149
265
  static constexpr int N2 = N-N1;
150
266
 
151
267
  SIMD<int64_t,N1> lo;
@@ -209,6 +325,7 @@ namespace ngcore
209
325
  }
210
326
  };
211
327
 
328
+
212
329
 
213
330
  ////////////////////////////////////////////////////////////////////////////
214
331
  // double
@@ -262,7 +379,8 @@ namespace ngcore
262
379
  template<int N>
263
380
  class alignas(GetLargestNativeSIMDPart(N)*sizeof(double)) SIMD<double, N>
264
381
  {
265
- static constexpr int N1 = GetLargestNativeSIMDPart(N);
382
+ // static constexpr int N1 = GetLargestNativeSIMDPart(N);
383
+ static constexpr size_t N1 = LargestPowerOfTwo(N-1);
266
384
  static constexpr int N2 = N-N1;
267
385
 
268
386
  SIMD<double, N1> lo;
@@ -314,7 +432,7 @@ namespace ngcore
314
432
 
315
433
  template<typename ...T>
316
434
  explicit SIMD(const T... vals)
317
- : lo(detail::array_range<N1>(std::array<double, N>{vals...}, 0)),
435
+ : lo(detail::array_range<N1>(std::array<double, N>{vals...}, 0)),
318
436
  high(detail::array_range<N2>(std::array<double, N>{vals...}, N1))
319
437
  {
320
438
  static_assert(sizeof...(vals)==N, "wrong number of arguments");
@@ -661,6 +779,29 @@ namespace ngcore
661
779
  }
662
780
 
663
781
 
782
+
783
+
784
+ template <typename T, int N>
785
+ auto Min (SIMD<T,N> a, SIMD<T,N> b)
786
+ {
787
+ if constexpr (N==1)
788
+ return SIMD<T,1> (std::min(a[0], b[0]));
789
+ else
790
+ return SIMD<T,N> (Min(a.Lo(), b.Lo()), Min(a.Hi(), b.Hi()));
791
+ }
792
+
793
+ template <typename T, int N>
794
+ auto Max (SIMD<T,N> a, SIMD<T,N> b)
795
+ {
796
+ if constexpr (N==1)
797
+ return SIMD<T,1> (std::max(a[0], b[0]));
798
+ else
799
+ return SIMD<T,N> (Max(a.Lo(), b.Lo()), Max(a.Hi(), b.Hi()));
800
+ }
801
+
802
+
803
+
804
+
664
805
 
665
806
  template <typename T, int N>
666
807
  ostream & operator<< (ostream & ost, SIMD<T,N> simd)
@@ -862,6 +1003,42 @@ namespace ngcore
862
1003
  FMAddSub(a.Hi(), b.Hi(), c.Hi()));
863
1004
  }
864
1005
  }
1006
+
1007
+
1008
+
1009
+
1010
+ template <int BASE, typename Tuple, std::size_t ... Is>
1011
+ auto subtuple (const Tuple& tup, std::index_sequence<Is...>)
1012
+ {
1013
+ return std::make_tuple(std::get<BASE+Is>(tup)...);
1014
+ }
1015
+
1016
+ template <typename ...Args, typename T, int M>
1017
+ auto Concat (std::tuple<SIMD<T,M>, Args...> tup)
1018
+ {
1019
+ constexpr size_t N = std::tuple_size<std::tuple<SIMD<T,M>, Args...>>();
1020
+
1021
+ if constexpr (N == 1)
1022
+ return get<0>(tup);
1023
+ else
1024
+ {
1025
+ static constexpr size_t N1 = LargestPowerOfTwo(N-1);
1026
+ static constexpr int N2 = N-N1;
1027
+
1028
+ auto SEQ1 = std::make_index_sequence<N1>();
1029
+ auto sub1 = subtuple<0>(tup, SEQ1);
1030
+
1031
+ auto SEQ2 = std::make_index_sequence<N2>();
1032
+ auto sub2 = subtuple<N1>(tup, SEQ2);
1033
+
1034
+ auto S1 = Concat(sub1);
1035
+ auto S2 = Concat(sub2);
1036
+ return SIMD<T,S1.Size()+S2.Size()>(S1, S2);
1037
+ }
1038
+ }
1039
+
1040
+
1041
+
865
1042
  }
866
1043
 
867
1044
 
@@ -94,10 +94,14 @@ namespace ngcore
94
94
  NGCORE_API void StartWorkers();
95
95
  NGCORE_API void StopWorkers();
96
96
 
97
- void SuspendWorkers(int asleep_usecs = 1000 )
97
+ bool IsSleeping() const { return sleep; }
98
+
99
+ int SuspendWorkers(int asleep_usecs = 1000 )
98
100
  {
101
+ int old_sleep_usecs = sleep_usecs;
99
102
  sleep_usecs = asleep_usecs;
100
103
  sleep = true;
104
+ return old_sleep_usecs;
101
105
  }
102
106
  void ResumeWorkers() { sleep = false; }
103
107
 
@@ -179,6 +183,35 @@ namespace ngcore
179
183
  }
180
184
  };
181
185
 
186
+ class SuspendTaskManager
187
+ {
188
+ int old_sleep_usecs = 0;
189
+ bool old_sleep = false;
190
+ TaskManager * tm = nullptr;
191
+
192
+ public:
193
+ SuspendTaskManager(int asleep_usecs=1000)
194
+ : tm(task_manager)
195
+ {
196
+ if(!tm)
197
+ return;
198
+
199
+ old_sleep = tm->IsSleeping();
200
+ old_sleep_usecs = tm->SuspendWorkers(asleep_usecs);
201
+ }
202
+
203
+ ~SuspendTaskManager()
204
+ {
205
+ if(!tm)
206
+ return;
207
+
208
+ if(old_sleep) // restore old sleep time
209
+ tm->SuspendWorkers(old_sleep_usecs);
210
+ else
211
+ tm->ResumeWorkers();
212
+ }
213
+ };
214
+
182
215
  NETGEN_INLINE int TasksPerThread (int tpt)
183
216
  {
184
217
  // return task_manager ? tpt*task_manager->GetNumThreads() : 1;
@@ -1,9 +1,9 @@
1
1
  #ifndef NETGEN_VERSION_HPP_INCLUDED
2
2
  #define NETGEN_VERSION_HPP_INCLUDED
3
- #define NETGEN_VERSION "6.2.2506-31-ga34e6d60"
3
+ #define NETGEN_VERSION "6.2.2506-35-ga9438ce2"
4
4
  #define NETGEN_VERSION_MAJOR 6
5
5
  #define NETGEN_VERSION_MINOR 2
6
6
  #define NETGEN_VERSION_PATCH 2506
7
- #define NETGEN_VERSION_TWEAK 31
8
- #define NETGEN_VERSION_HASH "ga34e6d60"
7
+ #define NETGEN_VERSION_TWEAK 35
8
+ #define NETGEN_VERSION_HASH "ga9438ce2"
9
9
  #endif // NETGEN_VERSION_HPP_INCLUDED
netgen/libnggui.dll CHANGED
Binary file
netgen/libngguipy.pyd CHANGED
Binary file
netgen/libngpy.pyd CHANGED
Binary file
netgen/ngcore.dll CHANGED
Binary file
netgen/nglib.dll CHANGED
Binary file
netgen/togl.dll CHANGED
Binary file
netgen/version.py CHANGED
@@ -1,2 +1,2 @@
1
- __version__ = "6.2.2506.post31.dev0"
1
+ __version__ = "6.2.2506.post35.dev0"
2
2
  __package_name__ = "netgen-mesher"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: netgen-mesher
3
- Version: 6.2.2506.post31.dev0
3
+ Version: 6.2.2506.post35.dev0
4
4
  Summary: Netgen
5
5
  Author: The Netgen team
6
6
  License: LGPL2.1
@@ -5,36 +5,36 @@ netgen/__main__.py,sha256=QnWj0m9rN4WqqaSNystMGPwSbbVEUa1rlRyiji4mayc,1328
5
5
  netgen/csg.py,sha256=o03kT137QgvvVPwvTlNTj3vwvI4TzxIazF3lIa3bt84,700
6
6
  netgen/geom2d.py,sha256=bWob6jDHmMjVd6XVKLFxaP4WS1z8UQFFAftJ4sPQ91k,7664
7
7
  netgen/gui.py,sha256=_n41FsU1ftn74qe_YMC7xRvHFUccy2HXf-_3_B0TJdM,2647
8
- netgen/libnggui.dll,sha256=zK-b910ljv9BfdC6RrZXW1tJ8a1HS6XB4SaPFFuwzCw,684032
8
+ netgen/libnggui.dll,sha256=f5lKjbIZynfLlOMppVmWx8axg51isW3qrU75cbmesBc,684544
9
9
  netgen/libngguipy.lib,sha256=1beK2a7f2X-f77t3qYvHB3mpmsSF2p3KSLCwM0Ungfo,1784
10
- netgen/libngguipy.pyd,sha256=jClMHD8_Ncsxx2IrLWmmugKABY7B1wrM8-UUuYEr9eo,136704
10
+ netgen/libngguipy.pyd,sha256=HYbahnLrfeuT5BmfXyeBm1Nii7Yy-31_qp2TMRq1XU8,136704
11
11
  netgen/libngpy.lib,sha256=ikOgfUUjs3XAVuEZ-Mz91MZQ76wTMKxbL49OFSHEaCM,1732
12
- netgen/libngpy.pyd,sha256=V7HuG34MCWMbQrUvtofvGqJ-39Wc7EUfhU3TzlYbfjI,134656
12
+ netgen/libngpy.pyd,sha256=cXbBkGcM4NqFycNzmNKupw85ZhYx0mJgzmM3D_W6C2k,134656
13
13
  netgen/meshing.py,sha256=mlAxtZyPM0aYNza7T4QNw2U9zE_kiLXebUHAEgIqksQ,2673
14
- netgen/ngcore.dll,sha256=rRyY57th42BcLrOraM5PfK3EXVESCkcdLEBAUaBicoU,497664
15
- netgen/nglib.dll,sha256=NuM87fVyscm3AzGPN8e8YGQWYF6hy2PfIGhsWguzYg4,6408704
14
+ netgen/ngcore.dll,sha256=5ATvu-hMLHImXqaLzc0V0l1H2wGmUnMQfG17SjJp1TI,498176
15
+ netgen/nglib.dll,sha256=XUjt-ayS1W1sLrqtg-oa1MMahcrBDcg6L1MjKo8jQzg,6411264
16
16
  netgen/occ.py,sha256=aUIEOr-X1z34LCpZlagi3_asy0PlBThphjwbApDsrE8,1576
17
17
  netgen/read_gmsh.py,sha256=SNLxfSzsbqTDLO4VqS1GGSo9HkUVqKOD48LhxKsrZ-8,10736
18
18
  netgen/read_meshio.py,sha256=jR2XkPcoxVsLbhGPd3Q0tFrgSx7c3gKC2Qt-HU1CAFM,651
19
19
  netgen/stl.py,sha256=0N9Pto43-P4ey3E1JeDpS0cv35m65kE4Aw32t-eHfUE,66
20
- netgen/togl.dll,sha256=ADSn5nWLB1dn6gczarcTYNz17NM2ptc2kTq2DSZrcSk,52224
21
- netgen/version.py,sha256=hNSpg_6YDqkTjDihFovwEoABpXcEOVR5s5m4CmNgGYI,74
20
+ netgen/togl.dll,sha256=O7Lt7rI9cFDnCF0MPp4GB8I6ZkBBetJdLEcDKqWwQyE,52224
21
+ netgen/version.py,sha256=PaRK9s2rSMCcf0Il3uauHFhOLeC5TViXPRk-vEzoMG4,74
22
22
  netgen/webgui.py,sha256=xtK8WkBQlrdeYVZJdY2W3Xw5iWAJewfJKAZchPg9emU,17939
23
- netgen/cmake/NetgenConfig.cmake,sha256=ZrFt3NZNWo2JlVz2Fdb1X2frcD5Whw4hhi9zGBVik4c,3644
23
+ netgen/cmake/NetgenConfig.cmake,sha256=uU7jWpAJkjKzoxaPboilBHFAi4H4AUOB-fAlD9G4WsQ,3644
24
24
  netgen/cmake/netgen-targets-release.cmake,sha256=XQbQEyo4xml5GqyddTRK4CQoFgxl6pR_NSUMH_kuSIA,3372
25
25
  netgen/cmake/netgen-targets.cmake,sha256=QvzsAnPfmwHeT1hHCEi2dHSuaVEpXPq2dDpb_mJ92nA,5326
26
26
  netgen/config/__init__.py,sha256=IjGKWBHvRx572Z6m-5z0q82xuQaWlBABy1whwy2Uxak,23
27
- netgen/config/__init__.pyi,sha256=ugDXM-sc23oiPDsYDqGXR4RD8koGi3xNvps-KvNUNz0,3014
27
+ netgen/config/__init__.pyi,sha256=Umog7SUV9aeH2VHr8p_QGHeP3xmiEEViDtXtULyclns,3014
28
28
  netgen/config/__main__.py,sha256=anI_XpgrpEnVnMyrFiH3Yon_tpQZkehnqRTNC02NiBI,93
29
- netgen/config/config.py,sha256=UUj9UhcfiBDTO3DtfBbsYGiaboEjUR9vWNSJOyiuTjQ,2631
30
- netgen/config/config.pyi,sha256=PeyRyixJbOOsVcNN7DQ9oIfxt0SqH_ICJQPwHu1FDv8,2998
29
+ netgen/config/config.py,sha256=Qr8UCfeVeG0XAk3FKhLS3xi1I20bMTJeE6H8xtg-ojU,2631
30
+ netgen/config/config.pyi,sha256=5dNqFr4DmV1R14yRAxoEVfFqNUT1UdBPhRAKwiBAlwc,2998
31
31
  netgen/include/mydefs.hpp,sha256=BOYbv-T15uC4UUBkyq9LugLC2WmnnxVPtAn4uj2pSSM,1392
32
32
  netgen/include/nginterface.h,sha256=vCiajAE5SzmcDt6xbUNq-4QTS1PiXArzStq-VGZ2bqc,16508
33
33
  netgen/include/nginterface_v2.hpp,sha256=m9qpM4bdahiMwZdN8SPVafRsg_zPuoRK2i32upXQ-vM,10506
34
34
  netgen/include/nglib.h,sha256=aN-ltdIakuSTb8ggbYwGCxFv4qwYA1h6jn5edhi7f5Y,24758
35
35
  netgen/include/nglib_occ.h,sha256=5JJcSYk4tZPR9ZsFocs2ME0j7TrMNQbcMQxiKSPuvIM,2139
36
36
  netgen/include/core/archive.hpp,sha256=qX6ekKrvWgAdSxGlMyrvcqs3oqVneQhdhBPXj-CLO8k,43752
37
- netgen/include/core/array.hpp,sha256=7hnIzhZzFRi20WHeU7aGh59TUOHunI3sOriPT5DZncc,47760
37
+ netgen/include/core/array.hpp,sha256=oBClGdujwYeT-SbOiggjUuGPBa7ZeFJNgSw-d-HomHM,48191
38
38
  netgen/include/core/autodiff.hpp,sha256=24FVK2Z-3AIPjWNVIOgkX5aO-BSX0GKEksec8qP2rg4,31819
39
39
  netgen/include/core/autodiffdiff.hpp,sha256=u92dJvoJtz-RC5HB2xkGlzfrUAdg7tU1VUcf9qmKubg,20131
40
40
  netgen/include/core/bitarray.hpp,sha256=pnmxmnnRFsUeNx7hCHqamv3xVtAWrP_6EoWKDmbXuo4,5565
@@ -60,16 +60,16 @@ netgen/include/core/ranges.hpp,sha256=SbO5YKKmggxGssgc6JGqaqPXA1EKw4_kNMl4gBt75l
60
60
  netgen/include/core/register_archive.hpp,sha256=wsne6nF1rJI5FXPcPMpOfDjWx37FXGNWl167xp5oe2g,3308
61
61
  netgen/include/core/signal.hpp,sha256=pY5i-_8fGig4oSjV316eUfNNqgr5BJ71Fb4xXAlviyo,1714
62
62
  netgen/include/core/simd.hpp,sha256=Klc2yC3TAisMp6D9bTRm6aw6zB7pkBAgjjtecQe-Fv8,4215
63
- netgen/include/core/simd_arm64.hpp,sha256=OcJRufpu7Zt-GD51JNGoRJl8CvYaF5qw1k4MI2xEo-s,9161
63
+ netgen/include/core/simd_arm64.hpp,sha256=lorUJ_PLlI162_FiaulKJzQ_v0pd3Ov6kBtp0FJtqx8,11859
64
64
  netgen/include/core/simd_avx.hpp,sha256=NEIl6bgsoe7od6OZ_SOE0ATPADij-peScfqM3U9oryI,17035
65
65
  netgen/include/core/simd_avx512.hpp,sha256=QZleNrUsbVHsSAl4TroYSUM0u5xfNAkwcOcEsqYi6aQ,12393
66
- netgen/include/core/simd_generic.hpp,sha256=zv-boCF79O-sT8TBGpFPplTsuD1Sf2HCWTC048V3JgA,28519
66
+ netgen/include/core/simd_generic.hpp,sha256=TFWlJ41K4RAxx7qKcFy_r9OvE9KCtYT3WEfoot0-2RY,33457
67
67
  netgen/include/core/simd_math.hpp,sha256=d9oIhoPv1zC0CTSy14cEfCCB-zAbd7gJqFN-UeKNuq8,4183
68
68
  netgen/include/core/simd_sse.hpp,sha256=p3dD3E38RmY5fAbb6mUItRC5qOXZboi4XFOKEXdTrcI,11842
69
69
  netgen/include/core/statushandler.hpp,sha256=0_vx_ymlcXy-cIMjWj3NUvBB69FN7XOMFvdmHsZF3J0,917
70
70
  netgen/include/core/symboltable.hpp,sha256=eaLoIqhxrxoBtuQgjafFpC35A_72pnMSLnP6TZgJdac,3924
71
71
  netgen/include/core/table.hpp,sha256=67Nc-oxlJJFNQJPBo1au5xMkDE3uIb0f8di2ZnkXpIc,21929
72
- netgen/include/core/taskmanager.hpp,sha256=a1MOkeHjMweh98AkAVwebeO5lreDGU_90d0LrlffJLo,29083
72
+ netgen/include/core/taskmanager.hpp,sha256=uprkUSbSn4B55385AgjOe2It9HXvtcb3V7kl5xDxLbU,29791
73
73
  netgen/include/core/type_traits.hpp,sha256=Z5WCfiFjFox_DNFYEtnCI8BHiGDLhwmAKtXVrUJhBqU,1982
74
74
  netgen/include/core/utils.hpp,sha256=xX8F6-ehJCjnLhtHMHTzVmWdo3_UqJGsRuyu5K77Gzw,9617
75
75
  netgen/include/core/version.hpp,sha256=zimaHFJdJWGldeoTHH_Ulyj4NTvvJGUTJ2A4JxMD5uI,3578
@@ -144,7 +144,7 @@ netgen/include/include/myadt.hpp,sha256=MkTlfriceKaM9LZgStFz17svf9nOkluzh2t6zkkr
144
144
  netgen/include/include/mydefs.hpp,sha256=BOYbv-T15uC4UUBkyq9LugLC2WmnnxVPtAn4uj2pSSM,1392
145
145
  netgen/include/include/mystdlib.h,sha256=ukph3AXh7tug1rkTsJYbPiPeEnIRaOQpC2q85dfYcL0,960
146
146
  netgen/include/include/netgen_config.hpp,sha256=LXkjnqyHG0N2O66BXVLeNsy53M8SVtWaj0yC3ts1-mI,1082
147
- netgen/include/include/netgen_version.hpp,sha256=9YJT3Vy7Td5OgrWmCalwpwVtCsRXrLR_AXNUgJJ39xw,334
147
+ netgen/include/include/netgen_version.hpp,sha256=nxnRWvGHFz_PHX-yIvYZxrHj8MSjZi1V4Zt_fsyXLJw,334
148
148
  netgen/include/include/nginterface_v2_impl.hpp,sha256=BeVdzDzJ09rBulpxIEYplQ25FDjiMefb9MS1xNOP29Y,10842
149
149
  netgen/include/include/ngsimd.hpp,sha256=lpLvnegyW0Sz0m6PrHecIxIenNAmbba6YuwdkDCSXSo,34
150
150
  netgen/include/include/occgeom.hpp,sha256=EhKG2DCsKCJ_dG_WRmctJAM-zHPw20tTSWig1P7PfEk,31
@@ -286,55 +286,55 @@ netgen/libngpy/_csg.pyi,sha256=HZz2728Ptk1awOZyKiNOd2nlylVde3m293wJW4a6CT0,10864
286
286
  netgen/libngpy/_geom2d.pyi,sha256=vOp_3ipK5E0G8708uQlzXsl44caOexIHTJIBfjLyy0g,11107
287
287
  netgen/libngpy/_meshing.pyi,sha256=SrTNiNVNoYf3r20zOis9z50zhfOPCokD299vR6tHqu8,276526
288
288
  netgen/libngpy/_stl.pyi,sha256=iZXc60UY1d1w2MDWcXVijotH_B6pKBKg_jxkkgwXsRk,4252
289
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/boundarycondition.geo,sha256=2yBB3PIJpP_8wi4YN7surc2dYhy8PVfJzaHFUOONUjs,404
290
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/boxcyl.geo,sha256=_uEJ3Ox468WFE1O9YBLHYuf0zh6tGXHi_zHQCZlzizA,590
291
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/circle_on_cube.geo,sha256=t3VyMusaHvwcRbdgYoO23EtWJqTLOw4eQDqX0cf3zd0,533
292
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/cone.geo,sha256=qfN50AHOIvDF-DB77pVfE_9fdWVBPc8UlCsKQQ4-PmI,233
293
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/cube.geo,sha256=1wGMW94hG53stIEz32DrTFQQsCETR1YvLFogmggqvZs,320
294
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/cubeandring.geo,sha256=P3wzsyrDWe37p429kGA_fx00gn0aSyABxczA8pbufC8,703
295
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/cubeandspheres.geo,sha256=rZr-PcZPBUVPAxESFIgwZSVN1liEItnR41-rR8lFO6Q,492
296
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/cubemcyl.geo,sha256=BzV1sixCu0h_nQD1nghQnFmkSFhk1tHg8lu_qnL-F8w,425
297
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/cubemsphere.geo,sha256=H43RsNjEGimNXlBwokcrm8tCIyNzTdygot_SGBBD5VQ,399
298
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/cylinder.geo,sha256=St_lCZCfGUg_4bf0sf4zKpccrL7plek2ppy5aXFRN4Q,196
299
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/cylsphere.geo,sha256=StSt9yZrYIbHHKPGzsmh-Fl49K6xat_busHg_ZpIwkc,230
300
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/ellipsoid.geo,sha256=Yvh-h5Ig15gCdhBplk2s7miVeYx7x4pnqsCZRl3IbwY,131
301
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/ellipticcyl.geo,sha256=5GPpcWipFuCZRlquOitKdyrS_Q2VCRKgzvLhZUVHlDk,191
302
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/extrusion.geo,sha256=n6gf-NyNChYLtLkbxuvJbDsVlzb0TkGVEIiI-34a6T0,1275
303
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/fichera.geo,sha256=yA0zlhHQBidcwGuLdBAs64evsGtuWgG07-Z1PNV3AXA,637
304
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/frame.step,sha256=myJ8vcW5Iqrtum4sKkgqjweZvfjlWw6C_vw1NQrRLUU,495592
305
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/hinge.stl,sha256=U88y-JOIqZyAvFYdMhlf7pd1Fi_YaY1iXnvyiqJUtPY,326551
306
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/lshape3d.geo,sha256=gj3KQ7RPAj388qL2y-t_ecf8WMdw96JE15IEXE3fw1U,434
307
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/manyholes.geo,sha256=N_xnr-WIr8CP2euSaO7aoqLJX9f97juULZKvX9E-5hE,474
308
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/manyholes2.geo,sha256=2Dms-eYAtHKJiRyy7sUfA_LYDmc3pZoAjDVAH6iA0uc,476
309
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/matrix.geo,sha256=yUDlPlWMOb0QqF1-DDc3jwhCxJuRBo36dNgR4Uzy0Xw,756
310
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/ortho.geo,sha256=JkcytWfN7_X87LpDPUh8iT2UoYW65LHqEh5gZifABEw,126
311
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/part1.stl,sha256=ssClX8ffaef1BNnHa_odlIkxjD2Z5d6fhGhet-oIQ8I,101780
312
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/period.geo,sha256=0z3_wUrdtmsZgpBHlk06XqGLUwLSIe9zrU_q7k-Bx2s,703
313
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/revolution.geo,sha256=XC4cjDHiOSAKb-67Y6nOz4LL23ncB9fskTsSODdmNlE,206
314
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/screw.step,sha256=xIz3vwS51TiaK5RZUU-fkTp4-yUaTYz8wvA8hMqXiGk,90246
315
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/sculpture.geo,sha256=9X6fg5Vwbbu_k5Nn9fklaEvO7XflrW--YqnAUdFVodA,417
316
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/shaft.geo,sha256=nhcJENx35rF7E5AC6bmnt8XEbG7qy-X83uMPN7-zlgQ,2352
317
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/shell.geo,sha256=EZi_4-YJAJAfw_iIles-avKoT3BSuDGyTsp2wg0Pc_8,179
318
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/sphere.geo,sha256=2GPIr83j6ge9quIQPcaHoVB0brfu2z3_QZH3k7_orAw,85
319
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/sphereincube.geo,sha256=Sehc3p7FBwek0PSEiGCRaEwL5TArpjDDtJOt81mgvUs,431
320
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/square.in2d,sha256=VfyfuqA9KfOqFFW9UcvX_2cDpKRq0Ap5Cq50aQwWslE,771
321
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/squarecircle.in2d,sha256=COrrPBQU8pNZ0svUBdBHbwygijTuXxgzCx23DUlmxOU,1169
322
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/squarehole.in2d,sha256=ificboNC4P3AF565w-0YNYKE4UXt1V6GROu0Vwwng9s,1183
323
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/torus.geo,sha256=Z0GCUkEiGOvdFmNJUseZmsYveWOBPZCIjskiwC11LEw,95
324
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/trafo.geo,sha256=lVDTR0v9agG5822lRcgecSMesAhPYII1-nG1uecbAEY,1572
325
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/twobricks.geo,sha256=DoSqirhsF6uxmSDkNuv4c7u-w6ngjzWTOqwqb7Wz-cE,441
326
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/twocubes.geo,sha256=_JNZDPpupXUdlLNCJtGoBuHywGD-9LVP7ph2uFXnD0Q,460
327
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/twocyl.geo,sha256=8Wiz7Gb2dlDOEuV2ZhTNgbFsJRe48Lsw6g_9UAo0auw,331
328
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/doc/ng4.pdf,sha256=ZllW8BEOtqQHqgiE8vElqxs26AsX9BdkPC9bCtEmW5I,520268
329
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/py_tutorials/exportNeutral.py,sha256=83EoKK_t0XgmOxQSYK_edS7KbDqvzdyO6pjqYx4k5aI,572
330
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/py_tutorials/mesh.py,sha256=MmgAPekUk2tcvFUDvA891eHmj42jB7GvRnMaGVlQblY,305
331
- netgen_mesher-6.2.2506.post31.dev0.data/data/share/netgen/py_tutorials/shaft.geo,sha256=nhcJENx35rF7E5AC6bmnt8XEbG7qy-X83uMPN7-zlgQ,2352
289
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/boundarycondition.geo,sha256=2yBB3PIJpP_8wi4YN7surc2dYhy8PVfJzaHFUOONUjs,404
290
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/boxcyl.geo,sha256=_uEJ3Ox468WFE1O9YBLHYuf0zh6tGXHi_zHQCZlzizA,590
291
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/circle_on_cube.geo,sha256=t3VyMusaHvwcRbdgYoO23EtWJqTLOw4eQDqX0cf3zd0,533
292
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cone.geo,sha256=qfN50AHOIvDF-DB77pVfE_9fdWVBPc8UlCsKQQ4-PmI,233
293
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cube.geo,sha256=1wGMW94hG53stIEz32DrTFQQsCETR1YvLFogmggqvZs,320
294
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubeandring.geo,sha256=P3wzsyrDWe37p429kGA_fx00gn0aSyABxczA8pbufC8,703
295
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubeandspheres.geo,sha256=rZr-PcZPBUVPAxESFIgwZSVN1liEItnR41-rR8lFO6Q,492
296
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubemcyl.geo,sha256=BzV1sixCu0h_nQD1nghQnFmkSFhk1tHg8lu_qnL-F8w,425
297
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubemsphere.geo,sha256=H43RsNjEGimNXlBwokcrm8tCIyNzTdygot_SGBBD5VQ,399
298
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cylinder.geo,sha256=St_lCZCfGUg_4bf0sf4zKpccrL7plek2ppy5aXFRN4Q,196
299
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cylsphere.geo,sha256=StSt9yZrYIbHHKPGzsmh-Fl49K6xat_busHg_ZpIwkc,230
300
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ellipsoid.geo,sha256=Yvh-h5Ig15gCdhBplk2s7miVeYx7x4pnqsCZRl3IbwY,131
301
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ellipticcyl.geo,sha256=5GPpcWipFuCZRlquOitKdyrS_Q2VCRKgzvLhZUVHlDk,191
302
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/extrusion.geo,sha256=n6gf-NyNChYLtLkbxuvJbDsVlzb0TkGVEIiI-34a6T0,1275
303
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/fichera.geo,sha256=yA0zlhHQBidcwGuLdBAs64evsGtuWgG07-Z1PNV3AXA,637
304
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/frame.step,sha256=myJ8vcW5Iqrtum4sKkgqjweZvfjlWw6C_vw1NQrRLUU,495592
305
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/hinge.stl,sha256=U88y-JOIqZyAvFYdMhlf7pd1Fi_YaY1iXnvyiqJUtPY,326551
306
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/lshape3d.geo,sha256=gj3KQ7RPAj388qL2y-t_ecf8WMdw96JE15IEXE3fw1U,434
307
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/manyholes.geo,sha256=N_xnr-WIr8CP2euSaO7aoqLJX9f97juULZKvX9E-5hE,474
308
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/manyholes2.geo,sha256=2Dms-eYAtHKJiRyy7sUfA_LYDmc3pZoAjDVAH6iA0uc,476
309
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/matrix.geo,sha256=yUDlPlWMOb0QqF1-DDc3jwhCxJuRBo36dNgR4Uzy0Xw,756
310
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ortho.geo,sha256=JkcytWfN7_X87LpDPUh8iT2UoYW65LHqEh5gZifABEw,126
311
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/part1.stl,sha256=ssClX8ffaef1BNnHa_odlIkxjD2Z5d6fhGhet-oIQ8I,101780
312
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/period.geo,sha256=0z3_wUrdtmsZgpBHlk06XqGLUwLSIe9zrU_q7k-Bx2s,703
313
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/revolution.geo,sha256=XC4cjDHiOSAKb-67Y6nOz4LL23ncB9fskTsSODdmNlE,206
314
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/screw.step,sha256=xIz3vwS51TiaK5RZUU-fkTp4-yUaTYz8wvA8hMqXiGk,90246
315
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sculpture.geo,sha256=9X6fg5Vwbbu_k5Nn9fklaEvO7XflrW--YqnAUdFVodA,417
316
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/shaft.geo,sha256=nhcJENx35rF7E5AC6bmnt8XEbG7qy-X83uMPN7-zlgQ,2352
317
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/shell.geo,sha256=EZi_4-YJAJAfw_iIles-avKoT3BSuDGyTsp2wg0Pc_8,179
318
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sphere.geo,sha256=2GPIr83j6ge9quIQPcaHoVB0brfu2z3_QZH3k7_orAw,85
319
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sphereincube.geo,sha256=Sehc3p7FBwek0PSEiGCRaEwL5TArpjDDtJOt81mgvUs,431
320
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/square.in2d,sha256=VfyfuqA9KfOqFFW9UcvX_2cDpKRq0Ap5Cq50aQwWslE,771
321
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/squarecircle.in2d,sha256=COrrPBQU8pNZ0svUBdBHbwygijTuXxgzCx23DUlmxOU,1169
322
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/squarehole.in2d,sha256=ificboNC4P3AF565w-0YNYKE4UXt1V6GROu0Vwwng9s,1183
323
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/torus.geo,sha256=Z0GCUkEiGOvdFmNJUseZmsYveWOBPZCIjskiwC11LEw,95
324
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/trafo.geo,sha256=lVDTR0v9agG5822lRcgecSMesAhPYII1-nG1uecbAEY,1572
325
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twobricks.geo,sha256=DoSqirhsF6uxmSDkNuv4c7u-w6ngjzWTOqwqb7Wz-cE,441
326
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twocubes.geo,sha256=_JNZDPpupXUdlLNCJtGoBuHywGD-9LVP7ph2uFXnD0Q,460
327
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twocyl.geo,sha256=8Wiz7Gb2dlDOEuV2ZhTNgbFsJRe48Lsw6g_9UAo0auw,331
328
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/doc/ng4.pdf,sha256=ZllW8BEOtqQHqgiE8vElqxs26AsX9BdkPC9bCtEmW5I,520268
329
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/exportNeutral.py,sha256=83EoKK_t0XgmOxQSYK_edS7KbDqvzdyO6pjqYx4k5aI,572
330
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/mesh.py,sha256=MmgAPekUk2tcvFUDvA891eHmj42jB7GvRnMaGVlQblY,305
331
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/shaft.geo,sha256=nhcJENx35rF7E5AC6bmnt8XEbG7qy-X83uMPN7-zlgQ,2352
332
332
  pyngcore/__init__.py,sha256=6t3e6N7ioXrc_Gt0RBQwsVNls0SKuWImfxAUpUSaUIE,25
333
- pyngcore/pyngcore.cp313-win_amd64.pyd,sha256=oEipWURDDqwqYH0Pgv982emDsRopd_sr_FqNH_6T_7c,557056
334
- netgen_mesher-6.2.2506.post31.dev0.dist-info/AUTHORS,sha256=IA5oqy6AHrQgp3DjzWX623dx-ve7C48MtA06ZphZWvw,52
335
- netgen_mesher-6.2.2506.post31.dev0.dist-info/LICENSE,sha256=iFoD9UsVeWEjb0aEPnmXKr_NaJC2y7NovH7KMo_5WhI,26934
336
- netgen_mesher-6.2.2506.post31.dev0.dist-info/METADATA,sha256=4RWTmQsgdm0lsl7TiaRjHcaCJBHe5F6pngMb8HEzqsM,315
337
- netgen_mesher-6.2.2506.post31.dev0.dist-info/WHEEL,sha256=4dU9bvlPw8d_96aXToRp7-Ml2sgZj7vbQmzTV5aNNOE,96
338
- netgen_mesher-6.2.2506.post31.dev0.dist-info/entry_points.txt,sha256=qF0WqNwCw9KWb2krQEatrvT8ISVzhgfaVjQyH9eZgbE,48
339
- netgen_mesher-6.2.2506.post31.dev0.dist-info/top_level.txt,sha256=sPUFsx4uno9u_BrRHk2AvpPk3LUY0xT618VzCQ36bA0,16
340
- netgen_mesher-6.2.2506.post31.dev0.dist-info/RECORD,,
333
+ pyngcore/pyngcore.cp313-win_amd64.pyd,sha256=Zi1hZARe9ypve28ekEX2l_T_ilMGnMG1z1lc-713VpM,561664
334
+ netgen_mesher-6.2.2506.post35.dev0.dist-info/AUTHORS,sha256=IA5oqy6AHrQgp3DjzWX623dx-ve7C48MtA06ZphZWvw,52
335
+ netgen_mesher-6.2.2506.post35.dev0.dist-info/LICENSE,sha256=iFoD9UsVeWEjb0aEPnmXKr_NaJC2y7NovH7KMo_5WhI,26934
336
+ netgen_mesher-6.2.2506.post35.dev0.dist-info/METADATA,sha256=VlNDIuCBQlBbem3yMIWJK5assimAtaFSNLgE5bNLUiU,315
337
+ netgen_mesher-6.2.2506.post35.dev0.dist-info/WHEEL,sha256=4dU9bvlPw8d_96aXToRp7-Ml2sgZj7vbQmzTV5aNNOE,96
338
+ netgen_mesher-6.2.2506.post35.dev0.dist-info/entry_points.txt,sha256=qF0WqNwCw9KWb2krQEatrvT8ISVzhgfaVjQyH9eZgbE,48
339
+ netgen_mesher-6.2.2506.post35.dev0.dist-info/top_level.txt,sha256=sPUFsx4uno9u_BrRHk2AvpPk3LUY0xT618VzCQ36bA0,16
340
+ netgen_mesher-6.2.2506.post35.dev0.dist-info/RECORD,,
Binary file