ngsolve 6.2.2501.post48.dev1__cp39-cp39-macosx_10_15_universal2.whl → 6.2.2501.post80.dev1__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/contact.hpp +2 -2
- netgen/include/ectypes.hpp +121 -0
- netgen/include/h1lofe.hpp +3 -0
- netgen/include/mptools.hpp +90 -1138
- netgen/include/ngblas.hpp +11 -1
- netgen/include/periodic.hpp +4 -0
- netgen/include/vector.hpp +9 -1
- 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/cmake/NGSolveConfig.cmake +1 -1
- ngsolve/config/config.py +5 -5
- {ngsolve-6.2.2501.post48.dev1.dist-info → ngsolve-6.2.2501.post80.dev1.dist-info}/METADATA +2 -2
- {ngsolve-6.2.2501.post48.dev1.dist-info → ngsolve-6.2.2501.post80.dev1.dist-info}/RECORD +52 -51
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/Netgen.icns +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/bin/ngscxx +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/bin/ngsld +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/bin/ngsolve.tcl +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/bin/ngspy +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/beam.geo +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/beam.vol +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/chip.in2d +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/chip.vol +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/coil.geo +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/coil.vol +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/coilshield.geo +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/coilshield.vol +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/cube.geo +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/cube.vol +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/d10_DGdoubleglazing.pde +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/d11_chip_nitsche.pde +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/d1_square.pde +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/d2_chip.pde +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/d3_helmholtz.pde +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/d4_cube.pde +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/d5_beam.pde +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/d6_shaft.pde +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/d7_coil.pde +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/d8_coilshield.pde +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/d9_hybridDG.pde +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/doubleglazing.in2d +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/doubleglazing.vol +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/shaft.geo +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/shaft.vol +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/square.in2d +0 -0
- {ngsolve-6.2.2501.post48.dev1.data → ngsolve-6.2.2501.post80.dev1.data}/data/share/ngsolve/square.vol +0 -0
- {ngsolve-6.2.2501.post48.dev1.dist-info → ngsolve-6.2.2501.post80.dev1.dist-info}/LICENSE +0 -0
- {ngsolve-6.2.2501.post48.dev1.dist-info → ngsolve-6.2.2501.post80.dev1.dist-info}/WHEEL +0 -0
- {ngsolve-6.2.2501.post48.dev1.dist-info → ngsolve-6.2.2501.post80.dev1.dist-info}/top_level.txt +0 -0
netgen/include/contact.hpp
CHANGED
|
@@ -161,10 +161,10 @@ namespace ngcomp
|
|
|
161
161
|
bool draw_pairs = false;
|
|
162
162
|
Array<Vec<3>> primary_points;
|
|
163
163
|
Array<Vec<3>> secondary_points;
|
|
164
|
-
bool volume;
|
|
164
|
+
bool volume, element_boundary;
|
|
165
165
|
public:
|
|
166
166
|
void Draw();
|
|
167
|
-
ContactBoundary(Region _master, Region _other, bool draw_pairs = false, bool _volume=false);
|
|
167
|
+
ContactBoundary(Region _master, Region _other, bool draw_pairs = false, bool _volume=false, bool element_boundary=false);
|
|
168
168
|
|
|
169
169
|
~ContactBoundary();
|
|
170
170
|
|
|
@@ -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>;
|