ngsolve 6.2.2506.post45.dev0__cp311-cp311-win_amd64.whl → 6.2.2506.post74.dev0__cp311-cp311-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (46) hide show
  1. netgen/include/bdbequations.hpp +33 -0
  2. netgen/include/diffopwithfactor.hpp +123 -0
  3. netgen/include/kernels.hpp +98 -110
  4. netgen/include/mp_coefficient.hpp +2 -2
  5. netgen/include/mptools.hpp +45 -26
  6. netgen/include/preconditioner.hpp +2 -2
  7. netgen/lib/libngsolve.lib +0 -0
  8. netgen/libngsolve.dll +0 -0
  9. ngsolve/cmake/NGSolveConfig.cmake +1 -1
  10. ngsolve/config/config.py +5 -5
  11. ngsolve/ngslib.pyd +0 -0
  12. ngsolve/solve_implementation.py +10 -1
  13. {ngsolve-6.2.2506.post45.dev0.dist-info → ngsolve-6.2.2506.post74.dev0.dist-info}/METADATA +2 -2
  14. {ngsolve-6.2.2506.post45.dev0.dist-info → ngsolve-6.2.2506.post74.dev0.dist-info}/RECORD +46 -45
  15. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/Scripts/ngsolve.tcl +0 -0
  16. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/beam.geo +0 -0
  17. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/beam.vol +0 -0
  18. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/chip.in2d +0 -0
  19. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/chip.vol +0 -0
  20. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/coil.geo +0 -0
  21. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/coil.vol +0 -0
  22. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/coilshield.geo +0 -0
  23. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/coilshield.vol +0 -0
  24. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/cube.geo +0 -0
  25. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/cube.vol +0 -0
  26. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d10_DGdoubleglazing.pde +0 -0
  27. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d11_chip_nitsche.pde +0 -0
  28. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d1_square.pde +0 -0
  29. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d2_chip.pde +0 -0
  30. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d3_helmholtz.pde +0 -0
  31. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d4_cube.pde +0 -0
  32. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d5_beam.pde +0 -0
  33. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d6_shaft.pde +0 -0
  34. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d7_coil.pde +0 -0
  35. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d8_coilshield.pde +0 -0
  36. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d9_hybridDG.pde +0 -0
  37. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/doubleglazing.in2d +0 -0
  38. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/doubleglazing.vol +0 -0
  39. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
  40. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/shaft.geo +0 -0
  41. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/shaft.vol +0 -0
  42. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/square.in2d +0 -0
  43. {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/square.vol +0 -0
  44. {ngsolve-6.2.2506.post45.dev0.dist-info → ngsolve-6.2.2506.post74.dev0.dist-info}/LICENSE +0 -0
  45. {ngsolve-6.2.2506.post45.dev0.dist-info → ngsolve-6.2.2506.post74.dev0.dist-info}/WHEEL +0 -0
  46. {ngsolve-6.2.2506.post45.dev0.dist-info → ngsolve-6.2.2506.post74.dev0.dist-info}/top_level.txt +0 -0
@@ -2344,6 +2344,39 @@ namespace ngfem
2344
2344
  mat.Rows(DIM_SPC*i, DIM_SPC*(i+1)).Cols(fel.GetRange(i)) = Trans(hmat);
2345
2345
  }
2346
2346
 
2347
+ static int DimRef() { return DIM_SPC*DIM_ELEMENT; }
2348
+
2349
+ template <typename IP, typename MAT>
2350
+ static void GenerateMatrixRef (const FiniteElement & bfel, const IP & ip,
2351
+ MAT && mat, LocalHeap & lh)
2352
+ {
2353
+ HeapReset hr(lh);
2354
+ auto & fel = static_cast<const VectorFiniteElement&> (bfel);
2355
+ auto & feli = static_cast<const ScalarFiniteElement<DIM_ELEMENT>&> (fel[0]);
2356
+ FlatMatrix<> hmat(feli.GetNDof(), DIM_ELEMENT, lh);
2357
+ feli.CalcDShape(ip, hmat);
2358
+ int ndof = feli.GetNDof();
2359
+ mat.Rows(DIM_SPACE*DIM_ELEMENT).Cols(DIM_SPC*ndof) = 0.0;
2360
+ for (int i = 0; i < DIM_SPACE; i++)
2361
+ mat.Rows(i*DIM_ELEMENT, (i+1)*DIM_ELEMENT).Cols(i*ndof,(i+1)*ndof)
2362
+ = Trans(hmat);
2363
+ }
2364
+
2365
+ template <typename MIP, typename MAT>
2366
+ static void CalcTransformationMatrix (const MIP & mip,
2367
+ MAT & mat, LocalHeap & lh)
2368
+ {
2369
+ FlatMatrix<> hmat(DIM_SPC, DIM_ELEMENT, lh);
2370
+ hmat = Trans(static_cast<const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPC>&>(mip).GetJacobianInverse());
2371
+ mat.Rows(DIM_DMAT).Cols(DIM_ELEMENT*DIM_SPC) = 0.0;
2372
+ for (int i = 0; i < DIM_SPACE; i++)
2373
+ mat.Rows(i*DIM_SPC, (i+1)*DIM_SPC).Cols(i*DIM_ELEMENT, (i+1)*DIM_ELEMENT) = hmat;
2374
+ }
2375
+
2376
+
2377
+
2378
+
2379
+
2347
2380
 
2348
2381
  static void GenerateMatrixSIMDIR (const FiniteElement & bfel,
2349
2382
  const SIMD_BaseMappedIntegrationRule & mir,
@@ -0,0 +1,123 @@
1
+ #ifndef DIFFOPWITHFACTOR_HPP
2
+ #define DIFFOPWITHFACTOR_HPP
3
+
4
+
5
+
6
+ namespace ngsbem
7
+ {
8
+ using namespace ngfem;
9
+
10
+ class DifferentialOperatorWithFactor : public DifferentialOperator
11
+ {
12
+ shared_ptr<DifferentialOperator> diffop;
13
+ shared_ptr<CoefficientFunction> factor;
14
+
15
+ public:
16
+ DifferentialOperatorWithFactor (shared_ptr<DifferentialOperator> adiffop,
17
+ shared_ptr<CoefficientFunction> afactor)
18
+ : DifferentialOperator(afactor->Dimensions()[0], 1, adiffop->VB(), adiffop->DiffOrder()),
19
+ diffop(adiffop), factor(afactor)
20
+ {
21
+ ;
22
+ }
23
+
24
+ int DimRef() const override { return diffop->DimRef(); }
25
+
26
+ virtual IntRange UsedDofs(const FiniteElement & fel) const override { return diffop->UsedDofs(fel); }
27
+
28
+ auto BaseDiffOp() const { return diffop; }
29
+
30
+ void CalcMatrix (const FiniteElement & fel,
31
+ const BaseMappedIntegrationPoint & mip,
32
+ BareSliceMatrix<double,ColMajor> mat,
33
+ LocalHeap & lh) const override
34
+ {
35
+ FlatMatrix<double,ColMajor> hmat(diffop->Dim(), fel.GetNDof(), lh);
36
+ diffop -> CalcMatrix (fel, mip, hmat, lh);
37
+
38
+ auto dims = factor->Dimensions();
39
+ FlatMatrix<double> factorx(dims[0], dims[1], lh);
40
+ factor->Evaluate (mip, factorx.AsVector());
41
+
42
+ IntRange used = diffop->UsedDofs(fel);
43
+ mat.Cols(used) = factorx * hmat.Cols(used);
44
+ }
45
+
46
+ void CalcMatrix (const FiniteElement & fel,
47
+ const SIMD_BaseMappedIntegrationRule & mir,
48
+ BareSliceMatrix<SIMD<double>> mat) const override
49
+ {
50
+ // *testout << "CalcMatrix SIMD" << endl;
51
+ Matrix<SIMD<double>> hmat (fel.GetNDof()*diffop->Dim(), mir.Size());
52
+ // hmat = SIMD<double>(0.0);
53
+ diffop -> CalcMatrix (fel, mir, hmat);
54
+
55
+ Matrix<SIMD<double>> fac(factor->Dimension(), mir.Size());
56
+ factor -> Evaluate (mir, fac);
57
+
58
+ auto dims = factor -> Dimensions();
59
+
60
+ mat.Rows(fel.GetNDof()*dims[1]).Cols(mir.Size()) = SIMD<double>(0.0);
61
+
62
+ for (size_t i = 0; i < mir.Size(); i++)
63
+ for (size_t j = 0; j < dims[0]; j++)
64
+ for (size_t k = 0; k < dims[1]; k++)
65
+ mat.Col(i).Slice(j,dims[0]) += fac(j*dims[1]+k, i) * hmat.Col(i).Slice(k, dims[1]);
66
+ }
67
+
68
+
69
+ void CalcMatrix (const FiniteElement & fel,
70
+ const IntegrationPoint & ip,
71
+ BareSliceMatrix<double,ColMajor> mat,
72
+ LocalHeap & lh) const override
73
+ {
74
+ diffop -> CalcMatrix(fel, ip, mat, lh);
75
+ /*
76
+ *testout << "calcmatrix mip" << endl
77
+ << mat.Rows(Dim()).Cols(fel.GetNDof()) << endl;
78
+ */
79
+ }
80
+
81
+ void CalcTransformationMatrix (const BaseMappedIntegrationPoint & mip,
82
+ SliceMatrix<double> trans,
83
+ LocalHeap & lh) const override
84
+ {
85
+ HeapReset hr(lh);
86
+ auto dims = factor->Dimensions();
87
+
88
+ FlatMatrix<double> factorx(dims[0], dims[1], lh);
89
+ factor->Evaluate (mip, factorx.AsVector());
90
+
91
+ FlatMatrix<double> basetrans(diffop->Dim(), diffop->DimRef(), lh);
92
+ diffop -> CalcTransformationMatrix(mip, basetrans, lh);
93
+
94
+ trans = factorx * basetrans;
95
+ // *testout << "trans = " << trans << endl;
96
+ }
97
+
98
+
99
+ void Apply (const FiniteElement & fel,
100
+ const SIMD_BaseMappedIntegrationRule & mir,
101
+ BareSliceVector<double> x,
102
+ BareSliceMatrix<SIMD<double>> flux) const override
103
+ {
104
+ auto dims = factor->Dimensions();
105
+
106
+ Matrix<SIMD<double>> tmpflux(dims[1], mir.Size());
107
+ Matrix<SIMD<double>> factorx(dims[0]*dims[1], mir.Size());
108
+
109
+ diffop -> Apply (fel, mir, x, tmpflux);
110
+ factor -> Evaluate (mir, factorx);
111
+ flux.Rows(0, dims[0]).Cols(0, mir.Size()) = SIMD<double>(0.0);
112
+ for (int i = 0; i < dims[0]; i++)
113
+ for (int j = 0; j < dims[1]; j++)
114
+ flux.Row(i).Range(mir.Size()) += pw_mult(factorx.Row(i*dims[1]+j), tmpflux.Row(j));
115
+ }
116
+
117
+
118
+ };
119
+
120
+
121
+ }
122
+
123
+ #endif
@@ -2,6 +2,7 @@
2
2
  #define KERNELS_hpp
3
3
 
4
4
  #include "mptools.hpp"
5
+ #include <type_traits>
5
6
 
6
7
 
7
8
  // **************************** The kernels **********************************
@@ -62,18 +63,26 @@ namespace ngsbem
62
63
 
63
64
  /** LaplaceSLkernel is the kernel for the single layer potential of
64
65
  the Laplace equation $ \Delta u = 0 \,.$ */
65
- template <int DIM> class LaplaceSLKernel;
66
+ template <int DIM, int COMPS=1> class LaplaceSLKernel;
66
67
 
67
68
  /** LaplaceSLkernel in 3D reads
68
69
  $$ G(x-y) = \frac{1}{4\,\pi \, | x-y| }, \quad x, y \in \mathbb R^3, \; x\not=y\,. $$ */
69
- template<>
70
- class LaplaceSLKernel<3> : public BaseKernel
70
+ template<int COMPS>
71
+ class LaplaceSLKernel<3, COMPS> : public BaseKernel
71
72
  {
72
73
  public:
73
- LaplaceSLKernel<3> () = default;
74
+ LaplaceSLKernel<3,COMPS>()
75
+ {
76
+ for (size_t i = 0; i < COMPS; i++)
77
+ terms += {1.0, 0, i, i};
78
+ };
74
79
  typedef double value_type;
80
+ using mp_type = typename std::conditional<COMPS == 1,
81
+ Complex,
82
+ Vec<COMPS, Complex>>::type;
83
+
75
84
  static string Name() { return "LaplaceSL"; }
76
- static auto Shape() { return IVec<2>(1,1); }
85
+ static auto Shape() { return IVec<2>(COMPS,COMPS); }
77
86
 
78
87
  template <typename T>
79
88
  auto Evaluate (Vec<3,T> x, Vec<3,T> y, Vec<3,T> nx, Vec<3,T> ny) const
@@ -83,45 +92,59 @@ namespace ngsbem
83
92
  return Vec<1,T> (1.0 / (4 * M_PI * norm));
84
93
  }
85
94
 
86
- Array<KernelTerm> terms = { KernelTerm{1.0, 0, 0, 0}, };
95
+ Array<KernelTerm> terms;
87
96
 
88
- auto CreateMultipoleExpansion (Vec<3> c, double r) const
97
+ auto CreateMultipoleExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
89
98
  {
90
- return make_shared<SingularMLExpansion<Complex>> (c, r, 1e-16);
99
+ return make_shared<SingularMLExpansion<mp_type>> (c, r, 1e-16, fmm_params);
91
100
  }
92
101
 
93
- auto CreateLocalExpansion (Vec<3> c, double r) const
102
+ auto CreateLocalExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
94
103
  {
95
- return make_shared<RegularMLExpansion<Complex>> (c, r, 1e-16);
104
+ return make_shared<RegularMLExpansion<mp_type>> (c, r, 1e-16, fmm_params);
96
105
  }
97
106
 
98
- void AddSource (SingularMLExpansion<Complex> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
107
+ void AddSource (SingularMLExpansion<mp_type> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
99
108
  {
100
- mp.AddCharge (pnt, val(0));
109
+ if constexpr (COMPS == 1)
110
+ mp.AddCharge (pnt, val(0));
111
+ else
112
+ mp.AddCharge (pnt, val);
101
113
  }
102
114
 
103
- void EvaluateMP (RegularMLExpansion<Complex> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
115
+ void EvaluateMP (RegularMLExpansion<mp_type> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
104
116
  {
105
- val(0) = Real(mp.Evaluate (pnt));
117
+ if constexpr (COMPS == 1)
118
+ val(0) = Real(mp.Evaluate (pnt));
119
+ else
120
+ val = Real(mp.Evaluate (pnt));
106
121
  }
107
122
  };
108
123
 
109
124
 
110
125
  /** LaplaceDLkernel is the kernel for the double layer potential of
111
126
  the Laplace equation $ \Delta u = 0 \,.$ */
112
- template <int DIM> class LaplaceDLKernel;
127
+ template <int DIM, int COMPS=1> class LaplaceDLKernel;
113
128
 
114
129
  /** LaplaceDLkernel in 3D reads
115
130
  $$ \frac{\partial }{ \partial n_y} G(x-y) = \frac{1}{4\,\pi} \,
116
131
  \frac{ \langle n(y), x-y\rangle }{ | x-y|^3 },
117
132
  \quad x, y \in \mathbb R^3, \; x\not=y\,. $$ */
118
- template<>
119
- class LaplaceDLKernel<3> : public BaseKernel
133
+ template<int COMPS>
134
+ class LaplaceDLKernel<3, COMPS> : public BaseKernel
120
135
  {
121
136
  public:
137
+ LaplaceDLKernel<3,COMPS>()
138
+ {
139
+ for (size_t i = 0; i < COMPS; i++)
140
+ terms += {1.0, 0, i, i};
141
+ };
122
142
  typedef double value_type;
143
+ using mp_type = typename std::conditional<COMPS == 1,
144
+ Complex,
145
+ Vec<COMPS, Complex>>::type;
123
146
  static string Name() { return "LaplaceDL"; }
124
- static auto Shape() { return IVec<2>(1,1); }
147
+ static auto Shape() { return IVec<2>(COMPS,COMPS); }
125
148
 
126
149
  template <typename T>
127
150
  auto Evaluate (Vec<3,T> x, Vec<3,T> y, Vec<3,T> nx, Vec<3,T> ny) const
@@ -132,83 +155,48 @@ namespace ngsbem
132
155
  return Vec<1,T> (nxy / (4 * M_PI * norm*norm*norm));
133
156
  }
134
157
 
135
- Array<KernelTerm> terms = { KernelTerm{1.0, 0, 0, 0}, };
136
-
137
- auto CreateMultipoleExpansion (Vec<3> c, double r) const
138
- {
139
- return make_shared<SingularMLExpansion<Complex>> (c, r, 1e-16);
140
- }
141
-
142
- auto CreateLocalExpansion (Vec<3> c, double r) const
143
- {
144
- return make_shared<RegularMLExpansion<Complex>> (c, r, 1e-16);
145
- }
146
-
147
- void AddSource (SingularMLExpansion<Complex> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
148
- {
149
- mp.AddDipole(pnt, -nv, val(0));
150
- }
151
-
152
- void AddSourceTrans(SingularMLExpansion<Complex> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
153
- {
154
- mp.AddCharge(pnt, val(0));
155
- }
156
-
157
- void EvaluateMP (RegularMLExpansion<Complex> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
158
- {
159
- val(0) = Real(mp.Evaluate (pnt));
160
- }
158
+ Array<KernelTerm> terms;
161
159
 
162
- void EvaluateMPTrans(RegularMLExpansion<Complex> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
160
+ auto CreateMultipoleExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
163
161
  {
164
- val(0) = Real(mp.EvaluateDirectionalDerivative(pnt, nv));
162
+ return make_shared<SingularMLExpansion<mp_type>> (c, r, 1e-16, fmm_params);
165
163
  }
166
- };
167
164
 
168
-
169
- template <int DIM> class LaplaceHSKernel;
170
-
171
- template<>
172
- class LaplaceHSKernel<3> : public BaseKernel
173
- {
174
- public:
175
- typedef double value_type;
176
- static string Name() { return "LaplaceHL"; }
177
- static auto Shape() { return IVec<2>(3,3); }
178
-
179
- template <typename T>
180
- auto Evaluate (Vec<3,T> x, Vec<3,T> y, Vec<3,T> nx, Vec<3,T> ny) const
165
+ auto CreateLocalExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
181
166
  {
182
- T norm = L2Norm(x-y);
183
- // return 1.0 / (4 * M_PI * norm);
184
- return Vec<1,T> (1.0 / (4 * M_PI * norm));
167
+ return make_shared<RegularMLExpansion<mp_type>> (c, r, 1e-16, fmm_params);
185
168
  }
186
-
187
- Array<KernelTerm> terms =
188
- {
189
- KernelTerm{1.0, 0, 0, 0},
190
- KernelTerm{1.0, 0, 1, 1},
191
- KernelTerm{1.0, 0, 2, 2},
192
- };
193
169
 
194
- auto CreateMultipoleExpansion (Vec<3> c, double r) const
170
+ void AddSource (SingularMLExpansion<mp_type> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
195
171
  {
196
- return make_shared<SingularMLExpansion<Vec<3,Complex>>> (c, r, 1e-16);
172
+ if constexpr (COMPS == 1)
173
+ mp.AddDipole(pnt, -nv, val(0));
174
+ else
175
+ mp.AddDipole(pnt, -nv, val);
197
176
  }
198
177
 
199
- auto CreateLocalExpansion (Vec<3> c, double r) const
178
+ void AddSourceTrans(SingularMLExpansion<mp_type> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
200
179
  {
201
- return make_shared<RegularMLExpansion<Vec<3,Complex>>> (c, r, 1e-16);
180
+ if constexpr (COMPS == 1)
181
+ mp.AddCharge (pnt, val(0));
182
+ else
183
+ mp.AddCharge (pnt, val);
202
184
  }
203
185
 
204
- void AddSource (SingularMLExpansion<Vec<3,Complex>> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
186
+ void EvaluateMP (RegularMLExpansion<mp_type> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
205
187
  {
206
- mp.AddCharge(pnt, val);
188
+ if constexpr (COMPS == 1)
189
+ val(0) = Real(mp.Evaluate (pnt));
190
+ else
191
+ val = Real(mp.Evaluate (pnt));
207
192
  }
208
193
 
209
- void EvaluateMP (RegularMLExpansion<Vec<3,Complex>> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
194
+ void EvaluateMPTrans(RegularMLExpansion<mp_type> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
210
195
  {
211
- val = Real(mp.Evaluate (pnt));
196
+ if constexpr (COMPS == 1)
197
+ val(0) = Real(mp.EvaluateDirectionalDerivative(pnt, nv));
198
+ else
199
+ val = Real(mp.EvaluateDirectionalDerivative(pnt, nv));
212
200
  }
213
201
  };
214
202
 
@@ -243,14 +231,14 @@ namespace ngsbem
243
231
  double GetKappa() const { return kappa; }
244
232
  Array<KernelTerm> terms = { KernelTerm{1.0, 0, 0, 0}, };
245
233
 
246
- auto CreateMultipoleExpansion (Vec<3> c, double r) const
234
+ auto CreateMultipoleExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
247
235
  {
248
- return make_shared<SingularMLExpansion<Complex>> (c, r, kappa);
236
+ return make_shared<SingularMLExpansion<Complex>> (c, r, kappa, fmm_params);
249
237
  }
250
238
 
251
- auto CreateLocalExpansion (Vec<3> c, double r) const
239
+ auto CreateLocalExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
252
240
  {
253
- return make_shared<RegularMLExpansion<Complex>> (c, r, kappa);
241
+ return make_shared<RegularMLExpansion<Complex>> (c, r, kappa, fmm_params);
254
242
  }
255
243
 
256
244
  void AddSource (SingularMLExpansion<Complex> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<Complex> val) const
@@ -297,14 +285,14 @@ namespace ngsbem
297
285
  double GetKappa() const { return kappa; }
298
286
  Array<KernelTerm> terms = { KernelTerm{1.0, 0, 0, 0}, };
299
287
 
300
- auto CreateMultipoleExpansion (Vec<3> c, double r) const
288
+ auto CreateMultipoleExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
301
289
  {
302
- return make_shared<SingularMLExpansion<Complex>> (c, r, kappa);
290
+ return make_shared<SingularMLExpansion<Complex>> (c, r, kappa, fmm_params);
303
291
  }
304
292
 
305
- auto CreateLocalExpansion (Vec<3> c, double r) const
293
+ auto CreateLocalExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
306
294
  {
307
- return make_shared<RegularMLExpansion<Complex>> (c, r, kappa);
295
+ return make_shared<RegularMLExpansion<Complex>> (c, r, kappa, fmm_params);
308
296
  }
309
297
 
310
298
  void AddSource (SingularMLExpansion<Complex> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<Complex> val) const
@@ -357,14 +345,14 @@ namespace ngsbem
357
345
  KernelTerm{1.0, 0, 2, 2},
358
346
  };
359
347
 
360
- auto CreateMultipoleExpansion (Vec<3> c, double r) const
348
+ auto CreateMultipoleExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
361
349
  {
362
- return make_shared<SingularMLExpansion<Vec<3,Complex>>> (c, r, kappa);
350
+ return make_shared<SingularMLExpansion<Vec<3,Complex>>> (c, r, kappa, fmm_params);
363
351
  }
364
352
 
365
- auto CreateLocalExpansion (Vec<3> c, double r) const
353
+ auto CreateLocalExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
366
354
  {
367
- return make_shared<RegularMLExpansion<Vec<3,Complex>>> (c, r, kappa);
355
+ return make_shared<RegularMLExpansion<Vec<3,Complex>>> (c, r, kappa, fmm_params);
368
356
  }
369
357
 
370
358
  void AddSource (SingularMLExpansion<Vec<3,Complex>> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<Complex> val) const
@@ -410,14 +398,14 @@ namespace ngsbem
410
398
  KernelTerm{1.0, 1, 3, 3},
411
399
  };
412
400
 
413
- auto CreateMultipoleExpansion (Vec<3> c, double r) const
401
+ auto CreateMultipoleExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
414
402
  {
415
- return make_shared<SingularMLExpansion<Vec<6,Complex>>> (c, r, kappa);
403
+ return make_shared<SingularMLExpansion<Vec<6,Complex>>> (c, r, kappa, fmm_params);
416
404
  }
417
405
 
418
- auto CreateLocalExpansion (Vec<3> c, double r) const
406
+ auto CreateLocalExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
419
407
  {
420
- return make_shared<RegularMLExpansion<Vec<6,Complex>>> (c, r, kappa);
408
+ return make_shared<RegularMLExpansion<Vec<6,Complex>>> (c, r, kappa, fmm_params);
421
409
  }
422
410
 
423
411
  void AddSource (SingularMLExpansion<Vec<6,Complex>> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<Complex> val) const
@@ -473,14 +461,14 @@ namespace ngsbem
473
461
  double GetKappa() const { return kappa; }
474
462
  Array<KernelTerm> terms = { KernelTerm{1.0, 0, 0, 0}, };
475
463
 
476
- auto CreateMultipoleExpansion (Vec<3> c, double r) const
464
+ auto CreateMultipoleExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
477
465
  {
478
- return make_shared<SingularMLExpansion<Complex>> (c, r, kappa);
466
+ return make_shared<SingularMLExpansion<Complex>> (c, r, kappa, fmm_params);
479
467
  }
480
468
 
481
- auto CreateLocalExpansion (Vec<3> c, double r) const
469
+ auto CreateLocalExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
482
470
  {
483
- return make_shared<RegularMLExpansion<Complex>> (c, r, kappa);
471
+ return make_shared<RegularMLExpansion<Complex>> (c, r, kappa, fmm_params);
484
472
  }
485
473
 
486
474
  void AddSource (SingularMLExpansion<Complex> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<Complex> val) const
@@ -531,14 +519,14 @@ namespace ngsbem
531
519
  double GetKappa() const { return kappa; }
532
520
  Array<KernelTerm> terms;
533
521
 
534
- auto CreateMultipoleExpansion (Vec<3> c, double r) const
522
+ auto CreateMultipoleExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
535
523
  {
536
- return make_shared<SingularMLExpansion<Vec<4,Complex>>> (c, r, kappa);
524
+ return make_shared<SingularMLExpansion<Vec<4,Complex>>> (c, r, kappa, fmm_params);
537
525
  }
538
526
 
539
- auto CreateLocalExpansion (Vec<3> c, double r) const
527
+ auto CreateLocalExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
540
528
  {
541
- return make_shared<RegularMLExpansion<Vec<4,Complex>>> (c, r, kappa);
529
+ return make_shared<RegularMLExpansion<Vec<4,Complex>>> (c, r, kappa, fmm_params);
542
530
  }
543
531
 
544
532
  void AddSource (SingularMLExpansion<Vec<4,Complex>> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<Complex> val) const
@@ -598,14 +586,14 @@ namespace ngsbem
598
586
  KernelTerm{-1.0, 2, 1, 0},
599
587
  };
600
588
 
601
- auto CreateMultipoleExpansion (Vec<3> c, double r) const
589
+ auto CreateMultipoleExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
602
590
  {
603
- return make_shared<SingularMLExpansion<Vec<3,Complex>>> (c, r, kappa);
591
+ return make_shared<SingularMLExpansion<Vec<3,Complex>>> (c, r, kappa, fmm_params);
604
592
  }
605
593
 
606
- auto CreateLocalExpansion (Vec<3> c, double r) const
594
+ auto CreateLocalExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
607
595
  {
608
- return make_shared<RegularMLExpansion<Vec<3,Complex>>> (c, r, kappa);
596
+ return make_shared<RegularMLExpansion<Vec<3,Complex>>> (c, r, kappa, fmm_params);
609
597
  }
610
598
 
611
599
  void AddSource (SingularMLExpansion<Vec<3,Complex>> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<Complex> val) const
@@ -712,14 +700,14 @@ namespace ngsbem
712
700
  }
713
701
 
714
702
 
715
- auto CreateMultipoleExpansion (Vec<3> c, double r) const
703
+ auto CreateMultipoleExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
716
704
  {
717
- return make_shared<SingularMLExpansion<Vec<6,Complex>>> (c, r, 1e-16);
705
+ return make_shared<SingularMLExpansion<Vec<6,Complex>>> (c, r, 1e-16, fmm_params);
718
706
  }
719
707
 
720
- auto CreateLocalExpansion (Vec<3> c, double r) const
708
+ auto CreateLocalExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
721
709
  {
722
- return make_shared<RegularMLExpansion<Vec<6,Complex>>> (c, r, 1e-16);
710
+ return make_shared<RegularMLExpansion<Vec<6,Complex>>> (c, r, 1e-16, fmm_params);
723
711
  }
724
712
 
725
713
 
@@ -119,9 +119,9 @@ namespace ngsbem
119
119
  shared_ptr<RegularMLExpansion<entry_type>> mlmp;
120
120
  public:
121
121
  RegularMLExpansionCF (shared_ptr<SingularMLExpansionCF<entry_type>> asingmp, Vec<3> center, double r)
122
- : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<RegularMLExpansion<entry_type>>(asingmp->MLExpansion(), center, r)} { }
122
+ : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<RegularMLExpansion<entry_type>>(asingmp->MLExpansion(), center, r, FMM_Parameters())} { }
123
123
  RegularMLExpansionCF (shared_ptr<SingularMLExpansion<entry_type>> asingmp, Vec<3> center, double r)
124
- : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<RegularMLExpansion<entry_type>>(asingmp, center, r)} { }
124
+ : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<RegularMLExpansion<entry_type>>(asingmp, center, r, FMM_Parameters())} { }
125
125
 
126
126
  virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
127
127
  { throw Exception("real eval not available"); }
@@ -58,6 +58,15 @@ namespace ngsbem
58
58
 
59
59
 
60
60
 
61
+ class FMM_Parameters
62
+ {
63
+ public:
64
+ int maxdirect = 100;
65
+ int minorder = 20; // order = minorder + 2 kappa r
66
+ };
67
+
68
+
69
+
61
70
 
62
71
  inline std::tuple<double, double, double> SphericalCoordinates(Vec<3> dist){
63
72
  double len, theta, phi;
@@ -516,12 +525,14 @@ namespace ngsbem
516
525
 
517
526
  // ***************** parameters ****************
518
527
 
528
+ /*
519
529
  static constexpr int MPOrder (double rho_kappa)
520
530
  {
521
531
  // return max (20, int(2*rho_kappa));
522
532
  return 20+int(2*rho_kappa);
523
533
  }
524
534
  static constexpr int maxdirect = 100;
535
+ */
525
536
 
526
537
 
527
538
  template <typename SCAL, auto S>
@@ -665,11 +676,13 @@ namespace ngsbem
665
676
  Vec<3,SIMD<double,FMM_SW>>, simd_entry_type>> simd_chargedipoles;
666
677
 
667
678
  int total_sources;
679
+ const FMM_Parameters & fmm_params;
668
680
  std::mutex node_mutex;
669
681
  atomic<bool> have_childs{false};
670
682
 
671
- Node (Vec<3> acenter, double ar, int alevel, double akappa)
672
- : center(acenter), r(ar), level(alevel), mp(MPOrder(ar*akappa), akappa, ar) // min(1.0, ar*akappa))
683
+ Node (Vec<3> acenter, double ar, int alevel, double akappa, const FMM_Parameters & afmm_params)
684
+ // : center(acenter), r(ar), level(alevel), mp(MPOrder(ar*akappa), akappa, ar), fmm_params(afmm_params)
685
+ : center(acenter), r(ar), level(alevel), mp(afmm_params.minorder+2*ar*akappa, akappa, ar), fmm_params(afmm_params)
673
686
  {
674
687
  if (level < nodes_on_level.Size())
675
688
  nodes_on_level[level]++;
@@ -693,7 +706,7 @@ namespace ngsbem
693
706
  cc(0) += (i&1) ? r/2 : -r/2;
694
707
  cc(1) += (i&2) ? r/2 : -r/2;
695
708
  cc(2) += (i&4) ? r/2 : -r/2;
696
- childs[i] = make_unique<Node> (cc, r/2, level+1, mp.Kappa());
709
+ childs[i] = make_unique<Node> (cc, r/2, level+1, mp.Kappa(), fmm_params);
697
710
  }
698
711
  have_childs = true;
699
712
  }
@@ -742,7 +755,7 @@ namespace ngsbem
742
755
 
743
756
  // if (r*mp.Kappa() < 1e-8) return;
744
757
  if (level > 20) return;
745
- if (charges.Size() < maxdirect && r*mp.Kappa() < 5)
758
+ if (charges.Size() < fmm_params.maxdirect && r*mp.Kappa() < 5)
746
759
  return;
747
760
 
748
761
  SendSourcesToChilds();
@@ -772,7 +785,7 @@ namespace ngsbem
772
785
  dipoles.Append (tuple{x,d,c});
773
786
 
774
787
  if (level > 20) return;
775
- if (dipoles.Size() < maxdirect)
788
+ if (dipoles.Size() < fmm_params.maxdirect)
776
789
  return;
777
790
 
778
791
  SendSourcesToChilds();
@@ -801,7 +814,7 @@ namespace ngsbem
801
814
 
802
815
  chargedipoles.Append (tuple{x,c,dir,c2});
803
816
 
804
- if (chargedipoles.Size() < maxdirect || r < 1e-8)
817
+ if (chargedipoles.Size() < fmm_params.maxdirect || r < 1e-8)
805
818
  return;
806
819
 
807
820
  SendSourcesToChilds();
@@ -1269,12 +1282,13 @@ namespace ngsbem
1269
1282
  }
1270
1283
  };
1271
1284
 
1272
- Node root;
1285
+ FMM_Parameters fmm_params;
1286
+ Node root;
1273
1287
  bool havemp = false;
1274
1288
 
1275
1289
  public:
1276
- SingularMLExpansion (Vec<3> center, double r, double kappa)
1277
- : root(center, r, 0, kappa)
1290
+ SingularMLExpansion (Vec<3> center, double r, double kappa, FMM_Parameters _params = FMM_Parameters())
1291
+ : fmm_params(_params), root(center, r, 0, kappa, fmm_params)
1278
1292
  {
1279
1293
  nodes_on_level = 0;
1280
1294
  nodes_on_level[0] = 1;
@@ -1661,11 +1675,13 @@ namespace ngsbem
1661
1675
  atomic<bool> have_childs{false};
1662
1676
 
1663
1677
  Array<const typename SingularMLExpansion<elem_type>::Node*> singnodes;
1678
+ const FMM_Parameters & params;
1664
1679
 
1665
- Node (Vec<3> acenter, double ar, int alevel, double kappa)
1680
+
1681
+ Node (Vec<3> acenter, double ar, int alevel, double kappa, const FMM_Parameters & _params)
1666
1682
  : center(acenter), r(ar), level(alevel),
1667
1683
  // mp(MPOrder(ar*kappa), kappa, ar) // 1.0/min(1.0, 0.25*r*kappa))
1668
- mp(-1, kappa, ar)
1684
+ mp(-1, kappa, ar), params(_params)
1669
1685
  // : center(acenter), r(ar), level(alevel), mp(MPOrder(ar*kappa), kappa, 1.0)
1670
1686
  {
1671
1687
  if (level < nodes_on_level.Size())
@@ -1674,7 +1690,8 @@ namespace ngsbem
1674
1690
 
1675
1691
  void Allocate()
1676
1692
  {
1677
- mp = SphericalExpansion<Regular,elem_type>(MPOrder(r*mp.Kappa()), mp.Kappa(), r);
1693
+ // mp = SphericalExpansion<Regular,elem_type>(MPOrder(r*mp.Kappa()), mp.Kappa(), r);
1694
+ mp = SphericalExpansion<Regular,elem_type>(params.minorder+2*r*mp.Kappa(), mp.Kappa(), r);
1678
1695
  }
1679
1696
 
1680
1697
 
@@ -1688,7 +1705,7 @@ namespace ngsbem
1688
1705
  cc(0) += (i&1) ? r/2 : -r/2;
1689
1706
  cc(1) += (i&2) ? r/2 : -r/2;
1690
1707
  cc(2) += (i&4) ? r/2 : -r/2;
1691
- childs[i] = make_unique<Node> (cc, r/2, level+1, mp.Kappa());
1708
+ childs[i] = make_unique<Node> (cc, r/2, level+1, mp.Kappa(), params);
1692
1709
  if (allocate)
1693
1710
  childs[i] -> Allocate();
1694
1711
  }
@@ -1909,7 +1926,7 @@ namespace ngsbem
1909
1926
 
1910
1927
  // if (r*mp.Kappa() < 1e-8) return;
1911
1928
  if (level > 20) return;
1912
- if (targets.Size() < maxdirect && r*mp.Kappa() < 5)
1929
+ if (targets.Size() < params.maxdirect && r*mp.Kappa() < 5)
1913
1930
  return;
1914
1931
 
1915
1932
  CreateChilds();
@@ -1949,7 +1966,7 @@ namespace ngsbem
1949
1966
  vol_targets.Append (tuple(x,tr));
1950
1967
 
1951
1968
  if (level > 20) return;
1952
- if (vol_targets.Size() < maxdirect && (r*mp.Kappa() < 5))
1969
+ if (vol_targets.Size() < params.maxdirect && (r*mp.Kappa() < 5))
1953
1970
  return;
1954
1971
 
1955
1972
  CreateChilds();
@@ -2018,14 +2035,16 @@ namespace ngsbem
2018
2035
  }
2019
2036
 
2020
2037
  };
2021
-
2038
+
2039
+ FMM_Parameters fmm_params;
2022
2040
  Node root;
2023
2041
  shared_ptr<SingularMLExpansion<elem_type>> singmp;
2024
2042
 
2025
2043
  public:
2026
- RegularMLExpansion (shared_ptr<SingularMLExpansion<elem_type>> asingmp, Vec<3> center, double r)
2027
- : root(center, r, 0, asingmp->Kappa()), singmp(asingmp)
2028
- {
2044
+ RegularMLExpansion (shared_ptr<SingularMLExpansion<elem_type>> asingmp, Vec<3> center, double r,
2045
+ const FMM_Parameters & _params)
2046
+ : fmm_params(_params), root(center, r, 0, asingmp->Kappa(), fmm_params), singmp(asingmp)
2047
+ {
2029
2048
  if (!singmp->havemp) throw Exception("first call Calc for singular MP");
2030
2049
  root.Allocate();
2031
2050
 
@@ -2054,13 +2073,13 @@ namespace ngsbem
2054
2073
  }
2055
2074
  }
2056
2075
 
2057
- RegularMLExpansion (Vec<3> center, double r, double kappa)
2058
- : root(center, r, 0, kappa)
2059
- {
2060
- nodes_on_level = 0;
2061
- nodes_on_level[0] = 1;
2062
- }
2063
-
2076
+ RegularMLExpansion (Vec<3> center, double r, double kappa, const FMM_Parameters & _params)
2077
+ : fmm_params(_params), root(center, r, 0, kappa, fmm_params)
2078
+ {
2079
+ nodes_on_level = 0;
2080
+ nodes_on_level[0] = 1;
2081
+ }
2082
+
2064
2083
  void AddTarget (Vec<3> t)
2065
2084
  {
2066
2085
  root.AddTarget (t);
@@ -414,7 +414,7 @@ namespace ngcomp
414
414
  ///
415
415
  // MGPreconditioner * low_order_preconditioner;
416
416
  ///
417
- shared_ptr<Preconditioner> coarse_pre;
417
+ shared_ptr<BaseMatrix> coarse_pre;
418
418
  ///
419
419
  int finesmoothingsteps;
420
420
  ///
@@ -462,7 +462,7 @@ namespace ngcomp
462
462
  void MgTest () const;
463
463
 
464
464
  void SetDirectSolverCluster(shared_ptr<Array<int>> cluster);
465
- void SetCoarsePreconditioner(shared_ptr<Preconditioner> prec);
465
+ void SetCoarsePreconditioner(shared_ptr<BaseMatrix> prec);
466
466
  };
467
467
 
468
468
  class CommutingAMGPreconditioner : public Preconditioner
netgen/lib/libngsolve.lib CHANGED
Binary file
netgen/libngsolve.dll CHANGED
Binary file
@@ -1,4 +1,4 @@
1
- set(PACKAGE_VERSION "6.2.2506-45-g573446995")
1
+ set(PACKAGE_VERSION "6.2.2506-74-gd430159c1")
2
2
  find_package(Netgen CONFIG REQUIRED HINTS
3
3
  ${CMAKE_CURRENT_LIST_DIR}
4
4
  ${CMAKE_CURRENT_LIST_DIR}/..
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-45-g573446995"
33
- NGSOLVE_VERSION_GIT = "v6.2.2506-45-g573446995"
34
- NGSOLVE_VERSION_PYTHON = "6.2.2506.post45.dev0"
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"
35
35
 
36
36
  NGSOLVE_VERSION_MAJOR = "6"
37
37
  NGSOLVE_VERSION_MINOR = "2"
38
- NGSOLVE_VERSION_TWEAK = "45"
38
+ NGSOLVE_VERSION_TWEAK = "74"
39
39
  NGSOLVE_VERSION_PATCH = "2506"
40
- NGSOLVE_VERSION_HASH = "g573446995"
40
+ NGSOLVE_VERSION_HASH = "gd430159c1"
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
@@ -58,7 +58,16 @@ class NonLinearApplication(Application):
58
58
  solver = NewtonSolver(self.a, self.gf, **solver_args)
59
59
  if dirichlet is not None:
60
60
  dirichlet_gf = GridFunction(self.gf.space)
61
- if isinstance(dirichlet, Dirichlet):
61
+ if isinstance(dirichlet, list):
62
+ for i in range(len(dirichlet)):
63
+ if dirichlet[i] is not None:
64
+ if isinstance(dirichlet[i], Dirichlet):
65
+ dirichlet_gf.components[i].Set(
66
+ dirichlet[i].cf, definedon=dirichlet[i].region
67
+ )
68
+ else:
69
+ dirichlet_gf.components[i].Set(dirichlet[i], BND)
70
+ elif isinstance(dirichlet, Dirichlet):
62
71
  dirichlet_gf.Set(dirichlet.cf, definedon=dirichlet.region)
63
72
  else:
64
73
  dirichlet_gf.Set(dirichlet, BND)
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ngsolve
3
- Version: 6.2.2506.post45.dev0
3
+ Version: 6.2.2506.post74.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.post8.dev0
8
+ Requires-Dist: netgen-mesher==6.2.2506.post11.dev0
9
9
  Requires-Dist: mkl
10
10
 
@@ -1,4 +1,4 @@
1
- netgen/libngsolve.dll,sha256=D8PcrVSV6_omgrZChcFy5LPnSzEAYf7CBM8u_f2ZD3E,37557760
1
+ netgen/libngsolve.dll,sha256=dgDi70sxuMWEO0DHmA3wmabWcfLrSXJzlHFpEK6ee5U,38053888
2
2
  netgen/ngscxx.bat,sha256=VoM77lA1caaCxceVKRtN_SRBB3U1Duofhz1B-LtAGsg,698
3
3
  netgen/ngsld.bat,sha256=YD1I1rK70K_YvLev7aYQMD9mCcwF55k1B_8pRWPpob0,428
4
4
  netgen/ngspy,sha256=3e0duHqv6lx2t8qE3kj2nTLz76Pd-RwjY7L7J-94UP4,70
@@ -7,7 +7,7 @@ netgen/include/arnoldi.hpp,sha256=m39slyQUujB_9j3NDfTpEWyldC6Fw8natUpPuBkevLM,14
7
7
  netgen/include/bandmatrix.hpp,sha256=A4AaUXOFPnUZ27Y7Mgm8h-BpJl96NAR4U0VDx5dz-wk,8112
8
8
  netgen/include/basematrix.hpp,sha256=I01DRffWD9HguaDH2paDZ7xGtvi3nxoWncEEd-Y0SAQ,29591
9
9
  netgen/include/basevector.hpp,sha256=cqrynI9YU-kA-BT7jAmnm3WgzJs3RcGkwKwMrzAopJo,32376
10
- netgen/include/bdbequations.hpp,sha256=nMIRusf1N0ofKN5OMDNndmr0rkS76NTuNEGYOBQzwco,93178
10
+ netgen/include/bdbequations.hpp,sha256=upSku5CeLfbTSsMPifPjYhzxT_lE30ySmP2tJ4n4lSg,94521
11
11
  netgen/include/bdbintegrator.hpp,sha256=-A47Tr_3Mp-kBr8yJvPu_XYrvhHmKeBdjd_Z0_yN294,49250
12
12
  netgen/include/bem_diffops.hpp,sha256=hg1IpuW7f8BDsjcF8h1Bqst6AN-0Vk7J-eqDNlBNtFk,16782
13
13
  netgen/include/bessel.hpp,sha256=Keq_nyAUXG__07TXcXy7-JEep1fJmjmXQHs6walemr8,26346
@@ -35,6 +35,7 @@ netgen/include/diagonalmatrix.hpp,sha256=dNR3JmaIyyHf7xKTh3FA15z_8Wby-Q79GFREixL
35
35
  netgen/include/differentialoperator.hpp,sha256=BH7qNRjBfURgMtS5sR3gIAbDx1P4WBSCyDKtkBD1b1Q,9656
36
36
  netgen/include/diffop.hpp,sha256=zvh_Y-nwdVUjXhxxE7scRYUDpEzWyfL_SH78DeXk3wQ,45645
37
37
  netgen/include/diffop_impl.hpp,sha256=xzFs7tq7ku4cYN_xar4pvKN5SLvZqS0aiBd_voHYyy4,11673
38
+ netgen/include/diffopwithfactor.hpp,sha256=qwpiYjs5zpsX2IVMOU_6QbwrObTsMBtKY_yze_Fze4g,4176
38
39
  netgen/include/discontinuous.hpp,sha256=pC0zo6ARVkaorgZ_zGOqhe8dLHCYDuMas5M5Dc7LhkA,3153
39
40
  netgen/include/dump.hpp,sha256=XE3Mr0Y_fY73-fqs-i_TxqjJkT0uTq9uT825Ip280hs,27959
40
41
  netgen/include/ectypes.hpp,sha256=3Oa_Fg5csydPZoj6OhmcJ838jXXEPSQPtHweNWC_2_M,2716
@@ -100,7 +101,7 @@ netgen/include/intrule.hpp,sha256=zZAu7zxZ6oiHjE-UfRyRPZOJi5LMgJFItQHz0pORNvM,83
100
101
  netgen/include/intrules_SauterSchwab.hpp,sha256=2f9Lb77H6sgaVq7576L78zNGbv4MYgHpddIzfc36TKA,675
101
102
  netgen/include/irspace.hpp,sha256=UFWeaFVUDwsHCJZqtZBBDnhWC4Oyy34z9Pr6KzofHPg,1557
102
103
  netgen/include/jacobi.hpp,sha256=LvjGz2p4Eew3TPsRU34oWMNPXIZ_-tU6prsgjUiqgEs,4891
103
- netgen/include/kernels.hpp,sha256=uo9viRk5NwUckg-SIb3VXaD1M_S6MT6XyHGE4E55Fn8,24511
104
+ netgen/include/kernels.hpp,sha256=9z9u0B2MmL8S-dpbmO-RUlU6tyGxq3r35ruF-NY5vJw,25116
104
105
  netgen/include/l2hofe.hpp,sha256=DUiwhkbnavfgLy8RgQrp__47fe4USC42E-Loyot0WEQ,6890
105
106
  netgen/include/l2hofe_impl.hpp,sha256=GyZPQ2RFQWxBoiS82cg1I3LjTq1M7uFeZ6IHhZVe7Lw,16412
106
107
  netgen/include/l2hofefo.hpp,sha256=ZA3Rqc_aGnLkS12eUz_W9AAV0hybvPSOzCIJeIMgIqE,17134
@@ -111,8 +112,8 @@ netgen/include/matrix.hpp,sha256=0UT4qQMFBMf3eq8FS7XTkMbQaVSgz--EiNdVMzGq-Sc,579
111
112
  netgen/include/memusage.hpp,sha256=m_-fuupqepSve37WkRkoFHHyTtE9PdGnOVPIdQHlDiw,1209
112
113
  netgen/include/meshaccess.hpp,sha256=RSkB9LhWTXRIU8AoVsu-TbksjpXjbNzJfWuKDJ6y5_Q,48492
113
114
  netgen/include/mgpre.hpp,sha256=5Zqt3pzrvm3EOfr84iU6rQx23LTkntUTd_s4_i6wEzI,5029
114
- netgen/include/mp_coefficient.hpp,sha256=gZ7E6DbHH2pmRUWxXvTT0EsaA6ixFGrO-xMCmBgC18E,5125
115
- netgen/include/mptools.hpp,sha256=TPvAjgpaVnyioNJ9juRXpuK1WzfDKdiiPVvJXgXMGKs,72974
115
+ netgen/include/mp_coefficient.hpp,sha256=KqRt59f1IP57ZicLxUaY3shgBYRRiRGojluftLA4yY0,5161
116
+ netgen/include/mptools.hpp,sha256=7emxNABJ6t2hv27sphqTD0td23pB5ewMya8k86qrygg,73874
116
117
  netgen/include/multigrid.hpp,sha256=7YgJfeGTBnb-aFWHrbcVk3dos6XYU0iVCgiY8UvRopY,898
117
118
  netgen/include/multivector.hpp,sha256=5rkNSqyPhIXAb1lGKLcy908D9Uw9oqY4wpUXZEXbEPE,13082
118
119
  netgen/include/mumpsinverse.hpp,sha256=8YiUlQZMFVsJ0kuwaSphGZvxyEZJAZZApH8XahiTeEo,4249
@@ -143,7 +144,7 @@ netgen/include/pmltrafo.hpp,sha256=j6Sk5tHbzKPT1hj_jI6n6-cRUgV5b3_o3kRNev95wDE,2
143
144
  netgen/include/postproc.hpp,sha256=TiEqDkANZJtxl-aOYMac-FKhtSkokXS3AuxAScqUDBQ,5334
144
145
  netgen/include/potentialtools.hpp,sha256=RDZ0y-BITX6j503G1nH4XnCAV43z6q40YbiqN7MOxJQ,487
145
146
  netgen/include/precomp.hpp,sha256=mx_zGsnBxqRVArwgkDpvUcX8EzP8v_8QwVdOp5m1nWQ,1337
146
- netgen/include/preconditioner.hpp,sha256=gqw1x3cX1d3-f9IYlBGGVffOif5-uGrzeCBPNdaA2kg,14768
147
+ netgen/include/preconditioner.hpp,sha256=MJsDZuggxGC__Oas7XwB-ZDP9zl4zXMLW-o6gdJ-KeU,14760
147
148
  netgen/include/prolongation.hpp,sha256=WjfpHPXxSBa1lOPbrTXEKo44wxe6OeGVMPK-XR0E-7c,11304
148
149
  netgen/include/python_comp.hpp,sha256=FgujlcVk9FKWwMBEo9CfJ-q_Kb4TNcCziotVTFIuXvY,3571
149
150
  netgen/include/python_fem.hpp,sha256=pdSB1RLhv2Vi52TaRoGpjQ21EHOA3RFAF0jeiWDp6EQ,3161
@@ -191,7 +192,7 @@ 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=KW7Y9X2h2hfa6A3FpzbZEEG3tpaFvQDBS1hQ0dy7zaw,13925146
195
+ netgen/lib/libngsolve.lib,sha256=dWT0Y4EJA8sO_NCSLMmEb3YRkdzq1_LwULwOUF2zXa4,13927164
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
@@ -206,21 +207,21 @@ 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=_Y1dA6ZMVTlyALVvh26Bv4iudZWWqcffnbSHBNEUnlA,123392
210
+ ngsolve/ngslib.pyd,sha256=qDKA7rs5z3Vf_OpXtQWec4vXqXB_amebnMeiVEtHqhk,138240
210
211
  ngsolve/nonlinearsolvers.py,sha256=nKd-SVJseTWztHZPEPKsbv0mLwQjFILZtOh7Ggft0xs,8419
211
212
  ngsolve/preconditioners.py,sha256=vsbO1lQG-ibmk88AHsiizDZcBYsfHEL-13_E_l-tYuw,250
212
- ngsolve/solve_implementation.py,sha256=hMoKsE83sNu5hknrcl3XDMW617GI8h59QaUUkqwE9Pk,5215
213
+ ngsolve/solve_implementation.py,sha256=F2es3RvCb2OWNs1Lxl1jexZXCgmfH6cct8cJapftlEg,5708
213
214
  ngsolve/solvers.py,sha256=Vbm5RfIJ83nMtQ1pYJL0uBBuys4-mcY6b63MNkyiqxU,311
214
215
  ngsolve/timestepping.py,sha256=SuKsFS7cDXRixKWdMMIWW4flet12HLeqWTBC0DFhPwg,8535
215
216
  ngsolve/timing.py,sha256=j_Plbbh51pS9QwMq93hyvFDSrbywmdKZ6Z6OOZmZoe4,4093
216
217
  ngsolve/utils.py,sha256=jg6smLuKF6G9Rvg-EXjyYwjFJGyyiqSRknevdjp-9J4,4724
217
218
  ngsolve/webgui.py,sha256=HVJnfG96eGuO6ZRfqiWQlRaKbK_Yv5y0QbicfNFAf6A,24983
218
- ngsolve/cmake/NGSolveConfig.cmake,sha256=h11Ri5w3ij65t_-bWWZf6v578mliLps7nFRtUr5yhHs,5182
219
+ ngsolve/cmake/NGSolveConfig.cmake,sha256=B-9MUyyWpkBT-ICCREnQ5Xs4Z7sNxhiExgKU8Nu9E3E,5182
219
220
  ngsolve/cmake/ngsolve-targets-release.cmake,sha256=knQjCmz6J-x_Egg5DosY5hU_CZdZlSQxQ4Za7pS07fA,907
220
221
  ngsolve/cmake/ngsolve-targets.cmake,sha256=CDY3Uo0eZa6NGJVRTLZDkbgSrLqTnub8olMieARMi48,5905
221
222
  ngsolve/config/__init__.py,sha256=IjGKWBHvRx572Z6m-5z0q82xuQaWlBABy1whwy2Uxak,23
222
223
  ngsolve/config/__main__.py,sha256=anI_XpgrpEnVnMyrFiH3Yon_tpQZkehnqRTNC02NiBI,93
223
- ngsolve/config/config.py,sha256=EZOD00fam8wc_zu5c3BH05xK1jQGNxccT1Wa_-p2SwM,2549
224
+ ngsolve/config/config.py,sha256=mCctlNlPVIxnNkqafHpkzmPl7qYzjMot05R-F0jpG4w,2549
224
225
  ngsolve/demos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
225
226
  ngsolve/demos/TensorProduct/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
227
  ngsolve/demos/TensorProduct/tp_dg_1d_1d.py,sha256=3Q9ntmVJGIKQ-JLdGWgECR_kDjTG8FPVCSiTJkxyi40,2188
@@ -252,37 +253,37 @@ ngsolve/demos/mpi/mpi_cmagnet.py,sha256=59TuQvIIGoDStyJneH47NG131nppBoQpZQ9rfvG_
252
253
  ngsolve/demos/mpi/mpi_navierstokes.py,sha256=ieAWMDd9LoH99L14iBgF_YmX_xk7gltZ9MruTFN6xAY,3028
253
254
  ngsolve/demos/mpi/mpi_poisson.py,sha256=_-H0HFqlwlpasiVD9OQjUvJbWJcQ34-4y-va1WOSOzE,2557
254
255
  ngsolve/demos/mpi/mpi_timeDG.py,sha256=FUOh_1dzOGUU-uAsD4iyz0RVT382jMiMiuYkZjarhAE,1963
255
- ngsolve-6.2.2506.post45.dev0.data/data/Scripts/ngsolve.tcl,sha256=8KBOXZKYU_qx8785PIjdmVjcUbCxR5aYrod0BZ4UgGc,21637
256
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/beam.geo,sha256=HTv0A6IUoVuavifolhGKY6U44z0hni07Htonqe6rw_A,404
257
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/beam.vol,sha256=QZbM9JE4rBs5nVXaw7ZAbDf60yXbX19bm1OnOScF57M,13834
258
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/chip.in2d,sha256=561AjEIPnlzMZHIzep5lRjocQDm8w7o7IDna5u8s9JQ,592
259
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/chip.vol,sha256=gkEmBWlQh8BkSFNTf-XISfmuGzHXDKANV4Uoww_BwJI,28511
260
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/coil.geo,sha256=ylB2OiWEZztFXPx99qTNRJKmZFIDPEezEgQt4EPtZRA,376
261
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/coil.vol,sha256=t8cWP_YX38FMw0S-7vEVUOcSH0VK6DlaqVWG_zmBo-4,147284
262
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/coilshield.geo,sha256=Sq8w7i22WQ0viaiM3bU_63lZGFWp8JgyDqs3RdjeTe0,629
263
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/coilshield.vol,sha256=JiZOM9A529-hikvv1kyLwffTRpeatLtaVTNcu42o1fo,165576
264
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/cube.geo,sha256=Wd9AnPdoQgjQ-JK6zmoXjsNxPR9B8ED4pdHVwmRoe1M,405
265
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/cube.vol,sha256=RS8bay_KlF6IZM0QDDr7_dGaFLqoxszQU_w8TYutMKY,92127
266
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde,sha256=lK3sXmK74eFEMk8F6hwFHe_tBYnOdRq3F-RbzKpDK0c,1354
267
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde,sha256=VuEQtkZaIJA9yuvjG_jcx1UB9UtAaZSoeJYFHcHeYxk,1141
268
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/d1_square.pde,sha256=24ZZ0nlbr5LKl_mPyeZZMSkiCBiBk1fzNElo3yITX2A,1072
269
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/d2_chip.pde,sha256=yGIbzuTdCEjdoC9Ig_hbcy5qz69_wxgPZeYmhY1rN7k,985
270
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/d3_helmholtz.pde,sha256=gWqQTh1M9NiKGohlu5JxDJuvRz-T28WlNSVbwmMvM-0,590
271
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/d4_cube.pde,sha256=6kL43ehAh1PdwnFlLjadg325bFjpz02p2PpAOxlDFuc,1079
272
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/d5_beam.pde,sha256=VQt9WbqAVWObFH9Jy1YieE9WHnVZ_hnsKVTz6ysEBxI,2059
273
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/d6_shaft.pde,sha256=y10nLFA2-GwEwnAs5R-8wppRq-09vYJ_C9LJ3DSvlS0,1974
274
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/d7_coil.pde,sha256=KFkqtZiPD4LQsGnghwwdq1qmpWf0T5xQR4HwbRL9ZZA,1250
275
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/d8_coilshield.pde,sha256=9XG0TcgZ7mComh_pVntnuzDldEx5PD-C7gqK05PTWus,1190
276
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/d9_hybridDG.pde,sha256=vYschVRu5vC91YpyVZFCBFuno-ZlOcRznPD-OvJTLtQ,1551
277
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/doubleglazing.in2d,sha256=lDCukUh9iTpkiH-qJAVdeAlMpiYF0AibAA6g3jOeWDY,533
278
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/doubleglazing.vol,sha256=IUOhUrZi8WMnvrIJe--A8cYPN6mscslA8_4yxvKShb0,35724
279
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz,sha256=RuxM0vtYljoAImOH6U6avt0LmWaUbGNao37n8p_Yd1w,496477
280
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/shaft.geo,sha256=Y3OVQlWjgICe2Dwz6-Qs8r0tLanjwtWP0xFx5AwNRJk,2507
281
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/shaft.vol,sha256=IqViJ4hJKk3Uf66PkVJ-kHpBQ_ZpkigRuh5g1Po4euY,274741
282
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/square.in2d,sha256=5dewiEjTsRFiNkBlmaTjBAZejq55TTlusp8ALfTMc2M,209
283
- ngsolve-6.2.2506.post45.dev0.data/data/share/ngsolve/square.vol,sha256=tWdPeQ52deUNgWOsWKhqgNVsJKhkJmEAVp5-xjhzEwg,9311
284
- ngsolve-6.2.2506.post45.dev0.dist-info/LICENSE,sha256=iFoD9UsVeWEjb0aEPnmXKr_NaJC2y7NovH7KMo_5WhI,26934
285
- ngsolve-6.2.2506.post45.dev0.dist-info/METADATA,sha256=E320R4MY2RPFL0f_dfSjvRKvYBjkY0QYiQUzdymC6ds,227
286
- ngsolve-6.2.2506.post45.dev0.dist-info/WHEEL,sha256=m80YfzNz3jW1qC3l3wcIVYwAZZ7BsFPRWWkkti4tjCc,96
287
- ngsolve-6.2.2506.post45.dev0.dist-info/top_level.txt,sha256=1llU44DxNIP85uPT4RChsIuV3h2d0_5j0Ui_Df5vV8E,15
288
- ngsolve-6.2.2506.post45.dev0.dist-info/RECORD,,
256
+ ngsolve-6.2.2506.post74.dev0.data/data/Scripts/ngsolve.tcl,sha256=8KBOXZKYU_qx8785PIjdmVjcUbCxR5aYrod0BZ4UgGc,21637
257
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.geo,sha256=HTv0A6IUoVuavifolhGKY6U44z0hni07Htonqe6rw_A,404
258
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.vol,sha256=QZbM9JE4rBs5nVXaw7ZAbDf60yXbX19bm1OnOScF57M,13834
259
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.in2d,sha256=561AjEIPnlzMZHIzep5lRjocQDm8w7o7IDna5u8s9JQ,592
260
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.vol,sha256=gkEmBWlQh8BkSFNTf-XISfmuGzHXDKANV4Uoww_BwJI,28511
261
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.geo,sha256=ylB2OiWEZztFXPx99qTNRJKmZFIDPEezEgQt4EPtZRA,376
262
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.vol,sha256=t8cWP_YX38FMw0S-7vEVUOcSH0VK6DlaqVWG_zmBo-4,147284
263
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.geo,sha256=Sq8w7i22WQ0viaiM3bU_63lZGFWp8JgyDqs3RdjeTe0,629
264
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.vol,sha256=JiZOM9A529-hikvv1kyLwffTRpeatLtaVTNcu42o1fo,165576
265
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.geo,sha256=Wd9AnPdoQgjQ-JK6zmoXjsNxPR9B8ED4pdHVwmRoe1M,405
266
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.vol,sha256=RS8bay_KlF6IZM0QDDr7_dGaFLqoxszQU_w8TYutMKY,92127
267
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde,sha256=lK3sXmK74eFEMk8F6hwFHe_tBYnOdRq3F-RbzKpDK0c,1354
268
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde,sha256=VuEQtkZaIJA9yuvjG_jcx1UB9UtAaZSoeJYFHcHeYxk,1141
269
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d1_square.pde,sha256=24ZZ0nlbr5LKl_mPyeZZMSkiCBiBk1fzNElo3yITX2A,1072
270
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d2_chip.pde,sha256=yGIbzuTdCEjdoC9Ig_hbcy5qz69_wxgPZeYmhY1rN7k,985
271
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d3_helmholtz.pde,sha256=gWqQTh1M9NiKGohlu5JxDJuvRz-T28WlNSVbwmMvM-0,590
272
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d4_cube.pde,sha256=6kL43ehAh1PdwnFlLjadg325bFjpz02p2PpAOxlDFuc,1079
273
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d5_beam.pde,sha256=VQt9WbqAVWObFH9Jy1YieE9WHnVZ_hnsKVTz6ysEBxI,2059
274
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d6_shaft.pde,sha256=y10nLFA2-GwEwnAs5R-8wppRq-09vYJ_C9LJ3DSvlS0,1974
275
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d7_coil.pde,sha256=KFkqtZiPD4LQsGnghwwdq1qmpWf0T5xQR4HwbRL9ZZA,1250
276
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d8_coilshield.pde,sha256=9XG0TcgZ7mComh_pVntnuzDldEx5PD-C7gqK05PTWus,1190
277
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d9_hybridDG.pde,sha256=vYschVRu5vC91YpyVZFCBFuno-ZlOcRznPD-OvJTLtQ,1551
278
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.in2d,sha256=lDCukUh9iTpkiH-qJAVdeAlMpiYF0AibAA6g3jOeWDY,533
279
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.vol,sha256=IUOhUrZi8WMnvrIJe--A8cYPN6mscslA8_4yxvKShb0,35724
280
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz,sha256=RuxM0vtYljoAImOH6U6avt0LmWaUbGNao37n8p_Yd1w,496477
281
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.geo,sha256=Y3OVQlWjgICe2Dwz6-Qs8r0tLanjwtWP0xFx5AwNRJk,2507
282
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.vol,sha256=IqViJ4hJKk3Uf66PkVJ-kHpBQ_ZpkigRuh5g1Po4euY,274741
283
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.in2d,sha256=5dewiEjTsRFiNkBlmaTjBAZejq55TTlusp8ALfTMc2M,209
284
+ ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.vol,sha256=tWdPeQ52deUNgWOsWKhqgNVsJKhkJmEAVp5-xjhzEwg,9311
285
+ ngsolve-6.2.2506.post74.dev0.dist-info/LICENSE,sha256=iFoD9UsVeWEjb0aEPnmXKr_NaJC2y7NovH7KMo_5WhI,26934
286
+ ngsolve-6.2.2506.post74.dev0.dist-info/METADATA,sha256=qeZw7A6tmhcYaTNIGnq9DLzs2i4Tx0Ds13ZIbLFpNpE,228
287
+ ngsolve-6.2.2506.post74.dev0.dist-info/WHEEL,sha256=m80YfzNz3jW1qC3l3wcIVYwAZZ7BsFPRWWkkti4tjCc,96
288
+ ngsolve-6.2.2506.post74.dev0.dist-info/top_level.txt,sha256=1llU44DxNIP85uPT4RChsIuV3h2d0_5j0Ui_Df5vV8E,15
289
+ ngsolve-6.2.2506.post74.dev0.dist-info/RECORD,,