ngsolve 6.2.2506.post74.dev0__cp314-cp314-macosx_10_15_universal2.whl → 6.2.2506.post85.dev0__cp314-cp314-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.

Potentially problematic release.


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

Files changed (60) hide show
  1. netgen/include/sparsefactorization_interface.hpp +153 -0
  2. netgen/include/statushandler.hpp +8 -8
  3. netgen/libngbla.dylib +0 -0
  4. netgen/libngcomp.dylib +0 -0
  5. netgen/libngfem.dylib +0 -0
  6. netgen/libngla.dylib +0 -0
  7. netgen/libngsbem.dylib +0 -0
  8. netgen/libngsolve.dylib +0 -0
  9. netgen/libngstd.dylib +0 -0
  10. ngsolve/__init__.pyi +2 -2
  11. ngsolve/cmake/NGSolveConfig.cmake +1 -1
  12. ngsolve/cmake/ngsolve-targets.cmake +15 -8
  13. ngsolve/config/__init__.pyi +6 -6
  14. ngsolve/config/config.py +5 -5
  15. ngsolve/config/config.pyi +6 -6
  16. ngsolve/directsolvers.py +9 -21
  17. ngsolve/directsolvers.pyi +5 -8
  18. ngsolve/la.pyi +14 -1
  19. ngsolve/solvers/cudss.py +74 -0
  20. ngsolve/utils.pyi +1 -1
  21. {ngsolve-6.2.2506.post74.dev0.dist-info → ngsolve-6.2.2506.post85.dev0.dist-info}/METADATA +2 -2
  22. {ngsolve-6.2.2506.post74.dev0.dist-info → ngsolve-6.2.2506.post85.dev0.dist-info}/RECORD +60 -58
  23. /ngsolve/{solvers.py → solvers/__init__.py} +0 -0
  24. /ngsolve/{solvers.pyi → solvers/__init__.pyi} +0 -0
  25. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/Netgen.icns +0 -0
  26. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/bin/ngscxx +0 -0
  27. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/bin/ngsld +0 -0
  28. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/bin/ngsolve.tcl +0 -0
  29. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/bin/ngspy +0 -0
  30. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/beam.geo +0 -0
  31. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/beam.vol +0 -0
  32. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/chip.in2d +0 -0
  33. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/chip.vol +0 -0
  34. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/coil.geo +0 -0
  35. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/coil.vol +0 -0
  36. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/coilshield.geo +0 -0
  37. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/coilshield.vol +0 -0
  38. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/cube.geo +0 -0
  39. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/cube.vol +0 -0
  40. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d10_DGdoubleglazing.pde +0 -0
  41. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d11_chip_nitsche.pde +0 -0
  42. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d1_square.pde +0 -0
  43. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d2_chip.pde +0 -0
  44. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d3_helmholtz.pde +0 -0
  45. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d4_cube.pde +0 -0
  46. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d5_beam.pde +0 -0
  47. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d6_shaft.pde +0 -0
  48. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d7_coil.pde +0 -0
  49. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d8_coilshield.pde +0 -0
  50. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d9_hybridDG.pde +0 -0
  51. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/doubleglazing.in2d +0 -0
  52. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/doubleglazing.vol +0 -0
  53. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
  54. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/shaft.geo +0 -0
  55. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/shaft.vol +0 -0
  56. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/square.in2d +0 -0
  57. {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/square.vol +0 -0
  58. {ngsolve-6.2.2506.post74.dev0.dist-info → ngsolve-6.2.2506.post85.dev0.dist-info}/WHEEL +0 -0
  59. {ngsolve-6.2.2506.post74.dev0.dist-info → ngsolve-6.2.2506.post85.dev0.dist-info}/licenses/LICENSE +0 -0
  60. {ngsolve-6.2.2506.post74.dev0.dist-info → ngsolve-6.2.2506.post85.dev0.dist-info}/top_level.txt +0 -0
@@ -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/libngbla.dylib CHANGED
Binary file
netgen/libngcomp.dylib CHANGED
Binary file
netgen/libngfem.dylib CHANGED
Binary file
netgen/libngla.dylib CHANGED
Binary file
netgen/libngsbem.dylib CHANGED
Binary file
netgen/libngsolve.dylib CHANGED
Binary file
netgen/libngstd.dylib CHANGED
Binary file
ngsolve/__init__.pyi CHANGED
@@ -44,8 +44,8 @@ from ngsolve.comp import HDiv
44
44
  from ngsolve.comp import HDivDiv
45
45
  from ngsolve.comp import HDivDivSurface
46
46
  from ngsolve.comp import HDivSurface
47
- from ngsolve.comp import Hidden
48
47
  from ngsolve.comp import Hidden as PrivateSpace
48
+ from ngsolve.comp import Hidden
49
49
  from ngsolve.comp import Integrate
50
50
  from ngsolve.comp import Interpolate
51
51
  from ngsolve.comp import L2
@@ -219,7 +219,7 @@ TET: fem.ET # value = <ET.TET: 20>
219
219
  TRIG: fem.ET # value = <ET.TRIG: 10>
220
220
  VERTEX: fem.NODE_TYPE # value = <NODE_TYPE.VERTEX: 0>
221
221
  VOL: comp.VorB # value = <VorB.VOL: 0>
222
- __version__: str = '6.2.2506-74-gd430159c1'
222
+ __version__: str = '6.2.2506-85-g5e4fc20dd'
223
223
  ds: comp.DifferentialSymbol # value = <ngsolve.comp.DifferentialSymbol object>
224
224
  dx: comp.DifferentialSymbol # value = <ngsolve.comp.DifferentialSymbol object>
225
225
  ngsglobals: comp.GlobalVariables # value = <ngsolve.comp.GlobalVariables object>
@@ -1,4 +1,4 @@
1
- set(PACKAGE_VERSION "6.2.2506-74-gd430159c1")
1
+ set(PACKAGE_VERSION "6.2.2506-85-g5e4fc20dd")
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
@@ -74,7 +81,7 @@ add_library(ngstd SHARED IMPORTED)
74
81
  set_target_properties(ngstd PROPERTIES
75
82
  INTERFACE_COMPILE_DEFINITIONS "HAVE_NETGEN_SOURCES;HAVE_DLFCN_H;HAVE_CXA_DEMANGLE;USE_TIMEOFDAY;MSG_NOSIGNAL=0;TCL;LAPACK;NGS_PYTHON;USE_UMFPACK"
76
83
  INTERFACE_COMPILE_OPTIONS "\$<\$<COMPILE_LANGUAGE:CXX>:-std=c++17>;\$<\$<COMPILE_LANGUAGE:CXX>:-Wno-undefined-var-template;-Wno-vla-extension>;-DMAX_SYS_DIM=3"
77
- INTERFACE_LINK_LIBRARIES "netgen_libs"
84
+ INTERFACE_LINK_LIBRARIES "netgen_core_lib"
78
85
  )
79
86
 
80
87
  # Create imported target ngbla
@@ -109,14 +116,14 @@ set_target_properties(ngsbem PROPERTIES
109
116
  add_library(ngcomp SHARED IMPORTED)
110
117
 
111
118
  set_target_properties(ngcomp PROPERTIES
112
- INTERFACE_LINK_LIBRARIES "ngfem;ngla;ngbla;ngstd"
119
+ INTERFACE_LINK_LIBRARIES "ngfem;ngla;ngbla;ngstd;netgen_lib"
113
120
  )
114
121
 
115
122
  # Create imported target ngsolve
116
123
  add_library(ngsolve SHARED IMPORTED)
117
124
 
118
125
  set_target_properties(ngsolve PROPERTIES
119
- INTERFACE_LINK_LIBRARIES "netgen_libs;ngsolve;ngcomp;ngfem;ngsbem;ngbla;ngla;ngstd"
126
+ INTERFACE_LINK_LIBRARIES "netgen_lib;netgen_core_lib;ngsolve;ngcomp;ngfem;ngsbem;ngbla;ngla;ngstd"
120
127
  )
121
128
 
122
129
  if(CMAKE_VERSION VERSION_LESS 3.0.0)
@@ -24,14 +24,14 @@ NGSOLVE_INSTALL_DIR_INCLUDE: str = 'netgen/include'
24
24
  NGSOLVE_INSTALL_DIR_LIB: str = 'netgen'
25
25
  NGSOLVE_INSTALL_DIR_PYTHON: str = '.'
26
26
  NGSOLVE_INSTALL_DIR_RES: str = 'share'
27
- NGSOLVE_VERSION: str = '6.2.2506-74-gd430159c1'
28
- NGSOLVE_VERSION_GIT: str = 'v6.2.2506-74-gd430159c1'
29
- NGSOLVE_VERSION_HASH: str = 'gd430159c1'
27
+ NGSOLVE_VERSION: str = '6.2.2506-85-g5e4fc20dd'
28
+ NGSOLVE_VERSION_GIT: str = 'v6.2.2506-85-g5e4fc20dd'
29
+ NGSOLVE_VERSION_HASH: str = 'g5e4fc20dd'
30
30
  NGSOLVE_VERSION_MAJOR: str = '6'
31
31
  NGSOLVE_VERSION_MINOR: str = '2'
32
32
  NGSOLVE_VERSION_PATCH: str = '2506'
33
- NGSOLVE_VERSION_PYTHON: str = '6.2.2506.post74.dev0'
34
- NGSOLVE_VERSION_TWEAK: str = '74'
33
+ NGSOLVE_VERSION_PYTHON: str = '6.2.2506.post85.dev0'
34
+ NGSOLVE_VERSION_TWEAK: str = '85'
35
35
  USE_CCACHE: bool = True
36
36
  USE_HYPRE: bool = False
37
37
  USE_LAPACK: bool = True
@@ -40,4 +40,4 @@ USE_MUMPS: bool = False
40
40
  USE_PARDISO: bool = False
41
41
  USE_UMFPACK: bool = True
42
42
  is_python_package: bool = True
43
- version: str = 'v6.2.2506-74-gd430159c1'
43
+ version: str = 'v6.2.2506-85-g5e4fc20dd'
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-85-g5e4fc20dd"
33
+ NGSOLVE_VERSION_GIT = "v6.2.2506-85-g5e4fc20dd"
34
+ NGSOLVE_VERSION_PYTHON = "6.2.2506.post85.dev0"
35
35
 
36
36
  NGSOLVE_VERSION_MAJOR = "6"
37
37
  NGSOLVE_VERSION_MINOR = "2"
38
- NGSOLVE_VERSION_TWEAK = "74"
38
+ NGSOLVE_VERSION_TWEAK = "85"
39
39
  NGSOLVE_VERSION_PATCH = "2506"
40
- NGSOLVE_VERSION_HASH = "gd430159c1"
40
+ NGSOLVE_VERSION_HASH = "g5e4fc20dd"
41
41
 
42
42
  CMAKE_CXX_COMPILER = "/Library/Developer/CommandLineTools/usr/bin/c++"
43
43
  CMAKE_CUDA_COMPILER = ""
ngsolve/config/config.pyi CHANGED
@@ -26,14 +26,14 @@ NGSOLVE_INSTALL_DIR_INCLUDE: str = 'netgen/include'
26
26
  NGSOLVE_INSTALL_DIR_LIB: str = 'netgen'
27
27
  NGSOLVE_INSTALL_DIR_PYTHON: str = '.'
28
28
  NGSOLVE_INSTALL_DIR_RES: str = 'share'
29
- NGSOLVE_VERSION: str = '6.2.2506-74-gd430159c1'
30
- NGSOLVE_VERSION_GIT: str = 'v6.2.2506-74-gd430159c1'
31
- NGSOLVE_VERSION_HASH: str = 'gd430159c1'
29
+ NGSOLVE_VERSION: str = '6.2.2506-85-g5e4fc20dd'
30
+ NGSOLVE_VERSION_GIT: str = 'v6.2.2506-85-g5e4fc20dd'
31
+ NGSOLVE_VERSION_HASH: str = 'g5e4fc20dd'
32
32
  NGSOLVE_VERSION_MAJOR: str = '6'
33
33
  NGSOLVE_VERSION_MINOR: str = '2'
34
34
  NGSOLVE_VERSION_PATCH: str = '2506'
35
- NGSOLVE_VERSION_PYTHON: str = '6.2.2506.post74.dev0'
36
- NGSOLVE_VERSION_TWEAK: str = '74'
35
+ NGSOLVE_VERSION_PYTHON: str = '6.2.2506.post85.dev0'
36
+ NGSOLVE_VERSION_TWEAK: str = '85'
37
37
  USE_CCACHE: bool = True
38
38
  USE_HYPRE: bool = False
39
39
  USE_LAPACK: bool = True
@@ -42,4 +42,4 @@ USE_MUMPS: bool = False
42
42
  USE_PARDISO: bool = False
43
43
  USE_UMFPACK: bool = True
44
44
  is_python_package: bool = True
45
- version: str = 'v6.2.2506-74-gd430159c1'
45
+ version: str = 'v6.2.2506-85-g5e4fc20dd'
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/directsolvers.pyi CHANGED
@@ -1,15 +1,12 @@
1
1
  from __future__ import annotations
2
+ import ngsolve as ngsolve
2
3
  from ngsolve.comp import BilinearForm
3
- import ngsolve.la
4
4
  from ngsolve.la import BaseMatrix
5
5
  from ngsolve.la import BaseVector
6
- import pyngcore.pyngcore
7
6
  from pyngcore.pyngcore import BitArray
8
- __all__: list[str] = ['BaseMatrix', 'BaseVector', 'BilinearForm', 'BitArray', 'SuperLU']
9
- class SuperLU(ngsolve.la.BaseMatrix):
10
- def Mult(self, x: ngsolve.la.BaseVector, y: ngsolve.la.BaseVector):
7
+ __all__: list[str] = ['BaseMatrix', 'BaseVector', 'BilinearForm', 'BitArray', 'SuperLU', 'ngsolve']
8
+ class SuperLU(ngsolve.la.SparseFactorizationInterface):
9
+ def Factor(self):
11
10
  ...
12
- def Update(self):
13
- ...
14
- def __init__(self, a, freedofs: pyngcore.pyngcore.BitArray = None):
11
+ def Solve(self, rhs, sol):
15
12
  ...
ngsolve/la.pyi CHANGED
@@ -9,7 +9,7 @@ import numpy
9
9
  import numpy.typing
10
10
  import pyngcore.pyngcore
11
11
  import typing
12
- __all__: list[str] = ['ArnoldiSolver', 'BaseMatrix', 'BaseSparseMatrix', 'BaseVector', 'BlockMatrix', 'BlockSmoother', 'BlockVector', 'CGSolver', 'ChebyshevIteration', 'ConstEBEMatrix', 'CreateParallelVector', 'CreateVVector', 'CumulationOperator', 'DiagonalMatrix', 'DoArchive', 'DofRange', 'DynamicVectorExpression', 'EigenValues_Preconditioner', 'Embedding', 'EmbeddingTranspose', 'FETI_Jump', 'GMRESSolver', 'GetAvailableSolvers', 'IdentityMatrix', 'InnerProduct', 'KrylovSpaceSolver', 'LoggingMatrix', 'MultiVector', 'MultiVectorExpr', 'PARALLEL_STATUS', 'ParallelDofs', 'ParallelMatrix', 'PermutationMatrix', 'ProductMatrix', 'Projector', 'QMRSolver', 'QMRSolverC', 'QMRSolverD', 'Real2ComplexMatrix', 'S_BaseMatrixC', 'S_BaseMatrixD', 'ScaleMatrix', 'Smoother', 'SparseCholesky_c', 'SparseCholesky_d', 'SparseFactorization', 'SparseMatrixDynamic', 'SparseMatrixN5ngbla3MatILi2ELi2ENSt3__17complexIdEEEE', 'SparseMatrixN5ngbla3MatILi2ELi2EdEE', 'SparseMatrixN5ngbla3MatILi3ELi3ENSt3__17complexIdEEEE', 'SparseMatrixN5ngbla3MatILi3ELi3EdEE', 'SparseMatrixNSt3__17complexIdEE', 'SparseMatrixSymmetricN5ngbla3MatILi2ELi2ENSt3__17complexIdEEEE', 'SparseMatrixSymmetricN5ngbla3MatILi2ELi2EdEE', 'SparseMatrixSymmetricN5ngbla3MatILi3ELi3ENSt3__17complexIdEEEE', 'SparseMatrixSymmetricN5ngbla3MatILi3ELi3EdEE', 'SparseMatrixSymmetricNSt3__17complexIdEE', 'SparseMatrixSymmetricd', 'SparseMatrixVariableBlocks', 'SparseMatrixd', 'SumMatrix', 'SymmetricBlockGaussSeidelPreconditioner', 'SymmetricGaussSeidelPreconditioner', 'TransposeMatrix']
12
+ __all__: list[str] = ['ArnoldiSolver', 'BaseMatrix', 'BaseSparseMatrix', 'BaseVector', 'BlockMatrix', 'BlockSmoother', 'BlockVector', 'CGSolver', 'ChebyshevIteration', 'ConstEBEMatrix', 'CreateParallelVector', 'CreateVVector', 'CumulationOperator', 'DiagonalMatrix', 'DoArchive', 'DofRange', 'DynamicVectorExpression', 'EigenValues_Preconditioner', 'Embedding', 'EmbeddingTranspose', 'FETI_Jump', 'GMRESSolver', 'GetAvailableSolvers', 'IdentityMatrix', 'InnerProduct', 'KrylovSpaceSolver', 'LoggingMatrix', 'MultiVector', 'MultiVectorExpr', 'PARALLEL_STATUS', 'ParallelDofs', 'ParallelMatrix', 'PermutationMatrix', 'ProductMatrix', 'Projector', 'QMRSolver', 'QMRSolverC', 'QMRSolverD', 'Real2ComplexMatrix', 'RegisterInverseType', 'S_BaseMatrixC', 'S_BaseMatrixD', 'ScaleMatrix', 'Smoother', 'SparseCholesky_c', 'SparseCholesky_d', 'SparseFactorization', 'SparseFactorizationInterface', 'SparseMatrixDynamic', 'SparseMatrixN5ngbla3MatILi2ELi2ENSt3__17complexIdEEEE', 'SparseMatrixN5ngbla3MatILi2ELi2EdEE', 'SparseMatrixN5ngbla3MatILi3ELi3ENSt3__17complexIdEEEE', 'SparseMatrixN5ngbla3MatILi3ELi3EdEE', 'SparseMatrixNSt3__17complexIdEE', 'SparseMatrixSymmetricN5ngbla3MatILi2ELi2ENSt3__17complexIdEEEE', 'SparseMatrixSymmetricN5ngbla3MatILi2ELi2EdEE', 'SparseMatrixSymmetricN5ngbla3MatILi3ELi3ENSt3__17complexIdEEEE', 'SparseMatrixSymmetricN5ngbla3MatILi3ELi3EdEE', 'SparseMatrixSymmetricNSt3__17complexIdEE', 'SparseMatrixSymmetricd', 'SparseMatrixVariableBlocks', 'SparseMatrixd', 'SumMatrix', 'SymmetricBlockGaussSeidelPreconditioner', 'SymmetricGaussSeidelPreconditioner', 'TransposeMatrix']
13
13
  class BaseMatrix:
14
14
  def AsVector(self) -> BaseVector:
15
15
  """
@@ -857,6 +857,17 @@ class SparseFactorization(BaseMatrix):
857
857
  """
858
858
  perform smoothing step (needs non-symmetric storage so symmetric sparse matrix)
859
859
  """
860
+ class SparseFactorizationInterface(BaseMatrix):
861
+ def Analyze(self) -> None:
862
+ ...
863
+ def Factor(self) -> None:
864
+ ...
865
+ def GetInnerMatrix(self) -> BaseSparseMatrix:
866
+ ...
867
+ def Update(self) -> None:
868
+ ...
869
+ def __init__(self, mat: SparseMatrixd, freedofs: pyngcore.pyngcore.BitArray = None) -> None:
870
+ ...
860
871
  class SparseMatrixDynamic(BaseMatrix):
861
872
  def __init__(self, arg0: BaseMatrix) -> None:
862
873
  ...
@@ -1228,3 +1239,5 @@ def QMRSolver(mat: BaseMatrix, pre: BaseMatrix, printrates: bool = True, precisi
1228
1239
  maxsteps : int
1229
1240
  input maximal steps. QMRSolver stops after this steps.
1230
1241
  """
1242
+ def RegisterInverseType(arg0: str, arg1: typing.Any) -> None:
1243
+ ...
@@ -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)
ngsolve/utils.pyi CHANGED
@@ -48,8 +48,8 @@ from ngsolve.comp import HDiv
48
48
  from ngsolve.comp import HDivDiv
49
49
  from ngsolve.comp import HDivDivSurface
50
50
  from ngsolve.comp import HDivSurface
51
- from ngsolve.comp import Hidden
52
51
  from ngsolve.comp import Hidden as PrivateSpace
52
+ from ngsolve.comp import Hidden
53
53
  from ngsolve.comp import Integral
54
54
  from ngsolve.comp import Integrate
55
55
  from ngsolve.comp import IntegrationRuleSpace
@@ -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.post85.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.post14.dev0
9
9
  Dynamic: author
10
10
  Dynamic: license
11
11
  Dynamic: license-file
@@ -1,10 +1,10 @@
1
- netgen/libngbla.dylib,sha256=tHwwlA8QcfqjuR31pDjLvFmHTrwwXm0POEaRI_QEIrE,6074048
2
- netgen/libngcomp.dylib,sha256=6fotgy8_KHMqABclDD-H7qBo-hsBV6KM4myYZofEquc,44843600
3
- netgen/libngfem.dylib,sha256=Ylq3AxF92BB_SifinkMe2gmQMaa-3q3nh-OtKBx49UA,52089120
4
- netgen/libngla.dylib,sha256=BKcnVJ4HNwnU8hSedoXH2Yla9-Z6-jwglC_G1Ibzn0s,26240032
5
- netgen/libngsbem.dylib,sha256=3Bg2GcvgLUuMj4sz0EjqRSP16Pu0sgz8Fz0W972_uRY,9730256
6
- netgen/libngsolve.dylib,sha256=BfLmGL3ZZD6TikxL4LkERDLZhoFQ3a3w_G_TfHgWAeQ,1104240
7
- netgen/libngstd.dylib,sha256=aVKpRO90dARthddCixNs8lHZYX6JJRVM4zNOai_iIM0,1042048
1
+ netgen/libngbla.dylib,sha256=QNZ85UL-jUeqvbYgM6kCbxveog1ZSBKNpd_-Px92Jg4,6074048
2
+ netgen/libngcomp.dylib,sha256=j76_3vAWAZEGASd-Y5e7hd4HKIwHVtEKGANOnD5d8QU,44903456
3
+ netgen/libngfem.dylib,sha256=5mSjYw8ILWFYOZNGInFLfhQh8P98ubXpEmR0WsqscYU,52089120
4
+ netgen/libngla.dylib,sha256=tr2YSFdz4-pWN40nvUXGWk8uEzAXKYR_Bmi7wt-FICs,26369984
5
+ netgen/libngsbem.dylib,sha256=R8n4Rdnt6EDp1Zrq-VsgYvQrm0r373ULCcZFwrPpQxM,9730256
6
+ netgen/libngsolve.dylib,sha256=WQr_OTdy_si2StOf6ycUXK616A5hMUFfyRIVt5wnL-4,1104240
7
+ netgen/libngstd.dylib,sha256=hyC8IU-_kI05kHww9eJz0p-1IlhxwP0rr2go10pELCc,1042384
8
8
  netgen/include/analytic_integrals.hpp,sha256=xLVJ8n0-t6UlU_yKE8i0vYkXilsNuqVixkzJlmxptKw,238
9
9
  netgen/include/arnoldi.hpp,sha256=b8mRu9wGyaLa7z6mXCFIhxfW_xcQvsOMD6TqbfYZ05g,1437
10
10
  netgen/include/bandmatrix.hpp,sha256=zwKz89QY53MPsWgNsl0cXEAFKka_W4sXPIO54M3eT80,7778
@@ -164,12 +164,13 @@ netgen/include/simd_complex.hpp,sha256=1L_WGuaYlR_xQdMMC4o0_aBX484GqrLuShG7pHG4i
164
164
  netgen/include/smoother.hpp,sha256=hZAe15R6BU88hMfhcTM3-eclRgzmHJnPKgYYWol9Sx8,6643
165
165
  netgen/include/solve.hpp,sha256=OZQfkg6HN20eudQ4kkRSecr-miwV35NPEjAtoMcunG4,2034
166
166
  netgen/include/sparsecholesky.hpp,sha256=2HKM6aKO02YX32jxGna6CAjBBfeXvCsmPk4hoWZWIQk,8888
167
+ netgen/include/sparsefactorization_interface.hpp,sha256=Hi6toUHpgKDCo4zqhZNSLbz1qOY_z3FqJVHcXCz-pjY,4143
167
168
  netgen/include/sparsematrix.hpp,sha256=3FCqp4zDtgi0CnrLdmmxzHiiub4jpIqg4yR1-eWQc8Q,32741
168
169
  netgen/include/sparsematrix_dyn.hpp,sha256=u9aWEYl6PhrevL9SPSXVE22_EIwIduDDvzY8xgIsw4Q,2656
169
170
  netgen/include/sparsematrix_impl.hpp,sha256=neN0xhP5nkT90B3U-u2uX2dgqU3l6m_zhsAihI8XtF0,30219
170
171
  netgen/include/special_matrix.hpp,sha256=1moUjxQ_uaS-GWrSbrbN4c8N3pDma9UpSaFqrNUXV80,16526
171
172
  netgen/include/specialelement.hpp,sha256=iiQaIE-cHbwGX014jET8k-rfb8k1GT6Gs_vsMIBWaOA,3226
172
- netgen/include/statushandler.hpp,sha256=Lh0Cevr7xnEoFW4QhTlNzEq9brpneGGmjAbv9o1kotY,646
173
+ netgen/include/statushandler.hpp,sha256=DTwByT_TMdV6jC3JMxw-_kxd9xtUtkKrcEF8ysI53CQ,671
173
174
  netgen/include/stringops.hpp,sha256=QiiQAFqB87FhxuMO_sigJU7L6FHfE3ebBy-cngouf_U,262
174
175
  netgen/include/superluinverse.hpp,sha256=FDSnHdTbVFDsFPF6B56IZJPDQKZx4fp2OubRQjE5_TU,3165
175
176
  netgen/include/symbolicintegrator.hpp,sha256=6LYXezRPon5_7RUSwT9tcqMZXI7ee72XTZ7G08MZ5sw,36047
@@ -199,20 +200,20 @@ ngsolve/TensorProductTools.py,sha256=PKwn8c1LLeqFhPyhWtI01JZNztVz5_5sKQUYdnZgo5w
199
200
  ngsolve/__console.py,sha256=8vkdKt1TaOxfSk-n8-4xeI4ATkaVIggYMEiZjxOtyWY,2889
200
201
  ngsolve/__expr.py,sha256=ZJFhvQ6S14AAwm3dVyEy-ixMwPw_ZOhMnOqyfXNVKnw,4215
201
202
  ngsolve/__init__.py,sha256=jiKgjpR98P6_MojCVJKnSRGkr1gbZ0fY3tdLCnoPLec,5472
202
- ngsolve/__init__.pyi,sha256=8Dw-9h3IXIarmLziAUinjsYzle2-7z8RVuQDtAu9G9M,10780
203
+ ngsolve/__init__.pyi,sha256=LTYpi00lvGyv9A3Mv5zrrKv9xnAp1czNEKR8KHLLRC4,10780
203
204
  ngsolve/_scikit_build_core_dependencies.py,sha256=3a7XNqFjWNfA4ADwcNA7NhatXcHY2aHf1RuGtaFmmks,735
204
205
  ngsolve/bla.pyi,sha256=cbPkROXiUqXTlgzWELP5XNSD7VejkJkU_PzBLSjGmHk,34871
205
206
  ngsolve/bvp.py,sha256=oRcYhe17uOl3G2zTwf4CYsMDUTcFs0wb4AYu_cKADtk,1987
206
207
  ngsolve/bvp.pyi,sha256=aLNkJoB0_PjqOcGPAbaH3SYcB-_edXHI28hhUmGi1EE,848
207
- ngsolve/directsolvers.py,sha256=ilZmA6_fQulvPZmstKfuyCFI8cj9neEleqKUHxqFpQw,995
208
- ngsolve/directsolvers.pyi,sha256=bBFQwfMAIMkrhXpn0sra65Dqa_Q5G-sWYucLPPfMIgE,552
208
+ ngsolve/directsolvers.py,sha256=Jyx3-M8VVspuKcNkdB_-sdBx8B5BmnbtqshLTI9wnns,512
209
+ ngsolve/directsolvers.pyi,sha256=w1bIQoPccTDZNdyyiTnZJIFVhhB_AC2pxMy-kwiisKA,439
209
210
  ngsolve/eigenvalues.py,sha256=sQ8cgtK2wRoSVU2OrR3NdJWf1OmLS-KbDnm5K9Av74s,9309
210
211
  ngsolve/eigenvalues.pyi,sha256=1KjOTo6mr4N5gI_TlE9tBKlfuqv5oUEw59Stsze_fHE,1101
211
212
  ngsolve/fem.pyi,sha256=Qxo8wbbt6eSUueAhjeGAAJlmZblNcOtnxEPJcM6zjqc,50716
212
213
  ngsolve/internal.py,sha256=bXUxNpvi4zaskEt9QJ_IEiv_Hn43kg5JVv1wmMUYBfE,5113
213
214
  ngsolve/krylovspace.py,sha256=wBSsE4-lmBnJsiNU1BYBKjfYgFAcqR1Ioe84DMwIjIM,31863
214
215
  ngsolve/krylovspace.pyi,sha256=a0ZR3mtKfvcJmSyM11RQmjhsbxvPDGAA6QiwH2rR3Ss,11861
215
- ngsolve/la.pyi,sha256=_kZIEZWMYxt_JrB5sWnOinUoNIsON4b2UnTqpLwdf-g,42057
216
+ ngsolve/la.pyi,sha256=rcVnCJTqdsKOyOF6NtdjBJB7lz1tlFJqkf3_JxZnOi8,42528
216
217
  ngsolve/meshes.py,sha256=fxxtbxkfKuO2nUkXUiYwAwBAVxr9gkdnyIbZX3VpITQ,26786
217
218
  ngsolve/ngs2petsc.py,sha256=6978Z7Na6eMOZ5NTEZx0ZVflyX6Kyy4gPQT_9RYuNss,12499
218
219
  ngsolve/ngscxx.py,sha256=q3t5DgE3sJazWueas8FTXJ9jZM-LVa9KbGj_RTam6V4,1293
@@ -225,25 +226,23 @@ ngsolve/preconditioners.pyi,sha256=BeDsdg-5SuAs1xEbNKlNu-v6-SqjVJRwqoZWQxi-35M,3
225
226
  ngsolve/solve.pyi,sha256=Dh2vX0lTTVBYuRU4RDH51AZYAwzTAMg_7H0wKn6bomE,3176
226
227
  ngsolve/solve_implementation.py,sha256=-yyggHGmivv_hhSfRpShFqfWw2SOECpR3BMvccidvE4,5540
227
228
  ngsolve/solve_implementation.pyi,sha256=DgDtSaF6sFSiUGZ76BfW_HeJxl54Vdl7lYt9PRaRkUg,1717
228
- ngsolve/solvers.py,sha256=WgZ9X1x9mtQegXDu8VcTjP-wbS2EnrUS96Y8LXqeflw,304
229
- ngsolve/solvers.pyi,sha256=yQJVNUrj9MiBy0wTkiMUurnhqI_lAlIfpnZYSQwgDHU,693
230
229
  ngsolve/timestepping.py,sha256=SLbsgE5pY5tXYTLGlVypk4kS2Ui8GxOwWmKVxqneZRU,8350
231
230
  ngsolve/timestepping.pyi,sha256=48tRnkCKuKXkpQaYobryM353ES7zJnEdC4GwWfPgSpQ,2374
232
231
  ngsolve/timing.py,sha256=Xqkq2byJjNNK9vJjHG2O3cMf6xuKIyySjk8yv6Le2T8,3985
233
232
  ngsolve/timing.pyi,sha256=4ZhzAFoo_TqYcnYhQQIKbXvWZ13PosUw1bFwNBsytIU,1773
234
233
  ngsolve/utils.py,sha256=V2yVF4K3uv1007-DEs_GrzJ3BOOh09c4lDGGR1Xw-PU,4557
235
- ngsolve/utils.pyi,sha256=cPBxDgZU3xZ04L_Dz9MzfWUqWHyL7RBPGbLgzvnzrAk,13323
234
+ ngsolve/utils.pyi,sha256=lZat15zVQcZGf9NGa0mVxMha_zDuksuYW3UmpzCZc7g,13323
236
235
  ngsolve/webgui.py,sha256=EUhaOtWHZy80aLXhXbHwbCQVNjRSw-BAAE50cz7Ydaw,24313
237
- ngsolve/cmake/NGSolveConfig.cmake,sha256=NmLM5cDtHSwzWxLyLu_DPn9VcgSmjbQgNYcTLHtkpVk,5107
236
+ ngsolve/cmake/NGSolveConfig.cmake,sha256=1iECqgm_7K17jGdzceszJSaqW9YyOXfBc6fEzFi6-c4,5107
238
237
  ngsolve/cmake/ngsolve-targets-release.cmake,sha256=2dUHzaaMQX08eT7Tjti0crzp_Ah3oqW86gp5UgSufmw,3426
239
- ngsolve/cmake/ngsolve-targets.cmake,sha256=1cQTFW-4aJfY356XRcuslSbFClmwPOSS03bj3WL15iM,5637
238
+ ngsolve/cmake/ngsolve-targets.cmake,sha256=M4iqepKAN5cMIPI7M3pavgHAx75siSAWiI4rPCnyrOo,5850
240
239
  ngsolve/comp/__init__.pyi,sha256=ypTT4cgm_6j_ggzIRayOVaElbIdubMw03Rk3FQs_aBI,206632
241
240
  ngsolve/comp/pml.pyi,sha256=jrfPBfYDeLQKh59VJu0mS2iGrU08YIZw0m2hH7GQpIE,2745
242
241
  ngsolve/config/__init__.py,sha256=A00lpnUKg-q3y_b-cN3jKF9urkGTGjb2Yz_gGc9WCLs,22
243
- ngsolve/config/__init__.pyi,sha256=AVhNdU6VVCheLSP3wswkFjynKi2WvSnCVQMPdwiapOc,2921
242
+ ngsolve/config/__init__.pyi,sha256=kjkXE0jiIDjBw-DFUI5LnOHAVicZnEkL7s50GAbvMqs,2921
244
243
  ngsolve/config/__main__.py,sha256=m8k2RrXnXR5oYaUna1dwkKNhOZBiM7EyFSE9kIcZKvo,89
245
- ngsolve/config/config.py,sha256=9gIlcz_xfHuPntwgdK2Iry8YD3tlZb2fjouUkTMqtm8,2467
246
- ngsolve/config/config.pyi,sha256=H8bBwdx9_0_XMLArNf29biWzdxyrNy4nkStrkDHSOSc,2902
244
+ ngsolve/config/config.py,sha256=GdNWGrEia-n7auofyDN8elUemr4aR7pBrXYUrEuMLEk,2467
245
+ ngsolve/config/config.pyi,sha256=oOQGZFh_aSsIU3W7LuZPTe8rDK8pkNPGnJEUV2hClas,2902
247
246
  ngsolve/demos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
248
247
  ngsolve/demos/TensorProduct/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
249
248
  ngsolve/demos/TensorProduct/tp_dg_1d_1d.py,sha256=CrJCkbJNinVYUL3DO-4DnCAMGSAhegNc0QVWiJTk3Js,2109
@@ -275,41 +274,44 @@ ngsolve/demos/mpi/mpi_cmagnet.py,sha256=HuN4lttA2q2kNWss6LZNUKraHqskRQNVEBRjkrU2
275
274
  ngsolve/demos/mpi/mpi_navierstokes.py,sha256=Sct0G6EziYVfeIeSa7_b6r3WiYXcxZekoOGsZQALx-c,2911
276
275
  ngsolve/demos/mpi/mpi_poisson.py,sha256=UvXODjpWtqIgqq7lvMJf3ZEoJZLY1Dck-82R7auiW6I,2468
277
276
  ngsolve/demos/mpi/mpi_timeDG.py,sha256=TPJZ-DwmzOpuAol-fFKeU-R2rJ74MbjOm3DDkQI9BcY,1881
278
- ngsolve-6.2.2506.post74.dev0.data/data/Netgen.icns,sha256=Ebqct4LKxLzxdJLwGg0tTUQb1VjLwkKhtmdYhpRhKjg,291475
279
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngscxx,sha256=P9QK6KWtOsMYY_c5tCCN_64WtTEMwdTT-XzIOcOlUCs,1755
280
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngsld,sha256=50UErkFWLTocn8GtZDTkUWmPTIqsoK5lcfBGwyP0Vnc,557
281
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngsolve.tcl,sha256=SSBYLyp4zgl6eM17LXIiLoj1Doy-h2s4EZg6oKi6ucA,20995
282
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngspy,sha256=1QO6MhemomQxnx_uf1om4uU784PHa5c6bLuqqnn2v9s,103
283
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.geo,sha256=EtxklGAIo6SxZlHHC_FZHoQGZqZUDGJQSheEMFO-bJ8,387
284
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.vol,sha256=aotG4VA7sIgAsPQsYkzbMP1Jta_TddG2gMCblkSPkqc,13594
285
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.in2d,sha256=g6C-mcoD8-q9JtZpuh4mf4iFEZUIGvvivp4C5YYMlAw,551
286
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.vol,sha256=if0yLn8E3P4mZ_X5sBcrEIp2C4ZhMysGROtB1YCkJHI,27897
287
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.geo,sha256=PVD4I9ztZowKwNOUrjnoOP7Tj2KG9J0UCJFRS9EhlxU,364
288
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.vol,sha256=IOZe4oPxMUa9vBGJWN4LG9M79XAruY23S2rtAh_2_98,144724
289
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.geo,sha256=lCUDCAhfowBttSGEY_giyY0xEFInAbgVfIPwSWBb504,605
290
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.vol,sha256=2Dq5VCX7dqGxo_ExtUhI716I-SnxhLGPawW29IR9nYY,162397
291
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.geo,sha256=kbBNVUYVSf1ogV7-Xf31KXju3LCUIPaDLfvwZHMgddI,386
292
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.vol,sha256=54108a3RvrTUOJSFltxUY8iiNzyWoBTtNrWM0kufj7c,90295
293
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde,sha256=bPQAvbYlyvCfLzk9cOzjXDn94UFC_vBCONl7fEIaMVs,1304
294
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde,sha256=Mq3Ap63mWqjQyXsASFAlkRQ0AWxBlY3BYYejTYd-lwg,1101
295
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d1_square.pde,sha256=ysOroxhoAOePmB_Aswps9iGjA2qV5435iu3hOnSvN8M,1029
296
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d2_chip.pde,sha256=AowiGbuAWEdyFUB3d1LlZeQ7rarbkqIYsj1QcWc89-A,950
297
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d3_helmholtz.pde,sha256=nG0HxrxboI2qGoR5_LNZt7RYB7ji2o5jtkyIqTFR4y8,568
298
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d4_cube.pde,sha256=-C4RgoVtBXZu7XHCwZy7F7pr_PGNGcRwWCFzBppq1mQ,1033
299
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d5_beam.pde,sha256=QOYC7YN7LdcjSFeLdJu1Tlfi-lmsVsa7b9G6qoCsGo8,1985
300
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d6_shaft.pde,sha256=Iua3INfuIUeaBk21qNg4u5KZt__H1B8BZUsy5frjhdY,1901
301
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d7_coil.pde,sha256=-ELH2obynMJcvSOqoYT1OThXcllIcdss0ZrklLSimZw,1200
302
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d8_coilshield.pde,sha256=WUUulvd3dsedB25sFVQgU7FgZ3B7BkbxgkXTEBglk1w,1141
303
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d9_hybridDG.pde,sha256=drLxnz1GvCEeme-FV772cGbS-YTgeUB4G5DrbkLdapw,1479
304
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.in2d,sha256=bKn7m7eCcoLimGgoO3nxhiu7Mm0lIRnbx0TJh5dC1I0,506
305
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.vol,sha256=Eg-H6nl2Hd5Nr593SFCCLVTDl25kIXuddrWpd7xlrP8,34987
306
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz,sha256=RuxM0vtYljoAImOH6U6avt0LmWaUbGNao37n8p_Yd1w,496477
307
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.geo,sha256=aPbk4EItJSLN_PjpOejnijk74y53QBW-IPCXHvLNlVs,2434
308
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.vol,sha256=fT8qu1L-p0MkI-l3WVisKG52W5FCzO_NzXaCvMJT1V4,270450
309
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.in2d,sha256=evpVgNNzReABv6bIs4J_r1OFeedMppoS-TEzE-tfKgY,192
310
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.vol,sha256=IXIHYmq85hkFsMVZ_vEVthUnd0YTQWE4jRegjW8_ImI,9162
311
- ngsolve-6.2.2506.post74.dev0.dist-info/licenses/LICENSE,sha256=oZDcnIBDdV2Q-LCnX6ZrnkLUr0yYC_XdxjPwEk2zzuc,26430
312
- ngsolve-6.2.2506.post74.dev0.dist-info/METADATA,sha256=fsM_U1-J3HXqjVaaE4e9lkJ-oF9pQbibzw9QpgSOWZI,293
313
- ngsolve-6.2.2506.post74.dev0.dist-info/WHEEL,sha256=4rsxysQxv1CVckZ9Ge1ck1h5EEc_sn6tTiiK8wHip6E,110
314
- ngsolve-6.2.2506.post74.dev0.dist-info/top_level.txt,sha256=1llU44DxNIP85uPT4RChsIuV3h2d0_5j0Ui_Df5vV8E,15
315
- ngsolve-6.2.2506.post74.dev0.dist-info/RECORD,,
277
+ ngsolve/solvers/__init__.py,sha256=WgZ9X1x9mtQegXDu8VcTjP-wbS2EnrUS96Y8LXqeflw,304
278
+ ngsolve/solvers/__init__.pyi,sha256=yQJVNUrj9MiBy0wTkiMUurnhqI_lAlIfpnZYSQwgDHU,693
279
+ ngsolve/solvers/cudss.py,sha256=7JbJKFKWafB4gJevID88lzNLaJw-kBUwEPJ68tuTT_g,2663
280
+ ngsolve-6.2.2506.post85.dev0.data/data/Netgen.icns,sha256=Ebqct4LKxLzxdJLwGg0tTUQb1VjLwkKhtmdYhpRhKjg,291475
281
+ ngsolve-6.2.2506.post85.dev0.data/data/bin/ngscxx,sha256=P9QK6KWtOsMYY_c5tCCN_64WtTEMwdTT-XzIOcOlUCs,1755
282
+ ngsolve-6.2.2506.post85.dev0.data/data/bin/ngsld,sha256=50UErkFWLTocn8GtZDTkUWmPTIqsoK5lcfBGwyP0Vnc,557
283
+ ngsolve-6.2.2506.post85.dev0.data/data/bin/ngsolve.tcl,sha256=SSBYLyp4zgl6eM17LXIiLoj1Doy-h2s4EZg6oKi6ucA,20995
284
+ ngsolve-6.2.2506.post85.dev0.data/data/bin/ngspy,sha256=1QO6MhemomQxnx_uf1om4uU784PHa5c6bLuqqnn2v9s,103
285
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/beam.geo,sha256=EtxklGAIo6SxZlHHC_FZHoQGZqZUDGJQSheEMFO-bJ8,387
286
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/beam.vol,sha256=aotG4VA7sIgAsPQsYkzbMP1Jta_TddG2gMCblkSPkqc,13594
287
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/chip.in2d,sha256=g6C-mcoD8-q9JtZpuh4mf4iFEZUIGvvivp4C5YYMlAw,551
288
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/chip.vol,sha256=if0yLn8E3P4mZ_X5sBcrEIp2C4ZhMysGROtB1YCkJHI,27897
289
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/coil.geo,sha256=PVD4I9ztZowKwNOUrjnoOP7Tj2KG9J0UCJFRS9EhlxU,364
290
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/coil.vol,sha256=IOZe4oPxMUa9vBGJWN4LG9M79XAruY23S2rtAh_2_98,144724
291
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/coilshield.geo,sha256=lCUDCAhfowBttSGEY_giyY0xEFInAbgVfIPwSWBb504,605
292
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/coilshield.vol,sha256=2Dq5VCX7dqGxo_ExtUhI716I-SnxhLGPawW29IR9nYY,162397
293
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/cube.geo,sha256=kbBNVUYVSf1ogV7-Xf31KXju3LCUIPaDLfvwZHMgddI,386
294
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/cube.vol,sha256=54108a3RvrTUOJSFltxUY8iiNzyWoBTtNrWM0kufj7c,90295
295
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde,sha256=bPQAvbYlyvCfLzk9cOzjXDn94UFC_vBCONl7fEIaMVs,1304
296
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde,sha256=Mq3Ap63mWqjQyXsASFAlkRQ0AWxBlY3BYYejTYd-lwg,1101
297
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d1_square.pde,sha256=ysOroxhoAOePmB_Aswps9iGjA2qV5435iu3hOnSvN8M,1029
298
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d2_chip.pde,sha256=AowiGbuAWEdyFUB3d1LlZeQ7rarbkqIYsj1QcWc89-A,950
299
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d3_helmholtz.pde,sha256=nG0HxrxboI2qGoR5_LNZt7RYB7ji2o5jtkyIqTFR4y8,568
300
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d4_cube.pde,sha256=-C4RgoVtBXZu7XHCwZy7F7pr_PGNGcRwWCFzBppq1mQ,1033
301
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d5_beam.pde,sha256=QOYC7YN7LdcjSFeLdJu1Tlfi-lmsVsa7b9G6qoCsGo8,1985
302
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d6_shaft.pde,sha256=Iua3INfuIUeaBk21qNg4u5KZt__H1B8BZUsy5frjhdY,1901
303
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d7_coil.pde,sha256=-ELH2obynMJcvSOqoYT1OThXcllIcdss0ZrklLSimZw,1200
304
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d8_coilshield.pde,sha256=WUUulvd3dsedB25sFVQgU7FgZ3B7BkbxgkXTEBglk1w,1141
305
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d9_hybridDG.pde,sha256=drLxnz1GvCEeme-FV772cGbS-YTgeUB4G5DrbkLdapw,1479
306
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/doubleglazing.in2d,sha256=bKn7m7eCcoLimGgoO3nxhiu7Mm0lIRnbx0TJh5dC1I0,506
307
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/doubleglazing.vol,sha256=Eg-H6nl2Hd5Nr593SFCCLVTDl25kIXuddrWpd7xlrP8,34987
308
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz,sha256=RuxM0vtYljoAImOH6U6avt0LmWaUbGNao37n8p_Yd1w,496477
309
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/shaft.geo,sha256=aPbk4EItJSLN_PjpOejnijk74y53QBW-IPCXHvLNlVs,2434
310
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/shaft.vol,sha256=fT8qu1L-p0MkI-l3WVisKG52W5FCzO_NzXaCvMJT1V4,270450
311
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/square.in2d,sha256=evpVgNNzReABv6bIs4J_r1OFeedMppoS-TEzE-tfKgY,192
312
+ ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/square.vol,sha256=IXIHYmq85hkFsMVZ_vEVthUnd0YTQWE4jRegjW8_ImI,9162
313
+ ngsolve-6.2.2506.post85.dev0.dist-info/licenses/LICENSE,sha256=oZDcnIBDdV2Q-LCnX6ZrnkLUr0yYC_XdxjPwEk2zzuc,26430
314
+ ngsolve-6.2.2506.post85.dev0.dist-info/METADATA,sha256=6wGzAR96Czhp10oe_CkGQbQb-oNz-vP9VYNVhltXuh8,293
315
+ ngsolve-6.2.2506.post85.dev0.dist-info/WHEEL,sha256=4rsxysQxv1CVckZ9Ge1ck1h5EEc_sn6tTiiK8wHip6E,110
316
+ ngsolve-6.2.2506.post85.dev0.dist-info/top_level.txt,sha256=1llU44DxNIP85uPT4RChsIuV3h2d0_5j0Ui_Df5vV8E,15
317
+ ngsolve-6.2.2506.post85.dev0.dist-info/RECORD,,
File without changes
File without changes