pybamm.
SpatialMethod
(mesh)[source]¶A general spatial methods class, with default (trivial) behaviour for some spatial operations. All spatial methods will follow the general form of SpatialMethod in that they contain a method for broadcasting variables onto a mesh, a gradient operator, and a diverence operator.
Parameters:  mesh – Contains all the submeshes for discretisation 

boundary_integral
(child, discretised_child, region)[source]¶Implements the boundary integral for a spatial method.
Parameters: 


Returns:  Contains the result of acting the discretised boundary integral on the child discretised_symbol 
Return type:  class: pybamm.Array 
boundary_value_or_flux
(symbol, discretised_child)[source]¶Returns the boundary value or flux using the approriate expression for the spatial method. To do this, we create a sparse vector ‘bv_vector’ that extracts either the first (for side=”left”) or last (for side=”right”) point from ‘discretised_child’.
Parameters: 


Returns:  The variable representing the surface value. 
Return type: 
broadcast
(symbol, domain, auxiliary_domains, broadcast_type)[source]¶Broadcast symbol to a specified domain.
Parameters: 


Returns:  broadcasted_symbol – The discretised symbol of the correct size for the spatial method 
Return type:  class: pybamm.Symbol 
concatenation
(disc_children)[source]¶Discrete concatenation object.
Parameters:  disc_children (list) – List of discretised children 

Returns:  Concatenation of the discretised children 
Return type:  pybamm.DomainConcatenation 
delta_function
(symbol, discretised_symbol)[source]¶Implements the delta function on the approriate side for a spatial method.
Parameters: 


divergence
(symbol, discretised_symbol, boundary_conditions)[source]¶Implements the divergence for a spatial method.
Parameters: 


Returns:  Contains the result of acting the discretised divergence on the child discretised_symbol 
Return type:  class: pybamm.Array 
gradient
(symbol, discretised_symbol, boundary_conditions)[source]¶Implements the gradient for a spatial method.
Parameters: 


Returns:  Contains the result of acting the discretised gradient on the child discretised_symbol 
Return type:  class: pybamm.Array 
gradient_squared
(symbol, discretised_symbol, boundary_conditions)[source]¶Implements the inner product of the gradient with itself for a spatial method.
Parameters: 


Returns:  Contains the result of taking the inner product of the result of acting the discretised gradient on the child discretised_symbol with itself 
Return type:  class: pybamm.Array 
indefinite_integral
(child, discretised_child)[source]¶Implements the indefinite integral for a spatial method.
Parameters: 


Returns:  Contains the result of acting the discretised indefinite integral on the child discretised_symbol 
Return type:  class: pybamm.Array 
integral
(child, discretised_child)[source]¶Implements the integral for a spatial method.
Parameters: 


Returns:  Contains the result of acting the discretised integral on the child discretised_symbol 
Return type:  class: pybamm.Array 
internal_neumann_condition
(left_symbol_disc, right_symbol_disc, left_mesh, right_mesh)[source]¶A method to find the internal neumann conditions between two symbols on adjacent subdomains.
Parameters: 


laplacian
(symbol, discretised_symbol, boundary_conditions)[source]¶Implements the laplacian for a spatial method.
Parameters: 


Returns:  Contains the result of acting the discretised laplacian on the child discretised_symbol 
Return type:  class: pybamm.Array 
mass_matrix
(symbol, boundary_conditions)[source]¶Calculates the mass matrix for a spatial method.
Parameters: 


Returns:  The (sparse) mass matrix for the spatial method. 
Return type: 
process_binary_operators
(bin_op, left, right, disc_left, disc_right)[source]¶Discretise binary operators in model equations. Default behaviour is to return a new binary operator with the discretised children.
Parameters: 


Returns:  Discretised binary operator 
Return type: 
spatial_variable
(symbol)[source]¶Convert a pybamm.SpatialVariable
node to a linear algebra object that
can be evaluated (here, a pybamm.Vector
on either the nodes or the
edges).
Parameters:  symbol (pybamm.SpatialVariable ) – The spatial variable to be discretised. 

Returns:  Contains the discretised spatial variable 
Return type:  pybamm.Vector 