model.py¶
Models
¶
flowchart TD
erosionfront.geomorphic.model.Models[Models]
click erosionfront.geomorphic.model.Models href "" "erosionfront.geomorphic.model.Models"
Model type enumeration.
Attributes¶
str = "isotropic"
Isotropic eikonal model.
str = "step"
Simple error-function smooth-step model.
str = "exponential-activation"
Smooth-step model based on exp(-β_t/β) shape.
BaseStepModel
dataclass
¶
BaseStepModel(
type: str = "",
label: str = "",
ξ_min: float = 0.2,
ξ_max: float = 1,
ξ_trend: float = 0.05,
β_t: float = pi / 4,
σ_ξ: float = 0.1,
n_ξ: float = 2,
Δt_slabfailure: float = 0.05,
do_slabfailure: bool = True,
)
flowchart TD
erosionfront.geomorphic.model.BaseStepModel[BaseStepModel]
click erosionfront.geomorphic.model.BaseStepModel href "" "erosionfront.geomorphic.model.BaseStepModel"
Base class for step-type model erosion speed functions.
Subclassed models are all explicitly defined, rather than derived from Sympy theoretical development.
Parameters¶
ξ_min: float = 0.2 Asymptotic minimum ξ for β → 0. ξ_max: float = 1 Asymptotic minimum ξ for β → ∞. ξ_trend: float = 0.05 Overall "tilt" to ξ model as β rises. β_t: float = np.pi/4 Transition slope angle β where ξ switches from low to high. σ_ξ: float = 0.1 Smoothness (in Gaussian std dev sense w β) of ξ transition. n_ξ: float = 2 Order of transition smoothness (power exponent; alt to σ_ξ). Δt_slabfailure: float = 0.05 Time between periodic removal of overhangs. do_slabfailure: bool = True Do periodic removal of overhangs.
Attributes¶
type: str = "" Model name (long form). label: str = "" Model name (short form). ξ_min: float = 0.2 Asymptotic minimum ξ for β → 0. ξ_max: float = 1 Asymptotic minimum ξ for β → ∞. ξ_trend: float = 0.05 Overall "tilt" to ξ model as β rises. β_t: float = np.pi/4 Transition slope angle β where ξ switches from low to high. σ_ξ: float = 0.1 Smoothness (in Gaussian std dev sense w β) of ξ transition. n_ξ: float = 2 Order of transition smoothness (power exponent; alt to σ_ξ). Δt_slabfailure: float = 0.05 Time between periodic removal of overhangs. do_slabfailure: bool = True Do periodic removal of overhangs.
Methods:
-
__post_init__–Select the model type and assign its short-form label.
-
dHlsdφ_fn_Δφx–Derivative of ls H_{∂φ/∂x} wrt ∂φ/∂x that must be set by model class.
-
dHlsdφ_fn_Δφz–Derivative of ls H_{∂φ/∂z} wrt ∂φ/∂z that must be set by model class.
-
ξ_fn_β–Erosion speed ξ(β) method that must be implemented by each model class.
__post_init__
¶
Select the model type and assign its short-form label.
Attributes¶
label: str Short-form model type string.
Source code in erosionfront/geomorphic/model.py
dHlsdφ_fn_Δφx
abstractmethod
¶
dHlsdφ_fn_Δφx(
Δφ_x: float | NDArray | MaskedArray, Δφ_z: float | NDArray | MaskedArray
) -> float | NDArray | MaskedArray
Derivative of ls H_{∂φ/∂x} wrt ∂φ/∂x that must be set by model class.
Parameters¶
Δφ_x: float | NDArray | MaskedArray Finite difference approximation of ∂φ/∂x. Δφ_z: float | NDArray | MaskedArray Finite difference approximation of ∂φ/∂z.
Returns¶
float | NDArray | MaskedArray: Derivative of ls H_{∂φ/∂x} wrt ∂φ/∂x.
Source code in erosionfront/geomorphic/model.py
dHlsdφ_fn_Δφz
abstractmethod
¶
dHlsdφ_fn_Δφz(
Δφ_x: float | NDArray | MaskedArray, Δφ_z: float | NDArray | MaskedArray
) -> float | NDArray | MaskedArray
Derivative of ls H_{∂φ/∂z} wrt ∂φ/∂z that must be set by model class.
Parameters¶
Δφ_x: float | NDArray | MaskedArray Finite difference approximation of ∂φ/∂x. Δφ_z: float | NDArray | MaskedArray Finite difference approximation of ∂φ/∂z.
Returns¶
float | NDArray | MaskedArray: Derivative of ls H_{∂φ/∂z} wrt ∂φ/∂z.
Source code in erosionfront/geomorphic/model.py
ξ_fn_β
abstractmethod
¶
Erosion speed ξ(β) method that must be implemented by each model class.
Parameters¶
β: float | NDArray | MaskedArray Surface tilt angle(s).
Returns¶
float | NDArray | MaskedArray: Surface-normal erosion speed(s) ξ(β).
Source code in erosionfront/geomorphic/model.py
Isotropic
dataclass
¶
Isotropic(
type: str = "",
label: str = "",
ξ_min: float = 0.2,
ξ_max: float = 1,
ξ_trend: float = 0.05,
β_t: float = pi / 4,
σ_ξ: float = 0.1,
n_ξ: float = 2,
Δt_slabfailure: float = 0.05,
do_slabfailure: bool = True,
)
flowchart TD
erosionfront.geomorphic.model.Isotropic[Isotropic]
erosionfront.geomorphic.model.BaseStepModel[BaseStepModel]
erosionfront.geomorphic.model.BaseStepModel --> erosionfront.geomorphic.model.Isotropic
click erosionfront.geomorphic.model.Isotropic href "" "erosionfront.geomorphic.model.Isotropic"
click erosionfront.geomorphic.model.BaseStepModel href "" "erosionfront.geomorphic.model.BaseStepModel"
Isotropic erosion speed model, i.e., simple eikonal model.
Parameters¶
See base class.
Attributes¶
See base class.
-
Python package
geomorphic
choose_model
-
Python package
- visualization
- levelset
-
geomorphic
GeometricMechanicsAnalysis
Methods:
-
__post_init__–Select the model type and assign its short-form label.
-
dHlsdφ_fn_Δφx–Derivative of ls H_{∂φ/∂x} wrt ∂φ/∂x for isotropic erosion speed model.
-
dHlsdφ_fn_Δφz–Derivative of ls H_{∂φ/∂z} wrt ∂φ/∂z for isotropic erosion speed model.
-
ξ_fn_β–Surface-normal erosion speed ξ(β) for isotropic erosion speed model.
__post_init__
¶
Select the model type and assign its short-form label.
Attributes¶
label: str Short-form model type string.
Source code in erosionfront/geomorphic/model.py
dHlsdφ_fn_Δφx
¶
dHlsdφ_fn_Δφx(
Δφ_x: float | NDArray | MaskedArray, Δφ_z: float | NDArray | MaskedArray
) -> float | NDArray | MaskedArray
Derivative of ls H_{∂φ/∂x} wrt ∂φ/∂x for isotropic erosion speed model.
Parameters¶
Δφ_x: float | NDArray | MaskedArray Finite difference approximation of ∂φ/∂x. Δφ_z: float | NDArray | MaskedArray Finite difference approximation of ∂φ/∂z.
Returns¶
float | NDArray | MaskedArray: Derivative of ls H_{∂φ/∂x} wrt ∂φ/∂x.
Source code in erosionfront/geomorphic/model.py
dHlsdφ_fn_Δφz
¶
dHlsdφ_fn_Δφz(
Δφ_x: float | NDArray | MaskedArray, Δφ_z: float | NDArray | MaskedArray
) -> float | NDArray | MaskedArray
Derivative of ls H_{∂φ/∂z} wrt ∂φ/∂z for isotropic erosion speed model.
Parameters¶
Δφ_x: float | NDArray | MaskedArray Finite difference approximation of ∂φ/∂x. Δφ_z: float | NDArray | MaskedArray Finite difference approximation of ∂φ/∂z.
Returns¶
float | NDArray | MaskedArray: Derivative of ls H_{∂φ/∂z} wrt ∂φ/∂z.
Source code in erosionfront/geomorphic/model.py
ξ_fn_β
¶
Surface-normal erosion speed ξ(β) for isotropic erosion speed model.
Parameters¶
β: float | NDArray | MaskedArray Surface tilt angle(s).
Attributes¶
References ξ_min attribute.
Returns¶
float | NDArray | MaskedArray: Surface-normal erosion speed(s) ξ(β) for isotropic model.
Source code in erosionfront/geomorphic/model.py
Step
dataclass
¶
Step(
type: str = "",
label: str = "",
ξ_min: float = 0.2,
ξ_max: float = 1,
ξ_trend: float = 0.05,
β_t: float = pi / 4,
σ_ξ: float = 0.1,
n_ξ: float = 2,
Δt_slabfailure: float = 0.05,
do_slabfailure: bool = True,
)
flowchart TD
erosionfront.geomorphic.model.Step[Step]
erosionfront.geomorphic.model.BaseStepModel[BaseStepModel]
erosionfront.geomorphic.model.BaseStepModel --> erosionfront.geomorphic.model.Step
click erosionfront.geomorphic.model.Step href "" "erosionfront.geomorphic.model.Step"
click erosionfront.geomorphic.model.BaseStepModel href "" "erosionfront.geomorphic.model.BaseStepModel"
Smoothed-step erosion speed model with switch at threshold β.
Parameters¶
See base class.
Attributes¶
See base class.
-
Python package
geomorphic
choose_model
-
Python package
- visualization
- levelset
-
geomorphic
GeometricMechanicsAnalysis
Methods:
-
__post_init__–Select the model type and assign its short-form label.
-
dHlsdφ_fn_Δφx–Derivative of ls H_{∂φ/∂x} wrt ∂φ/∂x for smoothed-step erosion model.
-
dHlsdφ_fn_Δφz–Derivative of ls H_{∂φ/∂z} wrt ∂φ/∂z for smoothed-step erosion model.
-
ξ_fn_β–Compute smoothed-step erosion speed with switch at threshold β.
__post_init__
¶
Select the model type and assign its short-form label.
Attributes¶
label: str Short-form model type string.
Source code in erosionfront/geomorphic/model.py
dHlsdφ_fn_Δφx
¶
dHlsdφ_fn_Δφx(
Δφ_x: float | NDArray | MaskedArray, Δφ_z: float | NDArray | MaskedArray
) -> float | NDArray | MaskedArray
Derivative of ls H_{∂φ/∂x} wrt ∂φ/∂x for smoothed-step erosion model.
Parameters¶
Δφ_x: float | NDArray | MaskedArray Finite difference approximation of ∂φ/∂x. Δφ_z: float | NDArray | MaskedArray Finite difference approximation of ∂φ/∂z.
Returns¶
float | NDArray | MaskedArray: Derivative of ls H_{∂φ/∂x} wrt ∂φ/∂x.
Source code in erosionfront/geomorphic/model.py
dHlsdφ_fn_Δφz
¶
dHlsdφ_fn_Δφz(
Δφ_x: float | NDArray | MaskedArray, Δφ_z: float | NDArray | MaskedArray
) -> float | NDArray | MaskedArray
Derivative of ls H_{∂φ/∂z} wrt ∂φ/∂z for smoothed-step erosion model.
Parameters¶
Δφ_x: float | NDArray | MaskedArray Finite difference approximation of ∂φ/∂x. Δφ_z: float | NDArray | MaskedArray Finite difference approximation of ∂φ/∂z.
Returns¶
float | NDArray | MaskedArray: Derivative of ls H_{∂φ/∂z} wrt ∂φ/∂z.
Source code in erosionfront/geomorphic/model.py
ξ_fn_β
¶
Compute smoothed-step erosion speed with switch at threshold β.
Parameters¶
β: float | NDArray | MaskedArray Surface tilt angle(s).
Attributes¶
References β_t, σ_ξ, ξ_min, ξ_max. Also now: ξ_trend to provide tilt.
Returns¶
float | NDArray | MaskedArray: Surface-normal erosion speed(s) ξ(β) for smoothed-step model.
Source code in erosionfront/geomorphic/model.py
ExponentialActivation
dataclass
¶
ExponentialActivation(
type: str = "",
label: str = "",
ξ_min: float = 0.2,
ξ_max: float = 1,
ξ_trend: float = 0.05,
β_t: float = pi / 4,
σ_ξ: float = 0.1,
n_ξ: float = 2,
Δt_slabfailure: float = 0.05,
do_slabfailure: bool = True,
)
flowchart TD
erosionfront.geomorphic.model.ExponentialActivation[ExponentialActivation]
erosionfront.geomorphic.model.BaseStepModel[BaseStepModel]
erosionfront.geomorphic.model.BaseStepModel --> erosionfront.geomorphic.model.ExponentialActivation
click erosionfront.geomorphic.model.ExponentialActivation href "" "erosionfront.geomorphic.model.ExponentialActivation"
click erosionfront.geomorphic.model.BaseStepModel href "" "erosionfront.geomorphic.model.BaseStepModel"
Exponential-activation erosion speed model with switch at threshold β.
Parameters¶
See base class.
Attributes¶
See base class.
-
Python package
geomorphic
choose_model
-
Python package
- visualization
- levelset
-
geomorphic
GeometricMechanicsAnalysis
Methods:
-
__post_init__–Select the model type and assign its short-form label.
-
dHlsdφ_fn_Δφx–Derivative of ls H_{∂φ/∂x} wrt ∂φ/∂x for EA model.
-
dHlsdφ_fn_Δφz–Derivative of ls H_{∂φ/∂z} wrt ∂φ/∂z for EA model.
-
ξ_fn_β–Surface-normal erosion speed ξ(β) for EA model with step at β_t.
__post_init__
¶
Select the model type and assign its short-form label.
Attributes¶
label: str Short-form model type string.
Source code in erosionfront/geomorphic/model.py
dHlsdφ_fn_Δφx
¶
dHlsdφ_fn_Δφx(
Δφ_x: float | NDArray | MaskedArray, Δφ_z: float | NDArray | MaskedArray
) -> float | NDArray | MaskedArray
Derivative of ls H_{∂φ/∂x} wrt ∂φ/∂x for EA model.
Parameters¶
Δφ_x: float | NDArray | MaskedArray Finite difference approximation of ∂φ/∂x. Δφ_z: float | NDArray | MaskedArray Finite difference approximation of ∂φ/∂z.
Returns¶
float | NDArray | MaskedArray: Derivative of ls H_{∂φ/∂x} wrt ∂φ/∂x.
Source code in erosionfront/geomorphic/model.py
dHlsdφ_fn_Δφz
¶
dHlsdφ_fn_Δφz(
Δφ_x: float | NDArray | MaskedArray, Δφ_z: float | NDArray | MaskedArray
) -> float | NDArray | MaskedArray
Derivative of ls H_{∂φ/∂z} wrt ∂φ/∂z for EA model.
Parameters¶
Δφ_x: float | NDArray | MaskedArray Finite difference approximation of ∂φ/∂x. Δφ_z: float | NDArray | MaskedArray Finite difference approximation of ∂φ/∂z.
Returns¶
float | NDArray | MaskedArray: Derivative of ls H_{∂φ/∂z} wrt ∂φ/∂z.
Source code in erosionfront/geomorphic/model.py
ξ_fn_β
¶
Surface-normal erosion speed ξ(β) for EA model with step at β_t.
Parameters¶
β: float | NDArray | MaskedArray Surface tilt angle(s).
Attributes¶
References β_t, σ_ξ, ξ_min, ξ_max.
Returns¶
float | NDArray | MaskedArray: Surface-normal erosion speed(s) ξ(β) for EA model.
Source code in erosionfront/geomorphic/model.py
choose_model
¶
choose_model(parameters: dict) -> Isotropic | Step | ExponentialActivation
Choose erosion model.
Parameters¶
dict:
Dictionary of keyword arguments to be passed to instantiate
a model class. Choice of model type is specified in
the parameters['type'] element.
Returns¶
Isotropic | Step | ExponentialActivation:
One of these erosion model classes.
Instantiation takes **parameters as keyword arguments.