ngsolve 6.2.2506.post38.dev0__cp39-cp39-macosx_10_15_universal2.whl → 6.2.2506.post60.dev0__cp39-cp39-macosx_10_15_universal2.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ngsolve might be problematic. Click here for more details.
- netgen/include/bdbequations.hpp +33 -0
- netgen/include/diffopwithfactor.hpp +123 -0
- netgen/include/expr.hpp +32 -1
- netgen/include/kernels.hpp +183 -74
- netgen/include/l2hofe.hpp +1 -0
- netgen/include/mptools.hpp +49 -39
- netgen/include/thdivfe_impl.hpp +1 -1
- netgen/include/vector.hpp +7 -2
- netgen/libngbla.dylib +0 -0
- netgen/libngcomp.dylib +0 -0
- netgen/libngfem.dylib +0 -0
- netgen/libngla.dylib +0 -0
- netgen/libngsbem.dylib +0 -0
- netgen/libngstd.dylib +0 -0
- ngsolve/cmake/NGSolveConfig.cmake +1 -1
- ngsolve/config/config.py +5 -5
- ngsolve/solve_implementation.py +10 -1
- {ngsolve-6.2.2506.post38.dev0.dist-info → ngsolve-6.2.2506.post60.dev0.dist-info}/METADATA +1 -1
- {ngsolve-6.2.2506.post38.dev0.dist-info → ngsolve-6.2.2506.post60.dev0.dist-info}/RECORD +55 -54
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/Netgen.icns +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/bin/ngscxx +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/bin/ngsld +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/bin/ngsolve.tcl +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/bin/ngspy +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/beam.geo +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/beam.vol +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/chip.in2d +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/chip.vol +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/coil.geo +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/coil.vol +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/coilshield.geo +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/coilshield.vol +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/cube.geo +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/cube.vol +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/d10_DGdoubleglazing.pde +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/d11_chip_nitsche.pde +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/d1_square.pde +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/d2_chip.pde +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/d3_helmholtz.pde +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/d4_cube.pde +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/d5_beam.pde +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/d6_shaft.pde +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/d7_coil.pde +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/d8_coilshield.pde +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/d9_hybridDG.pde +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/doubleglazing.in2d +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/doubleglazing.vol +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/shaft.geo +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/shaft.vol +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/square.in2d +0 -0
- {ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/square.vol +0 -0
- {ngsolve-6.2.2506.post38.dev0.dist-info → ngsolve-6.2.2506.post60.dev0.dist-info}/LICENSE +0 -0
- {ngsolve-6.2.2506.post38.dev0.dist-info → ngsolve-6.2.2506.post60.dev0.dist-info}/WHEEL +0 -0
- {ngsolve-6.2.2506.post38.dev0.dist-info → ngsolve-6.2.2506.post60.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/expr.hpp
CHANGED
|
@@ -515,7 +515,7 @@ namespace ngbla
|
|
|
515
515
|
}
|
|
516
516
|
|
|
517
517
|
|
|
518
|
-
if (TB::IsLinear())
|
|
518
|
+
if constexpr (TB::IsLinear())
|
|
519
519
|
{
|
|
520
520
|
if (T::IsLinear())
|
|
521
521
|
{
|
|
@@ -1492,8 +1492,39 @@ namespace ngbla
|
|
|
1492
1492
|
}
|
|
1493
1493
|
|
|
1494
1494
|
|
|
1495
|
+
/* ************************* OuterProduct ********************** */
|
|
1496
|
+
|
|
1497
|
+
template <class TA, class TB>
|
|
1498
|
+
class OuterProductExpr : public Expr<OuterProductExpr<TA,TB>>
|
|
1499
|
+
{
|
|
1500
|
+
TA a;
|
|
1501
|
+
TB b;
|
|
1502
|
+
public:
|
|
1503
|
+
OuterProductExpr (TA aa, TB ab) : a(aa), b(ab) { ; }
|
|
1495
1504
|
|
|
1505
|
+
// INLINE auto operator() (size_t i) const { return a[i] * b(i); }
|
|
1506
|
+
INLINE auto operator() (size_t i, size_t j) const { return a[i] * b[j]; }
|
|
1496
1507
|
|
|
1508
|
+
INLINE auto View() const { return *this; }
|
|
1509
|
+
INLINE auto Shape() const
|
|
1510
|
+
{
|
|
1511
|
+
return tuple<size_t,size_t> (a.Size(), b.Width());
|
|
1512
|
+
}
|
|
1513
|
+
|
|
1514
|
+
INLINE const auto A() const { return a; }
|
|
1515
|
+
INLINE const auto B() const { return b; }
|
|
1516
|
+
INLINE auto Height() const { return a.Size(); }
|
|
1517
|
+
INLINE auto Width() const { return b.Size(); }
|
|
1518
|
+
|
|
1519
|
+
static constexpr bool IsLinear() { return false; }
|
|
1520
|
+
};
|
|
1521
|
+
|
|
1522
|
+
|
|
1523
|
+
template <typename TA, typename TB>
|
|
1524
|
+
INLINE auto OuterProduct (const Expr<TA> & a, const Expr<TB> & b)
|
|
1525
|
+
{
|
|
1526
|
+
return OuterProductExpr (a.View(), b.View());
|
|
1527
|
+
}
|
|
1497
1528
|
|
|
1498
1529
|
|
|
1499
1530
|
|
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
97
|
auto CreateMultipoleExpansion (Vec<3> c, double r) const
|
|
89
98
|
{
|
|
90
|
-
return make_shared<SingularMLExpansion<
|
|
99
|
+
return make_shared<SingularMLExpansion<mp_type>> (c, r, 1e-16);
|
|
91
100
|
}
|
|
92
101
|
|
|
93
102
|
auto CreateLocalExpansion (Vec<3> c, double r) const
|
|
94
103
|
{
|
|
95
|
-
return make_shared<RegularMLExpansion<
|
|
104
|
+
return make_shared<RegularMLExpansion<mp_type>> (c, r, 1e-16);
|
|
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
|
|
158
|
+
Array<KernelTerm> terms;
|
|
136
159
|
|
|
137
160
|
auto CreateMultipoleExpansion (Vec<3> c, double r) const
|
|
138
161
|
{
|
|
139
|
-
return make_shared<SingularMLExpansion<
|
|
162
|
+
return make_shared<SingularMLExpansion<mp_type>> (c, r, 1e-16);
|
|
140
163
|
}
|
|
141
164
|
|
|
142
165
|
auto CreateLocalExpansion (Vec<3> c, double r) const
|
|
143
166
|
{
|
|
144
|
-
return make_shared<RegularMLExpansion<
|
|
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
|
-
}
|
|
161
|
-
|
|
162
|
-
void EvaluateMPTrans(RegularMLExpansion<Complex> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
|
|
163
|
-
{
|
|
164
|
-
val(0) = Real(mp.EvaluateDirectionalDerivative(pnt, nv));
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
|
-
|
|
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
|
|
181
|
-
{
|
|
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);
|
|
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
|
|
|
@@ -646,6 +634,127 @@ namespace ngsbem
|
|
|
646
634
|
};
|
|
647
635
|
|
|
648
636
|
|
|
637
|
+
|
|
638
|
+
|
|
639
|
+
|
|
640
|
+
/*
|
|
641
|
+
Dissertation Guenther Of
|
|
642
|
+
"BETI–Gebietszerlegungsmethoden
|
|
643
|
+
mit schnellen Randelementverfahren
|
|
644
|
+
und Anwendungen"
|
|
645
|
+
page 85
|
|
646
|
+
*/
|
|
647
|
+
|
|
648
|
+
template <int D> class LameSLKernel;
|
|
649
|
+
|
|
650
|
+
template<>
|
|
651
|
+
class LameSLKernel<3> : public BaseKernel
|
|
652
|
+
{
|
|
653
|
+
double E, nu;
|
|
654
|
+
double alpha;
|
|
655
|
+
public:
|
|
656
|
+
typedef double value_type;
|
|
657
|
+
|
|
658
|
+
static string Name() { return "LameSL"; }
|
|
659
|
+
static auto Shape() { return IVec<2>(3,3); }
|
|
660
|
+
|
|
661
|
+
LameSLKernel (const LameSLKernel&) = default;
|
|
662
|
+
LameSLKernel (LameSLKernel&&) = default;
|
|
663
|
+
LameSLKernel (double _E, double _nu) : E(_E), nu(_nu)
|
|
664
|
+
{
|
|
665
|
+
alpha = (1+nu)/((1-nu)*2*E);
|
|
666
|
+
|
|
667
|
+
terms += { 3-4*nu, 0, 0, 0 };
|
|
668
|
+
terms += { 3-4*nu, 0, 1, 1 };
|
|
669
|
+
terms += { 3-4*nu, 0, 2, 2 };
|
|
670
|
+
|
|
671
|
+
terms += { 1, 1, 0, 0 };
|
|
672
|
+
terms += { 1, 2, 0, 1 };
|
|
673
|
+
terms += { 1, 2, 1, 0 };
|
|
674
|
+
|
|
675
|
+
terms += { 1, 3, 0, 2 };
|
|
676
|
+
terms += { 1, 3, 2, 0 };
|
|
677
|
+
terms += { 1, 4, 1, 1 };
|
|
678
|
+
|
|
679
|
+
terms += { 1, 5, 1, 2 };
|
|
680
|
+
terms += { 1, 5, 2, 1 };
|
|
681
|
+
terms += { 1, 6, 2, 2 };
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
Array<KernelTerm> terms;
|
|
685
|
+
|
|
686
|
+
template <typename T>
|
|
687
|
+
auto Evaluate (Vec<3,T> x, Vec<3,T> y, Vec<3,T> nx, Vec<3,T> ny) const
|
|
688
|
+
{
|
|
689
|
+
T norm = L2Norm(x-y);
|
|
690
|
+
auto lapkern = alpha / (4 * M_PI * norm); // lapkern times factor
|
|
691
|
+
|
|
692
|
+
return Vec<7,T> { lapkern,
|
|
693
|
+
(x(0)-y(0))*(x(0)-y(0))/sqr(norm) * lapkern,
|
|
694
|
+
(x(0)-y(0))*(x(1)-y(1))/sqr(norm) * lapkern,
|
|
695
|
+
(x(0)-y(0))*(x(2)-y(2))/sqr(norm) * lapkern,
|
|
696
|
+
(x(1)-y(1))*(x(1)-y(1))/sqr(norm) * lapkern,
|
|
697
|
+
(x(1)-y(1))*(x(2)-y(2))/sqr(norm) * lapkern,
|
|
698
|
+
(x(2)-y(2))*(x(2)-y(2))/sqr(norm) * lapkern
|
|
699
|
+
};
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
|
|
703
|
+
auto CreateMultipoleExpansion (Vec<3> c, double r) const
|
|
704
|
+
{
|
|
705
|
+
return make_shared<SingularMLExpansion<Vec<6,Complex>>> (c, r, 1e-16);
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
auto CreateLocalExpansion (Vec<3> c, double r) const
|
|
709
|
+
{
|
|
710
|
+
return make_shared<RegularMLExpansion<Vec<6,Complex>>> (c, r, 1e-16);
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
|
|
714
|
+
void AddSource (SingularMLExpansion<Vec<6,Complex>> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
|
|
715
|
+
{
|
|
716
|
+
Vec<6> charge = 0.0;
|
|
717
|
+
charge.Range(0,3) = val;
|
|
718
|
+
mp.AddCharge(pnt, charge); // Row 1+2
|
|
719
|
+
|
|
720
|
+
Mat<3,3> jacobi = OuterProduct(pnt, val) + InnerProduct(pnt, val) * Id<3>();
|
|
721
|
+
|
|
722
|
+
for (int k = 0; k < 3; k++)
|
|
723
|
+
{
|
|
724
|
+
Vec<6> dipole_charge = 0.0;
|
|
725
|
+
dipole_charge.Range(3,6) = jacobi.Col(k);
|
|
726
|
+
|
|
727
|
+
auto ek = UnitVec<3>(k);
|
|
728
|
+
mp.AddDipole(pnt, -ek, dipole_charge);
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
void EvaluateMP (RegularMLExpansion<Vec<6,Complex>> & mp, Vec<3> pnt, Vec<3> nv, BareSliceVector<double> val) const
|
|
733
|
+
{
|
|
734
|
+
Vec<6> mpval = Real(mp.Evaluate (pnt));
|
|
735
|
+
val.Range(0,3) = 0;
|
|
736
|
+
val += (3-4*nu)*alpha * mpval.Range(0,3); // Row 1
|
|
737
|
+
|
|
738
|
+
val -= alpha/2 * mpval.Range(3,6); // Row 3
|
|
739
|
+
|
|
740
|
+
// Row 2
|
|
741
|
+
Mat<3,3> jacobi = 0.0;
|
|
742
|
+
for (int k = 0; k < 3; k++)
|
|
743
|
+
{
|
|
744
|
+
auto ek = UnitVec<3>(k);
|
|
745
|
+
jacobi.Col(k) = Real(mp.EvaluateDirectionalDerivative(pnt, ek).Range(0,3));
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
val -= alpha/2 * ( Trans(jacobi) * pnt + Trace(jacobi) * pnt);
|
|
749
|
+
}
|
|
750
|
+
};
|
|
751
|
+
|
|
752
|
+
|
|
753
|
+
|
|
754
|
+
|
|
755
|
+
|
|
756
|
+
|
|
757
|
+
|
|
649
758
|
}
|
|
650
759
|
|
|
651
760
|
|
netgen/include/l2hofe.hpp
CHANGED
netgen/include/mptools.hpp
CHANGED
|
@@ -884,26 +884,30 @@ namespace ngsbem
|
|
|
884
884
|
return sum;
|
|
885
885
|
}
|
|
886
886
|
|
|
887
|
-
{
|
|
888
|
-
// static Timer t("fmm direct eval"); RegionTimer reg(t);
|
|
889
|
-
// t.AddFlops (charges.Size());
|
|
890
887
|
if (simd_charges.Size())
|
|
891
888
|
{
|
|
892
889
|
// static Timer t("mptool singmp, evaluate, simd charges"); RegionTimer r(t);
|
|
890
|
+
// t.AddFlops (charges.Size());
|
|
893
891
|
|
|
894
892
|
simd_entry_type vsum{0.0};
|
|
895
893
|
if (mp.Kappa() < 1e-12)
|
|
896
894
|
{
|
|
897
895
|
for (auto [x,c] : simd_charges)
|
|
898
896
|
{
|
|
897
|
+
auto rho = L2Norm(p-x);
|
|
898
|
+
auto kernel = 1/(4*M_PI)/rho;
|
|
899
|
+
kernel = If(rho > 0.0, kernel, SIMD<double,FMM_SW>(0.0));
|
|
900
|
+
vsum += kernel * c;
|
|
901
|
+
|
|
902
|
+
/*
|
|
899
903
|
auto rho2 = L2Norm2(p-x);
|
|
900
904
|
auto kernel = (1/(4*M_PI)) * rsqrt(rho2);
|
|
901
905
|
kernel = If(rho2 > 0.0, kernel, SIMD<double,FMM_SW>(0.0));
|
|
902
906
|
vsum += kernel * c;
|
|
907
|
+
*/
|
|
903
908
|
}
|
|
904
909
|
}
|
|
905
|
-
else
|
|
906
|
-
if (mp.Kappa() < 1e-8)
|
|
910
|
+
else if (mp.Kappa() < 1e-8)
|
|
907
911
|
for (auto [x,c] : simd_charges)
|
|
908
912
|
{
|
|
909
913
|
auto rho = L2Norm(p-x);
|
|
@@ -920,7 +924,7 @@ namespace ngsbem
|
|
|
920
924
|
kernel = If(rho > 0.0, kernel, SIMD<Complex,FMM_SW>(0.0));
|
|
921
925
|
vsum += kernel * c;
|
|
922
926
|
}
|
|
923
|
-
|
|
927
|
+
|
|
924
928
|
sum += HSum(vsum);
|
|
925
929
|
}
|
|
926
930
|
else
|
|
@@ -936,41 +940,40 @@ namespace ngsbem
|
|
|
936
940
|
if (double rho = L2Norm(p-x); rho > 0)
|
|
937
941
|
sum += (1/(4*M_PI))*exp(Complex(0,rho*mp.Kappa())) / rho * c;
|
|
938
942
|
}
|
|
939
|
-
}
|
|
940
943
|
|
|
941
944
|
if (simd_dipoles.Size())
|
|
942
|
-
{
|
|
943
|
-
// static Timer t("mptool singmp, evaluate, simd dipoles"); RegionTimer r(t);
|
|
944
|
-
|
|
945
|
-
simd_entry_type vsum{0.0};
|
|
946
|
-
for (auto [x,d,c] : simd_dipoles)
|
|
947
945
|
{
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
auto
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
946
|
+
// static Timer t("mptool singmp, evaluate, simd dipoles"); RegionTimer r(t);
|
|
947
|
+
|
|
948
|
+
simd_entry_type vsum{0.0};
|
|
949
|
+
for (auto [x,d,c] : simd_dipoles)
|
|
950
|
+
{
|
|
951
|
+
auto rho = L2Norm(p-x);
|
|
952
|
+
auto drhodp = (1.0/rho) * (p-x);
|
|
953
|
+
auto [si,co] = sincos(rho*mp.Kappa());
|
|
954
|
+
auto dGdrho = (1/(4*M_PI))*SIMD<Complex,FMM_SW>(co,si) *
|
|
955
|
+
(-1.0/(rho*rho) + SIMD<Complex,FMM_SW>(0, mp.Kappa())/rho);
|
|
956
|
+
auto kernel = dGdrho * InnerProduct(drhodp, d);
|
|
957
|
+
kernel = If(rho > 0.0, kernel, SIMD<Complex,FMM_SW>(0.0));
|
|
958
|
+
vsum += kernel * c;
|
|
959
|
+
}
|
|
960
|
+
sum += HSum(vsum);
|
|
956
961
|
}
|
|
957
|
-
sum += HSum(vsum);
|
|
958
|
-
}
|
|
959
962
|
else
|
|
960
|
-
{
|
|
961
|
-
for (auto [x,d,c] : dipoles)
|
|
962
|
-
if (double rho = L2Norm(p-x); rho > 0)
|
|
963
963
|
{
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
964
|
+
for (auto [x,d,c] : dipoles)
|
|
965
|
+
if (double rho = L2Norm(p-x); rho > 0)
|
|
966
|
+
{
|
|
967
|
+
Vec<3> drhodp = 1.0/rho * (p-x);
|
|
968
|
+
Complex dGdrho = (1/(4*M_PI))*exp(Complex(0,rho*mp.Kappa())) *
|
|
969
|
+
(Complex(0, mp.Kappa())/rho - 1.0/sqr(rho));
|
|
970
|
+
sum += dGdrho * InnerProduct(drhodp, d) * c;
|
|
971
|
+
}
|
|
968
972
|
}
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
if (simd_chargedipoles.Size())
|
|
973
|
+
|
|
974
|
+
|
|
975
|
+
|
|
976
|
+
if (simd_chargedipoles.Size())
|
|
974
977
|
{
|
|
975
978
|
// static Timer t("mptool singmp, evaluate, simd chargedipoles"); RegionTimer r(t);
|
|
976
979
|
// t.AddFlops (simd_chargedipoles.Size()*FMM_SW);
|
|
@@ -982,10 +985,10 @@ namespace ngsbem
|
|
|
982
985
|
auto rhokappa = rho*mp.Kappa();
|
|
983
986
|
auto invrho = If(rho>0.0, 1.0/rho, SIMD<double,FMM_SW>(0.0));
|
|
984
987
|
auto [si,co] = sincos(rhokappa);
|
|
985
|
-
|
|
988
|
+
|
|
986
989
|
auto kernelc = (1/(4*M_PI))*invrho*SIMD<Complex,FMM_SW>(co,si);
|
|
987
990
|
vsum += kernelc * c;
|
|
988
|
-
|
|
991
|
+
|
|
989
992
|
auto kernel =
|
|
990
993
|
invrho*invrho * InnerProduct(p-x, d) *
|
|
991
994
|
kernelc * SIMD<Complex,FMM_SW>(-1.0, rhokappa);
|
|
@@ -994,7 +997,7 @@ namespace ngsbem
|
|
|
994
997
|
}
|
|
995
998
|
sum += HSum(vsum);
|
|
996
999
|
}
|
|
997
|
-
|
|
1000
|
+
else
|
|
998
1001
|
{
|
|
999
1002
|
// static Timer t("mptool singmp, evaluate, chargedipoles"); RegionTimer r(t);
|
|
1000
1003
|
// t.AddFlops (chargedipoles.Size());
|
|
@@ -1003,7 +1006,7 @@ namespace ngsbem
|
|
|
1003
1006
|
if (double rho = L2Norm(p-x); rho > 0)
|
|
1004
1007
|
{
|
|
1005
1008
|
sum += (1/(4*M_PI))*exp(Complex(0,rho*mp.Kappa())) / rho * c;
|
|
1006
|
-
|
|
1009
|
+
|
|
1007
1010
|
Vec<3> drhodp = 1.0/rho * (p-x);
|
|
1008
1011
|
Complex dGdrho = (1/(4*M_PI))*exp(Complex(0,rho*mp.Kappa())) *
|
|
1009
1012
|
(Complex(0, mp.Kappa())/rho - 1.0/sqr(rho));
|
|
@@ -1052,7 +1055,14 @@ namespace ngsbem
|
|
|
1052
1055
|
}
|
|
1053
1056
|
|
|
1054
1057
|
if (dipoles.Size())
|
|
1055
|
-
|
|
1058
|
+
{
|
|
1059
|
+
static int cnt = 0;
|
|
1060
|
+
cnt++;
|
|
1061
|
+
if (cnt < 3)
|
|
1062
|
+
cout << "we know what we do - evaluateDeriv not implemented for dipoles in SingularMLExpansion" << endl;
|
|
1063
|
+
// return sum;
|
|
1064
|
+
// throw Exception("EvaluateDeriv not implemented for dipoles in SingularMLExpansion");
|
|
1065
|
+
}
|
|
1056
1066
|
if (chargedipoles.Size())
|
|
1057
1067
|
throw Exception("EvaluateDeriv not implemented for dipoles in SingularMLExpansion");
|
|
1058
1068
|
|
netgen/include/thdivfe_impl.hpp
CHANGED
netgen/include/vector.hpp
CHANGED
|
@@ -978,8 +978,13 @@ namespace ngbla
|
|
|
978
978
|
}
|
|
979
979
|
|
|
980
980
|
|
|
981
|
-
|
|
982
|
-
|
|
981
|
+
template <int S, typename T = double>
|
|
982
|
+
auto UnitVec(size_t i)
|
|
983
|
+
{
|
|
984
|
+
Vec<S,T> ei = T(0.0);
|
|
985
|
+
ei(i) = T(1.0);
|
|
986
|
+
return ei;
|
|
987
|
+
}
|
|
983
988
|
|
|
984
989
|
template <class TV, class TSCAL> class Scalar2ElemVector
|
|
985
990
|
{
|
netgen/libngbla.dylib
CHANGED
|
Binary file
|
netgen/libngcomp.dylib
CHANGED
|
Binary file
|
netgen/libngfem.dylib
CHANGED
|
Binary file
|
netgen/libngla.dylib
CHANGED
|
Binary file
|
netgen/libngsbem.dylib
CHANGED
|
Binary file
|
netgen/libngstd.dylib
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-60-g1d0a21976"
|
|
33
|
+
NGSOLVE_VERSION_GIT = "v6.2.2506-60-g1d0a21976"
|
|
34
|
+
NGSOLVE_VERSION_PYTHON = "6.2.2506.post60.dev0"
|
|
35
35
|
|
|
36
36
|
NGSOLVE_VERSION_MAJOR = "6"
|
|
37
37
|
NGSOLVE_VERSION_MINOR = "2"
|
|
38
|
-
NGSOLVE_VERSION_TWEAK = "
|
|
38
|
+
NGSOLVE_VERSION_TWEAK = "60"
|
|
39
39
|
NGSOLVE_VERSION_PATCH = "2506"
|
|
40
|
-
NGSOLVE_VERSION_HASH = "
|
|
40
|
+
NGSOLVE_VERSION_HASH = "g1d0a21976"
|
|
41
41
|
|
|
42
42
|
CMAKE_CXX_COMPILER = "/Library/Developer/CommandLineTools/usr/bin/c++"
|
|
43
43
|
CMAKE_CUDA_COMPILER = ""
|
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,16 +1,16 @@
|
|
|
1
|
-
netgen/libngbla.dylib,sha256=
|
|
2
|
-
netgen/libngcomp.dylib,sha256=
|
|
3
|
-
netgen/libngfem.dylib,sha256=
|
|
4
|
-
netgen/libngla.dylib,sha256=
|
|
5
|
-
netgen/libngsbem.dylib,sha256=
|
|
1
|
+
netgen/libngbla.dylib,sha256=MfPGgv61vQoJjDJXpVYeSX7d2lnsoAQL8bCxg7FC2go,5843696
|
|
2
|
+
netgen/libngcomp.dylib,sha256=sAO-m96qOPGo2B4ocuuVPcDH9zep0sTjt0QYPu2WUiQ,43079552
|
|
3
|
+
netgen/libngfem.dylib,sha256=rR6H3Wod65nDXEctiH51fjj4tVbMJ7gO7Kk1fYJD6o4,51661008
|
|
4
|
+
netgen/libngla.dylib,sha256=VYPpdrx-expBklKDYgwLIKT2RezMcw3ze2F_9lCZJuM,25551600
|
|
5
|
+
netgen/libngsbem.dylib,sha256=6L2V5Zs5lY8Kb4t0WfNISN1jKIRVrKiLy-kUUOMrSwA,9441232
|
|
6
6
|
netgen/libngsolve.dylib,sha256=CofNl7Q0kJY44t5enNNoczxpNct_Zh7yWZAIFDrFOe8,944192
|
|
7
|
-
netgen/libngstd.dylib,sha256=
|
|
7
|
+
netgen/libngstd.dylib,sha256=gjGJ-FYmTmJTvDHlq25S4lgF8q57dpGlqM8uNxkqB0A,923728
|
|
8
8
|
netgen/include/analytic_integrals.hpp,sha256=xLVJ8n0-t6UlU_yKE8i0vYkXilsNuqVixkzJlmxptKw,238
|
|
9
9
|
netgen/include/arnoldi.hpp,sha256=b8mRu9wGyaLa7z6mXCFIhxfW_xcQvsOMD6TqbfYZ05g,1437
|
|
10
10
|
netgen/include/bandmatrix.hpp,sha256=zwKz89QY53MPsWgNsl0cXEAFKka_W4sXPIO54M3eT80,7778
|
|
11
11
|
netgen/include/basematrix.hpp,sha256=6YGW07HMH7F2JWXUKOwlGZ2ZvEoP7uCSGihdrzzKPag,28634
|
|
12
12
|
netgen/include/basevector.hpp,sha256=6UISVxCMw3kEzHzZmpOCdv9mLHlaWTR2AXLMbNNC6YQ,31108
|
|
13
|
-
netgen/include/bdbequations.hpp,sha256=
|
|
13
|
+
netgen/include/bdbequations.hpp,sha256=df_vU9kve1uGd06Tgzuhc3Z3qxQ7_cDvYNxb94NL6nc,91716
|
|
14
14
|
netgen/include/bdbintegrator.hpp,sha256=-KCvBBh8zZQ29tLiLIa28c6QWJBsN8xYC7K-NwEZhYw,47590
|
|
15
15
|
netgen/include/bem_diffops.hpp,sha256=ZPuCPiqrZcQj4w5BTkYJzOFTP33gC7ST7qh1AdvI-uM,16307
|
|
16
16
|
netgen/include/bessel.hpp,sha256=-6k_a2bsoY1rWgLSUvQMfm92xVLnlB28CU6Qwryj-GI,25282
|
|
@@ -38,6 +38,7 @@ netgen/include/diagonalmatrix.hpp,sha256=_P9pv36VUbh0WGuYtKlAHJv-SNVqg7PsGPwphbm
|
|
|
38
38
|
netgen/include/differentialoperator.hpp,sha256=uUDW_sGO8prj3gtFv4CNkcpttAaeqYrr1fOWEYRsemI,9380
|
|
39
39
|
netgen/include/diffop.hpp,sha256=w7IteI4MKRSX13M3u74BuPKBvZfD9gU_jjAVSJD8hW4,44359
|
|
40
40
|
netgen/include/diffop_impl.hpp,sha256=aJTf9vwbAz9QXy6RfFLh9VldZClZysdcVSa2fiXFfr8,11345
|
|
41
|
+
netgen/include/diffopwithfactor.hpp,sha256=bQhwxhFqA7l3yo9RjzZrHmtO97dqXuYhuW_MRXVSyC8,4053
|
|
41
42
|
netgen/include/discontinuous.hpp,sha256=_Mwx37ZOJ0tKVJ6FdJClEJo3fQYs1ht7-vzn-vhvWGg,3069
|
|
42
43
|
netgen/include/dump.hpp,sha256=SIdx6wQbmxGOthnUKGnGl5IYL4zRC_l6x0YdOXi598I,27010
|
|
43
44
|
netgen/include/ectypes.hpp,sha256=4eUASFuK828kMN4-OS83fy1kH1pstYByxqJGjPH_3H0,2595
|
|
@@ -48,7 +49,7 @@ netgen/include/elementbyelement.hpp,sha256=k3RSmDYkU4BTm7rb9mYcJyel5eEmTB-5URmir
|
|
|
48
49
|
netgen/include/elementtopology.hpp,sha256=OKzjGfwrN7zhvkbbHJrdBpwpDkVlhBxwQFeFwPQNFYg,44494
|
|
49
50
|
netgen/include/elementtransformation.hpp,sha256=PDLQsfkVyDkA7L4hLBOBTSimd3a-E-069krvZrXxJgM,10408
|
|
50
51
|
netgen/include/evalfunc.hpp,sha256=J0v1ACrYTkQDAxsklPUJYhv-fPjHIUDqvzlZoCucAqg,10019
|
|
51
|
-
netgen/include/expr.hpp,sha256=
|
|
52
|
+
netgen/include/expr.hpp,sha256=kuCXH9Za4BRnWhxB8ZFMZchuFvfVPxpLxZbaf4gG2k4,46132
|
|
52
53
|
netgen/include/facetfe.hpp,sha256=h1vCg8GhJAvxvVgt15MuhA8MXOwvVahZaWB5__PhCDs,4920
|
|
53
54
|
netgen/include/facetfespace.hpp,sha256=1vXyL3r6FkZTLSwYw-zWdJTddyF4m27Taqdt26E0c6U,4739
|
|
54
55
|
netgen/include/facethofe.hpp,sha256=-ks3RV2WUrPgQ0ElYIM7h7t0Mwvu6MIGiW1bCIeHtSc,3701
|
|
@@ -103,8 +104,8 @@ netgen/include/intrule.hpp,sha256=VSDdG7fpraQHY1eZFaKo7bLyfpwBjMM0Z2qJgcmYW3w,80
|
|
|
103
104
|
netgen/include/intrules_SauterSchwab.hpp,sha256=1HiSgmdJHNoCp1ZYY7gNFPHdanepbGtay2YJrTaYHBg,650
|
|
104
105
|
netgen/include/irspace.hpp,sha256=DcpkPMFKx5nDvfLfTWKmpYuLX-X5rBuWF8Ta9e__m-A,1508
|
|
105
106
|
netgen/include/jacobi.hpp,sha256=hFhMn5Q46_DxHGofXV_or5VCTREslMvpccV7FZCAefE,4738
|
|
106
|
-
netgen/include/kernels.hpp,sha256=
|
|
107
|
-
netgen/include/l2hofe.hpp,sha256=
|
|
107
|
+
netgen/include/kernels.hpp,sha256=pKuBM9bjaEdhpnTVJKF68-4-XP9s8xMKmBE8cnFR_Dc,23574
|
|
108
|
+
netgen/include/l2hofe.hpp,sha256=kbCezYmmgGqfIN0WZRNDKBEoWQTTcgpg7TEuDERolSY,6696
|
|
108
109
|
netgen/include/l2hofe_impl.hpp,sha256=-rWVybAL7QTkfNNXAz1tP4RYQcBuOVYLTZE3E502tuA,15848
|
|
109
110
|
netgen/include/l2hofefo.hpp,sha256=sQhmfliTW2Ac_XLucufzbRdtSRr471i3qPFAMSByvU0,16592
|
|
110
111
|
netgen/include/l2hofespace.hpp,sha256=-Xu_I1KUYVZGuw6XFi7kvwe0x4uGncB2fTctswygZuU,12057
|
|
@@ -115,7 +116,7 @@ netgen/include/memusage.hpp,sha256=H-8rWQ8UQDCnOiYQnbwvILPuPoJD8bqwiNGB2QAUa0o,1
|
|
|
115
116
|
netgen/include/meshaccess.hpp,sha256=j5dinD-8bVm18MkVqG9j-IhhZUHHXw3erdZy-LHxl-8,47133
|
|
116
117
|
netgen/include/mgpre.hpp,sha256=zdNozWRSyluOF8E4GLeOR290Yw2wqGYGc1sTTSB5n3U,4825
|
|
117
118
|
netgen/include/mp_coefficient.hpp,sha256=AvH0tzkfqeOGZiydF2f0-M7vtW-29szci-9Krpl_Dow,4980
|
|
118
|
-
netgen/include/mptools.hpp,sha256=
|
|
119
|
+
netgen/include/mptools.hpp,sha256=elGoYLWZooEjH8NJmFOzFQJD_tuqgjDaCWZk7aZWzmo,70712
|
|
119
120
|
netgen/include/multigrid.hpp,sha256=ovl1GXcTfXuYLVVMcFfCKP5sg6diSGlqdjCMMPCgFUo,856
|
|
120
121
|
netgen/include/multivector.hpp,sha256=nuLxMiq2y6HoH5w9j6ka2BhJjRyREPeEnNFx_x0SMU0,12635
|
|
121
122
|
netgen/include/mumpsinverse.hpp,sha256=Jaa5NPQzwPo2kSbHijI_LX3tr0qUmVhqVlRM14KeD18,4062
|
|
@@ -181,7 +182,7 @@ netgen/include/tensorproductintegrator.hpp,sha256=ZtcEnhvibtXK20dmfntzk0xKFdwazP
|
|
|
181
182
|
netgen/include/thcurlfe.hpp,sha256=37ry6XxTNT72uzM8IAcUiVtNrpi2dscnHTp0Bo6injI,4971
|
|
182
183
|
netgen/include/thcurlfe_impl.hpp,sha256=ddHcRzB2zDUU7k9IFTC8tUfTK7eQFtL49ViYiM9v2dM,15212
|
|
183
184
|
netgen/include/thdivfe.hpp,sha256=MCC9aF1qGedORrPuERnZAw-j4U7bEzZhHmi2TtvyuPE,2913
|
|
184
|
-
netgen/include/thdivfe_impl.hpp,sha256=
|
|
185
|
+
netgen/include/thdivfe_impl.hpp,sha256=SIsUIlKLxjFcMta3uAa3cUVRiOFUIzF3Gqx559dXK6I,17509
|
|
185
186
|
netgen/include/tpdiffop.hpp,sha256=hsu3qokOrj7BPhFVPDK4OGcWTqGKzOwrQNQRHd3xgf8,18355
|
|
186
187
|
netgen/include/tpfes.hpp,sha256=3M-UHBpV_rzOSsFjnWf1Z35JegQUYE4Ck_fvW6BLkKQ,4537
|
|
187
188
|
netgen/include/tpintrule.hpp,sha256=paPl3fGLFe7ynxsplntJF0FvU3XFql4KnNFRJV2KuYA,8733
|
|
@@ -189,7 +190,7 @@ netgen/include/triangular.hpp,sha256=gU5xq35XlBTGJkNnSG9X_GTe4BUpVIYVl0n2XMSS_iM
|
|
|
189
190
|
netgen/include/tscalarfe.hpp,sha256=D8A1jFfPz5GAljkxckSEPc68W2OwY5ylDHum5jTe2cw,10706
|
|
190
191
|
netgen/include/tscalarfe_impl.hpp,sha256=mmD48AmFcxGahXiwK7lNHk7SRuOI4y_ukqksEWOb0fY,38706
|
|
191
192
|
netgen/include/umfpackinverse.hpp,sha256=JJZFhK6Y0laJcrVhdOBuSKn7jsp3Gl1J4G4V6mC0Oeg,4287
|
|
192
|
-
netgen/include/vector.hpp,sha256=
|
|
193
|
+
netgen/include/vector.hpp,sha256=d9pA2yAsmMAip4r3F-JJ5mxyMWAflpGy5zp49ZQCuAg,33350
|
|
193
194
|
netgen/include/voxelcoefficientfunction.hpp,sha256=NVHmt3Geq2mDNMYo_4CmjAwv56N4lzDmS0_AHawKWZo,1498
|
|
194
195
|
netgen/include/vtkoutput.hpp,sha256=PlNdvQcY4fdzSuIHBuvsfjJB8IG1-xuCb3HlTp7QBsw,6430
|
|
195
196
|
netgen/include/vvector.hpp,sha256=x98Zea83T3TARxNOX-F-ZMxaR5SEjiwA35-ZWE0yCdU,4577
|
|
@@ -210,18 +211,18 @@ ngsolve/ngscxx.py,sha256=q3t5DgE3sJazWueas8FTXJ9jZM-LVa9KbGj_RTam6V4,1293
|
|
|
210
211
|
ngsolve/ngslib.so,sha256=KCpWZJlPkoeS2OhoDSFPwkNjAhQ2cM84B5Z5Sx4WygM,336856
|
|
211
212
|
ngsolve/nonlinearsolvers.py,sha256=8Q_CrD9vjdpZRV9sj2Fth7Y_kJJl7djPgarQmTK7Xfw,8216
|
|
212
213
|
ngsolve/preconditioners.py,sha256=DLRUd9wQwxXUWL1wEBAbHQbWNp71qZYOFvH5Krfa834,239
|
|
213
|
-
ngsolve/solve_implementation.py,sha256
|
|
214
|
+
ngsolve/solve_implementation.py,sha256=-yyggHGmivv_hhSfRpShFqfWw2SOECpR3BMvccidvE4,5540
|
|
214
215
|
ngsolve/solvers.py,sha256=WgZ9X1x9mtQegXDu8VcTjP-wbS2EnrUS96Y8LXqeflw,304
|
|
215
216
|
ngsolve/timestepping.py,sha256=SLbsgE5pY5tXYTLGlVypk4kS2Ui8GxOwWmKVxqneZRU,8350
|
|
216
217
|
ngsolve/timing.py,sha256=Xqkq2byJjNNK9vJjHG2O3cMf6xuKIyySjk8yv6Le2T8,3985
|
|
217
218
|
ngsolve/utils.py,sha256=V2yVF4K3uv1007-DEs_GrzJ3BOOh09c4lDGGR1Xw-PU,4557
|
|
218
219
|
ngsolve/webgui.py,sha256=EUhaOtWHZy80aLXhXbHwbCQVNjRSw-BAAE50cz7Ydaw,24313
|
|
219
|
-
ngsolve/cmake/NGSolveConfig.cmake,sha256=
|
|
220
|
+
ngsolve/cmake/NGSolveConfig.cmake,sha256=VKaccLs5NduMh98lOgU5r51CeFr2B7iUtR3AHk7tIX0,5054
|
|
220
221
|
ngsolve/cmake/ngsolve-targets-release.cmake,sha256=2dUHzaaMQX08eT7Tjti0crzp_Ah3oqW86gp5UgSufmw,3426
|
|
221
222
|
ngsolve/cmake/ngsolve-targets.cmake,sha256=1cQTFW-4aJfY356XRcuslSbFClmwPOSS03bj3WL15iM,5637
|
|
222
223
|
ngsolve/config/__init__.py,sha256=A00lpnUKg-q3y_b-cN3jKF9urkGTGjb2Yz_gGc9WCLs,22
|
|
223
224
|
ngsolve/config/__main__.py,sha256=m8k2RrXnXR5oYaUna1dwkKNhOZBiM7EyFSE9kIcZKvo,89
|
|
224
|
-
ngsolve/config/config.py,sha256=
|
|
225
|
+
ngsolve/config/config.py,sha256=szLv8v-ruuVtgoJAEHzBKorz6dn8amOtMpXSrDsd7oQ,2465
|
|
225
226
|
ngsolve/demos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
226
227
|
ngsolve/demos/TensorProduct/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
227
228
|
ngsolve/demos/TensorProduct/tp_dg_1d_1d.py,sha256=CrJCkbJNinVYUL3DO-4DnCAMGSAhegNc0QVWiJTk3Js,2109
|
|
@@ -253,41 +254,41 @@ ngsolve/demos/mpi/mpi_cmagnet.py,sha256=HuN4lttA2q2kNWss6LZNUKraHqskRQNVEBRjkrU2
|
|
|
253
254
|
ngsolve/demos/mpi/mpi_navierstokes.py,sha256=Sct0G6EziYVfeIeSa7_b6r3WiYXcxZekoOGsZQALx-c,2911
|
|
254
255
|
ngsolve/demos/mpi/mpi_poisson.py,sha256=UvXODjpWtqIgqq7lvMJf3ZEoJZLY1Dck-82R7auiW6I,2468
|
|
255
256
|
ngsolve/demos/mpi/mpi_timeDG.py,sha256=TPJZ-DwmzOpuAol-fFKeU-R2rJ74MbjOm3DDkQI9BcY,1881
|
|
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.
|
|
289
|
-
ngsolve-6.2.2506.
|
|
290
|
-
ngsolve-6.2.2506.
|
|
291
|
-
ngsolve-6.2.2506.
|
|
292
|
-
ngsolve-6.2.2506.
|
|
293
|
-
ngsolve-6.2.2506.
|
|
257
|
+
ngsolve-6.2.2506.post60.dev0.data/data/Netgen.icns,sha256=Ebqct4LKxLzxdJLwGg0tTUQb1VjLwkKhtmdYhpRhKjg,291475
|
|
258
|
+
ngsolve-6.2.2506.post60.dev0.data/data/bin/ngscxx,sha256=ELkWfd_zU4SS4gatogC7PjTVMj4mk-PuJ3Pq2zCUJa8,1751
|
|
259
|
+
ngsolve-6.2.2506.post60.dev0.data/data/bin/ngsld,sha256=50UErkFWLTocn8GtZDTkUWmPTIqsoK5lcfBGwyP0Vnc,557
|
|
260
|
+
ngsolve-6.2.2506.post60.dev0.data/data/bin/ngsolve.tcl,sha256=SSBYLyp4zgl6eM17LXIiLoj1Doy-h2s4EZg6oKi6ucA,20995
|
|
261
|
+
ngsolve-6.2.2506.post60.dev0.data/data/bin/ngspy,sha256=KEtzflkZPs86Jnf7knSPWZqLlX70W7P1iyoyxbzMsec,104
|
|
262
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/beam.geo,sha256=EtxklGAIo6SxZlHHC_FZHoQGZqZUDGJQSheEMFO-bJ8,387
|
|
263
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/beam.vol,sha256=aotG4VA7sIgAsPQsYkzbMP1Jta_TddG2gMCblkSPkqc,13594
|
|
264
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/chip.in2d,sha256=g6C-mcoD8-q9JtZpuh4mf4iFEZUIGvvivp4C5YYMlAw,551
|
|
265
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/chip.vol,sha256=if0yLn8E3P4mZ_X5sBcrEIp2C4ZhMysGROtB1YCkJHI,27897
|
|
266
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/coil.geo,sha256=PVD4I9ztZowKwNOUrjnoOP7Tj2KG9J0UCJFRS9EhlxU,364
|
|
267
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/coil.vol,sha256=IOZe4oPxMUa9vBGJWN4LG9M79XAruY23S2rtAh_2_98,144724
|
|
268
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/coilshield.geo,sha256=lCUDCAhfowBttSGEY_giyY0xEFInAbgVfIPwSWBb504,605
|
|
269
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/coilshield.vol,sha256=2Dq5VCX7dqGxo_ExtUhI716I-SnxhLGPawW29IR9nYY,162397
|
|
270
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/cube.geo,sha256=kbBNVUYVSf1ogV7-Xf31KXju3LCUIPaDLfvwZHMgddI,386
|
|
271
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/cube.vol,sha256=54108a3RvrTUOJSFltxUY8iiNzyWoBTtNrWM0kufj7c,90295
|
|
272
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde,sha256=bPQAvbYlyvCfLzk9cOzjXDn94UFC_vBCONl7fEIaMVs,1304
|
|
273
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde,sha256=Mq3Ap63mWqjQyXsASFAlkRQ0AWxBlY3BYYejTYd-lwg,1101
|
|
274
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/d1_square.pde,sha256=ysOroxhoAOePmB_Aswps9iGjA2qV5435iu3hOnSvN8M,1029
|
|
275
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/d2_chip.pde,sha256=AowiGbuAWEdyFUB3d1LlZeQ7rarbkqIYsj1QcWc89-A,950
|
|
276
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/d3_helmholtz.pde,sha256=nG0HxrxboI2qGoR5_LNZt7RYB7ji2o5jtkyIqTFR4y8,568
|
|
277
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/d4_cube.pde,sha256=-C4RgoVtBXZu7XHCwZy7F7pr_PGNGcRwWCFzBppq1mQ,1033
|
|
278
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/d5_beam.pde,sha256=QOYC7YN7LdcjSFeLdJu1Tlfi-lmsVsa7b9G6qoCsGo8,1985
|
|
279
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/d6_shaft.pde,sha256=Iua3INfuIUeaBk21qNg4u5KZt__H1B8BZUsy5frjhdY,1901
|
|
280
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/d7_coil.pde,sha256=-ELH2obynMJcvSOqoYT1OThXcllIcdss0ZrklLSimZw,1200
|
|
281
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/d8_coilshield.pde,sha256=WUUulvd3dsedB25sFVQgU7FgZ3B7BkbxgkXTEBglk1w,1141
|
|
282
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/d9_hybridDG.pde,sha256=drLxnz1GvCEeme-FV772cGbS-YTgeUB4G5DrbkLdapw,1479
|
|
283
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/doubleglazing.in2d,sha256=bKn7m7eCcoLimGgoO3nxhiu7Mm0lIRnbx0TJh5dC1I0,506
|
|
284
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/doubleglazing.vol,sha256=Eg-H6nl2Hd5Nr593SFCCLVTDl25kIXuddrWpd7xlrP8,34987
|
|
285
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz,sha256=RuxM0vtYljoAImOH6U6avt0LmWaUbGNao37n8p_Yd1w,496477
|
|
286
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/shaft.geo,sha256=aPbk4EItJSLN_PjpOejnijk74y53QBW-IPCXHvLNlVs,2434
|
|
287
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/shaft.vol,sha256=fT8qu1L-p0MkI-l3WVisKG52W5FCzO_NzXaCvMJT1V4,270450
|
|
288
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/square.in2d,sha256=evpVgNNzReABv6bIs4J_r1OFeedMppoS-TEzE-tfKgY,192
|
|
289
|
+
ngsolve-6.2.2506.post60.dev0.data/data/share/ngsolve/square.vol,sha256=IXIHYmq85hkFsMVZ_vEVthUnd0YTQWE4jRegjW8_ImI,9162
|
|
290
|
+
ngsolve-6.2.2506.post60.dev0.dist-info/LICENSE,sha256=oZDcnIBDdV2Q-LCnX6ZrnkLUr0yYC_XdxjPwEk2zzuc,26430
|
|
291
|
+
ngsolve-6.2.2506.post60.dev0.dist-info/METADATA,sha256=kjQyQ1qoK9J7_WKPFpeIOLlA794QdiBD3GuI5iJjKcA,247
|
|
292
|
+
ngsolve-6.2.2506.post60.dev0.dist-info/WHEEL,sha256=GUjFiIxJsa64p6UL_1XdSua8mJHV9PIo6rgmnfjsOyw,108
|
|
293
|
+
ngsolve-6.2.2506.post60.dev0.dist-info/top_level.txt,sha256=1llU44DxNIP85uPT4RChsIuV3h2d0_5j0Ui_Df5vV8E,15
|
|
294
|
+
ngsolve-6.2.2506.post60.dev0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/bin/ngsolve.tcl
RENAMED
|
File without changes
|
|
File without changes
|
{ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/beam.geo
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/beam.vol
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/chip.in2d
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/chip.vol
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/coil.geo
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/coil.vol
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/cube.geo
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.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.post38.dev0.data → ngsolve-6.2.2506.post60.dev0.data}/data/share/ngsolve/shaft.geo
RENAMED
|
File without changes
|
{ngsolve-6.2.2506.post38.dev0.data → ngsolve-6.2.2506.post60.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.post38.dev0.dist-info → ngsolve-6.2.2506.post60.dev0.dist-info}/top_level.txt
RENAMED
|
File without changes
|