ngsolve 6.2.2506.post74.dev0__cp312-cp312-win_amd64.whl → 6.2.2506.post91.dev0__cp312-cp312-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.

Potentially problematic release.


This version of ngsolve might be problematic. Click here for more details.

Files changed (47) hide show
  1. netgen/include/kernels.hpp +24 -62
  2. netgen/include/sparsefactorization_interface.hpp +153 -0
  3. netgen/include/statushandler.hpp +8 -8
  4. netgen/lib/libngsolve.lib +0 -0
  5. netgen/libngsolve.dll +0 -0
  6. netgen/ngscxx.bat +1 -1
  7. ngsolve/cmake/NGSolveConfig.cmake +1 -1
  8. ngsolve/cmake/ngsolve-targets.cmake +15 -8
  9. ngsolve/config/config.py +5 -5
  10. ngsolve/directsolvers.py +9 -21
  11. ngsolve/ngslib.pyd +0 -0
  12. ngsolve/solvers/cudss.py +74 -0
  13. {ngsolve-6.2.2506.post74.dev0.dist-info → ngsolve-6.2.2506.post91.dev0.dist-info}/METADATA +2 -2
  14. {ngsolve-6.2.2506.post74.dev0.dist-info → ngsolve-6.2.2506.post91.dev0.dist-info}/RECORD +47 -45
  15. /ngsolve/{solvers.py → solvers/__init__.py} +0 -0
  16. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/Scripts/ngsolve.tcl +0 -0
  17. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/beam.geo +0 -0
  18. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/beam.vol +0 -0
  19. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/chip.in2d +0 -0
  20. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/chip.vol +0 -0
  21. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/coil.geo +0 -0
  22. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/coil.vol +0 -0
  23. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/coilshield.geo +0 -0
  24. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/coilshield.vol +0 -0
  25. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/cube.geo +0 -0
  26. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/cube.vol +0 -0
  27. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/d10_DGdoubleglazing.pde +0 -0
  28. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/d11_chip_nitsche.pde +0 -0
  29. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/d1_square.pde +0 -0
  30. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/d2_chip.pde +0 -0
  31. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/d3_helmholtz.pde +0 -0
  32. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/d4_cube.pde +0 -0
  33. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/d5_beam.pde +0 -0
  34. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/d6_shaft.pde +0 -0
  35. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/d7_coil.pde +0 -0
  36. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/d8_coilshield.pde +0 -0
  37. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/d9_hybridDG.pde +0 -0
  38. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/doubleglazing.in2d +0 -0
  39. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/doubleglazing.vol +0 -0
  40. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
  41. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/shaft.geo +0 -0
  42. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/shaft.vol +0 -0
  43. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/square.in2d +0 -0
  44. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post91.dev0.data}/data/share/ngsolve/square.vol +0 -0
  45. {ngsolve-6.2.2506.post74.dev0.dist-info → ngsolve-6.2.2506.post91.dev0.dist-info}/WHEEL +0 -0
  46. {ngsolve-6.2.2506.post74.dev0.dist-info → ngsolve-6.2.2506.post91.dev0.dist-info}/licenses/LICENSE +0 -0
  47. {ngsolve-6.2.2506.post74.dev0.dist-info → ngsolve-6.2.2506.post91.dev0.dist-info}/top_level.txt +0 -0
@@ -203,22 +203,28 @@ namespace ngsbem
203
203
 
204
204
  /** HelmholtzSLkernel is the kernel for the double layer potential of the
205
205
  Helmholtz equation $ -\Delta u - \kappa^2 u = 0, \; \kappa>0\,. $ */
206
- template <int DIM> class HelmholtzSLKernel;
206
+ template <int DIM, int COMPS=1> class HelmholtzSLKernel;
207
207
 
208
208
  /** HelmholtzSLkernel in 3D reads
209
209
  $$ G(x-y) = \frac{1 }{4\,\pi} \,\frac{e^{i\,\kappa \, |x-y| }{|x-y|} \,
210
210
  \quad x, y \in \mathbb R^3, \; x\not=y\,. $$ */
211
- template<>
212
- class HelmholtzSLKernel<3> : public BaseKernel
211
+ template<int COMPS>
212
+ class HelmholtzSLKernel<3, COMPS> : public BaseKernel
213
213
  {
214
214
  double kappa;
215
215
  public:
216
216
  typedef Complex value_type;
217
+ using mp_type = typename std::conditional<COMPS == 1,
218
+ Complex,
219
+ Vec<COMPS, Complex>>::type;
217
220
  static string Name() { return "HelmholtzSL"; }
218
- static auto Shape() { return IVec<2>(1,1); }
221
+ static auto Shape() { return IVec<2>(COMPS,COMPS); }
219
222
 
220
223
  /** Construction of the kernel specifies the wavenumber $\kappa$. */
221
- HelmholtzSLKernel (double _kappa) : kappa(_kappa) { }
224
+ HelmholtzSLKernel (double _kappa) : kappa(_kappa) {
225
+ for (size_t i = 0; i < COMPS; i++)
226
+ terms += {1.0, 0, i, i};
227
+ }
222
228
 
223
229
  template <typename T>
224
230
  auto Evaluate (Vec<3,T> x, Vec<3,T> y, Vec<3,T> nx, Vec<3,T> ny) const
@@ -229,26 +235,32 @@ namespace ngsbem
229
235
  return Vec<1,decltype(kern)> (kern);
230
236
  }
231
237
  double GetKappa() const { return kappa; }
232
- Array<KernelTerm> terms = { KernelTerm{1.0, 0, 0, 0}, };
238
+ Array<KernelTerm> terms;
233
239
 
234
240
  auto CreateMultipoleExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
235
241
  {
236
- return make_shared<SingularMLExpansion<Complex>> (c, r, kappa, fmm_params);
242
+ return make_shared<SingularMLExpansion<mp_type>> (c, r, kappa, fmm_params);
237
243
  }
238
244
 
239
245
  auto CreateLocalExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
240
246
  {
241
- return make_shared<RegularMLExpansion<Complex>> (c, r, kappa, fmm_params);
247
+ return make_shared<RegularMLExpansion<mp_type>> (c, r, kappa, fmm_params);
242
248
  }
243
249
 
244
- void AddSource (SingularMLExpansion<Complex> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<Complex> val) const
250
+ void AddSource (SingularMLExpansion<mp_type> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<Complex> val) const
245
251
  {
246
- mp.AddCharge(pnt, val(0));
252
+ if constexpr (COMPS == 1)
253
+ mp.AddCharge (pnt, val(0));
254
+ else
255
+ mp.AddCharge (pnt, val);
247
256
  }
248
257
 
249
- void EvaluateMP (RegularMLExpansion<Complex> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<Complex> val) const
258
+ void EvaluateMP (RegularMLExpansion<mp_type> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<Complex> val) const
250
259
  {
251
- val(0) = mp.Evaluate (pnt);
260
+ if constexpr (COMPS == 1)
261
+ val(0) = mp.Evaluate (pnt);
262
+ else
263
+ val = mp.Evaluate (pnt);
252
264
  }
253
265
  };
254
266
 
@@ -317,56 +329,6 @@ namespace ngsbem
317
329
  };
318
330
 
319
331
 
320
- template <int DIM> class HelmholtzSLVecKernel;
321
-
322
- template<>
323
- class HelmholtzSLVecKernel<3> : public BaseKernel
324
- {
325
- double kappa;
326
- public:
327
- typedef Complex value_type;
328
- static string Name() { return "HelmholtzSLVec"; }
329
- static auto Shape() { return IVec<2>(3,3); }
330
-
331
- HelmholtzSLVecKernel (double _kappa) : kappa(_kappa) { }
332
-
333
- template <typename T>
334
- auto Evaluate (Vec<3,T> x, Vec<3,T> y, Vec<3,T> nx, Vec<3,T> ny) const
335
- {
336
- T norm = L2Norm(x-y);
337
- auto kern = exp(Complex(0,kappa)*norm) / (4 * M_PI * norm);
338
- return Vec<1,decltype(kern)> (kern);
339
- }
340
- double GetKappa() const { return kappa; }
341
- Array<KernelTerm> terms =
342
- {
343
- KernelTerm{1.0, 0, 0, 0},
344
- KernelTerm{1.0, 0, 1, 1},
345
- KernelTerm{1.0, 0, 2, 2},
346
- };
347
-
348
- auto CreateMultipoleExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
349
- {
350
- return make_shared<SingularMLExpansion<Vec<3,Complex>>> (c, r, kappa, fmm_params);
351
- }
352
-
353
- auto CreateLocalExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
354
- {
355
- return make_shared<RegularMLExpansion<Vec<3,Complex>>> (c, r, kappa, fmm_params);
356
- }
357
-
358
- void AddSource (SingularMLExpansion<Vec<3,Complex>> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<Complex> val) const
359
- {
360
- mp.AddCharge(pnt, val);
361
- }
362
-
363
- void EvaluateMP (RegularMLExpansion<Vec<3,Complex>> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<Complex> val) const
364
- {
365
- val = mp.Evaluate (pnt);
366
- }
367
- };
368
-
369
-
370
332
  template <int DIM> class HelmholtzHSKernel;
371
333
 
372
334
  template<>
@@ -0,0 +1,153 @@
1
+ #ifndef SPARSEFACTORIZATION_INTERFACE_HPP
2
+ #define SPARSEFACTORIZATION_INTERFACE_HPP
3
+
4
+ #include "basevector.hpp"
5
+ #include "sparsecholesky.hpp"
6
+ #include "sparsematrix.hpp"
7
+ #include "../ngstd/python_ngstd.hpp"
8
+
9
+ namespace ngla {
10
+
11
+ void ExportSparseFactorizationInterface(py::module &m);
12
+
13
+ struct MapInnerDofs {
14
+ shared_ptr<BitArray> inner;
15
+ shared_ptr<const Array<int>> cluster;
16
+ Array<int> project;
17
+ Array<int> embed;
18
+ size_t size = 0;
19
+
20
+ MapInnerDofs(shared_ptr<BitArray> ainner,
21
+ shared_ptr<const Array<int>> acluster = nullptr)
22
+ : inner(ainner), cluster(acluster) {
23
+ if (!inner && !cluster) {
24
+ size = 0;
25
+ return;
26
+ }
27
+ if (inner) {
28
+ size = inner->NumSet();
29
+ project.SetSize(size);
30
+ embed.SetSize(inner->Size());
31
+ int j = 0;
32
+ for (int i = 0; i < inner->Size(); i++) {
33
+ if ((*inner)[i]) {
34
+ project[j] = i;
35
+ embed[i] = j++;
36
+ } else
37
+ embed[i] = -1;
38
+ }
39
+ return;
40
+ }
41
+
42
+ int j = 0;
43
+ for (int i = 0; i < cluster->Size(); i++) {
44
+ if ((*cluster)[i]) {
45
+ project.Append(i);
46
+ embed.Append(j++);
47
+ } else {
48
+ embed.Append(-1);
49
+ }
50
+ }
51
+ size = project.Size();
52
+ }
53
+
54
+ operator bool() const { return inner || cluster; }
55
+
56
+ template <typename T>
57
+ void Project(FlatVector<T> dst, FlatVector<T> src) const {
58
+ for (size_t i = 0; i < project.Size(); i++)
59
+ dst[i] = src[project[i]];
60
+ }
61
+
62
+ template <typename T> void Embed(T &dst, const T &src) const {
63
+ for (size_t i : Range(embed)) {
64
+ if (embed[i] >= 0)
65
+ dst[i] = src[embed[i]];
66
+ else
67
+ dst[i] = 0.0;
68
+ }
69
+ }
70
+
71
+ template <typename T>
72
+ void EmbedAdd(FlatVector<T> dst, FlatVector<T> src, T scale) const {
73
+ for (size_t i : Range(embed))
74
+ if (embed[i] >= 0)
75
+ dst[i] += scale * src[embed[i]];
76
+ }
77
+
78
+ template <typename T>
79
+ shared_ptr<SparseMatrixTM<T>>
80
+ ProjectMatrix(shared_ptr<const SparseMatrixTM<T>> m) {
81
+ Array<int> rowi, coli;
82
+ Array<T> vals;
83
+ auto &dofs = *inner;
84
+
85
+ auto vals_ori = m->GetValues();
86
+
87
+ auto &cluster_array = *cluster;
88
+ auto &inner_bitarray = *inner;
89
+ auto is_used = [this, &inner_bitarray, &cluster_array](int i, int j) {
90
+ if (inner)
91
+ return inner_bitarray[i] && inner_bitarray[j];
92
+ return cluster_array[i] == cluster_array[j];
93
+ };
94
+
95
+ for (auto i : project)
96
+ for (auto j : m->GetRowIndices(i))
97
+ if (is_used(i, j)) {
98
+ rowi.Append(embed[i]);
99
+ coli.Append(embed[j]);
100
+ vals.Append(vals_ori[m->GetPosition(i, j)]);
101
+ }
102
+
103
+ auto res = SparseMatrixTM<T>::CreateFromCOO(rowi, coli, vals,
104
+ project.Size(), project.Size());
105
+ res->SetSPD(m->IsSPD());
106
+ return res;
107
+ }
108
+ };
109
+
110
+ class SparseFactorizationInterface : public SparseFactorization {
111
+ protected:
112
+ shared_ptr<const BaseSparseMatrix> inner_mat;
113
+ shared_ptr<BaseVector> inner_rhs, inner_solution;
114
+ MapInnerDofs map_inner_dofs;
115
+ bool is_complex = false;
116
+ bool is_symmetric = false;
117
+ bool is_symmetric_storage = false;
118
+ bool is_analyzed = false;
119
+ int width, height, inner_width, inner_height;
120
+
121
+ public:
122
+ SparseFactorizationInterface() = delete;
123
+ SparseFactorizationInterface(shared_ptr<const BaseMatrix> m,
124
+ shared_ptr<BitArray> ainner = nullptr,
125
+ shared_ptr<const Array<int>> acluster = nullptr);
126
+
127
+ virtual ~SparseFactorizationInterface() {}
128
+
129
+ AutoVector CreateRowVector() const override {
130
+ return make_unique<VVector<double>>(Width());
131
+ }
132
+
133
+ AutoVector CreateColVector() const override {
134
+ return make_unique<VVector<double>>(Height());
135
+ }
136
+
137
+ shared_ptr<const BaseSparseMatrix> GetInnerMatrix() const {
138
+ return inner_mat;
139
+ }
140
+
141
+ void MultAdd(double s, const BaseVector &x, BaseVector &y) const override;
142
+ void MultAdd(Complex s, const BaseVector &x, BaseVector &y) const override;
143
+
144
+ virtual void Update() override;
145
+
146
+ virtual void Analyze() {}
147
+ virtual void Factor() {}
148
+ virtual void Solve(const BaseVector &rhs, BaseVector &solution) const = 0;
149
+ };
150
+
151
+ } // namespace ngla
152
+
153
+ #endif // SPARSEFACTORIZATION_INTERFACE_HPP
@@ -3,27 +3,27 @@
3
3
 
4
4
  namespace ngstd
5
5
  {
6
-
6
+
7
7
  /** Access to statusbar. (and more)
8
8
  */
9
9
 
10
10
  class NGS_DLL_HEADER BaseStatusHandler
11
- {
12
- public:
13
- static void PushStatus (const char * str);
11
+ {
12
+ public:
13
+ static void PushStatus (const std::string& str);
14
14
  static void PopStatus ();
15
15
  static void SetThreadPercentage (double percent);
16
-
16
+
17
17
  static void GetStatus (string & str, double & percent);
18
-
18
+
19
19
  static void SetTerminate(void);
20
20
  static void UnSetTerminate(void);
21
21
  static bool ShouldTerminate(void);
22
-
22
+
23
23
  class Region
24
24
  {
25
25
  public:
26
- Region(const char * str) { PushStatus(str); }
26
+ Region(const string& str) { PushStatus(str); }
27
27
  ~Region() { PopStatus(); }
28
28
  };
29
29
  };
netgen/lib/libngsolve.lib CHANGED
Binary file
netgen/libngsolve.dll CHANGED
Binary file
netgen/ngscxx.bat CHANGED
@@ -1,4 +1,4 @@
1
1
  set NGSCXX_DIR=%~dp0
2
2
  call "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Auxiliary/Build/vcvarsall.bat" amd64
3
3
 
4
- cl /c /O2 /Ob2 /DNDEBUG /DWIN32 /D_WINDOWS /GR /EHsc /DHAVE_NETGEN_SOURCES /DUSE_TIMEOFDAY /DTCL /DLAPACK /DUSE_PARDISO /DNGS_PYTHON /DNETGEN_PYTHON /DNG_PYTHON /DPYBIND11_SIMPLE_GIL_MANAGEMENT /D_WIN32_WINNT=0x1000 /DWNT /DWNT_WINDOW /DNOMINMAX /DMSVC_EXPRESS /D_CRT_SECURE_NO_WARNINGS /DHAVE_STRUCT_TIMESPEC /DWIN32 /std:c++17 /bigobj /wd4068 -DMAX_SYS_DIM=3 /arch:AVX2 /bigobj /I"C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/venv_ngs/Library/include" /I"C:/Python312/Include" /I"%NGSCXX_DIR%/include" /I"%NGSCXX_DIR%/include/include" %*
4
+ cl /c /O2 /Ob2 /DNDEBUG /DWIN32 /D_WINDOWS /GR /EHsc /DHAVE_NETGEN_SOURCES /DUSE_TIMEOFDAY /DTCL /DLAPACK /DUSE_PARDISO /DNGS_PYTHON /DNETGEN_PYTHON /DNG_PYTHON /DPYBIND11_SIMPLE_GIL_MANAGEMENT /D_WIN32_WINNT=0x1000 /DWNT /DWNT_WINDOW /DNOMINMAX /DMSVC_EXPRESS /D_CRT_SECURE_NO_WARNINGS /DHAVE_STRUCT_TIMESPEC /DWIN32 /std:c++17 /bigobj /wd4068 -DMAX_SYS_DIM=3 /arch:AVX2 /bigobj /MD /I"C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/venv_ngs/Library/include" /I"C:/Python312/Include" /I"%NGSCXX_DIR%/include" /I"%NGSCXX_DIR%/include/include" %*
@@ -1,4 +1,4 @@
1
- set(PACKAGE_VERSION "6.2.2506-74-gd430159c1")
1
+ set(PACKAGE_VERSION "6.2.2506-91-g125cf2190")
2
2
  find_package(Netgen CONFIG REQUIRED HINTS
3
3
  ${CMAKE_CURRENT_LIST_DIR}
4
4
  ${CMAKE_CURRENT_LIST_DIR}/..
@@ -19,7 +19,7 @@ set(CMAKE_IMPORT_FILE_VERSION 1)
19
19
  set(_cmake_targets_defined "")
20
20
  set(_cmake_targets_not_defined "")
21
21
  set(_cmake_expected_targets "")
22
- foreach(_cmake_expected_target IN ITEMS netgen_libs ngs_lapack ngstd ngbla ngla ngfem ngsbem ngcomp ngsolve)
22
+ foreach(_cmake_expected_target IN ITEMS netgen_lib netgen_core_lib ngs_lapack ngstd ngbla ngla ngfem ngsbem ngcomp ngsolve)
23
23
  list(APPEND _cmake_expected_targets "${_cmake_expected_target}")
24
24
  if(TARGET "${_cmake_expected_target}")
25
25
  list(APPEND _cmake_targets_defined "${_cmake_expected_target}")
@@ -54,11 +54,18 @@ if(_IMPORT_PREFIX STREQUAL "/")
54
54
  set(_IMPORT_PREFIX "")
55
55
  endif()
56
56
 
57
- # Create imported target netgen_libs
58
- add_library(netgen_libs INTERFACE IMPORTED)
57
+ # Create imported target netgen_lib
58
+ add_library(netgen_lib INTERFACE IMPORTED)
59
59
 
60
- set_target_properties(netgen_libs PROPERTIES
61
- INTERFACE_LINK_LIBRARIES "nglib;ngcore"
60
+ set_target_properties(netgen_lib PROPERTIES
61
+ INTERFACE_LINK_LIBRARIES "nglib"
62
+ )
63
+
64
+ # Create imported target netgen_core_lib
65
+ add_library(netgen_core_lib INTERFACE IMPORTED)
66
+
67
+ set_target_properties(netgen_core_lib PROPERTIES
68
+ INTERFACE_LINK_LIBRARIES "ngcore"
62
69
  )
63
70
 
64
71
  # Create imported target ngs_lapack
@@ -75,7 +82,7 @@ add_library(ngstd INTERFACE IMPORTED)
75
82
  set_target_properties(ngstd PROPERTIES
76
83
  INTERFACE_COMPILE_DEFINITIONS "HAVE_NETGEN_SOURCES;USE_TIMEOFDAY;TCL;LAPACK;USE_PARDISO;NGS_PYTHON"
77
84
  INTERFACE_COMPILE_OPTIONS "/std:c++17;/bigobj;/wd4068;-DMAX_SYS_DIM=3"
78
- INTERFACE_LINK_LIBRARIES "netgen_libs;\$<LINK_ONLY:>"
85
+ INTERFACE_LINK_LIBRARIES "netgen_core_lib;\$<LINK_ONLY:>"
79
86
  )
80
87
 
81
88
  # Create imported target ngbla
@@ -110,14 +117,14 @@ set_target_properties(ngsbem PROPERTIES
110
117
  add_library(ngcomp INTERFACE IMPORTED)
111
118
 
112
119
  set_target_properties(ngcomp PROPERTIES
113
- INTERFACE_LINK_LIBRARIES "ngfem;ngla;ngbla;ngstd;\$<LINK_ONLY:>"
120
+ INTERFACE_LINK_LIBRARIES "ngfem;ngla;ngbla;ngstd;\$<LINK_ONLY:>;netgen_lib"
114
121
  )
115
122
 
116
123
  # Create imported target ngsolve
117
124
  add_library(ngsolve SHARED IMPORTED)
118
125
 
119
126
  set_target_properties(ngsolve PROPERTIES
120
- INTERFACE_LINK_LIBRARIES "netgen_libs;ngsolve;ngcomp;ngfem;ngsbem;ngbla;ngla;ngstd"
127
+ INTERFACE_LINK_LIBRARIES "netgen_lib;netgen_core_lib;ngsolve;ngcomp;ngfem;ngsbem;ngbla;ngla;ngstd"
121
128
  )
122
129
 
123
130
  if(CMAKE_VERSION VERSION_LESS 3.0.0)
ngsolve/config/config.py CHANGED
@@ -29,15 +29,15 @@ NGSOLVE_INSTALL_DIR_INCLUDE = "netgen/include"
29
29
  NGSOLVE_INSTALL_DIR_CMAKE = "ngsolve/cmake"
30
30
  NGSOLVE_INSTALL_DIR_RES = "share"
31
31
 
32
- NGSOLVE_VERSION = "6.2.2506-74-gd430159c1"
33
- NGSOLVE_VERSION_GIT = "v6.2.2506-74-gd430159c1"
34
- NGSOLVE_VERSION_PYTHON = "6.2.2506.post74.dev0"
32
+ NGSOLVE_VERSION = "6.2.2506-91-g125cf2190"
33
+ NGSOLVE_VERSION_GIT = "v6.2.2506-91-g125cf2190"
34
+ NGSOLVE_VERSION_PYTHON = "6.2.2506.post91.dev0"
35
35
 
36
36
  NGSOLVE_VERSION_MAJOR = "6"
37
37
  NGSOLVE_VERSION_MINOR = "2"
38
- NGSOLVE_VERSION_TWEAK = "74"
38
+ NGSOLVE_VERSION_TWEAK = "91"
39
39
  NGSOLVE_VERSION_PATCH = "2506"
40
- NGSOLVE_VERSION_HASH = "gd430159c1"
40
+ NGSOLVE_VERSION_HASH = "g125cf2190"
41
41
 
42
42
  CMAKE_CXX_COMPILER = "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/cl.exe"
43
43
  CMAKE_CUDA_COMPILER = ""
ngsolve/directsolvers.py CHANGED
@@ -1,26 +1,14 @@
1
1
  from ngsolve import BaseMatrix, BitArray, BilinearForm, BaseVector
2
+ import ngsolve
2
3
 
3
- class SuperLU(BaseMatrix):
4
- # def __init__(self, a: BaseMatrix | BilinearForm, freedofs: BitArray = None):
5
- def __init__(self, a, freedofs: BitArray = None):
6
- super().__init__()
7
- self.a = a
8
- self.freedofs = freedofs
9
-
10
- def Update(self):
4
+ class SuperLU(ngsolve.la.SparseFactorizationInterface):
5
+ def Factor(self):
11
6
  import scipy.sparse as sp
12
7
  import scipy.sparse.linalg as spla
13
- a = self.a if isinstance(self.a, BaseMatrix) else self.a.mat
14
- mat = sp.csr_matrix(a.CSR())
15
- if self.freedofs is not None:
16
- self.fd = list(self.freedofs)
17
- mat = mat[self.fd,:][:,self.fd]
18
- self.lu = spla.factorized(sp.csc_matrix(mat))
8
+ vals, rows, cols = self.GetInnerMatrix().CSR()
9
+ self.inv_mat = spla.factorized(sp.csr_matrix((vals, rows, cols)))
10
+
11
+ def Solve(self, rhs, sol):
12
+ sol.FV().NumPy()[:] = self.inv_mat(rhs.FV().NumPy())
19
13
 
20
- def Mult(self, x: BaseVector, y: BaseVector):
21
- if not hasattr(self, "lu"):
22
- self.Update()
23
- if self.freedofs is not None:
24
- y.FV().NumPy()[self.fd] = self.lu(x.FV().NumPy()[self.fd])
25
- else:
26
- y.FV().NumPy()[:] = self.lu(x.FV().NumPy())
14
+ ngsolve.la.RegisterInverseType("superlu", SuperLU)
ngsolve/ngslib.pyd CHANGED
Binary file
@@ -0,0 +1,74 @@
1
+
2
+ try:
3
+ import nvmath
4
+ import nvmath.sparse.advanced as nvs
5
+ except ImportError:
6
+ raise ImportError("CUDSS solver requires nvmath-python module.")
7
+ import ngsolve.la as ngla
8
+ import scipy.sparse as sp
9
+ import numpy as np
10
+
11
+
12
+ class CudssSolver(ngla.SparseFactorizationInterface):
13
+ def Analyze(self):
14
+ self._mat = self.GetInnerMatrix()
15
+ csr = sp.csr_matrix(self._mat.CSR())
16
+ self._tmp = np.empty(csr.shape[1], dtype=csr.dtype)
17
+ options = make_directsolver_options()
18
+ self.solver = nvs.DirectSolver(csr, self._tmp, options=options)
19
+ self.solver.plan()
20
+
21
+ def Factor(self):
22
+ self.solver.factorize()
23
+
24
+ def Solve(self, b, sol):
25
+ self.solver.reset_operands(b=b.FV().NumPy())
26
+ sol.FV().NumPy()[:] = self.solver.solve()
27
+
28
+
29
+ ngla.RegisterInverseType("cudss", CudssSolver)
30
+
31
+
32
+ # find cudss multithreading lib from installed distribution
33
+
34
+ import os, pathlib
35
+ from importlib import util as importlib_util
36
+ from importlib import metadata as importlib_metadata
37
+
38
+ def _from_dist_files():
39
+ # Use the wheel’s file manifest (most reliable)
40
+ candidates = []
41
+ for dist_name in ("nvidia-cudss-cu12", "nvidia_cudss_cu12", "nvidia-cudss"): # try common variants
42
+ try:
43
+ dist = importlib_metadata.distribution(dist_name)
44
+ except importlib_metadata.PackageNotFoundError:
45
+ continue
46
+ for f in dist.files or []:
47
+ name = f.name.lower()
48
+ # check for name ends in .so or .so.*
49
+ endwith_so = name.endswith(".so") or (".so." in name and name.rsplit(".so.", 1)[1].replace(".", "").isdigit())
50
+ if name.startswith("libcudss_mtlayer_") and endwith_so:
51
+ candidates.append(dist.locate_file(f))
52
+ if name.startswith("cudss_mtlayer_") and name.endswith(".dll"):
53
+ candidates.append(dist.locate_file(f))
54
+ if candidates:
55
+ # Prefer anything in bin/ or lib/ if multiple
56
+ candidates.sort(key=lambda p: ("bin" not in str(p) and "lib" not in str(p), str(p)))
57
+ return str(candidates[0])
58
+ return None
59
+
60
+
61
+ def make_directsolver_options():
62
+ # Helpful on Windows (Python 3.8+): ensure DLL deps can be found
63
+ if os.name == "nt":
64
+ for var in ("CUDA_PATH", "CUDSS_PATH", "CONDA_PREFIX"):
65
+ base = os.environ.get(var)
66
+ if base:
67
+ p = pathlib.Path(base) / "bin"
68
+ if p.exists():
69
+ try:
70
+ os.add_dll_directory(str(p))
71
+ except Exception:
72
+ pass
73
+ mtlib = _from_dist_files()
74
+ return nvs.DirectSolverOptions(multithreading_lib=mtlib)
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ngsolve
3
- Version: 6.2.2506.post74.dev0
3
+ Version: 6.2.2506.post91.dev0
4
4
  Summary: NGSolve
5
5
  Author: The NGSolve team
6
6
  License: LGPL2.1
7
7
  License-File: LICENSE
8
- Requires-Dist: netgen-mesher==6.2.2506.post11.dev0
8
+ Requires-Dist: netgen-mesher==6.2.2506.post20.dev0
9
9
  Requires-Dist: mkl
10
10
  Dynamic: author
11
11
  Dynamic: license
@@ -1,5 +1,5 @@
1
- netgen/libngsolve.dll,sha256=oweTPPTM5n9XPgCVwey-Be5xyJ7u0OMWSUNaKtjZHXY,37771776
2
- netgen/ngscxx.bat,sha256=OHagH0Xm9cOpt3urQF1XRhzsoBOIdfl3KE3wB1hG0i4,670
1
+ netgen/libngsolve.dll,sha256=GyEvFuT7YaDKShPBvelM8e5TNwvhh_6cObMe5xZsYAw,37815296
2
+ netgen/ngscxx.bat,sha256=3Am-UCVdSvysdh8H7zMb5aqB0nntospAC5rZ0tyDP0E,674
3
3
  netgen/ngsld.bat,sha256=YD1I1rK70K_YvLev7aYQMD9mCcwF55k1B_8pRWPpob0,428
4
4
  netgen/include/analytic_integrals.hpp,sha256=oPgn5R2aQOu3ELN-NIMK-h2UFFJbmFlx-cZd_Nqm7rQ,248
5
5
  netgen/include/arnoldi.hpp,sha256=m39slyQUujB_9j3NDfTpEWyldC6Fw8natUpPuBkevLM,1492
@@ -100,7 +100,7 @@ netgen/include/intrule.hpp,sha256=zZAu7zxZ6oiHjE-UfRyRPZOJi5LMgJFItQHz0pORNvM,83
100
100
  netgen/include/intrules_SauterSchwab.hpp,sha256=2f9Lb77H6sgaVq7576L78zNGbv4MYgHpddIzfc36TKA,675
101
101
  netgen/include/irspace.hpp,sha256=UFWeaFVUDwsHCJZqtZBBDnhWC4Oyy34z9Pr6KzofHPg,1557
102
102
  netgen/include/jacobi.hpp,sha256=LvjGz2p4Eew3TPsRU34oWMNPXIZ_-tU6prsgjUiqgEs,4891
103
- netgen/include/kernels.hpp,sha256=9z9u0B2MmL8S-dpbmO-RUlU6tyGxq3r35ruF-NY5vJw,25116
103
+ netgen/include/kernels.hpp,sha256=B3HYIP5LdU0bt0WQLiM6ktyif596ZZlPThyY-s2Z7lI,24000
104
104
  netgen/include/l2hofe.hpp,sha256=DUiwhkbnavfgLy8RgQrp__47fe4USC42E-Loyot0WEQ,6890
105
105
  netgen/include/l2hofe_impl.hpp,sha256=GyZPQ2RFQWxBoiS82cg1I3LjTq1M7uFeZ6IHhZVe7Lw,16412
106
106
  netgen/include/l2hofefo.hpp,sha256=ZA3Rqc_aGnLkS12eUz_W9AAV0hybvPSOzCIJeIMgIqE,17134
@@ -160,12 +160,13 @@ netgen/include/simd_complex.hpp,sha256=JOmBhwEPK-LtuXmofWR01ziUWXGTcmzRtoFl34Zp0
160
160
  netgen/include/smoother.hpp,sha256=SoVZvhFynyPSIAe-x8EloVluIHUE0k78Dp3sQFu-Yfo,6896
161
161
  netgen/include/solve.hpp,sha256=lzCGHU1QOj9VXG43Q8MzvDi48-BfVH_fG8R0ttU8Xfg,2123
162
162
  netgen/include/sparsecholesky.hpp,sha256=hOzFoXMEelAdJROF1q4zkYv0yfZgSDhjwaYvRRmiMcE,9201
163
+ netgen/include/sparsefactorization_interface.hpp,sha256=Hbs7OEs8Q7HS9MVC4X5kKA0vS6HI13In_7g4TqKUsRE,4296
163
164
  netgen/include/sparsematrix.hpp,sha256=c_FdF060SJ0_qQK3WRQg5Gu042neowQHQ31n8cj3r1E,33779
164
165
  netgen/include/sparsematrix_dyn.hpp,sha256=1azpAkASyjwRKiDZ_FVVyBPiLpiZocsW0S9bEMTjprI,2746
165
166
  netgen/include/sparsematrix_impl.hpp,sha256=WpqmiecTQpbvE6LSfoouvKBCY6T2Y4FetCclHPa8RTI,31232
166
167
  netgen/include/special_matrix.hpp,sha256=j_9NSuEudoEzX3hx6TAdSwOEka5MiQgqJ1lAOwno4ng,16989
167
168
  netgen/include/specialelement.hpp,sha256=ovP0KuLWkBRnoc72hfzGgrrigzNQBdJexVAgSUj63vg,3351
168
- netgen/include/statushandler.hpp,sha256=IJPw19bARTth8D8wc6kHTBkxE4o3QTWB-cGDGz1Q2oE,679
169
+ netgen/include/statushandler.hpp,sha256=NWSeGEz-aB7fNs6WZgObmO66BB9OJ4R4w3v7WSeL4fk,704
169
170
  netgen/include/stringops.hpp,sha256=vN_DL7f2M5e9dLpZOHIVDXzwoSovbqtuqClZdYMVDrA,274
170
171
  netgen/include/superluinverse.hpp,sha256=A5YmUv_5R0qAzcD4zIxpUPAB6HqLcXuFU6J91Ygmnio,3301
171
172
  netgen/include/symbolicintegrator.hpp,sha256=wqNooITNcQVDUiPbs3LIAaV7vpFBLhq1TvupEoDGs2A,36897
@@ -191,14 +192,14 @@ netgen/include/voxelcoefficientfunction.hpp,sha256=zPlatX_nf2ODK2X979wvpm1HXHEzn
191
192
  netgen/include/vtkoutput.hpp,sha256=GwPaFtOVY27_1hKwSqpNHV4ppOk3CVsLdMpocm27odQ,6628
192
193
  netgen/include/vvector.hpp,sha256=vpnwWlNWsEJB26ve8cKADbUMGVBTTVCFvrBC4r_LDDQ,4785
193
194
  netgen/include/webgui.hpp,sha256=xm1S5KHockrzf_R4zHzQ9fzwfQ4H5aZaZm9ItCaR41s,2199
194
- netgen/lib/libngsolve.lib,sha256=Ts9-5bq29VKctP9riVULaokqUyw642EZEtgSMdkFL1Y,13926796
195
+ netgen/lib/libngsolve.lib,sha256=GrG9qT9lLt861deplHv8oIXAKCLt3v9coFpd49-rGW8,13927102
195
196
  ngsolve/TensorProductTools.py,sha256=jD4LtJdEiLt2dDsU6STMXb10yrau_i20gatwGlqbiFQ,8562
196
197
  ngsolve/__console.py,sha256=QLnfw1ONU9eVPQZ_LjzY-7b_gfZpRRRdI7imHR1lJR8,2983
197
198
  ngsolve/__expr.py,sha256=ZAtv94PVtAdvWWKFIvQGJC55aIEY6ajo-l5Hp-1V-6s,4396
198
199
  ngsolve/__init__.py,sha256=_pRJLhaBNqv2q1vigj9p-2YqRbiROROrnl3iVM9G2ow,5620
199
200
  ngsolve/_scikit_build_core_dependencies.py,sha256=usioLq44m3uusEH205dW0czyzGmzy87PZgizZKUoPs0,765
200
201
  ngsolve/bvp.py,sha256=STQCDhEphVgEK3hfWGJyVkS1vi_ubTTKHq7fnuR-POo,2065
201
- ngsolve/directsolvers.py,sha256=lVfEluGDFd_u6Y-vyQ08VjHA02xQuklIQ91hMopj-40,1021
202
+ ngsolve/directsolvers.py,sha256=oP6hzWSlmNuobu5tFoMJRRX3Zh-_dib-S_rQ2Z9LEio,526
202
203
  ngsolve/eigenvalues.py,sha256=7PRftYxyoBwu0C_kD1lrDI0gjgJOyJWZzAhVQVfTAkI,9673
203
204
  ngsolve/internal.py,sha256=IgPpdMN7bdaCrafmJcNLha4CYae06A52AHobPjGrkdw,5202
204
205
  ngsolve/krylovspace.py,sha256=uBV8zrTP9RaqlTjYqowFNqVOMfK7ECTg99J8AbeJTWY,32876
@@ -206,21 +207,20 @@ ngsolve/meshes.py,sha256=nz95LP1EEIVAEJ0jyQGqq0E-62uuy2tvIRgqIrEqDHQ,27534
206
207
  ngsolve/ngs2petsc.py,sha256=PLAkvu4H-ZEXd0-bM2v0OJX7gga-OJ9d-NB7g322-wQ,12809
207
208
  ngsolve/ngscxx.py,sha256=r9TV49w0MKIxE6fgJYO4FNv-5wcM9eAFYIG9GspUy_A,1335
208
209
  ngsolve/ngslib.lib,sha256=PMhmZBaGh5nKKYoOl2fg3yeDwwLKpe7a5XttqXXc5xc,1716
209
- ngsolve/ngslib.pyd,sha256=CJgD8UL0nAOSYVYGpBCs15DlUWlcX870SR8ZRPEN9vo,139776
210
+ ngsolve/ngslib.pyd,sha256=PxOR2hR_-wQeevo2psImXGjuQNuaKKllSxV2163WExE,139776
210
211
  ngsolve/nonlinearsolvers.py,sha256=nKd-SVJseTWztHZPEPKsbv0mLwQjFILZtOh7Ggft0xs,8419
211
212
  ngsolve/preconditioners.py,sha256=vsbO1lQG-ibmk88AHsiizDZcBYsfHEL-13_E_l-tYuw,250
212
213
  ngsolve/solve_implementation.py,sha256=F2es3RvCb2OWNs1Lxl1jexZXCgmfH6cct8cJapftlEg,5708
213
- ngsolve/solvers.py,sha256=Vbm5RfIJ83nMtQ1pYJL0uBBuys4-mcY6b63MNkyiqxU,311
214
214
  ngsolve/timestepping.py,sha256=SuKsFS7cDXRixKWdMMIWW4flet12HLeqWTBC0DFhPwg,8535
215
215
  ngsolve/timing.py,sha256=j_Plbbh51pS9QwMq93hyvFDSrbywmdKZ6Z6OOZmZoe4,4093
216
216
  ngsolve/utils.py,sha256=jg6smLuKF6G9Rvg-EXjyYwjFJGyyiqSRknevdjp-9J4,4724
217
217
  ngsolve/webgui.py,sha256=HVJnfG96eGuO6ZRfqiWQlRaKbK_Yv5y0QbicfNFAf6A,24983
218
- ngsolve/cmake/NGSolveConfig.cmake,sha256=HlYFeIQJ8Wy_gKkEq4lQr7xjLUPEYWgEThwIpf2J5Fw,5155
218
+ ngsolve/cmake/NGSolveConfig.cmake,sha256=3FGqkhpKzPWEUgrL-yNwUksK9Y5PzLxwPKjJIMxYAgs,5155
219
219
  ngsolve/cmake/ngsolve-targets-release.cmake,sha256=knQjCmz6J-x_Egg5DosY5hU_CZdZlSQxQ4Za7pS07fA,907
220
- ngsolve/cmake/ngsolve-targets.cmake,sha256=CDY3Uo0eZa6NGJVRTLZDkbgSrLqTnub8olMieARMi48,5905
220
+ ngsolve/cmake/ngsolve-targets.cmake,sha256=0b9ik_4jQ2mNfqq1oZxhFZq3faLxzmvtR4G8ubzHidQ,6125
221
221
  ngsolve/config/__init__.py,sha256=IjGKWBHvRx572Z6m-5z0q82xuQaWlBABy1whwy2Uxak,23
222
222
  ngsolve/config/__main__.py,sha256=anI_XpgrpEnVnMyrFiH3Yon_tpQZkehnqRTNC02NiBI,93
223
- ngsolve/config/config.py,sha256=FTNNGg_PCW4FsA7gXJOPT4_DfZNxBoyGs9P0QfFnPmM,2549
223
+ ngsolve/config/config.py,sha256=Ezm-t02ZFFW0fpAvSe5G3cCH6ILMaltlm86e6IXEb-8,2549
224
224
  ngsolve/demos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
225
225
  ngsolve/demos/TensorProduct/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
226
  ngsolve/demos/TensorProduct/tp_dg_1d_1d.py,sha256=3Q9ntmVJGIKQ-JLdGWgECR_kDjTG8FPVCSiTJkxyi40,2188
@@ -252,37 +252,39 @@ ngsolve/demos/mpi/mpi_cmagnet.py,sha256=59TuQvIIGoDStyJneH47NG131nppBoQpZQ9rfvG_
252
252
  ngsolve/demos/mpi/mpi_navierstokes.py,sha256=ieAWMDd9LoH99L14iBgF_YmX_xk7gltZ9MruTFN6xAY,3028
253
253
  ngsolve/demos/mpi/mpi_poisson.py,sha256=_-H0HFqlwlpasiVD9OQjUvJbWJcQ34-4y-va1WOSOzE,2557
254
254
  ngsolve/demos/mpi/mpi_timeDG.py,sha256=FUOh_1dzOGUU-uAsD4iyz0RVT382jMiMiuYkZjarhAE,1963
255
- ngsolve-6.2.2506.post74.dev0.data/data/Scripts/ngsolve.tcl,sha256=8KBOXZKYU_qx8785PIjdmVjcUbCxR5aYrod0BZ4UgGc,21637
256
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.geo,sha256=HTv0A6IUoVuavifolhGKY6U44z0hni07Htonqe6rw_A,404
257
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.vol,sha256=QZbM9JE4rBs5nVXaw7ZAbDf60yXbX19bm1OnOScF57M,13834
258
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.in2d,sha256=561AjEIPnlzMZHIzep5lRjocQDm8w7o7IDna5u8s9JQ,592
259
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.vol,sha256=gkEmBWlQh8BkSFNTf-XISfmuGzHXDKANV4Uoww_BwJI,28511
260
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.geo,sha256=ylB2OiWEZztFXPx99qTNRJKmZFIDPEezEgQt4EPtZRA,376
261
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.vol,sha256=t8cWP_YX38FMw0S-7vEVUOcSH0VK6DlaqVWG_zmBo-4,147284
262
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.geo,sha256=Sq8w7i22WQ0viaiM3bU_63lZGFWp8JgyDqs3RdjeTe0,629
263
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.vol,sha256=JiZOM9A529-hikvv1kyLwffTRpeatLtaVTNcu42o1fo,165576
264
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.geo,sha256=Wd9AnPdoQgjQ-JK6zmoXjsNxPR9B8ED4pdHVwmRoe1M,405
265
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.vol,sha256=RS8bay_KlF6IZM0QDDr7_dGaFLqoxszQU_w8TYutMKY,92127
266
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde,sha256=lK3sXmK74eFEMk8F6hwFHe_tBYnOdRq3F-RbzKpDK0c,1354
267
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde,sha256=VuEQtkZaIJA9yuvjG_jcx1UB9UtAaZSoeJYFHcHeYxk,1141
268
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d1_square.pde,sha256=24ZZ0nlbr5LKl_mPyeZZMSkiCBiBk1fzNElo3yITX2A,1072
269
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d2_chip.pde,sha256=yGIbzuTdCEjdoC9Ig_hbcy5qz69_wxgPZeYmhY1rN7k,985
270
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d3_helmholtz.pde,sha256=gWqQTh1M9NiKGohlu5JxDJuvRz-T28WlNSVbwmMvM-0,590
271
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d4_cube.pde,sha256=6kL43ehAh1PdwnFlLjadg325bFjpz02p2PpAOxlDFuc,1079
272
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d5_beam.pde,sha256=VQt9WbqAVWObFH9Jy1YieE9WHnVZ_hnsKVTz6ysEBxI,2059
273
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d6_shaft.pde,sha256=y10nLFA2-GwEwnAs5R-8wppRq-09vYJ_C9LJ3DSvlS0,1974
274
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d7_coil.pde,sha256=KFkqtZiPD4LQsGnghwwdq1qmpWf0T5xQR4HwbRL9ZZA,1250
275
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d8_coilshield.pde,sha256=9XG0TcgZ7mComh_pVntnuzDldEx5PD-C7gqK05PTWus,1190
276
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d9_hybridDG.pde,sha256=vYschVRu5vC91YpyVZFCBFuno-ZlOcRznPD-OvJTLtQ,1551
277
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.in2d,sha256=lDCukUh9iTpkiH-qJAVdeAlMpiYF0AibAA6g3jOeWDY,533
278
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.vol,sha256=IUOhUrZi8WMnvrIJe--A8cYPN6mscslA8_4yxvKShb0,35724
279
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz,sha256=RuxM0vtYljoAImOH6U6avt0LmWaUbGNao37n8p_Yd1w,496477
280
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.geo,sha256=Y3OVQlWjgICe2Dwz6-Qs8r0tLanjwtWP0xFx5AwNRJk,2507
281
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.vol,sha256=IqViJ4hJKk3Uf66PkVJ-kHpBQ_ZpkigRuh5g1Po4euY,274741
282
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.in2d,sha256=5dewiEjTsRFiNkBlmaTjBAZejq55TTlusp8ALfTMc2M,209
283
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.vol,sha256=tWdPeQ52deUNgWOsWKhqgNVsJKhkJmEAVp5-xjhzEwg,9311
284
- ngsolve-6.2.2506.post74.dev0.dist-info/licenses/LICENSE,sha256=iFoD9UsVeWEjb0aEPnmXKr_NaJC2y7NovH7KMo_5WhI,26934
285
- ngsolve-6.2.2506.post74.dev0.dist-info/METADATA,sha256=30c1jJ5VA0Q-d7PkZxQWLLu8_1WQi8tCHEcZMkxjepc,326
286
- ngsolve-6.2.2506.post74.dev0.dist-info/WHEEL,sha256=3cUY9TiuvxHsB0dWaW6wa9MO8pP_yfFeO2_t7ly9aNg,96
287
- ngsolve-6.2.2506.post74.dev0.dist-info/top_level.txt,sha256=1llU44DxNIP85uPT4RChsIuV3h2d0_5j0Ui_Df5vV8E,15
288
- ngsolve-6.2.2506.post74.dev0.dist-info/RECORD,,
255
+ ngsolve/solvers/__init__.py,sha256=Vbm5RfIJ83nMtQ1pYJL0uBBuys4-mcY6b63MNkyiqxU,311
256
+ ngsolve/solvers/cudss.py,sha256=-1wiJhjW5ddtF2FyPzNXsm-e10jkc0f5VKtqXwsA0S0,2737
257
+ ngsolve-6.2.2506.post91.dev0.data/data/Scripts/ngsolve.tcl,sha256=8KBOXZKYU_qx8785PIjdmVjcUbCxR5aYrod0BZ4UgGc,21637
258
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/beam.geo,sha256=HTv0A6IUoVuavifolhGKY6U44z0hni07Htonqe6rw_A,404
259
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/beam.vol,sha256=QZbM9JE4rBs5nVXaw7ZAbDf60yXbX19bm1OnOScF57M,13834
260
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/chip.in2d,sha256=561AjEIPnlzMZHIzep5lRjocQDm8w7o7IDna5u8s9JQ,592
261
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/chip.vol,sha256=gkEmBWlQh8BkSFNTf-XISfmuGzHXDKANV4Uoww_BwJI,28511
262
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/coil.geo,sha256=ylB2OiWEZztFXPx99qTNRJKmZFIDPEezEgQt4EPtZRA,376
263
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/coil.vol,sha256=t8cWP_YX38FMw0S-7vEVUOcSH0VK6DlaqVWG_zmBo-4,147284
264
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/coilshield.geo,sha256=Sq8w7i22WQ0viaiM3bU_63lZGFWp8JgyDqs3RdjeTe0,629
265
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/coilshield.vol,sha256=JiZOM9A529-hikvv1kyLwffTRpeatLtaVTNcu42o1fo,165576
266
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/cube.geo,sha256=Wd9AnPdoQgjQ-JK6zmoXjsNxPR9B8ED4pdHVwmRoe1M,405
267
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/cube.vol,sha256=RS8bay_KlF6IZM0QDDr7_dGaFLqoxszQU_w8TYutMKY,92127
268
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde,sha256=lK3sXmK74eFEMk8F6hwFHe_tBYnOdRq3F-RbzKpDK0c,1354
269
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde,sha256=VuEQtkZaIJA9yuvjG_jcx1UB9UtAaZSoeJYFHcHeYxk,1141
270
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/d1_square.pde,sha256=24ZZ0nlbr5LKl_mPyeZZMSkiCBiBk1fzNElo3yITX2A,1072
271
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/d2_chip.pde,sha256=yGIbzuTdCEjdoC9Ig_hbcy5qz69_wxgPZeYmhY1rN7k,985
272
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/d3_helmholtz.pde,sha256=gWqQTh1M9NiKGohlu5JxDJuvRz-T28WlNSVbwmMvM-0,590
273
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/d4_cube.pde,sha256=6kL43ehAh1PdwnFlLjadg325bFjpz02p2PpAOxlDFuc,1079
274
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/d5_beam.pde,sha256=VQt9WbqAVWObFH9Jy1YieE9WHnVZ_hnsKVTz6ysEBxI,2059
275
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/d6_shaft.pde,sha256=y10nLFA2-GwEwnAs5R-8wppRq-09vYJ_C9LJ3DSvlS0,1974
276
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/d7_coil.pde,sha256=KFkqtZiPD4LQsGnghwwdq1qmpWf0T5xQR4HwbRL9ZZA,1250
277
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/d8_coilshield.pde,sha256=9XG0TcgZ7mComh_pVntnuzDldEx5PD-C7gqK05PTWus,1190
278
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/d9_hybridDG.pde,sha256=vYschVRu5vC91YpyVZFCBFuno-ZlOcRznPD-OvJTLtQ,1551
279
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/doubleglazing.in2d,sha256=lDCukUh9iTpkiH-qJAVdeAlMpiYF0AibAA6g3jOeWDY,533
280
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/doubleglazing.vol,sha256=IUOhUrZi8WMnvrIJe--A8cYPN6mscslA8_4yxvKShb0,35724
281
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz,sha256=RuxM0vtYljoAImOH6U6avt0LmWaUbGNao37n8p_Yd1w,496477
282
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/shaft.geo,sha256=Y3OVQlWjgICe2Dwz6-Qs8r0tLanjwtWP0xFx5AwNRJk,2507
283
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/shaft.vol,sha256=IqViJ4hJKk3Uf66PkVJ-kHpBQ_ZpkigRuh5g1Po4euY,274741
284
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/square.in2d,sha256=5dewiEjTsRFiNkBlmaTjBAZejq55TTlusp8ALfTMc2M,209
285
+ ngsolve-6.2.2506.post91.dev0.data/data/share/ngsolve/square.vol,sha256=tWdPeQ52deUNgWOsWKhqgNVsJKhkJmEAVp5-xjhzEwg,9311
286
+ ngsolve-6.2.2506.post91.dev0.dist-info/licenses/LICENSE,sha256=iFoD9UsVeWEjb0aEPnmXKr_NaJC2y7NovH7KMo_5WhI,26934
287
+ ngsolve-6.2.2506.post91.dev0.dist-info/METADATA,sha256=NbjVqbkgHtP67WjFNfJ_WSNoH34njPOZS49UxMzwJDM,326
288
+ ngsolve-6.2.2506.post91.dev0.dist-info/WHEEL,sha256=3cUY9TiuvxHsB0dWaW6wa9MO8pP_yfFeO2_t7ly9aNg,96
289
+ ngsolve-6.2.2506.post91.dev0.dist-info/top_level.txt,sha256=1llU44DxNIP85uPT4RChsIuV3h2d0_5j0Ui_Df5vV8E,15
290
+ ngsolve-6.2.2506.post91.dev0.dist-info/RECORD,,
File without changes