ngsolve 6.2.2501.post55.dev1__cp313-cp313-macosx_10_15_universal2.whl → 6.2.2501.post70.dev1__cp313-cp313-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/ectypes.hpp +121 -0
- netgen/include/h1lofe.hpp +3 -0
- netgen/include/mptools.hpp +86 -1176
- netgen/include/vector.hpp +8 -0
- netgen/libngbla.dylib +0 -0
- netgen/libngcomp.dylib +0 -0
- netgen/libngfem.dylib +0 -0
- netgen/libngla.dylib +0 -0
- netgen/libngstd.dylib +0 -0
- ngsolve/__init__.pyi +3 -3
- ngsolve/cmake/NGSolveConfig.cmake +1 -1
- ngsolve/config/__init__.pyi +6 -6
- ngsolve/config/config.py +5 -5
- ngsolve/config/config.pyi +6 -6
- ngsolve/directsolvers.pyi +1 -1
- ngsolve/fem.pyi +20 -3
- ngsolve/krylovspace.pyi +2 -2
- ngsolve/nonlinearsolvers.pyi +1 -1
- ngsolve/timestepping.pyi +3 -3
- ngsolve/timing.pyi +1 -1
- ngsolve/utils.pyi +3 -2
- {ngsolve-6.2.2501.post55.dev1.dist-info → ngsolve-6.2.2501.post70.dev1.dist-info}/METADATA +1 -1
- {ngsolve-6.2.2501.post55.dev1.dist-info → ngsolve-6.2.2501.post70.dev1.dist-info}/RECORD +59 -58
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/Netgen.icns +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/bin/ngscxx +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/bin/ngsld +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/bin/ngsolve.tcl +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/bin/ngspy +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/beam.geo +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/beam.vol +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/chip.in2d +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/chip.vol +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/coil.geo +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/coil.vol +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/coilshield.geo +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/coilshield.vol +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/cube.geo +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/cube.vol +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/d10_DGdoubleglazing.pde +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/d11_chip_nitsche.pde +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/d1_square.pde +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/d2_chip.pde +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/d3_helmholtz.pde +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/d4_cube.pde +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/d5_beam.pde +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/d6_shaft.pde +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/d7_coil.pde +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/d8_coilshield.pde +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/d9_hybridDG.pde +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/doubleglazing.in2d +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/doubleglazing.vol +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/shaft.geo +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/shaft.vol +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/square.in2d +0 -0
- {ngsolve-6.2.2501.post55.dev1.data → ngsolve-6.2.2501.post70.dev1.data}/data/share/ngsolve/square.vol +0 -0
- {ngsolve-6.2.2501.post55.dev1.dist-info → ngsolve-6.2.2501.post70.dev1.dist-info}/LICENSE +0 -0
- {ngsolve-6.2.2501.post55.dev1.dist-info → ngsolve-6.2.2501.post70.dev1.dist-info}/WHEEL +0 -0
- {ngsolve-6.2.2501.post55.dev1.dist-info → ngsolve-6.2.2501.post70.dev1.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
#include "expr.hpp"
|
|
2
|
+
|
|
3
|
+
// arithmetics with error control (better say error monitoring)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
namespace ngbla
|
|
7
|
+
{
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class EC_double
|
|
11
|
+
{
|
|
12
|
+
double val;
|
|
13
|
+
double err;
|
|
14
|
+
public:
|
|
15
|
+
EC_double () : val(0), err(0) { }
|
|
16
|
+
EC_double (double a)
|
|
17
|
+
: val(a), err(fabs(a)*1e-16) { }
|
|
18
|
+
EC_double (double a, double aerr)
|
|
19
|
+
: val(a), err(aerr)
|
|
20
|
+
{
|
|
21
|
+
Check();
|
|
22
|
+
}
|
|
23
|
+
EC_double (EC_double&) = default;
|
|
24
|
+
|
|
25
|
+
EC_double & operator= (EC_double&) = default;
|
|
26
|
+
EC_double & operator= (double a)
|
|
27
|
+
{
|
|
28
|
+
val = a; err = fabs(a)*1e-16;
|
|
29
|
+
return *this;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
double Val() const { return val; }
|
|
33
|
+
double Err() const { return err; }
|
|
34
|
+
operator double() const { return val; }
|
|
35
|
+
|
|
36
|
+
EC_double & operator*= (EC_double b)
|
|
37
|
+
{
|
|
38
|
+
*this = EC_double(*this)*b;
|
|
39
|
+
return *this;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
EC_double & operator+= (EC_double b)
|
|
43
|
+
{
|
|
44
|
+
val += b.Val();
|
|
45
|
+
err += b.Err();
|
|
46
|
+
Check();
|
|
47
|
+
return *this;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
EC_double & operator-= (EC_double b)
|
|
51
|
+
{
|
|
52
|
+
*this = EC_double(*this) + (-b);
|
|
53
|
+
return *this;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
EC_double operator- () const
|
|
57
|
+
{
|
|
58
|
+
return EC_double(-val, err);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
void Check() const
|
|
62
|
+
{
|
|
63
|
+
if (err > 1e-4 * abs(val))
|
|
64
|
+
{
|
|
65
|
+
// throw Exception("roundoff is big, val = "+ToString(val)+", err = ", ToString(err));
|
|
66
|
+
cout << "roundoff is big, val = "+ToString(val)+", err = " + ToString(err) << endl;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
inline EC_double operator* (EC_double a, EC_double b)
|
|
73
|
+
{
|
|
74
|
+
return EC_double(a.Val()*b.Val(), abs(a.Val())*b.Err()+abs(b.Val())*a.Err());
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
inline EC_double operator* (EC_double a, double b)
|
|
78
|
+
{
|
|
79
|
+
return a * EC_double(b);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
inline EC_double operator* (double b, EC_double a)
|
|
83
|
+
{
|
|
84
|
+
return a * EC_double(b);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
inline EC_double operator+ (EC_double a, EC_double b)
|
|
88
|
+
{
|
|
89
|
+
return EC_double(a.Val()+b.Val(), a.Err()+b.Err());
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
typedef std::complex<EC_double> EC_Complex;
|
|
93
|
+
|
|
94
|
+
inline auto operator* (double a, EC_Complex b)
|
|
95
|
+
{
|
|
96
|
+
return EC_double(a) * b;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
inline auto operator* (EC_Complex a, const Complex b)
|
|
100
|
+
{
|
|
101
|
+
return a*EC_Complex(b);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
inline double L2Norm2 (EC_Complex val)
|
|
105
|
+
{
|
|
106
|
+
return sqr(val.real().Val()) + sqr(val.imag().Val());
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
// typedef std::complex<__128float> Complex128;
|
|
111
|
+
// typedef std::complex<double> Complex128;
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
template<> struct is_scalar_type<ngfem::EC_Complex> { static constexpr bool value = true; };
|
|
117
|
+
template<> struct is_scalar_type<ngfem::EC_double> { static constexpr bool value = true; };
|
|
118
|
+
template <> inline constexpr bool IsComplex<ngfem::EC_Complex> () { return true; }
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
}
|
netgen/include/h1lofe.hpp
CHANGED
|
@@ -1095,6 +1095,9 @@ namespace ngfem
|
|
|
1095
1095
|
H1LOFE_EXTERN template class T_ScalarFiniteElement<FE_TSegmL2<2>,ET_SEGM>;
|
|
1096
1096
|
H1LOFE_EXTERN template class T_ScalarFiniteElement<FE_TSegmL2<3>,ET_SEGM>;
|
|
1097
1097
|
|
|
1098
|
+
H1LOFE_EXTERN template class T_ScalarFiniteElement<ScalarFE<ET_POINT, 1>, ET_POINT, ScalarFiniteElement<0>>;
|
|
1099
|
+
H1LOFE_EXTERN template class T_ScalarFiniteElement<ScalarFE<ET_TRIG, 2>, ET_TRIG, ScalarFiniteElement<2>>;
|
|
1100
|
+
|
|
1098
1101
|
H1LOFE_EXTERN template class T_ScalarFiniteElement<ScalarFE<ET_TRIG,0>,ET_TRIG>;
|
|
1099
1102
|
H1LOFE_EXTERN template class T_ScalarFiniteElement<ScalarFE<ET_TRIG,1>,ET_TRIG>;
|
|
1100
1103
|
// H1LOFE_EXTERN template class T_ScalarFiniteElement<FE_Trig2,ET_TRIG>;
|