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.
- netgen/include/bdbequations.hpp +33 -0
- netgen/include/diffopwithfactor.hpp +123 -0
- netgen/include/kernels.hpp +98 -110
- netgen/include/mp_coefficient.hpp +2 -2
- netgen/include/mptools.hpp +45 -26
- netgen/include/preconditioner.hpp +2 -2
- netgen/lib/libngsolve.lib +0 -0
- netgen/libngsolve.dll +0 -0
- ngsolve/cmake/NGSolveConfig.cmake +1 -1
- ngsolve/config/config.py +5 -5
- ngsolve/ngslib.pyd +0 -0
- ngsolve/solve_implementation.py +10 -1
- {ngsolve-6.2.2506.post45.dev0.dist-info → ngsolve-6.2.2506.post74.dev0.dist-info}/METADATA +2 -2
- {ngsolve-6.2.2506.post45.dev0.dist-info → ngsolve-6.2.2506.post74.dev0.dist-info}/RECORD +46 -45
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/Scripts/ngsolve.tcl +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/beam.geo +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/beam.vol +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/chip.in2d +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/chip.vol +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/coil.geo +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/coil.vol +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/coilshield.geo +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/coilshield.vol +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/cube.geo +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/cube.vol +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d10_DGdoubleglazing.pde +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d11_chip_nitsche.pde +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d1_square.pde +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d2_chip.pde +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d3_helmholtz.pde +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d4_cube.pde +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d5_beam.pde +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d6_shaft.pde +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d7_coil.pde +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d8_coilshield.pde +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/d9_hybridDG.pde +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/doubleglazing.in2d +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/doubleglazing.vol +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/shaft.geo +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/shaft.vol +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/square.in2d +0 -0
- {ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/square.vol +0 -0
- {ngsolve-6.2.2506.post45.dev0.dist-info → ngsolve-6.2.2506.post74.dev0.dist-info}/LICENSE +0 -0
- {ngsolve-6.2.2506.post45.dev0.dist-info → ngsolve-6.2.2506.post74.dev0.dist-info}/WHEEL +0 -0
- {ngsolve-6.2.2506.post45.dev0.dist-info → ngsolve-6.2.2506.post74.dev0.dist-info}/top_level.txt +0 -0
netgen/include/bdbequations.hpp
CHANGED
|
@@ -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
|
netgen/include/kernels.hpp
CHANGED
|
@@ -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>
|
|
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>(
|
|
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
|
|
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<
|
|
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<
|
|
104
|
+
return make_shared<RegularMLExpansion<mp_type>> (c, r, 1e-16, fmm_params);
|
|
96
105
|
}
|
|
97
106
|
|
|
98
|
-
void AddSource (SingularMLExpansion<
|
|
107
|
+
void AddSource (SingularMLExpansion<mp_type> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
|
|
99
108
|
{
|
|
100
|
-
|
|
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<
|
|
115
|
+
void EvaluateMP (RegularMLExpansion<mp_type> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
|
|
104
116
|
{
|
|
105
|
-
|
|
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>(
|
|
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
|
|
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
|
-
|
|
160
|
+
auto CreateMultipoleExpansion (Vec<3> c, double r, FMM_Parameters fmm_params) const
|
|
163
161
|
{
|
|
164
|
-
|
|
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
|
-
|
|
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
|
-
|
|
170
|
+
void AddSource (SingularMLExpansion<mp_type> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
|
|
195
171
|
{
|
|
196
|
-
|
|
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
|
-
|
|
178
|
+
void AddSourceTrans(SingularMLExpansion<mp_type> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
|
|
200
179
|
{
|
|
201
|
-
|
|
180
|
+
if constexpr (COMPS == 1)
|
|
181
|
+
mp.AddCharge (pnt, val(0));
|
|
182
|
+
else
|
|
183
|
+
mp.AddCharge (pnt, val);
|
|
202
184
|
}
|
|
203
185
|
|
|
204
|
-
void
|
|
186
|
+
void EvaluateMP (RegularMLExpansion<mp_type> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
|
|
205
187
|
{
|
|
206
|
-
|
|
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
|
|
194
|
+
void EvaluateMPTrans(RegularMLExpansion<mp_type> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
|
|
210
195
|
{
|
|
211
|
-
|
|
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"); }
|
netgen/include/mptools.hpp
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
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<
|
|
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<
|
|
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
|
ngsolve/config/config.py
CHANGED
|
@@ -29,15 +29,15 @@ NGSOLVE_INSTALL_DIR_INCLUDE = "netgen/include"
|
|
|
29
29
|
NGSOLVE_INSTALL_DIR_CMAKE = "ngsolve/cmake"
|
|
30
30
|
NGSOLVE_INSTALL_DIR_RES = "share"
|
|
31
31
|
|
|
32
|
-
NGSOLVE_VERSION = "6.2.2506-
|
|
33
|
-
NGSOLVE_VERSION_GIT = "v6.2.2506-
|
|
34
|
-
NGSOLVE_VERSION_PYTHON = "6.2.2506.
|
|
32
|
+
NGSOLVE_VERSION = "6.2.2506-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 = "
|
|
38
|
+
NGSOLVE_VERSION_TWEAK = "74"
|
|
39
39
|
NGSOLVE_VERSION_PATCH = "2506"
|
|
40
|
-
NGSOLVE_VERSION_HASH = "
|
|
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
|
ngsolve/solve_implementation.py
CHANGED
|
@@ -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,
|
|
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.
|
|
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.
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
115
|
-
netgen/include/mptools.hpp,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
256
|
-
ngsolve-6.2.2506.
|
|
257
|
-
ngsolve-6.2.2506.
|
|
258
|
-
ngsolve-6.2.2506.
|
|
259
|
-
ngsolve-6.2.2506.
|
|
260
|
-
ngsolve-6.2.2506.
|
|
261
|
-
ngsolve-6.2.2506.
|
|
262
|
-
ngsolve-6.2.2506.
|
|
263
|
-
ngsolve-6.2.2506.
|
|
264
|
-
ngsolve-6.2.2506.
|
|
265
|
-
ngsolve-6.2.2506.
|
|
266
|
-
ngsolve-6.2.2506.
|
|
267
|
-
ngsolve-6.2.2506.
|
|
268
|
-
ngsolve-6.2.2506.
|
|
269
|
-
ngsolve-6.2.2506.
|
|
270
|
-
ngsolve-6.2.2506.
|
|
271
|
-
ngsolve-6.2.2506.
|
|
272
|
-
ngsolve-6.2.2506.
|
|
273
|
-
ngsolve-6.2.2506.
|
|
274
|
-
ngsolve-6.2.2506.
|
|
275
|
-
ngsolve-6.2.2506.
|
|
276
|
-
ngsolve-6.2.2506.
|
|
277
|
-
ngsolve-6.2.2506.
|
|
278
|
-
ngsolve-6.2.2506.
|
|
279
|
-
ngsolve-6.2.2506.
|
|
280
|
-
ngsolve-6.2.2506.
|
|
281
|
-
ngsolve-6.2.2506.
|
|
282
|
-
ngsolve-6.2.2506.
|
|
283
|
-
ngsolve-6.2.2506.
|
|
284
|
-
ngsolve-6.2.2506.
|
|
285
|
-
ngsolve-6.2.2506.
|
|
286
|
-
ngsolve-6.2.2506.
|
|
287
|
-
ngsolve-6.2.2506.
|
|
288
|
-
ngsolve-6.2.2506.
|
|
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,,
|
{ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/Scripts/ngsolve.tcl
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/beam.geo
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/beam.vol
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/chip.in2d
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/chip.vol
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/coil.geo
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/coil.vol
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/cube.geo
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/cube.vol
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/shaft.geo
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post45.dev0.data → ngsolve-6.2.2506.post74.dev0.data}/data/share/ngsolve/shaft.vol
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngsolve-6.2.2506.post45.dev0.dist-info → ngsolve-6.2.2506.post74.dev0.dist-info}/top_level.txt
RENAMED
|
File without changes
|