1
<?xml version='1.0' encoding='utf-8'?>
3
<name>Shallow Water Equation MMS Optimisation</name>
4
<owner userid="sf1409"/>
5
<tags>swml adjoint optimisation revolve</tags>
6
<problem_definition length="medium" nprocs="1">
7
<command_line>time ../../bin/optimality optimiser_A.oml; time ../../bin/optimality optimiser_B.oml; time ../../bin/optimality optimiser_C.oml; time ../../bin/optimality optimiser_D.oml;</command_line>
10
<variable name="u_error_initial" language="python">from fluidity_tools import stat_parser as stat
13
sims = ["_A", "_B", "_C", "_D"]
14
u_error_initial = numpy.zeros(len(sims))
15
for i, sim in enumerate(sims):
16
u_error_initial[i] = stat("wave%s.stat" % sim)["Fluid"]["VelocityError%magnitude"]["max"][0]
18
<variable name="u_error_order_final" language="python">from fluidity_tools import stat_parser as stat
21
sims = ["_A", "_B", "_C", "_D"]
22
u_error = numpy.zeros(len(sims))
23
for i, sim in enumerate(sims):
24
u_error[i] = stat("wave%s.stat" % sim)["Fluid"]["VelocityError%magnitude"]["max"][-1]
26
u_error_order_final = numpy.zeros(len(sims)-1)
27
for i in range(len(sims)-1):
28
u_error_order_final[i] = math.log(u_error[i]/u_error[i+1], 2)
30
<variable name="eta_error_order_initial" language="python">from fluidity_tools import stat_parser as stat
33
sims = ["_A", "_B", "_C", "_D"]
34
eta_error = numpy.zeros(len(sims))
35
for i, sim in enumerate(sims):
36
eta_error[i] = stat("wave%s.stat" % sim)["Fluid"]["LayerThicknessError"]["max"][0]
38
eta_error_order_initial = numpy.zeros(len(sims)-1)
39
for i in range(len(sims)-1):
40
eta_error_order_initial[i] = math.log(eta_error[i]/eta_error[i+1], 2)
42
<variable name="eta_error_order_final" language="python">from fluidity_tools import stat_parser as stat
45
sims = ["_A", "_B", "_C", "_D"]
46
eta_error = numpy.zeros(len(sims))
47
for i, sim in enumerate(sims):
48
eta_error[i] = stat("wave%s.stat" % sim)["Fluid"]["LayerThicknessError"]["max"][-1]
50
eta_error_order_final = numpy.zeros(len(sims)-1)
51
for i in range(len(sims)-1):
52
eta_error_order_final[i] = math.log(eta_error[i]/eta_error[i+1], 2)
56
<test name="u_error_initial_test" language="python">assert min(u_error_initial) == 0.0</test>
57
<test name="u_error_order_final_test" language="python">assert min(u_error_order_final) > 1.8</test>
58
<test name="eta_error_order_initial_test" language="python">assert min(eta_error_order_initial) > 1.2</test>
59
<test name="eta_error_order_final_test" language="python">assert min(eta_error_order_final) > 1.9</test>