salvus.mesh.layered_meshing.meshing_protocol.coarsening_policy.interlayer_constant
Enforce a constant number of elements between layers.
Classes
InterlayerConstant
InterlayerConstantclass InterlayerConstant(
salvus.mesh.layered_meshing.meshing_protocol.coarsening_policy.InterlayerCoarseningPolicy
):
def __init__(self) -> None: ...Ensure an equal number of elements across adjacent layers.
Methods
interlayer_connector()
interlayer_connector()def interlayer_connector(
self,
l0: Tuple[List[int], int],
l1: Tuple[List[int], int],
cs: salvus.geometry.coordinates.coordinates.CoordinateSystem,
layer_bounds: Dict[str, Tuple[float, float]],
) -> Tuple[
List[
Tuple[
int,
Union[
salvus.mesh.layered_meshing.meshing_protocol.coarsening_policy._InterlayerConnectorProtocol2D,
salvus.mesh.layered_meshing.meshing_protocol.coarsening_policy._InterlayerConnectorProtocol3D,
],
]
],
List[
Tuple[
int,
Union[
salvus.mesh.layered_meshing.meshing_protocol.coarsening_policy._InterlayerConnectorProtocol2D,
salvus.mesh.layered_meshing.meshing_protocol.coarsening_policy._InterlayerConnectorProtocol3D,
],
]
],
]: ...No connectors are required for a constant policy.
Parameters
l0Tuple[List[int], int] — Number of elements in layer a.l1Tuple[List[int], int] — Number of elements in layer b.cssalvus.geometry.coordinates.coordinates.CoordinateSystem — The coordinate system.layer_boundsDict[str, Tuple[float, float]] — The bounds of the associated layer.
Returns Tuple[List[Tuple[int, Union[salvus.mesh.layered_meshing.meshing_protocol.coarsening_policy._InterlayerConnectorProtocol2D, salvus.mesh.layered_meshing.meshing_protocol.coarsening_policy._InterlayerConnectorProtocol3D]]], List[Tuple[int, Union[salvus.mesh.layered_meshing.meshing_protocol.coarsening_policy._InterlayerConnectorProtocol2D, salvus.mesh.layered_meshing.meshing_protocol.coarsening_policy._InterlayerConnectorProtocol3D]]]] — A tuple of empty lists (no connectors).
interlayer_constraint()
interlayer_constraint()def interlayer_constraint(
self,
a: List[ortools.sat.python.cp_model.IntVar],
b: List[ortools.sat.python.cp_model.IntVar],
) -> List[List[ortools.sat.python.cp_model.BoundedLinearExpression]]: ...Generate the interlayer constraints.
Parameters
aList[ortools.sat.python.cp_model.IntVar] — Number of horizontal elements in layer a.bList[ortools.sat.python.cp_model.IntVar] — Number of horizontal elements in layer b.
Returns List[List[ortools.sat.python.cp_model.BoundedLinearExpression]] — An equality constant between a and b.