Mondaic

salvus.mesh.layered_meshing.meshing_protocol.coarsening_policy.interlayer_tripling

salvus.mesh.layered_meshing.meshing_protocol.coarsening_policy.interlayer_tripling salvus mesh layered_meshing meshing_protocol coarsening_policy interlayer_tripling

Interlayer tripling.

Classes

InterlayerTripling

class InterlayerTripling(
    salvus.mesh.layered_meshing.meshing_protocol.coarsening_policy.InterlayerCoarseningPolicy
):
    def __init__(self) -> None: ...

Ensure the # of elements across adjacent layers differs by a factor of 3.

Attributes
coarsening_factor int

The factor relating the element counts of two adjacent layers.

Returns: 3, requiring the element counts to differ by a power of 3.

max_coarsening int

The largest number of successive coarsenings allowed at a boundary.

Returns: The maximum number of coarsenings. Can be parameterized if required.

Methods
interlayer_connector()
def interlayer_connector(
    self,
    l0: tuple[list[int], int],
    l1: tuple[list[int], int],
    cs: CoordinateSystem,
    layer_bounds: dict[str, tuple[float, float]],
) -> tuple[
    list[tuple[int, _InterlayerConnectorProtocol]],
    list[tuple[int, _InterlayerConnectorProtocol]],
]: ...

Callable which returns a MeshBlock that connects two layers.

A tuple of lists of tuple is returned, the first element of which is the number of connecting mesh blocks that need to be constructed. For instance, if the interlayer policy is “doubling”, and the number of elements between two layers different by a factor 4, the first element of the returned tuple should be 2. The second element is a partial function with the n_elem_ arguments already applied, and which can then subsequently be called with extents.

A tuple is returned, the first element specifying the connectors required for the layer’s top, and the second for the layer’s bottom.

Parameters
  • l0 tuple[list[int], int] — Tuple of: (list of number of elements in each horizontal direction, number of vertical elements) in the top layer.
  • l1 tuple[list[int], int] — Tuple of: (list of number of elements in each horizontal direction, number of vertical elements) in the bottom layer.
  • cs CoordinateSystem — The coordinate system.
  • layer_bounds dict[str, tuple[float, float]] — The bounds of the associated layer.
Returns tuple[list[tuple[int, _InterlayerConnectorProtocol]], list[tuple[int, _InterlayerConnectorProtocol]]] — A tuple of (num_required_connectors, ConnectorProtocol).