ngsolve 6.2.2404.post109.dev0__cp39-cp39-win_amd64.whl → 6.2.2406.post112.dev1__cp39-cp39-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 (137) hide show
  1. netgen/include/arnoldi.hpp +3 -0
  2. netgen/include/basematrix.hpp +30 -19
  3. netgen/include/basevector.hpp +43 -71
  4. netgen/include/bdbequations.hpp +14 -3
  5. netgen/include/bilinearform.hpp +8 -59
  6. netgen/include/blockjacobi.hpp +4 -0
  7. netgen/include/cg.hpp +3 -0
  8. netgen/include/chebyshev.hpp +3 -0
  9. netgen/include/coefficient.hpp +6 -2
  10. netgen/include/comp.hpp +0 -4
  11. netgen/include/diagonalmatrix.hpp +154 -0
  12. netgen/include/dump.hpp +5 -5
  13. netgen/include/eigen.hpp +3 -0
  14. netgen/include/elementbyelement.hpp +6 -0
  15. netgen/include/elementtopology.hpp +0 -3
  16. netgen/include/expr.hpp +13 -8
  17. netgen/include/fespace.hpp +12 -14
  18. netgen/include/finiteelement.hpp +7 -7
  19. netgen/include/globalspace.hpp +28 -2
  20. netgen/include/gridfunction.hpp +4 -0
  21. netgen/include/h1amg.hpp +3 -1
  22. netgen/include/h1hofe.hpp +1 -1
  23. netgen/include/hcurlhdivfes.hpp +2 -0
  24. netgen/include/hcurlhofespace.hpp +4 -3
  25. netgen/include/hdivfes.hpp +3 -3
  26. netgen/include/hdivhosurfacefespace.hpp +3 -3
  27. netgen/include/integratorcf.hpp +14 -9
  28. netgen/include/intrule.hpp +15 -1
  29. netgen/include/jacobi.hpp +3 -0
  30. netgen/include/la.hpp +1 -13
  31. netgen/include/matrix.hpp +21 -0
  32. netgen/include/meshaccess.hpp +30 -51
  33. netgen/include/mgpre.hpp +1 -1
  34. netgen/include/mptools.hpp +2145 -0
  35. netgen/include/multivector.hpp +2 -0
  36. netgen/include/ngsobject.hpp +1 -1
  37. netgen/include/nodalhofe.hpp +3 -0
  38. netgen/include/normalfacetfespace.hpp +4 -5
  39. netgen/include/normalfacetsurfacefespace.hpp +1 -1
  40. netgen/include/order.hpp +3 -1
  41. netgen/include/parallel_matrices.hpp +5 -0
  42. netgen/include/paralleldofs.hpp +44 -95
  43. netgen/include/parallelngs.hpp +2 -1
  44. netgen/include/parallelvector.hpp +12 -16
  45. netgen/include/pardisoinverse.hpp +1 -0
  46. netgen/include/periodic.hpp +1 -0
  47. netgen/include/pmltrafo.hpp +5 -2
  48. netgen/include/preconditioner.hpp +3 -1
  49. netgen/include/scalarfe.hpp +4 -1
  50. netgen/include/shapefunction_utils.hpp +40 -1
  51. netgen/include/sparsecholesky.hpp +4 -0
  52. netgen/include/sparsematrix.hpp +25 -43
  53. netgen/include/sparsematrix_dyn.hpp +2 -0
  54. netgen/include/sparsematrix_impl.hpp +66 -1
  55. netgen/include/special_matrix.hpp +7 -134
  56. netgen/include/statushandler.hpp +7 -0
  57. netgen/include/symbolicintegrator.hpp +2 -1
  58. netgen/include/tensorcoefficient.hpp +56 -54
  59. netgen/include/tpdiffop.hpp +1 -0
  60. netgen/include/tpintrule.hpp +2 -0
  61. netgen/include/umfpackinverse.hpp +58 -30
  62. netgen/include/vector.hpp +8 -2
  63. netgen/include/voxelcoefficientfunction.hpp +2 -0
  64. netgen/include/vvector.hpp +10 -1
  65. netgen/lib/libngsolve.lib +0 -0
  66. netgen/libngsolve.dll +0 -0
  67. ngsolve/_scikit_build_core_dependencies.py +8 -1
  68. ngsolve/cmake/NGSolveConfig.cmake +5 -5
  69. ngsolve/config/config.py +6 -6
  70. ngsolve/config.py +6 -6
  71. ngsolve/demos/TensorProduct/__init__.py +0 -0
  72. ngsolve/demos/TensorProduct/tp_dg_1d_1d.py +80 -0
  73. ngsolve/demos/TensorProduct/tp_dg_1d_2d.py +73 -0
  74. ngsolve/demos/TensorProduct/tp_dg_2d_1d.py +72 -0
  75. ngsolve/demos/TensorProduct/tp_dg_2d_2d.py +66 -0
  76. ngsolve/demos/__init__.py +0 -0
  77. ngsolve/demos/howto/__init__.py +0 -0
  78. ngsolve/demos/howto/hhj.py +44 -0
  79. ngsolve/demos/howto/hybrid_dg.py +53 -0
  80. ngsolve/demos/howto/mixed.py +30 -0
  81. ngsolve/demos/howto/nonlin.py +29 -0
  82. ngsolve/demos/howto/pickling.py +26 -0
  83. ngsolve/demos/howto/pml.py +31 -0
  84. ngsolve/demos/howto/taskmanager.py +20 -0
  85. ngsolve/demos/howto/tdnns.py +47 -0
  86. ngsolve/demos/howto/timeDG-skeleton.py +45 -0
  87. ngsolve/demos/howto/timeDG.py +38 -0
  88. ngsolve/demos/howto/timeDGlap.py +42 -0
  89. ngsolve/demos/howto/timeDGwave.py +61 -0
  90. ngsolve/demos/intro/__init__.py +0 -0
  91. ngsolve/demos/intro/adaptive.py +123 -0
  92. ngsolve/demos/intro/cmagnet.py +62 -0
  93. ngsolve/demos/intro/elasticity.py +76 -0
  94. ngsolve/demos/intro/navierstokes.py +74 -0
  95. ngsolve/demos/intro/poisson.ipynb +170 -0
  96. ngsolve/demos/intro/poisson.py +41 -0
  97. ngsolve/demos/mpi/__init__.py +0 -0
  98. ngsolve/demos/mpi/mpi_cmagnet.py +87 -0
  99. ngsolve/demos/mpi/mpi_navierstokes.py +117 -0
  100. ngsolve/demos/mpi/mpi_poisson.py +89 -0
  101. ngsolve/demos/mpi/mpi_timeDG.py +82 -0
  102. ngsolve/internal.py +5 -0
  103. ngsolve/ngslib.pyd +0 -0
  104. {ngsolve-6.2.2404.post109.dev0.dist-info → ngsolve-6.2.2406.post112.dev1.dist-info}/METADATA +2 -2
  105. {ngsolve-6.2.2404.post109.dev0.dist-info → ngsolve-6.2.2406.post112.dev1.dist-info}/RECORD +137 -104
  106. {ngsolve-6.2.2404.post109.dev0.dist-info → ngsolve-6.2.2406.post112.dev1.dist-info}/WHEEL +1 -1
  107. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/Scripts/ngsolve.tcl +0 -0
  108. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/beam.geo +0 -0
  109. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/beam.vol +0 -0
  110. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/chip.in2d +0 -0
  111. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/chip.vol +0 -0
  112. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/coil.geo +0 -0
  113. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/coil.vol +0 -0
  114. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/coilshield.geo +0 -0
  115. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/coilshield.vol +0 -0
  116. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/cube.geo +0 -0
  117. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/cube.vol +0 -0
  118. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/d10_DGdoubleglazing.pde +0 -0
  119. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/d11_chip_nitsche.pde +0 -0
  120. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/d1_square.pde +0 -0
  121. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/d2_chip.pde +0 -0
  122. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/d3_helmholtz.pde +0 -0
  123. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/d4_cube.pde +0 -0
  124. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/d5_beam.pde +0 -0
  125. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/d6_shaft.pde +0 -0
  126. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/d7_coil.pde +0 -0
  127. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/d8_coilshield.pde +0 -0
  128. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/d9_hybridDG.pde +0 -0
  129. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/doubleglazing.in2d +0 -0
  130. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/doubleglazing.vol +0 -0
  131. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
  132. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/shaft.geo +0 -0
  133. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/shaft.vol +0 -0
  134. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/square.in2d +0 -0
  135. {ngsolve-6.2.2404.post109.dev0.data → ngsolve-6.2.2406.post112.dev1.data}/data/share/ngsolve/square.vol +0 -0
  136. {ngsolve-6.2.2404.post109.dev0.dist-info → ngsolve-6.2.2406.post112.dev1.dist-info}/LICENSE +0 -0
  137. {ngsolve-6.2.2404.post109.dev0.dist-info → ngsolve-6.2.2406.post112.dev1.dist-info}/top_level.txt +0 -0
@@ -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,14 +213,18 @@ 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;
249
225
  public:
250
226
  SimpleSignal updateSignal;
227
+ static std::true_type shallow_archive;
251
228
 
252
229
  /// for achiving ...
253
230
  MeshAccess ();
@@ -661,7 +638,7 @@ namespace ngcomp
661
638
 
662
639
  void SetDeformation (shared_ptr<GridFunction> def = nullptr);
663
640
 
664
- const shared_ptr<GridFunction> & GetDeformation () const
641
+ shared_ptr<GridFunction> GetDeformation () const
665
642
  {
666
643
  return deformation;
667
644
  }
@@ -816,15 +793,6 @@ namespace ngcomp
816
793
  void GetFaceEdges (int fnr, Array<int> & edges) const;
817
794
  INLINE auto GetFaceEdges (size_t fnr) const
818
795
  { return ArrayObject(mesh.GetFaceEdges(fnr)); }
819
- /*
820
- {
821
- ArrayMem<int,4> f2ed;
822
- GetFaceEdges (fnr, f2ed);
823
- f2ed.NothingToDelete(); // dynamic allocation never needed
824
- return f2ed;
825
- }
826
- */
827
-
828
796
  void GetEdgeFaces (int enr, Array<int> & faces) const;
829
797
  /// returns elements connected to a face
830
798
  void GetFaceElements (int fnr, Array<int> & elnums) const;
@@ -910,7 +878,6 @@ namespace ngcomp
910
878
  }
911
879
 
912
880
 
913
- // void GetVertexElements (int vnr, Array<int> & elnrs) const;
914
881
  /// element order stored in Netgen
915
882
  int GetElOrder (int enr) const
916
883
  { return mesh.GetElementOrder (enr+1); }
@@ -1052,11 +1019,11 @@ namespace ngcomp
1052
1019
  }
1053
1020
  }
1054
1021
 
1055
-
1022
+ /*
1056
1023
  // (old style optimization)
1057
1024
  [[deprecated("functionality not useful anymore, just remove function call!")]]
1058
1025
  void SetPointSearchStartElement(const int el) const;
1059
-
1026
+ */
1060
1027
 
1061
1028
 
1062
1029
  ElementId FindElementOfPoint (FlatVector<double> point,
@@ -1082,6 +1049,7 @@ namespace ngcomp
1082
1049
  { return GetElement(ElementId(VOL,elnr)).is_curved; }
1083
1050
  // { return bool (Ng_IsElementCurved (elnr+1)); }
1084
1051
 
1052
+ /*
1085
1053
  [[deprecated("Use GetPeriodicNodes(NT_VERTEX, pairs) instead!")]]
1086
1054
  void GetPeriodicVertices ( Array<IVec<2> > & pairs) const;
1087
1055
  [[deprecated("Use GetNPeriodicNodes(NT_VERTEX) instead!")]]
@@ -1099,10 +1067,11 @@ namespace ngcomp
1099
1067
  void GetPeriodicEdges (int idnr, Array<IVec<2> > & pairs) const;
1100
1068
  [[deprecated("Use GetPeriodicNodes(NT_EDGE, idnr).Size() instead")]]
1101
1069
  int GetNPairsPeriodicEdges (int idnr) const;
1102
-
1070
+ */
1071
+
1103
1072
  int GetNPeriodicIdentifications() const
1104
1073
  {
1105
- return periodic_node_pairs[NT_VERTEX]->Size();
1074
+ return periodic_node_pairs[NT_VERTEX].Size();
1106
1075
  }
1107
1076
  // get number of all periodic nodes of nodetype nt
1108
1077
  size_t GetNPeriodicNodes(NODE_TYPE nt) const;
@@ -1146,9 +1115,10 @@ namespace ngcomp
1146
1115
 
1147
1116
  // void PrecomputeGeometryData(int intorder);
1148
1117
 
1118
+ /*
1149
1119
  void InitPointCurve(double red = 1, double green = 0, double blue = 0) const;
1150
1120
  void AddPointCurvePoint(const Vec<3> & point) const;
1151
-
1121
+ */
1152
1122
 
1153
1123
 
1154
1124
  template <int DIMS, int DIMR> friend class Ng_ElementTransformation;
@@ -1168,10 +1138,11 @@ namespace ngcomp
1168
1138
  Returns the global number of the node.
1169
1139
  Currently, this function works only for vertex-nodes.
1170
1140
  */
1171
-
1141
+ /*
1172
1142
  [[deprecated("should not need global numbers")]]
1173
1143
  size_t GetGlobalNodeNum (NodeId node) const;
1174
-
1144
+ */
1145
+
1175
1146
  size_t GetGlobalVertexNum (int locnum) const;
1176
1147
 
1177
1148
  FlatArray<int> GetDistantProcs (NodeId node) const
@@ -1228,6 +1199,8 @@ namespace ngcomp
1228
1199
  operator const BitArray & () const { return *mask; }
1229
1200
  shared_ptr<BitArray> MaskPtr() { return mask; }
1230
1201
  const shared_ptr<MeshAccess> & Mesh() const { return mesh; }
1202
+ void DoArchive(Archive& ar)
1203
+ { ar & mesh & vb & mask; }
1231
1204
  Region operator+ (const Region & r2) const
1232
1205
  {
1233
1206
  return Region (mesh, vb, BitArray(*mask).Or(r2.Mask()));
@@ -1281,6 +1254,12 @@ namespace ngcomp
1281
1254
  MakeTrafoCF(shared_ptr<CoefficientFunction> func,
1282
1255
  shared_ptr<CoefficientFunction> trafo,
1283
1256
  Region region);
1257
+
1258
+
1259
+ NGS_DLL_HEADER
1260
+ shared_ptr<CoefficientFunction> NumElsOnFacetCF ();
1261
+
1262
+
1284
1263
 
1285
1264
  /**
1286
1265
  Controls the progress - output.
@@ -1348,21 +1327,21 @@ namespace ngcomp
1348
1327
  for (auto p : GetDistantProcs(Node(nt, i)))
1349
1328
  dist_data[p][cnt[p]++] = data[i];
1350
1329
 
1351
- Array<NG_MPI_Request> requests;
1330
+ NgMPI_Requests requests;
1352
1331
  for (auto i : cnt.Range())
1353
1332
  if (cnt[i])
1354
1333
  {
1355
- requests.Append (comm.ISend(dist_data[i], i, NG_MPI_TAG_SOLVE));
1356
- 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);
1357
1336
  }
1358
- MyMPI_WaitAll (requests);
1337
+ requests.WaitAll();
1359
1338
 
1360
1339
  cnt = 0;
1361
- NG_MPI_Datatype type = GetMPIType<T>();
1340
+ auto type = GetMPIType<T>();
1362
1341
  for (auto i : Range(GetNNodes(nt)))
1363
1342
  for (auto p : GetDistantProcs(Node(nt, i)))
1364
1343
  NG_MPI_Reduce_local (&recv_data[p][cnt[p]++],
1365
- &data[i], 1, type, op);
1344
+ &data[i], 1, type, op);
1366
1345
  }
1367
1346
 
1368
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
  {