salvus.mesh.algorithms.spherical
salvus.mesh.algorithms.spherical salvus mesh algorithms spherical Cubed sphere mesh generation following Ronchi et al. (1996).
Functions
cubed_sphere_chunk_on_unit_sphere()
cubed_sphere_chunk_on_unit_sphere()def cubed_sphere_chunk_on_unit_sphere(
euler_angles_in_degrees: typing.Sequence[float] | npt.NDArray,
chunk_dim_1: EquiAzimuthalGrid | AzimuthalGrid,
chunk_dim_2: EquiAzimuthalGrid | AzimuthalGrid | None = None,
) -> tuple[npt.NDArray, npt.NDArray, npt.NDArray]: ...Generate a point cloud for a spherical chunk on a unit sphere.
euler_angles_in_degreestyping.Sequence[float] | npt.NDArray — Euler angles to use for rotation of the chunk consecutively around z, y and z axis in degrees.chunk_dim_1EquiAzimuthalGrid | AzimuthalGrid — Dimensions of the spherical chunk along the first axis.chunk_dim_2EquiAzimuthalGrid | AzimuthalGrid | None — Dimensions of the spherical chunk along the second axis. If not provided, the values of the first dimension will be copied.
euler_angles_from_chunk_id()
euler_angles_from_chunk_id()def euler_angles_from_chunk_id(
chunk_id: salvus._core.types.int_,
) -> npt.NDArray: ...Utility to compute Euler angles from the id of the cubed sphere chunk.
For details, see Fig. 3 in Ronchi et al. (1996).
chunk_idsalvus._core.types.int_ — Number of the chunk following the numbering convention of Ronchi et al.
map_cartesian_grid_to_sphere()
map_cartesian_grid_to_sphere()def map_cartesian_grid_to_sphere(
spherical_chunk_grid: SphericalChunkGrid,
euler_angles_in_degrees: (
typing.Sequence[salvus._core.types.float_] | npt.NDArray | None
) = None,
) -> tuple[npt.NDArray, npt.NDArray, npt.NDArray]: ...Morph a rectilinear grid in Cartesian coordinates to a cubed sphere.
spherical_chunk_gridSphericalChunkGrid — Dimensions and discretization of the grid.euler_angles_in_degreestyping.Sequence[salvus._core.types.float_] | npt.NDArray | None — Euler angles to use for rotation of the chunk consecutively around z, y and z axis in degrees.
Classes
AzimuthalGrid
AzimuthalGridclass AzimuthalGrid(salvus.mesh.algorithms.spherical._AzimuthalGridBase):
def __init__(
self,
min_angle_in_degrees: salvus._core.types.float_ | None = None,
max_angle_in_degrees: salvus._core.types.float_ | None = None,
grid_points: npt.NDArray,
) -> None: ...Class for specifying the discretization of a spherical chunk in one azimuthal dimension.
min_angle_in_degreessalvus._core.types.float_ | None — Lower bound of the angular range. Defaults to the negative maximum angle if not provided.max_angle_in_degreessalvus._core.types.float_ | None — Upper bound of the angular range. Defaults to 45 degress if not provided.grid_pointsnpt.NDArray — Array of grid points to be projected onto the azimuthal arc.
get_grid_points_on_arc()
get_grid_points_on_arc()def get_grid_points_on_arc(self) -> npt.NDArray: ...Return the array of grid points projected onto the azimuthal arc.
max_angle_in_radians()
max_angle_in_radians()def max_angle_in_radians(self) -> float: ...Return the maximum angle in radians.
If the angle in degrees is not set, the method defaults to pi/4.
min_angle_in_radians()
min_angle_in_radians()def min_angle_in_radians(self) -> float: ...Return the maximum angle in radians.
If the angle in degrees is not set, the method defaults to -max angle.
number_of_grid_points()
number_of_grid_points()def number_of_grid_points(self) -> int: ...Return the number of grid points on the arc.
EquiAzimuthalGrid
EquiAzimuthalGridclass EquiAzimuthalGrid(salvus.mesh.algorithms.spherical._AzimuthalGridBase):
def __init__(
self,
min_angle_in_degrees: salvus._core.types.float_ | None = None,
max_angle_in_degrees: salvus._core.types.float_ | None = None,
number_of_elements: salvus._core.types.int_,
) -> None: ...Class for specifying the discretization of a spherical chunk in one azimuthal dimension.
min_angle_in_degreessalvus._core.types.float_ | None — Lower bound of the angular range. Defaults to the negative maximum angle if not provided.max_angle_in_degreessalvus._core.types.float_ | None — Upper bound of the angular range. Defaults to 45 degress if not provided.number_of_elementssalvus._core.types.int_ — The number of elements per dimension.
get_grid_points_on_arc()
get_grid_points_on_arc()def get_grid_points_on_arc(self) -> npt.NDArray: ...Return an equiangular array of grid points on the azimuthal arc.
max_angle_in_radians()
max_angle_in_radians()def max_angle_in_radians(self) -> float: ...Return the maximum angle in radians.
If the angle in degrees is not set, the method defaults to pi/4.
min_angle_in_radians()
min_angle_in_radians()def min_angle_in_radians(self) -> float: ...Return the maximum angle in radians.
If the angle in degrees is not set, the method defaults to -max angle.
number_of_grid_points()
number_of_grid_points()def number_of_grid_points(self) -> salvus._core.types.int_: ...Return the number of grid points on the arc.
to_azimuthal_grid()
to_azimuthal_grid()def to_azimuthal_grid(self, grid_points: npt.NDArray) -> AzimuthalGrid: ...Return an azimuthal grid with the same dimensions and a new set of grid points.
grid_pointsnpt.NDArray — Array of grid points to be projected onto the azimuthal arc.
EquidistantRadialGrid
EquidistantRadialGridclass EquidistantRadialGrid(builtins.object):
def __init__(
self,
min_radius: float,
max_radius: float,
number_of_elements: salvus._core.types.int_ | npt.NDArray,
) -> None: ...Class for specifying the discretization of a spherical chunk in radial direction using an equidistantly spacing.
min_radiusfloat — Lower bound of the radial range.max_radiusfloat — Upper bound of the radial range.number_of_elementssalvus._core.types.int_ | npt.NDArray — Number of elements in radial direction.
grid_points npt.NDArray
grid_points npt.NDArrayArray of grid points to be projected onto the spherical chunk in the radial dimension.
RadialGrid
RadialGridclass RadialGrid(builtins.object):
def __init__(self, grid_points: npt.NDArray) -> None: ...Class for specifying the discretization of a spherical chunk in radial directoin.
The radial discretization can either be specified
grid_pointsnpt.NDArray — Array of grid points to be projected onto the spherical chunk in the radial dimension.
max_radius float
max_radius floatUpper bound of the radial range.
min_radius float
min_radius floatLower bound of the radial range.
number_of_elements salvus._core.types.int_
number_of_elements salvus._core.types.int_Number of elements in radial direction.
SphericalChunkDimensions
SphericalChunkDimensionsclass SphericalChunkDimensions(builtins.object):
def __init__(
self,
radial_grid: RadialGrid | EquidistantRadialGrid,
chunk_dim_1: EquiAzimuthalGrid,
chunk_dim_2: EquiAzimuthalGrid | None = None,
) -> None: ...Class for specifying the discretization of a spherical chunk in one azimuthal dimension.
radial_gridRadialGrid | EquidistantRadialGrid — Discretization of the spherical chunk in radial direction.chunk_dim_1EquiAzimuthalGrid — Discretization of the spherical chunk in the first azimuthal dimension.chunk_dim_2EquiAzimuthalGrid | None — Discretization of the spherical chunk in the second azimuthal dimension.
SphericalChunkGrid
SphericalChunkGridclass SphericalChunkGrid(builtins.object):
def __init__(
self,
grid_points_radius: npt.NDArray,
min_radius_in_meters: float = 0.5,
max_radius_in_meters: float = 1.0,
chunk_dim_1: AzimuthalGrid,
chunk_dim_2: AzimuthalGrid,
) -> None: ...Class for specifying the discretization of a spherical chunk in one azimuthal dimension.
grid_points_radiusnpt.NDArray — Array of grid points to be projected onto the spherical chunk in the radial dimension.min_radius_in_metersfloat — Lower bound of the radial range. Defaults to 0.5 if not provided.max_radius_in_metersfloat — Upper bound of the radial range. Defaults to 1.0 if not provided.chunk_dim_1AzimuthalGrid — Discretization of the spherical chunk in the first azimuthal dimension.chunk_dim_2AzimuthalGrid — Discretization of the spherical chunk in the second azimuthal dimension.
get_radial_grid_points()
get_radial_grid_points()def get_radial_grid_points(self) -> npt.NDArray: ...Return the array of grid points projected onto the range of radii.
get_shape()
get_shape()def get_shape(self) -> tuple: ...Return the shape of the rectilinear grid.