ngsolve 6.2.2406.post36.dev1__cp312-cp312-win_amd64.whl → 6.2.2406.post111.dev1__cp312-cp312-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.
- netgen/include/arnoldi.hpp +3 -0
- netgen/include/basematrix.hpp +9 -18
- netgen/include/basevector.hpp +43 -71
- netgen/include/bilinearform.hpp +8 -59
- netgen/include/blockjacobi.hpp +3 -0
- netgen/include/cg.hpp +3 -0
- netgen/include/chebyshev.hpp +3 -0
- netgen/include/comp.hpp +0 -4
- netgen/include/diagonalmatrix.hpp +154 -0
- netgen/include/eigen.hpp +3 -0
- netgen/include/elementbyelement.hpp +4 -0
- netgen/include/elementtopology.hpp +0 -3
- netgen/include/fespace.hpp +11 -13
- netgen/include/h1amg.hpp +3 -1
- netgen/include/hcurlhdivfes.hpp +2 -0
- netgen/include/hcurlhofespace.hpp +4 -3
- netgen/include/hdivfes.hpp +3 -3
- netgen/include/hdivhosurfacefespace.hpp +3 -3
- netgen/include/intrule.hpp +15 -1
- netgen/include/jacobi.hpp +3 -0
- netgen/include/la.hpp +1 -13
- netgen/include/matrix.hpp +21 -0
- netgen/include/meshaccess.hpp +15 -45
- netgen/include/mgpre.hpp +1 -1
- netgen/include/multivector.hpp +2 -0
- netgen/include/ngsobject.hpp +1 -1
- netgen/include/normalfacetfespace.hpp +4 -5
- netgen/include/order.hpp +3 -1
- netgen/include/parallel_matrices.hpp +5 -0
- netgen/include/paralleldofs.hpp +13 -51
- netgen/include/parallelngs.hpp +2 -1
- netgen/include/parallelvector.hpp +5 -2
- netgen/include/pardisoinverse.hpp +1 -0
- netgen/include/periodic.hpp +1 -0
- netgen/include/preconditioner.hpp +3 -1
- netgen/include/sparsecholesky.hpp +4 -0
- netgen/include/sparsematrix.hpp +8 -41
- netgen/include/sparsematrix_dyn.hpp +2 -0
- netgen/include/sparsematrix_impl.hpp +66 -1
- netgen/include/special_matrix.hpp +3 -138
- netgen/include/tpintrule.hpp +2 -0
- netgen/include/umfpackinverse.hpp +1 -1
- netgen/include/vector.hpp +6 -1
- netgen/include/vvector.hpp +10 -1
- netgen/lib/libngsolve.lib +0 -0
- netgen/libngsolve.dll +0 -0
- ngsolve/cmake/NGSolveConfig.cmake +1 -1
- ngsolve/config/config.py +5 -5
- ngsolve/config.py +5 -5
- ngsolve/demos/intro/poisson.py +1 -1
- ngsolve/ngslib.pyd +0 -0
- ngsolve-6.2.2406.post111.dev1.dist-info/METADATA +13 -0
- {ngsolve-6.2.2406.post36.dev1.dist-info → ngsolve-6.2.2406.post111.dev1.dist-info}/RECORD +85 -84
- ngsolve-6.2.2406.post36.dev1.dist-info/METADATA +0 -9
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/Scripts/ngsolve.tcl +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/beam.geo +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/beam.vol +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/chip.in2d +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/chip.vol +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/coil.geo +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/coil.vol +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/coilshield.geo +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/coilshield.vol +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/cube.geo +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/cube.vol +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d10_DGdoubleglazing.pde +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d11_chip_nitsche.pde +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d1_square.pde +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d2_chip.pde +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d3_helmholtz.pde +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d4_cube.pde +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d5_beam.pde +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d6_shaft.pde +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d7_coil.pde +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d8_coilshield.pde +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/d9_hybridDG.pde +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/doubleglazing.in2d +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/doubleglazing.vol +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/shaft.geo +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/shaft.vol +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/square.in2d +0 -0
- {ngsolve-6.2.2406.post36.dev1.data → ngsolve-6.2.2406.post111.dev1.data}/data/share/ngsolve/square.vol +0 -0
- {ngsolve-6.2.2406.post36.dev1.dist-info → ngsolve-6.2.2406.post111.dev1.dist-info}/LICENSE +0 -0
- {ngsolve-6.2.2406.post36.dev1.dist-info → ngsolve-6.2.2406.post111.dev1.dist-info}/WHEEL +0 -0
- {ngsolve-6.2.2406.post36.dev1.dist-info → ngsolve-6.2.2406.post111.dev1.dist-info}/top_level.txt +0 -0
netgen/include/sparsematrix.hpp
CHANGED
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
/**************************************************************************/
|
|
9
9
|
|
|
10
10
|
|
|
11
|
+
#include "vvector.hpp"
|
|
12
|
+
#include "basematrix.hpp"
|
|
13
|
+
|
|
11
14
|
namespace ngla
|
|
12
15
|
{
|
|
13
16
|
|
|
@@ -555,7 +558,7 @@ namespace ngla
|
|
|
555
558
|
virtual tuple<int,int> EntrySizes() const override { return { ngbla::Height<TM>(), ngbla::Width<TM>() }; }
|
|
556
559
|
|
|
557
560
|
shared_ptr<BaseSparseMatrix>
|
|
558
|
-
CreateTransposeTM (const function<shared_ptr<SparseMatrixTM<decltype(Trans(TM()))>>(const Array<int>&, int)> & creator) const;
|
|
561
|
+
CreateTransposeTM (const function<shared_ptr<SparseMatrixTM<decltype(ngbla::Trans(TM()))>>(const Array<int>&, int)> & creator) const;
|
|
559
562
|
|
|
560
563
|
public:
|
|
561
564
|
using BaseMatrix::GetMemoryTracer;
|
|
@@ -616,37 +619,13 @@ namespace ngla
|
|
|
616
619
|
{ return { string("SparseMatrix")+typeid(TM).name(), this->Height(), this->Width() }; }
|
|
617
620
|
|
|
618
621
|
virtual shared_ptr<BaseJacobiPrecond>
|
|
619
|
-
CreateJacobiPrecond (shared_ptr<BitArray> inner) const override
|
|
620
|
-
{
|
|
621
|
-
// if constexpr(mat_traits<TM>::HEIGHT != mat_traits<TM>::WIDTH) return nullptr;
|
|
622
|
-
if constexpr(ngbla::Height<TM>() != ngbla::Width<TM>()) return nullptr;
|
|
623
|
-
else if constexpr(ngbla::Height<TM>() > MAX_SYS_DIM) {
|
|
624
|
-
throw Exception(string("MAX_SYS_DIM = ")+to_string(MAX_SYS_DIM)+string(", need ")+to_string(mat_traits<TM>::HEIGHT));
|
|
625
|
-
return nullptr;
|
|
626
|
-
}
|
|
627
|
-
else return make_shared<JacobiPrecond<TM,TV_ROW,TV_COL>> (*this, inner);
|
|
628
|
-
}
|
|
622
|
+
CreateJacobiPrecond (shared_ptr<BitArray> inner) const override;
|
|
629
623
|
|
|
630
624
|
virtual shared_ptr<BaseBlockJacobiPrecond>
|
|
631
625
|
CreateBlockJacobiPrecond (shared_ptr<Table<int>> blocks,
|
|
632
626
|
const BaseVector * constraint = 0,
|
|
633
627
|
bool parallel = 1,
|
|
634
|
-
shared_ptr<BitArray> freedofs = NULL) const override
|
|
635
|
-
{
|
|
636
|
-
// if constexpr(mat_traits<TM>::HEIGHT != mat_traits<TM>::WIDTH) return nullptr;
|
|
637
|
-
if constexpr(ngbla::Height<TM>() != ngbla::Width<TM>()) return nullptr;
|
|
638
|
-
else if constexpr(ngbla::Height<TM>() > MAX_SYS_DIM) {
|
|
639
|
-
throw Exception(string("MAX_SYS_DIM = ")+to_string(MAX_SYS_DIM)+string(", need ")+to_string(ngbla::Height<TM>()));
|
|
640
|
-
return nullptr;
|
|
641
|
-
}
|
|
642
|
-
else
|
|
643
|
-
// return make_shared<BlockJacobiPrecond<TM,TV_ROW,TV_COL>> (*this, blocks, parallel);
|
|
644
|
-
|
|
645
|
-
return make_shared<BlockJacobiPrecond<TM,TV_ROW,TV_COL>>
|
|
646
|
-
( dynamic_pointer_cast<const SparseMatrix>
|
|
647
|
-
(this->shared_from_this()),
|
|
648
|
-
blocks, parallel);
|
|
649
|
-
}
|
|
628
|
+
shared_ptr<BitArray> freedofs = NULL) const override;
|
|
650
629
|
|
|
651
630
|
virtual shared_ptr<BaseMatrix> InverseMatrix (shared_ptr<BitArray> subset = nullptr) const override;
|
|
652
631
|
virtual shared_ptr<BaseMatrix> InverseMatrix (shared_ptr<const Array<int>> clusters) const override;
|
|
@@ -793,24 +772,12 @@ namespace ngla
|
|
|
793
772
|
this->AddElementMatrixSymmetric (dnums1, elmat, use_atomic);
|
|
794
773
|
}
|
|
795
774
|
|
|
796
|
-
virtual shared_ptr<BaseJacobiPrecond> CreateJacobiPrecond (shared_ptr<BitArray> inner) const override
|
|
797
|
-
{
|
|
798
|
-
return make_shared<JacobiPrecondSymmetric<TM,TV>> (*this, inner);
|
|
799
|
-
}
|
|
800
|
-
|
|
775
|
+
virtual shared_ptr<BaseJacobiPrecond> CreateJacobiPrecond (shared_ptr<BitArray> inner) const override;
|
|
801
776
|
virtual shared_ptr<BaseBlockJacobiPrecond>
|
|
802
777
|
CreateBlockJacobiPrecond (shared_ptr<Table<int>> blocks,
|
|
803
778
|
const BaseVector * constraint = 0,
|
|
804
779
|
bool parallel = 1,
|
|
805
|
-
shared_ptr<BitArray> freedofs = NULL) const override
|
|
806
|
-
{
|
|
807
|
-
// return make_shared<BlockJacobiPrecondSymmetric<TM,TV>> (*this, blocks);
|
|
808
|
-
return make_shared<BlockJacobiPrecondSymmetric<TM,TV>>
|
|
809
|
-
( dynamic_pointer_cast<const SparseMatrixSymmetric>
|
|
810
|
-
(this->shared_from_this()),
|
|
811
|
-
blocks);
|
|
812
|
-
}
|
|
813
|
-
|
|
780
|
+
shared_ptr<BitArray> freedofs = NULL) const override;
|
|
814
781
|
|
|
815
782
|
virtual shared_ptr<BaseSparseMatrix> Restrict (const SparseMatrixTM<double> & prol,
|
|
816
783
|
shared_ptr<BaseSparseMatrix> cmat = nullptr) const override;
|
|
@@ -155,6 +155,44 @@ namespace ngla
|
|
|
155
155
|
: SparseMatrixTM<TM> (std::move(agraph))
|
|
156
156
|
{ ; }
|
|
157
157
|
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
template <class TM, class TV_ROW, class TV_COL>
|
|
161
|
+
shared_ptr<BaseJacobiPrecond> SparseMatrix<TM,TV_ROW,TV_COL> ::
|
|
162
|
+
CreateJacobiPrecond (shared_ptr<BitArray> inner) const
|
|
163
|
+
{
|
|
164
|
+
// if constexpr(mat_traits<TM>::HEIGHT != mat_traits<TM>::WIDTH) return nullptr;
|
|
165
|
+
if constexpr(ngbla::Height<TM>() != ngbla::Width<TM>()) return nullptr;
|
|
166
|
+
else if constexpr(ngbla::Height<TM>() > MAX_SYS_DIM) {
|
|
167
|
+
throw Exception(string("MAX_SYS_DIM = ")+to_string(MAX_SYS_DIM)+string(", need ")+to_string(mat_traits<TM>::HEIGHT));
|
|
168
|
+
return nullptr;
|
|
169
|
+
}
|
|
170
|
+
else return make_shared<JacobiPrecond<TM,TV_ROW,TV_COL>> (*this, inner);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
template <class TM, class TV_ROW, class TV_COL>
|
|
174
|
+
shared_ptr<BaseBlockJacobiPrecond> SparseMatrix<TM,TV_ROW,TV_COL> ::
|
|
175
|
+
CreateBlockJacobiPrecond (shared_ptr<Table<int>> blocks,
|
|
176
|
+
const BaseVector * constraint,
|
|
177
|
+
bool parallel,
|
|
178
|
+
shared_ptr<BitArray> freedofs) const
|
|
179
|
+
{
|
|
180
|
+
// if constexpr(mat_traits<TM>::HEIGHT != mat_traits<TM>::WIDTH) return nullptr;
|
|
181
|
+
if constexpr(ngbla::Height<TM>() != ngbla::Width<TM>()) return nullptr;
|
|
182
|
+
else if constexpr(ngbla::Height<TM>() > MAX_SYS_DIM) {
|
|
183
|
+
throw Exception(string("MAX_SYS_DIM = ")+to_string(MAX_SYS_DIM)+string(", need ")+to_string(ngbla::Height<TM>()));
|
|
184
|
+
return nullptr;
|
|
185
|
+
}
|
|
186
|
+
else
|
|
187
|
+
// return make_shared<BlockJacobiPrecond<TM,TV_ROW,TV_COL>> (*this, blocks, parallel);
|
|
188
|
+
|
|
189
|
+
return make_shared<BlockJacobiPrecond<TM,TV_ROW,TV_COL>>
|
|
190
|
+
( dynamic_pointer_cast<const SparseMatrix>
|
|
191
|
+
(this->shared_from_this()),
|
|
192
|
+
blocks, parallel);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
|
|
158
196
|
|
|
159
197
|
template <class TM, class TV_ROW, class TV_COL>
|
|
160
198
|
void SparseMatrix<TM,TV_ROW,TV_COL> ::
|
|
@@ -602,7 +640,7 @@ namespace ngla
|
|
|
602
640
|
|
|
603
641
|
template <class TM>
|
|
604
642
|
shared_ptr<BaseSparseMatrix> SparseMatrixTM<TM> ::
|
|
605
|
-
CreateTransposeTM (const function<shared_ptr<SparseMatrixTM<decltype(Trans(TM()))>>(const Array<int>&,int)> & creator) const
|
|
643
|
+
CreateTransposeTM (const function<shared_ptr<SparseMatrixTM<decltype(ngbla::Trans(TM()))>>(const Array<int>&,int)> & creator) const
|
|
606
644
|
{
|
|
607
645
|
Array<int> cnt(this->Width());
|
|
608
646
|
cnt = 0;
|
|
@@ -750,7 +788,34 @@ namespace ngla
|
|
|
750
788
|
{
|
|
751
789
|
;
|
|
752
790
|
}
|
|
791
|
+
|
|
792
|
+
|
|
793
|
+
template <class TM, class TV>
|
|
794
|
+
shared_ptr<BaseJacobiPrecond>
|
|
795
|
+
SparseMatrixSymmetric<TM,TV> :: CreateJacobiPrecond (shared_ptr<BitArray> inner) const
|
|
796
|
+
{
|
|
797
|
+
return make_shared<JacobiPrecondSymmetric<TM,TV>> (*this, inner);
|
|
798
|
+
}
|
|
799
|
+
|
|
753
800
|
|
|
801
|
+
template <class TM, class TV>
|
|
802
|
+
shared_ptr<BaseBlockJacobiPrecond>
|
|
803
|
+
SparseMatrixSymmetric<TM,TV> :: CreateBlockJacobiPrecond (shared_ptr<Table<int>> blocks,
|
|
804
|
+
const BaseVector * constraint,
|
|
805
|
+
bool parallel,
|
|
806
|
+
shared_ptr<BitArray> freedofs) const
|
|
807
|
+
{
|
|
808
|
+
// return make_shared<BlockJacobiPrecondSymmetric<TM,TV>> (*this, blocks);
|
|
809
|
+
return make_shared<BlockJacobiPrecondSymmetric<TM,TV>>
|
|
810
|
+
( dynamic_pointer_cast<const SparseMatrixSymmetric>
|
|
811
|
+
(this->shared_from_this()),
|
|
812
|
+
blocks);
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
|
|
816
|
+
|
|
817
|
+
|
|
818
|
+
|
|
754
819
|
template <class TM, class TV>
|
|
755
820
|
void SparseMatrixSymmetric<TM,TV> ::
|
|
756
821
|
MultAdd (double s, const BaseVector & x, BaseVector & y) const
|
|
@@ -7,147 +7,12 @@
|
|
|
7
7
|
/* Date: 14 Mar. 02 */
|
|
8
8
|
/* ************************************************************************/
|
|
9
9
|
|
|
10
|
+
#include "basematrix.hpp"
|
|
11
|
+
#include "vvector.hpp"
|
|
12
|
+
|
|
10
13
|
namespace ngla
|
|
11
14
|
{
|
|
12
15
|
|
|
13
|
-
|
|
14
|
-
class NGS_DLL_HEADER Projector : public BaseMatrix
|
|
15
|
-
{
|
|
16
|
-
shared_ptr<BitArray> bits;
|
|
17
|
-
bool keep_values;
|
|
18
|
-
public:
|
|
19
|
-
// projector on true / false bits
|
|
20
|
-
Projector (shared_ptr<BitArray> abits, bool akeep_values = true)
|
|
21
|
-
: bits(abits), keep_values(akeep_values) { ; }
|
|
22
|
-
|
|
23
|
-
virtual bool IsComplex() const override { return false; }
|
|
24
|
-
|
|
25
|
-
virtual int VHeight() const override { return bits->Size(); }
|
|
26
|
-
virtual int VWidth() const override { return bits->Size(); }
|
|
27
|
-
|
|
28
|
-
virtual void Mult (const BaseVector & x, BaseVector & y) const override;
|
|
29
|
-
virtual void MultTrans (const BaseVector & x, BaseVector & y) const override;
|
|
30
|
-
virtual void MultAdd (double s, const BaseVector & x, BaseVector & y) const override;
|
|
31
|
-
virtual void MultTransAdd (double s, const BaseVector & x, BaseVector & y) const override;
|
|
32
|
-
virtual void Project (BaseVector & x) const;
|
|
33
|
-
virtual void SetValues (BaseVector & x, double val) const;
|
|
34
|
-
|
|
35
|
-
bool KeepValues() const { return keep_values; }
|
|
36
|
-
shared_ptr<BitArray> Mask() const { return bits; }
|
|
37
|
-
|
|
38
|
-
virtual shared_ptr<BaseSparseMatrix> CreateSparseMatrix() const override;
|
|
39
|
-
|
|
40
|
-
AutoVector CreateRowVector() const override
|
|
41
|
-
{ throw Exception("CreateRowVector not implemented for Projector!"); }
|
|
42
|
-
AutoVector CreateColVector() const override
|
|
43
|
-
{ throw Exception("CreateColVector not implemented for Projector!"); }
|
|
44
|
-
|
|
45
|
-
AutoVector Evaluate(BaseVector & v) const override
|
|
46
|
-
{
|
|
47
|
-
auto res = v.CreateVector();
|
|
48
|
-
Mult (v, res);
|
|
49
|
-
return res;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
template <typename TM=double>
|
|
56
|
-
class NGS_DLL_HEADER DiagonalMatrix : public BaseMatrix
|
|
57
|
-
{
|
|
58
|
-
shared_ptr<VVector<TM>> diag;
|
|
59
|
-
public:
|
|
60
|
-
// typedef typename mat_traits<TM>::TV_ROW TV_ROW;
|
|
61
|
-
// typedef typename mat_traits<TM>::TV_COL TV_COL;
|
|
62
|
-
typedef typename mat_traits<TM>::TSCAL TSCAL;
|
|
63
|
-
|
|
64
|
-
DiagonalMatrix(size_t h)
|
|
65
|
-
: diag(make_shared<VVector<TM>>(h)) { }
|
|
66
|
-
DiagonalMatrix(const VVector<TM> & diag_)
|
|
67
|
-
: diag(make_shared<VVector<TM>>(diag_)) { }
|
|
68
|
-
DiagonalMatrix(shared_ptr<VVector<TM>> diag_)
|
|
69
|
-
: diag(diag_) { }
|
|
70
|
-
|
|
71
|
-
bool IsComplex() const override { return false; }
|
|
72
|
-
TM & operator() (size_t i) { return (*diag)(i); }
|
|
73
|
-
const TM & operator() (size_t i) const { return (*diag)(i); }
|
|
74
|
-
int VHeight() const override { return diag->Size(); }
|
|
75
|
-
int VWidth() const override { return diag->Size(); }
|
|
76
|
-
|
|
77
|
-
BaseVector & AsVector() override { return *diag; }
|
|
78
|
-
const BaseVector & AsVector() const override { return *diag; }
|
|
79
|
-
ostream & Print (ostream & ost) const override;
|
|
80
|
-
|
|
81
|
-
virtual shared_ptr<BaseSparseMatrix> CreateSparseMatrix() const override;
|
|
82
|
-
|
|
83
|
-
AutoVector CreateRowVector () const override;
|
|
84
|
-
AutoVector CreateColVector () const override;
|
|
85
|
-
|
|
86
|
-
void MultAdd (double s, const BaseVector & x, BaseVector & y) const override;
|
|
87
|
-
void MultTransAdd (double s, const BaseVector & x, BaseVector & y) const override;
|
|
88
|
-
|
|
89
|
-
shared_ptr<BaseMatrix> InverseMatrix (shared_ptr<BitArray> subset = nullptr) const override;
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
template <typename TM=double>
|
|
94
|
-
class BlockDiagonalMatrix : public BaseMatrix
|
|
95
|
-
{
|
|
96
|
-
Tensor<3,TM> blockdiag;
|
|
97
|
-
int blocks, dimy, dimx;
|
|
98
|
-
public:
|
|
99
|
-
// typedef double TSCAL;
|
|
100
|
-
|
|
101
|
-
BlockDiagonalMatrix(Tensor<3,TM> _blockdiag);
|
|
102
|
-
bool IsComplex() const override { return ngbla::IsComplex<TM>(); }
|
|
103
|
-
|
|
104
|
-
int VHeight() const override { return blocks*dimy; }
|
|
105
|
-
int VWidth() const override { return blocks*dimx; }
|
|
106
|
-
|
|
107
|
-
ostream & Print (ostream & ost) const override;
|
|
108
|
-
|
|
109
|
-
AutoVector CreateRowVector () const override;
|
|
110
|
-
AutoVector CreateColVector () const override;
|
|
111
|
-
|
|
112
|
-
void Mult (const BaseVector & x, BaseVector & y) const override;
|
|
113
|
-
void MultAdd (double s, const BaseVector & x, BaseVector & y) const override;
|
|
114
|
-
void MultTransAdd (double s, const BaseVector & x, BaseVector & y) const override;
|
|
115
|
-
|
|
116
|
-
shared_ptr<BaseMatrix> InverseMatrix (shared_ptr<BitArray> subset = nullptr) const override;
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
// blocks is inner-most dimension of tensor and vectors
|
|
120
|
-
class BlockDiagonalMatrixSoA : public BaseMatrix
|
|
121
|
-
{
|
|
122
|
-
Tensor<3> blockdiag;
|
|
123
|
-
int blocks, dimy, dimx;
|
|
124
|
-
Matrix<double> nonzero;
|
|
125
|
-
public:
|
|
126
|
-
typedef double TSCAL;
|
|
127
|
-
|
|
128
|
-
BlockDiagonalMatrixSoA(Tensor<3> _blockdiag);
|
|
129
|
-
bool IsComplex() const override { return false; }
|
|
130
|
-
|
|
131
|
-
int VHeight() const override { return blocks*dimy; }
|
|
132
|
-
int VWidth() const override { return blocks*dimx; }
|
|
133
|
-
|
|
134
|
-
ostream & Print (ostream & ost) const override;
|
|
135
|
-
virtual BaseMatrix::OperatorInfo GetOperatorInfo () const override;
|
|
136
|
-
|
|
137
|
-
AutoVector CreateRowVector () const override;
|
|
138
|
-
AutoVector CreateColVector () const override;
|
|
139
|
-
|
|
140
|
-
void MultAdd (double s, const BaseVector & x, BaseVector & y) const override;
|
|
141
|
-
void MultTransAdd (double s, const BaseVector & x, BaseVector & y) const override;
|
|
142
|
-
// shared_ptr<BaseMatrix> InverseMatrix (shared_ptr<BitArray> subset = nullptr) const override;
|
|
143
|
-
|
|
144
|
-
FlatTensor<3> GetBlockDiag () const { return blockdiag; }
|
|
145
|
-
FlatMatrix<double> GetNonZeroPattern() const { return nonzero; }
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
16
|
// Convert RowMajor to ColMajor matrix (stored as vector)
|
|
152
17
|
class TransposeVector : public BaseMatrix
|
|
153
18
|
{
|
netgen/include/tpintrule.hpp
CHANGED
|
@@ -46,6 +46,8 @@ namespace ngfem
|
|
|
46
46
|
{ throw Exception("TPMappedIntegrationRule::Range not implemented"); }
|
|
47
47
|
virtual SliceMatrix<> GetPoints() const
|
|
48
48
|
{ throw Exception("TPMappedIntegrationRule::GetPoints not implemented"); }
|
|
49
|
+
virtual SliceMatrix<> GetNormals() const
|
|
50
|
+
{ throw Exception("TPMappedIntegrationRule::GetNormals not implemented"); }
|
|
49
51
|
virtual void ComputeNormalsAndMeasure (ELEMENT_TYPE et, int facetnr)
|
|
50
52
|
{ throw Exception("TPMappedIntegrationRule::ComputeNormalsAndMeasure not implemented"); }
|
|
51
53
|
virtual bool IsComplex() const
|
netgen/include/vector.hpp
CHANGED
|
@@ -338,7 +338,12 @@ namespace ngbla
|
|
|
338
338
|
{
|
|
339
339
|
NETGEN_CHECK_RANGE(next,first,Size()+1);
|
|
340
340
|
return VectorView<T,size_t,TDIST> (next-first, dist, data+first*dist);
|
|
341
|
-
}
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
INLINE auto Range (size_t next) const
|
|
344
|
+
{
|
|
345
|
+
return Range(0, next);
|
|
346
|
+
}
|
|
342
347
|
|
|
343
348
|
INLINE auto Range (IntRange range) const
|
|
344
349
|
{
|
netgen/include/vvector.hpp
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
#ifndef FILE_VVECTOR
|
|
2
|
+
#define FILE_VVECTOR
|
|
3
|
+
|
|
4
|
+
#include "basevector.hpp"
|
|
5
|
+
|
|
1
6
|
namespace ngla
|
|
2
7
|
{
|
|
3
8
|
|
|
@@ -13,7 +18,7 @@ namespace ngla
|
|
|
13
18
|
{
|
|
14
19
|
protected:
|
|
15
20
|
TSCAL * pdata;
|
|
16
|
-
int es;
|
|
21
|
+
int es; // entry size in in term of TSCALs
|
|
17
22
|
bool ownmem;
|
|
18
23
|
|
|
19
24
|
public:
|
|
@@ -197,3 +202,7 @@ namespace ngla
|
|
|
197
202
|
extern template class VVector<double>;
|
|
198
203
|
extern template class VVector<Complex>;
|
|
199
204
|
}
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
#endif
|
netgen/lib/libngsolve.lib
CHANGED
|
Binary file
|
netgen/libngsolve.dll
CHANGED
|
Binary file
|
ngsolve/config/config.py
CHANGED
|
@@ -30,15 +30,15 @@ NGSOLVE_INSTALL_DIR_INCLUDE = "netgen/include"
|
|
|
30
30
|
NGSOLVE_INSTALL_DIR_CMAKE = "ngsolve/cmake"
|
|
31
31
|
NGSOLVE_INSTALL_DIR_RES = "share"
|
|
32
32
|
|
|
33
|
-
NGSOLVE_VERSION = "6.2.2406-
|
|
34
|
-
NGSOLVE_VERSION_GIT = "v6.2.2406-
|
|
35
|
-
NGSOLVE_VERSION_PYTHON = "6.2.2406.
|
|
33
|
+
NGSOLVE_VERSION = "6.2.2406-111-g5c9ac9808"
|
|
34
|
+
NGSOLVE_VERSION_GIT = "v6.2.2406-111-g5c9ac9808"
|
|
35
|
+
NGSOLVE_VERSION_PYTHON = "6.2.2406.post111.dev1"
|
|
36
36
|
|
|
37
37
|
NGSOLVE_VERSION_MAJOR = "6"
|
|
38
38
|
NGSOLVE_VERSION_MINOR = "2"
|
|
39
|
-
NGSOLVE_VERSION_TWEAK = "
|
|
39
|
+
NGSOLVE_VERSION_TWEAK = "111"
|
|
40
40
|
NGSOLVE_VERSION_PATCH = "2406"
|
|
41
|
-
NGSOLVE_VERSION_HASH = "
|
|
41
|
+
NGSOLVE_VERSION_HASH = "g5c9ac9808"
|
|
42
42
|
|
|
43
43
|
CMAKE_CXX_COMPILER = "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe"
|
|
44
44
|
CMAKE_CUDA_COMPILER = ""
|
ngsolve/config.py
CHANGED
|
@@ -30,15 +30,15 @@ NGSOLVE_INSTALL_DIR_INCLUDE = "netgen/include"
|
|
|
30
30
|
NGSOLVE_INSTALL_DIR_CMAKE = "ngsolve/cmake"
|
|
31
31
|
NGSOLVE_INSTALL_DIR_RES = "share"
|
|
32
32
|
|
|
33
|
-
NGSOLVE_VERSION = "6.2.2406-
|
|
34
|
-
NGSOLVE_VERSION_GIT = "v6.2.2406-
|
|
35
|
-
NGSOLVE_VERSION_PYTHON = "6.2.2406.
|
|
33
|
+
NGSOLVE_VERSION = "6.2.2406-111-g5c9ac9808"
|
|
34
|
+
NGSOLVE_VERSION_GIT = "v6.2.2406-111-g5c9ac9808"
|
|
35
|
+
NGSOLVE_VERSION_PYTHON = "6.2.2406.post111.dev1"
|
|
36
36
|
|
|
37
37
|
NGSOLVE_VERSION_MAJOR = "6"
|
|
38
38
|
NGSOLVE_VERSION_MINOR = "2"
|
|
39
|
-
NGSOLVE_VERSION_TWEAK = "
|
|
39
|
+
NGSOLVE_VERSION_TWEAK = "111"
|
|
40
40
|
NGSOLVE_VERSION_PATCH = "2406"
|
|
41
|
-
NGSOLVE_VERSION_HASH = "
|
|
41
|
+
NGSOLVE_VERSION_HASH = "g5c9ac9808"
|
|
42
42
|
|
|
43
43
|
CMAKE_CXX_COMPILER = "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe"
|
|
44
44
|
CMAKE_CUDA_COMPILER = ""
|
ngsolve/demos/intro/poisson.py
CHANGED
ngsolve/ngslib.pyd
CHANGED
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: ngsolve
|
|
3
|
+
Version: 6.2.2406.post111.dev1
|
|
4
|
+
Summary: NGSolve
|
|
5
|
+
Author: The NGSolve team
|
|
6
|
+
License: LGPL2.1
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Requires-Dist: netgen-mesher==6.2.2406.post118.dev0
|
|
9
|
+
Requires-Dist: mkl
|
|
10
|
+
Dynamic: author
|
|
11
|
+
Dynamic: license
|
|
12
|
+
Dynamic: requires-dist
|
|
13
|
+
Dynamic: summary
|