Skip to content

theory/equations.py

Equations

Equations()

Weathering-mediated erosion theory in various forms

Attributes:

  • W_eqn (Eq) –

    weathering number \(W = \dfrac{w_0}{k v_0}\)

  • nus_eqn_W (Eq) –

    dimensionless steady-state erosion rate \(\nu_s = \dfrac{1}{2}(1+\sqrt{1+4W})\)

  • nus_eqn_w0_v0 (Eq) –

    dimensionless steady-state erosion rate \(\nu_s = \frac{\sqrt{1 + \frac{4 w_{0}}{k v_{0}}}}{2} + \frac{1}{2}\)

  • etas0_eqn_W (Eq) –

    steady-state surface weakness \(\eta_{s0} = \dfrac{\sqrt{4 W + 1}}{2} + \frac{1}{2}\)

  • etas0_eqn_w0_v0 (Eq) –

    steady-state surface weakness \(\eta_{s0} = \dfrac{\sqrt{1 + \frac{4 w_{0}}{k v_{0}}}}{2} + \frac{1}{2}\)

  • nus_eqn_etas0 (Eq) –

    dimensionless steady-state erosion rate \(\nu_s = \eta_{s}(0)\)

  • vs_eqn_etas0_v0 (Eq) –

    steady-state erosion rate \(v_{s} = \eta_{s}(0) v_{0}\)

  • v0_eqn_etas0_vs (Eq) –

    erosion rate \(v_{0} = \dfrac{k v_{s}^{2}}{k v_{s} + w_{0}}\)

  • vs_eqn_w0_v0 (Eq) –

    steady-state erosion rate \(v_{s} = \eta_{s}(0) v_{0}\)

  • v0_eqn_vs_w0 (Eq) –

    erosion rate \(v_{0} = \dfrac{k v_{s}^{2}}{k v_{s} + w_{0}}\)

  • v0_eqn_vr_h_z (Eq) –

    erosion rate \(v_0 = v_r \left\{ (h-H_s[z,z_\mathrm{vc},\kappa_\mathrm{v}])(1-v_b)+v_b \right\}\)

  • w0_eqn_wr_z (Eq) –

    surface weakness \(w_0 = w_r H_s[z,z_\mathrm{wc},\kappa_w]\)

Methods:

  • step

    Step function at \(z=z_0\) and sharpness \(k\).

Source code in wmbe/theory/equations.py
def __init__(self):
    """
    Initialize class instance.

    Attributes:
        W_eqn (sympy.Eq):
            weathering number
            $W = \\dfrac{w_0}{k v_0}$
        nus_eqn_W (sympy.Eq):
            dimensionless steady-state erosion rate
            $\\nu_s = \\dfrac{1}{2}(1+\\sqrt{1+4W})$
        nus_eqn_w0_v0 (sympy.Eq):
            dimensionless steady-state erosion rate
            $\\nu_s = \\frac{\\sqrt{1 + \\frac{4 w_{0}}{k v_{0}}}}{2} + \\frac{1}{2}$
        etas0_eqn_W (sympy.Eq):
            steady-state surface weakness
            $\\eta_{s0} = \\dfrac{\\sqrt{4 W + 1}}{2} + \\frac{1}{2}$
        etas0_eqn_w0_v0 (sympy.Eq):
            steady-state surface weakness
            $\\eta_{s0} = \\dfrac{\\sqrt{1 + \\frac{4 w_{0}}{k v_{0}}}}{2} + \\frac{1}{2}$
        nus_eqn_etas0 (sympy.Eq):
            dimensionless steady-state erosion rate
            $\\nu_s =  \\eta_{s}(0)$
        vs_eqn_etas0_v0 (sympy.Eq):
            steady-state erosion rate
            $v_{s} = \\eta_{s}(0) v_{0}$
        v0_eqn_etas0_vs (sympy.Eq):
            erosion rate
            $v_{0} = \\dfrac{k v_{s}^{2}}{k v_{s} + w_{0}}$
        vs_eqn_w0_v0 (sympy.Eq):
            steady-state erosion rate
            $v_{s} = \\eta_{s}(0) v_{0}$
        v0_eqn_vs_w0 (sympy.Eq):
            erosion rate
            $v_{0} = \\dfrac{k v_{s}^{2}}{k v_{s} + w_{0}}$
        v0_eqn_vr_h_z (sympy.Eq):
            erosion rate
            $v_0 =  v_r \\left\\{ (h-H_s[z,z_\\mathrm{vc},\\kappa_\\mathrm{v}])(1-v_b)+v_b \\right\\}$
        w0_eqn_wr_z (sympy.Eq):
            surface weakness
            $w_0 =  w_r H_s[z,z_\\mathrm{wc},\\kappa_w]$

    """
    self.W_eqn           = Eq(W,w_0/(k*v_0))
    self.nus_eqn_W       = Eq(nu_s,(1+sqrt(1+4*W))/2)
    self.nus_eqn_w0_v0   = self.nus_eqn_W.subs(W,self.W_eqn.rhs)
    self.etas0_eqn_W     = Eq(eta_s0, self.nus_eqn_W.rhs)
    self.etas0_eqn_w0_v0 = self.etas0_eqn_W.subs(W,self.W_eqn.rhs)
    self.nus_eqn_etas0   = Eq(nu_s, eta_s0)
    self.vs_eqn_etas0_v0 = Eq(v_s, self.nus_eqn_etas0.rhs*v_0)
    self.v0_eqn_etas0_vs = Eq(v_0, solve(self.vs_eqn_etas0_v0,v_0)[0])
    self.vs_eqn_w0_v0    = Eq(v_s, self.nus_eqn_w0_v0.rhs*v_0)
    self.v0_eqn_vs_w0    = Eq(v_0, solve(self.vs_eqn_w0_v0,v_0)[0])
    self.v0_eqn_vr_h_z   = Eq(
        v_0, 
        v_r*( (h-self.step(z,z_vc,kappa_v))*(1-v_b)+v_b ) 
    )
    self.w0_eqn_wr_z     = Eq(w_0, w_r*self.step(z,z_wc,kappa_w))

step staticmethod

step(z: Symbol, z0: Symbol, kappa: Symbol) -> Symbol

Step function at \(z=z_0\) and sharpness \(k\).

\(H_s(z,z_0,\kappa) = \dfrac{1}{2}\left(1 + \tanh{[\kappa(z-z_0)]}\right)\)

Parameters:

  • z

    (Symbol) –

    abscissa \(z\)

  • z0

    (Symbol) –

    offset \(z_0\)

  • kappa

    (Symbol) –

    step sharpness \(\kappa\)

Returns:

  • Symbol

    step function \(H_s\)

Source code in wmbe/theory/equations.py
@staticmethod
def step(z: Symbol, z0: Symbol, kappa: Symbol,) -> Symbol:
    """
    Step function at $z=z_0$ and sharpness $k$.

    $H_s(z,z_0,\\kappa) = \\dfrac{1}{2}\\left(1 + \\tanh{[\\kappa(z-z_0)]}\\right)$

    Args:
        z: abscissa $z$
        z0: offset $z_0$
        kappa: step sharpness $\\kappa$

    Returns:
        step function $H_s$
    """
    return (1 + tanh((z-z0)*kappa))/2