1 | #Test Name: SquareSheetConstrainedCMDragSSA3d
|
---|
2 | import numpy as np
|
---|
3 | from model import *
|
---|
4 | from socket import gethostname
|
---|
5 | from triangle import *
|
---|
6 | from setmask import *
|
---|
7 | from parameterize import *
|
---|
8 | from setflowequation import *
|
---|
9 | from solve import *
|
---|
10 |
|
---|
11 |
|
---|
12 | md = triangle(model(), '../Exp/Square.exp', 200000.)
|
---|
13 | md = setmask(md, '', '')
|
---|
14 | md = parameterize(md, '../Par/SquareSheetConstrained.py')
|
---|
15 | md.extrude(3, 1.)
|
---|
16 | md = setflowequation(md, 'SSA', 'all')
|
---|
17 |
|
---|
18 | #control parameters
|
---|
19 | md.inversion.iscontrol = 1
|
---|
20 | md.inversion.control_parameters = ['FrictionCoefficient']
|
---|
21 | md.inversion.min_parameters = 1. * np.ones((md.mesh.numberofvertices, len(md.inversion.control_parameters)))
|
---|
22 | md.inversion.max_parameters = 200. * np.ones((md.mesh.numberofvertices, len(md.inversion.control_parameters)))
|
---|
23 | md.inversion.nsteps = 2
|
---|
24 | md.inversion.cost_functions = [103, 501]
|
---|
25 | md.inversion.cost_functions_coefficients = np.ones((md.mesh.numberofvertices, 2))
|
---|
26 | md.inversion.cost_functions_coefficients[:, 1] = 2. * 10**-7
|
---|
27 | md.inversion.gradient_scaling = 3. * np.ones((md.inversion.nsteps, len(md.inversion.control_parameters)))
|
---|
28 | md.inversion.maxiter_per_step = 2 * np.ones(md.inversion.nsteps)
|
---|
29 | md.inversion.step_threshold = 0.3 * np.ones(md.inversion.nsteps)
|
---|
30 | md.inversion.vx_obs = md.initialization.vx
|
---|
31 | md.inversion.vy_obs = md.initialization.vy
|
---|
32 |
|
---|
33 | md.cluster = generic('name', gethostname(), 'np', 3)
|
---|
34 | md = solve(md, 'Stressbalance')
|
---|
35 |
|
---|
36 | #Fields and tolerances to track changes
|
---|
37 | field_names = ['Gradient', 'Misfits', 'FrictionCoefficient', 'Pressure', 'Vel', 'Vx', 'Vy']
|
---|
38 | field_tolerances = [1e-12, 1e-12, 1e-12, 1e-12, 1e-12, 1e-12, 1e-12, 1e-12, 1e-12, 1e-12]
|
---|
39 | field_values = [md.results.StressbalanceSolution.Gradient1,
|
---|
40 | md.results.StressbalanceSolution.J,
|
---|
41 | md.results.StressbalanceSolution.FrictionCoefficient,
|
---|
42 | md.results.StressbalanceSolution.Pressure,
|
---|
43 | md.results.StressbalanceSolution.Vel,
|
---|
44 | md.results.StressbalanceSolution.Vx,
|
---|
45 | md.results.StressbalanceSolution.Vy]
|
---|