ngsolve 6.2.2502.post11.dev1__cp313-cp313-win_amd64.whl → 6.2.2504__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ngsolve might be problematic. Click here for more details.
- netgen/include/integrator.hpp +4 -16
- netgen/include/intrules_SauterSchwab.hpp +25 -0
- netgen/include/mp_coefficient.hpp +140 -0
- netgen/include/mptools.hpp +98 -165
- netgen/include/potentialtools.hpp +1 -1
- netgen/include/symbolicintegrator.hpp +1 -0
- netgen/lib/libngsolve.lib +0 -0
- netgen/libngsolve.dll +0 -0
- ngsolve/__init__.py +1 -0
- ngsolve/cmake/NGSolveConfig.cmake +5 -5
- ngsolve/cmake/ngsolve-targets.cmake +9 -2
- ngsolve/config/config.py +6 -6
- ngsolve/ngslib.pyd +0 -0
- ngsolve/solve_implementation.py +146 -0
- {ngsolve-6.2.2502.post11.dev1.dist-info → ngsolve-6.2.2504.dist-info}/METADATA +2 -2
- {ngsolve-6.2.2502.post11.dev1.dist-info → ngsolve-6.2.2504.dist-info}/RECORD +48 -45
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/Scripts/ngsolve.tcl +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/beam.geo +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/beam.vol +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/chip.in2d +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/chip.vol +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/coil.geo +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/coil.vol +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/coilshield.geo +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/coilshield.vol +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/cube.geo +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/cube.vol +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d10_DGdoubleglazing.pde +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d11_chip_nitsche.pde +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d1_square.pde +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d2_chip.pde +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d3_helmholtz.pde +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d4_cube.pde +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d5_beam.pde +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d6_shaft.pde +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d7_coil.pde +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d8_coilshield.pde +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d9_hybridDG.pde +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/doubleglazing.in2d +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/doubleglazing.vol +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/shaft.geo +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/shaft.vol +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/square.in2d +0 -0
- {ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/square.vol +0 -0
- {ngsolve-6.2.2502.post11.dev1.dist-info → ngsolve-6.2.2504.dist-info}/WHEEL +0 -0
- {ngsolve-6.2.2502.post11.dev1.dist-info → ngsolve-6.2.2504.dist-info}/licenses/LICENSE +0 -0
- {ngsolve-6.2.2502.post11.dev1.dist-info → ngsolve-6.2.2504.dist-info}/top_level.txt +0 -0
netgen/include/integrator.hpp
CHANGED
|
@@ -781,20 +781,14 @@ namespace ngfem
|
|
|
781
781
|
const FiniteElement & volumefel2, int LocalFacetNr2,
|
|
782
782
|
const ElementTransformation & eltrans2, FlatArray<int> & ElVertices2,
|
|
783
783
|
FlatVector<double> elx, FlatVector<double> ely,
|
|
784
|
-
LocalHeap & lh) const
|
|
785
|
-
{
|
|
786
|
-
throw Exception ("FacetBilinearFormIntegrator::ApplyFacetMatrix for inner facets not implemented!");
|
|
787
|
-
}
|
|
784
|
+
LocalHeap & lh) const;
|
|
788
785
|
virtual void
|
|
789
786
|
ApplyFacetMatrix (const FiniteElement & volumefel1, int LocalFacetNr1,
|
|
790
787
|
const ElementTransformation & eltrans1, FlatArray<int> & ElVertices1,
|
|
791
788
|
const FiniteElement & volumefel2, int LocalFacetNr2,
|
|
792
789
|
const ElementTransformation & eltrans2, FlatArray<int> & ElVertices2,
|
|
793
790
|
FlatVector<Complex> elx, FlatVector<Complex> ely,
|
|
794
|
-
LocalHeap & lh) const
|
|
795
|
-
{
|
|
796
|
-
throw Exception ("FacetBilinearFormIntegrator::ApplyFacetMatrix for inner facets not implemented!");
|
|
797
|
-
}
|
|
791
|
+
LocalHeap & lh) const;
|
|
798
792
|
|
|
799
793
|
|
|
800
794
|
virtual void
|
|
@@ -841,19 +835,13 @@ namespace ngfem
|
|
|
841
835
|
const ElementTransformation & eltrans, FlatArray<int> & ElVertices,
|
|
842
836
|
const ElementTransformation & seltrans, FlatArray<int> & SElVertices,
|
|
843
837
|
FlatVector<double> elx, FlatVector<double> ely,
|
|
844
|
-
LocalHeap & lh) const
|
|
845
|
-
{
|
|
846
|
-
throw Exception ("FacetBilinearFormIntegrator::ApplyFacetMatrix for boundary facets not implemented!");
|
|
847
|
-
}
|
|
838
|
+
LocalHeap & lh) const;
|
|
848
839
|
virtual void
|
|
849
840
|
ApplyFacetMatrix (const FiniteElement & volumefel, int LocalFacetNr,
|
|
850
841
|
const ElementTransformation & eltrans, FlatArray<int> & ElVertices,
|
|
851
842
|
const ElementTransformation & seltrans, FlatArray<int> & SElVertices,
|
|
852
843
|
FlatVector<Complex> elx, FlatVector<Complex> ely,
|
|
853
|
-
LocalHeap & lh) const
|
|
854
|
-
{
|
|
855
|
-
throw Exception ("FacetBilinearFormIntegrator::ApplyFacetMatrix for boundary facets not implemented!");
|
|
856
|
-
}
|
|
844
|
+
LocalHeap & lh) const;
|
|
857
845
|
|
|
858
846
|
|
|
859
847
|
// calculate traces in integration points
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#ifndef INTRULES_HPP
|
|
2
|
+
#define INTRULES_HPP
|
|
3
|
+
|
|
4
|
+
#include <bla.hpp>
|
|
5
|
+
|
|
6
|
+
namespace ngsbem
|
|
7
|
+
{
|
|
8
|
+
using namespace ngbla;
|
|
9
|
+
|
|
10
|
+
// x, y in triangle [(0,0), (1,0), (0,1)]
|
|
11
|
+
tuple<Array<Vec<2>>, Array<Vec<2>>, Array<double>> IdenticPanelIntegrationRule (int order);
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
// x, y in triangle [(0,0), (1,0), (0,1)]
|
|
15
|
+
// x=(0,0) and y=(0,0) are common vertices
|
|
16
|
+
tuple<Array<Vec<2>>, Array<Vec<2>>, Array<double>> CommonVertexIntegrationRule (int order);
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
// x, y in triangle [(0,0), (1,0), (0,1)]
|
|
20
|
+
// x in [(0,0),(1,0)] and y in [(0,0),(1,0)] are common edges
|
|
21
|
+
tuple<Array<Vec<2>>, Array<Vec<2>>, Array<double>> CommonEdgeIntegrationRule (int order);
|
|
22
|
+
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
#endif
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
#ifndef MP_COEFFICIENT
|
|
2
|
+
#define MP_COEFFICIENT
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
#include "mptools.hpp"
|
|
6
|
+
|
|
7
|
+
namespace ngsbem
|
|
8
|
+
{
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
// ******************** Coefficient Functions *********************
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class SphericalHarmonicsCF : public CoefficientFunction
|
|
15
|
+
{
|
|
16
|
+
SphericalHarmonics<Complex> sh;
|
|
17
|
+
public:
|
|
18
|
+
SphericalHarmonicsCF (int order)
|
|
19
|
+
: CoefficientFunction(1, true), sh(order) { }
|
|
20
|
+
Complex & Coef(int n, int m) { return sh.Coef(n,m); }
|
|
21
|
+
|
|
22
|
+
virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
|
|
23
|
+
{ throw Exception("real eval not available"); }
|
|
24
|
+
|
|
25
|
+
virtual void Evaluate (const BaseMappedIntegrationPoint & mip, FlatVector<Complex> values) const override
|
|
26
|
+
{
|
|
27
|
+
values(0) = sh.Eval(mip.GetPoint());
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
virtual void Evaluate (const BaseMappedIntegrationRule & ir, BareSliceMatrix<Complex> values) const override
|
|
31
|
+
{
|
|
32
|
+
for (int i = 0; i < ir.Size(); i++)
|
|
33
|
+
{
|
|
34
|
+
auto & mip = ir[i];
|
|
35
|
+
values(i,0) = sh.Eval(mip.GetPoint());
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
auto & SH() { return sh; }
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
template <typename entry_type> class RegularMLMultiPoleCF;
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
template <typename RADIAL, typename entry_type=Complex>
|
|
48
|
+
class MultiPoleCF : public CoefficientFunction
|
|
49
|
+
{
|
|
50
|
+
MultiPole<RADIAL, entry_type> mp;
|
|
51
|
+
Vec<3> center;
|
|
52
|
+
public:
|
|
53
|
+
MultiPoleCF (int order, double kappa, Vec<3> acenter, double rtyp = 1)
|
|
54
|
+
: CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mp(order, kappa, rtyp), center(acenter) { }
|
|
55
|
+
|
|
56
|
+
entry_type & Coef(int n, int m) { return mp.Coef(n,m); }
|
|
57
|
+
auto & SH() { return mp.SH(); }
|
|
58
|
+
auto & MP() { return mp; }
|
|
59
|
+
Vec<3> Center() const { return center; }
|
|
60
|
+
|
|
61
|
+
virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
|
|
62
|
+
{ throw Exception("real eval not available"); }
|
|
63
|
+
|
|
64
|
+
virtual void Evaluate (const BaseMappedIntegrationPoint & mip, FlatVector<Complex> values) const override
|
|
65
|
+
{
|
|
66
|
+
if constexpr (std::is_same<entry_type, Complex>())
|
|
67
|
+
values(0) = mp.Eval(mip.GetPoint()-center);
|
|
68
|
+
else
|
|
69
|
+
values = mp.Eval(mip.GetPoint()-center);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
template <typename TARGET>
|
|
73
|
+
void ShiftZ (double z, MultiPole<TARGET, entry_type> & target) { mp.ShiftZ(z, target); }
|
|
74
|
+
|
|
75
|
+
using CoefficientFunction::Transform;
|
|
76
|
+
template <typename TARGET>
|
|
77
|
+
void Transform (MultiPoleCF<TARGET, entry_type> & target)
|
|
78
|
+
{
|
|
79
|
+
mp.Transform (target.MP(), target.Center()-center);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
template <typename entry_type>
|
|
84
|
+
class SingularMLMultiPoleCF : public CoefficientFunction
|
|
85
|
+
{
|
|
86
|
+
shared_ptr<SingularMLMultiPole<entry_type>> mlmp;
|
|
87
|
+
public:
|
|
88
|
+
SingularMLMultiPoleCF (Vec<3> center, double r, double kappa)
|
|
89
|
+
: CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<SingularMLMultiPole<entry_type>>(center, r, kappa)} { }
|
|
90
|
+
|
|
91
|
+
virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
|
|
92
|
+
{ throw Exception("real eval not available"); }
|
|
93
|
+
|
|
94
|
+
virtual void Evaluate (const BaseMappedIntegrationPoint & mip, FlatVector<Complex> values) const override
|
|
95
|
+
{
|
|
96
|
+
// values(0) = mlmp->Evaluate(mip.GetPoint());
|
|
97
|
+
|
|
98
|
+
if constexpr (std::is_same<entry_type, Complex>())
|
|
99
|
+
values(0) = mlmp->Evaluate(mip.GetPoint());
|
|
100
|
+
else
|
|
101
|
+
values = mlmp->Evaluate(mip.GetPoint());
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
shared_ptr<SingularMLMultiPole<entry_type>> MLMP() const { return mlmp; }
|
|
107
|
+
shared_ptr<RegularMLMultiPoleCF<entry_type>> CreateRegularExpansion(Vec<3> center, double r) const;
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
template <typename entry_type>
|
|
112
|
+
class RegularMLMultiPoleCF : public CoefficientFunction
|
|
113
|
+
{
|
|
114
|
+
shared_ptr<RegularMLMultiPole<entry_type>> mlmp;
|
|
115
|
+
public:
|
|
116
|
+
RegularMLMultiPoleCF (shared_ptr<SingularMLMultiPoleCF<entry_type>> asingmp, Vec<3> center, double r)
|
|
117
|
+
: CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<RegularMLMultiPole<entry_type>>(asingmp->MLMP(), center, r)} { }
|
|
118
|
+
RegularMLMultiPoleCF (shared_ptr<SingularMLMultiPole<entry_type>> asingmp, Vec<3> center, double r)
|
|
119
|
+
: CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<RegularMLMultiPole<entry_type>>(asingmp, center, r)} { }
|
|
120
|
+
|
|
121
|
+
virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
|
|
122
|
+
{ throw Exception("real eval not available"); }
|
|
123
|
+
|
|
124
|
+
virtual void Evaluate (const BaseMappedIntegrationPoint & mip, FlatVector<Complex> values) const override
|
|
125
|
+
{
|
|
126
|
+
// values(0) = mlmp->Evaluate(mip.GetPoint());
|
|
127
|
+
|
|
128
|
+
if constexpr (std::is_same<entry_type, Complex>())
|
|
129
|
+
values(0) = mlmp->Evaluate(mip.GetPoint());
|
|
130
|
+
else
|
|
131
|
+
values = mlmp->Evaluate(mip.GetPoint());
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
shared_ptr<RegularMLMultiPole<entry_type>> MLMP() { return mlmp; }
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
#endif
|
netgen/include/mptools.hpp
CHANGED
|
@@ -16,9 +16,10 @@ namespace ngcomp
|
|
|
16
16
|
class Region;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
namespace
|
|
19
|
+
namespace ngsbem
|
|
20
20
|
{
|
|
21
|
-
|
|
21
|
+
using namespace ngfem;
|
|
22
|
+
|
|
22
23
|
|
|
23
24
|
template <typename entry_type = Complex>
|
|
24
25
|
class NGS_DLL_HEADER SphericalHarmonics
|
|
@@ -222,17 +223,46 @@ namespace ngfem
|
|
|
222
223
|
{
|
|
223
224
|
SphericalHankel1(order, r, scale, values);
|
|
224
225
|
}
|
|
226
|
+
|
|
227
|
+
template <typename T>
|
|
228
|
+
static void Eval (int order, double kappa, double r, double rtyp, T && values)
|
|
229
|
+
{
|
|
230
|
+
double scale = Scale(kappa, rtyp);
|
|
231
|
+
SphericalHankel1(order, r*kappa, scale, values);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
static double Scale (double kappa, double rtyp)
|
|
235
|
+
{
|
|
236
|
+
// return min(1.0, rtyp*kappa);
|
|
237
|
+
return min(1.0, 0.5*rtyp*kappa);
|
|
238
|
+
}
|
|
225
239
|
};
|
|
240
|
+
|
|
241
|
+
|
|
226
242
|
|
|
227
243
|
// jn
|
|
228
244
|
class MPRegular
|
|
229
245
|
{
|
|
230
|
-
public:
|
|
246
|
+
public:
|
|
231
247
|
template <typename T>
|
|
232
248
|
static void Eval (int order, double r, double scale, T && values)
|
|
233
249
|
{
|
|
234
250
|
SphericalBessel (order, r, 1.0/scale, values);
|
|
235
251
|
}
|
|
252
|
+
|
|
253
|
+
template <typename T>
|
|
254
|
+
static void Eval (int order, double kappa, double r, double rtyp, T && values)
|
|
255
|
+
{
|
|
256
|
+
double scale = Scale(kappa, rtyp);
|
|
257
|
+
SphericalBessel (order, r*kappa, 1.0/scale, values);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
static double Scale (double kappa, double rtyp)
|
|
261
|
+
{
|
|
262
|
+
// return 1.0/ min(1.0, 0.25*rtyp*kappa);
|
|
263
|
+
return 1.0/ min(1.0, 0.5*rtyp*kappa);
|
|
264
|
+
}
|
|
265
|
+
|
|
236
266
|
};
|
|
237
267
|
|
|
238
268
|
|
|
@@ -243,22 +273,25 @@ namespace ngfem
|
|
|
243
273
|
{
|
|
244
274
|
SphericalHarmonics<entry_type> sh;
|
|
245
275
|
double kappa;
|
|
246
|
-
double
|
|
276
|
+
double rtyp;
|
|
247
277
|
public:
|
|
248
|
-
MultiPole (int aorder, double akappa, double ascale = 1)
|
|
249
|
-
: sh(aorder), kappa(akappa), scale(ascale) { }
|
|
250
278
|
|
|
279
|
+
MultiPole (int aorder, double akappa, double artyp)
|
|
280
|
+
: sh(aorder), kappa(akappa), rtyp(artyp) { }
|
|
281
|
+
|
|
282
|
+
|
|
251
283
|
entry_type & Coef(int n, int m) { return sh.Coef(n,m); }
|
|
252
284
|
auto & SH() { return sh; }
|
|
253
285
|
const auto & SH() const { return sh; }
|
|
254
286
|
double Kappa() const { return kappa; }
|
|
255
|
-
double Scale() const { return
|
|
287
|
+
double Scale() const { return RADIAL::Scale(kappa, rtyp); }
|
|
288
|
+
double RTyp() const { return rtyp; }
|
|
256
289
|
int Order() const { return sh.Order(); }
|
|
257
290
|
|
|
258
291
|
MultiPole Truncate(int neworder) const
|
|
259
292
|
{
|
|
260
293
|
if (neworder > sh.Order()) neworder=sh.Order();
|
|
261
|
-
MultiPole nmp(neworder, kappa);
|
|
294
|
+
MultiPole nmp(neworder, kappa, rtyp);
|
|
262
295
|
nmp.sh.Coefs() = sh.Coefs().Range(sqr(neworder+1));
|
|
263
296
|
return nmp;
|
|
264
297
|
}
|
|
@@ -277,15 +310,27 @@ namespace ngfem
|
|
|
277
310
|
void AddDipole (Vec<3> x, Vec<3> d, entry_type c);
|
|
278
311
|
void AddCurrent (Vec<3> ap, Vec<3> ep, Complex j, int num=100);
|
|
279
312
|
|
|
280
|
-
|
|
313
|
+
/*
|
|
281
314
|
void ChangeScaleTo (double newscale)
|
|
282
315
|
{
|
|
283
|
-
double fac =
|
|
316
|
+
double fac = Scale()/newscale;
|
|
284
317
|
double prod = 1;
|
|
285
318
|
for (int n = 0; n <= sh.Order(); n++, prod*= fac)
|
|
286
319
|
sh.CoefsN(n) *= prod;
|
|
287
320
|
scale = newscale;
|
|
288
321
|
}
|
|
322
|
+
*/
|
|
323
|
+
void ChangeRTypTo (double new_rtyp)
|
|
324
|
+
{
|
|
325
|
+
// double fac = Scale()/newscale;
|
|
326
|
+
double fac = RADIAL::Scale(kappa, rtyp) / RADIAL::Scale(kappa, new_rtyp);
|
|
327
|
+
double prod = 1;
|
|
328
|
+
for (int n = 0; n <= sh.Order(); n++, prod*= fac)
|
|
329
|
+
sh.CoefsN(n) *= prod;
|
|
330
|
+
// scale = newscale;
|
|
331
|
+
rtyp = new_rtyp;
|
|
332
|
+
}
|
|
333
|
+
|
|
289
334
|
|
|
290
335
|
Vector<double> Spectrum (bool scaled) const
|
|
291
336
|
{
|
|
@@ -294,7 +339,7 @@ namespace ngfem
|
|
|
294
339
|
for (int n = 0; n <= Order(); n++)
|
|
295
340
|
{
|
|
296
341
|
spec(n) = fac * L2Norm2(sh.CoefsN(n));
|
|
297
|
-
if (!scaled) fac *= sqr(
|
|
342
|
+
if (!scaled) fac *= sqr(Scale());
|
|
298
343
|
}
|
|
299
344
|
return spec;
|
|
300
345
|
}
|
|
@@ -310,8 +355,8 @@ namespace ngfem
|
|
|
310
355
|
return;
|
|
311
356
|
}
|
|
312
357
|
|
|
313
|
-
static Timer t("mptool Transform "+ToString(typeid(RADIAL).name())+ToString(typeid(TARGET).name()));
|
|
314
|
-
RegionTimer reg(t);
|
|
358
|
+
// static Timer t("mptool Transform "+ToString(typeid(RADIAL).name())+ToString(typeid(TARGET).name()));
|
|
359
|
+
// RegionTimer reg(t);
|
|
315
360
|
|
|
316
361
|
double len = L2Norm(dist);
|
|
317
362
|
double theta, phi;
|
|
@@ -327,7 +372,10 @@ namespace ngfem
|
|
|
327
372
|
phi = atan2(dist(1), dist(0));
|
|
328
373
|
|
|
329
374
|
|
|
330
|
-
MultiPole<RADIAL,entry_type> tmp
|
|
375
|
+
// MultiPole<RADIAL,entry_type> tmp{*this};
|
|
376
|
+
MultiPole<RADIAL,entry_type> tmp(Order(), kappa, rtyp);
|
|
377
|
+
tmp.SH().Coefs() = SH().Coefs();
|
|
378
|
+
|
|
331
379
|
tmp.SH().RotateZ(phi);
|
|
332
380
|
tmp.SH().RotateY(theta);
|
|
333
381
|
|
|
@@ -382,11 +430,9 @@ namespace ngfem
|
|
|
382
430
|
Array<tuple<Vec<3>, Vec<3>, Complex,int>> currents;
|
|
383
431
|
int total_sources;
|
|
384
432
|
|
|
385
|
-
Node (Vec<3> acenter, double ar, int alevel,
|
|
386
|
-
: center(acenter), r(ar), level(alevel), mp(MPOrder(ar*
|
|
387
|
-
// : center(acenter), r(ar), level(alevel), mp(MPOrder(ar*kappa), kappa, 1.0)
|
|
433
|
+
Node (Vec<3> acenter, double ar, int alevel, double akappa)
|
|
434
|
+
: center(acenter), r(ar), level(alevel), mp(MPOrder(ar*akappa), akappa, ar) // min(1.0, ar*akappa))
|
|
388
435
|
{
|
|
389
|
-
// cout << "singml, add node, level = " << level << endl;
|
|
390
436
|
if (level < nodes_on_level.Size())
|
|
391
437
|
nodes_on_level[level]++;
|
|
392
438
|
}
|
|
@@ -401,7 +447,7 @@ namespace ngfem
|
|
|
401
447
|
cc(0) += (i&1) ? r/2 : -r/2;
|
|
402
448
|
cc(1) += (i&2) ? r/2 : -r/2;
|
|
403
449
|
cc(2) += (i&4) ? r/2 : -r/2;
|
|
404
|
-
childs[i] = make_unique<Node> (cc, r/2, level+1,
|
|
450
|
+
childs[i] = make_unique<Node> (cc, r/2, level+1, mp.Kappa());
|
|
405
451
|
}
|
|
406
452
|
}
|
|
407
453
|
|
|
@@ -421,7 +467,8 @@ namespace ngfem
|
|
|
421
467
|
|
|
422
468
|
charges.Append( tuple{x,c} );
|
|
423
469
|
|
|
424
|
-
if (r*mp.Kappa() < 1e-8) return;
|
|
470
|
+
// if (r*mp.Kappa() < 1e-8) return;
|
|
471
|
+
if (level > 20) return;
|
|
425
472
|
if (charges.Size() < maxdirect && r*mp.Kappa() < 1)
|
|
426
473
|
return;
|
|
427
474
|
|
|
@@ -536,9 +583,17 @@ namespace ngfem
|
|
|
536
583
|
return sum;
|
|
537
584
|
}
|
|
538
585
|
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
586
|
+
// static Timer t("fmm direct eval"); RegionTimer reg(t);
|
|
587
|
+
if (mp.Kappa() < 1e-8)
|
|
588
|
+
{
|
|
589
|
+
for (auto [x,c] : charges)
|
|
590
|
+
if (double rho = L2Norm(p-x); rho > 0)
|
|
591
|
+
sum += (1/(4*M_PI))*Complex(1,rho*mp.Kappa()) / rho * c;
|
|
592
|
+
}
|
|
593
|
+
else
|
|
594
|
+
for (auto [x,c] : charges)
|
|
595
|
+
if (double rho = L2Norm(p-x); rho > 0)
|
|
596
|
+
sum += (1/(4*M_PI))*exp(Complex(0,rho*mp.Kappa())) / rho * c;
|
|
542
597
|
|
|
543
598
|
for (auto [x,d,c] : dipoles)
|
|
544
599
|
if (double rho = L2Norm(p-x); rho > 0)
|
|
@@ -631,7 +686,7 @@ namespace ngfem
|
|
|
631
686
|
{
|
|
632
687
|
if (charges.Size()+dipoles.Size()+currents.Size() == 0)
|
|
633
688
|
{
|
|
634
|
-
mp = MultiPole<MPSingular,entry_type> (-1, mp.Kappa());
|
|
689
|
+
mp = MultiPole<MPSingular,entry_type> (-1, mp.Kappa(), 1.);
|
|
635
690
|
return;
|
|
636
691
|
}
|
|
637
692
|
|
|
@@ -719,8 +774,8 @@ namespace ngfem
|
|
|
719
774
|
bool havemp = false;
|
|
720
775
|
|
|
721
776
|
public:
|
|
722
|
-
SingularMLMultiPole (Vec<3> center, double r,
|
|
723
|
-
: root(center, r, 0,
|
|
777
|
+
SingularMLMultiPole (Vec<3> center, double r, double kappa)
|
|
778
|
+
: root(center, r, 0, kappa)
|
|
724
779
|
{
|
|
725
780
|
nodes_on_level = 0;
|
|
726
781
|
nodes_on_level[0] = 1;
|
|
@@ -728,7 +783,7 @@ namespace ngfem
|
|
|
728
783
|
|
|
729
784
|
double Kappa() const { return root.mp.Kappa(); }
|
|
730
785
|
|
|
731
|
-
void AddCharge(Vec<3> x,
|
|
786
|
+
void AddCharge(Vec<3> x, entry_type c)
|
|
732
787
|
{
|
|
733
788
|
root.AddCharge(x, c);
|
|
734
789
|
}
|
|
@@ -790,6 +845,7 @@ namespace ngfem
|
|
|
790
845
|
for (int i = 0; i <= maxlevel; i++)
|
|
791
846
|
cout << "sing " << i << ": " << nodes_on_level[i] << endl;
|
|
792
847
|
*/
|
|
848
|
+
|
|
793
849
|
root.CalcTotalSources();
|
|
794
850
|
root.CalcMP();
|
|
795
851
|
|
|
@@ -834,8 +890,8 @@ namespace ngfem
|
|
|
834
890
|
|
|
835
891
|
Array<const typename SingularMLMultiPole<elem_type>::Node*> singnodes;
|
|
836
892
|
|
|
837
|
-
Node (Vec<3> acenter, double ar, int alevel,
|
|
838
|
-
: center(acenter), r(ar), level(alevel), mp(MPOrder(ar*kappa), kappa, 1.0/min(1.0, 0.25*r*kappa))
|
|
893
|
+
Node (Vec<3> acenter, double ar, int alevel, double kappa)
|
|
894
|
+
: center(acenter), r(ar), level(alevel), mp(MPOrder(ar*kappa), kappa, ar) // 1.0/min(1.0, 0.25*r*kappa))
|
|
839
895
|
// : center(acenter), r(ar), level(alevel), mp(MPOrder(ar*kappa), kappa, 1.0)
|
|
840
896
|
{
|
|
841
897
|
if (level < nodes_on_level.Size())
|
|
@@ -853,7 +909,7 @@ namespace ngfem
|
|
|
853
909
|
cc(0) += (i&1) ? r/2 : -r/2;
|
|
854
910
|
cc(1) += (i&2) ? r/2 : -r/2;
|
|
855
911
|
cc(2) += (i&4) ? r/2 : -r/2;
|
|
856
|
-
childs[i] = make_unique<Node> (cc, r/2, level+1,
|
|
912
|
+
childs[i] = make_unique<Node> (cc, r/2, level+1, mp.Kappa());
|
|
857
913
|
}
|
|
858
914
|
}
|
|
859
915
|
|
|
@@ -946,7 +1002,7 @@ namespace ngfem
|
|
|
946
1002
|
mp.TransformAdd (ch->mp, ch->center-center);
|
|
947
1003
|
ch->LocalizeExpansion(allow_refine);
|
|
948
1004
|
}
|
|
949
|
-
mp = MultiPole<MPRegular,elem_type>(-1, mp.Kappa());
|
|
1005
|
+
mp = MultiPole<MPRegular,elem_type>(-1, mp.Kappa(), 1.);
|
|
950
1006
|
//mp.SH().Coefs()=0.0;
|
|
951
1007
|
}
|
|
952
1008
|
}
|
|
@@ -975,7 +1031,7 @@ namespace ngfem
|
|
|
975
1031
|
sum = mp.Eval(p-center);
|
|
976
1032
|
|
|
977
1033
|
|
|
978
|
-
static Timer t("mptool direct evaluate"); RegionTimer r(t);
|
|
1034
|
+
// static Timer t("mptool direct evaluate"); RegionTimer r(t);
|
|
979
1035
|
for (auto sn : singnodes)
|
|
980
1036
|
sum += sn->EvaluateMP(p);
|
|
981
1037
|
|
|
@@ -1037,7 +1093,8 @@ namespace ngfem
|
|
|
1037
1093
|
|
|
1038
1094
|
targets.Append( x );
|
|
1039
1095
|
|
|
1040
|
-
if (r*mp.Kappa() < 1e-8) return;
|
|
1096
|
+
// if (r*mp.Kappa() < 1e-8) return;
|
|
1097
|
+
if (level > 20) return;
|
|
1041
1098
|
if (targets.Size() < maxdirect && r*mp.Kappa() < 1)
|
|
1042
1099
|
return;
|
|
1043
1100
|
|
|
@@ -1070,7 +1127,7 @@ namespace ngfem
|
|
|
1070
1127
|
}
|
|
1071
1128
|
|
|
1072
1129
|
if (total_targets == 0)
|
|
1073
|
-
mp = MultiPole<MPRegular>(-1, mp.Kappa());
|
|
1130
|
+
mp = MultiPole<MPRegular,elem_type>(-1, mp.Kappa(),1.);
|
|
1074
1131
|
}
|
|
1075
1132
|
|
|
1076
1133
|
|
|
@@ -1093,8 +1150,8 @@ namespace ngfem
|
|
|
1093
1150
|
shared_ptr<SingularMLMultiPole<elem_type>> singmp;
|
|
1094
1151
|
|
|
1095
1152
|
public:
|
|
1096
|
-
RegularMLMultiPole (shared_ptr<SingularMLMultiPole<elem_type>> asingmp, Vec<3> center, double r
|
|
1097
|
-
: root(center, r, 0,
|
|
1153
|
+
RegularMLMultiPole (shared_ptr<SingularMLMultiPole<elem_type>> asingmp, Vec<3> center, double r)
|
|
1154
|
+
: root(center, r, 0, asingmp->Kappa()), singmp(asingmp)
|
|
1098
1155
|
{
|
|
1099
1156
|
if (!singmp->havemp) throw Exception("first call Calc for singular MP");
|
|
1100
1157
|
|
|
@@ -1123,8 +1180,8 @@ namespace ngfem
|
|
|
1123
1180
|
}
|
|
1124
1181
|
}
|
|
1125
1182
|
|
|
1126
|
-
RegularMLMultiPole (Vec<3> center, double r,
|
|
1127
|
-
: root(center, r, 0,
|
|
1183
|
+
RegularMLMultiPole (Vec<3> center, double r, double kappa)
|
|
1184
|
+
: root(center, r, 0, kappa)
|
|
1128
1185
|
{
|
|
1129
1186
|
nodes_on_level = 0;
|
|
1130
1187
|
nodes_on_level[0] = 1;
|
|
@@ -1137,6 +1194,8 @@ namespace ngfem
|
|
|
1137
1194
|
|
|
1138
1195
|
void CalcMP(shared_ptr<SingularMLMultiPole<elem_type>> asingmp)
|
|
1139
1196
|
{
|
|
1197
|
+
static Timer t("mptool regular MLMP"); RegionTimer rg(t);
|
|
1198
|
+
|
|
1140
1199
|
singmp = asingmp;
|
|
1141
1200
|
|
|
1142
1201
|
root.CalcTotalTargets();
|
|
@@ -1153,6 +1212,7 @@ namespace ngfem
|
|
|
1153
1212
|
cout << "reg " << i << ": " << RegularMLMultiPole::nodes_on_level[i] << endl;
|
|
1154
1213
|
*/
|
|
1155
1214
|
|
|
1215
|
+
static Timer tloc("mptool regular localize expansion"); RegionTimer rloc(tloc);
|
|
1156
1216
|
root.LocalizeExpansion(false);
|
|
1157
1217
|
}
|
|
1158
1218
|
|
|
@@ -1199,132 +1259,5 @@ namespace ngfem
|
|
|
1199
1259
|
|
|
1200
1260
|
|
|
1201
1261
|
|
|
1202
|
-
// ******************** Coefficient Functions *********************
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
class SphericalHarmonicsCF : public CoefficientFunction
|
|
1206
|
-
{
|
|
1207
|
-
SphericalHarmonics<Complex> sh;
|
|
1208
|
-
public:
|
|
1209
|
-
SphericalHarmonicsCF (int order)
|
|
1210
|
-
: CoefficientFunction(1, true), sh(order) { }
|
|
1211
|
-
Complex & Coef(int n, int m) { return sh.Coef(n,m); }
|
|
1212
|
-
|
|
1213
|
-
virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
|
|
1214
|
-
{ throw Exception("real eval not available"); }
|
|
1215
|
-
|
|
1216
|
-
virtual void Evaluate (const BaseMappedIntegrationPoint & mip, FlatVector<Complex> values) const override
|
|
1217
|
-
{
|
|
1218
|
-
values(0) = sh.Eval(mip.GetPoint());
|
|
1219
|
-
}
|
|
1220
|
-
|
|
1221
|
-
virtual void Evaluate (const BaseMappedIntegrationRule & ir, BareSliceMatrix<Complex> values) const override
|
|
1222
|
-
{
|
|
1223
|
-
for (int i = 0; i < ir.Size(); i++)
|
|
1224
|
-
{
|
|
1225
|
-
auto & mip = ir[i];
|
|
1226
|
-
values(i,0) = sh.Eval(mip.GetPoint());
|
|
1227
|
-
}
|
|
1228
|
-
}
|
|
1229
|
-
|
|
1230
|
-
auto & SH() { return sh; }
|
|
1231
|
-
};
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
template <typename entry_type> class RegularMLMultiPoleCF;
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
template <typename RADIAL, typename entry_type=Complex>
|
|
1239
|
-
class MultiPoleCF : public CoefficientFunction
|
|
1240
|
-
{
|
|
1241
|
-
MultiPole<RADIAL, entry_type> mp;
|
|
1242
|
-
Vec<3> center;
|
|
1243
|
-
public:
|
|
1244
|
-
MultiPoleCF (int order, double kappa, Vec<3> acenter, double scale = 1)
|
|
1245
|
-
: CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mp(order, kappa, scale), center(acenter) { }
|
|
1246
|
-
|
|
1247
|
-
entry_type & Coef(int n, int m) { return mp.Coef(n,m); }
|
|
1248
|
-
auto & SH() { return mp.SH(); }
|
|
1249
|
-
auto & MP() { return mp; }
|
|
1250
|
-
Vec<3> Center() const { return center; }
|
|
1251
|
-
|
|
1252
|
-
virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
|
|
1253
|
-
{ throw Exception("real eval not available"); }
|
|
1254
|
-
|
|
1255
|
-
virtual void Evaluate (const BaseMappedIntegrationPoint & mip, FlatVector<Complex> values) const override
|
|
1256
|
-
{
|
|
1257
|
-
if constexpr (std::is_same<entry_type, Complex>())
|
|
1258
|
-
values(0) = mp.Eval(mip.GetPoint()-center);
|
|
1259
|
-
else
|
|
1260
|
-
values = mp.Eval(mip.GetPoint()-center);
|
|
1261
|
-
}
|
|
1262
|
-
|
|
1263
|
-
template <typename TARGET>
|
|
1264
|
-
void ShiftZ (double z, MultiPole<TARGET, entry_type> & target) { mp.ShiftZ(z, target); }
|
|
1265
|
-
|
|
1266
|
-
using CoefficientFunction::Transform;
|
|
1267
|
-
template <typename TARGET>
|
|
1268
|
-
void Transform (MultiPoleCF<TARGET, entry_type> & target)
|
|
1269
|
-
{
|
|
1270
|
-
mp.Transform (target.MP(), target.Center()-center);
|
|
1271
|
-
}
|
|
1272
|
-
};
|
|
1273
|
-
|
|
1274
|
-
template <typename entry_type>
|
|
1275
|
-
class SingularMLMultiPoleCF : public CoefficientFunction
|
|
1276
|
-
{
|
|
1277
|
-
shared_ptr<SingularMLMultiPole<entry_type>> mlmp;
|
|
1278
|
-
public:
|
|
1279
|
-
SingularMLMultiPoleCF (Vec<3> center, double r, int order, double kappa)
|
|
1280
|
-
: CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<SingularMLMultiPole<entry_type>>(center, r, order, kappa)} { }
|
|
1281
|
-
|
|
1282
|
-
virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
|
|
1283
|
-
{ throw Exception("real eval not available"); }
|
|
1284
|
-
|
|
1285
|
-
virtual void Evaluate (const BaseMappedIntegrationPoint & mip, FlatVector<Complex> values) const override
|
|
1286
|
-
{
|
|
1287
|
-
// values(0) = mlmp->Evaluate(mip.GetPoint());
|
|
1288
|
-
|
|
1289
|
-
if constexpr (std::is_same<entry_type, Complex>())
|
|
1290
|
-
values(0) = mlmp->Evaluate(mip.GetPoint());
|
|
1291
|
-
else
|
|
1292
|
-
values = mlmp->Evaluate(mip.GetPoint());
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
}
|
|
1296
|
-
|
|
1297
|
-
shared_ptr<SingularMLMultiPole<entry_type>> MLMP() const { return mlmp; }
|
|
1298
|
-
shared_ptr<RegularMLMultiPoleCF<entry_type>> CreateRegularExpansion(Vec<3> center, double r) const;
|
|
1299
|
-
};
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
template <typename entry_type>
|
|
1303
|
-
class RegularMLMultiPoleCF : public CoefficientFunction
|
|
1304
|
-
{
|
|
1305
|
-
shared_ptr<RegularMLMultiPole<entry_type>> mlmp;
|
|
1306
|
-
public:
|
|
1307
|
-
RegularMLMultiPoleCF (shared_ptr<SingularMLMultiPoleCF<entry_type>> asingmp, Vec<3> center, double r, int order)
|
|
1308
|
-
: CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<RegularMLMultiPole<entry_type>>(asingmp->MLMP(), center, r, order)} { }
|
|
1309
|
-
RegularMLMultiPoleCF (shared_ptr<SingularMLMultiPole<entry_type>> asingmp, Vec<3> center, double r, int order)
|
|
1310
|
-
: CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<RegularMLMultiPole<entry_type>>(asingmp, center, r, order)} { }
|
|
1311
|
-
|
|
1312
|
-
virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
|
|
1313
|
-
{ throw Exception("real eval not available"); }
|
|
1314
|
-
|
|
1315
|
-
virtual void Evaluate (const BaseMappedIntegrationPoint & mip, FlatVector<Complex> values) const override
|
|
1316
|
-
{
|
|
1317
|
-
// values(0) = mlmp->Evaluate(mip.GetPoint());
|
|
1318
|
-
|
|
1319
|
-
if constexpr (std::is_same<entry_type, Complex>())
|
|
1320
|
-
values(0) = mlmp->Evaluate(mip.GetPoint());
|
|
1321
|
-
else
|
|
1322
|
-
values = mlmp->Evaluate(mip.GetPoint());
|
|
1323
|
-
}
|
|
1324
|
-
|
|
1325
|
-
shared_ptr<RegularMLMultiPole<entry_type>> MLMP() { return mlmp; }
|
|
1326
|
-
};
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
1262
|
}
|
|
1330
1263
|
#endif
|
netgen/lib/libngsolve.lib
CHANGED
|
Binary file
|
netgen/libngsolve.dll
CHANGED
|
Binary file
|
ngsolve/__init__.py
CHANGED
|
@@ -75,6 +75,7 @@ from .utils import x, y, z, dx, ds, grad, Grad, curl, div, Deviator, PyId, PyTra
|
|
|
75
75
|
from . import solvers
|
|
76
76
|
from . import preconditioners
|
|
77
77
|
from . import timestepping
|
|
78
|
+
from .solve_implementation import Solve
|
|
78
79
|
|
|
79
80
|
try:
|
|
80
81
|
from netgen.occ import unit_square, unit_cube
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
set(PACKAGE_VERSION "6.2.
|
|
1
|
+
set(PACKAGE_VERSION "6.2.2504")
|
|
2
2
|
find_package(Netgen CONFIG REQUIRED HINTS
|
|
3
3
|
${CMAKE_CURRENT_LIST_DIR}
|
|
4
4
|
${CMAKE_CURRENT_LIST_DIR}/..
|
|
@@ -23,15 +23,15 @@ set(NGSOLVE_PYBIND_INCLUDE_DIR "")
|
|
|
23
23
|
set(NGSOLVE_PYTHON_INCLUDE_DIRS "C:/Python313/Include")
|
|
24
24
|
set(NGSOLVE_PYTHON_LIBRARIES "C:/Python313/libs/python313.lib")
|
|
25
25
|
set(NGSOLVE_PYTHON_PACKAGES_INSTALL_DIR "")
|
|
26
|
-
set(NGSOLVE_TCL_INCLUDE_PATH "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/
|
|
26
|
+
set(NGSOLVE_TCL_INCLUDE_PATH "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/netgen/_skbuild/win-amd64-3.13/cmake-build/dependencies/src/project_tcl/generic")
|
|
27
27
|
set(NGSOLVE_TCL_LIBRARY "C:/Python313/tcl/tclstub86.lib")
|
|
28
28
|
set(NGSOLVE_TK_DND_LIBRARY "")
|
|
29
|
-
set(NGSOLVE_TK_INCLUDE_PATH "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/
|
|
29
|
+
set(NGSOLVE_TK_INCLUDE_PATH "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/netgen/_skbuild/win-amd64-3.13/cmake-build/dependencies/src/project_tk/generic")
|
|
30
30
|
set(NGSOLVE_TK_LIBRARY "C:/Python313/tcl/tkstub86.lib")
|
|
31
31
|
set(NGSOLVE_X11_X11_LIB "")
|
|
32
32
|
set(NGSOLVE_X11_Xmu_LIB "")
|
|
33
|
-
set(NGSOLVE_ZLIB_INCLUDE_DIRS "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/
|
|
34
|
-
set(NGSOLVE_ZLIB_LIBRARIES "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/
|
|
33
|
+
set(NGSOLVE_ZLIB_INCLUDE_DIRS "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/netgen/_skbuild/win-amd64-3.13/cmake-build/dependencies/zlib/include")
|
|
34
|
+
set(NGSOLVE_ZLIB_LIBRARIES "C:/gitlabci/tools/builds/3zsqG5ns/0/ngsolve/netgen/_skbuild/win-amd64-3.13/cmake-build/dependencies/zlib/lib/zlibstatic.lib")
|
|
35
35
|
|
|
36
36
|
set(NGSOLVE_INTEL_MIC OFF)
|
|
37
37
|
set(NGSOLVE_USE_CCACHE ON)
|
|
@@ -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 netgen_python ngstd ngbla ngla ngfem ngcomp ngsolve)
|
|
22
|
+
foreach(_cmake_expected_target IN ITEMS netgen_libs ngs_lapack netgen_python 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}")
|
|
@@ -107,6 +107,13 @@ set_target_properties(ngfem PROPERTIES
|
|
|
107
107
|
INTERFACE_LINK_LIBRARIES "ngbla;ngstd;\$<LINK_ONLY:>"
|
|
108
108
|
)
|
|
109
109
|
|
|
110
|
+
# Create imported target ngsbem
|
|
111
|
+
add_library(ngsbem INTERFACE IMPORTED)
|
|
112
|
+
|
|
113
|
+
set_target_properties(ngsbem PROPERTIES
|
|
114
|
+
INTERFACE_LINK_LIBRARIES "ngcomp;ngfem;ngla;ngbla;ngstd;\$<LINK_ONLY:>"
|
|
115
|
+
)
|
|
116
|
+
|
|
110
117
|
# Create imported target ngcomp
|
|
111
118
|
add_library(ngcomp INTERFACE IMPORTED)
|
|
112
119
|
|
|
@@ -118,7 +125,7 @@ set_target_properties(ngcomp PROPERTIES
|
|
|
118
125
|
add_library(ngsolve SHARED IMPORTED)
|
|
119
126
|
|
|
120
127
|
set_target_properties(ngsolve PROPERTIES
|
|
121
|
-
INTERFACE_LINK_LIBRARIES "netgen_libs;ngsolve;ngcomp;ngfem;ngbla;ngla;ngstd"
|
|
128
|
+
INTERFACE_LINK_LIBRARIES "netgen_libs;ngsolve;ngcomp;ngfem;ngsbem;ngbla;ngla;ngstd"
|
|
122
129
|
)
|
|
123
130
|
|
|
124
131
|
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.
|
|
33
|
-
NGSOLVE_VERSION_GIT = "v6.2.
|
|
34
|
-
NGSOLVE_VERSION_PYTHON = "6.2.
|
|
32
|
+
NGSOLVE_VERSION = "6.2.2504"
|
|
33
|
+
NGSOLVE_VERSION_GIT = "v6.2.2504-0-g7dd7ba8dd"
|
|
34
|
+
NGSOLVE_VERSION_PYTHON = "6.2.2504"
|
|
35
35
|
|
|
36
36
|
NGSOLVE_VERSION_MAJOR = "6"
|
|
37
37
|
NGSOLVE_VERSION_MINOR = "2"
|
|
38
|
-
NGSOLVE_VERSION_TWEAK = "
|
|
39
|
-
NGSOLVE_VERSION_PATCH = "
|
|
40
|
-
NGSOLVE_VERSION_HASH = "
|
|
38
|
+
NGSOLVE_VERSION_TWEAK = "0"
|
|
39
|
+
NGSOLVE_VERSION_PATCH = "2504"
|
|
40
|
+
NGSOLVE_VERSION_HASH = "g7dd7ba8dd"
|
|
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/ngslib.pyd
CHANGED
|
Binary file
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import functools
|
|
2
|
+
|
|
3
|
+
from ngsolve import (
|
|
4
|
+
BilinearForm,
|
|
5
|
+
GridFunction,
|
|
6
|
+
CoefficientFunction,
|
|
7
|
+
Region,
|
|
8
|
+
BND,
|
|
9
|
+
Preconditioner,
|
|
10
|
+
)
|
|
11
|
+
from .nonlinearsolvers import NewtonSolver
|
|
12
|
+
from .krylovspace import GMResSolver, LinearSolver
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class Dirichlet:
|
|
16
|
+
def __init__(self, cf, region):
|
|
17
|
+
self.cf = cf
|
|
18
|
+
self.region = region
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class Application:
|
|
22
|
+
def __init__(self, a: BilinearForm, gf: GridFunction):
|
|
23
|
+
self.a = a
|
|
24
|
+
self.gf = gf
|
|
25
|
+
|
|
26
|
+
def Solve(
|
|
27
|
+
self,
|
|
28
|
+
rhs,
|
|
29
|
+
*args,
|
|
30
|
+
dirichlet = None,
|
|
31
|
+
pre = None,
|
|
32
|
+
printrates: bool = False,
|
|
33
|
+
**kwargs,
|
|
34
|
+
):
|
|
35
|
+
raise NotImplementedError("Solve method must be implemented in subclasses")
|
|
36
|
+
|
|
37
|
+
def __eq__(self, other):
|
|
38
|
+
return Equation(self, other)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class NonLinearApplication(Application):
|
|
42
|
+
def Solve(
|
|
43
|
+
self,
|
|
44
|
+
rhs=None,
|
|
45
|
+
dirichlet = None,
|
|
46
|
+
printing: bool = False,
|
|
47
|
+
**kwargs,
|
|
48
|
+
):
|
|
49
|
+
solver_args = {}
|
|
50
|
+
|
|
51
|
+
if rhs is not None and rhs != 0:
|
|
52
|
+
rhs.Assemble()
|
|
53
|
+
solver_args["rhs"] = rhs
|
|
54
|
+
solver = NewtonSolver(self.a, self.gf, **solver_args)
|
|
55
|
+
if dirichlet is not None:
|
|
56
|
+
dirichlet_gf = GridFunction(self.gf.space)
|
|
57
|
+
if isinstance(dirichlet, Dirichlet):
|
|
58
|
+
dirichlet_gf.Set(dirichlet.cf, definedon=dirichlet.region)
|
|
59
|
+
else:
|
|
60
|
+
dirichlet_gf.Set(dirichlet, BND)
|
|
61
|
+
solver.SetDirichlet(dirichlet_gf.vec)
|
|
62
|
+
solver.Solve(**kwargs)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class LinearApplication(Application):
|
|
66
|
+
def Assemble(self):
|
|
67
|
+
if not hasattr(self, "vec"):
|
|
68
|
+
self.vec = self.gf.vec.CreateVector()
|
|
69
|
+
self.a.Apply(self.gf.vec, self.vec)
|
|
70
|
+
|
|
71
|
+
def Solve(
|
|
72
|
+
self,
|
|
73
|
+
rhs,
|
|
74
|
+
*args,
|
|
75
|
+
dirichlet = None,
|
|
76
|
+
pre = None,
|
|
77
|
+
lin_solver=None,
|
|
78
|
+
lin_solver_args = None,
|
|
79
|
+
printrates: bool = False,
|
|
80
|
+
):
|
|
81
|
+
self.a.Assemble()
|
|
82
|
+
for arg in args:
|
|
83
|
+
if isinstance(arg, Dirichlet) or isinstance(arg, CoefficientFunction):
|
|
84
|
+
assert dirichlet is None, "Only one dirichlet condition can be set"
|
|
85
|
+
dirichlet = arg
|
|
86
|
+
if isinstance(arg, Preconditioner):
|
|
87
|
+
assert pre is None, "Only one preconditioner can be set"
|
|
88
|
+
pre = arg
|
|
89
|
+
if isinstance(arg, type) and issubclass(arg, LinearSolver):
|
|
90
|
+
assert lin_solver is None, "Only one linear solver can be set"
|
|
91
|
+
lin_solver = arg
|
|
92
|
+
rhs.Assemble()
|
|
93
|
+
if dirichlet is not None:
|
|
94
|
+
if isinstance(dirichlet, Dirichlet):
|
|
95
|
+
self.gf.Set(dirichlet.cf, definedon=dirichlet.region)
|
|
96
|
+
else:
|
|
97
|
+
self.gf.Set(dirichlet, BND)
|
|
98
|
+
rhs.vec.data += -self.a.mat * self.gf.vec
|
|
99
|
+
else:
|
|
100
|
+
self.gf.vec[:] = 0.0
|
|
101
|
+
if self.a.condense:
|
|
102
|
+
rhs.vec.data += self.a.harmonic_extension_trans * rhs.vec
|
|
103
|
+
if pre is None and lin_solver is None:
|
|
104
|
+
ainv = self.a.mat.Inverse(self.a.space.FreeDofs(self.a.condense))
|
|
105
|
+
else:
|
|
106
|
+
if lin_solver is None:
|
|
107
|
+
lin_solver = GMResSolver
|
|
108
|
+
if lin_solver_args is None:
|
|
109
|
+
lin_solver_args = {}
|
|
110
|
+
if pre is None:
|
|
111
|
+
freedofs = self.a.space.FreeDofs(self.a.condense)
|
|
112
|
+
else:
|
|
113
|
+
freedofs = None
|
|
114
|
+
if "printrates" not in lin_solver_args:
|
|
115
|
+
lin_solver_args["printrates"] = printrates
|
|
116
|
+
ainv = lin_solver(
|
|
117
|
+
mat=self.a.mat, pre=pre, freedofs=freedofs, **lin_solver_args
|
|
118
|
+
)
|
|
119
|
+
self.gf.vec.data += ainv * rhs.vec
|
|
120
|
+
if self.a.condense:
|
|
121
|
+
self.gf.vec.data += self.a.harmonic_extension * self.gf.vec
|
|
122
|
+
self.gf.vec.data += self.a.inner_solve * rhs.vec
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
class Equation:
|
|
126
|
+
def __init__(self, lhs, rhs):
|
|
127
|
+
self.lhs = lhs
|
|
128
|
+
self.rhs = rhs
|
|
129
|
+
|
|
130
|
+
@functools.wraps(Application.Solve)
|
|
131
|
+
def Solve(self, *args, **kwargs):
|
|
132
|
+
self.lhs.Solve(self.rhs, *args, **kwargs)
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
def _create_lin_appl(self, gfu: GridFunction) -> LinearApplication:
|
|
136
|
+
if not isinstance(gfu, GridFunction):
|
|
137
|
+
raise TypeError("gfu must be a GridFunction")
|
|
138
|
+
return LinearApplication(self, gfu)
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
BilinearForm.__mul__ = _create_lin_appl
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
@functools.wraps(Application.Solve)
|
|
145
|
+
def Solve(eq: Equation, *args, **kwargs):
|
|
146
|
+
eq.Solve(*args, **kwargs)
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ngsolve
|
|
3
|
-
Version: 6.2.
|
|
3
|
+
Version: 6.2.2504
|
|
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.
|
|
8
|
+
Requires-Dist: netgen-mesher==6.2.2504
|
|
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=mmNFiq5mZMr3CDr04DumWeWB3B3-qdFluFhTRdn68Qc,35495936
|
|
2
2
|
netgen/ngscxx.bat,sha256=lYKv3R_bPhoRmCSkSEJ6TxtW-K9qCUtY4cS9jlom66c,670
|
|
3
3
|
netgen/ngsld.bat,sha256=YD1I1rK70K_YvLev7aYQMD9mCcwF55k1B_8pRWPpob0,428
|
|
4
4
|
netgen/include/arnoldi.hpp,sha256=m39slyQUujB_9j3NDfTpEWyldC6Fw8natUpPuBkevLM,1492
|
|
@@ -90,10 +90,11 @@ netgen/include/hidden.hpp,sha256=t_dOumFNhFSPbqVVEnH2N7J4kZjKIdBCzIgGAXa9YXg,272
|
|
|
90
90
|
netgen/include/householder.hpp,sha256=DUZUZ-zG7zVTtpgUB7Bpo3-1l-w0QciSVBvzEmi7h_A,6101
|
|
91
91
|
netgen/include/hypre_ams_precond.hpp,sha256=fi2sMKV46VwHxj1mIcOorpA3eK0dJg2magch0YexSLE,3288
|
|
92
92
|
netgen/include/hypre_precond.hpp,sha256=_85-R4NqLi2w7GT-vHAk1SMIlbnxYUl1JDAwCpkIdTI,1918
|
|
93
|
-
netgen/include/integrator.hpp,sha256=
|
|
93
|
+
netgen/include/integrator.hpp,sha256=NsPm_eyi-OP6iSUTGfoiigGROuT4PgW3Z7qEHA8Btno,67156
|
|
94
94
|
netgen/include/integratorcf.hpp,sha256=YFUZSINM8_aUfXc73ewJEBVesuR6wD-mnt9rHoiB5Wg,8119
|
|
95
95
|
netgen/include/interpolate.hpp,sha256=mM3hYHpyjUtVlrinl59DaCUGA04F82-ZAJUCYMuh76M,1689
|
|
96
96
|
netgen/include/intrule.hpp,sha256=XxsIC1L5b4DMfXu9xe7Kr9gKgFki9g0p39nByE-k2eY,83361
|
|
97
|
+
netgen/include/intrules_SauterSchwab.hpp,sha256=2f9Lb77H6sgaVq7576L78zNGbv4MYgHpddIzfc36TKA,675
|
|
97
98
|
netgen/include/irspace.hpp,sha256=UFWeaFVUDwsHCJZqtZBBDnhWC4Oyy34z9Pr6KzofHPg,1557
|
|
98
99
|
netgen/include/jacobi.hpp,sha256=Y4lJtfjoeHjtuYqlNwMH_WDumFmARIw4a-V8eU_Ij9o,4222
|
|
99
100
|
netgen/include/l2hofe.hpp,sha256=03O8VX8PyBM6v8IrrVooN85H_X-NM4j2neDPivn-xGI,6843
|
|
@@ -106,7 +107,8 @@ netgen/include/matrix.hpp,sha256=0UT4qQMFBMf3eq8FS7XTkMbQaVSgz--EiNdVMzGq-Sc,579
|
|
|
106
107
|
netgen/include/memusage.hpp,sha256=m_-fuupqepSve37WkRkoFHHyTtE9PdGnOVPIdQHlDiw,1209
|
|
107
108
|
netgen/include/meshaccess.hpp,sha256=Yk5VSmQx4cp5WEHnfsZXUOijVlooEoozTAaUu75zla8,48419
|
|
108
109
|
netgen/include/mgpre.hpp,sha256=5Zqt3pzrvm3EOfr84iU6rQx23LTkntUTd_s4_i6wEzI,5029
|
|
109
|
-
netgen/include/
|
|
110
|
+
netgen/include/mp_coefficient.hpp,sha256=TroJJa2ZrOfh8xaU2TY4m8raSaxvMU4pBXpxAeOZSt8,4876
|
|
111
|
+
netgen/include/mptools.hpp,sha256=ZiykV7RaX07CpRK5fJRO-vCUGJs_iusPXNK6G8rmKt8,35737
|
|
110
112
|
netgen/include/multigrid.hpp,sha256=7YgJfeGTBnb-aFWHrbcVk3dos6XYU0iVCgiY8UvRopY,898
|
|
111
113
|
netgen/include/multivector.hpp,sha256=5rkNSqyPhIXAb1lGKLcy908D9Uw9oqY4wpUXZEXbEPE,13082
|
|
112
114
|
netgen/include/mumpsinverse.hpp,sha256=8YiUlQZMFVsJ0kuwaSphGZvxyEZJAZZApH8XahiTeEo,4249
|
|
@@ -135,7 +137,7 @@ netgen/include/plateaufespace.hpp,sha256=EKUQyPESNdB1vhz3U7B-QVQmfkNACNk2r5KvN-x
|
|
|
135
137
|
netgen/include/pml.hpp,sha256=iftuUVHXkFSqa-dIU8hImQewscv0qdek_fN3gR9xbSY,7559
|
|
136
138
|
netgen/include/pmltrafo.hpp,sha256=j6Sk5tHbzKPT1hj_jI6n6-cRUgV5b3_o3kRNev95wDE,20237
|
|
137
139
|
netgen/include/postproc.hpp,sha256=TiEqDkANZJtxl-aOYMac-FKhtSkokXS3AuxAScqUDBQ,5334
|
|
138
|
-
netgen/include/potentialtools.hpp,sha256=
|
|
140
|
+
netgen/include/potentialtools.hpp,sha256=DhBMmkL4xcm3UYOqt1cWoonjVf5m2ceCxp6s6qTWp24,355
|
|
139
141
|
netgen/include/precomp.hpp,sha256=mx_zGsnBxqRVArwgkDpvUcX8EzP8v_8QwVdOp5m1nWQ,1337
|
|
140
142
|
netgen/include/preconditioner.hpp,sha256=3UCrQqZ49YUHneg24-JoYVO40B4Di1DR-A3TQLZme2A,14630
|
|
141
143
|
netgen/include/prolongation.hpp,sha256=WjfpHPXxSBa1lOPbrTXEKo44wxe6OeGVMPK-XR0E-7c,11304
|
|
@@ -162,7 +164,7 @@ netgen/include/specialelement.hpp,sha256=ovP0KuLWkBRnoc72hfzGgrrigzNQBdJexVAgSUj
|
|
|
162
164
|
netgen/include/statushandler.hpp,sha256=IJPw19bARTth8D8wc6kHTBkxE4o3QTWB-cGDGz1Q2oE,679
|
|
163
165
|
netgen/include/stringops.hpp,sha256=vN_DL7f2M5e9dLpZOHIVDXzwoSovbqtuqClZdYMVDrA,274
|
|
164
166
|
netgen/include/superluinverse.hpp,sha256=A5YmUv_5R0qAzcD4zIxpUPAB6HqLcXuFU6J91Ygmnio,3301
|
|
165
|
-
netgen/include/symbolicintegrator.hpp,sha256=
|
|
167
|
+
netgen/include/symbolicintegrator.hpp,sha256=LreQR0qRXW4V6VFG-Ihkw2YhTzj89CxQ27RpqfZxedc,36882
|
|
166
168
|
netgen/include/symmetricmatrix.hpp,sha256=M79mq0z70ohLFoi8cxPAxxlqD3RjFZAkbCrHwQrhvY8,2954
|
|
167
169
|
netgen/include/tangentialfacetfe.hpp,sha256=iEP_cU3nBtVUnH67dvzeMqIS-JM6SeILhB738YX9Spg,7491
|
|
168
170
|
netgen/include/tangentialfacetfespace.hpp,sha256=Ot0m9OA3ps0xh7AWiLUK-yeZ40ogeFx7zY6dGWQuTPc,2808
|
|
@@ -185,11 +187,11 @@ netgen/include/voxelcoefficientfunction.hpp,sha256=zPlatX_nf2ODK2X979wvpm1HXHEzn
|
|
|
185
187
|
netgen/include/vtkoutput.hpp,sha256=GwPaFtOVY27_1hKwSqpNHV4ppOk3CVsLdMpocm27odQ,6628
|
|
186
188
|
netgen/include/vvector.hpp,sha256=vpnwWlNWsEJB26ve8cKADbUMGVBTTVCFvrBC4r_LDDQ,4785
|
|
187
189
|
netgen/include/webgui.hpp,sha256=xm1S5KHockrzf_R4zHzQ9fzwfQ4H5aZaZm9ItCaR41s,2199
|
|
188
|
-
netgen/lib/libngsolve.lib,sha256=
|
|
190
|
+
netgen/lib/libngsolve.lib,sha256=AeN7OZ3x6M1AwBa7BamxDSeQ-D1QryuMbDSLZw7NK9Q,13492716
|
|
189
191
|
ngsolve/TensorProductTools.py,sha256=jD4LtJdEiLt2dDsU6STMXb10yrau_i20gatwGlqbiFQ,8562
|
|
190
192
|
ngsolve/__console.py,sha256=QLnfw1ONU9eVPQZ_LjzY-7b_gfZpRRRdI7imHR1lJR8,2983
|
|
191
193
|
ngsolve/__expr.py,sha256=ZAtv94PVtAdvWWKFIvQGJC55aIEY6ajo-l5Hp-1V-6s,4396
|
|
192
|
-
ngsolve/__init__.py,sha256=
|
|
194
|
+
ngsolve/__init__.py,sha256=_pRJLhaBNqv2q1vigj9p-2YqRbiROROrnl3iVM9G2ow,5620
|
|
193
195
|
ngsolve/_scikit_build_core_dependencies.py,sha256=usioLq44m3uusEH205dW0czyzGmzy87PZgizZKUoPs0,765
|
|
194
196
|
ngsolve/bvp.py,sha256=STQCDhEphVgEK3hfWGJyVkS1vi_ubTTKHq7fnuR-POo,2065
|
|
195
197
|
ngsolve/directsolvers.py,sha256=lVfEluGDFd_u6Y-vyQ08VjHA02xQuklIQ91hMopj-40,1021
|
|
@@ -200,20 +202,21 @@ ngsolve/meshes.py,sha256=nz95LP1EEIVAEJ0jyQGqq0E-62uuy2tvIRgqIrEqDHQ,27534
|
|
|
200
202
|
ngsolve/ngs2petsc.py,sha256=PLAkvu4H-ZEXd0-bM2v0OJX7gga-OJ9d-NB7g322-wQ,12809
|
|
201
203
|
ngsolve/ngscxx.py,sha256=r9TV49w0MKIxE6fgJYO4FNv-5wcM9eAFYIG9GspUy_A,1335
|
|
202
204
|
ngsolve/ngslib.lib,sha256=_HzV4t-JUpCMSs1rNu4Jjtmr69v0FQUaOatAn17WF4A,1716
|
|
203
|
-
ngsolve/ngslib.pyd,sha256=
|
|
205
|
+
ngsolve/ngslib.pyd,sha256=jQv9xYM8vAc5GeVnFG_AhqHyeYEX0pVARMuGehkiFhs,123904
|
|
204
206
|
ngsolve/nonlinearsolvers.py,sha256=nKd-SVJseTWztHZPEPKsbv0mLwQjFILZtOh7Ggft0xs,8419
|
|
205
207
|
ngsolve/preconditioners.py,sha256=2To9cGdhZscFRKrIb6NfjKLBXoIfkemnhryaXrdgNC8,218
|
|
208
|
+
ngsolve/solve_implementation.py,sha256=djtTbzhY_CE_7kIh9NLKoeieUu7JJxJ6nqXf6UH9VG0,4524
|
|
206
209
|
ngsolve/solvers.py,sha256=Vbm5RfIJ83nMtQ1pYJL0uBBuys4-mcY6b63MNkyiqxU,311
|
|
207
210
|
ngsolve/timestepping.py,sha256=SuKsFS7cDXRixKWdMMIWW4flet12HLeqWTBC0DFhPwg,8535
|
|
208
211
|
ngsolve/timing.py,sha256=j_Plbbh51pS9QwMq93hyvFDSrbywmdKZ6Z6OOZmZoe4,4093
|
|
209
212
|
ngsolve/utils.py,sha256=jg6smLuKF6G9Rvg-EXjyYwjFJGyyiqSRknevdjp-9J4,4724
|
|
210
213
|
ngsolve/webgui.py,sha256=MG9bzYvfZYodiC5-DR-9auveCzKX3d13AGOgKANne-A,24902
|
|
211
|
-
ngsolve/cmake/NGSolveConfig.cmake,sha256=
|
|
214
|
+
ngsolve/cmake/NGSolveConfig.cmake,sha256=sICs2yAbTzTUuoMJ34_5y902yILrVv-DuG6oolkW_b0,5141
|
|
212
215
|
ngsolve/cmake/ngsolve-targets-release.cmake,sha256=knQjCmz6J-x_Egg5DosY5hU_CZdZlSQxQ4Za7pS07fA,907
|
|
213
|
-
ngsolve/cmake/ngsolve-targets.cmake,sha256=
|
|
216
|
+
ngsolve/cmake/ngsolve-targets.cmake,sha256=CSIYvZ8gS7DYqkGspg957nzJsnIoh_Mr6s2W7ltS1w8,6179
|
|
214
217
|
ngsolve/config/__init__.py,sha256=IjGKWBHvRx572Z6m-5z0q82xuQaWlBABy1whwy2Uxak,23
|
|
215
218
|
ngsolve/config/__main__.py,sha256=anI_XpgrpEnVnMyrFiH3Yon_tpQZkehnqRTNC02NiBI,93
|
|
216
|
-
ngsolve/config/config.py,sha256=
|
|
219
|
+
ngsolve/config/config.py,sha256=fu6rd8X8B5C5bisFb093Iab7gER4BNfjmD48AzGWk1M,2521
|
|
217
220
|
ngsolve/demos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
218
221
|
ngsolve/demos/TensorProduct/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
219
222
|
ngsolve/demos/TensorProduct/tp_dg_1d_1d.py,sha256=3Q9ntmVJGIKQ-JLdGWgECR_kDjTG8FPVCSiTJkxyi40,2188
|
|
@@ -245,37 +248,37 @@ ngsolve/demos/mpi/mpi_cmagnet.py,sha256=59TuQvIIGoDStyJneH47NG131nppBoQpZQ9rfvG_
|
|
|
245
248
|
ngsolve/demos/mpi/mpi_navierstokes.py,sha256=ieAWMDd9LoH99L14iBgF_YmX_xk7gltZ9MruTFN6xAY,3028
|
|
246
249
|
ngsolve/demos/mpi/mpi_poisson.py,sha256=_-H0HFqlwlpasiVD9OQjUvJbWJcQ34-4y-va1WOSOzE,2557
|
|
247
250
|
ngsolve/demos/mpi/mpi_timeDG.py,sha256=FUOh_1dzOGUU-uAsD4iyz0RVT382jMiMiuYkZjarhAE,1963
|
|
248
|
-
ngsolve-6.2.
|
|
249
|
-
ngsolve-6.2.
|
|
250
|
-
ngsolve-6.2.
|
|
251
|
-
ngsolve-6.2.
|
|
252
|
-
ngsolve-6.2.
|
|
253
|
-
ngsolve-6.2.
|
|
254
|
-
ngsolve-6.2.
|
|
255
|
-
ngsolve-6.2.
|
|
256
|
-
ngsolve-6.2.
|
|
257
|
-
ngsolve-6.2.
|
|
258
|
-
ngsolve-6.2.
|
|
259
|
-
ngsolve-6.2.
|
|
260
|
-
ngsolve-6.2.
|
|
261
|
-
ngsolve-6.2.
|
|
262
|
-
ngsolve-6.2.
|
|
263
|
-
ngsolve-6.2.
|
|
264
|
-
ngsolve-6.2.
|
|
265
|
-
ngsolve-6.2.
|
|
266
|
-
ngsolve-6.2.
|
|
267
|
-
ngsolve-6.2.
|
|
268
|
-
ngsolve-6.2.
|
|
269
|
-
ngsolve-6.2.
|
|
270
|
-
ngsolve-6.2.
|
|
271
|
-
ngsolve-6.2.
|
|
272
|
-
ngsolve-6.2.
|
|
273
|
-
ngsolve-6.2.
|
|
274
|
-
ngsolve-6.2.
|
|
275
|
-
ngsolve-6.2.
|
|
276
|
-
ngsolve-6.2.
|
|
277
|
-
ngsolve-6.2.
|
|
278
|
-
ngsolve-6.2.
|
|
279
|
-
ngsolve-6.2.
|
|
280
|
-
ngsolve-6.2.
|
|
281
|
-
ngsolve-6.2.
|
|
251
|
+
ngsolve-6.2.2504.data/data/Scripts/ngsolve.tcl,sha256=8KBOXZKYU_qx8785PIjdmVjcUbCxR5aYrod0BZ4UgGc,21637
|
|
252
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/beam.geo,sha256=HTv0A6IUoVuavifolhGKY6U44z0hni07Htonqe6rw_A,404
|
|
253
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/beam.vol,sha256=QZbM9JE4rBs5nVXaw7ZAbDf60yXbX19bm1OnOScF57M,13834
|
|
254
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/chip.in2d,sha256=561AjEIPnlzMZHIzep5lRjocQDm8w7o7IDna5u8s9JQ,592
|
|
255
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/chip.vol,sha256=gkEmBWlQh8BkSFNTf-XISfmuGzHXDKANV4Uoww_BwJI,28511
|
|
256
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/coil.geo,sha256=ylB2OiWEZztFXPx99qTNRJKmZFIDPEezEgQt4EPtZRA,376
|
|
257
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/coil.vol,sha256=t8cWP_YX38FMw0S-7vEVUOcSH0VK6DlaqVWG_zmBo-4,147284
|
|
258
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/coilshield.geo,sha256=Sq8w7i22WQ0viaiM3bU_63lZGFWp8JgyDqs3RdjeTe0,629
|
|
259
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/coilshield.vol,sha256=JiZOM9A529-hikvv1kyLwffTRpeatLtaVTNcu42o1fo,165576
|
|
260
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/cube.geo,sha256=Wd9AnPdoQgjQ-JK6zmoXjsNxPR9B8ED4pdHVwmRoe1M,405
|
|
261
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/cube.vol,sha256=RS8bay_KlF6IZM0QDDr7_dGaFLqoxszQU_w8TYutMKY,92127
|
|
262
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/d10_DGdoubleglazing.pde,sha256=lK3sXmK74eFEMk8F6hwFHe_tBYnOdRq3F-RbzKpDK0c,1354
|
|
263
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/d11_chip_nitsche.pde,sha256=VuEQtkZaIJA9yuvjG_jcx1UB9UtAaZSoeJYFHcHeYxk,1141
|
|
264
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/d1_square.pde,sha256=24ZZ0nlbr5LKl_mPyeZZMSkiCBiBk1fzNElo3yITX2A,1072
|
|
265
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/d2_chip.pde,sha256=yGIbzuTdCEjdoC9Ig_hbcy5qz69_wxgPZeYmhY1rN7k,985
|
|
266
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/d3_helmholtz.pde,sha256=gWqQTh1M9NiKGohlu5JxDJuvRz-T28WlNSVbwmMvM-0,590
|
|
267
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/d4_cube.pde,sha256=6kL43ehAh1PdwnFlLjadg325bFjpz02p2PpAOxlDFuc,1079
|
|
268
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/d5_beam.pde,sha256=VQt9WbqAVWObFH9Jy1YieE9WHnVZ_hnsKVTz6ysEBxI,2059
|
|
269
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/d6_shaft.pde,sha256=y10nLFA2-GwEwnAs5R-8wppRq-09vYJ_C9LJ3DSvlS0,1974
|
|
270
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/d7_coil.pde,sha256=KFkqtZiPD4LQsGnghwwdq1qmpWf0T5xQR4HwbRL9ZZA,1250
|
|
271
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/d8_coilshield.pde,sha256=9XG0TcgZ7mComh_pVntnuzDldEx5PD-C7gqK05PTWus,1190
|
|
272
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/d9_hybridDG.pde,sha256=vYschVRu5vC91YpyVZFCBFuno-ZlOcRznPD-OvJTLtQ,1551
|
|
273
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/doubleglazing.in2d,sha256=lDCukUh9iTpkiH-qJAVdeAlMpiYF0AibAA6g3jOeWDY,533
|
|
274
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/doubleglazing.vol,sha256=IUOhUrZi8WMnvrIJe--A8cYPN6mscslA8_4yxvKShb0,35724
|
|
275
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/piezo2d40round4.vol.gz,sha256=RuxM0vtYljoAImOH6U6avt0LmWaUbGNao37n8p_Yd1w,496477
|
|
276
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/shaft.geo,sha256=Y3OVQlWjgICe2Dwz6-Qs8r0tLanjwtWP0xFx5AwNRJk,2507
|
|
277
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/shaft.vol,sha256=IqViJ4hJKk3Uf66PkVJ-kHpBQ_ZpkigRuh5g1Po4euY,274741
|
|
278
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/square.in2d,sha256=5dewiEjTsRFiNkBlmaTjBAZejq55TTlusp8ALfTMc2M,209
|
|
279
|
+
ngsolve-6.2.2504.data/data/share/ngsolve/square.vol,sha256=tWdPeQ52deUNgWOsWKhqgNVsJKhkJmEAVp5-xjhzEwg,9311
|
|
280
|
+
ngsolve-6.2.2504.dist-info/licenses/LICENSE,sha256=iFoD9UsVeWEjb0aEPnmXKr_NaJC2y7NovH7KMo_5WhI,26934
|
|
281
|
+
ngsolve-6.2.2504.dist-info/METADATA,sha256=unbJTYm_P03OTOeXOt6FeKIrBBx_jfOVOWM9FTv-F7E,302
|
|
282
|
+
ngsolve-6.2.2504.dist-info/WHEEL,sha256=4dU9bvlPw8d_96aXToRp7-Ml2sgZj7vbQmzTV5aNNOE,96
|
|
283
|
+
ngsolve-6.2.2504.dist-info/top_level.txt,sha256=1llU44DxNIP85uPT4RChsIuV3h2d0_5j0Ui_Df5vV8E,15
|
|
284
|
+
ngsolve-6.2.2504.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/coilshield.geo
RENAMED
|
File without changes
|
{ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/coilshield.vol
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d11_chip_nitsche.pde
RENAMED
|
File without changes
|
{ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d1_square.pde
RENAMED
|
File without changes
|
|
File without changes
|
{ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d3_helmholtz.pde
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d8_coilshield.pde
RENAMED
|
File without changes
|
{ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/d9_hybridDG.pde
RENAMED
|
File without changes
|
{ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/doubleglazing.in2d
RENAMED
|
File without changes
|
{ngsolve-6.2.2502.post11.dev1.data → ngsolve-6.2.2504.data}/data/share/ngsolve/doubleglazing.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
|