A python package for calculating a numerical solution to the plume equations, designed primarily for buoyant plumes of subglacial discharge at ocean-terminating glaciers.
Rather than using a dict for plume results, probably better to make a class like for ambient. Maybe see if it also makes sense to build ambient into the same class or keep it separate.
Currently, velocities throughout the code use the symbol u. However, the majority of velocities are vertical, and therefore convention would require the components to be u, v, w for x, y, z directions respectively.
This should be updated for clarity and to avoid confusion if horizontal velocities are used anywhere in the code in future.
Make it easier to run with different values of the coefficients stored in const.py. This could be useful for example to run with different values of the entrainment coefficient. The values can be changed in const.py, but it would be better if this could be done outside changes to the files in the package.
For example, allow cylindrical plumes, jenkins-style uniformly distributed plumes etc. This could be done by passing an extra argument to calc_plume() selecting which plume model to use.
unit_tests are currently a little limited, and there are lots of situations which might not be caught here. Think of some nice tests which could catch some of these. Maybe use the analytical example as a test with a minimum RMSE requirement or similar.