salvus.mesh.layered_meshing.meshing_protocol.coarsening_policy.intralayer_vertical_refine
Allow for vertical refinements in a layer.
Classes
IntralayerVerticalRefine
IntralayerVerticalRefineclass IntralayerVerticalRefine(
salvus.mesh.layered_meshing.meshing_protocol.coarsening_policy.IntralayerCoarseningPolicy
):
def __init__(
self,
fixed_horizontal_element_boundaries: list[list[float]] = default,
min_layer_thickness: float | None = None,
max_vertical_oversampling_factor: int = 3,
max_aspect_ratio: float = 10.0,
refinement_type: typing.Literal["doubling", "tripling"] = "tripling",
) -> None: ...Construct a coarsening policy that allows for vertical refinements.
Parameters
fixed_horizontal_element_boundarieslist[list[float]] — An optional array of horizontal coordinate values where fixed element boundaries should occur. Useful for respecting the mesh of simple vertical structures and the like. For 3-D meshes one can pass a list of lists of values, which correspond to the first and second coordinate axes (i.e x and y) respectively.min_layer_thicknessfloat | None — If a float is specified here, mask out all elements in this layer where the layer thickness is less than this value. Useful for masking out elements in shallow water layers.max_vertical_oversampling_factorint — An integer factor higher than 1 fives more flexibility to the ILP solve for an optimal number of vertical elements versus the default. Set this parameter to 2 or 3 (or higher) if no feasible intralayer coarsening solutions are found.max_aspect_ratiofloat — Ensure that the vertical dimension of each element are no more than this many times the horizontal dimensions. Defaults to 10.0refinement_typetyping.Literal['doubling', 'tripling'] — The type of vertical refinements to use. ‘doubling’ usually gives a better time step, but since it changes the number of elements in the horizontal direction it can only be used in the top layer of any layered model.
Methods
basic_block()
basic_block()def basic_block(
self,
elm_p_wav: tuple[float, ...],
n_elm_h: list[int],
n_elm_c: int,
i_bot: Interface,
i_top: Interface,
b_flat: float,
t_flat: float,
mw: parameter_types.RealizedParameter,
cs: CoordinateSystem,
) -> list[MeshBlock]: ...Get the rectangle or cube constructors.
May return an empty list if it is detected that the connector blocks already span the entire layer.
Parameters
elm_p_wavtuple[float, ...] — The number of elements per wavelength.n_elm_hlist[int] — The number of elements in the horizontal directions.n_elm_cint — The total number of elements in the connectors.i_botInterface — The bottom interface.i_topInterface — The top interface.b_flatfloat — The bottom elevation of the flattened mesh block.t_flatfloat — The top elevation of the flattened mesh block.mwparameter_types.RealizedParameter — The minimum wavelengths.csCoordinateSystem — The coordinate system.
Returns list[MeshBlock] — The mesh block.