Releases: EcohydrologyTeam/ClearWater-riverine
v0.7.0: NSM Coupling Demo w/ improved accuracy, testing, & performance
The ClearWater-riverine package is a 2D water quality transporter model to calculate conservative advection and diffusion of constituents from an unstructured grid of flows. It is written in modern Python, leveraging high-performance libraries such as xarray, and developed by the the U.S. Army Engineer Research and Development Center (ERDC), Environmental Laboratory (EL).
This release demonstrates the coupling of the newly refactored Nutrient Simulation Module (NSM) in Clearwater-Modules with a HEC-RAS 2D model, adding two new Jupyter Notebooks to the examples. This release also improves on our recent multi-constituent modeling capabilities.
What's Changed
- Empty Cell Bug Fix by @sjordan29 in #88
- Load mesh for plotting and post-processing by @sjordan29 in #90
- Updates to loading constituents by @sjordan29 in #91
- Read additional output from hdf5 file by @jrutyna in #92
- Add NSM demo notebooks by @jrutyna with #93
- Add NSM demo notebooks by @jrutyna with #93
- Update demo notebooks by @sjordan29 with #94
Full Changelog: v0.6.0...v0.7.0
v0.6.0: Simulating Multiple Constituents
What's Changed
General
- Address wetting and drying concentration spikes by @sjordan29 in #69
- Testing larger domain and boundary condition fix by @sjordan29 in #74
Multiple Constituents
- Add ability to model multiple constituents by @sjordan29 in #75
- Fix and document mass balance differences by @sjordan29 in #79
- Updating constituents at a timestep by @sjordan29 in #82
- Update plotting by @sjordan29 in #83
- Saving to netcdf by @sjordan29 in #84
- Update Demo Notebooks by @sjordan29 in #85
- Simulating multiple constituents by @sjordan29 in #86
Full Changelog: v0.5.0...v0.6.0
v0.5.0: Coupling Demo with ClearWater-modules TSM
What's Changed
The latest release added demonstrative materials and updates to the code base to allow for integration with Clearwater-Modules. As part of this effort, some performance improvements and minor bugs were also addressed, as described below.
Coupling with Clearwater-Modules
- Updates to integrate with Clearwater-Modules @sjordan29 in #53
- Development of example notebooks by @sjordan29 and @aufdenkampe in #63 and #64
- Determine timestep required to preserve mass balance in example materials by @sjordan29 in #56
- Addition of
datetime_range
initialization parameter by @sjordan29 in #62
Performance Improvements
- Speed up Boundary Conditions by @sjordan29 in #50
- Speed up Summing Coefficients to Diffusion Term by @sjordan29 in #58
Bug Fixes
- Update mass flux calculation by @sjordan29 in #54
v0.4.0: Mass Balance Testing and Fixes
This release adds new testing and unit conversion features and fixes some bugs related to conserving mass balance of constituents.
Added
- A new testing system using pytest starting with a suite of tests for mass balance with #32 and #44, addressing #22
- The test suite includes various models, including a 5x10 test case and a 1x2 test case, addressing #31.
- A new class to handle unit conversions with #42, addressing #38
Fixed
v0.3.0: ClearWater-Riverine generalized constituent transport
Generalized water quality transport has been completed. This version of the model can be used to simulate water quality by:
- Setting up an simulating a 2D HEC-RAS hydraulics model for an event of interest
- Linking ClearWater-Riverine to the HEC-RAS HDF5 output file
- Setting up a constituent of interest
- Setting the time period of the simulation
- Running the simulation
- Plotting the results
Ongoing development will extend these capabilities to simulate general reactive constituents, temperature, nutrients, dissolved oxygen, and algae.
v0.2.0: Clearwater Riverine Refactored with OOP
This release integrates principles of object-oriented programming into the Clearwater Riverine water quality model.
Notable changes:
-
#14 - Refactor IO to enhance code flexibility and extendibility
-
Creation of
ClearwaterRiverine
class with the following methods:initial_conditions()
boundary_conditions()
simulate_wq()
quick_plot()
plot()
-
Splitting code into modules
linalg
: contains LHS (left-hand side) and RHS (right-hand side) classes used for solving linear algebra systemsmesh
: functions required for defining UGRID compliant unstructured model meshras2dwq
: containsClearwaterRiverine
classutilities
: functions required for calculating advection-diffusion transport equationvariables
: define global variablesio
: scripts for I/Oinputs
: input reader factoryoutputs
output writer factoryhdf
: io related to HDF files
v0.1.0: Clearwater-Riverine first functioning release
Clearwater Riverine takes RAS2D output and does water quality calculations on top of that.
This release is the first functioning version. This release reads output from RAS2D output and performs a total-load advection-diffusion equation (so far, not accounting for the total-load source/sink term).
Future work will implement object-oriented programming best practices, integrate Clearwater Python modules for the source/sink term, and integrate plotting into the module.