Concatenations#
- class pybamm.Concatenation(*children: Symbol, name: str | None = None, check_domain=True, concat_fun=None)[source]#
A node in the expression tree representing a concatenation of symbols.
- Parameters:
children (iterable of
pybamm.Symbol) – The symbols to concatenate
Extends:
pybamm.expression_tree.symbol.Symbol- create_copy(new_children: list[Symbol] | None = None, perform_simplifications: bool = True)[source]#
See
pybamm.Symbol.new_copy().
- evaluate(t: float | None = None, y: ndarray[tuple[Any, ...], dtype[float64]] | None = None, y_dot: ndarray[tuple[Any, ...], dtype[float64]] | None = None, inputs: dict | str | None = None)[source]#
- get_children_domains(children: Sequence[Symbol])[source]#
Combine domains from children, at all levels.
- class pybamm.NumpyConcatenation(*children: Symbol)[source]#
A node in the expression tree representing a concatenation of equations, when we don’t care about domains. The class
pybamm.DomainConcatenation, which is careful about domains and uses broadcasting where appropriate, should be used whenever possible instead.Upon evaluation, equations are concatenated using numpy concatenation.
- Parameters:
children (iterable of
pybamm.Symbol) – The equations to concatenate
Extends:
pybamm.expression_tree.concatenations.Concatenation
- class pybamm.DomainConcatenation(children: Sequence[Symbol], full_mesh: Mesh, copy_this: DomainConcatenation | None = None)[source]#
A node in the expression tree representing a concatenation of symbols, being careful about domains.
It is assumed that each child has a domain, and the final concatenated vector will respect the sizes and ordering of domains established in mesh keys
- Parameters:
children (iterable of
pybamm.Symbol) – The symbols to concatenatefull_mesh (
pybamm.Mesh) – The underlying mesh for discretisation, used to obtain the number of mesh points in each domain.copy_this (
pybamm.DomainConcatenation(optional)) – if provided, this class is initialised by copying everything except the children from copy_this. mesh is not used in this case
Extends:
pybamm.expression_tree.concatenations.Concatenation
- class pybamm.SparseStack(*children, name='sparse_stack')[source]#
A node in the expression tree representing a concatenation of sparse matrices. As with NumpyConcatenation, we don’t care about domains. The class
pybamm.DomainConcatenation, which is careful about domains and uses broadcasting where appropriate, should be used whenever possible instead.- Parameters:
children (iterable of
Concatenation) – The equations to concatenate
Extends:
pybamm.expression_tree.concatenations.Concatenation