Mondaic
This API reference is not for the latest stable Salvus version.

salvus.mesh.mesh_block.mesh_block

Salvus’ mesh block class.

Classes

MeshBlock

class MeshBlock(builtins.object):
    def __init__(
        self,
        x: numpy.ndarray,
        y: numpy.ndarray,
        z: Optional[numpy.ndarray] = None,
        mask: Optional[numpy.ndarray] = None,
        elemental_fields: Optional[Dict[str, numpy.ndarray]] = None,
    ):
        ...

A dataclass representing a simple mesh building block.

Works in 2 and 3 dimensions.

Parameters
  • x numpy.ndarray — The coordinates of the points in the x dimension.
  • y numpy.ndarray — The coordinates of the points in the y dimension.
  • z Optional[numpy.ndarray] — The coordinates of the points in the z dimension. Only for 3-D.
  • mask Optional[numpy.ndarray] — An optional point-wise mask.
  • elemental_fields Optional[Dict[str, numpy.ndarray]] — Any elemental fields to attach to the mesh block.
Attributes
ndim int

Dimensionality of the mesh block.

nelem_x int

Number of elements in the x dimension.

nelem_y int

Number of elements in the y dimension.

nelem_z int

Number of elements in the z dimension.

number_of_elements int

Number of elements, with the mask applied.

number_of_points int

Number of points in the mesh block.

points numpy.ndarray

Get the points of the mesh block as a (n_point, n_dim) array.

Methods
add_mask()
def add_mask(self, criterion: Union[Callable, numpy.ndarray]) -> None:
    ...

Add a mask to the mesh block according to the criterion evaluated at the element centroids.

Any elemental fields will be remapped as required.

Parameters
  • criterion Union[Callable, numpy.ndarray] — Either: - callback function with the signature criterion(x, y) which returns an array of bool, True for those elements that should be masked out, or - a numpy array of bool of the same size as self.mask, which will be logically or’d onto self.mask.
Returns None
attach_field()
def attach_field(self, name: str, field: numpy.ndarray) -> None:
    ...

Attach elemental fields to the mesh block.

Parameters
  • name str — The name of the field.
  • field numpy.ndarray — The values of the field. Must be an array of length mesh_block.number_of_elements.
Returns None
get_connectivity()
def get_connectivity(self) -> numpy.ndarray:
    ...

Compute the connectivity of the mesh block.

Returns numpy.ndarray
get_element_centroid()
def get_element_centroid(self) -> Tuple[numpy.ndarray, ...]:
    ...

Get the coordinates of the element centroids.

Returns Tuple[numpy.ndarray, ...]
get_unstructured_mesh()
def get_unstructured_mesh(
    self,
) -> salvus.mesh.unstructured_mesh.UnstructuredMesh:
    ...

Convert the mesh block to a Salvus mesh object.

Returns salvus.mesh.unstructured_mesh.UnstructuredMesh
plot()
def plot(
    self, figure: Optional[matplotlib.figure.Figure] = None, show: bool = False
) -> Optional[matplotlib.figure.Figure]:
    ...

Plots the mesh block in 2 and 3 dimensions.

Parameters
  • figure Optional[matplotlib.figure.Figure] — figure
  • show bool — Show the plot.
Returns Optional[matplotlib.figure.Figure]