ngsolve 6.2.2406__cp311-cp311-win_amd64.whl → 6.2.2406.post111.dev1__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.

Files changed (95) hide show
  1. netgen/include/arnoldi.hpp +3 -0
  2. netgen/include/basematrix.hpp +9 -18
  3. netgen/include/basevector.hpp +43 -71
  4. netgen/include/bilinearform.hpp +8 -59
  5. netgen/include/blockjacobi.hpp +4 -0
  6. netgen/include/cg.hpp +3 -0
  7. netgen/include/chebyshev.hpp +3 -0
  8. netgen/include/comp.hpp +0 -4
  9. netgen/include/diagonalmatrix.hpp +154 -0
  10. netgen/include/dump.hpp +5 -5
  11. netgen/include/eigen.hpp +3 -0
  12. netgen/include/elementbyelement.hpp +4 -0
  13. netgen/include/elementtopology.hpp +0 -3
  14. netgen/include/expr.hpp +2 -0
  15. netgen/include/fespace.hpp +12 -14
  16. netgen/include/finiteelement.hpp +7 -7
  17. netgen/include/h1amg.hpp +3 -1
  18. netgen/include/hcurlhdivfes.hpp +2 -0
  19. netgen/include/hcurlhofespace.hpp +4 -3
  20. netgen/include/hdivfes.hpp +3 -3
  21. netgen/include/hdivhosurfacefespace.hpp +3 -3
  22. netgen/include/intrule.hpp +15 -1
  23. netgen/include/jacobi.hpp +3 -0
  24. netgen/include/la.hpp +1 -13
  25. netgen/include/matrix.hpp +21 -0
  26. netgen/include/meshaccess.hpp +21 -51
  27. netgen/include/mgpre.hpp +1 -1
  28. netgen/include/mptools.hpp +1 -2
  29. netgen/include/multivector.hpp +2 -0
  30. netgen/include/ngsobject.hpp +1 -1
  31. netgen/include/nodalhofe.hpp +3 -0
  32. netgen/include/normalfacetfespace.hpp +4 -5
  33. netgen/include/order.hpp +3 -1
  34. netgen/include/parallel_matrices.hpp +5 -0
  35. netgen/include/paralleldofs.hpp +44 -95
  36. netgen/include/parallelngs.hpp +2 -1
  37. netgen/include/parallelvector.hpp +12 -16
  38. netgen/include/pardisoinverse.hpp +1 -0
  39. netgen/include/periodic.hpp +1 -0
  40. netgen/include/pmltrafo.hpp +5 -2
  41. netgen/include/preconditioner.hpp +3 -1
  42. netgen/include/scalarfe.hpp +4 -1
  43. netgen/include/sparsecholesky.hpp +4 -0
  44. netgen/include/sparsematrix.hpp +8 -41
  45. netgen/include/sparsematrix_dyn.hpp +2 -0
  46. netgen/include/sparsematrix_impl.hpp +66 -1
  47. netgen/include/special_matrix.hpp +3 -138
  48. netgen/include/tpdiffop.hpp +1 -0
  49. netgen/include/tpintrule.hpp +2 -0
  50. netgen/include/umfpackinverse.hpp +1 -1
  51. netgen/include/vector.hpp +6 -1
  52. netgen/include/vvector.hpp +10 -1
  53. netgen/lib/libngsolve.lib +0 -0
  54. netgen/libngsolve.dll +0 -0
  55. ngsolve/cmake/NGSolveConfig.cmake +1 -1
  56. ngsolve/config/config.py +5 -5
  57. ngsolve/config.py +5 -5
  58. ngsolve/demos/intro/poisson.py +1 -1
  59. ngsolve/demos/mpi/mpi_navierstokes.py +2 -0
  60. ngsolve/demos/mpi/mpi_timeDG.py +3 -0
  61. ngsolve/ngslib.pyd +0 -0
  62. {ngsolve-6.2.2406.dist-info → ngsolve-6.2.2406.post111.dev1.dist-info}/METADATA +2 -2
  63. {ngsolve-6.2.2406.dist-info → ngsolve-6.2.2406.post111.dev1.dist-info}/RECORD +95 -94
  64. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/Scripts/ngsolve.tcl +0 -0
  65. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/beam.geo +0 -0
  66. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/beam.vol +0 -0
  67. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/chip.in2d +0 -0
  68. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/chip.vol +0 -0
  69. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/coil.geo +0 -0
  70. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/coil.vol +0 -0
  71. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/coilshield.geo +0 -0
  72. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/coilshield.vol +0 -0
  73. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/cube.geo +0 -0
  74. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/cube.vol +0 -0
  75. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d10_DGdoubleglazing.pde +0 -0
  76. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d11_chip_nitsche.pde +0 -0
  77. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d1_square.pde +0 -0
  78. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d2_chip.pde +0 -0
  79. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d3_helmholtz.pde +0 -0
  80. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d4_cube.pde +0 -0
  81. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d5_beam.pde +0 -0
  82. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d6_shaft.pde +0 -0
  83. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d7_coil.pde +0 -0
  84. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d8_coilshield.pde +0 -0
  85. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d9_hybridDG.pde +0 -0
  86. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/doubleglazing.in2d +0 -0
  87. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/doubleglazing.vol +0 -0
  88. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
  89. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/shaft.geo +0 -0
  90. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/shaft.vol +0 -0
  91. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/square.in2d +0 -0
  92. {ngsolve-6.2.2406.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/square.vol +0 -0
  93. {ngsolve-6.2.2406.dist-info → ngsolve-6.2.2406.post111.dev1.dist-info}/LICENSE +0 -0
  94. {ngsolve-6.2.2406.dist-info → ngsolve-6.2.2406.post111.dev1.dist-info}/WHEEL +0 -0
  95. {ngsolve-6.2.2406.dist-info → ngsolve-6.2.2406.post111.dev1.dist-info}/top_level.txt +0 -0
@@ -12,7 +12,12 @@
12
12
  #include <finiteelement.hpp>
13
13
  #include <diffop.hpp>
14
14
  #include <symbolicintegrator.hpp> // for ProxyFunction
15
- #include <la.hpp>
15
+
16
+ #include <basevector.hpp>
17
+ #include <basematrix.hpp>
18
+
19
+ // #include <paralleldofs.hpp>
20
+
16
21
 
17
22
  #include "ngsobject.hpp"
18
23
 
@@ -283,14 +288,7 @@ ANY 1 1 1 1 | 15
283
288
  order_policy = op;
284
289
  }
285
290
 
286
- virtual void SetOrder (ELEMENT_TYPE et, TORDER order)
287
- {
288
- if (order_policy == CONSTANT_ORDER || order_policy == OLDSTYLE_ORDER)
289
- order_policy = NODE_TYPE_ORDER;
290
- et_bonus_order[et] = order - this->order;
291
-
292
- timestamp = 0; // rerun first_update
293
- }
291
+ virtual void SetOrder (ELEMENT_TYPE et, TORDER order);
294
292
 
295
293
  virtual void SetOrder (NodeId ni, int order);
296
294
  virtual int GetOrder (NodeId ni) const;
@@ -924,7 +922,7 @@ ANY 1 1 1 1 | 15
924
922
  class NGS_DLL_HEADER NonconformingFESpace : public FESpace
925
923
  {
926
924
  ///
927
- Array<int> ndlevel;
925
+ // Array<int> ndlevel;
928
926
 
929
927
  public:
930
928
  NonconformingFESpace (shared_ptr<MeshAccess> ama, const Flags & flags, bool parseflags=false);
@@ -938,7 +936,7 @@ ANY 1 1 1 1 | 15
938
936
 
939
937
  virtual FiniteElement & GetFE (ElementId ei, Allocator & lh) const override;
940
938
  ///
941
- virtual size_t GetNDof () const throw() override;
939
+ // virtual size_t GetNDof () const throw() override;
942
940
  ///
943
941
  virtual void GetDofNrs (ElementId ei, Array<DofId> & dnums) const override;
944
942
  };
@@ -949,7 +947,7 @@ ANY 1 1 1 1 | 15
949
947
  class NGS_DLL_HEADER NonconformingSurfaceFESpace : public FESpace
950
948
  {
951
949
  ///
952
- Array<int> ndlevel;
950
+ // Array<int> ndlevel;
953
951
 
954
952
  public:
955
953
  NonconformingSurfaceFESpace (shared_ptr<MeshAccess> ama, const Flags & flags, bool parseflags=false);
@@ -963,7 +961,7 @@ ANY 1 1 1 1 | 15
963
961
 
964
962
  virtual FiniteElement & GetFE (ElementId ei, Allocator & lh) const override;
965
963
  ///
966
- virtual size_t GetNDof () const throw() override;
964
+ // virtual size_t GetNDof () const throw() override;
967
965
  ///
968
966
  virtual void GetDofNrs (ElementId ei, Array<DofId> & dnums) const override;
969
967
  };
@@ -1433,7 +1431,7 @@ namespace ngcore
1433
1431
  template<>
1434
1432
  struct MPI_typetrait<ngcomp::COUPLING_TYPE>
1435
1433
  {
1436
- static NG_MPI_Datatype MPIType ()
1434
+ static auto MPIType ()
1437
1435
  {
1438
1436
  static_assert ( (sizeof(ngcomp::COUPLING_TYPE) == sizeof(char)) ||
1439
1437
  (sizeof(ngcomp::COUPLING_TYPE) == sizeof(int)) );
@@ -71,7 +71,7 @@ namespace ngfem
71
71
  /// the name of the element family
72
72
  virtual string ClassName() const;
73
73
 
74
- virtual void SetVertexNumbers (FlatArray<int> vnums);
74
+ virtual FiniteElement * SetVertexNumbers (FlatArray<int> vnums);
75
75
 
76
76
  virtual IntegrationRule GetIR (int order) const;
77
77
 
@@ -103,13 +103,12 @@ namespace ngfem
103
103
  {
104
104
  protected:
105
105
  /// pointers to the components
106
- // ArrayMem<const FiniteElement*,10> fea;
107
- FlatArray<const FiniteElement*> fea;
106
+ FlatArray<FiniteElement*> fea;
108
107
  bool all_the_same{true};
109
108
 
110
109
  public:
111
110
  /// initialize with pointers to components, copy pointers
112
- CompoundFiniteElement (FlatArray<const FiniteElement*> afea);
111
+ CompoundFiniteElement (FlatArray<FiniteElement*> afea);
113
112
 
114
113
  HD virtual ELEMENT_TYPE ElementType() const override { return fea[0]->ElementType(); }
115
114
  /// number of components
@@ -130,10 +129,11 @@ namespace ngfem
130
129
  /// the name of the element family
131
130
  virtual string ClassName() const override { return "CompoundFiniteElement"; }
132
131
 
133
- virtual void SetVertexNumbers (FlatArray<int> vnums) override
132
+ virtual CompoundFiniteElement * SetVertexNumbers (FlatArray<int> vnums) override
134
133
  {
135
134
  for (auto pfel : fea)
136
- const_cast<FiniteElement*>(pfel) -> SetVertexNumbers(vnums);
135
+ pfel -> SetVertexNumbers(vnums);
136
+ return this;
137
137
  }
138
138
 
139
139
  HD virtual bool ComplexShapes() const override;
@@ -174,7 +174,7 @@ namespace ngfem
174
174
  /// the name of the element family
175
175
  virtual string ClassName() const override { return "VectorFiniteElement"; }
176
176
 
177
- virtual void SetVertexNumbers (FlatArray<int> vnums) override;
177
+ virtual VectorFiniteElement * SetVertexNumbers (FlatArray<int> vnums) override;
178
178
 
179
179
  virtual void Print (ostream & ost) const override;
180
180
 
netgen/include/h1amg.hpp CHANGED
@@ -1,7 +1,9 @@
1
1
  #ifndef H1AMG_HPP_
2
2
  #define H1AMG_HPP_
3
3
 
4
- #include <la.hpp>
4
+ // #include <la.hpp>
5
+ #include <basematrix.hpp>
6
+ #include <sparsematrix.hpp>
5
7
 
6
8
  namespace ngcomp
7
9
  {
@@ -9,6 +9,8 @@
9
9
 
10
10
 
11
11
  #include "fespace.hpp"
12
+ #include <sparsematrix.hpp>
13
+
12
14
 
13
15
  namespace ngcomp
14
16
  {
@@ -9,6 +9,7 @@
9
9
 
10
10
  #include "fespace.hpp"
11
11
  #include "h1hofespace.hpp"
12
+ #include <sparsematrix.hpp>
12
13
 
13
14
  namespace ngcomp
14
15
  {
@@ -23,7 +24,7 @@ namespace ngcomp
23
24
  protected:
24
25
 
25
26
  typedef short TORDER;
26
-
27
+
27
28
  // Level
28
29
  int level;
29
30
  Array<DofId> first_edge_dof;
@@ -58,7 +59,7 @@ namespace ngcomp
58
59
  bool usegrad;
59
60
  bool var_order;
60
61
 
61
- int ndof;
62
+ // int ndof;
62
63
  int nedfine;
63
64
  int uniform_order_inner;
64
65
  int uniform_order_face;
@@ -95,7 +96,7 @@ namespace ngcomp
95
96
  ///
96
97
  virtual void DoArchive (Archive & archive) override;
97
98
  ///
98
- virtual size_t GetNDof () const throw() override;
99
+ // virtual size_t GetNDof () const throw() override;
99
100
  virtual void SetOrder (NodeId ni, int order) override;
100
101
  virtual int GetOrder (NodeId ni) const override;
101
102
  using FESpace::GetOrder;
@@ -19,7 +19,7 @@ namespace ngcomp
19
19
  class RaviartThomasFESpace : public FESpace
20
20
  {
21
21
  ///
22
- Array<int> ndlevel;
22
+ // Array<int> ndlevel;
23
23
  public:
24
24
  ///
25
25
  /*
@@ -42,9 +42,9 @@ namespace ngcomp
42
42
 
43
43
  virtual FiniteElement & GetFE (ElementId ei, Allocator & lh) const override;
44
44
  ///
45
- virtual size_t GetNDof () const throw() override;
45
+ // virtual size_t GetNDof () const throw() override;
46
46
  ///
47
- virtual size_t GetNDofLevel (int level) const override;
47
+ // virtual size_t GetNDofLevel (int level) const override;
48
48
 
49
49
  ///
50
50
  virtual void GetDofNrs (ElementId ei, Array<DofId> & dnums) const override;
@@ -15,7 +15,7 @@ namespace ngcomp
15
15
  {
16
16
  protected:
17
17
 
18
- int ndof;
18
+ // int ndof;
19
19
 
20
20
  Array<DofId> first_facet_dof;
21
21
  Array<DofId> first_inner_dof;
@@ -28,7 +28,7 @@ namespace ngcomp
28
28
  Array<bool> fine_facet;
29
29
  Array<bool> boundary_facet;
30
30
 
31
- Array<int> ndlevel;
31
+ // Array<int> ndlevel;
32
32
  int uniform_order_inner;
33
33
  int uniform_order_facet;
34
34
 
@@ -64,7 +64,7 @@ namespace ngcomp
64
64
  virtual void UpdateDofTables() override;
65
65
  virtual void UpdateCouplingDofArray() override;
66
66
 
67
- virtual size_t GetNDof () const throw() override;
67
+ // virtual size_t GetNDof () const throw() override;
68
68
 
69
69
  virtual FiniteElement & GetFE (ElementId ei, Allocator & alloc) const override;
70
70
 
@@ -436,7 +436,7 @@ namespace ngfem
436
436
  INLINE SCAL operator() (int i) const { return point(i); }
437
437
 
438
438
  ///
439
- INLINE const Vec<R,SCAL> GetNV () const { return normalvec; }
439
+ INLINE const Vec<R,SCAL> & GetNV () const { return normalvec; }
440
440
  ///
441
441
  INLINE void SetNV ( Vec<R,SCAL> vec) { normalvec = vec; }
442
442
  ///
@@ -1481,6 +1481,7 @@ namespace ngfem
1481
1481
  int DimSpace() const;
1482
1482
 
1483
1483
  virtual SliceMatrix<> GetPoints() const = 0;
1484
+ virtual SliceMatrix<> GetNormals() const = 0;
1484
1485
  virtual SliceMatrix<Complex> GetPointsComplex() const
1485
1486
  { throw Exception("don't have complex ir"); }
1486
1487
  virtual void ComputeNormalsAndMeasure (ELEMENT_TYPE et) { throw Exception ("ComputeNormalsAndMeasure(ET) not overloaded"); }
@@ -1551,6 +1552,13 @@ namespace ngfem
1551
1552
  const_cast<double*> (&mips[0].GetPoint()(0)));
1552
1553
  }
1553
1554
 
1555
+ virtual SliceMatrix<> GetNormals() const
1556
+ {
1557
+ return SliceMatrix<> (mips.Size(), DIM_SPACE*sizeof(SCAL)/sizeof(double),
1558
+ sizeof(MappedIntegrationPoint<DIM_ELEMENT, DIM_SPACE, SCAL>) / sizeof(double),
1559
+ const_cast<double*> (&mips[0].GetNV()(0)));
1560
+ }
1561
+
1554
1562
  virtual void ComputeNormalsAndMeasure (ELEMENT_TYPE et);
1555
1563
  virtual void ComputeNormalsAndMeasure (ELEMENT_TYPE et, int facetnr);
1556
1564
  virtual bool IsComplex() const { return false; }
@@ -1616,6 +1624,12 @@ namespace ngfem
1616
1624
  const_cast<Complex*> (&mips[0].GetPointComplex()(0)));
1617
1625
  }
1618
1626
 
1627
+ virtual SliceMatrix<> GetNormals() const
1628
+ {
1629
+ throw Exception("never tested");
1630
+ }
1631
+
1632
+
1619
1633
  virtual void ComputeNormalsAndMeasure (ELEMENT_TYPE et, int facetnr);
1620
1634
  virtual bool IsComplex() const { return true; }
1621
1635
  };
netgen/include/jacobi.hpp CHANGED
@@ -7,6 +7,9 @@
7
7
  /* Date: 06. Oct. 96 */
8
8
  /* *************************************************************************/
9
9
 
10
+
11
+ #include "sparsematrix.hpp"
12
+
10
13
  namespace ngla
11
14
  {
12
15
 
netgen/include/la.hpp CHANGED
@@ -2,15 +2,6 @@
2
2
  #define FILE_NGLA
3
3
 
4
4
  #include <bla.hpp>
5
- #include <core/mpi_wrapper.hpp>
6
-
7
- /*
8
- namespace ngcomp
9
- {
10
- class Preconditioner;
11
- class LocalPreconditioner;
12
- }
13
- */
14
5
 
15
6
  /** namespace for linear algebra.
16
7
  */
@@ -33,13 +24,10 @@ namespace ngla
33
24
  #include "order.hpp"
34
25
  #include "sparsecholesky.hpp"
35
26
  #include "pardisoinverse.hpp"
36
- // include these only from c++-files
37
- // #include "umfpackinverse.hpp"
38
- // #include "superluinverse.hpp"
39
- // #include "mumpsinverse.hpp"
40
27
  #include "jacobi.hpp"
41
28
  #include "blockjacobi.hpp"
42
29
  #include "commutingAMG.hpp"
30
+ #include "diagonalmatrix.hpp"
43
31
  #include "special_matrix.hpp"
44
32
  #include "elementbyelement.hpp"
45
33
  #include "cg.hpp"
netgen/include/matrix.hpp CHANGED
@@ -243,11 +243,21 @@ namespace ngbla
243
243
  return FlatMatrix (next-first, w, data+first*w);
244
244
  }
245
245
 
246
+ INLINE FlatMatrix Rows (size_t next) const
247
+ {
248
+ return FlatMatrix (next, w, data);
249
+ }
250
+
246
251
  INLINE SliceMatrix<T> Cols (size_t first, size_t next) const
247
252
  {
248
253
  return SliceMatrix<T> (h, next-first, w, data+first);
249
254
  }
250
255
 
256
+ INLINE SliceMatrix<T> Cols (size_t next) const
257
+ {
258
+ return SliceMatrix<T> (h, next, w, data);
259
+ }
260
+
251
261
  INLINE FlatMatrix Rows (IntRange range) const
252
262
  {
253
263
  return FlatMatrix (range.Next()-range.First(), w, data+range.First()*w);
@@ -1356,6 +1366,12 @@ namespace ngbla
1356
1366
  return MatrixView<T,ORD,TH,size_t,TDIST> (h, next-first, Dist(), Addr(0,first));
1357
1367
  }
1358
1368
 
1369
+ INLINE auto Cols (size_t next) const
1370
+ {
1371
+ return Cols(0, next);
1372
+ }
1373
+
1374
+
1359
1375
  INLINE auto Rows (size_t first, size_t next) const
1360
1376
  {
1361
1377
  if constexpr (ORD==RowMajor)
@@ -1369,6 +1385,11 @@ namespace ngbla
1369
1385
  return Rows (range.First(), range.Next());
1370
1386
  }
1371
1387
 
1388
+ INLINE auto Rows (size_t next) const
1389
+ {
1390
+ return Rows (0, next);
1391
+ }
1392
+
1372
1393
  template <int R>
1373
1394
  INLINE auto Rows() const
1374
1395
  {
@@ -9,8 +9,6 @@
9
9
 
10
10
 
11
11
  #include <nginterface_v2.hpp>
12
- #include <core/ranges.hpp>
13
-
14
12
  #include <elementtopology.hpp>
15
13
 
16
14
  namespace ngfem
@@ -26,7 +24,6 @@ namespace ngcomp
26
24
  {
27
25
  class PML_Transformation;
28
26
 
29
- // using ngcore::INT;
30
27
  using netgen::Ng_Node;
31
28
  using ngfem::ELEMENT_TYPE;
32
29
 
@@ -158,30 +155,6 @@ namespace ngcomp
158
155
  INLINE auto end () const { return DimElementIterator<VB,DIM>(ma, r.Next()); }
159
156
  };
160
157
 
161
- /*
162
- class NodeIterator
163
- {
164
- NodeId ni;
165
- public:
166
- NodeIterator (NodeId ani) : ni(ani) { ; }
167
- NodeIterator operator++ () { return NodeIterator(++ni); }
168
- INLINE NodeId operator*() const { return ni; }
169
- bool operator!=(NodeIterator id2) const { return ni != id2.ni; }
170
- bool operator==(NodeIterator id2) const { return ni == id2.ni; }
171
- };
172
-
173
- class NodeRange : public IntRange
174
- {
175
- NODE_TYPE nt;
176
- public:
177
- NodeRange (NODE_TYPE ant, IntRange ar)
178
- : IntRange(ar), nt(ant) { ; }
179
- NodeIterator begin () const { return NodeIterator(NodeId(nt,IntRange::First())); }
180
- NodeIterator end () const { return NodeIterator(NodeId(nt,IntRange::Next())); }
181
- NodeId operator[] (size_t nr) { return NodeId(nt, IntRange::First()+nr); }
182
- };
183
- */
184
-
185
158
  /**
186
159
  Access to mesh topology and geometry.
187
160
 
@@ -240,9 +213,12 @@ namespace ngcomp
240
213
 
241
214
  /// store periodic vertex mapping for each identification number
242
215
  // shared ptr because Meshaccess is copy constructible
216
+ /*
243
217
  shared_ptr<Array<Array<IVec<2>>>> periodic_node_pairs[3] = {make_shared<Array<Array<IVec<2>>>>(),
244
218
  make_shared<Array<Array<IVec<2>>>>(),
245
219
  make_shared<Array<Array<IVec<2>>>>()};
220
+ */
221
+ Array<Array<IVec<2>>> periodic_node_pairs[3];
246
222
 
247
223
  DynamicTable<size_t> neighbours[4][4];
248
224
  friend class Region;
@@ -662,7 +638,7 @@ namespace ngcomp
662
638
 
663
639
  void SetDeformation (shared_ptr<GridFunction> def = nullptr);
664
640
 
665
- const shared_ptr<GridFunction> & GetDeformation () const
641
+ shared_ptr<GridFunction> GetDeformation () const
666
642
  {
667
643
  return deformation;
668
644
  }
@@ -817,15 +793,6 @@ namespace ngcomp
817
793
  void GetFaceEdges (int fnr, Array<int> & edges) const;
818
794
  INLINE auto GetFaceEdges (size_t fnr) const
819
795
  { return ArrayObject(mesh.GetFaceEdges(fnr)); }
820
- /*
821
- {
822
- ArrayMem<int,4> f2ed;
823
- GetFaceEdges (fnr, f2ed);
824
- f2ed.NothingToDelete(); // dynamic allocation never needed
825
- return f2ed;
826
- }
827
- */
828
-
829
796
  void GetEdgeFaces (int enr, Array<int> & faces) const;
830
797
  /// returns elements connected to a face
831
798
  void GetFaceElements (int fnr, Array<int> & elnums) const;
@@ -911,7 +878,6 @@ namespace ngcomp
911
878
  }
912
879
 
913
880
 
914
- // void GetVertexElements (int vnr, Array<int> & elnrs) const;
915
881
  /// element order stored in Netgen
916
882
  int GetElOrder (int enr) const
917
883
  { return mesh.GetElementOrder (enr+1); }
@@ -1053,11 +1019,11 @@ namespace ngcomp
1053
1019
  }
1054
1020
  }
1055
1021
 
1056
-
1022
+ /*
1057
1023
  // (old style optimization)
1058
1024
  [[deprecated("functionality not useful anymore, just remove function call!")]]
1059
1025
  void SetPointSearchStartElement(const int el) const;
1060
-
1026
+ */
1061
1027
 
1062
1028
 
1063
1029
  ElementId FindElementOfPoint (FlatVector<double> point,
@@ -1083,6 +1049,7 @@ namespace ngcomp
1083
1049
  { return GetElement(ElementId(VOL,elnr)).is_curved; }
1084
1050
  // { return bool (Ng_IsElementCurved (elnr+1)); }
1085
1051
 
1052
+ /*
1086
1053
  [[deprecated("Use GetPeriodicNodes(NT_VERTEX, pairs) instead!")]]
1087
1054
  void GetPeriodicVertices ( Array<IVec<2> > & pairs) const;
1088
1055
  [[deprecated("Use GetNPeriodicNodes(NT_VERTEX) instead!")]]
@@ -1100,10 +1067,11 @@ namespace ngcomp
1100
1067
  void GetPeriodicEdges (int idnr, Array<IVec<2> > & pairs) const;
1101
1068
  [[deprecated("Use GetPeriodicNodes(NT_EDGE, idnr).Size() instead")]]
1102
1069
  int GetNPairsPeriodicEdges (int idnr) const;
1103
-
1070
+ */
1071
+
1104
1072
  int GetNPeriodicIdentifications() const
1105
1073
  {
1106
- return periodic_node_pairs[NT_VERTEX]->Size();
1074
+ return periodic_node_pairs[NT_VERTEX].Size();
1107
1075
  }
1108
1076
  // get number of all periodic nodes of nodetype nt
1109
1077
  size_t GetNPeriodicNodes(NODE_TYPE nt) const;
@@ -1147,9 +1115,10 @@ namespace ngcomp
1147
1115
 
1148
1116
  // void PrecomputeGeometryData(int intorder);
1149
1117
 
1118
+ /*
1150
1119
  void InitPointCurve(double red = 1, double green = 0, double blue = 0) const;
1151
1120
  void AddPointCurvePoint(const Vec<3> & point) const;
1152
-
1121
+ */
1153
1122
 
1154
1123
 
1155
1124
  template <int DIMS, int DIMR> friend class Ng_ElementTransformation;
@@ -1169,10 +1138,11 @@ namespace ngcomp
1169
1138
  Returns the global number of the node.
1170
1139
  Currently, this function works only for vertex-nodes.
1171
1140
  */
1172
-
1141
+ /*
1173
1142
  [[deprecated("should not need global numbers")]]
1174
1143
  size_t GetGlobalNodeNum (NodeId node) const;
1175
-
1144
+ */
1145
+
1176
1146
  size_t GetGlobalVertexNum (int locnum) const;
1177
1147
 
1178
1148
  FlatArray<int> GetDistantProcs (NodeId node) const
@@ -1357,21 +1327,21 @@ namespace ngcomp
1357
1327
  for (auto p : GetDistantProcs(Node(nt, i)))
1358
1328
  dist_data[p][cnt[p]++] = data[i];
1359
1329
 
1360
- Array<NG_MPI_Request> requests;
1330
+ NgMPI_Requests requests;
1361
1331
  for (auto i : cnt.Range())
1362
1332
  if (cnt[i])
1363
1333
  {
1364
- requests.Append (comm.ISend(dist_data[i], i, NG_MPI_TAG_SOLVE));
1365
- requests.Append (comm.IRecv(recv_data[i], i, NG_MPI_TAG_SOLVE));
1334
+ requests += comm.ISend(dist_data[i], i, NG_MPI_TAG_SOLVE);
1335
+ requests += comm.IRecv(recv_data[i], i, NG_MPI_TAG_SOLVE);
1366
1336
  }
1367
- MyMPI_WaitAll (requests);
1337
+ requests.WaitAll();
1368
1338
 
1369
1339
  cnt = 0;
1370
- NG_MPI_Datatype type = GetMPIType<T>();
1340
+ auto type = GetMPIType<T>();
1371
1341
  for (auto i : Range(GetNNodes(nt)))
1372
1342
  for (auto p : GetDistantProcs(Node(nt, i)))
1373
1343
  NG_MPI_Reduce_local (&recv_data[p][cnt[p]++],
1374
- &data[i], 1, type, op);
1344
+ &data[i], 1, type, op);
1375
1345
  }
1376
1346
 
1377
1347
 
netgen/include/mgpre.hpp CHANGED
@@ -9,7 +9,7 @@
9
9
  /*********************************************************************/
10
10
 
11
11
  #include <bilinearform.hpp>
12
- #include <la.hpp>
12
+ // #include <la.hpp>
13
13
 
14
14
  namespace ngmg
15
15
  {
@@ -813,7 +813,6 @@ c
813
813
  scale = newscale;
814
814
  }
815
815
 
816
-
817
816
  template <typename TARGET>
818
817
  void Transform (MultiPole<TARGET> & target, Vec<3> dist) const
819
818
  {
@@ -2095,12 +2094,12 @@ c
2095
2094
  template <typename TARGET>
2096
2095
  void ShiftZ (double z, MultiPole<TARGET> & target) { mp.ShiftZ(z, target); }
2097
2096
 
2097
+ using CoefficientFunction::Transform;
2098
2098
  template <typename TARGET>
2099
2099
  void Transform (MultiPoleCF<TARGET> & target)
2100
2100
  {
2101
2101
  mp.Transform (target.MP(), target.Center()-center);
2102
2102
  }
2103
-
2104
2103
  };
2105
2104
 
2106
2105
 
@@ -7,6 +7,8 @@
7
7
  /* Date: June 2020 */
8
8
  /*********************************************************************/
9
9
 
10
+ #include "basevector.hpp"
11
+
10
12
  namespace ngla {
11
13
 
12
14
  /* TODO:
@@ -2,7 +2,7 @@
2
2
  #define FILE_NGSOBJECT
3
3
 
4
4
  /*********************************************************************/
5
- /* File: ngsobject.hh */
5
+ /* File: ngsobject.hpp */
6
6
  /* Author: Joachim Schoeberl */
7
7
  /* Date: 2. Aug. 2000 */
8
8
  /*********************************************************************/
@@ -29,8 +29,11 @@ namespace ngfem
29
29
  using ET_trait<ET>::PolDimension;
30
30
  using ET_trait<ET>::PolBubbleDimension;
31
31
 
32
+
32
33
  public:
33
34
  using VertexOrientedFE<ET>::SetVertexNumbers;
35
+ NodalHOFE * SetVertexNumbers (FlatArray<int> vnums) override
36
+ { VertexOrientedFE<ELEMENT_TYPE(ET)>::SetVertexNumbers(vnums); return this; } // cast for msvc ?
34
37
  using ET_trait<ET>::ElementType;
35
38
 
36
39
  /// builds a functional element of order aorder.
@@ -25,8 +25,8 @@ namespace ngcomp
25
25
  Array<IVec<2> > order_facet;
26
26
  Array<bool> fine_facet;
27
27
 
28
- int ndof;
29
- Array<int> ndlevel;
28
+ // int ndof;
29
+ // Array<int> ndlevel;
30
30
  bool var_order;
31
31
  bool print;
32
32
 
@@ -51,9 +51,8 @@ namespace ngcomp
51
51
  virtual void SetOrder (NodeId ni, int order) override;
52
52
  virtual int GetOrder (NodeId ni) const override;
53
53
 
54
- virtual size_t GetNDof() const throw() override { return ndof; }
55
-
56
- virtual size_t GetNDofLevel ( int i ) const override { return ndlevel[i]; }
54
+ // virtual size_t GetNDof() const throw() override { return ndof; }
55
+ // virtual size_t GetNDofLevel ( int i ) const override { return ndlevel[i]; }
57
56
 
58
57
  virtual FlatArray<VorB> GetDualShapeNodes (VorB vb) const override;
59
58
 
netgen/include/order.hpp CHANGED
@@ -2,7 +2,7 @@
2
2
  #define FILE_ORDER
3
3
 
4
4
  /* *************************************************************************/
5
- /* File: order.hh */
5
+ /* File: order.hpp */
6
6
  /* Author: Joachim Schoeberl */
7
7
  /* Date: 18. Jun. 97 */
8
8
  /* *************************************************************************/
@@ -10,6 +10,8 @@
10
10
 
11
11
  namespace ngla
12
12
  {
13
+ using namespace ngcore;
14
+ using namespace ngstd;
13
15
 
14
16
  /*
15
17
  reordering for sparse cholesky factoriztion
@@ -7,6 +7,11 @@
7
7
  /* Date: 2007,2011 */
8
8
  /* ************************************************************************/
9
9
 
10
+
11
+ #include <basematrix.hpp>
12
+ #include <sparsematrix.hpp>
13
+ #include <paralleldofs.hpp>
14
+
10
15
  namespace ngla
11
16
  {
12
17