Version:

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()

Generate a point cloud for a spherical chunk on a unit sphere.
SIGNATURE
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]: ...
ARGUMENTS
Required
euler_angles_in_degrees
Type:typing.Sequence[float] | npt.NDArray
Description:
Euler angles to use for rotation of the chunk consecutively around z, y and z axis in degrees.
Required
chunk_dim_1
Type:EquiAzimuthalGrid | AzimuthalGrid
Description:
Dimensions of the spherical chunk along the first axis.
Optional
chunk_dim_2
Type:EquiAzimuthalGrid | AzimuthalGrid | None
Default value:None
Description:
Dimensions of the spherical chunk along the second axis. If not provided, the values of the first dimension will be copied.
RETURNS
Return type: tuple[npt.NDArray, npt.NDArray, npt.NDArray]

euler_angles_from_chunk_id()

Utility to compute Euler angles from the id of the cubed sphere chunk.
For details, see Fig. 3 in Ronchi et al. (1996).
SIGNATURE
def euler_angles_from_chunk_id(
    chunk_id: salvus._core.types.int_,
) -> npt.NDArray: ...
ARGUMENTS
Required
chunk_id
Type:salvus._core.types.int_
Description:
Number of the chunk following the numbering convention of Ronchi et al.
RETURNS
Return type: npt.NDArray

map_cartesian_grid_to_sphere()

Morph a rectilinear grid in Cartesian coordinates to a cubed sphere.
SIGNATURE
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]: ...
ARGUMENTS
Required
spherical_chunk_grid
Type:SphericalChunkGrid
Description:
Dimensions and discretization of the grid.
Optional
euler_angles_in_degrees
Type:typing.Sequence[salvus._core.types.float_] | npt.NDArray | None
Default value:None
Description:
Euler angles to use for rotation of the chunk consecutively around z, y and z axis in degrees.
RETURNS
Return type: tuple[npt.NDArray, npt.NDArray, npt.NDArray]

Classes

AzimuthalGrid

Class for specifying the discretization of a spherical chunk in one azimuthal dimension.
SIGNATURE
class 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: ...
ARGUMENTS
Optional
min_angle_in_degrees
Type:salvus._core.types.float_ | None
Default value:None
Description:
Lower bound of the angular range. Defaults to the negative maximum angle if not provided.
Optional
max_angle_in_degrees
Type:salvus._core.types.float_ | None
Default value:None
Description:
Upper bound of the angular range. Defaults to 45 degress if not provided.
Required
grid_points
Type:npt.NDArray
Description:
Array of grid points to be projected onto the azimuthal arc.

Methods

AzimuthalGrid.get_grid_points_on_arc()
Return the array of grid points projected onto the azimuthal arc.
SIGNATURE
def get_grid_points_on_arc(self) -> npt.NDArray: ...
AzimuthalGrid.max_angle_in_radians()
Return the maximum angle in radians.
If the angle in degrees is not set, the method defaults to pi/4.
SIGNATURE
def max_angle_in_radians(self) -> float: ...
AzimuthalGrid.min_angle_in_radians()
Return the maximum angle in radians.
If the angle in degrees is not set, the method defaults to -max angle.
SIGNATURE
def min_angle_in_radians(self) -> float: ...
AzimuthalGrid.number_of_grid_points()
Return the number of grid points on the arc.
SIGNATURE
def number_of_grid_points(self) -> int: ...

EquiAzimuthalGrid

Class for specifying the discretization of a spherical chunk in one azimuthal dimension.
SIGNATURE
class 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: ...
ARGUMENTS
Optional
min_angle_in_degrees
Type:salvus._core.types.float_ | None
Default value:None
Description:
Lower bound of the angular range. Defaults to the negative maximum angle if not provided.
Optional
max_angle_in_degrees
Type:salvus._core.types.float_ | None
Default value:None
Description:
Upper bound of the angular range. Defaults to 45 degress if not provided.
Required
number_of_elements
Type:salvus._core.types.int_
Description:
The number of elements per dimension.

Methods

EquiAzimuthalGrid.get_grid_points_on_arc()
Return an equiangular array of grid points on the azimuthal arc.
SIGNATURE
def get_grid_points_on_arc(self) -> npt.NDArray: ...
EquiAzimuthalGrid.max_angle_in_radians()
Return the maximum angle in radians.
If the angle in degrees is not set, the method defaults to pi/4.
SIGNATURE
def max_angle_in_radians(self) -> float: ...
EquiAzimuthalGrid.min_angle_in_radians()
Return the maximum angle in radians.
If the angle in degrees is not set, the method defaults to -max angle.
SIGNATURE
def min_angle_in_radians(self) -> float: ...
EquiAzimuthalGrid.number_of_grid_points()
Return the number of grid points on the arc.
SIGNATURE
def number_of_grid_points(self) -> salvus._core.types.int_: ...
EquiAzimuthalGrid.to_azimuthal_grid()
Return an azimuthal grid with the same dimensions and a new set of grid points.
SIGNATURE
def to_azimuthal_grid(self, grid_points: npt.NDArray) -> AzimuthalGrid: ...
ARGUMENTS
Required
grid_points
Type:npt.NDArray
Description:
Array of grid points to be projected onto the azimuthal arc.

EquidistantRadialGrid

Class for specifying the discretization of a spherical chunk in radial direction using an equidistantly spacing.
SIGNATURE
class EquidistantRadialGrid(builtins.object):
    def __init__(
        self,
        min_radius: float,
        max_radius: float,
        number_of_elements: salvus._core.types.int_ | npt.NDArray,
    ) -> None: ...
ARGUMENTS
Required
min_radius
Type:float
Description:
Lower bound of the radial range.
Required
max_radius
Type:float
Description:
Upper bound of the radial range.
Required
number_of_elements
Type:salvus._core.types.int_ | npt.NDArray
Description:
Number of elements in radial direction.

Properties

  • grid_points(npt.NDArray)-Array of grid points to be projected onto the spherical chunk in the radial dimension.

RadialGrid

Class for specifying the discretization of a spherical chunk in radial directoin.
The radial discretization can either be specified
SIGNATURE
class RadialGrid(builtins.object):
    def __init__(self, grid_points: npt.NDArray) -> None: ...
ARGUMENTS
Required
grid_points
Type:npt.NDArray
Description:
Array of grid points to be projected onto the spherical chunk in the radial dimension.

Properties

  • max_radius(float)-Upper bound of the radial range.
  • min_radius(float)-Lower bound of the radial range.
  • number_of_elements(salvus._core.types.int_)-Number of elements in radial direction.

SphericalChunkDimensions

Class for specifying the discretization of a spherical chunk in one azimuthal dimension.
SIGNATURE
class SphericalChunkDimensions(builtins.object):
    def __init__(
        self,
        radial_grid: RadialGrid | EquidistantRadialGrid,
        chunk_dim_1: EquiAzimuthalGrid,
        chunk_dim_2: EquiAzimuthalGrid | None = None,
    ) -> None: ...
ARGUMENTS
Required
radial_grid
Type:RadialGrid | EquidistantRadialGrid
Description:
Discretization of the spherical chunk in radial direction.
Required
chunk_dim_1
Type:EquiAzimuthalGrid
Description:
Discretization of the spherical chunk in the first azimuthal dimension.
Optional
chunk_dim_2
Type:EquiAzimuthalGrid | None
Default value:None
Description:
Discretization of the spherical chunk in the second azimuthal dimension.

SphericalChunkGrid

Class for specifying the discretization of a spherical chunk in one azimuthal dimension.
SIGNATURE
class 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: ...
ARGUMENTS
Required
grid_points_radius
Type:npt.NDArray
Description:
Array of grid points to be projected onto the spherical chunk in the radial dimension.
Optional
min_radius_in_meters
Type:float
Default value:0.5
Description:
Lower bound of the radial range. Defaults to 0.5 if not provided.
Optional
max_radius_in_meters
Type:float
Default value:1.0
Description:
Upper bound of the radial range. Defaults to 1.0 if not provided.
Required
chunk_dim_1
Type:AzimuthalGrid
Description:
Discretization of the spherical chunk in the first azimuthal dimension.
Required
chunk_dim_2
Type:AzimuthalGrid
Description:
Discretization of the spherical chunk in the second azimuthal dimension.

Methods

SphericalChunkGrid.get_radial_grid_points()
Return the array of grid points projected onto the range of radii.
SIGNATURE
def get_radial_grid_points(self) -> npt.NDArray: ...
SphericalChunkGrid.get_shape()
Return the shape of the rectilinear grid.
SIGNATURE
def get_shape(self) -> tuple: ...
PAGE CONTENTS