ngsolve 6.2.2506.post74.dev0__cp314-cp314-win_amd64.whl → 6.2.2506.post85.dev0__cp314-cp314-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.
- netgen/include/sparsefactorization_interface.hpp +153 -0
- netgen/include/statushandler.hpp +8 -8
- netgen/lib/libngsolve.lib +0 -0
- netgen/libngsolve.dll +0 -0
- ngsolve/cmake/NGSolveConfig.cmake +1 -1
- ngsolve/cmake/ngsolve-targets.cmake +15 -8
- ngsolve/config/config.py +5 -5
- ngsolve/directsolvers.py +9 -21
- ngsolve/ngslib.pyd +0 -0
- ngsolve/solvers/cudss.py +74 -0
- {ngsolve-6.2.2506.post74.dev0.dist-info → ngsolve-6.2.2506.post85.dev0.dist-info}/METADATA +2 -2
- {ngsolve-6.2.2506.post74.dev0.dist-info → ngsolve-6.2.2506.post85.dev0.dist-info}/RECORD +45 -43
- /ngsolve/{solvers.py → solvers/__init__.py} +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/Scripts/ngsolve.tcl +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/beam.geo +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/beam.vol +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/chip.in2d +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/chip.vol +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/coil.geo +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/coil.vol +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/coilshield.geo +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/coilshield.vol +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/cube.geo +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/cube.vol +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d10_DGdoubleglazing.pde +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d11_chip_nitsche.pde +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d1_square.pde +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d2_chip.pde +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d3_helmholtz.pde +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d4_cube.pde +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d5_beam.pde +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d6_shaft.pde +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d7_coil.pde +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d8_coilshield.pde +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/d9_hybridDG.pde +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/doubleglazing.in2d +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/doubleglazing.vol +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/shaft.geo +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/shaft.vol +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/square.in2d +0 -0
- {ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/square.vol +0 -0
- {ngsolve-6.2.2506.post74.dev0.dist-info → ngsolve-6.2.2506.post85.dev0.dist-info}/WHEEL +0 -0
- {ngsolve-6.2.2506.post74.dev0.dist-info → ngsolve-6.2.2506.post85.dev0.dist-info}/licenses/LICENSE +0 -0
- {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
|
netgen/include/statushandler.hpp
CHANGED
|
@@ -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
|
-
|
|
13
|
-
static void PushStatus (const
|
|
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
|
|
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
|
|
@@ -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
|
|
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
|
|
58
|
-
add_library(
|
|
57
|
+
# Create imported target netgen_lib
|
|
58
|
+
add_library(netgen_lib INTERFACE IMPORTED)
|
|
59
59
|
|
|
60
|
-
set_target_properties(
|
|
61
|
-
INTERFACE_LINK_LIBRARIES "nglib
|
|
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 "
|
|
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 "
|
|
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-
|
|
33
|
-
NGSOLVE_VERSION_GIT = "v6.2.2506-
|
|
34
|
-
NGSOLVE_VERSION_PYTHON = "6.2.2506.
|
|
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 = "
|
|
38
|
+
NGSOLVE_VERSION_TWEAK = "85"
|
|
39
39
|
NGSOLVE_VERSION_PATCH = "2506"
|
|
40
|
-
NGSOLVE_VERSION_HASH = "
|
|
40
|
+
NGSOLVE_VERSION_HASH = "g5e4fc20dd"
|
|
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(
|
|
4
|
-
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
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
|
ngsolve/solvers/cudss.py
ADDED
|
@@ -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.
|
|
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.
|
|
8
|
+
Requires-Dist: netgen-mesher==6.2.2506.post14.dev0
|
|
9
9
|
Requires-Dist: mkl
|
|
10
10
|
Dynamic: author
|
|
11
11
|
Dynamic: license
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
netgen/libngsolve.dll,sha256=
|
|
1
|
+
netgen/libngsolve.dll,sha256=vijkGgzz4GAkUSEKEns1ddXZxJPmD2dn026o-rMMoqQ,37872640
|
|
2
2
|
netgen/ngscxx.bat,sha256=hSQMNacD7JclHjpQ7hJFc5LNgY5olSDeTJK_lgwetnY,670
|
|
3
3
|
netgen/ngsld.bat,sha256=YD1I1rK70K_YvLev7aYQMD9mCcwF55k1B_8pRWPpob0,428
|
|
4
4
|
netgen/include/analytic_integrals.hpp,sha256=oPgn5R2aQOu3ELN-NIMK-h2UFFJbmFlx-cZd_Nqm7rQ,248
|
|
@@ -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=
|
|
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=
|
|
195
|
+
netgen/lib/libngsolve.lib,sha256=w2ugLOc21ZZVQbowPc030vaTqam_VYIbKkPexlP-URQ,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=
|
|
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=
|
|
210
|
+
ngsolve/ngslib.pyd,sha256=RqoB0HbD9N-LioFwve5y2A0B4Ya6SeFH4EPlfa6ojug,140288
|
|
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=
|
|
218
|
+
ngsolve/cmake/NGSolveConfig.cmake,sha256=Ftdpf9mF9nyOfM1D0ST-JH7MYOVXiKhBhydm7K8K0cI,5155
|
|
219
219
|
ngsolve/cmake/ngsolve-targets-release.cmake,sha256=knQjCmz6J-x_Egg5DosY5hU_CZdZlSQxQ4Za7pS07fA,907
|
|
220
|
-
ngsolve/cmake/ngsolve-targets.cmake,sha256=
|
|
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=
|
|
223
|
+
ngsolve/config/config.py,sha256=pXsG1E-b2KL65e9I5Y4xFhjyGL4ZT8GB8gGF4bTjfQE,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
|
|
256
|
-
ngsolve
|
|
257
|
-
ngsolve-6.2.2506.
|
|
258
|
-
ngsolve-6.2.2506.
|
|
259
|
-
ngsolve-6.2.2506.
|
|
260
|
-
ngsolve-6.2.2506.
|
|
261
|
-
ngsolve-6.2.2506.
|
|
262
|
-
ngsolve-6.2.2506.
|
|
263
|
-
ngsolve-6.2.2506.
|
|
264
|
-
ngsolve-6.2.2506.
|
|
265
|
-
ngsolve-6.2.2506.
|
|
266
|
-
ngsolve-6.2.2506.
|
|
267
|
-
ngsolve-6.2.2506.
|
|
268
|
-
ngsolve-6.2.2506.
|
|
269
|
-
ngsolve-6.2.2506.
|
|
270
|
-
ngsolve-6.2.2506.
|
|
271
|
-
ngsolve-6.2.2506.
|
|
272
|
-
ngsolve-6.2.2506.
|
|
273
|
-
ngsolve-6.2.2506.
|
|
274
|
-
ngsolve-6.2.2506.
|
|
275
|
-
ngsolve-6.2.2506.
|
|
276
|
-
ngsolve-6.2.2506.
|
|
277
|
-
ngsolve-6.2.2506.
|
|
278
|
-
ngsolve-6.2.2506.
|
|
279
|
-
ngsolve-6.2.2506.
|
|
280
|
-
ngsolve-6.2.2506.
|
|
281
|
-
ngsolve-6.2.2506.
|
|
282
|
-
ngsolve-6.2.2506.
|
|
283
|
-
ngsolve-6.2.2506.
|
|
284
|
-
ngsolve-6.2.2506.
|
|
285
|
-
ngsolve-6.2.2506.
|
|
286
|
-
ngsolve-6.2.2506.
|
|
287
|
-
ngsolve-6.2.2506.
|
|
288
|
-
ngsolve-6.2.2506.
|
|
255
|
+
ngsolve/solvers/__init__.py,sha256=Vbm5RfIJ83nMtQ1pYJL0uBBuys4-mcY6b63MNkyiqxU,311
|
|
256
|
+
ngsolve/solvers/cudss.py,sha256=-1wiJhjW5ddtF2FyPzNXsm-e10jkc0f5VKtqXwsA0S0,2737
|
|
257
|
+
ngsolve-6.2.2506.post85.dev0.data/data/Scripts/ngsolve.tcl,sha256=8KBOXZKYU_qx8785PIjdmVjcUbCxR5aYrod0BZ4UgGc,21637
|
|
258
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/beam.geo,sha256=HTv0A6IUoVuavifolhGKY6U44z0hni07Htonqe6rw_A,404
|
|
259
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/beam.vol,sha256=QZbM9JE4rBs5nVXaw7ZAbDf60yXbX19bm1OnOScF57M,13834
|
|
260
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/chip.in2d,sha256=561AjEIPnlzMZHIzep5lRjocQDm8w7o7IDna5u8s9JQ,592
|
|
261
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/chip.vol,sha256=gkEmBWlQh8BkSFNTf-XISfmuGzHXDKANV4Uoww_BwJI,28511
|
|
262
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/coil.geo,sha256=ylB2OiWEZztFXPx99qTNRJKmZFIDPEezEgQt4EPtZRA,376
|
|
263
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/coil.vol,sha256=t8cWP_YX38FMw0S-7vEVUOcSH0VK6DlaqVWG_zmBo-4,147284
|
|
264
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/coilshield.geo,sha256=Sq8w7i22WQ0viaiM3bU_63lZGFWp8JgyDqs3RdjeTe0,629
|
|
265
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/coilshield.vol,sha256=JiZOM9A529-hikvv1kyLwffTRpeatLtaVTNcu42o1fo,165576
|
|
266
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/cube.geo,sha256=Wd9AnPdoQgjQ-JK6zmoXjsNxPR9B8ED4pdHVwmRoe1M,405
|
|
267
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/cube.vol,sha256=RS8bay_KlF6IZM0QDDr7_dGaFLqoxszQU_w8TYutMKY,92127
|
|
268
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde,sha256=lK3sXmK74eFEMk8F6hwFHe_tBYnOdRq3F-RbzKpDK0c,1354
|
|
269
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde,sha256=VuEQtkZaIJA9yuvjG_jcx1UB9UtAaZSoeJYFHcHeYxk,1141
|
|
270
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d1_square.pde,sha256=24ZZ0nlbr5LKl_mPyeZZMSkiCBiBk1fzNElo3yITX2A,1072
|
|
271
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d2_chip.pde,sha256=yGIbzuTdCEjdoC9Ig_hbcy5qz69_wxgPZeYmhY1rN7k,985
|
|
272
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d3_helmholtz.pde,sha256=gWqQTh1M9NiKGohlu5JxDJuvRz-T28WlNSVbwmMvM-0,590
|
|
273
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d4_cube.pde,sha256=6kL43ehAh1PdwnFlLjadg325bFjpz02p2PpAOxlDFuc,1079
|
|
274
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d5_beam.pde,sha256=VQt9WbqAVWObFH9Jy1YieE9WHnVZ_hnsKVTz6ysEBxI,2059
|
|
275
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d6_shaft.pde,sha256=y10nLFA2-GwEwnAs5R-8wppRq-09vYJ_C9LJ3DSvlS0,1974
|
|
276
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d7_coil.pde,sha256=KFkqtZiPD4LQsGnghwwdq1qmpWf0T5xQR4HwbRL9ZZA,1250
|
|
277
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d8_coilshield.pde,sha256=9XG0TcgZ7mComh_pVntnuzDldEx5PD-C7gqK05PTWus,1190
|
|
278
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/d9_hybridDG.pde,sha256=vYschVRu5vC91YpyVZFCBFuno-ZlOcRznPD-OvJTLtQ,1551
|
|
279
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/doubleglazing.in2d,sha256=lDCukUh9iTpkiH-qJAVdeAlMpiYF0AibAA6g3jOeWDY,533
|
|
280
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/doubleglazing.vol,sha256=IUOhUrZi8WMnvrIJe--A8cYPN6mscslA8_4yxvKShb0,35724
|
|
281
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz,sha256=RuxM0vtYljoAImOH6U6avt0LmWaUbGNao37n8p_Yd1w,496477
|
|
282
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/shaft.geo,sha256=Y3OVQlWjgICe2Dwz6-Qs8r0tLanjwtWP0xFx5AwNRJk,2507
|
|
283
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/shaft.vol,sha256=IqViJ4hJKk3Uf66PkVJ-kHpBQ_ZpkigRuh5g1Po4euY,274741
|
|
284
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/square.in2d,sha256=5dewiEjTsRFiNkBlmaTjBAZejq55TTlusp8ALfTMc2M,209
|
|
285
|
+
ngsolve-6.2.2506.post85.dev0.data/data/share/ngsolve/square.vol,sha256=tWdPeQ52deUNgWOsWKhqgNVsJKhkJmEAVp5-xjhzEwg,9311
|
|
286
|
+
ngsolve-6.2.2506.post85.dev0.dist-info/licenses/LICENSE,sha256=iFoD9UsVeWEjb0aEPnmXKr_NaJC2y7NovH7KMo_5WhI,26934
|
|
287
|
+
ngsolve-6.2.2506.post85.dev0.dist-info/METADATA,sha256=w7tsrBQuno-z8Z9Kk_nN5jQNtEz2HSU7AgDRrY2TNSw,326
|
|
288
|
+
ngsolve-6.2.2506.post85.dev0.dist-info/WHEEL,sha256=lCMqTXlaEtt78xHU31d8Zd4HGN_cBUVXptBXjt73558,96
|
|
289
|
+
ngsolve-6.2.2506.post85.dev0.dist-info/top_level.txt,sha256=1llU44DxNIP85uPT4RChsIuV3h2d0_5j0Ui_Df5vV8E,15
|
|
290
|
+
ngsolve-6.2.2506.post85.dev0.dist-info/RECORD,,
|
|
File without changes
|
{ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/Scripts/ngsolve.tcl
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/beam.geo
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/beam.vol
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/chip.in2d
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/chip.vol
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/coil.geo
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/coil.vol
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/cube.geo
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/cube.vol
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/shaft.geo
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post74.dev0.data → ngsolve-6.2.2506.post85.dev0.data}/data/share/ngsolve/shaft.vol
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngsolve-6.2.2506.post74.dev0.dist-info → ngsolve-6.2.2506.post85.dev0.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post74.dev0.dist-info → ngsolve-6.2.2506.post85.dev0.dist-info}/top_level.txt
RENAMED
|
File without changes
|