4.1.2.1.5 pde.backends.numba.operators.spherical_sym module
This module implements differential operators on spherical grids.
Make a discretized laplace operator for a spherical grid. |
|
Make a discretized gradient operator for a spherical grid. |
|
Make a discretized gradient squared operator for a spherical grid. |
|
Make a discretized divergence operator for a spherical grid. |
|
Make a discretized vector gradient operator for a spherical grid. |
|
Make a discretized tensor divergence operator for a spherical grid. |
|
Make a discretized tensor double divergence operator for a spherical grid. |
- make_divergence(grid, *, backend=None, safe=None, conservative=None, method='central')[source]
Make a discretized divergence operator for a spherical grid.
The spherical grid assumes spherical symmetry, so that fields only depend on the radial coordinate r. The radial discretization is defined as \(r_i = r_\mathrm{min} + (i + \frac12) \Delta r\) for \(i=0, \ldots, N_r-1\), where \(r_\mathrm{min}\) is the radius of the inner boundary, which is zero by default. Note that the radius of the outer boundary is given by \(r_\mathrm{max} = r_\mathrm{min} + N_r \Delta r\).
Warning
This operator ignores the θ-component of the field when calculating the divergence. This is because the resulting scalar field could not be expressed on a
SphericalSymGrid.- Parameters:
grid (
SphericalSymGrid) – The polar grid for which this operator will be definedbackend (
NumbaBackend) – References to the backend to read configuration detailssafe (bool) – Add extra checks for the validity of the input. If None. the value is read from the configuration option operators.tensor_symmetry_check.
conservative (bool) – Flag indicating whether the operator should be conservative (which results in slightly slower computations). Conservative operators ensure mass conservation. If None, the value is read from the configuration option operators.conservative_stencil.
method (str) – The method for calculating the derivative. Possible values are ‘central’, ‘forward’, and ‘backward’.
- Returns:
A function that can be applied to an array of values
- Return type:
OperatorImplType
- make_gradient(grid, *, backend=None, method='central')[source]
Make a discretized gradient operator for a spherical grid.
The spherical grid assumes spherical symmetry, so that fields only depend on the radial coordinate r. The radial discretization is defined as \(r_i = r_\mathrm{min} + (i + \frac12) \Delta r\) for \(i=0, \ldots, N_r-1\), where \(r_\mathrm{min}\) is the radius of the inner boundary, which is zero by default. Note that the radius of the outer boundary is given by \(r_\mathrm{max} = r_\mathrm{min} + N_r \Delta r\).
- Parameters:
grid (
SphericalSymGrid) – The spherical grid for which this operator will be definedbackend (
NumbaBackend) – References to the backend to read configuration detailsmethod (str) – The method for calculating the derivative. Possible values are ‘central’, ‘forward’, and ‘backward’.
- Returns:
A function that can be applied to an array of values
- Return type:
OperatorImplType
- make_gradient_squared(grid, *, backend=None, central=True)[source]
Make a discretized gradient squared operator for a spherical grid.
The spherical grid assumes spherical symmetry, so that fields only depend on the radial coordinate r. The radial discretization is defined as \(r_i = r_\mathrm{min} + (i + \frac12) \Delta r\) for \(i=0, \ldots, N_r-1\), where \(r_\mathrm{min}\) is the radius of the inner boundary, which is zero by default. Note that the radius of the outer boundary is given by \(r_\mathrm{max} = r_\mathrm{min} + N_r \Delta r\).
- Parameters:
grid (
SphericalSymGrid) – The spherical grid for which this operator will be definedbackend (
NumbaBackend) – References to the backend to read configuration detailscentral (bool) – Whether a central difference approximation is used for the gradient operator. If this is False, the squared gradient is calculated as the mean of the squared values of the forward and backward derivatives.
- Returns:
A function that can be applied to an array of values
- Return type:
OperatorImplType
- make_laplace(grid, *, backend=None, conservative=None)[source]
Make a discretized laplace operator for a spherical grid.
The spherical grid assumes spherical symmetry, so that fields only depend on the radial coordinate r. The radial discretization is defined as \(r_i = r_\mathrm{min} + (i + \frac12) \Delta r\) for \(i=0, \ldots, N_r-1\), where \(r_\mathrm{min}\) is the radius of the inner boundary, which is zero by default. Note that the radius of the outer boundary is given by \(r_\mathrm{max} = r_\mathrm{min} + N_r \Delta r\).
- Parameters:
grid (
SphericalSymGrid) – The spherical grid for which this operator will be definedbackend (
NumbaBackend) – References to the backend to read configuration detailsconservative (bool) – Flag indicating whether the laplace operator should be conservative (which results in slightly slower computations). Conservative operators ensure mass conservation. If None, the value is read from the configuration option operators.conservative_stencil.
- Returns:
A function that can be applied to an array of values
- Return type:
OperatorImplType
- make_tensor_divergence(grid, *, backend=None, safe=None, conservative=False)[source]
Make a discretized tensor divergence operator for a spherical grid.
The spherical grid assumes spherical symmetry, so that fields only depend on the radial coordinate r. The radial discretization is defined as \(r_i = r_\mathrm{min} + (i + \frac12) \Delta r\) for \(i=0, \ldots, N_r-1\), where \(r_\mathrm{min}\) is the radius of the inner boundary, which is zero by default. Note that the radius of the outer boundary is given by \(r_\mathrm{max} = r_\mathrm{min} + N_r \Delta r\).
- Parameters:
grid (
SphericalSymGrid) – The spherical grid for which this operator will be definedbackend (
NumbaBackend) – References to the backend to read configuration detailssafe (bool) – Add extra checks for the validity of the input. If None. the value is read from the configuration option operators.tensor_symmetry_check.
conservative (bool) – Flag indicating whether the operator should be conservative (which results in slightly slower computations). Conservative operators ensure mass conservation. If None, the value is read from the configuration option operators.conservative_stencil.
- Returns:
A function that can be applied to an array of values
- Return type:
OperatorImplType
- make_tensor_double_divergence(grid, *, backend=None, safe=None, conservative=None)[source]
Make a discretized tensor double divergence operator for a spherical grid.
The spherical grid assumes spherical symmetry, so that fields only depend on the radial coordinate r. The radial discretization is defined as \(r_i = r_\mathrm{min} + (i + \frac12) \Delta r\) for \(i=0, \ldots, N_r-1\), where \(r_\mathrm{min}\) is the radius of the inner boundary, which is zero by default. Note that the radius of the outer boundary is given by \(r_\mathrm{max} = r_\mathrm{min} + N_r \Delta r\).
- Parameters:
grid (
SphericalSymGrid) – The spherical grid for which this operator will be definedbackend (
NumbaBackend) – References to the backend to read configuration detailssafe (bool) – Add extra checks for the validity of the input. If None. the value is read from the configuration option operators.tensor_symmetry_check.
conservative (bool) – Flag indicating whether the operator should be conservative (which results in slightly slower computations). Conservative operators ensure mass conservation. If None, the value is read from the configuration option operators.conservative_stencil.
- Returns:
A function that can be applied to an array of values
- Return type:
OperatorImplType
- make_vector_gradient(grid, *, backend=None, method='central', safe=None)[source]
Make a discretized vector gradient operator for a spherical grid.
Warning
This operator ignores the two angular components of the field when calculating the gradient. This is because the resulting field could not be expressed on a
SphericalSymGrid.The spherical grid assumes spherical symmetry, so that fields only depend on the radial coordinate r. The radial discretization is defined as \(r_i = r_\mathrm{min} + (i + \frac12) \Delta r\) for \(i=0, \ldots, N_r-1\), where \(r_\mathrm{min}\) is the radius of the inner boundary, which is zero by default. Note that the radius of the outer boundary is given by \(r_\mathrm{max} = r_\mathrm{min} + N_r \Delta r\).
- Parameters:
grid (
SphericalSymGrid) – The spherical grid for which this operator will be definedbackend (
NumbaBackend) – References to the backend to read configuration detailsmethod (str) – The method for calculating the derivative. Possible values are ‘central’, ‘forward’, and ‘backward’.
safe (bool) – Add extra checks for the validity of the input. If None. the value is read from the configuration option operators.tensor_symmetry_check.
- Returns:
A function that can be applied to an array of values
- Return type:
OperatorImplType