netgen-mesher 6.2.2506.post25.dev0__cp310-cp310-macosx_10_15_universal2.whl → 6.2.2506.post35.dev0__cp310-cp310-macosx_10_15_universal2.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 (66) hide show
  1. netgen/cmake/NetgenConfig.cmake +4 -3
  2. netgen/config/config.py +5 -5
  3. netgen/include/core/array.hpp +17 -1
  4. netgen/include/core/memtracer.hpp +1 -1
  5. netgen/include/core/simd_arm64.hpp +87 -1
  6. netgen/include/core/simd_generic.hpp +181 -4
  7. netgen/include/core/simd_math.hpp +2 -1
  8. netgen/include/core/taskmanager.hpp +34 -1
  9. netgen/include/include/netgen_version.hpp +3 -3
  10. netgen/libngcore.dylib +0 -0
  11. netgen/libnggui.dylib +0 -0
  12. netgen/libnglib.dylib +0 -0
  13. netgen/libtogl.a +0 -0
  14. netgen/read_gmsh.py +41 -0
  15. netgen/version.py +1 -1
  16. {netgen_mesher-6.2.2506.post25.dev0.dist-info → netgen_mesher-6.2.2506.post35.dev0.dist-info}/METADATA +1 -1
  17. {netgen_mesher-6.2.2506.post25.dev0.dist-info → netgen_mesher-6.2.2506.post35.dev0.dist-info}/RECORD +66 -66
  18. pyngcore/pyngcore.cpython-310-darwin.so +0 -0
  19. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/boundarycondition.geo +0 -0
  20. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/boxcyl.geo +0 -0
  21. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/circle_on_cube.geo +0 -0
  22. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/cone.geo +0 -0
  23. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/cube.geo +0 -0
  24. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/cubeandring.geo +0 -0
  25. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/cubeandspheres.geo +0 -0
  26. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/cubemcyl.geo +0 -0
  27. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/cubemsphere.geo +0 -0
  28. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/cylinder.geo +0 -0
  29. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/cylsphere.geo +0 -0
  30. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/doc/ng4.pdf +0 -0
  31. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/ellipsoid.geo +0 -0
  32. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/ellipticcyl.geo +0 -0
  33. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/extrusion.geo +0 -0
  34. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/fichera.geo +0 -0
  35. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/frame.step +0 -0
  36. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/hinge.stl +0 -0
  37. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/lshape3d.geo +0 -0
  38. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/manyholes.geo +0 -0
  39. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/manyholes2.geo +0 -0
  40. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/matrix.geo +0 -0
  41. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/ortho.geo +0 -0
  42. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/part1.stl +0 -0
  43. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/period.geo +0 -0
  44. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/py_tutorials/exportNeutral.py +0 -0
  45. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/py_tutorials/mesh.py +0 -0
  46. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/py_tutorials/shaft.geo +0 -0
  47. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/revolution.geo +0 -0
  48. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/screw.step +0 -0
  49. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/sculpture.geo +0 -0
  50. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/shaft.geo +0 -0
  51. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/shell.geo +0 -0
  52. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/sphere.geo +0 -0
  53. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/sphereincube.geo +0 -0
  54. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/square.in2d +0 -0
  55. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/squarecircle.in2d +0 -0
  56. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/squarehole.in2d +0 -0
  57. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/torus.geo +0 -0
  58. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/trafo.geo +0 -0
  59. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/twobricks.geo +0 -0
  60. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/twocubes.geo +0 -0
  61. {netgen_mesher-6.2.2506.post25.dev0.data → netgen_mesher-6.2.2506.post35.dev0.data}/data/share/netgen/twocyl.geo +0 -0
  62. {netgen_mesher-6.2.2506.post25.dev0.dist-info → netgen_mesher-6.2.2506.post35.dev0.dist-info}/AUTHORS +0 -0
  63. {netgen_mesher-6.2.2506.post25.dev0.dist-info → netgen_mesher-6.2.2506.post35.dev0.dist-info}/LICENSE +0 -0
  64. {netgen_mesher-6.2.2506.post25.dev0.dist-info → netgen_mesher-6.2.2506.post35.dev0.dist-info}/WHEEL +0 -0
  65. {netgen_mesher-6.2.2506.post25.dev0.dist-info → netgen_mesher-6.2.2506.post35.dev0.dist-info}/entry_points.txt +0 -0
  66. {netgen_mesher-6.2.2506.post25.dev0.dist-info → netgen_mesher-6.2.2506.post35.dev0.dist-info}/top_level.txt +0 -0
@@ -1,14 +1,15 @@
1
- set(NETGEN_VERSION "6.2.2506-25-g83e712eb")
1
+ set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
2
+ set(NETGEN_VERSION "6.2.2506-35-ga9438ce2")
2
3
  set(NETGEN_VERSION_MAJOR "6")
3
4
  set(NETGEN_VERSION_MINOR "2")
4
5
  set(NETGEN_VERSION_PATCH "2506")
5
- set(NETGEN_VERSION_TWEAK "25")
6
+ set(NETGEN_VERSION_TWEAK "35")
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 "HAVE_DLFCN_H;$<$<CONFIG:Release>:OCC_CONVERT_SIGNALS>;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}/../../bin" ABSOLUTE)
netgen/config/config.py CHANGED
@@ -42,15 +42,15 @@ NG_COMPILE_FLAGS = "-Xarch_x86_64;-march=core-avx2"
42
42
  ngcore_compile_options = "-Xarch_x86_64;-march=core-avx2"
43
43
  ngcore_compile_definitions = "NETGEN_PYTHON;NG_PYTHON;PYBIND11_SIMPLE_GIL_MANAGEMENT;PARALLEL;NG_MPI_WRAPPER"
44
44
 
45
- NETGEN_VERSION = "6.2.2506-25-g83e712eb"
46
- NETGEN_VERSION_GIT = "v6.2.2506-25-g83e712eb"
47
- NETGEN_VERSION_PYTHON = "6.2.2506.post25.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 = "25"
51
+ NETGEN_VERSION_TWEAK = "35"
52
52
  NETGEN_VERSION_PATCH = "2506"
53
- NETGEN_VERSION_HASH = "g83e712eb"
53
+ NETGEN_VERSION_HASH = "ga9438ce2"
54
54
 
55
55
  PYTHON_VERSION = "3.10.2"
56
56
  PYTHON_VERSION_MAJOR = "3"
@@ -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
 
@@ -198,7 +198,7 @@ namespace ngcore
198
198
  }
199
199
  #else // defined(NETGEN_TRACE_MEMORY) && !defined(__CUDA_ARCH__)
200
200
  public:
201
- MemoryTracer() {}
201
+ NETGEN_INLINE MemoryTracer() {}
202
202
  MemoryTracer( std::string /* name */ ) {}
203
203
  template <typename... TRest>
204
204
  MemoryTracer( std::string /* name */, TRest & ... ) {}
@@ -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
 
@@ -151,7 +151,7 @@ namespace ngcore
151
151
  // x = ldexp( x, n );
152
152
  }
153
153
 
154
-
154
+ /*
155
155
  inline auto Test1 (SIMD<double> x)
156
156
  {
157
157
  return myexp(x);
@@ -171,6 +171,7 @@ namespace ngcore
171
171
  {
172
172
  return sincos(x);
173
173
  }
174
+ */
174
175
 
175
176
  }
176
177
 
@@ -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-25-g83e712eb"
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 25
8
- #define NETGEN_VERSION_HASH "g83e712eb"
7
+ #define NETGEN_VERSION_TWEAK 35
8
+ #define NETGEN_VERSION_HASH "ga9438ce2"
9
9
  #endif // NETGEN_VERSION_HPP_INCLUDED
netgen/libngcore.dylib CHANGED
Binary file
netgen/libnggui.dylib CHANGED
Binary file
netgen/libnglib.dylib CHANGED
Binary file
netgen/libtogl.a CHANGED
Binary file
netgen/read_gmsh.py CHANGED
@@ -28,6 +28,8 @@ def ReadGmsh(filename):
28
28
  3: { 0 : "default" } }
29
29
  materialmap = {}
30
30
  bbcmap = {}
31
+ bbbcmap = {}
32
+
31
33
 
32
34
  segm = 1
33
35
  trig = 2
@@ -111,6 +113,45 @@ def ReadGmsh(filename):
111
113
  nodenums = line[3 + numtags:3 + numtags + num_nodes]
112
114
  nodenums2 = [pointmap[int(nn)] for nn in nodenums]
113
115
 
116
+
117
+ if elmtype in elem0d:
118
+ if meshdim == 3:
119
+ if tags[1] in bbbcmap:
120
+ index = bbbcmap[tags[1]]
121
+ else:
122
+ index = len(bbbcmap) + 1
123
+ if len(namemap):
124
+ mesh.SetCD3Name(index, namemap[0][tags[0]])
125
+ else:
126
+ mesh.SetCD3Name(index, "point" + str(tags[1]))
127
+ bbbcmap[tags[1]] = index
128
+ elif meshdim == 2:
129
+ if tags[1] in bbcmap:
130
+ index = bbcmap[tags[1]]
131
+ else:
132
+ index = len(bbcmap) + 1
133
+ if len(namemap):
134
+ mesh.SetCD2Name(index, namemap[0][tags[0]])
135
+ else:
136
+ mesh.SetCD2Name(index, "point" + str(tags[1]))
137
+ bbcmap[tags[1]] = index
138
+ else:
139
+ if tags[1] in facedescriptormap.keys():
140
+ index = facedescriptormap[tags[1]]
141
+ else:
142
+ index = len(facedescriptormap) + 1
143
+ fd = FaceDescriptor(bc=index)
144
+ if len(namemap):
145
+ fd.bcname = namemap[0][tags[0]]
146
+ else:
147
+ fd.bcname = 'point' + str(tags[1])
148
+ mesh.SetBCName(index - 1, fd.bcname)
149
+ mesh.Add(fd)
150
+ facedescriptormap[tags[1]] = index
151
+
152
+ mesh.Add(Element0D(nodenums2[0], index=index))
153
+
154
+
114
155
  if elmtype in elem1d:
115
156
  if meshdim == 3:
116
157
  if tags[1] in bbcmap:
netgen/version.py CHANGED
@@ -1,2 +1,2 @@
1
- __version__ = "6.2.2506.post25.dev0"
1
+ __version__ = "6.2.2506.post35.dev0"
2
2
  __package_name__ = "netgen-mesher"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: netgen-mesher
3
- Version: 6.2.2506.post25.dev0
3
+ Version: 6.2.2506.post35.dev0
4
4
  Summary: Netgen
5
5
  Home-page: UNKNOWN
6
6
  Author: The Netgen team
@@ -4,33 +4,33 @@ netgen/__main__.py,sha256=KXfppfAxOhp_H_IJ2l6dx6ntBd4km3IuDbb9gWDWR6M,1275
4
4
  netgen/csg.py,sha256=uPJbeE5--tz5tea0x6uSHD0U0AIamorfOnOpEfKnIfE,675
5
5
  netgen/geom2d.py,sha256=XM-hFELXtd-tPxo3puSewZrQz2fgVHcuZPh32fDbMsQ,7486
6
6
  netgen/gui.py,sha256=y5irkh6oGQ_xqvjRF6F-1G1z01qDTNsrjVVmHKoSy5M,2565
7
- netgen/libngcore.dylib,sha256=RGQ-WOPPGTE7ApRfx-DI3TsI4L3NG2s2Ut3R1s11QXo,1407360
8
- netgen/libnggui.dylib,sha256=K5piLRXgFGdjgekNd8wIWWZvZaBh34RY3PEffhalZwA,1949840
7
+ netgen/libngcore.dylib,sha256=H8vzYT-mi5BdbXWKKVk8uCkoK59cDTy-DouVSwCOQuA,1407360
8
+ netgen/libnggui.dylib,sha256=p58yIInmPdqz29ADMRggUS7IAqJTuPXLSepbulUZ-QM,1949840
9
9
  netgen/libngguipy.so,sha256=NnDFuuhVGFAYaXvcpFviyrO8aDMhBZgFh4kBK6dA-QY,425392
10
- netgen/libnglib.dylib,sha256=xy7_sTdDSDQ6hEEF2615w-hUN0aLVITiYwA3zPoTpkg,23325072
10
+ netgen/libnglib.dylib,sha256=IYHSO-NDL9CTijfNlWNm1CJUYoOjE95To79Aa2lLtNs,23374576
11
11
  netgen/libngpy.so,sha256=ngsKo8TbZXP9Qaqll4p-fU40zo08aw0KmOV0y5cH98I,423088
12
- netgen/libtogl.a,sha256=6nUhiha3ZWM0qJyi0bsBy-USJw5CTiacgOv3afltwSA,123200
12
+ netgen/libtogl.a,sha256=TsDJmcamfKt0GnHoXVmcbLBgzYkw9zwAqzpWvRGXVo4,123200
13
13
  netgen/meshing.py,sha256=m0fm-kOOn5h3fKM5Bg6mYpifxyW9QqRfpZfduCUhpZs,2608
14
14
  netgen/ng_openmpi.dylib,sha256=29hRxyPTaSXvfVxFIZEXJA4vmHHLWcPL_YSbNeVIf6Q,167408
15
15
  netgen/occ.py,sha256=y840eqsQDT2bxw7qGzuL3fG3ytq-qY4VloUPUboA98Y,1524
16
- netgen/read_gmsh.py,sha256=vT5TEW-3Bm0qJs8XisQUCnM7Nya4BLfhG9lMbsQ5cKs,8635
16
+ netgen/read_gmsh.py,sha256=-ymk9XAlWbKB5URR8rx4sfVBZwDfeo8wV60BzMFgaHE,10477
17
17
  netgen/read_meshio.py,sha256=fGq3PeCvuy-bhxS6zMkD4GK9DBqt2P09otZuJBemp1Q,629
18
18
  netgen/stl.py,sha256=s40ZSGFLsB96eB-con7aU6Ak8aSYjwiE2sVwz8oeHrU,64
19
- netgen/version.py,sha256=OTUXw5r6DDAR3XcEVflLT49KZRYRmyRA0LStdGBqkpM,72
19
+ netgen/version.py,sha256=rBbY9F2MGPPfcGzxLGHEYUqcvzicsg5OTqCWHtIL6vE,72
20
20
  netgen/webgui.py,sha256=LwGPy_8g30rqxA7ltdiCQlUjhC2EOjO2EXOgfWAqgQ8,17410
21
- netgen/cmake/NetgenConfig.cmake,sha256=NyriE1w55J9BbYAx-pPRDbOa_2EOJuQmvdjQnvCG6xU,4454
21
+ netgen/cmake/NetgenConfig.cmake,sha256=b-fKFEX5cs8DtFZ7kANiCUkizqEsSoAYktWiQebUVRU,4440
22
22
  netgen/cmake/netgen-targets-release.cmake,sha256=uCrijd61ICmdSJuPEa7pnIG5HSBehgA2SeoG-99btRI,2959
23
23
  netgen/cmake/netgen-targets.cmake,sha256=6jIvlfhUZmE-27mrg3A4W8EgeQ50hF1rjwXnPRC8rxs,5573
24
24
  netgen/config/__init__.py,sha256=A00lpnUKg-q3y_b-cN3jKF9urkGTGjb2Yz_gGc9WCLs,22
25
25
  netgen/config/__main__.py,sha256=m8k2RrXnXR5oYaUna1dwkKNhOZBiM7EyFSE9kIcZKvo,89
26
- netgen/config/config.py,sha256=sWb6a-oZWs3_LPfJ9Ox7ysYv1ecRX904t0PEHRcbIKA,2489
26
+ netgen/config/config.py,sha256=HwJLRq9GEv_-ygSGDHaiTYo1IF9GUrcdOFY8sa62KuA,2489
27
27
  netgen/include/mydefs.hpp,sha256=oUHHvxM1iovb6frfnV6d_2jchdnDVFyt5CDdLVWjG2g,1322
28
28
  netgen/include/nginterface.h,sha256=buqriGIHTcScaStGxDoGznyJZlSufmLESWdyYNdA5XQ,16034
29
29
  netgen/include/nginterface_v2.hpp,sha256=AXMeEm27dev0XvoS0AzgZxnq7_9McRj-W4t1gCrn3Aw,10100
30
30
  netgen/include/nglib.h,sha256=aN-ltdIakuSTb8ggbYwGCxFv4qwYA1h6jn5edhi7f5Y,24758
31
31
  netgen/include/nglib_occ.h,sha256=9Vxkbx-E8tyHkUy2tcEYmmERrA26t_BIaUbUMvNXtkg,2089
32
32
  netgen/include/core/archive.hpp,sha256=x27yLAjl7-Z3hLXSOae72m2pNOd8NWvYX9C5EtzbwME,42496
33
- netgen/include/core/array.hpp,sha256=yJuZD76Yefc-mf2uKoPsForirjcSWQviXG00J99i4rM,46016
33
+ netgen/include/core/array.hpp,sha256=UAvw-dhdnrNUnPIhzvMhD5jyErKKJZ6xWc70XxO2O8E,46431
34
34
  netgen/include/core/autodiff.hpp,sha256=w7p_zYIzYFLe3qz8ZJVbLV3ikIxiPnqVkR96iKQF0jQ,30688
35
35
  netgen/include/core/autodiffdiff.hpp,sha256=ylcf_t0xnK6Th3Qs4BAZ9zTuIEqaAOKxN2G2FjV2IYI,19398
36
36
  netgen/include/core/bitarray.hpp,sha256=F6R9tefP9_-vUdGy3qylyZ_ZLlRxB2QCzD-s9bVOeRI,5325
@@ -40,7 +40,7 @@ netgen/include/core/flags.hpp,sha256=zUvgVH8eq84WTL7aJ55ScWq5YG8tkpjIFYPp8QvmBUs
40
40
  netgen/include/core/hashtable.hpp,sha256=WckWMXVmk7ER-bIxPsekHpC__mzD8i1rprtodU0wiS4,29174
41
41
  netgen/include/core/localheap.hpp,sha256=J1vwVtNyutgfM1IkAENFoYDZFOmgqY0dqkvOpm1YEt4,6754
42
42
  netgen/include/core/logging.hpp,sha256=m3Ar7BmHtrSQXiyotQ7H8766bhawV1IppZCgvF482k0,3291
43
- netgen/include/core/memtracer.hpp,sha256=bI6tkYgwB7vH6ySzBLWqUF2r2hGlilKwWGh1UpRquh0,5556
43
+ netgen/include/core/memtracer.hpp,sha256=-KVdGfdOxCT92epOCnTHGsTRYanCGZidpY8PUQnJXyY,5570
44
44
  netgen/include/core/mpi4py_pycapi.h,sha256=Ai7IfSotwrzwvBlhVgR389Uy7_M99rovjt1I9KvznLg,7144
45
45
  netgen/include/core/mpi_wrapper.hpp,sha256=ucuk_kzdqbtXeQp75xBh4iNlKQlzNhoji2JAy5bm470,18113
46
46
  netgen/include/core/ng_mpi.hpp,sha256=Qw2UFKqFvPW7WwV_A--X__ZvVkh5mCm2wj0iaxlInJ8,2539
@@ -56,16 +56,16 @@ netgen/include/core/ranges.hpp,sha256=3nFTZLQEwNMysbS-DCkJ-VTFBdRYIXIhHaIQOBsgWN
56
56
  netgen/include/core/register_archive.hpp,sha256=kH5DqiTDB2MTFeaapJF-rZ7kw9MrDRUAMxkE2xN1Ajo,3208
57
57
  netgen/include/core/signal.hpp,sha256=tMG7hWuBuxXx7PxOe-BK4O2--SHC6VpxIoe0xgvf_j8,1632
58
58
  netgen/include/core/simd.hpp,sha256=Ui8AO0xVeGITevHSXQFCrUHQ8sav7qnxHTtxwf56rTw,4055
59
- netgen/include/core/simd_arm64.hpp,sha256=WuG3aCzwDRYgE_aHCcvWWnPAitCzCl1ewF92ssSL23U,8840
59
+ netgen/include/core/simd_arm64.hpp,sha256=4iJI3LSMhTnjZQF1nsmWyEPbeir4EnoyBJBzivVA3Hg,11452
60
60
  netgen/include/core/simd_avx.hpp,sha256=2Q4VewrcjWVqWabWIpUu4AbsKHddLd0imVkSLIVIPCM,16641
61
61
  netgen/include/core/simd_avx512.hpp,sha256=Nrf4VpO7LJ2StIsCXlhhO0SnELkak2VYWsAWp1DZ0eY,12108
62
- netgen/include/core/simd_generic.hpp,sha256=sXFU8W9HALkDajqwXY8fRXN8HqMV3xFdqdsnLFj0x5Y,27643
63
- netgen/include/core/simd_math.hpp,sha256=wiTXFS7IGjz4GEQ5tDj2zyFnlPPuoS7t0qwmSd4X72g,3996
62
+ netgen/include/core/simd_generic.hpp,sha256=O9Z_zfxpjGFEUNbATJCkNUWsRT_KjEJ20wP2WucEIP0,32404
63
+ netgen/include/core/simd_math.hpp,sha256=srQAVHQuWugqNmlNMmcLCnOoWNMtiNydP0-kXUUmGoM,4005
64
64
  netgen/include/core/simd_sse.hpp,sha256=bIacBzYYmUl-omuLVNONDhueQO4sgjO3Qy5HgUbFzHk,11553
65
65
  netgen/include/core/statushandler.hpp,sha256=IZj0wcAL5nkBXg4aERnekeI6ydKR7aFPYwU2vl0MXJI,880
66
66
  netgen/include/core/symboltable.hpp,sha256=NHVAeJuuVcYIXeg5JME1YR4sl9iRnILgxzhaN7Nnyks,3771
67
67
  netgen/include/core/table.hpp,sha256=A2qFmEHuTn-G0Zyj-FO6-ouVcPMKIn45dHSzIm1p5qk,21119
68
- netgen/include/core/taskmanager.hpp,sha256=f4-ecJZgxT0nZr65Jz1gfO0yHu4ujYxUkFZyv4OOk_c,27955
68
+ netgen/include/core/taskmanager.hpp,sha256=LuvfVaei36ed-4stb5WxdTjm6CvNFpFNR42FTUsqMCw,28630
69
69
  netgen/include/core/type_traits.hpp,sha256=cgICDf6twbtUWCGUg0NgNtfTRmYfYWkeLGoY1b7XVHg,1917
70
70
  netgen/include/core/utils.hpp,sha256=g3SgcDe3WiibNIyiFxb3-ipYCAM1dJeRvLDm2KJlTAQ,9232
71
71
  netgen/include/core/version.hpp,sha256=pvc8RTBjnzbEvnVX7XKELgep3d6plE2EjS1BxHR-KoY,3476
@@ -140,7 +140,7 @@ netgen/include/include/myadt.hpp,sha256=C1-tTKQWqAn6vtrb3kSFjxp60T1s8btOSxMoCGpL
140
140
  netgen/include/include/mydefs.hpp,sha256=oUHHvxM1iovb6frfnV6d_2jchdnDVFyt5CDdLVWjG2g,1322
141
141
  netgen/include/include/mystdlib.h,sha256=T7u5HH5V4BFAr5kNCDtwFyAqsiRoVusU9K_tUFoabfM,901
142
142
  netgen/include/include/netgen_config.hpp,sha256=zdkVSRfg0YhI2dD_Za5gsUGqkE5jQqUWK7JFoBqzHNM,1057
143
- netgen/include/include/netgen_version.hpp,sha256=Bdq2TcGLj1Uy9ICvZ5nUV00q_jx_CDhYOLKIc5DSumE,325
143
+ netgen/include/include/netgen_version.hpp,sha256=0SPUJ1xU0ZaPdFzNj7phI1DtHvgSttGpyglTdQ4ots8,325
144
144
  netgen/include/include/nginterface_v2_impl.hpp,sha256=LmL4R1ktF0KLhey4fh7oaBKz2BeORBaxc-d6nk0Gifc,10447
145
145
  netgen/include/include/ngsimd.hpp,sha256=v0Uc-7y2rNHGaiVt61yWQP4Tg5EwIj3KhUyaJLuRowo,33
146
146
  netgen/include/include/occgeom.hpp,sha256=BvfxfyzKjEOLJ_i9_Jttu0k5U75HekO_lrTQhETI8pY,30
@@ -272,55 +272,55 @@ netgen/include/visualization/vispar.hpp,sha256=Op-CX5-TiRzTGkXGJLM7R2vmJd-OEueJ6
272
272
  netgen/include/visualization/visual.hpp,sha256=h3CgAQxBKov965g2E_JYYzeYBd2HnWxsSF09RYVOAwY,718
273
273
  netgen/include/visualization/visual_api.hpp,sha256=Dx4BPqdWO3FfIXZ1Q_Pk0TzuS3JZnPkjNCQ1M_WaBVI,206
274
274
  netgen/include/visualization/vssolution.hpp,sha256=BI5UIGygBRC4kvAlUvlc1pdcetQPNBioboSvgqyx5Ac,10555
275
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/boundarycondition.geo,sha256=XtS8pnkBCeFNou7PrJP8ZCEbkvDf7dSM7Fp9US97L2I,388
276
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/boxcyl.geo,sha256=wkdFu-YgS7ZDQdyykq8h4LCF3xFXNUpOFr3-ZU7NVto,558
277
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/circle_on_cube.geo,sha256=DUSX295h1lGE43CSQ_Ts1xAPhlkQyx-okybgcljF5pA,506
278
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/cone.geo,sha256=IeIvuejG_fFmYBwf3DnanFRlKWSWZ5YbFzZCsUBgbNc,220
279
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/cube.geo,sha256=j4PqWssXdbX3-6Q0Uw_2CWzV5dlrvWyYHXI5WBm4ERU,304
280
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/cubeandring.geo,sha256=3kJujd5P0D0fdgRPvS-ZLNYVNXs53g5JPsxL3KGpjeA,648
281
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/cubeandspheres.geo,sha256=hHjm5MtozOFJd6Xzmq-_39PU_kXwxa6JsV6AILuVswg,471
282
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/cubemcyl.geo,sha256=Cn8izGTupieVC_l_Jn5I14c5StMxRY7BkylqADOvMqk,407
283
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/cubemsphere.geo,sha256=RDmGE-fD9rVze0BaMh7CQvvJCC2_FhhSuklDcXaBwRU,380
284
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/cylinder.geo,sha256=sXINUQSMDKoVUSaxt2_1OKeONWHTYZTfmaVriMVW3Aw,184
285
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/cylsphere.geo,sha256=jeUcIPQr-1GGUWonUSQLMUizzlR25fNvqUbL2sy5cPY,218
286
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/ellipsoid.geo,sha256=s1lsv-fjwtsF0kmfjH7Dcetmd74WkFXs3iRTxtLE4YU,123
287
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/ellipticcyl.geo,sha256=VU4BX-q91xrA9g2OAuLqBCVBPp4ag0QAbnHbbkkVXU4,181
288
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/extrusion.geo,sha256=OAp-KOPrszSvZaHWItPCLDZqinnIQNZc57EZXjN7jSY,1177
289
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/fichera.geo,sha256=4leitM2eOPc8vtRDt85NxPHsIMdYlNZZbcEYzw__eTo,613
290
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/frame.step,sha256=myJ8vcW5Iqrtum4sKkgqjweZvfjlWw6C_vw1NQrRLUU,495592
291
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/hinge.stl,sha256=aj2tB45KLkOPS_mch27ufgpq8dtziUWtTmOkDq7ElY0,318065
292
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/lshape3d.geo,sha256=m42bN321tG4vMSWaqfQQQMFZXvYI2qHk0Q2h3KWq3gc,408
293
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/manyholes.geo,sha256=9jQk8BiBUxUBEAvujUH6AQHzRivASy7t5-Ai_wNFHwg,448
294
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/manyholes2.geo,sha256=1e1nM4StL1pWmxkbvWcTJdEu7eT37yx2uztl-21p3kU,450
295
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/matrix.geo,sha256=lnojB8j-7Wm9hpqpDDGllmqsSQYqpLQlcUlFwSGe7G8,729
296
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/ortho.geo,sha256=zsFmshJA7rfLqFnfla-KssZDFch-Azo9wkkO6CfMhQk,115
297
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/part1.stl,sha256=3Nko32iuc-9BvRjNeE7ciXP7IqwRo1R9ms2D7D15xKY,99118
298
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/period.geo,sha256=dtsFD6Ot7bm1bgAZ34fRAw7sI-E5bfv_sjkdjxegldw,670
299
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/revolution.geo,sha256=NcVQaO9cppYuWhuWo3mTSSL_yyVF326oNTjRPmixNDM,189
300
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/screw.step,sha256=SzZJpPXE8Fx6BqQCqR_i_X48uhYVUg-9jGKmJhCtPmk,88552
301
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/sculpture.geo,sha256=w5EcJDD2gjksv6dazlE-dAyoh32SrM1Elm2p5jYk3Iw,404
302
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/shaft.geo,sha256=5DhJ_TP8tPZVAtk8fOJwM6610PGjkjomTrlKbB9td4g,2287
303
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/shell.geo,sha256=hCDfvNjXDrHneqsTEV6QnuUMk11CyfqAmMRqYd9xhJo,169
304
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/sphere.geo,sha256=l8rI5BKhu9UU8eSKI8m2i7cTFf-o30al8nqVTXeNvXY,77
305
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/sphereincube.geo,sha256=yuJFNR25t1iUnRGVw4ku8sAfPLgpD8e2L-arE9u0Jgw,414
306
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/square.in2d,sha256=enAHTXrMOM-AMGjilEXySDBvs9n8YmmWXCSzF7lWmjM,736
307
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/squarecircle.in2d,sha256=E_ziR6ZCHgqOF4TmoT9YiLGHGBDJeEB0hOAPMKwGIes,1121
308
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/squarehole.in2d,sha256=6If0o5193iTMIlP-RwILdTMLWCBWHxObgnWDp2RDG0g,1136
309
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/torus.geo,sha256=T9QMUqAikqfRzHsSSOwohmEZsNiVgXQvePLhOtS4yKs,87
310
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/trafo.geo,sha256=ZWapuu6oVtKARec4cacIcK1evwhN8Fv_4qxYpgQlqJI,1515
311
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/twobricks.geo,sha256=QWyQKTX5bQL0QhnBwV7BtGXmBYhi4WWCTuhE4Xl999w,426
312
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/twocubes.geo,sha256=jN8REyQblTffMuPOW5kWeabgi-6ZiXrKiBNRE8VCUVM,442
313
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/twocyl.geo,sha256=Rc1pxSYX4pHKXD5TUU08oXPIaaOBLmVr37judpK37P8,315
314
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/doc/ng4.pdf,sha256=ZllW8BEOtqQHqgiE8vElqxs26AsX9BdkPC9bCtEmW5I,520268
315
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/py_tutorials/exportNeutral.py,sha256=tXx-nl5jnxm6Xp_Z2JHUhYf8OeHt2sdhZnF--yqie60,546
316
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/py_tutorials/mesh.py,sha256=2vhalLAyuEfDAuI2-X1mUvLXyj-GFElEIkznR6YJrho,286
317
- netgen_mesher-6.2.2506.post25.dev0.data/data/share/netgen/py_tutorials/shaft.geo,sha256=5DhJ_TP8tPZVAtk8fOJwM6610PGjkjomTrlKbB9td4g,2287
275
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/boundarycondition.geo,sha256=XtS8pnkBCeFNou7PrJP8ZCEbkvDf7dSM7Fp9US97L2I,388
276
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/boxcyl.geo,sha256=wkdFu-YgS7ZDQdyykq8h4LCF3xFXNUpOFr3-ZU7NVto,558
277
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/circle_on_cube.geo,sha256=DUSX295h1lGE43CSQ_Ts1xAPhlkQyx-okybgcljF5pA,506
278
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cone.geo,sha256=IeIvuejG_fFmYBwf3DnanFRlKWSWZ5YbFzZCsUBgbNc,220
279
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cube.geo,sha256=j4PqWssXdbX3-6Q0Uw_2CWzV5dlrvWyYHXI5WBm4ERU,304
280
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubeandring.geo,sha256=3kJujd5P0D0fdgRPvS-ZLNYVNXs53g5JPsxL3KGpjeA,648
281
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubeandspheres.geo,sha256=hHjm5MtozOFJd6Xzmq-_39PU_kXwxa6JsV6AILuVswg,471
282
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubemcyl.geo,sha256=Cn8izGTupieVC_l_Jn5I14c5StMxRY7BkylqADOvMqk,407
283
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubemsphere.geo,sha256=RDmGE-fD9rVze0BaMh7CQvvJCC2_FhhSuklDcXaBwRU,380
284
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cylinder.geo,sha256=sXINUQSMDKoVUSaxt2_1OKeONWHTYZTfmaVriMVW3Aw,184
285
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cylsphere.geo,sha256=jeUcIPQr-1GGUWonUSQLMUizzlR25fNvqUbL2sy5cPY,218
286
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ellipsoid.geo,sha256=s1lsv-fjwtsF0kmfjH7Dcetmd74WkFXs3iRTxtLE4YU,123
287
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ellipticcyl.geo,sha256=VU4BX-q91xrA9g2OAuLqBCVBPp4ag0QAbnHbbkkVXU4,181
288
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/extrusion.geo,sha256=OAp-KOPrszSvZaHWItPCLDZqinnIQNZc57EZXjN7jSY,1177
289
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/fichera.geo,sha256=4leitM2eOPc8vtRDt85NxPHsIMdYlNZZbcEYzw__eTo,613
290
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/frame.step,sha256=myJ8vcW5Iqrtum4sKkgqjweZvfjlWw6C_vw1NQrRLUU,495592
291
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/hinge.stl,sha256=aj2tB45KLkOPS_mch27ufgpq8dtziUWtTmOkDq7ElY0,318065
292
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/lshape3d.geo,sha256=m42bN321tG4vMSWaqfQQQMFZXvYI2qHk0Q2h3KWq3gc,408
293
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/manyholes.geo,sha256=9jQk8BiBUxUBEAvujUH6AQHzRivASy7t5-Ai_wNFHwg,448
294
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/manyholes2.geo,sha256=1e1nM4StL1pWmxkbvWcTJdEu7eT37yx2uztl-21p3kU,450
295
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/matrix.geo,sha256=lnojB8j-7Wm9hpqpDDGllmqsSQYqpLQlcUlFwSGe7G8,729
296
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ortho.geo,sha256=zsFmshJA7rfLqFnfla-KssZDFch-Azo9wkkO6CfMhQk,115
297
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/part1.stl,sha256=3Nko32iuc-9BvRjNeE7ciXP7IqwRo1R9ms2D7D15xKY,99118
298
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/period.geo,sha256=dtsFD6Ot7bm1bgAZ34fRAw7sI-E5bfv_sjkdjxegldw,670
299
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/revolution.geo,sha256=NcVQaO9cppYuWhuWo3mTSSL_yyVF326oNTjRPmixNDM,189
300
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/screw.step,sha256=SzZJpPXE8Fx6BqQCqR_i_X48uhYVUg-9jGKmJhCtPmk,88552
301
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sculpture.geo,sha256=w5EcJDD2gjksv6dazlE-dAyoh32SrM1Elm2p5jYk3Iw,404
302
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/shaft.geo,sha256=5DhJ_TP8tPZVAtk8fOJwM6610PGjkjomTrlKbB9td4g,2287
303
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/shell.geo,sha256=hCDfvNjXDrHneqsTEV6QnuUMk11CyfqAmMRqYd9xhJo,169
304
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sphere.geo,sha256=l8rI5BKhu9UU8eSKI8m2i7cTFf-o30al8nqVTXeNvXY,77
305
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sphereincube.geo,sha256=yuJFNR25t1iUnRGVw4ku8sAfPLgpD8e2L-arE9u0Jgw,414
306
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/square.in2d,sha256=enAHTXrMOM-AMGjilEXySDBvs9n8YmmWXCSzF7lWmjM,736
307
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/squarecircle.in2d,sha256=E_ziR6ZCHgqOF4TmoT9YiLGHGBDJeEB0hOAPMKwGIes,1121
308
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/squarehole.in2d,sha256=6If0o5193iTMIlP-RwILdTMLWCBWHxObgnWDp2RDG0g,1136
309
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/torus.geo,sha256=T9QMUqAikqfRzHsSSOwohmEZsNiVgXQvePLhOtS4yKs,87
310
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/trafo.geo,sha256=ZWapuu6oVtKARec4cacIcK1evwhN8Fv_4qxYpgQlqJI,1515
311
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twobricks.geo,sha256=QWyQKTX5bQL0QhnBwV7BtGXmBYhi4WWCTuhE4Xl999w,426
312
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twocubes.geo,sha256=jN8REyQblTffMuPOW5kWeabgi-6ZiXrKiBNRE8VCUVM,442
313
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twocyl.geo,sha256=Rc1pxSYX4pHKXD5TUU08oXPIaaOBLmVr37judpK37P8,315
314
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/doc/ng4.pdf,sha256=ZllW8BEOtqQHqgiE8vElqxs26AsX9BdkPC9bCtEmW5I,520268
315
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/exportNeutral.py,sha256=tXx-nl5jnxm6Xp_Z2JHUhYf8OeHt2sdhZnF--yqie60,546
316
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/mesh.py,sha256=2vhalLAyuEfDAuI2-X1mUvLXyj-GFElEIkznR6YJrho,286
317
+ netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/shaft.geo,sha256=5DhJ_TP8tPZVAtk8fOJwM6610PGjkjomTrlKbB9td4g,2287
318
318
  pyngcore/__init__.py,sha256=aCVk8cF0zEb806cag821vhOcginP-93X7Aol-xarY-k,24
319
- pyngcore/pyngcore.cpython-310-darwin.so,sha256=z9Ttrp2ZTm3Engnzdef-QMAMscJ9jHS7eKJuDHv_LrA,1375696
320
- netgen_mesher-6.2.2506.post25.dev0.dist-info/AUTHORS,sha256=sdkPCR5i9cHlnqbbEFNIsgxkBMDF7SDZHbUjW1Eawog,51
321
- netgen_mesher-6.2.2506.post25.dev0.dist-info/LICENSE,sha256=oZDcnIBDdV2Q-LCnX6ZrnkLUr0yYC_XdxjPwEk2zzuc,26430
322
- netgen_mesher-6.2.2506.post25.dev0.dist-info/METADATA,sha256=jFi0om5Qo2xEdXE4LAvn28c5PIgQT7Zv1MHMbZ9_JnI,278
323
- netgen_mesher-6.2.2506.post25.dev0.dist-info/WHEEL,sha256=vYGgz4rYivjGPkIS_2Kj6g97rQxH536HeP_jo4e1Oq8,110
324
- netgen_mesher-6.2.2506.post25.dev0.dist-info/entry_points.txt,sha256=yQ2jDE10MBw82CDJLFhPLJPeX5KsYrgxPPRhMv15PMU,49
325
- netgen_mesher-6.2.2506.post25.dev0.dist-info/top_level.txt,sha256=sPUFsx4uno9u_BrRHk2AvpPk3LUY0xT618VzCQ36bA0,16
326
- netgen_mesher-6.2.2506.post25.dev0.dist-info/RECORD,,
319
+ pyngcore/pyngcore.cpython-310-darwin.so,sha256=wRa1rrkcrWmdP73tflWUtPu_bioqZliB9dg9o24lRqI,1375984
320
+ netgen_mesher-6.2.2506.post35.dev0.dist-info/AUTHORS,sha256=sdkPCR5i9cHlnqbbEFNIsgxkBMDF7SDZHbUjW1Eawog,51
321
+ netgen_mesher-6.2.2506.post35.dev0.dist-info/LICENSE,sha256=oZDcnIBDdV2Q-LCnX6ZrnkLUr0yYC_XdxjPwEk2zzuc,26430
322
+ netgen_mesher-6.2.2506.post35.dev0.dist-info/METADATA,sha256=NMfNV61zgI5WGhf6KgCSf9XBcy2gQTmOsBnUnpwaMUY,278
323
+ netgen_mesher-6.2.2506.post35.dev0.dist-info/WHEEL,sha256=vYGgz4rYivjGPkIS_2Kj6g97rQxH536HeP_jo4e1Oq8,110
324
+ netgen_mesher-6.2.2506.post35.dev0.dist-info/entry_points.txt,sha256=yQ2jDE10MBw82CDJLFhPLJPeX5KsYrgxPPRhMv15PMU,49
325
+ netgen_mesher-6.2.2506.post35.dev0.dist-info/top_level.txt,sha256=sPUFsx4uno9u_BrRHk2AvpPk3LUY0xT618VzCQ36bA0,16
326
+ netgen_mesher-6.2.2506.post35.dev0.dist-info/RECORD,,
Binary file