[25836] | 1 | #Test Name: SquareNoDynUnConfinedHydroDC
|
---|
[24569] | 2 | import numpy as np
|
---|
| 3 | from model import *
|
---|
| 4 | from setmask import *
|
---|
| 5 | from triangle import triangle
|
---|
| 6 | from parameterize import parameterize
|
---|
| 7 | from solve import solve
|
---|
| 8 | from socket import gethostname
|
---|
| 9 | from generic import generic
|
---|
| 10 |
|
---|
| 11 | md = triangle(model(), '../Exp/Square.exp', 100000.)
|
---|
| 12 | md = setmask(md, '', '')
|
---|
| 13 | #reduced square (20m long)
|
---|
| 14 | md.mesh.x = md.mesh.x / 5.0e4
|
---|
| 15 | md.mesh.y = md.mesh.y / 5.0e4
|
---|
| 16 | md = parameterize(md, '../Par/SquareNoDyn.py')
|
---|
| 17 | md.cluster = generic('name', gethostname(), 'np', 1)
|
---|
| 18 |
|
---|
| 19 | md.transient.ishydrology = True
|
---|
| 20 | md.hydrology = hydrologydc()
|
---|
| 21 | md.hydrology = md.hydrology.initialize(md)
|
---|
| 22 |
|
---|
| 23 |
|
---|
| 24 | #Hydro Model Parameters
|
---|
| 25 | md.hydrology.isefficientlayer = 0
|
---|
| 26 | md.hydrology.sedimentlimit_flag = 0
|
---|
| 27 | md.hydrology.mask_thawed_node = np.ones((md.mesh.numberofvertices))
|
---|
| 28 | md.hydrology.rel_tol = 1.0e-6
|
---|
| 29 | md.hydrology.penalty_lock = 0
|
---|
| 30 | md.hydrology.max_iter = 200
|
---|
| 31 | md.hydrology.transfer_flag = 0
|
---|
| 32 | md.hydrology.unconfined_flag = 1
|
---|
| 33 | #Sediment
|
---|
| 34 | md.hydrology.sediment_porosity = 0.1
|
---|
| 35 | md.hydrology.sediment_thickness = 10.0
|
---|
| 36 | md.hydrology.sediment_transmitivity = (1.0e-3 * md.hydrology.sediment_thickness) * np.ones((md.mesh.numberofvertices))
|
---|
| 37 | #init
|
---|
| 38 | md.initialization.sediment_head = -5.0 * np.ones((md.mesh.numberofvertices))
|
---|
| 39 | #BC
|
---|
| 40 | md.hydrology.spcsediment_head = np.nan * np.ones((md.mesh.numberofvertices))
|
---|
| 41 | md.hydrology.spcsediment_head[np.where(md.mesh.x == 0)] = 0.5
|
---|
| 42 |
|
---|
| 43 | md.timestepping.time_step = 5 / md.constants.yts #5s steppin
|
---|
| 44 | md.settings.output_frequency = 2
|
---|
| 45 | md.timestepping.final_time = 300 / md.constants.yts #500s run
|
---|
| 46 |
|
---|
| 47 | md = solve(md, 'Transient')
|
---|
| 48 |
|
---|
| 49 | #fields to track, results can also be found in
|
---|
| 50 | #Wang 2009 Fig 6b (journal of Hydrology)
|
---|
| 51 | field_names = ['SedimentWaterHead1', 'SedimentWaterHead2']
|
---|
| 52 | field_tolerances = [1e-13, 1e-13]
|
---|
| 53 | field_values = [md.results.TransientSolution[10].SedimentHead, md.results.TransientSolution[30].SedimentHead]
|
---|