source: issm/trunk/test/NightlyRun/test1602.py@ 24313

Last change on this file since 24313 was 24313, checked in by Mathieu Morlighem, 5 years ago

merged trunk-jpl and trunk for revision 24310

File size: 1.6 KB
Line 
1#Test Name: SquareSheetShelfHORotation
2import numpy as np
3import sys
4from model import *
5from socket import gethostname
6from triangle import *
7from setmask import *
8from parameterize import *
9from setflowequation import *
10from solve import *
11
12
13md = triangle(model(), '../Exp/Square.exp', 150000.)
14md = setmask(md, '../Exp/SquareShelf.exp', '')
15md = parameterize(md, '../Par/SquareSheetShelf.py')
16md.extrude(5, 1.)
17md = setflowequation(md, 'HO', 'all')
18md.stressbalance.spcvx[np.nonzero(md.mesh.y > 0.)] = np.nan
19md.initialization.vx[:] = 0.
20md.initialization.vy[:] = 0.
21md.initialization.vel = np.zeros_like(md.initialization.vx)
22
23md.cluster = generic('name', gethostname(), 'np', 3)
24md = solve(md, 'Stressbalance')
25vel0 = md.results.StressbalanceSolution.Vel
26
27theta = 30. * np.pi / 180.
28x = md.mesh.x
29y = md.mesh.y
30md.mesh.x = np.cos(theta) * x - np.sin(theta) * y
31md.mesh.y = np.sin(theta) * x + np.cos(theta) * y
32
33md.stressbalance.referential[:, 0:3] = np.tile([np.cos(theta), np.sin(theta), 0], (md.mesh.numberofvertices, 1))
34md.stressbalance.referential[:, 3:] = np.tile([0, 0, 1], (md.mesh.numberofvertices, 1))
35md = solve(md, 'Stressbalance')
36vel1 = md.results.StressbalanceSolution.Vel
37
38#plotmodel(md, 'data', vel0, 'data', vel1, 'data', vel1 - vel0, 'title', 'Cartesian CS', 'title', 'Rotated CS', 'title', 'difference', 'view #all', 2)
39print("Error between Cartesian and rotated CS: {}".format(np.max(np.abs(vel0 - vel1)) / (np.max(np.abs(vel0)) + sys.float_info.epsilon)))
40
41#Fields and tolerances to track changes
42field_names = ['vel1']
43field_tolerances = [1e-9]
44field_values = [vel1]
Note: See TracBrowser for help on using the repository browser.