4.2.3.4 pde.grids.operators.polar_sym module

This module implements differential operators on polar grids.

make_laplace

Make a discretized laplace operator for a polar grid.

make_gradient

Make a discretized gradient operator for a polar grid.

make_divergence

Make a discretized divergence operator for a polar grid.

make_vector_gradient

Make a discretized vector gradient operator for a polar grid.

make_tensor_divergence

Make a discretized tensor divergence operator for a polar grid.

make_poisson_solver

Make a operator that solves Poisson's equation.

make_divergence(grid)[source]

Make a discretized divergence operator for a polar grid.

The polar grid assumes polar 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 (PolarSymGrid) – The polar grid for which this operator will be defined

Returns:

A function that can be applied to an array of values

Return type:

OperatorType

make_gradient(grid, *, method='central')[source]

Make a discretized gradient operator for a polar grid.

The polar grid assumes polar 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 (PolarSymGrid) – The polar grid for which this operator will be defined

  • 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:

OperatorType

make_gradient_squared(grid, *, central=True)[source]

Make a discretized gradient squared operator for a polar grid.

The polar grid assumes polar 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 (PolarSymGrid) – The polar grid for which this operator will be defined

  • central (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:

OperatorType

make_laplace(grid)[source]

Make a discretized laplace operator for a polar grid.

The polar grid assumes polar 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 (PolarSymGrid) – The polar grid for which this operator will be defined

Returns:

A function that can be applied to an array of values

Return type:

OperatorType

make_poisson_solver(bcs, *, method='auto')[source]

Make a operator that solves Poisson’s equation.

The polar grid assumes polar 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:
  • bcs (BoundariesList) – Specifies the boundary conditions applied to the field. This must be an instance of BoundariesList, which can be created from various data formats using the class method from_data().

  • method (str) – The chosen method for implementing the operator

Returns:

A function that can be applied to an array of values

Return type:

OperatorType

make_tensor_divergence(grid)[source]

Make a discretized tensor divergence operator for a polar grid.

The polar grid assumes polar 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 (PolarSymGrid) – The polar grid for which this operator will be defined

Returns:

A function that can be applied to an array of values

Return type:

OperatorType

make_vector_gradient(grid)[source]

Make a discretized vector gradient operator for a polar grid.

The polar grid assumes polar 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 (PolarSymGrid) – The polar grid for which this operator will be defined

Returns:

A function that can be applied to an array of values

Return type:

OperatorType