Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rayisovel

Ray-isovel engine — the boundary shear stress on a channel cross-section, solved on FEniCSx/dolfinx. Eulerian (robust field-based) and traced (Lagrangian ray) methods, co-area shear estimators, and terrain-following mesh builders. Knows nothing about banks or Parker; the parker-banks solvers build on it.

Extracted from the Parker-1978-revisited work (MNiMORPH/gravel-stress-parker), which holds the full development history.

Install

dolfinx is conda-only:

conda create -n fenicsx-env -c conda-forge python=3.12 fenics-dolfinx mpich scipy numpy
conda run -n fenicsx-env pip install -e .

Use

import rayisovel as ri
G  = ri.build_section(zbed, y_edge, yj, Dc)             # terrain-following mesh
uh = ri.solve_velocity(G["dom"], G["V"], Kf, G["walls"])
foot = ri.eulerian_foot(G["dom"], G["V"], uh, G["walls"], G["wall_s"])
tau  = ri.coarea_shear_fem(G["V"], foot, s_query)       # clean co-area boundary shear

Modules

  • eulerian — velocity solve, ℓ/foot fields, co-area & binned shear, eddy-viscosity closure, constants (g, ρ, κ, S, β)
  • traced — Lagrangian ray tracer, iterate_K
  • coarea_fem, raster, traced_shear — shear estimators
  • meshbuild_section, make_zbed, build_section_yofz (overhang)

Tests

conda run -n fenicsx-env pip install -e .[test]
conda run -n fenicsx-env pytest -q

Physics-invariant tests (momentum conservation of the co-area shear, no-slip, symmetry) plus API and mesh-builder checks.

About

Ray-isovel engine: boundary shear on a channel cross-section (Eulerian & traced) on FEniCSx/dolfinx

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages