jaxdf.conv
The conv
module contains some functions behind the numerical implementation of Finite Differences operators and related functionality.
bubble_sort_abs_value(points_list)
Sorts a sequence of grid points by their absolute value.
Sorting is done in place. This function is written with numpy, so it can't be transformed by JAX.
Example
lst = [-3, -2, -1, 0, 1, 2, 3]
sorted_lst = bubble_sort_abs_value(lst)
print(sorted_lst)
# [0, 1, -1, 2, -2, 3, -3]
Parameters:
Name | Type | Description | Default |
---|---|---|---|
points_list |
List[Union[float, int]]
|
The grid points to sort. |
required |
Returns:
Type | Description |
---|---|
List[Union[float, int]]
|
The sorted grid points. |
Source code in jaxdf/conv.py
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
|
fd_coefficients_fornberg(order, grid_points, x0)
Generate finite difference stencils for a given order and grid points, using the Fornberg algorithm described in [Fornberg, 2018].
The grid points can be placed in any order, can be at arbitrary locations (for example, to implemente staggered
stencils) and don't need to be equidistant.
The stencil is evaluated for a point in x0
. Note that setting order=0
will generate interpolation coefficients
for the point x0
.
Example
grid_points = [0, 1, 2, -1, -2]
x0 = 0.0
order = 2
stencil, nodes = fd_coefficients_fornberg(order, grid_points, x0)
print(f"Stencil: {stencil}, Nodes: {nodes}")
# Stencil: [-0.08333333 1.33333333 -2.5 1.33333333 -0.08333333], Nodes: [-2 -1 0 1 2]
Parameters:
Name | Type | Description | Default |
---|---|---|---|
order |
int
|
The order of the stencil. |
required |
grid_points |
List[Union[float, int]]
|
The grid points to use. |
required |
x0 |
Union[float, int]
|
The point at which to evaluate the stencil. |
required |
Returns:
Type | Description |
---|---|
Tuple[List[None], List[Union[float, int]]]
|
The stencil and the grid points where the stencil is evaluated. |
Source code in jaxdf/conv.py
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
|
reflection_conv(kernel, array, reverse=True)
Convolves an array with a kernel, using reflection padding. The kernel is supposed to have the same number of dimensions as the array.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
kernel |
ndarray
|
The kernel to convolve with. |
required |
array |
ndarray
|
The array to convolve. |
required |
reverse |
bool
|
Whether to reverse the kernel before convolving. Defaults to True. |
True
|
Returns:
Type | Description |
---|---|
ndarray
|
The convolved array. |
Source code in jaxdf/conv.py
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|