Skip to content

LinearDistribution

Bases: MeshDistribution

Linear path distribution class expression: fn(u) = u

For more information, see MeshDistribution.

Source code in pymesh/mesh/mesh_distributions.py
class LinearDistribution(MeshDistribution):
    """Linear path distribution class
    expression: fn(u) = u

    For more information, see [MeshDistribution][pymesh.mesh.mesh_distributions.MeshDistribution].
    """

    def __init__(self, flip_direction: bool = False):
        super().__init__(flip_direction=flip_direction)

    def copy(self) -> Self:
        return LinearDistribution(self.flip_direction)

    def get_dist_fn(self):
        flip = True if self.flip_direction else False  # breaks ref to self

        def fn(u: int | float, flip_direction: bool = flip) -> float:
            u = self.validate_fn_input(u=u, flip_direction=flip_direction)
            exp = u
            return self.flip_exp(exp, flip_direction)

        return fn