Skip to content

mcooper12590/CaveXC

Repository files navigation

CaveXC

A modular code for channel cross-section evolution in both free-surface and conduit-full (i.e. water filled caves) conditions.

This code provides a CrossSection class holding the geometry of the channel as a series of x, y points, with methods for calculation of area, wetted perimeter, position finding along the geometry, and evolution of the geometry. It also provides a method for finding a stage height given geometry and a discharge. A flow class is provided to calculate boundary shear stress along the cross-section based on the Wobus, Tucker, and Anderson (WTA) method from Wobus et al. [2006, 2008].

Two example scripts are included to simulate different cross-sections. The script vadose.py simulates surface bedrock channels or caves with open channel flow. This script requires a prescribed sediment diameter, slope, discharge, and initial geometry. The script paragenesis.py simulates paragenetic canyons, a unique type of cave passage where the channel grows upwards towards the water table in phreatic conditions when sediment armors the floor and walls of a passage from dissolution/mechanical erosion. As such, there is an additional module for calculating sediment transport dynamics, sediment.py.

The code paragenesis.py includes command line options given by "python paragenesis.py option=value". Physical parameters for the model are:

  • Q - discharge [m3/s],
  • Qs - sediment supply [kg/s],
  • rh - roughness length for the law of the wall (z0) [m],
  • D_s - sediment size [m],
  • n - exponent in the erosion law kτbn,
  • rho_s - sediment density [kg/m3].

Additionally, there are several option to control the model dynamics:

  • rh_type - type of roughness used in the model,
  • sc - whether suspended sediment is included in the model (0 - no suspended sediment/1 - suspended sediment),
  • t - number of time steps to run.

The option rh_type has several values:

  • 1 - use bedrock roughness as specified by physical parameter rh,
  • 2 - use sediment roughness calculated from D_s (6.8D_s/30),
  • 3 - composite roughness weighting bedrock roughness and sediment roughness by their perimeter portion lengths,
  • 4 - per-point roughness where z0 varies along the perimeter.

Further, options controlling the outputs of the script are:

  • sFile - file to save equilibrium cross-section data (eq. width, area),
  • suppress_paramsave - do not save equilibrium cross-section data (value=1),
  • save_tsdata - save per time step shear stress, cross-sectional area and width (value=1),
  • suppress_print - do not print per time step information to the command line.

Another script, runfromcsv.py, runs paragenesis.py given a CSV of options. Example CSVs are provided in examples/CooperCovington2020/. These CSVs are the options used for simulations in Cooper and Covington, 2020, "Modeling cave cross-section including sediment transport and paragenesis", Earth Surface Processes and Landforms (https://doi.org/10.1002/esp.4915). Options for this script are:

  • sFile - the equivalent of sFile for paragenesis.py,
  • trf - CSV of options,
  • sedpart - the equivalent of sc for paragenesis.py.

DOI

About

Code for simulating the evolution of cave cross-sections from a simple shear stress erosion law

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages