2867
by slm06
Initial commit of simple femtools based model, for use with the OASIS coupler. |
1 |
include "spud_base.rnc"
|
2 |
||
3 |
include "adaptivity_options.rnc"
|
|
4 |
include "diagnostic_algorithms.rnc"
|
|
5 |
include "input_output.rnc"
|
|
6 |
include "solvers.rnc"
|
|
7 |
include "stabilisation.rnc"
|
|
8 |
include "reduced_model.rnc"
|
|
9 |
include "mesh_options.rnc"
|
|
10 |
include "physical_parameters.rnc"
|
|
11 |
include "prognostic_field_options.rnc"
|
|
12 |
include "prescribed_field_options.rnc"
|
|
13 |
include "spatial_discretisation.rnc"
|
|
14 |
include "temporal_discretisation.rnc"
|
|
15 |
||
16 |
start =
|
|
17 |
(
|
|
18 |
## The root node of the options dictionary.
|
|
19 |
element test_coupler { |
|
20 |
comment,
|
|
21 |
## Model output files are named according to the simulation
|
|
22 |
## name, e.g. [simulation_name]_0.vtu. Non-standard
|
|
23 |
## characters in the simulation name should be avoided.
|
|
24 |
element simulation_name { |
|
25 |
anystring |
|
26 |
}, |
|
27 |
geometry,
|
|
28 |
io,
|
|
3434
by Simon Mouradian
Updates to the test_coupler code .cml files. Test to be updated, soon. |
29 |
material_phase,
|
30 |
coupling_options?
|
|
2867
by slm06
Initial commit of simple femtools based model, for use with the OASIS coupler. |
31 |
}
|
32 |
)
|
|
33 |
||
3434
by Simon Mouradian
Updates to the test_coupler code .cml files. Test to be updated, soon. |
34 |
coupling_options =
|
35 |
(
|
|
36 |
## These options activate coupling of Fluidity with OASIS.
|
|
37 |
## NB: Currently only works in 2D
|
|
38 |
element coupling { |
|
39 |
## Number of elements in longitude and latitude dimension respectively
|
|
40 |
element element_count { integer_dim_vector }, |
|
41 |
## The minimum and maximum longitude of the coupled domain
|
|
42 |
element longitude_extent { real_dim_vector }, |
|
43 |
## The minimum and maximum latitude of the coupled domain
|
|
44 |
element latitude_extent { real_dim_vector} |
|
45 |
}? |
|
46 |
)
|
|
47 |
||
2867
by slm06
Initial commit of simple femtools based model, for use with the OASIS coupler. |
48 |
geometry =
|
49 |
(
|
|
50 |
## Options dealing with the specification of geometry
|
|
51 |
element geometry { |
|
52 |
## Dimension of the problem.
|
|
53 |
## <b>This can only be set once</b>
|
|
54 |
element dimension { |
|
55 |
element integer_value { |
|
56 |
attribute rank {"0"}, |
|
57 |
("3"|"2") |
|
58 |
}
|
|
59 |
}, |
|
60 |
## The position mesh
|
|
61 |
element mesh { |
|
62 |
attribute name { "CoordinateMesh" }, |
|
63 |
mesh_info_fromfile |
|
64 |
}, |
|
65 |
## The tracer mesh
|
|
66 |
element mesh { |
|
67 |
attribute name { "TracerMesh" }, |
|
68 |
mesh_info_frommesh |
|
69 |
}, |
|
70 |
## Quadrature
|
|
71 |
element quadrature { |
|
72 |
## Quadrature degree
|
|
73 |
##
|
|
74 |
## note: this specifies the degree of quadrature,
|
|
75 |
## not the number of gauss points
|
|
76 |
element degree { |
|
77 |
integer |
|
78 |
}, |
|
79 |
## Surface quadrature degree
|
|
80 |
##
|
|
81 |
## note: this specifies the degree of surface
|
|
82 |
## quadrature not the number of surface gauss points
|
|
83 |
element surface_degree { |
|
84 |
integer |
|
85 |
}? |
|
86 |
}
|
|
87 |
}
|
|
88 |
)
|
|
89 |
||
90 |
mesh_choice_coordinate =
|
|
91 |
(
|
|
92 |
element mesh { |
|
93 |
attribute name { "CoordinateMesh" } |
|
94 |
}
|
|
95 |
)
|
|
96 |
||
97 |
mesh_choice =
|
|
98 |
(
|
|
99 |
(
|
|
100 |
element mesh { |
|
101 |
attribute name { "TracerMesh" } |
|
102 |
}| |
|
103 |
element mesh { |
|
104 |
attribute name { "CoordinateMesh" } |
|
105 |
}
|
|
106 |
)
|
|
107 |
)
|
|
108 |
||
109 |
mesh_info_fromfile =
|
|
110 |
(
|
|
111 |
## Read mesh from file.
|
|
112 |
element from_file { |
|
113 |
(
|
|
114 |
## Triangle mesh format.
|
|
115 |
##
|
|
116 |
## Enter the base name without the .edge .ele, .face or
|
|
117 |
## .node extensions, and without process numbers.
|
|
118 |
element format { |
|
119 |
attribute name { "triangle" }, |
|
120 |
comment |
|
121 |
}| |
|
122 |
## Read the mesh from a vtu. Note that the mesh will have no
|
|
123 |
## surface or region IDs.
|
|
124 |
element format { |
|
125 |
attribute name { "vtu" }, |
|
126 |
comment |
|
127 |
}| |
|
128 |
## GMSH mesh format
|
|
129 |
element format { |
|
130 |
attribute name { "gmsh" }, |
|
131 |
comment |
|
132 |
}
|
|
133 |
), |
|
134 |
attribute file_name { xsd:string }, |
|
135 |
from_file_mesh_stat_options,
|
|
136 |
comment |
|
137 |
}
|
|
138 |
)
|
|
139 |
||
140 |
mesh_info_frommesh =
|
|
141 |
(
|
|
142 |
## Make mesh from existing mesh.
|
|
143 |
element from_mesh { |
|
144 |
mesh_choice_coordinate,
|
|
145 |
element mesh_shape { |
|
146 |
element polynomial_degree { |
|
147 |
integer |
|
148 |
}?, |
|
149 |
element element_type { |
|
150 |
element string_value{ |
|
151 |
"lagrangian"
|
|
152 |
}
|
|
153 |
}? |
|
154 |
}?, |
|
155 |
derived_mesh_stat_options,
|
|
156 |
comment |
|
157 |
}
|
|
158 |
)
|
|
159 |
||
160 |
material_phase =
|
|
161 |
(
|
|
162 |
## The material phase options
|
|
163 |
element material_phase { |
|
164 |
attribute name { "Fluid" }, |
|
165 |
element scalar_field { |
|
166 |
attribute rank { "0" }, |
|
167 |
attribute name { "Tracer" }, |
|
168 |
element prognostic { |
|
169 |
element mesh { |
|
170 |
attribute name { "TracerMesh" } |
|
171 |
}, |
|
172 |
initial_condition_scalar,
|
|
173 |
element stat { comment }, |
|
174 |
element scalar_field { |
|
175 |
attribute name { "Source" }, |
|
176 |
attribute rank { "0" }, |
|
177 |
element prescribed { |
|
178 |
prescribed_scalar_field_no_adapt,
|
|
179 |
recalculation_options?
|
|
180 |
}
|
|
181 |
}?, |
|
182 |
# If enabled, save the right hand side of the discrete equations.
|
|
183 |
element scalar_field { |
|
184 |
attribute name { "Rhs" }, |
|
185 |
attribute rank { "0" }, |
|
186 |
element diagnostic { |
|
187 |
empty |
|
188 |
}
|
|
189 |
}? |
|
190 |
}
|
|
191 |
}, |
|
192 |
## Prescribed or diagnostic scalar fields.
|
|
193 |
element scalar_field { |
|
194 |
attribute rank { "0" }, |
|
195 |
attribute name { string }, |
|
196 |
(
|
|
197 |
element prescribed { |
|
198 |
mesh_choice,
|
|
199 |
prescribed_scalar_field_no_adapt,
|
|
200 |
recalculation_options?
|
|
201 |
}| |
|
202 |
element diagnostic { |
|
203 |
mesh_choice,
|
|
204 |
diagnostic_scalar_field |
|
205 |
}
|
|
206 |
)
|
|
207 |
}* |
|
208 |
}
|
|
209 |
)
|
|
210 |
||
211 |
boundary_conditions =
|
|
212 |
(
|
|
213 |
## Boundary conditions
|
|
214 |
element boundary_conditions { |
|
215 |
attribute name { string }, |
|
216 |
## Surface id
|
|
217 |
element surface_ids { |
|
218 |
integer_vector |
|
219 |
}, |
|
220 |
element type { |
|
221 |
attribute name { "dirichlet" }, |
|
222 |
input_choice_real |
|
223 |
}
|
|
224 |
}
|
|
225 |
)
|
|
226 |
||
227 |
prescribed_output_options = empty
|
|
228 |
prescribed_detector_options = empty
|
|
229 |
prescribed_scalar_stat_options = empty
|
|
230 |
discrete_properties_algorithm_scalar = empty
|
|
231 |
recalculation_options =
|
|
232 |
(
|
|
233 |
## Prevent this field from being recalculated at every timestep.
|
|
234 |
## This is cheaper especially if you are enforcing discrete properties on the field.
|
|
235 |
element do_not_recalculate { |
|
236 |
empty |
|
237 |
}
|
|
238 |
)
|
|
239 |
||
240 |
diagnostic_scalar_field =
|
|
241 |
(
|
|
242 |
scalar_python_diagnostic_algorithm,
|
|
243 |
element stat { comment }, |
|
244 |
recalculation_options?
|
|
245 |
)
|
|
246 |
||
247 |
io =
|
|
248 |
## Options to do with I/O
|
|
249 |
element io { |
|
250 |
## Dump format
|
|
251 |
element dump_format { "vtk" }, |
|
252 |
## Dump period, in timesteps. Defaults to 1
|
|
253 |
element dump_period_in_timesteps { |
|
254 |
element constant { integer } |
|
255 |
}?, |
|
256 |
(
|
|
257 |
## The mesh on to which all the fields will be
|
|
258 |
## interpolated for VTK output.
|
|
259 |
element output_mesh { |
|
260 |
attribute name { "VelocityMesh" } |
|
261 |
}| |
|
262 |
## The mesh on to which all the fields will be
|
|
263 |
## interpolated for VTK output.
|
|
264 |
element output_mesh { |
|
265 |
attribute name { xsd:string } |
|
266 |
}
|
|
267 |
)
|
|
268 |
}
|