ngsolve 6.2.2506.post74.dev0__cp314-cp314-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/analytic_integrals.hpp +10 -0
- netgen/include/arnoldi.hpp +55 -0
- netgen/include/bandmatrix.hpp +334 -0
- netgen/include/basematrix.hpp +957 -0
- netgen/include/basevector.hpp +1268 -0
- netgen/include/bdbequations.hpp +2805 -0
- netgen/include/bdbintegrator.hpp +1660 -0
- netgen/include/bem_diffops.hpp +475 -0
- netgen/include/bessel.hpp +1064 -0
- netgen/include/bilinearform.hpp +963 -0
- netgen/include/bla.hpp +29 -0
- netgen/include/blockalloc.hpp +95 -0
- netgen/include/blockjacobi.hpp +328 -0
- netgen/include/bspline.hpp +116 -0
- netgen/include/calcinverse.hpp +141 -0
- netgen/include/cg.hpp +368 -0
- netgen/include/chebyshev.hpp +44 -0
- netgen/include/cholesky.hpp +720 -0
- netgen/include/clapack.h +7254 -0
- netgen/include/code_generation.hpp +296 -0
- netgen/include/coefficient.hpp +2033 -0
- netgen/include/coefficient_impl.hpp +19 -0
- netgen/include/coefficient_stdmath.hpp +167 -0
- netgen/include/commutingAMG.hpp +106 -0
- netgen/include/comp.hpp +79 -0
- netgen/include/compatibility.hpp +41 -0
- netgen/include/complex_wrapper.hpp +73 -0
- netgen/include/compressedfespace.hpp +110 -0
- netgen/include/contact.hpp +235 -0
- netgen/include/diagonalmatrix.hpp +154 -0
- netgen/include/differentialoperator.hpp +276 -0
- netgen/include/diffop.hpp +1286 -0
- netgen/include/diffop_impl.hpp +328 -0
- netgen/include/diffopwithfactor.hpp +123 -0
- netgen/include/discontinuous.hpp +84 -0
- netgen/include/dump.hpp +949 -0
- netgen/include/ectypes.hpp +121 -0
- netgen/include/eigen.hpp +60 -0
- netgen/include/eigensystem.hpp +18 -0
- netgen/include/elasticity_equations.hpp +595 -0
- netgen/include/elementbyelement.hpp +195 -0
- netgen/include/elementtopology.hpp +1760 -0
- netgen/include/elementtransformation.hpp +339 -0
- netgen/include/evalfunc.hpp +405 -0
- netgen/include/expr.hpp +1686 -0
- netgen/include/facetfe.hpp +175 -0
- netgen/include/facetfespace.hpp +180 -0
- netgen/include/facethofe.hpp +111 -0
- netgen/include/facetsurffespace.hpp +112 -0
- netgen/include/fe_interfaces.hpp +32 -0
- netgen/include/fem.hpp +87 -0
- netgen/include/fesconvert.hpp +14 -0
- netgen/include/fespace.hpp +1449 -0
- netgen/include/finiteelement.hpp +286 -0
- netgen/include/globalinterfacespace.hpp +77 -0
- netgen/include/globalspace.hpp +115 -0
- netgen/include/gridfunction.hpp +525 -0
- netgen/include/h1amg.hpp +124 -0
- netgen/include/h1hofe.hpp +188 -0
- netgen/include/h1hofe_impl.hpp +1262 -0
- netgen/include/h1hofefo.hpp +148 -0
- netgen/include/h1hofefo_impl.hpp +185 -0
- netgen/include/h1hofespace.hpp +167 -0
- netgen/include/h1lofe.hpp +1240 -0
- netgen/include/h1lumping.hpp +41 -0
- netgen/include/hcurl_equations.hpp +1381 -0
- netgen/include/hcurlcurlfe.hpp +2241 -0
- netgen/include/hcurlcurlfespace.hpp +78 -0
- netgen/include/hcurlfe.hpp +259 -0
- netgen/include/hcurlfe_utils.hpp +107 -0
- netgen/include/hcurlhdiv_dshape.hpp +857 -0
- netgen/include/hcurlhdivfes.hpp +308 -0
- netgen/include/hcurlhofe.hpp +175 -0
- netgen/include/hcurlhofe_impl.hpp +1871 -0
- netgen/include/hcurlhofespace.hpp +193 -0
- netgen/include/hcurllofe.hpp +1146 -0
- netgen/include/hdiv_equations.hpp +880 -0
- netgen/include/hdivdivfe.hpp +2923 -0
- netgen/include/hdivdivsurfacespace.hpp +76 -0
- netgen/include/hdivfe.hpp +206 -0
- netgen/include/hdivfe_utils.hpp +717 -0
- netgen/include/hdivfes.hpp +75 -0
- netgen/include/hdivhofe.hpp +447 -0
- netgen/include/hdivhofe_impl.hpp +1107 -0
- netgen/include/hdivhofefo.hpp +229 -0
- netgen/include/hdivhofespace.hpp +177 -0
- netgen/include/hdivhosurfacefespace.hpp +106 -0
- netgen/include/hdivlofe.hpp +773 -0
- netgen/include/hidden.hpp +74 -0
- netgen/include/householder.hpp +181 -0
- netgen/include/hypre_ams_precond.hpp +123 -0
- netgen/include/hypre_precond.hpp +73 -0
- netgen/include/integrator.hpp +2012 -0
- netgen/include/integratorcf.hpp +253 -0
- netgen/include/interpolate.hpp +49 -0
- netgen/include/intrule.hpp +2542 -0
- netgen/include/intrules_SauterSchwab.hpp +25 -0
- netgen/include/irspace.hpp +49 -0
- netgen/include/jacobi.hpp +153 -0
- netgen/include/kernels.hpp +762 -0
- netgen/include/l2hofe.hpp +194 -0
- netgen/include/l2hofe_impl.hpp +564 -0
- netgen/include/l2hofefo.hpp +542 -0
- netgen/include/l2hofespace.hpp +344 -0
- netgen/include/la.hpp +38 -0
- netgen/include/linearform.hpp +266 -0
- netgen/include/matrix.hpp +2140 -0
- netgen/include/memusage.hpp +41 -0
- netgen/include/meshaccess.hpp +1359 -0
- netgen/include/mgpre.hpp +204 -0
- netgen/include/mp_coefficient.hpp +145 -0
- netgen/include/mptools.hpp +2281 -0
- netgen/include/multigrid.hpp +42 -0
- netgen/include/multivector.hpp +447 -0
- netgen/include/mumpsinverse.hpp +187 -0
- netgen/include/mycomplex.hpp +361 -0
- netgen/include/ng_lapack.hpp +1661 -0
- netgen/include/ngblas.hpp +1232 -0
- netgen/include/ngs_defines.hpp +30 -0
- netgen/include/ngs_stdcpp_include.hpp +106 -0
- netgen/include/ngs_utils.hpp +121 -0
- netgen/include/ngsobject.hpp +1019 -0
- netgen/include/ngsstream.hpp +113 -0
- netgen/include/ngstd.hpp +72 -0
- netgen/include/nodalhofe.hpp +96 -0
- netgen/include/nodalhofe_impl.hpp +141 -0
- netgen/include/normalfacetfe.hpp +223 -0
- netgen/include/normalfacetfespace.hpp +98 -0
- netgen/include/normalfacetsurfacefespace.hpp +84 -0
- netgen/include/order.hpp +251 -0
- netgen/include/parallel_matrices.hpp +222 -0
- netgen/include/paralleldofs.hpp +340 -0
- netgen/include/parallelngs.hpp +23 -0
- netgen/include/parallelvector.hpp +269 -0
- netgen/include/pardisoinverse.hpp +200 -0
- netgen/include/periodic.hpp +129 -0
- netgen/include/plateaufespace.hpp +25 -0
- netgen/include/pml.hpp +275 -0
- netgen/include/pmltrafo.hpp +631 -0
- netgen/include/postproc.hpp +142 -0
- netgen/include/potentialtools.hpp +22 -0
- netgen/include/precomp.hpp +60 -0
- netgen/include/preconditioner.hpp +602 -0
- netgen/include/prolongation.hpp +377 -0
- netgen/include/python_comp.hpp +107 -0
- netgen/include/python_fem.hpp +89 -0
- netgen/include/python_linalg.hpp +58 -0
- netgen/include/python_ngstd.hpp +386 -0
- netgen/include/recursive_pol.hpp +4896 -0
- netgen/include/recursive_pol_tet.hpp +395 -0
- netgen/include/recursive_pol_trig.hpp +492 -0
- netgen/include/reorderedfespace.hpp +81 -0
- netgen/include/sample_sort.hpp +105 -0
- netgen/include/scalarfe.hpp +335 -0
- netgen/include/shapefunction_utils.hpp +113 -0
- netgen/include/simd_complex.hpp +329 -0
- netgen/include/smoother.hpp +253 -0
- netgen/include/solve.hpp +89 -0
- netgen/include/sparsecholesky.hpp +313 -0
- netgen/include/sparsematrix.hpp +1038 -0
- netgen/include/sparsematrix_dyn.hpp +90 -0
- netgen/include/sparsematrix_impl.hpp +1013 -0
- netgen/include/special_matrix.hpp +463 -0
- netgen/include/specialelement.hpp +125 -0
- netgen/include/statushandler.hpp +33 -0
- netgen/include/stringops.hpp +12 -0
- netgen/include/superluinverse.hpp +136 -0
- netgen/include/symbolicintegrator.hpp +850 -0
- netgen/include/symmetricmatrix.hpp +144 -0
- netgen/include/tangentialfacetfe.hpp +224 -0
- netgen/include/tangentialfacetfespace.hpp +91 -0
- netgen/include/tensor.hpp +522 -0
- netgen/include/tensorcoefficient.hpp +446 -0
- netgen/include/tensorproductintegrator.hpp +113 -0
- netgen/include/thcurlfe.hpp +128 -0
- netgen/include/thcurlfe_impl.hpp +380 -0
- netgen/include/thdivfe.hpp +80 -0
- netgen/include/thdivfe_impl.hpp +492 -0
- netgen/include/tpdiffop.hpp +461 -0
- netgen/include/tpfes.hpp +133 -0
- netgen/include/tpintrule.hpp +224 -0
- netgen/include/triangular.hpp +465 -0
- netgen/include/tscalarfe.hpp +245 -0
- netgen/include/tscalarfe_impl.hpp +1029 -0
- netgen/include/umfpackinverse.hpp +148 -0
- netgen/include/vector.hpp +1273 -0
- netgen/include/voxelcoefficientfunction.hpp +41 -0
- netgen/include/vtkoutput.hpp +198 -0
- netgen/include/vvector.hpp +208 -0
- netgen/include/webgui.hpp +92 -0
- netgen/libngbla.dylib +0 -0
- netgen/libngcomp.dylib +0 -0
- netgen/libngfem.dylib +0 -0
- netgen/libngla.dylib +0 -0
- netgen/libngsbem.dylib +0 -0
- netgen/libngsolve.dylib +0 -0
- netgen/libngstd.dylib +0 -0
- ngsolve/TensorProductTools.py +210 -0
- ngsolve/__console.py +94 -0
- ngsolve/__expr.py +181 -0
- ngsolve/__init__.py +148 -0
- ngsolve/__init__.pyi +233 -0
- ngsolve/_scikit_build_core_dependencies.py +30 -0
- ngsolve/bla.pyi +1153 -0
- ngsolve/bvp.py +78 -0
- ngsolve/bvp.pyi +32 -0
- ngsolve/cmake/NGSolveConfig.cmake +102 -0
- ngsolve/cmake/ngsolve-targets-release.cmake +79 -0
- ngsolve/cmake/ngsolve-targets.cmake +163 -0
- ngsolve/comp/__init__.pyi +5449 -0
- ngsolve/comp/pml.pyi +89 -0
- ngsolve/config/__init__.py +1 -0
- ngsolve/config/__init__.pyi +43 -0
- ngsolve/config/__main__.py +4 -0
- ngsolve/config/config.py +60 -0
- ngsolve/config/config.pyi +45 -0
- ngsolve/demos/TensorProduct/__init__.py +0 -0
- ngsolve/demos/TensorProduct/tp_dg_1d_1d.py +80 -0
- ngsolve/demos/TensorProduct/tp_dg_1d_2d.py +73 -0
- ngsolve/demos/TensorProduct/tp_dg_2d_1d.py +72 -0
- ngsolve/demos/TensorProduct/tp_dg_2d_2d.py +66 -0
- ngsolve/demos/__init__.py +0 -0
- ngsolve/demos/howto/__init__.py +0 -0
- ngsolve/demos/howto/hhj.py +44 -0
- ngsolve/demos/howto/hybrid_dg.py +53 -0
- ngsolve/demos/howto/mixed.py +30 -0
- ngsolve/demos/howto/nonlin.py +29 -0
- ngsolve/demos/howto/pickling.py +26 -0
- ngsolve/demos/howto/pml.py +31 -0
- ngsolve/demos/howto/taskmanager.py +20 -0
- ngsolve/demos/howto/tdnns.py +47 -0
- ngsolve/demos/howto/timeDG-skeleton.py +45 -0
- ngsolve/demos/howto/timeDG.py +38 -0
- ngsolve/demos/howto/timeDGlap.py +42 -0
- ngsolve/demos/howto/timeDGwave.py +61 -0
- ngsolve/demos/intro/__init__.py +0 -0
- ngsolve/demos/intro/adaptive.py +123 -0
- ngsolve/demos/intro/cmagnet.py +59 -0
- ngsolve/demos/intro/elasticity.py +76 -0
- ngsolve/demos/intro/navierstokes.py +74 -0
- ngsolve/demos/intro/poisson.ipynb +170 -0
- ngsolve/demos/intro/poisson.py +41 -0
- ngsolve/demos/mpi/__init__.py +0 -0
- ngsolve/demos/mpi/mpi_cmagnet.py +87 -0
- ngsolve/demos/mpi/mpi_navierstokes.py +117 -0
- ngsolve/demos/mpi/mpi_poisson.py +89 -0
- ngsolve/demos/mpi/mpi_timeDG.py +82 -0
- ngsolve/directsolvers.py +26 -0
- ngsolve/directsolvers.pyi +15 -0
- ngsolve/eigenvalues.py +364 -0
- ngsolve/eigenvalues.pyi +30 -0
- ngsolve/fem.pyi +1647 -0
- ngsolve/internal.py +89 -0
- ngsolve/krylovspace.py +1013 -0
- ngsolve/krylovspace.pyi +298 -0
- ngsolve/la.pyi +1230 -0
- ngsolve/meshes.py +748 -0
- ngsolve/ngs2petsc.py +310 -0
- ngsolve/ngscxx.py +42 -0
- ngsolve/ngslib.so +0 -0
- ngsolve/ngstd.pyi +59 -0
- ngsolve/nonlinearsolvers.py +203 -0
- ngsolve/nonlinearsolvers.pyi +95 -0
- ngsolve/preconditioners.py +11 -0
- ngsolve/preconditioners.pyi +7 -0
- ngsolve/solve.pyi +109 -0
- ngsolve/solve_implementation.py +168 -0
- ngsolve/solve_implementation.pyi +42 -0
- ngsolve/solvers.py +7 -0
- ngsolve/solvers.pyi +14 -0
- ngsolve/timestepping.py +185 -0
- ngsolve/timestepping.pyi +28 -0
- ngsolve/timing.py +108 -0
- ngsolve/timing.pyi +54 -0
- ngsolve/utils.py +167 -0
- ngsolve/utils.pyi +273 -0
- ngsolve/webgui.py +670 -0
- ngsolve-6.2.2506.post74.dev0.data/data/Netgen.icns +0 -0
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngscxx +17 -0
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngsld +13 -0
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngsolve.tcl +648 -0
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngspy +2 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.geo +17 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.vol +240 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.in2d +41 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.vol +614 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.geo +12 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.vol +2560 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.geo +24 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.vol +3179 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.geo +19 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.vol +1832 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde +50 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde +40 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d1_square.pde +43 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d2_chip.pde +35 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d3_helmholtz.pde +22 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d4_cube.pde +46 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d5_beam.pde +74 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d6_shaft.pde +73 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d7_coil.pde +50 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d8_coilshield.pde +49 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d9_hybridDG.pde +72 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.in2d +27 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.vol +737 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.geo +73 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.vol +4291 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.in2d +17 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.vol +149 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/METADATA +13 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/RECORD +315 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/WHEEL +5 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/licenses/LICENSE +504 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/top_level.txt +2 -0
ngsolve/la.pyi
ADDED
|
@@ -0,0 +1,1230 @@
|
|
|
1
|
+
"""
|
|
2
|
+
pybind la
|
|
3
|
+
"""
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
import collections.abc
|
|
6
|
+
import ngsolve.bla
|
|
7
|
+
import ngsolve.ngstd
|
|
8
|
+
import numpy
|
|
9
|
+
import numpy.typing
|
|
10
|
+
import pyngcore.pyngcore
|
|
11
|
+
import typing
|
|
12
|
+
__all__: list[str] = ['ArnoldiSolver', 'BaseMatrix', 'BaseSparseMatrix', 'BaseVector', 'BlockMatrix', 'BlockSmoother', 'BlockVector', 'CGSolver', 'ChebyshevIteration', 'ConstEBEMatrix', 'CreateParallelVector', 'CreateVVector', 'CumulationOperator', 'DiagonalMatrix', 'DoArchive', 'DofRange', 'DynamicVectorExpression', 'EigenValues_Preconditioner', 'Embedding', 'EmbeddingTranspose', 'FETI_Jump', 'GMRESSolver', 'GetAvailableSolvers', 'IdentityMatrix', 'InnerProduct', 'KrylovSpaceSolver', 'LoggingMatrix', 'MultiVector', 'MultiVectorExpr', 'PARALLEL_STATUS', 'ParallelDofs', 'ParallelMatrix', 'PermutationMatrix', 'ProductMatrix', 'Projector', 'QMRSolver', 'QMRSolverC', 'QMRSolverD', 'Real2ComplexMatrix', 'S_BaseMatrixC', 'S_BaseMatrixD', 'ScaleMatrix', 'Smoother', 'SparseCholesky_c', 'SparseCholesky_d', 'SparseFactorization', 'SparseMatrixDynamic', 'SparseMatrixN5ngbla3MatILi2ELi2ENSt3__17complexIdEEEE', 'SparseMatrixN5ngbla3MatILi2ELi2EdEE', 'SparseMatrixN5ngbla3MatILi3ELi3ENSt3__17complexIdEEEE', 'SparseMatrixN5ngbla3MatILi3ELi3EdEE', 'SparseMatrixNSt3__17complexIdEE', 'SparseMatrixSymmetricN5ngbla3MatILi2ELi2ENSt3__17complexIdEEEE', 'SparseMatrixSymmetricN5ngbla3MatILi2ELi2EdEE', 'SparseMatrixSymmetricN5ngbla3MatILi3ELi3ENSt3__17complexIdEEEE', 'SparseMatrixSymmetricN5ngbla3MatILi3ELi3EdEE', 'SparseMatrixSymmetricNSt3__17complexIdEE', 'SparseMatrixSymmetricd', 'SparseMatrixVariableBlocks', 'SparseMatrixd', 'SumMatrix', 'SymmetricBlockGaussSeidelPreconditioner', 'SymmetricGaussSeidelPreconditioner', 'TransposeMatrix']
|
|
13
|
+
class BaseMatrix:
|
|
14
|
+
def AsVector(self) -> BaseVector:
|
|
15
|
+
"""
|
|
16
|
+
Interprets the matrix values as a vector
|
|
17
|
+
"""
|
|
18
|
+
def CreateColVector(self) -> BaseVector:
|
|
19
|
+
...
|
|
20
|
+
def CreateDeviceMatrix(self) -> BaseMatrix:
|
|
21
|
+
...
|
|
22
|
+
def CreateMatrix(self) -> BaseMatrix:
|
|
23
|
+
"""
|
|
24
|
+
Create matrix of same dimension and same sparsestructure
|
|
25
|
+
"""
|
|
26
|
+
def CreateRowVector(self) -> BaseVector:
|
|
27
|
+
...
|
|
28
|
+
def CreateSparseMatrix(self) -> ...:
|
|
29
|
+
...
|
|
30
|
+
def CreateVector(self, colvector: bool = False) -> BaseVector:
|
|
31
|
+
...
|
|
32
|
+
def GetInverseType(self) -> str:
|
|
33
|
+
...
|
|
34
|
+
def GetOperatorInfo(self) -> str:
|
|
35
|
+
...
|
|
36
|
+
def Inverse(self, freedofs: pyngcore.pyngcore.BitArray = None, inverse: None | str | typing.Any = None, flags: pyngcore.pyngcore.Flags = ...) -> BaseMatrix:
|
|
37
|
+
"""
|
|
38
|
+
Calculate inverse of sparse matrix
|
|
39
|
+
Parameters:
|
|
40
|
+
|
|
41
|
+
freedofs : BitArray
|
|
42
|
+
If set, invert only the rows/columns the matrix defined by the bit array, otherwise invert the whole matrix
|
|
43
|
+
|
|
44
|
+
inverse : string
|
|
45
|
+
Solver to use, allowed values are:
|
|
46
|
+
sparsecholesky - internal solver of NGSolve for symmetric matrices
|
|
47
|
+
umfpack - solver by Suitesparse/UMFPACK (if NGSolve was configured with USE_UMFPACK=ON)
|
|
48
|
+
pardiso - PARDISO, either provided by libpardiso (USE_PARDISO=ON) or Intel MKL (USE_MKL=ON).
|
|
49
|
+
If neither Pardiso nor Intel MKL was linked at compile-time, NGSolve will look
|
|
50
|
+
for libmkl_rt in LD_LIBRARY_PATH (Unix) or PATH (Windows) at run-time.
|
|
51
|
+
"""
|
|
52
|
+
def Mult(self, x: BaseVector, y: BaseVector) -> None:
|
|
53
|
+
...
|
|
54
|
+
@typing.overload
|
|
55
|
+
def MultAdd(self, value: typing.SupportsFloat, x: BaseVector, y: BaseVector) -> None:
|
|
56
|
+
...
|
|
57
|
+
@typing.overload
|
|
58
|
+
def MultAdd(self, value: complex, x: BaseVector, y: BaseVector) -> None:
|
|
59
|
+
...
|
|
60
|
+
@typing.overload
|
|
61
|
+
def MultScale(self, value: typing.SupportsFloat, x: BaseVector, y: BaseVector) -> None:
|
|
62
|
+
...
|
|
63
|
+
@typing.overload
|
|
64
|
+
def MultScale(self, value: complex, x: BaseVector, y: BaseVector) -> None:
|
|
65
|
+
...
|
|
66
|
+
@typing.overload
|
|
67
|
+
def MultTrans(self, value: typing.SupportsFloat, x: BaseVector, y: BaseVector) -> None:
|
|
68
|
+
...
|
|
69
|
+
@typing.overload
|
|
70
|
+
def MultTrans(self, value: complex, x: BaseVector, y: BaseVector) -> None:
|
|
71
|
+
...
|
|
72
|
+
@typing.overload
|
|
73
|
+
def MultTransAdd(self, value: typing.SupportsFloat, x: BaseVector, y: BaseVector) -> None:
|
|
74
|
+
...
|
|
75
|
+
@typing.overload
|
|
76
|
+
def MultTransAdd(self, value: complex, x: BaseVector, y: BaseVector) -> None:
|
|
77
|
+
...
|
|
78
|
+
def ToDense(self) -> typing.Any:
|
|
79
|
+
...
|
|
80
|
+
def Update(self) -> None:
|
|
81
|
+
"""
|
|
82
|
+
Update matrix
|
|
83
|
+
"""
|
|
84
|
+
def __add__(self, mat: BaseMatrix) -> BaseMatrix:
|
|
85
|
+
...
|
|
86
|
+
def __iadd__(self, mat: BaseMatrix) -> None:
|
|
87
|
+
...
|
|
88
|
+
@typing.overload
|
|
89
|
+
def __init__(self) -> None:
|
|
90
|
+
...
|
|
91
|
+
@typing.overload
|
|
92
|
+
def __init__(self, arg0: BaseVector) -> None:
|
|
93
|
+
...
|
|
94
|
+
@typing.overload
|
|
95
|
+
def __init__(self, arg0: MultiVector) -> None:
|
|
96
|
+
...
|
|
97
|
+
@typing.overload
|
|
98
|
+
def __init__(self, arg0: ngsolve.bla.MatrixD) -> None:
|
|
99
|
+
...
|
|
100
|
+
@typing.overload
|
|
101
|
+
def __init__(self, arg0: typing.Any) -> None:
|
|
102
|
+
...
|
|
103
|
+
def __matmul__(self, mat: BaseMatrix) -> BaseMatrix:
|
|
104
|
+
...
|
|
105
|
+
@typing.overload
|
|
106
|
+
def __mul__(self, arg0: BaseVector) -> ...:
|
|
107
|
+
...
|
|
108
|
+
@typing.overload
|
|
109
|
+
def __mul__(self, arg0: MultiVector) -> MultiVectorExpr:
|
|
110
|
+
...
|
|
111
|
+
def __neg__(self) -> BaseMatrix:
|
|
112
|
+
...
|
|
113
|
+
def __radd__(self, arg0: typing.SupportsInt) -> BaseMatrix:
|
|
114
|
+
...
|
|
115
|
+
@typing.overload
|
|
116
|
+
def __rmul__(self, value: typing.SupportsFloat) -> BaseMatrix:
|
|
117
|
+
...
|
|
118
|
+
@typing.overload
|
|
119
|
+
def __rmul__(self, value: complex) -> BaseMatrix:
|
|
120
|
+
...
|
|
121
|
+
def __str__(self) -> str:
|
|
122
|
+
...
|
|
123
|
+
def __sub__(self, mat: BaseMatrix) -> BaseMatrix:
|
|
124
|
+
...
|
|
125
|
+
def __timing__(self, runs: typing.SupportsInt = 10) -> float:
|
|
126
|
+
...
|
|
127
|
+
def matvec(self, arg0: BaseVector) -> BaseVector:
|
|
128
|
+
...
|
|
129
|
+
@property
|
|
130
|
+
def H(self) -> BaseMatrix:
|
|
131
|
+
"""
|
|
132
|
+
Return conjugate transpose of matrix (WIP, only partially supported)
|
|
133
|
+
"""
|
|
134
|
+
@property
|
|
135
|
+
def T(self) -> BaseMatrix:
|
|
136
|
+
"""
|
|
137
|
+
Return transpose of matrix
|
|
138
|
+
"""
|
|
139
|
+
@property
|
|
140
|
+
def comm(self) -> pyngcore.pyngcore.MPI_Comm | None:
|
|
141
|
+
...
|
|
142
|
+
@property
|
|
143
|
+
def dtype(self) -> numpy.dtype[typing.Any]:
|
|
144
|
+
...
|
|
145
|
+
@property
|
|
146
|
+
def height(self) -> int:
|
|
147
|
+
"""
|
|
148
|
+
Height of the matrix
|
|
149
|
+
"""
|
|
150
|
+
@property
|
|
151
|
+
def is_complex(self) -> bool:
|
|
152
|
+
"""
|
|
153
|
+
is the matrix complex-valued ?
|
|
154
|
+
"""
|
|
155
|
+
@property
|
|
156
|
+
def local_mat(self) -> BaseMatrix:
|
|
157
|
+
...
|
|
158
|
+
@property
|
|
159
|
+
def nze(self) -> int:
|
|
160
|
+
"""
|
|
161
|
+
number of non-zero elements
|
|
162
|
+
"""
|
|
163
|
+
@property
|
|
164
|
+
def shape(self) -> tuple[int, int]:
|
|
165
|
+
...
|
|
166
|
+
@property
|
|
167
|
+
def width(self) -> int:
|
|
168
|
+
"""
|
|
169
|
+
Width of the matrix
|
|
170
|
+
"""
|
|
171
|
+
class BaseSparseMatrix(BaseMatrix):
|
|
172
|
+
"""
|
|
173
|
+
sparse matrix of any type
|
|
174
|
+
"""
|
|
175
|
+
def CreateBlockSmoother(self, blocks: typing.Any, parallel: bool = False, GS: bool = False) -> typing.Any:
|
|
176
|
+
...
|
|
177
|
+
def CreateSmoother(self, freedofs: pyngcore.pyngcore.BitArray = None, GS: bool = False) -> typing.Any:
|
|
178
|
+
...
|
|
179
|
+
def DeleteZeroElements(self, arg0: typing.SupportsFloat) -> BaseMatrix:
|
|
180
|
+
...
|
|
181
|
+
class BaseVector:
|
|
182
|
+
def Add(self, vec: BaseVector, value: typing.Any) -> None:
|
|
183
|
+
...
|
|
184
|
+
def Assign(self, vec: BaseVector, value: typing.Any) -> None:
|
|
185
|
+
...
|
|
186
|
+
def Copy(self) -> BaseVector:
|
|
187
|
+
"""
|
|
188
|
+
creates a new vector of same type, copy contents
|
|
189
|
+
"""
|
|
190
|
+
def CreateDeviceVector(self, unified: bool = True, copy: bool = True) -> BaseVector:
|
|
191
|
+
"""
|
|
192
|
+
creates a device-vector of the same type
|
|
193
|
+
"""
|
|
194
|
+
def CreateVector(self, copy: bool = False) -> BaseVector:
|
|
195
|
+
"""
|
|
196
|
+
creates a new vector of same type, contents is undefined if copy is false
|
|
197
|
+
"""
|
|
198
|
+
def CreateVectors(self, num: typing.SupportsInt) -> list[BaseVector]:
|
|
199
|
+
"""
|
|
200
|
+
creates a num new vector of same type, contents is undefined
|
|
201
|
+
"""
|
|
202
|
+
def Cumulate(self) -> None:
|
|
203
|
+
...
|
|
204
|
+
def Distribute(self) -> None:
|
|
205
|
+
...
|
|
206
|
+
def FV(self) -> typing.Any:
|
|
207
|
+
...
|
|
208
|
+
def GetParallelStatus(self) -> PARALLEL_STATUS:
|
|
209
|
+
...
|
|
210
|
+
def InnerProduct(self, other: BaseVector, conjugate: bool = True) -> typing.Any:
|
|
211
|
+
"""
|
|
212
|
+
Computes (complex) InnerProduct
|
|
213
|
+
"""
|
|
214
|
+
def Norm(self) -> float:
|
|
215
|
+
"""
|
|
216
|
+
Calculate Norm
|
|
217
|
+
"""
|
|
218
|
+
def Range(self, from: typing.SupportsInt, to: typing.SupportsInt) -> BaseVector:
|
|
219
|
+
"""
|
|
220
|
+
Return values from given range
|
|
221
|
+
"""
|
|
222
|
+
def Reshape(self, width: typing.SupportsInt) -> ngsolve.bla.FlatMatrixD:
|
|
223
|
+
...
|
|
224
|
+
def SetParallelStatus(self, stat: PARALLEL_STATUS) -> None:
|
|
225
|
+
...
|
|
226
|
+
def SetRandom(self, seed: typing.SupportsInt | None = None) -> None:
|
|
227
|
+
...
|
|
228
|
+
def __add__(self, arg0: ...) -> ...:
|
|
229
|
+
...
|
|
230
|
+
def __buffer__(self, flags):
|
|
231
|
+
"""
|
|
232
|
+
Return a buffer object that exposes the underlying memory of the object.
|
|
233
|
+
"""
|
|
234
|
+
@typing.overload
|
|
235
|
+
def __getitem__(self, ind: typing.SupportsInt) -> typing.Any:
|
|
236
|
+
"""
|
|
237
|
+
Return value at given position
|
|
238
|
+
"""
|
|
239
|
+
@typing.overload
|
|
240
|
+
def __getitem__(self, inds: slice) -> BaseVector:
|
|
241
|
+
"""
|
|
242
|
+
Return values at given position
|
|
243
|
+
"""
|
|
244
|
+
@typing.overload
|
|
245
|
+
def __getitem__(self, arg0: ngsolve.ngstd.IntRange) -> BaseVector:
|
|
246
|
+
...
|
|
247
|
+
@typing.overload
|
|
248
|
+
def __getitem__(self, arg0: DofRange) -> BaseVector:
|
|
249
|
+
...
|
|
250
|
+
def __getstate__(self) -> tuple:
|
|
251
|
+
...
|
|
252
|
+
@typing.overload
|
|
253
|
+
def __iadd__(self, vec: BaseVector) -> BaseVector:
|
|
254
|
+
...
|
|
255
|
+
@typing.overload
|
|
256
|
+
def __iadd__(self, arg0: ...) -> BaseVector:
|
|
257
|
+
...
|
|
258
|
+
@typing.overload
|
|
259
|
+
def __imul__(self, value: typing.SupportsFloat) -> BaseVector:
|
|
260
|
+
...
|
|
261
|
+
@typing.overload
|
|
262
|
+
def __imul__(self, value: complex) -> BaseVector:
|
|
263
|
+
...
|
|
264
|
+
@typing.overload
|
|
265
|
+
def __init__(self, size: typing.SupportsInt, complex: bool = False, entrysize: typing.SupportsInt = 1) -> None:
|
|
266
|
+
...
|
|
267
|
+
@typing.overload
|
|
268
|
+
def __init__(self, arg0: ...) -> None:
|
|
269
|
+
...
|
|
270
|
+
@typing.overload
|
|
271
|
+
def __init__(self, arg0: typing.Annotated[numpy.typing.ArrayLike, numpy.float64]) -> None:
|
|
272
|
+
...
|
|
273
|
+
@typing.overload
|
|
274
|
+
def __isub__(self, vec: BaseVector) -> BaseVector:
|
|
275
|
+
...
|
|
276
|
+
@typing.overload
|
|
277
|
+
def __isub__(self, arg0: ...) -> BaseVector:
|
|
278
|
+
...
|
|
279
|
+
@typing.overload
|
|
280
|
+
def __itruediv__(self, value: typing.SupportsFloat) -> BaseVector:
|
|
281
|
+
...
|
|
282
|
+
@typing.overload
|
|
283
|
+
def __itruediv__(self, value: complex) -> BaseVector:
|
|
284
|
+
...
|
|
285
|
+
def __len__(self) -> int:
|
|
286
|
+
...
|
|
287
|
+
def __neg__(self) -> ...:
|
|
288
|
+
...
|
|
289
|
+
def __release_buffer__(self, buffer):
|
|
290
|
+
"""
|
|
291
|
+
Release the buffer object that exposes the underlying memory of the object.
|
|
292
|
+
"""
|
|
293
|
+
def __repr__(self) -> str:
|
|
294
|
+
...
|
|
295
|
+
@typing.overload
|
|
296
|
+
def __rmul__(self, arg0: typing.SupportsFloat) -> ...:
|
|
297
|
+
...
|
|
298
|
+
@typing.overload
|
|
299
|
+
def __rmul__(self, arg0: complex) -> ...:
|
|
300
|
+
...
|
|
301
|
+
@typing.overload
|
|
302
|
+
def __setitem__(self, ind: typing.SupportsInt, value: typing.SupportsFloat) -> None:
|
|
303
|
+
"""
|
|
304
|
+
Set value at given position
|
|
305
|
+
"""
|
|
306
|
+
@typing.overload
|
|
307
|
+
def __setitem__(self, ind: typing.SupportsInt, value: complex) -> None:
|
|
308
|
+
"""
|
|
309
|
+
Set value at given position
|
|
310
|
+
"""
|
|
311
|
+
@typing.overload
|
|
312
|
+
def __setitem__(self, inds: slice, value: typing.SupportsFloat) -> None:
|
|
313
|
+
"""
|
|
314
|
+
Set value at given positions
|
|
315
|
+
"""
|
|
316
|
+
@typing.overload
|
|
317
|
+
def __setitem__(self, inds: slice, value: complex) -> None:
|
|
318
|
+
"""
|
|
319
|
+
Set value at given positions
|
|
320
|
+
"""
|
|
321
|
+
@typing.overload
|
|
322
|
+
def __setitem__(self, inds: slice, vec: BaseVector) -> None:
|
|
323
|
+
...
|
|
324
|
+
@typing.overload
|
|
325
|
+
def __setitem__(self, inds: slice, vec: ...) -> None:
|
|
326
|
+
...
|
|
327
|
+
@typing.overload
|
|
328
|
+
def __setitem__(self, inds: DofRange, vec: ...) -> None:
|
|
329
|
+
...
|
|
330
|
+
@typing.overload
|
|
331
|
+
def __setitem__(self, range: ngsolve.ngstd.IntRange, value: typing.SupportsFloat) -> None:
|
|
332
|
+
"""
|
|
333
|
+
Set value for range of indices
|
|
334
|
+
"""
|
|
335
|
+
@typing.overload
|
|
336
|
+
def __setitem__(self, range: ngsolve.ngstd.IntRange, value: complex) -> None:
|
|
337
|
+
"""
|
|
338
|
+
Set value for range of indices
|
|
339
|
+
"""
|
|
340
|
+
@typing.overload
|
|
341
|
+
def __setitem__(self, range: ngsolve.ngstd.IntRange, vec: BaseVector) -> None:
|
|
342
|
+
...
|
|
343
|
+
@typing.overload
|
|
344
|
+
def __setitem__(self, ind: typing.SupportsInt, vec: ngsolve.bla.FlatVectorD) -> None:
|
|
345
|
+
...
|
|
346
|
+
@typing.overload
|
|
347
|
+
def __setitem__(self, ind: typing.SupportsInt, vec: ngsolve.bla.FlatVectorC) -> None:
|
|
348
|
+
...
|
|
349
|
+
@typing.overload
|
|
350
|
+
def __setitem__(self, arg0: pyngcore.pyngcore.BitArray, arg1: BaseVector) -> None:
|
|
351
|
+
...
|
|
352
|
+
@typing.overload
|
|
353
|
+
def __setitem__(self, arg0: pyngcore.pyngcore.BitArray, arg1: typing.SupportsFloat) -> None:
|
|
354
|
+
...
|
|
355
|
+
def __setstate__(self, arg0: tuple) -> None:
|
|
356
|
+
...
|
|
357
|
+
def __str__(self) -> str:
|
|
358
|
+
...
|
|
359
|
+
def __sub__(self, arg0: ...) -> ...:
|
|
360
|
+
...
|
|
361
|
+
@property
|
|
362
|
+
def comm(self) -> pyngcore.pyngcore.MPI_Comm | None:
|
|
363
|
+
...
|
|
364
|
+
@property
|
|
365
|
+
def data(self) -> BaseVector:
|
|
366
|
+
...
|
|
367
|
+
@data.setter
|
|
368
|
+
def data(self, arg1: ...) -> None:
|
|
369
|
+
...
|
|
370
|
+
@property
|
|
371
|
+
def is_complex(self) -> bool:
|
|
372
|
+
...
|
|
373
|
+
@property
|
|
374
|
+
def local_vec(self) -> BaseVector:
|
|
375
|
+
...
|
|
376
|
+
@property
|
|
377
|
+
def size(self) -> int:
|
|
378
|
+
...
|
|
379
|
+
class BlockMatrix(BaseMatrix):
|
|
380
|
+
def __getitem__(self, inds: tuple) -> BaseMatrix:
|
|
381
|
+
"""
|
|
382
|
+
Return value at given position
|
|
383
|
+
"""
|
|
384
|
+
def __init__(self, mats: collections.abc.Sequence[collections.abc.Sequence[BaseMatrix]]) -> None:
|
|
385
|
+
"""
|
|
386
|
+
Make BlockMatrix with given array of matrices
|
|
387
|
+
"""
|
|
388
|
+
@property
|
|
389
|
+
def col_nblocks(self) -> int:
|
|
390
|
+
...
|
|
391
|
+
@property
|
|
392
|
+
def row_nblocks(self) -> int:
|
|
393
|
+
...
|
|
394
|
+
class BlockSmoother(BaseMatrix):
|
|
395
|
+
"""
|
|
396
|
+
block Jacobi and block Gauss-Seidel smoothing
|
|
397
|
+
"""
|
|
398
|
+
def Smooth(self, x: BaseVector, b: BaseVector, steps: typing.SupportsInt = 1) -> None:
|
|
399
|
+
"""
|
|
400
|
+
performs steps block-Gauss-Seidel iterations for the linear system A x = b
|
|
401
|
+
"""
|
|
402
|
+
def SmoothBack(self, x: BaseVector, b: BaseVector, steps: typing.SupportsInt = 1) -> None:
|
|
403
|
+
"""
|
|
404
|
+
performs steps block-Gauss-Seidel iterations for the linear system A x = b in reverse order
|
|
405
|
+
"""
|
|
406
|
+
class BlockVector(BaseVector):
|
|
407
|
+
def __getitem__(self, ind: typing.SupportsInt) -> BaseVector:
|
|
408
|
+
"""
|
|
409
|
+
Return block at given position
|
|
410
|
+
"""
|
|
411
|
+
def __init__(self, vecs: collections.abc.Sequence[BaseVector]) -> None:
|
|
412
|
+
"""
|
|
413
|
+
Makes BlockVector by given array of vectors
|
|
414
|
+
"""
|
|
415
|
+
@property
|
|
416
|
+
def nblocks(self) -> int:
|
|
417
|
+
"""
|
|
418
|
+
number of blocks in BlockVector
|
|
419
|
+
"""
|
|
420
|
+
class ConstEBEMatrix(BaseMatrix):
|
|
421
|
+
def __init__(self, h: typing.SupportsInt, w: typing.SupportsInt, matrix: ngsolve.bla.MatrixD, col_ind: list, row_ind: list) -> None:
|
|
422
|
+
...
|
|
423
|
+
@property
|
|
424
|
+
def col_ind(self) -> ...:
|
|
425
|
+
...
|
|
426
|
+
@property
|
|
427
|
+
def mat(self) -> ngsolve.bla.FlatMatrixD:
|
|
428
|
+
...
|
|
429
|
+
@property
|
|
430
|
+
def row_ind(self) -> ...:
|
|
431
|
+
...
|
|
432
|
+
class CumulationOperator(BaseMatrix):
|
|
433
|
+
def __init__(self, arg0: ParallelDofs) -> None:
|
|
434
|
+
...
|
|
435
|
+
class DiagonalMatrix(BaseMatrix):
|
|
436
|
+
def __init__(self, arg0: BaseVector) -> None:
|
|
437
|
+
...
|
|
438
|
+
class DofRange(ngsolve.ngstd.IntRange):
|
|
439
|
+
pass
|
|
440
|
+
class DynamicVectorExpression:
|
|
441
|
+
def CreateVector(self) -> BaseVector:
|
|
442
|
+
"""
|
|
443
|
+
create vector
|
|
444
|
+
"""
|
|
445
|
+
def Evaluate(self) -> BaseVector:
|
|
446
|
+
"""
|
|
447
|
+
create vector and evaluate expression into it
|
|
448
|
+
"""
|
|
449
|
+
def InnerProduct(self, arg0: BaseVector) -> float:
|
|
450
|
+
...
|
|
451
|
+
def Norm(self) -> float:
|
|
452
|
+
...
|
|
453
|
+
def __add__(self, arg0: DynamicVectorExpression) -> DynamicVectorExpression:
|
|
454
|
+
...
|
|
455
|
+
@typing.overload
|
|
456
|
+
def __init__(self, arg0: BaseVector) -> None:
|
|
457
|
+
...
|
|
458
|
+
@typing.overload
|
|
459
|
+
def __init__(self, arg0: typing.Annotated[numpy.typing.ArrayLike, numpy.float64]) -> None:
|
|
460
|
+
...
|
|
461
|
+
@typing.overload
|
|
462
|
+
def __init__(self, arg0: typing.Annotated[numpy.typing.ArrayLike, numpy.complex128]) -> None:
|
|
463
|
+
...
|
|
464
|
+
def __neg__(self) -> DynamicVectorExpression:
|
|
465
|
+
...
|
|
466
|
+
@typing.overload
|
|
467
|
+
def __rmul__(self, arg0: typing.SupportsFloat) -> DynamicVectorExpression:
|
|
468
|
+
...
|
|
469
|
+
@typing.overload
|
|
470
|
+
def __rmul__(self, arg0: complex) -> DynamicVectorExpression:
|
|
471
|
+
...
|
|
472
|
+
def __sub__(self, arg0: DynamicVectorExpression) -> DynamicVectorExpression:
|
|
473
|
+
...
|
|
474
|
+
class Embedding(BaseMatrix):
|
|
475
|
+
def __init__(self, height: typing.SupportsInt, range: ngsolve.ngstd.IntRange, complex: bool = False) -> None:
|
|
476
|
+
"""
|
|
477
|
+
Linear operator embedding a shorter vector into a longer vector
|
|
478
|
+
"""
|
|
479
|
+
def __matmul__(self, mat: BaseMatrix) -> BaseMatrix:
|
|
480
|
+
...
|
|
481
|
+
class EmbeddingTranspose(BaseMatrix):
|
|
482
|
+
def __rmatmul__(self, mat: BaseMatrix) -> BaseMatrix:
|
|
483
|
+
...
|
|
484
|
+
class FETI_Jump(BaseMatrix):
|
|
485
|
+
"""
|
|
486
|
+
B-matrix of the FETI-system
|
|
487
|
+
"""
|
|
488
|
+
@typing.overload
|
|
489
|
+
def __init__(self, pardofs: ParallelDofs) -> None:
|
|
490
|
+
...
|
|
491
|
+
@typing.overload
|
|
492
|
+
def __init__(self, pardofs: ParallelDofs, u_pardofs: ParallelDofs) -> None:
|
|
493
|
+
...
|
|
494
|
+
@property
|
|
495
|
+
def col_pardofs(self) -> ParallelDofs:
|
|
496
|
+
...
|
|
497
|
+
@property
|
|
498
|
+
def row_pardofs(self) -> ParallelDofs:
|
|
499
|
+
...
|
|
500
|
+
class IdentityMatrix(BaseMatrix):
|
|
501
|
+
@typing.overload
|
|
502
|
+
def __init__(self) -> None:
|
|
503
|
+
...
|
|
504
|
+
@typing.overload
|
|
505
|
+
def __init__(self, size: typing.SupportsInt, complex: bool = False) -> None:
|
|
506
|
+
...
|
|
507
|
+
class KrylovSpaceSolver(BaseMatrix):
|
|
508
|
+
def GetSteps(self) -> int:
|
|
509
|
+
...
|
|
510
|
+
def SetAbsolutePrecision(self, arg0: typing.SupportsFloat) -> None:
|
|
511
|
+
...
|
|
512
|
+
@property
|
|
513
|
+
def maxsteps(self) -> int:
|
|
514
|
+
...
|
|
515
|
+
@maxsteps.setter
|
|
516
|
+
def maxsteps(self, arg1: typing.SupportsInt) -> None:
|
|
517
|
+
...
|
|
518
|
+
@property
|
|
519
|
+
def tol(self) -> float:
|
|
520
|
+
...
|
|
521
|
+
@tol.setter
|
|
522
|
+
def tol(self, arg1: typing.SupportsFloat) -> None:
|
|
523
|
+
...
|
|
524
|
+
class LoggingMatrix(BaseMatrix):
|
|
525
|
+
def __init__(self, mat: BaseMatrix, label: str, logfile: str = 'stdout', comm: pyngcore.pyngcore.MPI_Comm | None = None) -> None:
|
|
526
|
+
...
|
|
527
|
+
class MultiVector(MultiVectorExpr):
|
|
528
|
+
def Append(self, arg0: BaseVector) -> None:
|
|
529
|
+
...
|
|
530
|
+
def AppendOrthogonalize(self, vec: BaseVector, ipmat: ... = None, parallel: bool = True, iterations: typing.SupportsInt = 2) -> typing.Any:
|
|
531
|
+
"""
|
|
532
|
+
assumes that existing vectors are orthogonal, and orthogonalize new vector against existing vectors
|
|
533
|
+
"""
|
|
534
|
+
def Expand(self, arg0: typing.SupportsInt) -> None:
|
|
535
|
+
"""
|
|
536
|
+
deprecated, use Extend instead
|
|
537
|
+
"""
|
|
538
|
+
def Extend(self, arg0: typing.SupportsInt) -> None:
|
|
539
|
+
...
|
|
540
|
+
@typing.overload
|
|
541
|
+
def InnerProduct(self, other: MultiVector, conjugate: bool = True) -> typing.Any:
|
|
542
|
+
...
|
|
543
|
+
@typing.overload
|
|
544
|
+
def InnerProduct(self, other: BaseVector, conjugate: bool = True) -> typing.Any:
|
|
545
|
+
...
|
|
546
|
+
@typing.overload
|
|
547
|
+
def InnerProduct(self, other: MultiVectorExpr, conjugate: bool = True) -> typing.Any:
|
|
548
|
+
...
|
|
549
|
+
def Orthogonalize(self, ipmat: ... = None) -> typing.Any:
|
|
550
|
+
"""
|
|
551
|
+
Orthogonalize vectors by modified Gram-Schmidt, returns R-factor of QR decomposition (only ipmat version, for the moment)
|
|
552
|
+
"""
|
|
553
|
+
@typing.overload
|
|
554
|
+
def Replace(self, ind: typing.SupportsInt, v2: BaseVector) -> None:
|
|
555
|
+
...
|
|
556
|
+
@typing.overload
|
|
557
|
+
def Replace(self, inds: collections.abc.Sequence[typing.SupportsInt], mv2: MultiVector) -> None:
|
|
558
|
+
...
|
|
559
|
+
@typing.overload
|
|
560
|
+
def __getitem__(self, arg0: typing.SupportsInt) -> BaseVector:
|
|
561
|
+
...
|
|
562
|
+
@typing.overload
|
|
563
|
+
def __getitem__(self, arg0: slice) -> MultiVector:
|
|
564
|
+
...
|
|
565
|
+
@typing.overload
|
|
566
|
+
def __getitem__(self, arg0: pyngcore.pyngcore.Array_I_S) -> MultiVector:
|
|
567
|
+
...
|
|
568
|
+
@typing.overload
|
|
569
|
+
def __getitem__(self, arg0: tuple[slice, slice]) -> MultiVector:
|
|
570
|
+
...
|
|
571
|
+
def __getstate__(self) -> tuple:
|
|
572
|
+
...
|
|
573
|
+
@typing.overload
|
|
574
|
+
def __init__(self, arg0: BaseVector, arg1: typing.SupportsInt) -> None:
|
|
575
|
+
...
|
|
576
|
+
@typing.overload
|
|
577
|
+
def __init__(self, arg0: typing.SupportsInt, arg1: typing.SupportsInt, arg2: bool) -> None:
|
|
578
|
+
...
|
|
579
|
+
def __len__(self) -> int:
|
|
580
|
+
...
|
|
581
|
+
@typing.overload
|
|
582
|
+
def __mul__(self, arg0: ngsolve.bla.VectorD) -> ...:
|
|
583
|
+
...
|
|
584
|
+
@typing.overload
|
|
585
|
+
def __mul__(self, arg0: ngsolve.bla.VectorC) -> ...:
|
|
586
|
+
...
|
|
587
|
+
@typing.overload
|
|
588
|
+
def __mul__(self, arg0: ngsolve.bla.MatrixD) -> MultiVectorExpr:
|
|
589
|
+
...
|
|
590
|
+
@typing.overload
|
|
591
|
+
def __mul__(self, arg0: ngsolve.bla.MatrixC) -> MultiVectorExpr:
|
|
592
|
+
...
|
|
593
|
+
@typing.overload
|
|
594
|
+
def __setitem__(self, arg0: typing.SupportsInt, arg1: ...) -> None:
|
|
595
|
+
...
|
|
596
|
+
@typing.overload
|
|
597
|
+
def __setitem__(self, arg0: typing.SupportsInt, arg1: typing.SupportsFloat) -> None:
|
|
598
|
+
...
|
|
599
|
+
@typing.overload
|
|
600
|
+
def __setitem__(self, arg0: typing.SupportsInt, arg1: complex) -> None:
|
|
601
|
+
...
|
|
602
|
+
@typing.overload
|
|
603
|
+
def __setitem__(self, arg0: slice, arg1: MultiVector) -> None:
|
|
604
|
+
...
|
|
605
|
+
@typing.overload
|
|
606
|
+
def __setitem__(self, arg0: slice, arg1: MultiVectorExpr) -> None:
|
|
607
|
+
...
|
|
608
|
+
@typing.overload
|
|
609
|
+
def __setitem__(self, arg0: collections.abc.Sequence[typing.SupportsInt], arg1: MultiVector) -> None:
|
|
610
|
+
...
|
|
611
|
+
@typing.overload
|
|
612
|
+
def __setitem__(self, arg0: collections.abc.Sequence[typing.SupportsInt], arg1: MultiVectorExpr) -> None:
|
|
613
|
+
...
|
|
614
|
+
def __setstate__(self, arg0: tuple) -> None:
|
|
615
|
+
...
|
|
616
|
+
@property
|
|
617
|
+
def data(self) -> MultiVector:
|
|
618
|
+
...
|
|
619
|
+
@data.setter
|
|
620
|
+
def data(self, arg1: MultiVectorExpr) -> None:
|
|
621
|
+
...
|
|
622
|
+
class MultiVectorExpr:
|
|
623
|
+
def Evaluate(self) -> ...:
|
|
624
|
+
...
|
|
625
|
+
def InnerProduct(self, arg0: typing.Any) -> typing.Any:
|
|
626
|
+
...
|
|
627
|
+
@typing.overload
|
|
628
|
+
def Scale(self, arg0: ngsolve.bla.VectorD) -> MultiVectorExpr:
|
|
629
|
+
...
|
|
630
|
+
@typing.overload
|
|
631
|
+
def Scale(self, arg0: ngsolve.bla.VectorC) -> MultiVectorExpr:
|
|
632
|
+
...
|
|
633
|
+
def __add__(self, arg0: MultiVectorExpr) -> MultiVectorExpr:
|
|
634
|
+
...
|
|
635
|
+
def __neg__(self) -> MultiVectorExpr:
|
|
636
|
+
...
|
|
637
|
+
@typing.overload
|
|
638
|
+
def __rmul__(self, arg0: typing.SupportsFloat) -> MultiVectorExpr:
|
|
639
|
+
...
|
|
640
|
+
@typing.overload
|
|
641
|
+
def __rmul__(self, arg0: complex) -> MultiVectorExpr:
|
|
642
|
+
...
|
|
643
|
+
def __sub__(self, arg0: MultiVectorExpr) -> MultiVectorExpr:
|
|
644
|
+
...
|
|
645
|
+
class PARALLEL_STATUS:
|
|
646
|
+
"""
|
|
647
|
+
enum of possible parallel statuses
|
|
648
|
+
|
|
649
|
+
Members:
|
|
650
|
+
|
|
651
|
+
DISTRIBUTED
|
|
652
|
+
|
|
653
|
+
CUMULATED
|
|
654
|
+
|
|
655
|
+
NOT_PARALLEL
|
|
656
|
+
"""
|
|
657
|
+
CUMULATED: typing.ClassVar[PARALLEL_STATUS] # value = <PARALLEL_STATUS.CUMULATED: 1>
|
|
658
|
+
DISTRIBUTED: typing.ClassVar[PARALLEL_STATUS] # value = <PARALLEL_STATUS.DISTRIBUTED: 0>
|
|
659
|
+
NOT_PARALLEL: typing.ClassVar[PARALLEL_STATUS] # value = <PARALLEL_STATUS.NOT_PARALLEL: 2>
|
|
660
|
+
__members__: typing.ClassVar[dict[str, PARALLEL_STATUS]] # value = {'DISTRIBUTED': <PARALLEL_STATUS.DISTRIBUTED: 0>, 'CUMULATED': <PARALLEL_STATUS.CUMULATED: 1>, 'NOT_PARALLEL': <PARALLEL_STATUS.NOT_PARALLEL: 2>}
|
|
661
|
+
def __eq__(self, other: typing.Any) -> bool:
|
|
662
|
+
...
|
|
663
|
+
def __getstate__(self) -> int:
|
|
664
|
+
...
|
|
665
|
+
def __hash__(self) -> int:
|
|
666
|
+
...
|
|
667
|
+
def __index__(self) -> int:
|
|
668
|
+
...
|
|
669
|
+
def __init__(self, value: typing.SupportsInt) -> None:
|
|
670
|
+
...
|
|
671
|
+
def __int__(self) -> int:
|
|
672
|
+
...
|
|
673
|
+
def __ne__(self, other: typing.Any) -> bool:
|
|
674
|
+
...
|
|
675
|
+
def __repr__(self) -> str:
|
|
676
|
+
...
|
|
677
|
+
def __setstate__(self, state: typing.SupportsInt) -> None:
|
|
678
|
+
...
|
|
679
|
+
def __str__(self) -> str:
|
|
680
|
+
...
|
|
681
|
+
@property
|
|
682
|
+
def name(self) -> str:
|
|
683
|
+
...
|
|
684
|
+
@property
|
|
685
|
+
def value(self) -> int:
|
|
686
|
+
...
|
|
687
|
+
class ParallelDofs:
|
|
688
|
+
def Dof2Proc(self, dof: typing.SupportsInt) -> pyngcore.pyngcore.FlatArray_I_S:
|
|
689
|
+
...
|
|
690
|
+
def EnumerateGlobally(self, freedofs: pyngcore.pyngcore.BitArray = None) -> tuple[typing.Any, typing.Any]:
|
|
691
|
+
...
|
|
692
|
+
def ExchangeProcs(self) -> pyngcore.pyngcore.FlatArray_I_S:
|
|
693
|
+
...
|
|
694
|
+
def MasterDofs(self) -> pyngcore.pyngcore.BitArray:
|
|
695
|
+
...
|
|
696
|
+
def Proc2Dof(self, proc: typing.SupportsInt) -> pyngcore.pyngcore.FlatArray_I_S:
|
|
697
|
+
...
|
|
698
|
+
def SubSet(self, dofs: pyngcore.pyngcore.BitArray) -> ParallelDofs:
|
|
699
|
+
...
|
|
700
|
+
def __init__(self, dist_procs: typing.Any, comm: pyngcore.pyngcore.MPI_Comm) -> None:
|
|
701
|
+
...
|
|
702
|
+
@property
|
|
703
|
+
def comm(self) -> pyngcore.pyngcore.MPI_Comm:
|
|
704
|
+
...
|
|
705
|
+
@property
|
|
706
|
+
def entrysize(self) -> int:
|
|
707
|
+
...
|
|
708
|
+
@property
|
|
709
|
+
def ndofglobal(self) -> int:
|
|
710
|
+
"""
|
|
711
|
+
number of global degrees of freedom
|
|
712
|
+
"""
|
|
713
|
+
@property
|
|
714
|
+
def ndoflocal(self) -> int:
|
|
715
|
+
"""
|
|
716
|
+
number of degrees of freedom
|
|
717
|
+
"""
|
|
718
|
+
class ParallelMatrix(BaseMatrix):
|
|
719
|
+
"""
|
|
720
|
+
MPI-distributed matrix
|
|
721
|
+
"""
|
|
722
|
+
class PARALLEL_OP:
|
|
723
|
+
"""
|
|
724
|
+
enum of possible parallel ops
|
|
725
|
+
|
|
726
|
+
Members:
|
|
727
|
+
|
|
728
|
+
C2C
|
|
729
|
+
|
|
730
|
+
C2D
|
|
731
|
+
|
|
732
|
+
D2C
|
|
733
|
+
|
|
734
|
+
D2D
|
|
735
|
+
"""
|
|
736
|
+
C2C: typing.ClassVar[ParallelMatrix.PARALLEL_OP] # value = <PARALLEL_OP.C2C: 3>
|
|
737
|
+
C2D: typing.ClassVar[ParallelMatrix.PARALLEL_OP] # value = <PARALLEL_OP.C2D: 2>
|
|
738
|
+
D2C: typing.ClassVar[ParallelMatrix.PARALLEL_OP] # value = <PARALLEL_OP.D2C: 1>
|
|
739
|
+
D2D: typing.ClassVar[ParallelMatrix.PARALLEL_OP] # value = <PARALLEL_OP.D2D: 0>
|
|
740
|
+
__members__: typing.ClassVar[dict[str, ParallelMatrix.PARALLEL_OP]] # value = {'C2C': <PARALLEL_OP.C2C: 3>, 'C2D': <PARALLEL_OP.C2D: 2>, 'D2C': <PARALLEL_OP.D2C: 1>, 'D2D': <PARALLEL_OP.D2D: 0>}
|
|
741
|
+
def __eq__(self, other: typing.Any) -> bool:
|
|
742
|
+
...
|
|
743
|
+
def __getstate__(self) -> int:
|
|
744
|
+
...
|
|
745
|
+
def __hash__(self) -> int:
|
|
746
|
+
...
|
|
747
|
+
def __index__(self) -> int:
|
|
748
|
+
...
|
|
749
|
+
def __init__(self, value: typing.SupportsInt) -> None:
|
|
750
|
+
...
|
|
751
|
+
def __int__(self) -> int:
|
|
752
|
+
...
|
|
753
|
+
def __ne__(self, other: typing.Any) -> bool:
|
|
754
|
+
...
|
|
755
|
+
def __repr__(self) -> str:
|
|
756
|
+
...
|
|
757
|
+
def __setstate__(self, state: typing.SupportsInt) -> None:
|
|
758
|
+
...
|
|
759
|
+
def __str__(self) -> str:
|
|
760
|
+
...
|
|
761
|
+
@property
|
|
762
|
+
def name(self) -> str:
|
|
763
|
+
...
|
|
764
|
+
@property
|
|
765
|
+
def value(self) -> int:
|
|
766
|
+
...
|
|
767
|
+
C2C: typing.ClassVar[ParallelMatrix.PARALLEL_OP] # value = <PARALLEL_OP.C2C: 3>
|
|
768
|
+
C2D: typing.ClassVar[ParallelMatrix.PARALLEL_OP] # value = <PARALLEL_OP.C2D: 2>
|
|
769
|
+
D2C: typing.ClassVar[ParallelMatrix.PARALLEL_OP] # value = <PARALLEL_OP.D2C: 1>
|
|
770
|
+
D2D: typing.ClassVar[ParallelMatrix.PARALLEL_OP] # value = <PARALLEL_OP.D2D: 0>
|
|
771
|
+
@typing.overload
|
|
772
|
+
def __init__(self, mat: BaseMatrix, pardofs: ParallelDofs, op: ParallelMatrix.PARALLEL_OP = ...) -> None:
|
|
773
|
+
...
|
|
774
|
+
@typing.overload
|
|
775
|
+
def __init__(self, mat: BaseMatrix, row_pardofs: ParallelDofs, col_pardofs: ParallelDofs, op: ParallelMatrix.PARALLEL_OP = ...) -> None:
|
|
776
|
+
...
|
|
777
|
+
@property
|
|
778
|
+
def col_pardofs(self) -> ParallelDofs:
|
|
779
|
+
...
|
|
780
|
+
@property
|
|
781
|
+
def local_mat(self) -> BaseMatrix:
|
|
782
|
+
...
|
|
783
|
+
@property
|
|
784
|
+
def op_type(self) -> ParallelMatrix.PARALLEL_OP:
|
|
785
|
+
...
|
|
786
|
+
@property
|
|
787
|
+
def row_pardofs(self) -> ParallelDofs:
|
|
788
|
+
...
|
|
789
|
+
class PermutationMatrix(BaseMatrix):
|
|
790
|
+
def __init__(self, w: typing.SupportsInt, ind: collections.abc.Sequence[typing.SupportsInt]) -> None:
|
|
791
|
+
...
|
|
792
|
+
class ProductMatrix(BaseMatrix):
|
|
793
|
+
@property
|
|
794
|
+
def matA(self) -> BaseMatrix:
|
|
795
|
+
...
|
|
796
|
+
@property
|
|
797
|
+
def matB(self) -> BaseMatrix:
|
|
798
|
+
...
|
|
799
|
+
class Projector(BaseMatrix):
|
|
800
|
+
@typing.overload
|
|
801
|
+
def Project(self, arg0: BaseVector) -> BaseVector:
|
|
802
|
+
"""
|
|
803
|
+
project vector inline
|
|
804
|
+
"""
|
|
805
|
+
@typing.overload
|
|
806
|
+
def Project(self, arg0: MultiVector) -> MultiVector:
|
|
807
|
+
"""
|
|
808
|
+
project vector inline
|
|
809
|
+
"""
|
|
810
|
+
def __init__(self, mask: pyngcore.pyngcore.BitArray, range: bool) -> None:
|
|
811
|
+
"""
|
|
812
|
+
Linear operator projecting to true/false bits of BitArray mask, depending on argument range
|
|
813
|
+
"""
|
|
814
|
+
class QMRSolverC(BaseMatrix):
|
|
815
|
+
pass
|
|
816
|
+
class QMRSolverD(BaseMatrix):
|
|
817
|
+
pass
|
|
818
|
+
class Real2ComplexMatrix(BaseMatrix):
|
|
819
|
+
def __init__(self, arg0: BaseMatrix) -> None:
|
|
820
|
+
...
|
|
821
|
+
class S_BaseMatrixC(BaseMatrix):
|
|
822
|
+
"""
|
|
823
|
+
base sparse matrix
|
|
824
|
+
"""
|
|
825
|
+
class S_BaseMatrixD(BaseMatrix):
|
|
826
|
+
"""
|
|
827
|
+
base sparse matrix
|
|
828
|
+
"""
|
|
829
|
+
class ScaleMatrix(BaseMatrix):
|
|
830
|
+
@property
|
|
831
|
+
def mat(self) -> BaseMatrix:
|
|
832
|
+
...
|
|
833
|
+
class Smoother(BaseMatrix):
|
|
834
|
+
"""
|
|
835
|
+
Jacobi and Gauss-Seidel smoothing
|
|
836
|
+
"""
|
|
837
|
+
def Smooth(self, x: BaseVector, b: BaseVector, steps: typing.SupportsInt = 1) -> None:
|
|
838
|
+
"""
|
|
839
|
+
performs one step Gauss-Seidel iteration for the linear system A x = b
|
|
840
|
+
"""
|
|
841
|
+
def SmoothBack(self, x: BaseVector, b: BaseVector, steps: typing.SupportsInt = 1) -> None:
|
|
842
|
+
"""
|
|
843
|
+
performs one step Gauss-Seidel iteration for the linear system A x = b in reverse order
|
|
844
|
+
"""
|
|
845
|
+
class SparseCholesky_c(SparseFactorization):
|
|
846
|
+
def __getstate__(self) -> tuple:
|
|
847
|
+
...
|
|
848
|
+
def __setstate__(self, arg0: tuple) -> None:
|
|
849
|
+
...
|
|
850
|
+
class SparseCholesky_d(SparseFactorization):
|
|
851
|
+
def __getstate__(self) -> tuple:
|
|
852
|
+
...
|
|
853
|
+
def __setstate__(self, arg0: tuple) -> None:
|
|
854
|
+
...
|
|
855
|
+
class SparseFactorization(BaseMatrix):
|
|
856
|
+
def Smooth(self, arg0: BaseVector, arg1: BaseVector) -> None:
|
|
857
|
+
"""
|
|
858
|
+
perform smoothing step (needs non-symmetric storage so symmetric sparse matrix)
|
|
859
|
+
"""
|
|
860
|
+
class SparseMatrixDynamic(BaseMatrix):
|
|
861
|
+
def __init__(self, arg0: BaseMatrix) -> None:
|
|
862
|
+
...
|
|
863
|
+
class SparseMatrixN5ngbla3MatILi2ELi2ENSt3__17complexIdEEEE(BaseSparseMatrix):
|
|
864
|
+
"""
|
|
865
|
+
a sparse matrix in CSR storage
|
|
866
|
+
"""
|
|
867
|
+
@staticmethod
|
|
868
|
+
def CreateFromCOO(*args, **kwargs) -> ...:
|
|
869
|
+
...
|
|
870
|
+
@staticmethod
|
|
871
|
+
def CreateFromElmat(col_ind: list, row_ind: list, matrices: list, h: typing.SupportsInt, w: typing.SupportsInt) -> SparseMatrixd:
|
|
872
|
+
...
|
|
873
|
+
def COO(self) -> typing.Any:
|
|
874
|
+
...
|
|
875
|
+
def CSR(self) -> typing.Any:
|
|
876
|
+
...
|
|
877
|
+
def CreateTranspose(self) -> BaseSparseMatrix:
|
|
878
|
+
"""
|
|
879
|
+
Return transposed matrix
|
|
880
|
+
"""
|
|
881
|
+
def __getitem__(self, pos: tuple) -> ngsolve.bla.Mat2C:
|
|
882
|
+
"""
|
|
883
|
+
Return value at given position
|
|
884
|
+
"""
|
|
885
|
+
@typing.overload
|
|
886
|
+
def __matmul__(self: SparseMatrixd, mat: SparseMatrixd) -> ...:
|
|
887
|
+
...
|
|
888
|
+
@typing.overload
|
|
889
|
+
def __matmul__(self: SparseMatrixNSt3__17complexIdEE, mat: SparseMatrixNSt3__17complexIdEE) -> BaseMatrix:
|
|
890
|
+
...
|
|
891
|
+
@typing.overload
|
|
892
|
+
def __matmul__(self, mat: BaseMatrix) -> BaseMatrix:
|
|
893
|
+
...
|
|
894
|
+
def __setitem__(self, pos: tuple, value: ngsolve.bla.Mat2C) -> None:
|
|
895
|
+
"""
|
|
896
|
+
Set value at given position
|
|
897
|
+
"""
|
|
898
|
+
@property
|
|
899
|
+
def entrysizes(self) -> tuple[int, int]:
|
|
900
|
+
...
|
|
901
|
+
class SparseMatrixN5ngbla3MatILi2ELi2EdEE(BaseSparseMatrix):
|
|
902
|
+
"""
|
|
903
|
+
a sparse matrix in CSR storage
|
|
904
|
+
"""
|
|
905
|
+
@staticmethod
|
|
906
|
+
def CreateFromCOO(*args, **kwargs) -> ...:
|
|
907
|
+
...
|
|
908
|
+
@staticmethod
|
|
909
|
+
def CreateFromElmat(col_ind: list, row_ind: list, matrices: list, h: typing.SupportsInt, w: typing.SupportsInt) -> SparseMatrixd:
|
|
910
|
+
...
|
|
911
|
+
def COO(self) -> typing.Any:
|
|
912
|
+
...
|
|
913
|
+
def CSR(self) -> typing.Any:
|
|
914
|
+
...
|
|
915
|
+
def CreateTranspose(self) -> BaseSparseMatrix:
|
|
916
|
+
"""
|
|
917
|
+
Return transposed matrix
|
|
918
|
+
"""
|
|
919
|
+
def __getitem__(self, pos: tuple) -> ngsolve.bla.Mat2D:
|
|
920
|
+
"""
|
|
921
|
+
Return value at given position
|
|
922
|
+
"""
|
|
923
|
+
@typing.overload
|
|
924
|
+
def __matmul__(self: SparseMatrixd, mat: SparseMatrixd) -> ...:
|
|
925
|
+
...
|
|
926
|
+
@typing.overload
|
|
927
|
+
def __matmul__(self: SparseMatrixNSt3__17complexIdEE, mat: SparseMatrixNSt3__17complexIdEE) -> BaseMatrix:
|
|
928
|
+
...
|
|
929
|
+
@typing.overload
|
|
930
|
+
def __matmul__(self, mat: BaseMatrix) -> BaseMatrix:
|
|
931
|
+
...
|
|
932
|
+
def __setitem__(self, pos: tuple, value: ngsolve.bla.Mat2D) -> None:
|
|
933
|
+
"""
|
|
934
|
+
Set value at given position
|
|
935
|
+
"""
|
|
936
|
+
@property
|
|
937
|
+
def entrysizes(self) -> tuple[int, int]:
|
|
938
|
+
...
|
|
939
|
+
class SparseMatrixN5ngbla3MatILi3ELi3ENSt3__17complexIdEEEE(BaseSparseMatrix):
|
|
940
|
+
"""
|
|
941
|
+
a sparse matrix in CSR storage
|
|
942
|
+
"""
|
|
943
|
+
@staticmethod
|
|
944
|
+
def CreateFromCOO(*args, **kwargs) -> ...:
|
|
945
|
+
...
|
|
946
|
+
@staticmethod
|
|
947
|
+
def CreateFromElmat(col_ind: list, row_ind: list, matrices: list, h: typing.SupportsInt, w: typing.SupportsInt) -> SparseMatrixd:
|
|
948
|
+
...
|
|
949
|
+
def COO(self) -> typing.Any:
|
|
950
|
+
...
|
|
951
|
+
def CSR(self) -> typing.Any:
|
|
952
|
+
...
|
|
953
|
+
def CreateTranspose(self) -> BaseSparseMatrix:
|
|
954
|
+
"""
|
|
955
|
+
Return transposed matrix
|
|
956
|
+
"""
|
|
957
|
+
def __getitem__(self, pos: tuple) -> ngsolve.bla.Mat3C:
|
|
958
|
+
"""
|
|
959
|
+
Return value at given position
|
|
960
|
+
"""
|
|
961
|
+
@typing.overload
|
|
962
|
+
def __matmul__(self: SparseMatrixd, mat: SparseMatrixd) -> ...:
|
|
963
|
+
...
|
|
964
|
+
@typing.overload
|
|
965
|
+
def __matmul__(self: SparseMatrixNSt3__17complexIdEE, mat: SparseMatrixNSt3__17complexIdEE) -> BaseMatrix:
|
|
966
|
+
...
|
|
967
|
+
@typing.overload
|
|
968
|
+
def __matmul__(self, mat: BaseMatrix) -> BaseMatrix:
|
|
969
|
+
...
|
|
970
|
+
def __setitem__(self, pos: tuple, value: ngsolve.bla.Mat3C) -> None:
|
|
971
|
+
"""
|
|
972
|
+
Set value at given position
|
|
973
|
+
"""
|
|
974
|
+
@property
|
|
975
|
+
def entrysizes(self) -> tuple[int, int]:
|
|
976
|
+
...
|
|
977
|
+
class SparseMatrixN5ngbla3MatILi3ELi3EdEE(BaseSparseMatrix):
|
|
978
|
+
"""
|
|
979
|
+
a sparse matrix in CSR storage
|
|
980
|
+
"""
|
|
981
|
+
@staticmethod
|
|
982
|
+
def CreateFromCOO(*args, **kwargs) -> ...:
|
|
983
|
+
...
|
|
984
|
+
@staticmethod
|
|
985
|
+
def CreateFromElmat(col_ind: list, row_ind: list, matrices: list, h: typing.SupportsInt, w: typing.SupportsInt) -> SparseMatrixd:
|
|
986
|
+
...
|
|
987
|
+
def COO(self) -> typing.Any:
|
|
988
|
+
...
|
|
989
|
+
def CSR(self) -> typing.Any:
|
|
990
|
+
...
|
|
991
|
+
def CreateTranspose(self) -> BaseSparseMatrix:
|
|
992
|
+
"""
|
|
993
|
+
Return transposed matrix
|
|
994
|
+
"""
|
|
995
|
+
def __getitem__(self, pos: tuple) -> ngsolve.bla.Mat3D:
|
|
996
|
+
"""
|
|
997
|
+
Return value at given position
|
|
998
|
+
"""
|
|
999
|
+
@typing.overload
|
|
1000
|
+
def __matmul__(self: SparseMatrixd, mat: SparseMatrixd) -> ...:
|
|
1001
|
+
...
|
|
1002
|
+
@typing.overload
|
|
1003
|
+
def __matmul__(self: SparseMatrixNSt3__17complexIdEE, mat: SparseMatrixNSt3__17complexIdEE) -> BaseMatrix:
|
|
1004
|
+
...
|
|
1005
|
+
@typing.overload
|
|
1006
|
+
def __matmul__(self, mat: BaseMatrix) -> BaseMatrix:
|
|
1007
|
+
...
|
|
1008
|
+
def __setitem__(self, pos: tuple, value: ngsolve.bla.Mat3D) -> None:
|
|
1009
|
+
"""
|
|
1010
|
+
Set value at given position
|
|
1011
|
+
"""
|
|
1012
|
+
@property
|
|
1013
|
+
def entrysizes(self) -> tuple[int, int]:
|
|
1014
|
+
...
|
|
1015
|
+
class SparseMatrixNSt3__17complexIdEE(BaseSparseMatrix):
|
|
1016
|
+
"""
|
|
1017
|
+
a sparse matrix in CSR storage
|
|
1018
|
+
"""
|
|
1019
|
+
@staticmethod
|
|
1020
|
+
def CreateFromCOO(*args, **kwargs) -> ...:
|
|
1021
|
+
...
|
|
1022
|
+
@staticmethod
|
|
1023
|
+
def CreateFromElmat(col_ind: list, row_ind: list, matrices: list, h: typing.SupportsInt, w: typing.SupportsInt) -> SparseMatrixd:
|
|
1024
|
+
...
|
|
1025
|
+
def COO(self) -> typing.Any:
|
|
1026
|
+
...
|
|
1027
|
+
def CSR(self) -> typing.Any:
|
|
1028
|
+
...
|
|
1029
|
+
def CreateTranspose(self) -> BaseSparseMatrix:
|
|
1030
|
+
"""
|
|
1031
|
+
Return transposed matrix
|
|
1032
|
+
"""
|
|
1033
|
+
def __getitem__(self, pos: tuple) -> complex:
|
|
1034
|
+
"""
|
|
1035
|
+
Return value at given position
|
|
1036
|
+
"""
|
|
1037
|
+
@typing.overload
|
|
1038
|
+
def __matmul__(self: SparseMatrixd, mat: SparseMatrixd) -> ...:
|
|
1039
|
+
...
|
|
1040
|
+
@typing.overload
|
|
1041
|
+
def __matmul__(self, mat: SparseMatrixNSt3__17complexIdEE) -> BaseMatrix:
|
|
1042
|
+
...
|
|
1043
|
+
@typing.overload
|
|
1044
|
+
def __matmul__(self, mat: BaseMatrix) -> BaseMatrix:
|
|
1045
|
+
...
|
|
1046
|
+
def __setitem__(self, pos: tuple, value: complex) -> None:
|
|
1047
|
+
"""
|
|
1048
|
+
Set value at given position
|
|
1049
|
+
"""
|
|
1050
|
+
@property
|
|
1051
|
+
def entrysizes(self) -> tuple[int, int]:
|
|
1052
|
+
...
|
|
1053
|
+
class SparseMatrixSymmetricN5ngbla3MatILi2ELi2ENSt3__17complexIdEEEE(SparseMatrixN5ngbla3MatILi2ELi2ENSt3__17complexIdEEEE):
|
|
1054
|
+
pass
|
|
1055
|
+
class SparseMatrixSymmetricN5ngbla3MatILi2ELi2EdEE(SparseMatrixN5ngbla3MatILi2ELi2EdEE):
|
|
1056
|
+
pass
|
|
1057
|
+
class SparseMatrixSymmetricN5ngbla3MatILi3ELi3ENSt3__17complexIdEEEE(SparseMatrixN5ngbla3MatILi3ELi3ENSt3__17complexIdEEEE):
|
|
1058
|
+
pass
|
|
1059
|
+
class SparseMatrixSymmetricN5ngbla3MatILi3ELi3EdEE(SparseMatrixN5ngbla3MatILi3ELi3EdEE):
|
|
1060
|
+
pass
|
|
1061
|
+
class SparseMatrixSymmetricNSt3__17complexIdEE(SparseMatrixNSt3__17complexIdEE):
|
|
1062
|
+
pass
|
|
1063
|
+
class SparseMatrixSymmetricd(SparseMatrixd):
|
|
1064
|
+
pass
|
|
1065
|
+
class SparseMatrixVariableBlocks(BaseMatrix):
|
|
1066
|
+
def __init__(self, arg0: BaseMatrix) -> None:
|
|
1067
|
+
...
|
|
1068
|
+
class SparseMatrixd(BaseSparseMatrix):
|
|
1069
|
+
"""
|
|
1070
|
+
a sparse matrix in CSR storage
|
|
1071
|
+
"""
|
|
1072
|
+
@staticmethod
|
|
1073
|
+
def CreateFromCOO(indi: pyngcore.pyngcore.Array_I_S, indj: pyngcore.pyngcore.Array_I_S, values: pyngcore.pyngcore.Array_D_S, h: typing.SupportsInt, w: typing.SupportsInt) -> ...:
|
|
1074
|
+
...
|
|
1075
|
+
@staticmethod
|
|
1076
|
+
def CreateFromElmat(col_ind: list, row_ind: list, matrices: list, h: typing.SupportsInt, w: typing.SupportsInt) -> SparseMatrixd:
|
|
1077
|
+
...
|
|
1078
|
+
def COO(self) -> typing.Any:
|
|
1079
|
+
...
|
|
1080
|
+
def CSR(self) -> typing.Any:
|
|
1081
|
+
...
|
|
1082
|
+
def CreateTranspose(self) -> BaseSparseMatrix:
|
|
1083
|
+
"""
|
|
1084
|
+
Return transposed matrix
|
|
1085
|
+
"""
|
|
1086
|
+
def __getitem__(self, pos: tuple) -> float:
|
|
1087
|
+
"""
|
|
1088
|
+
Return value at given position
|
|
1089
|
+
"""
|
|
1090
|
+
@typing.overload
|
|
1091
|
+
def __matmul__(self, mat: SparseMatrixd) -> ...:
|
|
1092
|
+
...
|
|
1093
|
+
@typing.overload
|
|
1094
|
+
def __matmul__(self: ..., std: ..., std: ..., mat: ..., std: ..., std: ...) -> BaseMatrix:
|
|
1095
|
+
...
|
|
1096
|
+
@typing.overload
|
|
1097
|
+
def __matmul__(self, mat: BaseMatrix) -> BaseMatrix:
|
|
1098
|
+
...
|
|
1099
|
+
def __setitem__(self, pos: tuple, value: typing.SupportsFloat) -> None:
|
|
1100
|
+
"""
|
|
1101
|
+
Set value at given position
|
|
1102
|
+
"""
|
|
1103
|
+
@property
|
|
1104
|
+
def entrysizes(self) -> tuple[int, int]:
|
|
1105
|
+
...
|
|
1106
|
+
class SumMatrix(BaseMatrix):
|
|
1107
|
+
@property
|
|
1108
|
+
def matA(self) -> BaseMatrix:
|
|
1109
|
+
...
|
|
1110
|
+
@property
|
|
1111
|
+
def matB(self) -> BaseMatrix:
|
|
1112
|
+
...
|
|
1113
|
+
class SymmetricBlockGaussSeidelPreconditioner(BaseMatrix):
|
|
1114
|
+
pass
|
|
1115
|
+
class SymmetricGaussSeidelPreconditioner(BaseMatrix):
|
|
1116
|
+
pass
|
|
1117
|
+
class TransposeMatrix(BaseMatrix):
|
|
1118
|
+
@property
|
|
1119
|
+
def mat(self) -> BaseMatrix:
|
|
1120
|
+
...
|
|
1121
|
+
def ArnoldiSolver(mata: BaseMatrix, matm: BaseMatrix, freedofs: pyngcore.pyngcore.BitArray, vecs: list, shift: complex = ..., inverse: str | None = None) -> ngsolve.bla.VectorC:
|
|
1122
|
+
"""
|
|
1123
|
+
Shift-and-invert Arnoldi eigenvalue solver
|
|
1124
|
+
|
|
1125
|
+
Solves the generalized linear EVP A*u = M*lam*u using an Arnoldi iteration for the
|
|
1126
|
+
shifted EVP (A-shift*M)^(-1)*M*u = lam*u with a Krylow space of dimension 2*len(vecs)+1.
|
|
1127
|
+
len(vecs) eigenpairs with the closest eigenvalues to the shift are returned.
|
|
1128
|
+
|
|
1129
|
+
Parameters:
|
|
1130
|
+
|
|
1131
|
+
mata : ngsolve.la.BaseMatrix
|
|
1132
|
+
matrix A
|
|
1133
|
+
|
|
1134
|
+
matm : ngsolve.la.BaseMatrix
|
|
1135
|
+
matrix M
|
|
1136
|
+
|
|
1137
|
+
freedofs : nsolve.ngstd.BitArray
|
|
1138
|
+
correct degrees of freedom
|
|
1139
|
+
|
|
1140
|
+
vecs : list
|
|
1141
|
+
list of BaseVectors for writing eigenvectors
|
|
1142
|
+
|
|
1143
|
+
shift : object
|
|
1144
|
+
complex or real shift
|
|
1145
|
+
"""
|
|
1146
|
+
def CGSolver(mat: BaseMatrix, pre: BaseMatrix, complex: bool = False, printrates: bool = True, precision: typing.SupportsFloat = 1e-08, maxsteps: typing.SupportsInt = 200, conjugate: bool = False, maxiter: typing.SupportsInt | None = None) -> KrylovSpaceSolver:
|
|
1147
|
+
"""
|
|
1148
|
+
A CG Solver.
|
|
1149
|
+
|
|
1150
|
+
Parameters:
|
|
1151
|
+
|
|
1152
|
+
mat : ngsolve.la.BaseMatrix
|
|
1153
|
+
input matrix
|
|
1154
|
+
|
|
1155
|
+
pre : ngsolve.la.BaseMatrix
|
|
1156
|
+
input preconditioner matrix
|
|
1157
|
+
|
|
1158
|
+
complex : bool
|
|
1159
|
+
input complex, if not set it is deduced from matrix type
|
|
1160
|
+
|
|
1161
|
+
printrates : bool
|
|
1162
|
+
input printrates
|
|
1163
|
+
|
|
1164
|
+
precision : float
|
|
1165
|
+
input requested precision. CGSolver stops if precision is reached.
|
|
1166
|
+
|
|
1167
|
+
maxsteps : int
|
|
1168
|
+
input maximal steps. CGSolver stops after this steps.
|
|
1169
|
+
"""
|
|
1170
|
+
def ChebyshevIteration(mat: BaseMatrix = None, pre: BaseMatrix = None, steps: typing.SupportsInt = 3, lam_min: typing.SupportsFloat = 1, lam_max: typing.SupportsFloat = 1) -> BaseMatrix:
|
|
1171
|
+
...
|
|
1172
|
+
def CreateParallelVector(pardofs: ParallelDofs, status: PARALLEL_STATUS) -> ...:
|
|
1173
|
+
...
|
|
1174
|
+
def CreateVVector(size: typing.SupportsInt, complex: bool = False, entrysize: typing.SupportsInt = 1) -> ...:
|
|
1175
|
+
...
|
|
1176
|
+
def DoArchive(arg0: ngsolve.ngstd.Archive, arg1: BaseMatrix) -> ngsolve.ngstd.Archive:
|
|
1177
|
+
...
|
|
1178
|
+
def EigenValues_Preconditioner(mat: BaseMatrix, pre: BaseMatrix, tol: typing.SupportsFloat = 1e-10) -> ngsolve.bla.VectorD:
|
|
1179
|
+
"""
|
|
1180
|
+
Calculate eigenvalues of pre * mat, where pre and mat are positive definite matrices.
|
|
1181
|
+
The typical usecase of this function is to calculate the condition number of a preconditioner.It uses the Lanczos algorithm and bisection for the tridiagonal matrix
|
|
1182
|
+
"""
|
|
1183
|
+
def GMRESSolver(mat: BaseMatrix, pre: BaseMatrix, printrates: bool = True, precision: typing.SupportsFloat = 1e-08, maxsteps: typing.SupportsInt = 200) -> KrylovSpaceSolver:
|
|
1184
|
+
"""
|
|
1185
|
+
A General Minimal Residuum (GMRES) Solver.
|
|
1186
|
+
|
|
1187
|
+
Parameters:
|
|
1188
|
+
|
|
1189
|
+
mat : ngsolve.la.BaseMatrix
|
|
1190
|
+
input matrix
|
|
1191
|
+
|
|
1192
|
+
pre : ngsolve.la.BaseMatrix
|
|
1193
|
+
input preconditioner matrix
|
|
1194
|
+
|
|
1195
|
+
printrates : bool
|
|
1196
|
+
input printrates
|
|
1197
|
+
|
|
1198
|
+
precision : float
|
|
1199
|
+
input requested precision. GMRESSolver stops if precision is reached.
|
|
1200
|
+
|
|
1201
|
+
maxsteps : int
|
|
1202
|
+
input maximal steps. GMRESSolver stops after this steps.
|
|
1203
|
+
"""
|
|
1204
|
+
def GetAvailableSolvers() -> list:
|
|
1205
|
+
...
|
|
1206
|
+
def InnerProduct(x: typing.Any, y: typing.Any, **kwargs) -> typing.Any:
|
|
1207
|
+
"""
|
|
1208
|
+
Computes InnerProduct of given objects
|
|
1209
|
+
"""
|
|
1210
|
+
def QMRSolver(mat: BaseMatrix, pre: BaseMatrix, printrates: bool = True, precision: typing.SupportsFloat = 1e-08, maxsteps: typing.SupportsInt = 200) -> KrylovSpaceSolver:
|
|
1211
|
+
"""
|
|
1212
|
+
A Quasi Minimal Residuum (QMR) Solver.
|
|
1213
|
+
|
|
1214
|
+
Parameters:
|
|
1215
|
+
|
|
1216
|
+
mat : ngsolve.la.BaseMatrix
|
|
1217
|
+
input matrix
|
|
1218
|
+
|
|
1219
|
+
pre : ngsolve.la.BaseMatrix
|
|
1220
|
+
input preconditioner matrix
|
|
1221
|
+
|
|
1222
|
+
printrates : bool
|
|
1223
|
+
input printrates
|
|
1224
|
+
|
|
1225
|
+
precision : float
|
|
1226
|
+
input requested precision. QMRSolver stops if precision is reached.
|
|
1227
|
+
|
|
1228
|
+
maxsteps : int
|
|
1229
|
+
input maximal steps. QMRSolver stops after this steps.
|
|
1230
|
+
"""
|