How cym9196/yangtze-local-morphodynamics works
This repository is a reproducible OpenFOAM research case for coupled flow, sediment-bed evolution, and a mobile immersed iron block. The principal workflow is to prepare the variable mesh and case inputs, run the custom solver through hydrodynamic spin-up and coupled evolution, then inspect or render the saved bed and body motion. The solver is the runtime orchestrator; its included stages cover flow, sediment transport, bed change, and body coupling. README documents further outputs and capabilities not fully shown in the sampled source, so only documented wiring is represented.
Main entry points: sedExnerFoam.C Coupled solver · createImmersedBody.H Body setup · createFields.H Flow fields · constant Case properties
Components 20
Case setup
- Variable mesh
make_variable_mesh.py - Mesh definition
system/blockMeshDict - Initial fields
0_org - Case properties
constant
Flow solver
- Coupled solver
solver/immersedSedExnerFoam/sedExnerFoam.C - Flow fields
solver/immersedSedExnerFoam/createFields.H - Momentum solve
solver/immersedSedExnerFoam/UEqn.H
Sediment morphodynamics
- Bed fields
solver/immersedSedExnerFoam/createFaFields.H - Bedload transport
solver/immersedSedExnerFoam/bedload.H - Suspended transport
solver/immersedSedExnerFoam/CsEqn.H - Exner bed change
solver/immersedSedExnerFoam/exnerEqn.H
Immersed body
- Body setup
solver/immersedSedExnerFoam/createImmersedBody.H - Bed contact
solver/immersedSedExnerFoam/immersedBodyContact.H - Body forces
solver/immersedSedExnerFoam/immersedBodyForces.H - Body mask update
solver/immersedSedExnerFoam/updateImmersedBodyFields.H
Results
- Simulation outputs
solver/immersedSedExnerFoam/sedExnerFoam.C - Solid-bed renderer
render_solid_sand.py - Postprocessed metrics
postprocess_solid.sh
Other components
- Researcher
- ParaView user
Connections 29
- Researcher → Variable mesh: generates mesh
- Variable mesh → Mesh definition: writes mesh
- Researcher → Coupled solver: runs case
- Mesh definition → Coupled solver: provides mesh
- Initial fields → Flow fields: initializes fields
- Case properties → Flow fields: configures fields
- Case properties → Bed fields: configures bed
- Case properties → Body setup: configures body
- Coupled solver → Flow fields: creates fields
- Coupled solver → Body setup: initializes body
- Coupled solver → Momentum solve: solves momentum
- Flow fields → Momentum solve: supplies fields
- Coupled solver → Bedload transport: advances bedload
- Coupled solver → Suspended transport: advances suspension
- Coupled solver → Exner bed change: updates bed
- Bed fields → Bedload transport: supplies bed fields
- Bed fields → Suspended transport: supplies transport fields
- Bedload transport → Exner bed change: supplies transport
- Coupled solver → Body forces: computes forces
- Coupled solver → Bed contact: computes contact
- Body setup → Body forces: provides body state
- Body setup → Bed contact: provides contact data
- Exner bed change → Bed contact: provides bed geometry
- Coupled solver → Body mask update: updates mask
- Body forces → Body mask update: updates body state
- Coupled solver → Simulation outputs: writes fields
- Simulation outputs → Solid-bed renderer: reads bed and motion
- Simulation outputs → Postprocessed metrics: postprocesses results
- Simulation outputs → ParaView user: opens case