Skip to content

array.py

Arrays dataclass

Arrays(rsm: RichterSlopeModel, beta_max_frac: Rational | float, n_pts: int = 1001)

XXXX

Parameters

XXX

Attributes

TBD

Returns

XXX

Parameters

XXX

Attributes

TBD

Returns

XXX

Source code in erosionfront/theory/arrays.py
def __init__(
        self, 
        rsm: RichterSlopeModel,
        beta_max_frac: Rational | float,
        n_pts: int=1001,
    ) -> None:
    """
    XXXX

    Parameters
    ----------
    XXX

    Attributes
    ----------
    TBD

    Returns
    -------
    XXX
    """
    beta = np.linspace(0.0, (np.pi/2)*float(beta_max_frac), n_pts)
    if (
        rsm.px_lambda is None 
        or rsm.pz_lambda is None
        or rsm.vx_lambda is None
        or rsm.vz_lambda is None
        or rsm.p_lambda is None
        ): 
        return
    px = rsm.px_lambda(beta) 
    pz = rsm.pz_lambda(beta)
    vx = rsm.vx_lambda(beta)
    vz = rsm.vz_lambda(beta)
    p = rsm.p_lambda(beta)
    v = np.sqrt(vx**2+vz**2)

    self.n_pts = n_pts
    self.β = beta[np.isfinite(vx) & np.isfinite(p)]

    self.px = px[np.isfinite(vx) & np.isfinite(p)]
    self.pz = pz[np.isfinite(vx) & np.isfinite(p)]
    self.p = p[np.isfinite(vx) & np.isfinite(p)]

    self.v = v[np.isfinite(vx) & np.isfinite(p)]
    self.vz = vz[np.isfinite(vx) & np.isfinite(p)]
    self.vx = vx[np.isfinite(vx) & np.isfinite(p)]

    self.ξx = self.px/self.p**2
    self.ξz = self.pz/self.p**2
    self.ξrt = 1/self.px
    self.ξup = 1/self.pz