ngsolve 6.2.2504.post44.dev0__cp311-cp311-win_amd64.whl → 6.2.2601__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.
Files changed (94) hide show
  1. netgen/include/analytic_integrals.hpp +10 -0
  2. netgen/include/basematrix.hpp +6 -0
  3. netgen/include/bdbequations.hpp +55 -0
  4. netgen/include/bem_diffops.hpp +475 -0
  5. netgen/include/bilinearform.hpp +4 -1
  6. netgen/include/bspline.hpp +2 -0
  7. netgen/include/code_generation.hpp +2 -2
  8. netgen/include/complex_wrapper.hpp +30 -2
  9. netgen/include/contact.hpp +8 -0
  10. netgen/include/diagonalmatrix.hpp +6 -0
  11. netgen/include/diffop_impl.hpp +3 -1
  12. netgen/include/diffopwithfactor.hpp +123 -0
  13. netgen/include/elementbyelement.hpp +9 -3
  14. netgen/include/expr.hpp +45 -7
  15. netgen/include/fespace.hpp +9 -2
  16. netgen/include/gridfunction.hpp +3 -3
  17. netgen/include/h1amg.hpp +24 -1
  18. netgen/include/h1lumping.hpp +6 -0
  19. netgen/include/hcurl_equations.hpp +29 -0
  20. netgen/include/hcurlcurlfe.hpp +20 -0
  21. netgen/include/hdivfe_utils.hpp +1 -0
  22. netgen/include/hdivhofespace.hpp +2 -0
  23. netgen/include/kernels.hpp +724 -0
  24. netgen/include/l2hofe.hpp +1 -0
  25. netgen/include/matrix.hpp +8 -3
  26. netgen/include/meshaccess.hpp +1 -1
  27. netgen/include/mp_coefficient.hpp +24 -19
  28. netgen/include/mptools.hpp +1255 -237
  29. netgen/include/mycomplex.hpp +1 -1
  30. netgen/include/ngblas.hpp +116 -7
  31. netgen/include/potentialtools.hpp +2 -2
  32. netgen/include/preconditioner.hpp +2 -2
  33. netgen/include/prolongation.hpp +6 -3
  34. netgen/include/recursive_pol.hpp +63 -11
  35. netgen/include/simd_complex.hpp +45 -0
  36. netgen/include/sparsecholesky.hpp +6 -2
  37. netgen/include/sparsefactorization_interface.hpp +159 -0
  38. netgen/include/sparsematrix.hpp +21 -7
  39. netgen/include/sparsematrix_dyn.hpp +2 -2
  40. netgen/include/sparsematrix_impl.hpp +100 -33
  41. netgen/include/statushandler.hpp +8 -8
  42. netgen/include/thdivfe_impl.hpp +66 -0
  43. netgen/include/tscalarfe.hpp +1 -1
  44. netgen/include/vector.hpp +272 -47
  45. netgen/lib/libngsolve.lib +0 -0
  46. netgen/libngsolve.dll +0 -0
  47. netgen/ngscxx.bat +1 -1
  48. netgen/ngsld.bat +1 -1
  49. ngsolve/cmake/NGSolveConfig.cmake +8 -8
  50. ngsolve/cmake/ngsolve-targets.cmake +17 -10
  51. ngsolve/config/config.py +8 -8
  52. ngsolve/demos/intro/cmagnet.py +19 -22
  53. ngsolve/directsolvers.py +9 -21
  54. ngsolve/krylovspace.py +172 -3
  55. ngsolve/ngslib.pyd +0 -0
  56. ngsolve/nonlinearsolvers.py +2 -2
  57. ngsolve/solve_implementation.py +14 -1
  58. ngsolve/{solvers.py → solvers/__init__.py} +1 -1
  59. ngsolve/solvers/cudss.py +112 -0
  60. ngsolve/webgui.py +1 -0
  61. {ngsolve-6.2.2504.post44.dev0.dist-info → ngsolve-6.2.2601.dist-info}/METADATA +2 -2
  62. {ngsolve-6.2.2504.post44.dev0.dist-info → ngsolve-6.2.2601.dist-info}/RECORD +94 -88
  63. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/Scripts/ngsolve.tcl +0 -0
  64. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/beam.geo +0 -0
  65. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/beam.vol +0 -0
  66. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/chip.in2d +0 -0
  67. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/chip.vol +0 -0
  68. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/coil.geo +0 -0
  69. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/coil.vol +0 -0
  70. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/coilshield.geo +0 -0
  71. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/coilshield.vol +0 -0
  72. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/cube.geo +0 -0
  73. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/cube.vol +0 -0
  74. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/d10_DGdoubleglazing.pde +0 -0
  75. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/d11_chip_nitsche.pde +0 -0
  76. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/d1_square.pde +0 -0
  77. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/d2_chip.pde +0 -0
  78. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/d3_helmholtz.pde +0 -0
  79. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/d4_cube.pde +0 -0
  80. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/d5_beam.pde +0 -0
  81. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/d6_shaft.pde +0 -0
  82. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/d7_coil.pde +0 -0
  83. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/d8_coilshield.pde +0 -0
  84. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/d9_hybridDG.pde +0 -0
  85. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/doubleglazing.in2d +0 -0
  86. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/doubleglazing.vol +0 -0
  87. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
  88. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/shaft.geo +0 -0
  89. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/shaft.vol +0 -0
  90. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/square.in2d +0 -0
  91. {ngsolve-6.2.2504.post44.dev0.data → ngsolve-6.2.2601.data}/data/share/ngsolve/square.vol +0 -0
  92. {ngsolve-6.2.2504.post44.dev0.dist-info → ngsolve-6.2.2601.dist-info}/LICENSE +0 -0
  93. {ngsolve-6.2.2504.post44.dev0.dist-info → ngsolve-6.2.2601.dist-info}/WHEEL +0 -0
  94. {ngsolve-6.2.2504.post44.dev0.dist-info → ngsolve-6.2.2601.dist-info}/top_level.txt +0 -0
netgen/include/l2hofe.hpp CHANGED
@@ -71,6 +71,7 @@ namespace ngfem
71
71
 
72
72
  public:
73
73
  using ET_trait<ET>::ElementType;
74
+ using BaseScalarFiniteElement::CalcShape;
74
75
 
75
76
  INLINE L2HighOrderFE () { ; }
76
77
  INLINE L2HighOrderFE (int aorder)
netgen/include/matrix.hpp CHANGED
@@ -1107,7 +1107,7 @@ namespace ngbla
1107
1107
  //
1108
1108
  MatrixView() = default;
1109
1109
  // : h{0}, w{0}, dist{0}, data{nullptr} { }
1110
- INLINE MatrixView(const MatrixView &) = default;
1110
+ MatrixView(const MatrixView &) = default;
1111
1111
 
1112
1112
  template <typename T2, typename TH2, typename TW2, typename TDIST2,
1113
1113
  enable_if_t<is_convertible<T2*,T*>::value, int> =0,
@@ -1742,7 +1742,8 @@ namespace ngbla
1742
1742
  double operator() (int i) const
1743
1743
  {
1744
1744
  static_assert (true, "linear access of id");
1745
- cerr << "id, linear access" << endl; return 0;
1745
+ return 0;
1746
+ // cerr << "id, linear access" << endl; return 0;
1746
1747
  }
1747
1748
  ///
1748
1749
  double operator() (int i, int j) const { return (i == j) ? 1 : 0; }
@@ -1764,7 +1765,11 @@ namespace ngbla
1764
1765
  INLINE Identity (size_t s) : size(s) { ; }
1765
1766
 
1766
1767
  INLINE double operator() (int i) const
1767
- { cerr << "Identity, linear access" << endl; return 0; }
1768
+ {
1769
+ static_assert (true, "linear access of Identity");
1770
+ return 0;
1771
+ // cerr << "Identity, linear access" << endl; return 0;
1772
+ }
1768
1773
 
1769
1774
  INLINE double operator() (int i, int j) const { return (i == j) ? 1 : 0; }
1770
1775
  INLINE auto View() const { return Identity(size); }
@@ -1201,7 +1201,7 @@ namespace ngcomp
1201
1201
  shared_ptr<BitArray> MaskPtr() { return mask; }
1202
1202
  const shared_ptr<MeshAccess> & Mesh() const { return mesh; }
1203
1203
  void DoArchive(Archive& ar)
1204
- { ar & mesh & vb & mask; }
1204
+ { ar.Shallow(mesh) & vb & mask; }
1205
1205
  Region operator+ (const Region & r2) const
1206
1206
  {
1207
1207
  return Region (mesh, vb, BitArray(*mask).Or(r2.Mask()));
@@ -41,16 +41,16 @@ namespace ngsbem
41
41
 
42
42
 
43
43
 
44
- template <typename entry_type> class RegularMLMultiPoleCF;
44
+ template <typename entry_type> class RegularMLExpansionCF;
45
45
 
46
46
 
47
47
  template <typename RADIAL, typename entry_type=Complex>
48
- class MultiPoleCF : public CoefficientFunction
48
+ class SphericalExpansionCF : public CoefficientFunction
49
49
  {
50
- MultiPole<RADIAL, entry_type> mp;
50
+ SphericalExpansion<RADIAL, entry_type> mp;
51
51
  Vec<3> center;
52
52
  public:
53
- MultiPoleCF (int order, double kappa, Vec<3> acenter, double rtyp = 1)
53
+ SphericalExpansionCF (int order, double kappa, Vec<3> acenter, double rtyp = 1)
54
54
  : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mp(order, kappa, rtyp), center(acenter) { }
55
55
 
56
56
  entry_type & Coef(int n, int m) { return mp.Coef(n,m); }
@@ -70,23 +70,28 @@ namespace ngsbem
70
70
  }
71
71
 
72
72
  template <typename TARGET>
73
- void ShiftZ (double z, MultiPole<TARGET, entry_type> & target) { mp.ShiftZ(z, target); }
73
+ void ShiftZ (double z, SphericalExpansion<TARGET, entry_type> & target) { mp.ShiftZ(z, target); }
74
74
 
75
75
  using CoefficientFunction::Transform;
76
76
  template <typename TARGET>
77
- void Transform (MultiPoleCF<TARGET, entry_type> & target)
77
+ void Transform (SphericalExpansionCF<TARGET, entry_type> & target)
78
78
  {
79
79
  mp.Transform (target.MP(), target.Center()-center);
80
80
  }
81
+ template <typename TARGET>
82
+ void TransformAdd (SphericalExpansionCF<TARGET, entry_type> & target)
83
+ {
84
+ mp.TransformAdd (target.MP(), target.Center()-center);
85
+ }
81
86
  };
82
87
 
83
88
  template <typename entry_type>
84
- class SingularMLMultiPoleCF : public CoefficientFunction
89
+ class SingularMLExpansionCF : public CoefficientFunction
85
90
  {
86
- shared_ptr<SingularMLMultiPole<entry_type>> mlmp;
91
+ shared_ptr<SingularMLExpansion<entry_type>> mlmp;
87
92
  public:
88
- SingularMLMultiPoleCF (Vec<3> center, double r, double kappa)
89
- : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<SingularMLMultiPole<entry_type>>(center, r, kappa)} { }
93
+ SingularMLExpansionCF (Vec<3> center, double r, double kappa)
94
+ : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<SingularMLExpansion<entry_type>>(center, r, kappa)} { }
90
95
 
91
96
  virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
92
97
  { throw Exception("real eval not available"); }
@@ -103,20 +108,20 @@ namespace ngsbem
103
108
 
104
109
  }
105
110
 
106
- shared_ptr<SingularMLMultiPole<entry_type>> MLMP() const { return mlmp; }
107
- shared_ptr<RegularMLMultiPoleCF<entry_type>> CreateRegularExpansion(Vec<3> center, double r) const;
111
+ shared_ptr<SingularMLExpansion<entry_type>> MLExpansion() const { return mlmp; }
112
+ shared_ptr<RegularMLExpansionCF<entry_type>> CreateRegularExpansion(Vec<3> center, double r) const;
108
113
  };
109
114
 
110
115
 
111
116
  template <typename entry_type>
112
- class RegularMLMultiPoleCF : public CoefficientFunction
117
+ class RegularMLExpansionCF : public CoefficientFunction
113
118
  {
114
- shared_ptr<RegularMLMultiPole<entry_type>> mlmp;
119
+ shared_ptr<RegularMLExpansion<entry_type>> mlmp;
115
120
  public:
116
- RegularMLMultiPoleCF (shared_ptr<SingularMLMultiPoleCF<entry_type>> asingmp, Vec<3> center, double r)
117
- : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<RegularMLMultiPole<entry_type>>(asingmp->MLMP(), center, r)} { }
118
- RegularMLMultiPoleCF (shared_ptr<SingularMLMultiPole<entry_type>> asingmp, Vec<3> center, double r)
119
- : CoefficientFunction(sizeof(entry_type)/sizeof(Complex), true), mlmp{make_shared<RegularMLMultiPole<entry_type>>(asingmp, center, r)} { }
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, FMM_Parameters())} { }
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, FMM_Parameters())} { }
120
125
 
121
126
  virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override
122
127
  { throw Exception("real eval not available"); }
@@ -131,7 +136,7 @@ namespace ngsbem
131
136
  values = mlmp->Evaluate(mip.GetPoint());
132
137
  }
133
138
 
134
- shared_ptr<RegularMLMultiPole<entry_type>> MLMP() { return mlmp; }
139
+ shared_ptr<RegularMLExpansion<entry_type>> MLExpansion() { return mlmp; }
135
140
  };
136
141
 
137
142