matrix¶
The matrix module defines an abstract Matrix
object and several
implementations. Matrix objects support basic addition and subtraction
operations and provide a consistent insterface for solving linear systems.
Matrices can be converted into other forms suitable for external processing via
the export
method.
-
exception
nutils.matrix.
MatrixError
¶ Bases:
Exception
General error message for matrix-related failure.
-
__weakref__
¶ list of weak references to the object (if defined)
-
-
exception
nutils.matrix.
BackendNotAvailable
¶ Bases:
nutils.matrix.MatrixError
Error message reporting that the selected matrix backend is not available on the system.
-
exception
nutils.matrix.
ToleranceNotReached
(best)¶ Bases:
nutils.matrix.MatrixError
Error message reporting that the configured linear solver tolerance was not reached. The
.best
attribute carries the non-conforming solution.
-
class
nutils.matrix.
Backend
¶ Bases:
object
backend base class
-
abstract
assemble
(self, data, index, shape)¶ Assemble a (sparse) matrix based on index-value pairs.
Note
This function is abstract.
-
__weakref__
¶ list of weak references to the object (if defined)
-
abstract
-
class
nutils.matrix.
Matrix
(shape)¶ Bases:
object
matrix base class
-
abstract
__add__
(self, other)¶ add two matrices
-
abstract
__mul__
(self, other)¶ multiply matrix with a scalar
-
abstract
__matmul__
(self, other)¶ multiply matrix with a dense tensor
-
abstract
__neg__
(self)¶ negate matrix
-
abstract property
T
¶ transpose matrix
-
rowsupp
(self, tol=0)¶ return row indices with nonzero/non-small entries
-
solve
(self, rhs=None, *, lhs0=None, constrain=None, rconstrain=None, solver='direct', atol=0.0, rtol=0.0, **solverargs)¶ Solve system given right hand side vector and/or constraints.
- Parameters
rhs (
float
vector orNone
) – Right hand side vector. None implies all zeros.lhs0 (class:float vector or
None
) – Initial values. None implies all zeros.constrain (
float
orbool
array, orNone
) – Column constraints. For float values, a number signifies a constraint, NaN signifies a free dof. For boolean, a True value signifies a constraint to the value in lhs0, a False value signifies a free dof. None implies no constraints.rconstrain (
bool
array orNone
) – Row constrains. A True value signifies a constrains, a False value a free dof. None implies that the constraints follow those defined in constrain (by implication the matrix must be square).solver (
str
) – Name of the solver algorithm. The set of available solvers depends on the type of the matrix (i.e. the active backend), although all matrices should implement at least the ‘direct’ solver.**kwargs – All remaining arguments are passed on to the selected solver method.
- Returns
Left hand side vector.
- Return type
-
solve_leniently
(self, *args, **kwargs)¶ Identical to
nutils.matrix.Matrix.solve()
, but emit a warning in case tolerances are not met rather than an exception, while returning the obtained solution vector.
-
abstract
submatrix
(self, rows, cols)¶ Create submatrix from selected rows, columns.
-
export
(self, form)¶ Export matrix data to any of supported forms.
- Parameters
form (
str
) –“dense” : return matrix as a single dense array
”csr” : return matrix as 3-tuple of (data, indices, indptr)
”coo” : return matrix as 2-tuple of (data, (row, col))
-
__weakref__
¶ list of weak references to the object (if defined)
-
abstract
-
class
nutils.matrix.
Numpy
¶ Bases:
nutils.matrix.Backend
matrix backend based on numpy array
-
class
nutils.matrix.
NumpyMatrix
(core)¶ Bases:
nutils.matrix.Matrix
matrix based on numpy array
-
class
nutils.matrix.
Scipy
¶ Bases:
nutils.matrix.Backend
matrix backend based on scipy’s sparse matrices
-
class
nutils.matrix.
ScipyMatrix
(core, scipy)¶ Bases:
nutils.matrix.Matrix
matrix based on any of scipy’s sparse matrices
-
class
nutils.matrix.
MKL
(threading=None)¶ Bases:
nutils.matrix.Backend
matrix backend based on Intel’s Math Kernel Library
-
class
nutils.matrix.
Pardiso
(libmkl)¶ Bases:
object
simple wrapper for libmkl.pardiso
https://software.intel.com/en-us/mkl-developer-reference-c-pardiso
-
__weakref__
¶ list of weak references to the object (if defined)
-
-
class
nutils.matrix.
MKLMatrix
(data, rowptr, colidx, ncols, libmkl)¶ Bases:
nutils.matrix.Matrix
matrix implementation based on sorted coo data