From GeoMod
Development in progress
Mesh
The mesh_cx.py file contains two classes designed to create a numerical mesh based on the presence of geologic layers.
Classes:
- mesh_cx: An x,z mesh
- layer: A container to hold information about each layer.
Mesh generator
The mesh generator attempts to create block centered cells with the cell boundaries at the the boundaries between layers.
Matrix solvers
Sometimes explicit solutions are just not enough. I've created 3 simple matrix solvers (Jacobi, Gauss-Seidel, sor) written entirely in Python and not optimized.
Groundwater model
The numerical model uses a mesh_cx class as the input for the numerical mesh and material properties.
Assumptions:
Testing
Free-surface, steady-state
Comparison to analytic solution.
Mesh refinement.
Base code: Media:Gwmodel free surface ss mesh.tgz
Test of model solving for a free surface with complex stratigraphy (groundwater_fs_ss_test.py). Lowest unit has a relatively low hydraulic conductivity.
|
Higher resolution free-surface, complex (uniform) stratigraphy simulation. (groundwater_fs_ss_test.py). Lowest unit has a relatively low hydraulic conductivity. Base code -> groundwater_fs_ss_test.py; line 33 -> nrows = 50; line 34 -> ncols = 50
|
Relative conductivity of units.
Base code: Media:Gwmodel free surface ss.tgz
Hydraulic conductivities |
Giving the lowest unit a high hydraulic conductivity. Base code -> groundwater_fs_ss_test.py; line 91; layers[0].add_prop("K", 0.0025)
|
Giving the middle unit a high hydraulic conductivity. Base code -> groundwater_fs_ss_test.py; line 91; layers[1].add_prop("K", 0.0025)
|
Giving the uppermost unit a high hydraulic conductivity. Base code -> groundwater_fs_ss_test.py
|
Heads |
Giving the lowest unit a high hydraulic conductivity.
|
Giving the middle unit a high hydraulic conductivity.
|
Giving the uppermost unit a high hydraulic conductivity.Note that too stringent of a tolerance on the solver results in the solution oscillating about this final result; tol=1e-4; dzmax=0.01. This is likely due to the fact that the watertable crosses two different hydraulic units.
|