This is a simple 1D Richards' Equation model that is coded up in the iPython notebook, for the purposes of teaching. An explanation of this model is available in this video
Note: the default parameter sets in my van Genuchten library are in units of m and d.
Update: The original Richards' Equation model works for steady-state boundary conditions, but it is straightforward to adapt this. In "Richards Equation Transient.ipynb" I have very messily added a transient infiltration boundary condition. I recorded myself creating this script, which may be useful to understand the thought process that went into this. See here: Part 1 and Part 2. The script can be tidied up and adapted to customized problems.