discretize.CylindricalMesh.face_y_divergence#
- property CylindricalMesh.face_y_divergence#
Y-derivative operator (y-faces to cell-centres).
This property constructs a 2nd order y-derivative operator which maps from y-faces to cell centers. The operator is a sparse matrix \(\mathbf{D_y}\) that can be applied as a matrix-vector product to a discrete scalar quantity \(\boldsymbol{\phi}\) that lives on y-faces; i.e.:
dphi_dy = Dy @ phi
For a discrete vector whose y-component lives on y-faces, this operator can also be used to compute the contribution of the y-component toward the divergence.
- Returns
- (
n_cells
,n_faces_y
)scipy.sparse.csr_matrix
The numerical y-derivative operator from y-faces to cell centers
- (
Examples
Below, we demonstrate 1) how to apply the face-y divergence operator, and 2) the mapping of the face-y divergence operator and its sparsity. Our example is carried out on a 2D mesh but it can be done equivalently for a 3D mesh.
We start by importing the necessary packages and modules.
>>> from discretize import TensorMesh >>> import numpy as np >>> import matplotlib.pyplot as plt >>> import matplotlib as mpl
For a discrete scalar quantity \(\boldsymbol{\phi}\) defined on the y-faces, we take the y-derivative by constructing the face-y divergence operator and multiplying as a matrix-vector product.
>>> h = np.ones(40) >>> mesh = TensorMesh([h, h], "CC")
Create a discrete quantity on x-faces
>>> faces_y = mesh.faces_y >>> phi = np.exp(-(faces_y[:, 1] ** 2) / 8** 2)
Construct the y-divergence operator and apply to vector
>>> Dy = mesh.face_y_divergence >>> dphi_dy = Dy @ phi
Plot original function and the y-divergence
(Source code, png, pdf)
The discrete y-face divergence operator is a sparse matrix that maps from y-faces to cell centers. To demonstrate this, we construct a small 2D mesh. We then show the ordering of the elements in the original discrete quantity \(\boldsymbol{\phi}\) and its y-derivative \(\partial \boldsymbol{\phi}/ \partial y\) as well as a spy plot.