Merge lp:~fluidity-core/fluidity/ocean_forcing into lp:fluidity
- ocean_forcing
- Merge into dev-trunk
Proposed by
Jon Hill
Status: | Merged |
---|---|
Merged at revision: | 3572 |
Proposed branch: | lp:~fluidity-core/fluidity/ocean_forcing |
Merge into: | lp:fluidity |
Diff against target: |
1474 lines (+1331/-39) 10 files modified
main/Usage.cpp (+17/-11) ocean_forcing/bulk_parameterisations.F90 (+0/-1) ocean_forcing/forcingERA40.cpp (+11/-2) schemas/fluidity_options.rnc (+14/-9) schemas/fluidity_options.rng (+25/-16) tests/forcing_inst_vals/Makefile (+7/-0) tests/forcing_inst_vals/forcing-ncar.flml (+587/-0) tests/forcing_inst_vals/forcing-ncar_inst.flml (+589/-0) tests/forcing_inst_vals/forcing_inst_vals.xml (+56/-0) tests/forcing_inst_vals/src/column.geo (+25/-0) |
To merge this branch: | bzr merge lp:~fluidity-core/fluidity/ocean_forcing |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Simon Mouradian | Approve | ||
Review via email: mp+73819@code.launchpad.net |
Commit message
Description of the change
Removed the assumption of accumulated values by adding a flag to switch it off. This allows files with instantaneous values to be used instead.
This is largely for Nick's MSci project, but is part of a large plan to make the forcing routines more flexible.
To post a comment you must log in.
- 3570. By Simon Mouradian
-
Very minor modifications.
-Added spaces to diamond description.
- Enforced type real on accumulated_correction assignment (not sure if this matters?)
Revision history for this message
Simon Mouradian (mouradian) wrote : | # |
Revision history for this message
Simon Mouradian (mouradian) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'main/Usage.cpp' | |||
2 | --- main/Usage.cpp 2011-07-12 10:06:34 +0000 | |||
3 | +++ main/Usage.cpp 2011-09-05 07:36:25 +0000 | |||
4 | @@ -384,17 +384,23 @@ | |||
5 | 384 | if(have_option("/ocean_forcing/bulk_formulae/file_type")) { | 384 | if(have_option("/ocean_forcing/bulk_formulae/file_type")) { |
6 | 385 | get_option("/ocean_forcing/bulk_formulae/file_type/filetype/name", dataset); | 385 | get_option("/ocean_forcing/bulk_formulae/file_type/filetype/name", dataset); |
7 | 386 | } | 386 | } |
19 | 387 | FluxesReader_global.RegisterDataFile(option); | 387 | if (dataset == "ERA40") { |
20 | 388 | // field from NetCDF file Index | Physical meaning | 388 | FluxesReader_global.RegisterDataFile(option); |
21 | 389 | FluxesReader_global.AddFieldOfInterest("u10"); // 0 | 10 metre U wind component | 389 | // field from NetCDF file Index | Physical meaning |
22 | 390 | FluxesReader_global.AddFieldOfInterest("v10"); // 1 | 10 metre V wind component | 390 | FluxesReader_global.AddFieldOfInterest("u10"); // 0 | 10 metre U wind component |
23 | 391 | FluxesReader_global.AddFieldOfInterest("ssrd"); // 2 | Surface solar radiation | 391 | FluxesReader_global.AddFieldOfInterest("v10"); // 1 | 10 metre V wind component |
24 | 392 | FluxesReader_global.AddFieldOfInterest("strd"); // 3 | Surface thermal radiation | 392 | FluxesReader_global.AddFieldOfInterest("ssrd"); // 2 | Surface solar radiation |
25 | 393 | FluxesReader_global.AddFieldOfInterest("ro"); // 4 | Runoff | 393 | FluxesReader_global.AddFieldOfInterest("strd"); // 3 | Surface thermal radiation |
26 | 394 | FluxesReader_global.AddFieldOfInterest("tp"); // 5 | Total precipitation | 394 | FluxesReader_global.AddFieldOfInterest("ro"); // 4 | Runoff |
27 | 395 | FluxesReader_global.AddFieldOfInterest("d2m"); // 6 | Dew point temp at 2m | 395 | FluxesReader_global.AddFieldOfInterest("tp"); // 5 | Total precipitation |
28 | 396 | FluxesReader_global.AddFieldOfInterest("t2m"); // 7 | Air temp at 2m | 396 | FluxesReader_global.AddFieldOfInterest("d2m"); // 6 | Dew point temp at 2m |
29 | 397 | FluxesReader_global.AddFieldOfInterest("msl"); // 8 | Mean sea level pressure | 397 | FluxesReader_global.AddFieldOfInterest("t2m"); // 7 | Air temp at 2m |
30 | 398 | FluxesReader_global.AddFieldOfInterest("msl"); // 8 | Mean sea level pressure | ||
31 | 399 | } else { | ||
32 | 400 | cerr<<"ERROR: unsupported bulk formula input file type. Choose ERA40\n"; | ||
33 | 401 | exit(-1); | ||
34 | 402 | } | ||
35 | 403 | |||
36 | 398 | } | 404 | } |
37 | 399 | 405 | ||
38 | 400 | if(have_option("/ocean_biology/lagrangian_ensemble/hyperlight")) { | 406 | if(have_option("/ocean_biology/lagrangian_ensemble/hyperlight")) { |
39 | 401 | 407 | ||
40 | === modified file 'ocean_forcing/bulk_parameterisations.F90' | |||
41 | --- ocean_forcing/bulk_parameterisations.F90 2011-02-08 14:23:43 +0000 | |||
42 | +++ ocean_forcing/bulk_parameterisations.F90 2011-09-05 07:36:25 +0000 | |||
43 | @@ -64,7 +64,6 @@ | |||
44 | 64 | OneOverDensity = 1.0 / ocean_density, & | 64 | OneOverDensity = 1.0 / ocean_density, & |
45 | 65 | ocean_heat_capacity = 4000.0, & | 65 | ocean_heat_capacity = 4000.0, & |
46 | 66 | kelvin_centrigrade = 273.15, & | 66 | kelvin_centrigrade = 273.15, & |
47 | 67 | accumulated_correction = 6.0*60.0*60.0, & ! Assumes data every 6 hours. | ||
48 | 68 | heat_convert = 1.0 / (ocean_density * ocean_heat_capacity), & | 67 | heat_convert = 1.0 / (ocean_density * ocean_heat_capacity), & |
49 | 69 | one_over_density = 1.0 / ocean_density | 68 | one_over_density = 1.0 / ocean_density |
50 | 70 | 69 | ||
51 | 71 | 70 | ||
52 | === modified file 'ocean_forcing/forcingERA40.cpp' | |||
53 | --- ocean_forcing/forcingERA40.cpp 2011-06-07 08:12:34 +0000 | |||
54 | +++ ocean_forcing/forcingERA40.cpp 2011-09-05 07:36:25 +0000 | |||
55 | @@ -28,8 +28,10 @@ | |||
56 | 28 | #include "confdefs.h" | 28 | #include "confdefs.h" |
57 | 29 | #include "BulkForcing.h" | 29 | #include "BulkForcing.h" |
58 | 30 | #include "FluxesReader.h" | 30 | #include "FluxesReader.h" |
59 | 31 | #include "spud" | ||
60 | 31 | 32 | ||
61 | 32 | using namespace std; | 33 | using namespace std; |
62 | 34 | using namespace Spud; | ||
63 | 33 | 35 | ||
64 | 34 | extern int projections(int nPoints, double *x, double *y, double *z, string current_coord, string output_coord); | 36 | extern int projections(int nPoints, double *x, double *y, double *z, string current_coord, string output_coord); |
65 | 35 | 37 | ||
66 | @@ -43,8 +45,10 @@ | |||
67 | 43 | const double air_density = 1.22, | 45 | const double air_density = 1.22, |
68 | 44 | q1 = 0.98*640380, | 46 | q1 = 0.98*640380, |
69 | 45 | q2 = -5107.4, | 47 | q2 = -5107.4, |
72 | 46 | kelvin_centrigrade = 273.15, | 48 | kelvin_centrigrade = 273.15; |
73 | 47 | accumulated_correction = 6.0*60.0*60.0; // Assumes data every 6 hours. | 49 | |
74 | 50 | // Set up for ERA40 data. Options to change rate are set below | ||
75 | 51 | double accumulated_correction = 6.0*60.0*60.0; // Assumes data every 6 hours. | ||
76 | 48 | 52 | ||
77 | 49 | // problem constants | 53 | // problem constants |
78 | 50 | const int nFields = 9; | 54 | const int nFields = 9; |
79 | @@ -65,6 +69,11 @@ | |||
80 | 65 | double *SST = new double[NNodes]; | 69 | double *SST = new double[NNodes]; |
81 | 66 | 70 | ||
82 | 67 | FluxesReader_global.SetTimeSeconds(*time); | 71 | FluxesReader_global.SetTimeSeconds(*time); |
83 | 72 | |||
84 | 73 | if(have_option("/ocean_forcing/bulk_formulae/input_file_type/type::ERA40/no_accumulation")) { | ||
85 | 74 | cout<<"Found flag"<<endl; | ||
86 | 75 | accumulated_correction = 1.0; | ||
87 | 76 | } | ||
88 | 68 | 77 | ||
89 | 69 | // convert from Cart to long-lat | 78 | // convert from Cart to long-lat |
90 | 70 | double *x = new double[NNodes]; | 79 | double *x = new double[NNodes]; |
91 | 71 | 80 | ||
92 | === modified file 'schemas/fluidity_options.rnc' | |||
93 | --- schemas/fluidity_options.rnc 2011-07-27 12:49:45 +0000 | |||
94 | +++ schemas/fluidity_options.rnc 2011-09-05 07:36:25 +0000 | |||
95 | @@ -6508,15 +6508,20 @@ | |||
96 | 6508 | ## What kind of file is this? Currently only ERA40 files are supported | 6508 | ## What kind of file is this? Currently only ERA40 files are supported |
97 | 6509 | element type { | 6509 | element type { |
98 | 6510 | attribute name { "ERA40" }, | 6510 | attribute name { "ERA40" }, |
108 | 6511 | empty | 6511 | ## The data from ERA40 website included accumulated values (ppt, ro, ssrd, strd). |
109 | 6512 | #}| | 6512 | ## If these values have been already ammended to instantaneous values, then switch this |
110 | 6513 | #element type { | 6513 | ## flag on and the accumulation correction will not be applied. |
111 | 6514 | # attribute name { "NSEP" }, | 6514 | element no_accumulation { |
112 | 6515 | # empty | 6515 | empty |
113 | 6516 | #}| | 6516 | }? |
114 | 6517 | #element type { | 6517 | }| |
115 | 6518 | # attribute name { "ICOM" }, | 6518 | element type { |
116 | 6519 | # empty | 6519 | attribute name { "NSEP" }, |
117 | 6520 | empty | ||
118 | 6521 | }| | ||
119 | 6522 | element type { | ||
120 | 6523 | attribute name { "ICOM" }, | ||
121 | 6524 | empty | ||
122 | 6520 | } | 6525 | } |
123 | 6521 | }?, | 6526 | }?, |
124 | 6522 | ## Adding a latitude and longitude here (specified as two real numbers) | 6527 | ## Adding a latitude and longitude here (specified as two real numbers) |
125 | 6523 | 6528 | ||
126 | === modified file 'schemas/fluidity_options.rng' | |||
127 | --- schemas/fluidity_options.rng 2011-07-27 12:49:45 +0000 | |||
128 | +++ schemas/fluidity_options.rng 2011-09-05 07:36:25 +0000 | |||
129 | @@ -8248,25 +8248,34 @@ | |||
130 | 8248 | </element> | 8248 | </element> |
131 | 8249 | <optional> | 8249 | <optional> |
132 | 8250 | <element name="input_file_type"> | 8250 | <element name="input_file_type"> |
136 | 8251 | <element name="type"> | 8251 | <choice> |
137 | 8252 | <a:documentation>What kind of file is this? Currently only ERA40 files are supported</a:documentation> | 8252 | <element name="type"> |
138 | 8253 | <group> | 8253 | <a:documentation>What kind of file is this? Currently only ERA40 files are supported</a:documentation> |
139 | 8254 | <attribute name="name"> | 8254 | <attribute name="name"> |
140 | 8255 | <value>ERA40</value> | 8255 | <value>ERA40</value> |
141 | 8256 | </attribute> | 8256 | </attribute> |
155 | 8257 | <empty/> | 8257 | <optional> |
156 | 8258 | </group> | 8258 | <element name="no_accumulation"> |
157 | 8259 | <!-- | 8259 | <a:documentation>The data from ERA40 website included accumulated values (ppt, ro, ssrd, strd). |
158 | 8260 | }| | 8260 | If these values have been already ammended to instantaneous values, then switch this |
159 | 8261 | element type { | 8261 | flag on and the accumulation correction will not be applied.</a:documentation> |
160 | 8262 | attribute name { "NSEP" }, | 8262 | <empty/> |
161 | 8263 | empty | 8263 | </element> |
162 | 8264 | }| | 8264 | </optional> |
163 | 8265 | element type { | 8265 | </element> |
164 | 8266 | attribute name { "ICOM" }, | 8266 | <element name="type"> |
165 | 8267 | empty | 8267 | <attribute name="name"> |
166 | 8268 | --> | 8268 | <value>NSEP</value> |
167 | 8269 | </element> | 8269 | </attribute> |
168 | 8270 | <empty/> | ||
169 | 8271 | </element> | ||
170 | 8272 | <element name="type"> | ||
171 | 8273 | <attribute name="name"> | ||
172 | 8274 | <value>ICOM</value> | ||
173 | 8275 | </attribute> | ||
174 | 8276 | <empty/> | ||
175 | 8277 | </element> | ||
176 | 8278 | </choice> | ||
177 | 8270 | </element> | 8279 | </element> |
178 | 8271 | </optional> | 8280 | </optional> |
179 | 8272 | <optional> | 8281 | <optional> |
180 | 8273 | 8282 | ||
181 | === added directory 'tests/forcing_inst_vals' | |||
182 | === added file 'tests/forcing_inst_vals/1970_stationPapa.nc' | |||
183 | 8274 | Binary files tests/forcing_inst_vals/1970_stationPapa.nc 1970-01-01 00:00:00 +0000 and tests/forcing_inst_vals/1970_stationPapa.nc 2011-09-05 07:36:25 +0000 differ | 8283 | Binary files tests/forcing_inst_vals/1970_stationPapa.nc 1970-01-01 00:00:00 +0000 and tests/forcing_inst_vals/1970_stationPapa.nc 2011-09-05 07:36:25 +0000 differ |
184 | === added file 'tests/forcing_inst_vals/1970_stationPapa_unacc.nc' | |||
185 | 8275 | Binary files tests/forcing_inst_vals/1970_stationPapa_unacc.nc 1970-01-01 00:00:00 +0000 and tests/forcing_inst_vals/1970_stationPapa_unacc.nc 2011-09-05 07:36:25 +0000 differ | 8284 | Binary files tests/forcing_inst_vals/1970_stationPapa_unacc.nc 1970-01-01 00:00:00 +0000 and tests/forcing_inst_vals/1970_stationPapa_unacc.nc 2011-09-05 07:36:25 +0000 differ |
186 | === added file 'tests/forcing_inst_vals/Makefile' | |||
187 | --- tests/forcing_inst_vals/Makefile 1970-01-01 00:00:00 +0000 | |||
188 | +++ tests/forcing_inst_vals/Makefile 2011-09-05 07:36:25 +0000 | |||
189 | @@ -0,0 +1,7 @@ | |||
190 | 1 | input: clean | ||
191 | 2 | gmsh -3 -o column.msh src/column.geo | ||
192 | 3 | ../../scripts/gmsh2triangle column.msh | ||
193 | 4 | |||
194 | 5 | clean: | ||
195 | 6 | rm -f *.ele *.edge *.node *.face *.poly *.vtu *.s *.stat *.log-0 *.err-0 matrixdump* *log *err | ||
196 | 7 | rm -f *.msh | ||
197 | 0 | 8 | ||
198 | === added file 'tests/forcing_inst_vals/forcing-ncar.flml' | |||
199 | --- tests/forcing_inst_vals/forcing-ncar.flml 1970-01-01 00:00:00 +0000 | |||
200 | +++ tests/forcing_inst_vals/forcing-ncar.flml 2011-09-05 07:36:25 +0000 | |||
201 | @@ -0,0 +1,587 @@ | |||
202 | 1 | <?xml version='1.0' encoding='utf-8'?> | ||
203 | 2 | <fluidity_options> | ||
204 | 3 | <simulation_name> | ||
205 | 4 | <string_value lines="1">forcing-ncar</string_value> | ||
206 | 5 | </simulation_name> | ||
207 | 6 | <problem_type> | ||
208 | 7 | <string_value lines="1">oceans</string_value> | ||
209 | 8 | </problem_type> | ||
210 | 9 | <geometry> | ||
211 | 10 | <dimension> | ||
212 | 11 | <integer_value rank="0">3</integer_value> | ||
213 | 12 | </dimension> | ||
214 | 13 | <mesh name="CoordinateMesh"> | ||
215 | 14 | <from_file file_name="column"> | ||
216 | 15 | <format name="triangle"/> | ||
217 | 16 | <stat> | ||
218 | 17 | <include_in_stat/> | ||
219 | 18 | </stat> | ||
220 | 19 | </from_file> | ||
221 | 20 | </mesh> | ||
222 | 21 | <mesh name="VelocityMesh"> | ||
223 | 22 | <from_mesh> | ||
224 | 23 | <mesh name="CoordinateMesh"/> | ||
225 | 24 | <stat> | ||
226 | 25 | <exclude_from_stat/> | ||
227 | 26 | </stat> | ||
228 | 27 | </from_mesh> | ||
229 | 28 | </mesh> | ||
230 | 29 | <mesh name="PressureMesh"> | ||
231 | 30 | <from_mesh> | ||
232 | 31 | <mesh name="CoordinateMesh"/> | ||
233 | 32 | <stat> | ||
234 | 33 | <exclude_from_stat/> | ||
235 | 34 | </stat> | ||
236 | 35 | </from_mesh> | ||
237 | 36 | </mesh> | ||
238 | 37 | <quadrature> | ||
239 | 38 | <degree> | ||
240 | 39 | <integer_value rank="0">3</integer_value> | ||
241 | 40 | </degree> | ||
242 | 41 | </quadrature> | ||
243 | 42 | </geometry> | ||
244 | 43 | <io> | ||
245 | 44 | <dump_format> | ||
246 | 45 | <string_value>vtk</string_value> | ||
247 | 46 | </dump_format> | ||
248 | 47 | <dump_period> | ||
249 | 48 | <constant> | ||
250 | 49 | <real_value rank="0">360.0</real_value> | ||
251 | 50 | </constant> | ||
252 | 51 | </dump_period> | ||
253 | 52 | <output_mesh name="CoordinateMesh"/> | ||
254 | 53 | <stat/> | ||
255 | 54 | </io> | ||
256 | 55 | <timestepping> | ||
257 | 56 | <current_time> | ||
258 | 57 | <real_value rank="0">0.0</real_value> | ||
259 | 58 | <time_units date="seconds since 1970-01-01 12:00:0.0"/> | ||
260 | 59 | </current_time> | ||
261 | 60 | <timestep> | ||
262 | 61 | <real_value rank="0">360.0</real_value> | ||
263 | 62 | </timestep> | ||
264 | 63 | <finish_time> | ||
265 | 64 | <real_value rank="0">1440</real_value> | ||
266 | 65 | <comment>31536000.0 - 1 year | ||
267 | 66 | 360000 - 12 hours (i.e. 2 forcing steps)</comment> | ||
268 | 67 | </finish_time> | ||
269 | 68 | <nonlinear_iterations> | ||
270 | 69 | <integer_value rank="0">2</integer_value> | ||
271 | 70 | </nonlinear_iterations> | ||
272 | 71 | </timestepping> | ||
273 | 72 | <physical_parameters> | ||
274 | 73 | <gravity> | ||
275 | 74 | <magnitude> | ||
276 | 75 | <real_value rank="0">9.8</real_value> | ||
277 | 76 | </magnitude> | ||
278 | 77 | <vector_field name="GravityDirection" rank="1"> | ||
279 | 78 | <prescribed> | ||
280 | 79 | <mesh name="CoordinateMesh"/> | ||
281 | 80 | <value name="WholeMesh"> | ||
282 | 81 | <constant> | ||
283 | 82 | <real_value shape="3" dim1="dim" rank="1">0.0 0.0 -1.0</real_value> | ||
284 | 83 | </constant> | ||
285 | 84 | </value> | ||
286 | 85 | <output/> | ||
287 | 86 | <stat> | ||
288 | 87 | <include_in_stat/> | ||
289 | 88 | </stat> | ||
290 | 89 | <detectors> | ||
291 | 90 | <exclude_from_detectors/> | ||
292 | 91 | </detectors> | ||
293 | 92 | </prescribed> | ||
294 | 93 | </vector_field> | ||
295 | 94 | </gravity> | ||
296 | 95 | <coriolis> | ||
297 | 96 | <f_plane> | ||
298 | 97 | <f> | ||
299 | 98 | <real_value rank="0">1.0e-4</real_value> | ||
300 | 99 | </f> | ||
301 | 100 | </f_plane> | ||
302 | 101 | </coriolis> | ||
303 | 102 | </physical_parameters> | ||
304 | 103 | <material_phase name="Fluid"> | ||
305 | 104 | <equation_of_state> | ||
306 | 105 | <fluids> | ||
307 | 106 | <ocean_pade_approximation/> | ||
308 | 107 | </fluids> | ||
309 | 108 | </equation_of_state> | ||
310 | 109 | <subgridscale_parameterisations> | ||
311 | 110 | <prescribed_diffusivity> | ||
312 | 111 | <tensor_field name="PrescribedDiffusivity" rank="2"> | ||
313 | 112 | <prescribed> | ||
314 | 113 | <mesh name="VelocityMesh"/> | ||
315 | 114 | <value name="WholeMesh"> | ||
316 | 115 | <anisotropic_symmetric> | ||
317 | 116 | <constant> | ||
318 | 117 | <real_value symmetric="true" dim2="dim" shape="3 3" dim1="dim" rank="2">10 0 0 0 10 0 0 0 1e-4</real_value> | ||
319 | 118 | </constant> | ||
320 | 119 | </anisotropic_symmetric> | ||
321 | 120 | </value> | ||
322 | 121 | <output/> | ||
323 | 122 | </prescribed> | ||
324 | 123 | </tensor_field> | ||
325 | 124 | </prescribed_diffusivity> | ||
326 | 125 | </subgridscale_parameterisations> | ||
327 | 126 | <scalar_field name="Pressure" rank="0"> | ||
328 | 127 | <prescribed> | ||
329 | 128 | <mesh name="PressureMesh"/> | ||
330 | 129 | <value name="WholeMesh"> | ||
331 | 130 | <constant> | ||
332 | 131 | <real_value rank="0">0.0</real_value> | ||
333 | 132 | </constant> | ||
334 | 133 | </value> | ||
335 | 134 | <output/> | ||
336 | 135 | <stat/> | ||
337 | 136 | <detectors> | ||
338 | 137 | <exclude_from_detectors/> | ||
339 | 138 | </detectors> | ||
340 | 139 | </prescribed> | ||
341 | 140 | </scalar_field> | ||
342 | 141 | <vector_field name="Velocity" rank="1"> | ||
343 | 142 | <prognostic> | ||
344 | 143 | <mesh name="VelocityMesh"/> | ||
345 | 144 | <equation name="Boussinesq"/> | ||
346 | 145 | <spatial_discretisation> | ||
347 | 146 | <continuous_galerkin> | ||
348 | 147 | <stabilisation> | ||
349 | 148 | <streamline_upwind> | ||
350 | 149 | <nu_bar_unity/> | ||
351 | 150 | <nu_scale name="unity"> | ||
352 | 151 | <real_value shape="1" rank="0">1.0</real_value> | ||
353 | 152 | </nu_scale> | ||
354 | 153 | </streamline_upwind> | ||
355 | 154 | </stabilisation> | ||
356 | 155 | <mass_terms> | ||
357 | 156 | <lump_mass_matrix/> | ||
358 | 157 | </mass_terms> | ||
359 | 158 | <advection_terms> | ||
360 | 159 | <exclude_advection_terms/> | ||
361 | 160 | </advection_terms> | ||
362 | 161 | <stress_terms> | ||
363 | 162 | <tensor_form/> | ||
364 | 163 | </stress_terms> | ||
365 | 164 | </continuous_galerkin> | ||
366 | 165 | <conservative_advection> | ||
367 | 166 | <real_value rank="0">0.0</real_value> | ||
368 | 167 | </conservative_advection> | ||
369 | 168 | </spatial_discretisation> | ||
370 | 169 | <temporal_discretisation> | ||
371 | 170 | <theta> | ||
372 | 171 | <real_value rank="0">1.0</real_value> | ||
373 | 172 | </theta> | ||
374 | 173 | <relaxation> | ||
375 | 174 | <real_value rank="0">1.0</real_value> | ||
376 | 175 | </relaxation> | ||
377 | 176 | </temporal_discretisation> | ||
378 | 177 | <solver> | ||
379 | 178 | <iterative_method name="gmres"> | ||
380 | 179 | <restart> | ||
381 | 180 | <integer_value rank="0">30</integer_value> | ||
382 | 181 | </restart> | ||
383 | 182 | </iterative_method> | ||
384 | 183 | <preconditioner name="sor"/> | ||
385 | 184 | <relative_error> | ||
386 | 185 | <real_value rank="0">1.0E-5</real_value> | ||
387 | 186 | </relative_error> | ||
388 | 187 | <max_iterations> | ||
389 | 188 | <integer_value rank="0">2000</integer_value> | ||
390 | 189 | </max_iterations> | ||
391 | 190 | <never_ignore_solver_failures/> | ||
392 | 191 | <diagnostics> | ||
393 | 192 | <monitors/> | ||
394 | 193 | </diagnostics> | ||
395 | 194 | </solver> | ||
396 | 195 | <initial_condition name="WholeMesh"> | ||
397 | 196 | <constant> | ||
398 | 197 | <real_value shape="3" dim1="dim" rank="1">0.0 0.0 0.0</real_value> | ||
399 | 198 | </constant> | ||
400 | 199 | </initial_condition> | ||
401 | 200 | <boundary_conditions name="lateral"> | ||
402 | 201 | <surface_ids> | ||
403 | 202 | <integer_value shape="4" rank="1">40 41 42 43</integer_value> | ||
404 | 203 | </surface_ids> | ||
405 | 204 | <type name="dirichlet"> | ||
406 | 205 | <align_bc_with_cartesian> | ||
407 | 206 | <z_component> | ||
408 | 207 | <constant> | ||
409 | 208 | <real_value rank="0">0.0</real_value> | ||
410 | 209 | </constant> | ||
411 | 210 | </z_component> | ||
412 | 211 | </align_bc_with_cartesian> | ||
413 | 212 | </type> | ||
414 | 213 | </boundary_conditions> | ||
415 | 214 | <boundary_conditions name="topbottom"> | ||
416 | 215 | <surface_ids> | ||
417 | 216 | <integer_value shape="2" rank="1">38 39</integer_value> | ||
418 | 217 | </surface_ids> | ||
419 | 218 | <type name="dirichlet"> | ||
420 | 219 | <align_bc_with_cartesian> | ||
421 | 220 | <z_component> | ||
422 | 221 | <constant> | ||
423 | 222 | <real_value rank="0">0.0</real_value> | ||
424 | 223 | </constant> | ||
425 | 224 | </z_component> | ||
426 | 225 | </align_bc_with_cartesian> | ||
427 | 226 | </type> | ||
428 | 227 | </boundary_conditions> | ||
429 | 228 | <boundary_conditions name="BulkFormulaVelocity"> | ||
430 | 229 | <surface_ids> | ||
431 | 230 | <integer_value shape="1" rank="1">38</integer_value> | ||
432 | 231 | </surface_ids> | ||
433 | 232 | <type name="bulk_formulae"/> | ||
434 | 233 | </boundary_conditions> | ||
435 | 234 | <tensor_field name="Viscosity" rank="2"> | ||
436 | 235 | <prescribed> | ||
437 | 236 | <value name="WholeMesh"> | ||
438 | 237 | <anisotropic_symmetric> | ||
439 | 238 | <constant> | ||
440 | 239 | <real_value symmetric="true" dim2="dim" shape="3 3" dim1="dim" rank="2">10 0 0 0 10 0 0 0 1e-4</real_value> | ||
441 | 240 | </constant> | ||
442 | 241 | </anisotropic_symmetric> | ||
443 | 242 | </value> | ||
444 | 243 | <output/> | ||
445 | 244 | </prescribed> | ||
446 | 245 | </tensor_field> | ||
447 | 246 | <vector_field name="Absorption" rank="1"> | ||
448 | 247 | <prescribed> | ||
449 | 248 | <value name="WholeMesh"> | ||
450 | 249 | <constant> | ||
451 | 250 | <real_value shape="3" dim1="dim" rank="1">1.0e-7 1.0e-7 1.0e-7</real_value> | ||
452 | 251 | </constant> | ||
453 | 252 | </value> | ||
454 | 253 | <output/> | ||
455 | 254 | <stat> | ||
456 | 255 | <include_in_stat/> | ||
457 | 256 | </stat> | ||
458 | 257 | <detectors> | ||
459 | 258 | <exclude_from_detectors/> | ||
460 | 259 | </detectors> | ||
461 | 260 | </prescribed> | ||
462 | 261 | <default_absorption/> | ||
463 | 262 | </vector_field> | ||
464 | 263 | <output/> | ||
465 | 264 | <stat> | ||
466 | 265 | <include_in_stat/> | ||
467 | 266 | <previous_time_step> | ||
468 | 267 | <exclude_from_stat/> | ||
469 | 268 | </previous_time_step> | ||
470 | 269 | <nonlinear_field> | ||
471 | 270 | <exclude_from_stat/> | ||
472 | 271 | </nonlinear_field> | ||
473 | 272 | </stat> | ||
474 | 273 | <convergence> | ||
475 | 274 | <include_in_convergence/> | ||
476 | 275 | </convergence> | ||
477 | 276 | <detectors> | ||
478 | 277 | <include_in_detectors/> | ||
479 | 278 | </detectors> | ||
480 | 279 | <steady_state> | ||
481 | 280 | <include_in_steady_state/> | ||
482 | 281 | </steady_state> | ||
483 | 282 | <consistent_interpolation/> | ||
484 | 283 | </prognostic> | ||
485 | 284 | </vector_field> | ||
486 | 285 | <scalar_field name="Temperature" rank="0"> | ||
487 | 286 | <prognostic> | ||
488 | 287 | <mesh name="VelocityMesh"/> | ||
489 | 288 | <equation name="AdvectionDiffusion"/> | ||
490 | 289 | <spatial_discretisation> | ||
491 | 290 | <continuous_galerkin> | ||
492 | 291 | <stabilisation> | ||
493 | 292 | <streamline_upwind> | ||
494 | 293 | <nu_bar_unity/> | ||
495 | 294 | <nu_scale name="unity"> | ||
496 | 295 | <real_value shape="1" rank="0">1.0</real_value> | ||
497 | 296 | </nu_scale> | ||
498 | 297 | </streamline_upwind> | ||
499 | 298 | </stabilisation> | ||
500 | 299 | <advection_terms> | ||
501 | 300 | <exclude_advection_terms/> | ||
502 | 301 | </advection_terms> | ||
503 | 302 | <mass_terms/> | ||
504 | 303 | </continuous_galerkin> | ||
505 | 304 | <conservative_advection> | ||
506 | 305 | <real_value rank="0">0.0</real_value> | ||
507 | 306 | </conservative_advection> | ||
508 | 307 | </spatial_discretisation> | ||
509 | 308 | <temporal_discretisation> | ||
510 | 309 | <theta> | ||
511 | 310 | <real_value rank="0">1.0</real_value> | ||
512 | 311 | </theta> | ||
513 | 312 | </temporal_discretisation> | ||
514 | 313 | <solver> | ||
515 | 314 | <iterative_method name="gmres"> | ||
516 | 315 | <restart> | ||
517 | 316 | <integer_value rank="0">30</integer_value> | ||
518 | 317 | </restart> | ||
519 | 318 | </iterative_method> | ||
520 | 319 | <preconditioner name="sor"/> | ||
521 | 320 | <relative_error> | ||
522 | 321 | <real_value rank="0">5.0e-5</real_value> | ||
523 | 322 | </relative_error> | ||
524 | 323 | <max_iterations> | ||
525 | 324 | <integer_value rank="0">1000000</integer_value> | ||
526 | 325 | </max_iterations> | ||
527 | 326 | <never_ignore_solver_failures/> | ||
528 | 327 | <diagnostics> | ||
529 | 328 | <monitors/> | ||
530 | 329 | </diagnostics> | ||
531 | 330 | </solver> | ||
532 | 331 | <initial_condition name="WholeMesh"> | ||
533 | 332 | <constant> | ||
534 | 333 | <real_value rank="0">280</real_value> | ||
535 | 334 | </constant> | ||
536 | 335 | </initial_condition> | ||
537 | 336 | <boundary_conditions name="BulkFormulaTemperature"> | ||
538 | 337 | <surface_ids> | ||
539 | 338 | <integer_value shape="1" rank="1">38</integer_value> | ||
540 | 339 | </surface_ids> | ||
541 | 340 | <type name="bulk_formulae"/> | ||
542 | 341 | </boundary_conditions> | ||
543 | 342 | <subgridscale_parameterisation name="prescribed_diffusivity"/> | ||
544 | 343 | <output/> | ||
545 | 344 | <stat/> | ||
546 | 345 | <convergence> | ||
547 | 346 | <include_in_convergence/> | ||
548 | 347 | </convergence> | ||
549 | 348 | <detectors> | ||
550 | 349 | <include_in_detectors/> | ||
551 | 350 | </detectors> | ||
552 | 351 | <steady_state> | ||
553 | 352 | <include_in_steady_state/> | ||
554 | 353 | </steady_state> | ||
555 | 354 | <consistent_interpolation/> | ||
556 | 355 | </prognostic> | ||
557 | 356 | </scalar_field> | ||
558 | 357 | <scalar_field name="PerturbationDensity" rank="0"> | ||
559 | 358 | <diagnostic> | ||
560 | 359 | <algorithm name="Internal" material_phase_support="multiple"/> | ||
561 | 360 | <mesh name="VelocityMesh"/> | ||
562 | 361 | <output/> | ||
563 | 362 | <stat/> | ||
564 | 363 | <convergence> | ||
565 | 364 | <include_in_convergence/> | ||
566 | 365 | </convergence> | ||
567 | 366 | <detectors> | ||
568 | 367 | <include_in_detectors/> | ||
569 | 368 | </detectors> | ||
570 | 369 | <steady_state> | ||
571 | 370 | <include_in_steady_state/> | ||
572 | 371 | </steady_state> | ||
573 | 372 | </diagnostic> | ||
574 | 373 | </scalar_field> | ||
575 | 374 | <scalar_field name="Salinity" rank="0"> | ||
576 | 375 | <prognostic> | ||
577 | 376 | <mesh name="VelocityMesh"/> | ||
578 | 377 | <equation name="AdvectionDiffusion"/> | ||
579 | 378 | <spatial_discretisation> | ||
580 | 379 | <continuous_galerkin> | ||
581 | 380 | <stabilisation> | ||
582 | 381 | <no_stabilisation/> | ||
583 | 382 | </stabilisation> | ||
584 | 383 | <advection_terms/> | ||
585 | 384 | <mass_terms/> | ||
586 | 385 | </continuous_galerkin> | ||
587 | 386 | <conservative_advection> | ||
588 | 387 | <real_value rank="0">0.0</real_value> | ||
589 | 388 | </conservative_advection> | ||
590 | 389 | </spatial_discretisation> | ||
591 | 390 | <temporal_discretisation> | ||
592 | 391 | <theta> | ||
593 | 392 | <real_value rank="0">1.0</real_value> | ||
594 | 393 | </theta> | ||
595 | 394 | </temporal_discretisation> | ||
596 | 395 | <solver> | ||
597 | 396 | <iterative_method name="gmres"> | ||
598 | 397 | <restart> | ||
599 | 398 | <integer_value rank="0">30</integer_value> | ||
600 | 399 | </restart> | ||
601 | 400 | </iterative_method> | ||
602 | 401 | <preconditioner name="sor"/> | ||
603 | 402 | <relative_error> | ||
604 | 403 | <real_value rank="0">1.0e-7</real_value> | ||
605 | 404 | </relative_error> | ||
606 | 405 | <max_iterations> | ||
607 | 406 | <integer_value rank="0">2000</integer_value> | ||
608 | 407 | </max_iterations> | ||
609 | 408 | <never_ignore_solver_failures/> | ||
610 | 409 | <diagnostics> | ||
611 | 410 | <monitors/> | ||
612 | 411 | </diagnostics> | ||
613 | 412 | </solver> | ||
614 | 413 | <initial_condition name="WholeMesh"> | ||
615 | 414 | <constant> | ||
616 | 415 | <real_value rank="0">35</real_value> | ||
617 | 416 | </constant> | ||
618 | 417 | </initial_condition> | ||
619 | 418 | <boundary_conditions name="BulkFormulaSalinity"> | ||
620 | 419 | <surface_ids> | ||
621 | 420 | <integer_value shape="1" rank="1">38</integer_value> | ||
622 | 421 | </surface_ids> | ||
623 | 422 | <type name="bulk_formulae"/> | ||
624 | 423 | </boundary_conditions> | ||
625 | 424 | <subgridscale_parameterisation name="prescribed_diffusivity"/> | ||
626 | 425 | <output/> | ||
627 | 426 | <stat/> | ||
628 | 427 | <convergence> | ||
629 | 428 | <include_in_convergence/> | ||
630 | 429 | </convergence> | ||
631 | 430 | <detectors> | ||
632 | 431 | <include_in_detectors/> | ||
633 | 432 | </detectors> | ||
634 | 433 | <steady_state> | ||
635 | 434 | <include_in_steady_state/> | ||
636 | 435 | </steady_state> | ||
637 | 436 | <consistent_interpolation/> | ||
638 | 437 | </prognostic> | ||
639 | 438 | </scalar_field> | ||
640 | 439 | <scalar_field name="PhotosyntheticRadiation" rank="0"> | ||
641 | 440 | <prognostic> | ||
642 | 441 | <mesh name="VelocityMesh"/> | ||
643 | 442 | <equation name="AdvectionDiffusion"/> | ||
644 | 443 | <spatial_discretisation> | ||
645 | 444 | <continuous_galerkin> | ||
646 | 445 | <stabilisation> | ||
647 | 446 | <no_stabilisation/> | ||
648 | 447 | </stabilisation> | ||
649 | 448 | <advection_terms> | ||
650 | 449 | <exclude_advection_terms/> | ||
651 | 450 | </advection_terms> | ||
652 | 451 | <mass_terms/> | ||
653 | 452 | </continuous_galerkin> | ||
654 | 453 | <conservative_advection> | ||
655 | 454 | <real_value rank="0">0</real_value> | ||
656 | 455 | </conservative_advection> | ||
657 | 456 | </spatial_discretisation> | ||
658 | 457 | <temporal_discretisation> | ||
659 | 458 | <theta> | ||
660 | 459 | <real_value rank="0">1</real_value> | ||
661 | 460 | </theta> | ||
662 | 461 | </temporal_discretisation> | ||
663 | 462 | <solver> | ||
664 | 463 | <iterative_method name="gmres"> | ||
665 | 464 | <restart> | ||
666 | 465 | <integer_value rank="0">30</integer_value> | ||
667 | 466 | </restart> | ||
668 | 467 | </iterative_method> | ||
669 | 468 | <preconditioner name="sor"/> | ||
670 | 469 | <relative_error> | ||
671 | 470 | <real_value rank="0">1e-6</real_value> | ||
672 | 471 | </relative_error> | ||
673 | 472 | <max_iterations> | ||
674 | 473 | <integer_value rank="0">3000</integer_value> | ||
675 | 474 | </max_iterations> | ||
676 | 475 | <never_ignore_solver_failures/> | ||
677 | 476 | <diagnostics> | ||
678 | 477 | <monitors/> | ||
679 | 478 | </diagnostics> | ||
680 | 479 | </solver> | ||
681 | 480 | <initial_condition name="WholeMesh"> | ||
682 | 481 | <constant> | ||
683 | 482 | <real_value rank="0">0</real_value> | ||
684 | 483 | </constant> | ||
685 | 484 | </initial_condition> | ||
686 | 485 | <boundary_conditions name="BulkFormulaPSR"> | ||
687 | 486 | <surface_ids> | ||
688 | 487 | <integer_value shape="1" rank="1">38</integer_value> | ||
689 | 488 | </surface_ids> | ||
690 | 489 | <type name="bulk_formulae"/> | ||
691 | 490 | </boundary_conditions> | ||
692 | 491 | <output/> | ||
693 | 492 | <stat/> | ||
694 | 493 | <convergence> | ||
695 | 494 | <include_in_convergence/> | ||
696 | 495 | </convergence> | ||
697 | 496 | <detectors> | ||
698 | 497 | <include_in_detectors/> | ||
699 | 498 | </detectors> | ||
700 | 499 | <steady_state> | ||
701 | 500 | <include_in_steady_state/> | ||
702 | 501 | </steady_state> | ||
703 | 502 | <consistent_interpolation/> | ||
704 | 503 | </prognostic> | ||
705 | 504 | </scalar_field> | ||
706 | 505 | </material_phase> | ||
707 | 506 | <ocean_forcing> | ||
708 | 507 | <bulk_formulae> | ||
709 | 508 | <bulk_formulae> | ||
710 | 509 | <type name="NCAR"/> | ||
711 | 510 | </bulk_formulae> | ||
712 | 511 | <input_file file_name="1970_stationPapa.nc"/> | ||
713 | 512 | <input_file_type> | ||
714 | 513 | <type name="ERA40"/> | ||
715 | 514 | </input_file_type> | ||
716 | 515 | <output_fluxes_diagnostics> | ||
717 | 516 | <vector_field name="MomentumFlux" rank="1"> | ||
718 | 517 | <diagnostic> | ||
719 | 518 | <algorithm name="Internal" material_phase_support="multiple"/> | ||
720 | 519 | <mesh name="VelocityMesh"/> | ||
721 | 520 | <output/> | ||
722 | 521 | <stat/> | ||
723 | 522 | <convergence> | ||
724 | 523 | <include_in_convergence/> | ||
725 | 524 | </convergence> | ||
726 | 525 | <detectors> | ||
727 | 526 | <include_in_detectors/> | ||
728 | 527 | </detectors> | ||
729 | 528 | <steady_state> | ||
730 | 529 | <include_in_steady_state/> | ||
731 | 530 | </steady_state> | ||
732 | 531 | </diagnostic> | ||
733 | 532 | </vector_field> | ||
734 | 533 | <scalar_field name="HeatFlux" rank="0"> | ||
735 | 534 | <diagnostic> | ||
736 | 535 | <algorithm name="Internal" material_phase_support="multiple"/> | ||
737 | 536 | <mesh name="VelocityMesh"/> | ||
738 | 537 | <output/> | ||
739 | 538 | <stat/> | ||
740 | 539 | <convergence> | ||
741 | 540 | <include_in_convergence/> | ||
742 | 541 | </convergence> | ||
743 | 542 | <detectors> | ||
744 | 543 | <include_in_detectors/> | ||
745 | 544 | </detectors> | ||
746 | 545 | <steady_state> | ||
747 | 546 | <include_in_steady_state/> | ||
748 | 547 | </steady_state> | ||
749 | 548 | </diagnostic> | ||
750 | 549 | </scalar_field> | ||
751 | 550 | <scalar_field name="SalinityFlux" rank="0"> | ||
752 | 551 | <diagnostic> | ||
753 | 552 | <algorithm name="Internal" material_phase_support="multiple"/> | ||
754 | 553 | <mesh name="VelocityMesh"/> | ||
755 | 554 | <output/> | ||
756 | 555 | <stat/> | ||
757 | 556 | <convergence> | ||
758 | 557 | <include_in_convergence/> | ||
759 | 558 | </convergence> | ||
760 | 559 | <detectors> | ||
761 | 560 | <include_in_detectors/> | ||
762 | 561 | </detectors> | ||
763 | 562 | <steady_state> | ||
764 | 563 | <include_in_steady_state/> | ||
765 | 564 | </steady_state> | ||
766 | 565 | </diagnostic> | ||
767 | 566 | </scalar_field> | ||
768 | 567 | <scalar_field name="PhotosyntheticRadiationDownward" rank="0"> | ||
769 | 568 | <diagnostic> | ||
770 | 569 | <algorithm name="Internal" material_phase_support="multiple"/> | ||
771 | 570 | <mesh name="VelocityMesh"/> | ||
772 | 571 | <output/> | ||
773 | 572 | <stat/> | ||
774 | 573 | <convergence> | ||
775 | 574 | <include_in_convergence/> | ||
776 | 575 | </convergence> | ||
777 | 576 | <detectors> | ||
778 | 577 | <include_in_detectors/> | ||
779 | 578 | </detectors> | ||
780 | 579 | <steady_state> | ||
781 | 580 | <include_in_steady_state/> | ||
782 | 581 | </steady_state> | ||
783 | 582 | </diagnostic> | ||
784 | 583 | </scalar_field> | ||
785 | 584 | </output_fluxes_diagnostics> | ||
786 | 585 | </bulk_formulae> | ||
787 | 586 | </ocean_forcing> | ||
788 | 587 | </fluidity_options> | ||
789 | 0 | 588 | ||
790 | === added file 'tests/forcing_inst_vals/forcing-ncar_inst.flml' | |||
791 | --- tests/forcing_inst_vals/forcing-ncar_inst.flml 1970-01-01 00:00:00 +0000 | |||
792 | +++ tests/forcing_inst_vals/forcing-ncar_inst.flml 2011-09-05 07:36:25 +0000 | |||
793 | @@ -0,0 +1,589 @@ | |||
794 | 1 | <?xml version='1.0' encoding='utf-8'?> | ||
795 | 2 | <fluidity_options> | ||
796 | 3 | <simulation_name> | ||
797 | 4 | <string_value lines="1">forcing-ncar_inst</string_value> | ||
798 | 5 | </simulation_name> | ||
799 | 6 | <problem_type> | ||
800 | 7 | <string_value lines="1">oceans</string_value> | ||
801 | 8 | </problem_type> | ||
802 | 9 | <geometry> | ||
803 | 10 | <dimension> | ||
804 | 11 | <integer_value rank="0">3</integer_value> | ||
805 | 12 | </dimension> | ||
806 | 13 | <mesh name="CoordinateMesh"> | ||
807 | 14 | <from_file file_name="column"> | ||
808 | 15 | <format name="triangle"/> | ||
809 | 16 | <stat> | ||
810 | 17 | <include_in_stat/> | ||
811 | 18 | </stat> | ||
812 | 19 | </from_file> | ||
813 | 20 | </mesh> | ||
814 | 21 | <mesh name="VelocityMesh"> | ||
815 | 22 | <from_mesh> | ||
816 | 23 | <mesh name="CoordinateMesh"/> | ||
817 | 24 | <stat> | ||
818 | 25 | <exclude_from_stat/> | ||
819 | 26 | </stat> | ||
820 | 27 | </from_mesh> | ||
821 | 28 | </mesh> | ||
822 | 29 | <mesh name="PressureMesh"> | ||
823 | 30 | <from_mesh> | ||
824 | 31 | <mesh name="CoordinateMesh"/> | ||
825 | 32 | <stat> | ||
826 | 33 | <exclude_from_stat/> | ||
827 | 34 | </stat> | ||
828 | 35 | </from_mesh> | ||
829 | 36 | </mesh> | ||
830 | 37 | <quadrature> | ||
831 | 38 | <degree> | ||
832 | 39 | <integer_value rank="0">3</integer_value> | ||
833 | 40 | </degree> | ||
834 | 41 | </quadrature> | ||
835 | 42 | </geometry> | ||
836 | 43 | <io> | ||
837 | 44 | <dump_format> | ||
838 | 45 | <string_value>vtk</string_value> | ||
839 | 46 | </dump_format> | ||
840 | 47 | <dump_period> | ||
841 | 48 | <constant> | ||
842 | 49 | <real_value rank="0">360.0</real_value> | ||
843 | 50 | </constant> | ||
844 | 51 | </dump_period> | ||
845 | 52 | <output_mesh name="CoordinateMesh"/> | ||
846 | 53 | <stat/> | ||
847 | 54 | </io> | ||
848 | 55 | <timestepping> | ||
849 | 56 | <current_time> | ||
850 | 57 | <real_value rank="0">0.0</real_value> | ||
851 | 58 | <time_units date="seconds since 1970-01-01 12:00:0.0"/> | ||
852 | 59 | </current_time> | ||
853 | 60 | <timestep> | ||
854 | 61 | <real_value rank="0">360.0</real_value> | ||
855 | 62 | </timestep> | ||
856 | 63 | <finish_time> | ||
857 | 64 | <real_value rank="0">1440</real_value> | ||
858 | 65 | <comment>31536000.0 - 1 year | ||
859 | 66 | 360000 - 12 hours (i.e. 2 forcing steps)</comment> | ||
860 | 67 | </finish_time> | ||
861 | 68 | <nonlinear_iterations> | ||
862 | 69 | <integer_value rank="0">2</integer_value> | ||
863 | 70 | </nonlinear_iterations> | ||
864 | 71 | </timestepping> | ||
865 | 72 | <physical_parameters> | ||
866 | 73 | <gravity> | ||
867 | 74 | <magnitude> | ||
868 | 75 | <real_value rank="0">9.8</real_value> | ||
869 | 76 | </magnitude> | ||
870 | 77 | <vector_field name="GravityDirection" rank="1"> | ||
871 | 78 | <prescribed> | ||
872 | 79 | <mesh name="CoordinateMesh"/> | ||
873 | 80 | <value name="WholeMesh"> | ||
874 | 81 | <constant> | ||
875 | 82 | <real_value shape="3" dim1="dim" rank="1">0.0 0.0 -1.0</real_value> | ||
876 | 83 | </constant> | ||
877 | 84 | </value> | ||
878 | 85 | <output/> | ||
879 | 86 | <stat> | ||
880 | 87 | <include_in_stat/> | ||
881 | 88 | </stat> | ||
882 | 89 | <detectors> | ||
883 | 90 | <exclude_from_detectors/> | ||
884 | 91 | </detectors> | ||
885 | 92 | </prescribed> | ||
886 | 93 | </vector_field> | ||
887 | 94 | </gravity> | ||
888 | 95 | <coriolis> | ||
889 | 96 | <f_plane> | ||
890 | 97 | <f> | ||
891 | 98 | <real_value rank="0">1.0e-4</real_value> | ||
892 | 99 | </f> | ||
893 | 100 | </f_plane> | ||
894 | 101 | </coriolis> | ||
895 | 102 | </physical_parameters> | ||
896 | 103 | <material_phase name="Fluid"> | ||
897 | 104 | <equation_of_state> | ||
898 | 105 | <fluids> | ||
899 | 106 | <ocean_pade_approximation/> | ||
900 | 107 | </fluids> | ||
901 | 108 | </equation_of_state> | ||
902 | 109 | <subgridscale_parameterisations> | ||
903 | 110 | <prescribed_diffusivity> | ||
904 | 111 | <tensor_field name="PrescribedDiffusivity" rank="2"> | ||
905 | 112 | <prescribed> | ||
906 | 113 | <mesh name="VelocityMesh"/> | ||
907 | 114 | <value name="WholeMesh"> | ||
908 | 115 | <anisotropic_symmetric> | ||
909 | 116 | <constant> | ||
910 | 117 | <real_value symmetric="true" dim2="dim" shape="3 3" dim1="dim" rank="2">10 0 0 0 10 0 0 0 1e-4</real_value> | ||
911 | 118 | </constant> | ||
912 | 119 | </anisotropic_symmetric> | ||
913 | 120 | </value> | ||
914 | 121 | <output/> | ||
915 | 122 | </prescribed> | ||
916 | 123 | </tensor_field> | ||
917 | 124 | </prescribed_diffusivity> | ||
918 | 125 | </subgridscale_parameterisations> | ||
919 | 126 | <scalar_field name="Pressure" rank="0"> | ||
920 | 127 | <prescribed> | ||
921 | 128 | <mesh name="PressureMesh"/> | ||
922 | 129 | <value name="WholeMesh"> | ||
923 | 130 | <constant> | ||
924 | 131 | <real_value rank="0">0.0</real_value> | ||
925 | 132 | </constant> | ||
926 | 133 | </value> | ||
927 | 134 | <output/> | ||
928 | 135 | <stat/> | ||
929 | 136 | <detectors> | ||
930 | 137 | <exclude_from_detectors/> | ||
931 | 138 | </detectors> | ||
932 | 139 | </prescribed> | ||
933 | 140 | </scalar_field> | ||
934 | 141 | <vector_field name="Velocity" rank="1"> | ||
935 | 142 | <prognostic> | ||
936 | 143 | <mesh name="VelocityMesh"/> | ||
937 | 144 | <equation name="Boussinesq"/> | ||
938 | 145 | <spatial_discretisation> | ||
939 | 146 | <continuous_galerkin> | ||
940 | 147 | <stabilisation> | ||
941 | 148 | <streamline_upwind> | ||
942 | 149 | <nu_bar_unity/> | ||
943 | 150 | <nu_scale name="unity"> | ||
944 | 151 | <real_value shape="1" rank="0">1.0</real_value> | ||
945 | 152 | </nu_scale> | ||
946 | 153 | </streamline_upwind> | ||
947 | 154 | </stabilisation> | ||
948 | 155 | <mass_terms> | ||
949 | 156 | <lump_mass_matrix/> | ||
950 | 157 | </mass_terms> | ||
951 | 158 | <advection_terms> | ||
952 | 159 | <exclude_advection_terms/> | ||
953 | 160 | </advection_terms> | ||
954 | 161 | <stress_terms> | ||
955 | 162 | <tensor_form/> | ||
956 | 163 | </stress_terms> | ||
957 | 164 | </continuous_galerkin> | ||
958 | 165 | <conservative_advection> | ||
959 | 166 | <real_value rank="0">0.0</real_value> | ||
960 | 167 | </conservative_advection> | ||
961 | 168 | </spatial_discretisation> | ||
962 | 169 | <temporal_discretisation> | ||
963 | 170 | <theta> | ||
964 | 171 | <real_value rank="0">1.0</real_value> | ||
965 | 172 | </theta> | ||
966 | 173 | <relaxation> | ||
967 | 174 | <real_value rank="0">1.0</real_value> | ||
968 | 175 | </relaxation> | ||
969 | 176 | </temporal_discretisation> | ||
970 | 177 | <solver> | ||
971 | 178 | <iterative_method name="gmres"> | ||
972 | 179 | <restart> | ||
973 | 180 | <integer_value rank="0">30</integer_value> | ||
974 | 181 | </restart> | ||
975 | 182 | </iterative_method> | ||
976 | 183 | <preconditioner name="sor"/> | ||
977 | 184 | <relative_error> | ||
978 | 185 | <real_value rank="0">1.0E-5</real_value> | ||
979 | 186 | </relative_error> | ||
980 | 187 | <max_iterations> | ||
981 | 188 | <integer_value rank="0">2000</integer_value> | ||
982 | 189 | </max_iterations> | ||
983 | 190 | <never_ignore_solver_failures/> | ||
984 | 191 | <diagnostics> | ||
985 | 192 | <monitors/> | ||
986 | 193 | </diagnostics> | ||
987 | 194 | </solver> | ||
988 | 195 | <initial_condition name="WholeMesh"> | ||
989 | 196 | <constant> | ||
990 | 197 | <real_value shape="3" dim1="dim" rank="1">0.0 0.0 0.0</real_value> | ||
991 | 198 | </constant> | ||
992 | 199 | </initial_condition> | ||
993 | 200 | <boundary_conditions name="lateral"> | ||
994 | 201 | <surface_ids> | ||
995 | 202 | <integer_value shape="4" rank="1">40 41 42 43</integer_value> | ||
996 | 203 | </surface_ids> | ||
997 | 204 | <type name="dirichlet"> | ||
998 | 205 | <align_bc_with_cartesian> | ||
999 | 206 | <z_component> | ||
1000 | 207 | <constant> | ||
1001 | 208 | <real_value rank="0">0.0</real_value> | ||
1002 | 209 | </constant> | ||
1003 | 210 | </z_component> | ||
1004 | 211 | </align_bc_with_cartesian> | ||
1005 | 212 | </type> | ||
1006 | 213 | </boundary_conditions> | ||
1007 | 214 | <boundary_conditions name="topbottom"> | ||
1008 | 215 | <surface_ids> | ||
1009 | 216 | <integer_value shape="2" rank="1">38 39</integer_value> | ||
1010 | 217 | </surface_ids> | ||
1011 | 218 | <type name="dirichlet"> | ||
1012 | 219 | <align_bc_with_cartesian> | ||
1013 | 220 | <z_component> | ||
1014 | 221 | <constant> | ||
1015 | 222 | <real_value rank="0">0.0</real_value> | ||
1016 | 223 | </constant> | ||
1017 | 224 | </z_component> | ||
1018 | 225 | </align_bc_with_cartesian> | ||
1019 | 226 | </type> | ||
1020 | 227 | </boundary_conditions> | ||
1021 | 228 | <boundary_conditions name="BulkFormulaVelocity"> | ||
1022 | 229 | <surface_ids> | ||
1023 | 230 | <integer_value shape="1" rank="1">38</integer_value> | ||
1024 | 231 | </surface_ids> | ||
1025 | 232 | <type name="bulk_formulae"/> | ||
1026 | 233 | </boundary_conditions> | ||
1027 | 234 | <tensor_field name="Viscosity" rank="2"> | ||
1028 | 235 | <prescribed> | ||
1029 | 236 | <value name="WholeMesh"> | ||
1030 | 237 | <anisotropic_symmetric> | ||
1031 | 238 | <constant> | ||
1032 | 239 | <real_value symmetric="true" dim2="dim" shape="3 3" dim1="dim" rank="2">10 0 0 0 10 0 0 0 1e-4</real_value> | ||
1033 | 240 | </constant> | ||
1034 | 241 | </anisotropic_symmetric> | ||
1035 | 242 | </value> | ||
1036 | 243 | <output/> | ||
1037 | 244 | </prescribed> | ||
1038 | 245 | </tensor_field> | ||
1039 | 246 | <vector_field name="Absorption" rank="1"> | ||
1040 | 247 | <prescribed> | ||
1041 | 248 | <value name="WholeMesh"> | ||
1042 | 249 | <constant> | ||
1043 | 250 | <real_value shape="3" dim1="dim" rank="1">1.0e-7 1.0e-7 1.0e-7</real_value> | ||
1044 | 251 | </constant> | ||
1045 | 252 | </value> | ||
1046 | 253 | <output/> | ||
1047 | 254 | <stat> | ||
1048 | 255 | <include_in_stat/> | ||
1049 | 256 | </stat> | ||
1050 | 257 | <detectors> | ||
1051 | 258 | <exclude_from_detectors/> | ||
1052 | 259 | </detectors> | ||
1053 | 260 | </prescribed> | ||
1054 | 261 | <default_absorption/> | ||
1055 | 262 | </vector_field> | ||
1056 | 263 | <output/> | ||
1057 | 264 | <stat> | ||
1058 | 265 | <include_in_stat/> | ||
1059 | 266 | <previous_time_step> | ||
1060 | 267 | <exclude_from_stat/> | ||
1061 | 268 | </previous_time_step> | ||
1062 | 269 | <nonlinear_field> | ||
1063 | 270 | <exclude_from_stat/> | ||
1064 | 271 | </nonlinear_field> | ||
1065 | 272 | </stat> | ||
1066 | 273 | <convergence> | ||
1067 | 274 | <include_in_convergence/> | ||
1068 | 275 | </convergence> | ||
1069 | 276 | <detectors> | ||
1070 | 277 | <include_in_detectors/> | ||
1071 | 278 | </detectors> | ||
1072 | 279 | <steady_state> | ||
1073 | 280 | <include_in_steady_state/> | ||
1074 | 281 | </steady_state> | ||
1075 | 282 | <consistent_interpolation/> | ||
1076 | 283 | </prognostic> | ||
1077 | 284 | </vector_field> | ||
1078 | 285 | <scalar_field name="Temperature" rank="0"> | ||
1079 | 286 | <prognostic> | ||
1080 | 287 | <mesh name="VelocityMesh"/> | ||
1081 | 288 | <equation name="AdvectionDiffusion"/> | ||
1082 | 289 | <spatial_discretisation> | ||
1083 | 290 | <continuous_galerkin> | ||
1084 | 291 | <stabilisation> | ||
1085 | 292 | <streamline_upwind> | ||
1086 | 293 | <nu_bar_unity/> | ||
1087 | 294 | <nu_scale name="unity"> | ||
1088 | 295 | <real_value shape="1" rank="0">1.0</real_value> | ||
1089 | 296 | </nu_scale> | ||
1090 | 297 | </streamline_upwind> | ||
1091 | 298 | </stabilisation> | ||
1092 | 299 | <advection_terms> | ||
1093 | 300 | <exclude_advection_terms/> | ||
1094 | 301 | </advection_terms> | ||
1095 | 302 | <mass_terms/> | ||
1096 | 303 | </continuous_galerkin> | ||
1097 | 304 | <conservative_advection> | ||
1098 | 305 | <real_value rank="0">0.0</real_value> | ||
1099 | 306 | </conservative_advection> | ||
1100 | 307 | </spatial_discretisation> | ||
1101 | 308 | <temporal_discretisation> | ||
1102 | 309 | <theta> | ||
1103 | 310 | <real_value rank="0">1.0</real_value> | ||
1104 | 311 | </theta> | ||
1105 | 312 | </temporal_discretisation> | ||
1106 | 313 | <solver> | ||
1107 | 314 | <iterative_method name="gmres"> | ||
1108 | 315 | <restart> | ||
1109 | 316 | <integer_value rank="0">30</integer_value> | ||
1110 | 317 | </restart> | ||
1111 | 318 | </iterative_method> | ||
1112 | 319 | <preconditioner name="sor"/> | ||
1113 | 320 | <relative_error> | ||
1114 | 321 | <real_value rank="0">5.0e-5</real_value> | ||
1115 | 322 | </relative_error> | ||
1116 | 323 | <max_iterations> | ||
1117 | 324 | <integer_value rank="0">1000000</integer_value> | ||
1118 | 325 | </max_iterations> | ||
1119 | 326 | <never_ignore_solver_failures/> | ||
1120 | 327 | <diagnostics> | ||
1121 | 328 | <monitors/> | ||
1122 | 329 | </diagnostics> | ||
1123 | 330 | </solver> | ||
1124 | 331 | <initial_condition name="WholeMesh"> | ||
1125 | 332 | <constant> | ||
1126 | 333 | <real_value rank="0">280</real_value> | ||
1127 | 334 | </constant> | ||
1128 | 335 | </initial_condition> | ||
1129 | 336 | <boundary_conditions name="BulkFormulaTemperature"> | ||
1130 | 337 | <surface_ids> | ||
1131 | 338 | <integer_value shape="1" rank="1">38</integer_value> | ||
1132 | 339 | </surface_ids> | ||
1133 | 340 | <type name="bulk_formulae"/> | ||
1134 | 341 | </boundary_conditions> | ||
1135 | 342 | <subgridscale_parameterisation name="prescribed_diffusivity"/> | ||
1136 | 343 | <output/> | ||
1137 | 344 | <stat/> | ||
1138 | 345 | <convergence> | ||
1139 | 346 | <include_in_convergence/> | ||
1140 | 347 | </convergence> | ||
1141 | 348 | <detectors> | ||
1142 | 349 | <include_in_detectors/> | ||
1143 | 350 | </detectors> | ||
1144 | 351 | <steady_state> | ||
1145 | 352 | <include_in_steady_state/> | ||
1146 | 353 | </steady_state> | ||
1147 | 354 | <consistent_interpolation/> | ||
1148 | 355 | </prognostic> | ||
1149 | 356 | </scalar_field> | ||
1150 | 357 | <scalar_field name="PerturbationDensity" rank="0"> | ||
1151 | 358 | <diagnostic> | ||
1152 | 359 | <algorithm name="Internal" material_phase_support="multiple"/> | ||
1153 | 360 | <mesh name="VelocityMesh"/> | ||
1154 | 361 | <output/> | ||
1155 | 362 | <stat/> | ||
1156 | 363 | <convergence> | ||
1157 | 364 | <include_in_convergence/> | ||
1158 | 365 | </convergence> | ||
1159 | 366 | <detectors> | ||
1160 | 367 | <include_in_detectors/> | ||
1161 | 368 | </detectors> | ||
1162 | 369 | <steady_state> | ||
1163 | 370 | <include_in_steady_state/> | ||
1164 | 371 | </steady_state> | ||
1165 | 372 | </diagnostic> | ||
1166 | 373 | </scalar_field> | ||
1167 | 374 | <scalar_field name="Salinity" rank="0"> | ||
1168 | 375 | <prognostic> | ||
1169 | 376 | <mesh name="VelocityMesh"/> | ||
1170 | 377 | <equation name="AdvectionDiffusion"/> | ||
1171 | 378 | <spatial_discretisation> | ||
1172 | 379 | <continuous_galerkin> | ||
1173 | 380 | <stabilisation> | ||
1174 | 381 | <no_stabilisation/> | ||
1175 | 382 | </stabilisation> | ||
1176 | 383 | <advection_terms/> | ||
1177 | 384 | <mass_terms/> | ||
1178 | 385 | </continuous_galerkin> | ||
1179 | 386 | <conservative_advection> | ||
1180 | 387 | <real_value rank="0">0.0</real_value> | ||
1181 | 388 | </conservative_advection> | ||
1182 | 389 | </spatial_discretisation> | ||
1183 | 390 | <temporal_discretisation> | ||
1184 | 391 | <theta> | ||
1185 | 392 | <real_value rank="0">1.0</real_value> | ||
1186 | 393 | </theta> | ||
1187 | 394 | </temporal_discretisation> | ||
1188 | 395 | <solver> | ||
1189 | 396 | <iterative_method name="gmres"> | ||
1190 | 397 | <restart> | ||
1191 | 398 | <integer_value rank="0">30</integer_value> | ||
1192 | 399 | </restart> | ||
1193 | 400 | </iterative_method> | ||
1194 | 401 | <preconditioner name="sor"/> | ||
1195 | 402 | <relative_error> | ||
1196 | 403 | <real_value rank="0">1.0e-7</real_value> | ||
1197 | 404 | </relative_error> | ||
1198 | 405 | <max_iterations> | ||
1199 | 406 | <integer_value rank="0">2000</integer_value> | ||
1200 | 407 | </max_iterations> | ||
1201 | 408 | <never_ignore_solver_failures/> | ||
1202 | 409 | <diagnostics> | ||
1203 | 410 | <monitors/> | ||
1204 | 411 | </diagnostics> | ||
1205 | 412 | </solver> | ||
1206 | 413 | <initial_condition name="WholeMesh"> | ||
1207 | 414 | <constant> | ||
1208 | 415 | <real_value rank="0">35</real_value> | ||
1209 | 416 | </constant> | ||
1210 | 417 | </initial_condition> | ||
1211 | 418 | <boundary_conditions name="BulkFormulaSalinity"> | ||
1212 | 419 | <surface_ids> | ||
1213 | 420 | <integer_value shape="1" rank="1">38</integer_value> | ||
1214 | 421 | </surface_ids> | ||
1215 | 422 | <type name="bulk_formulae"/> | ||
1216 | 423 | </boundary_conditions> | ||
1217 | 424 | <subgridscale_parameterisation name="prescribed_diffusivity"/> | ||
1218 | 425 | <output/> | ||
1219 | 426 | <stat/> | ||
1220 | 427 | <convergence> | ||
1221 | 428 | <include_in_convergence/> | ||
1222 | 429 | </convergence> | ||
1223 | 430 | <detectors> | ||
1224 | 431 | <include_in_detectors/> | ||
1225 | 432 | </detectors> | ||
1226 | 433 | <steady_state> | ||
1227 | 434 | <include_in_steady_state/> | ||
1228 | 435 | </steady_state> | ||
1229 | 436 | <consistent_interpolation/> | ||
1230 | 437 | </prognostic> | ||
1231 | 438 | </scalar_field> | ||
1232 | 439 | <scalar_field name="PhotosyntheticRadiation" rank="0"> | ||
1233 | 440 | <prognostic> | ||
1234 | 441 | <mesh name="VelocityMesh"/> | ||
1235 | 442 | <equation name="AdvectionDiffusion"/> | ||
1236 | 443 | <spatial_discretisation> | ||
1237 | 444 | <continuous_galerkin> | ||
1238 | 445 | <stabilisation> | ||
1239 | 446 | <no_stabilisation/> | ||
1240 | 447 | </stabilisation> | ||
1241 | 448 | <advection_terms> | ||
1242 | 449 | <exclude_advection_terms/> | ||
1243 | 450 | </advection_terms> | ||
1244 | 451 | <mass_terms/> | ||
1245 | 452 | </continuous_galerkin> | ||
1246 | 453 | <conservative_advection> | ||
1247 | 454 | <real_value rank="0">0</real_value> | ||
1248 | 455 | </conservative_advection> | ||
1249 | 456 | </spatial_discretisation> | ||
1250 | 457 | <temporal_discretisation> | ||
1251 | 458 | <theta> | ||
1252 | 459 | <real_value rank="0">1</real_value> | ||
1253 | 460 | </theta> | ||
1254 | 461 | </temporal_discretisation> | ||
1255 | 462 | <solver> | ||
1256 | 463 | <iterative_method name="gmres"> | ||
1257 | 464 | <restart> | ||
1258 | 465 | <integer_value rank="0">30</integer_value> | ||
1259 | 466 | </restart> | ||
1260 | 467 | </iterative_method> | ||
1261 | 468 | <preconditioner name="sor"/> | ||
1262 | 469 | <relative_error> | ||
1263 | 470 | <real_value rank="0">1e-6</real_value> | ||
1264 | 471 | </relative_error> | ||
1265 | 472 | <max_iterations> | ||
1266 | 473 | <integer_value rank="0">3000</integer_value> | ||
1267 | 474 | </max_iterations> | ||
1268 | 475 | <never_ignore_solver_failures/> | ||
1269 | 476 | <diagnostics> | ||
1270 | 477 | <monitors/> | ||
1271 | 478 | </diagnostics> | ||
1272 | 479 | </solver> | ||
1273 | 480 | <initial_condition name="WholeMesh"> | ||
1274 | 481 | <constant> | ||
1275 | 482 | <real_value rank="0">0</real_value> | ||
1276 | 483 | </constant> | ||
1277 | 484 | </initial_condition> | ||
1278 | 485 | <boundary_conditions name="BulkFormulaPSR"> | ||
1279 | 486 | <surface_ids> | ||
1280 | 487 | <integer_value shape="1" rank="1">38</integer_value> | ||
1281 | 488 | </surface_ids> | ||
1282 | 489 | <type name="bulk_formulae"/> | ||
1283 | 490 | </boundary_conditions> | ||
1284 | 491 | <output/> | ||
1285 | 492 | <stat/> | ||
1286 | 493 | <convergence> | ||
1287 | 494 | <include_in_convergence/> | ||
1288 | 495 | </convergence> | ||
1289 | 496 | <detectors> | ||
1290 | 497 | <include_in_detectors/> | ||
1291 | 498 | </detectors> | ||
1292 | 499 | <steady_state> | ||
1293 | 500 | <include_in_steady_state/> | ||
1294 | 501 | </steady_state> | ||
1295 | 502 | <consistent_interpolation/> | ||
1296 | 503 | </prognostic> | ||
1297 | 504 | </scalar_field> | ||
1298 | 505 | </material_phase> | ||
1299 | 506 | <ocean_forcing> | ||
1300 | 507 | <bulk_formulae> | ||
1301 | 508 | <bulk_formulae> | ||
1302 | 509 | <type name="NCAR"/> | ||
1303 | 510 | </bulk_formulae> | ||
1304 | 511 | <input_file file_name="1970_stationPapa_unacc.nc"/> | ||
1305 | 512 | <input_file_type> | ||
1306 | 513 | <type name="ERA40"> | ||
1307 | 514 | <no_accumulation/> | ||
1308 | 515 | </type> | ||
1309 | 516 | </input_file_type> | ||
1310 | 517 | <output_fluxes_diagnostics> | ||
1311 | 518 | <vector_field name="MomentumFlux" rank="1"> | ||
1312 | 519 | <diagnostic> | ||
1313 | 520 | <algorithm name="Internal" material_phase_support="multiple"/> | ||
1314 | 521 | <mesh name="VelocityMesh"/> | ||
1315 | 522 | <output/> | ||
1316 | 523 | <stat/> | ||
1317 | 524 | <convergence> | ||
1318 | 525 | <include_in_convergence/> | ||
1319 | 526 | </convergence> | ||
1320 | 527 | <detectors> | ||
1321 | 528 | <include_in_detectors/> | ||
1322 | 529 | </detectors> | ||
1323 | 530 | <steady_state> | ||
1324 | 531 | <include_in_steady_state/> | ||
1325 | 532 | </steady_state> | ||
1326 | 533 | </diagnostic> | ||
1327 | 534 | </vector_field> | ||
1328 | 535 | <scalar_field name="HeatFlux" rank="0"> | ||
1329 | 536 | <diagnostic> | ||
1330 | 537 | <algorithm name="Internal" material_phase_support="multiple"/> | ||
1331 | 538 | <mesh name="VelocityMesh"/> | ||
1332 | 539 | <output/> | ||
1333 | 540 | <stat/> | ||
1334 | 541 | <convergence> | ||
1335 | 542 | <include_in_convergence/> | ||
1336 | 543 | </convergence> | ||
1337 | 544 | <detectors> | ||
1338 | 545 | <include_in_detectors/> | ||
1339 | 546 | </detectors> | ||
1340 | 547 | <steady_state> | ||
1341 | 548 | <include_in_steady_state/> | ||
1342 | 549 | </steady_state> | ||
1343 | 550 | </diagnostic> | ||
1344 | 551 | </scalar_field> | ||
1345 | 552 | <scalar_field name="SalinityFlux" rank="0"> | ||
1346 | 553 | <diagnostic> | ||
1347 | 554 | <algorithm name="Internal" material_phase_support="multiple"/> | ||
1348 | 555 | <mesh name="VelocityMesh"/> | ||
1349 | 556 | <output/> | ||
1350 | 557 | <stat/> | ||
1351 | 558 | <convergence> | ||
1352 | 559 | <include_in_convergence/> | ||
1353 | 560 | </convergence> | ||
1354 | 561 | <detectors> | ||
1355 | 562 | <include_in_detectors/> | ||
1356 | 563 | </detectors> | ||
1357 | 564 | <steady_state> | ||
1358 | 565 | <include_in_steady_state/> | ||
1359 | 566 | </steady_state> | ||
1360 | 567 | </diagnostic> | ||
1361 | 568 | </scalar_field> | ||
1362 | 569 | <scalar_field name="PhotosyntheticRadiationDownward" rank="0"> | ||
1363 | 570 | <diagnostic> | ||
1364 | 571 | <algorithm name="Internal" material_phase_support="multiple"/> | ||
1365 | 572 | <mesh name="VelocityMesh"/> | ||
1366 | 573 | <output/> | ||
1367 | 574 | <stat/> | ||
1368 | 575 | <convergence> | ||
1369 | 576 | <include_in_convergence/> | ||
1370 | 577 | </convergence> | ||
1371 | 578 | <detectors> | ||
1372 | 579 | <include_in_detectors/> | ||
1373 | 580 | </detectors> | ||
1374 | 581 | <steady_state> | ||
1375 | 582 | <include_in_steady_state/> | ||
1376 | 583 | </steady_state> | ||
1377 | 584 | </diagnostic> | ||
1378 | 585 | </scalar_field> | ||
1379 | 586 | </output_fluxes_diagnostics> | ||
1380 | 587 | </bulk_formulae> | ||
1381 | 588 | </ocean_forcing> | ||
1382 | 589 | </fluidity_options> | ||
1383 | 0 | 590 | ||
1384 | === added file 'tests/forcing_inst_vals/forcing_inst_vals.xml' | |||
1385 | --- tests/forcing_inst_vals/forcing_inst_vals.xml 1970-01-01 00:00:00 +0000 | |||
1386 | +++ tests/forcing_inst_vals/forcing_inst_vals.xml 2011-09-05 07:36:25 +0000 | |||
1387 | @@ -0,0 +1,56 @@ | |||
1388 | 1 | <?xml version="1.0" encoding="UTF-8" ?> | ||
1389 | 2 | <!DOCTYPE testproblem SYSTEM "regressiontest.dtd"> | ||
1390 | 3 | |||
1391 | 4 | <testproblem> | ||
1392 | 5 | <name>forcing</name> | ||
1393 | 6 | <owner userid="jhill1"/> | ||
1394 | 7 | <tags>flml forcing</tags> | ||
1395 | 8 | <problem_definition length="short" nprocs="1"> | ||
1396 | 9 | <command_line>fluidity -v2 -l forcing-ncar.flml; | ||
1397 | 10 | fluidity -v2 -l forcing-ncar_inst.flml; | ||
1398 | 11 | </command_line> | ||
1399 | 12 | </problem_definition> | ||
1400 | 13 | <variables> | ||
1401 | 14 | <variable name="FinalTimeNcarOrig" language="python"> | ||
1402 | 15 | import fluidity_tools | ||
1403 | 16 | FinalTimeNcarOrig = fluidity_tools.stat_parser("forcing-ncar.stat")['ElapsedTime']['value'][-1] | ||
1404 | 17 | </variable> | ||
1405 | 18 | <variable name="FinalTemperatureIntegralNcarOrig" language="python"> | ||
1406 | 19 | import fluidity_tools | ||
1407 | 20 | FinalTemperatureIntegralNcarOrig = fluidity_tools.stat_parser("forcing-ncar.stat")['Fluid']['Temperature']['integral'][-1] | ||
1408 | 21 | </variable> | ||
1409 | 22 | <variable name="FinalSalinityMinNcarOrig" language="python"> | ||
1410 | 23 | import fluidity_tools | ||
1411 | 24 | FinalSalinityMinNcarOrig = fluidity_tools.stat_parser("forcing-ncar.stat")['Fluid']['Salinity']['min'][-1] | ||
1412 | 25 | </variable> | ||
1413 | 26 | <variable name="FinalTimeNcarInst" language="python"> | ||
1414 | 27 | import fluidity_tools | ||
1415 | 28 | FinalTimeNcarInst = fluidity_tools.stat_parser("forcing-ncar_inst.stat")['ElapsedTime']['value'][-1] | ||
1416 | 29 | </variable> | ||
1417 | 30 | <variable name="FinalTemperatureIntegralNcarInst" language="python"> | ||
1418 | 31 | import fluidity_tools | ||
1419 | 32 | FinalTemperatureIntegralNcarInst = fluidity_tools.stat_parser("forcing-ncar_inst.stat")['Fluid']['Temperature']['integral'][-1] | ||
1420 | 33 | </variable> | ||
1421 | 34 | <variable name="FinalSalinityMinNcarInst" language="python"> | ||
1422 | 35 | import fluidity_tools | ||
1423 | 36 | FinalSalinityMinNcarInst = fluidity_tools.stat_parser("forcing-ncar_inst.stat")['Fluid']['Salinity']['min'][-1] | ||
1424 | 37 | </variable> | ||
1425 | 38 | |||
1426 | 39 | </variables> | ||
1427 | 40 | |||
1428 | 41 | |||
1429 | 42 | <pass_tests> | ||
1430 | 43 | <test name="Ncar: Final time is 1440 seconds" language="python"> | ||
1431 | 44 | assert FinalTimeNcarOrig ==1440 | ||
1432 | 45 | </test> | ||
1433 | 46 | <test name="Times match" language="python"> | ||
1434 | 47 | assert (abs(FinalTimeNcarOrig - FinalTimeNcarInst)/FinalTimeNcarOrig < 1e-10) | ||
1435 | 48 | </test> | ||
1436 | 49 | <test name="Temperature matches" language="python"> | ||
1437 | 50 | assert(abs(FinalTemperatureIntegralNcarOrig - FinalTemperatureIntegralNcarInst)/FinalTemperatureIntegralNcarOrig < 1e-10) | ||
1438 | 51 | </test> | ||
1439 | 52 | <test name="Salinity matches" language="python"> | ||
1440 | 53 | assert (abs(FinalSalinityMinNcarOrig-FinalSalinityMinNcarInst)/FinalSalinityMinNcarOrig < 2e-10) | ||
1441 | 54 | </test> | ||
1442 | 55 | </pass_tests> | ||
1443 | 56 | </testproblem> | ||
1444 | 0 | 57 | ||
1445 | === added directory 'tests/forcing_inst_vals/src' | |||
1446 | === added file 'tests/forcing_inst_vals/src/column.geo' | |||
1447 | --- tests/forcing_inst_vals/src/column.geo 1970-01-01 00:00:00 +0000 | |||
1448 | +++ tests/forcing_inst_vals/src/column.geo 2011-09-05 07:36:25 +0000 | |||
1449 | @@ -0,0 +1,25 @@ | |||
1450 | 1 | // Gmsh project created on Thu Mar 6 16:27:33 2008 | ||
1451 | 2 | Point(1) = {-3.35835e+06,-2.35154e+06,4.88594e+06}; | ||
1452 | 3 | Extrude {100.0,0,0} { | ||
1453 | 4 | Point{1}; Layers{1}; | ||
1454 | 5 | } | ||
1455 | 6 | Extrude {0,100.0,0.0} { | ||
1456 | 7 | Line{1}; Layers{1}; | ||
1457 | 8 | } | ||
1458 | 9 | Extrude {0.0,0.0,-100.0} { | ||
1459 | 10 | Surface{5}; Layers{50}; | ||
1460 | 11 | } | ||
1461 | 12 | //Top | ||
1462 | 13 | Physical Surface(38) = {5}; | ||
1463 | 14 | //Bottom | ||
1464 | 15 | Physical Surface(39) = {27}; | ||
1465 | 16 | //North | ||
1466 | 17 | Physical Surface(40) = {22}; | ||
1467 | 18 | //South | ||
1468 | 19 | Physical Surface(41) = {14}; | ||
1469 | 20 | //West | ||
1470 | 21 | Physical Surface(42) = {26}; | ||
1471 | 22 | //East | ||
1472 | 23 | Physical Surface(43) = {18}; | ||
1473 | 24 | Physical Volume(44) = {1}; | ||
1474 | 25 |
Looks good to me. Ship it!