Source code for pybamm.expression_tree.matrix
#
# Matrix class
#
import numpy as np
from scipy.sparse import csr_matrix, issparse
import pybamm
[docs]class Matrix(pybamm.Array):
"""
Node in the expression tree that holds a matrix type (e.g. :class:`numpy.array`)
"""
def __init__(
self,
entries,
name=None,
domain=None,
auxiliary_domains=None,
domains=None,
entries_string=None,
):
if isinstance(entries, list):
entries = np.array(entries)
if name is None:
name = "Matrix {!s}".format(entries.shape)
if issparse(entries):
name = "Sparse " + name
# Convert all sparse matrices to csr
if issparse(entries) and not isinstance(entries, csr_matrix):
entries = csr_matrix(entries)
super().__init__(
entries, name, domain, auxiliary_domains, domains, entries_string
)