forked from FluidityProject/fluidity
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathphysical_parameters.rnc
134 lines (130 loc) · 3.81 KB
/
physical_parameters.rnc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
physical_parameter_options =
element physical_parameters {
gravity_options?,
coriolis_options?
}
gravity_options =
## Set a gravity to be included in the buoyancy term.
element gravity {
## Acceleration due to gravity. 9.8 m/s^2 on earth.
element magnitude {
real
},
## The direction of the gravity vector.
element vector_field {
attribute name { "GravityDirection" },
attribute rank { "1" },
element prescribed {
coordinate_mesh_choice,
prescribed_vector_field_no_adapt
}
}
}
coriolis_options =
## Options relating to Coriolis force. The rotation vector is
## assumed to be in the z-direction:
##
## F_C = 2 \Omega \hat{k} \times u = f \hat{k} \times u
element coriolis {
(
f_plane_options|
beta_plane_options|
## Full Coriolis parameter:
## f = 2 omega sin (latitude)
## where latitude=y/R_earth+latitude_0
##
## Specify omega and R_earth and latitude_0
element sine_of_latitude {
## Full Coriolis parameter:
## f = 2 omega sin (latitude)
## where latitude=y/R_earth+latitude_0
element omega {
real
},
## Full Coriolis parameter:
## f = 2 omega sin (latitude)
## where latitude=y/R_earth+latitude_0
##
## Suggested value for R_earth: 6.371e6
element R_earth {
real
},
## Full Coriolis parameter:
## f = 2 omega sin (latitude)
## where
## latitude=y/R_earth+latitude_0
## latitude_0 is the latitude of y=0
element latitude_0 {
real
}
}|
## Full representation on sphere
element on_sphere {
## Earth rotation rate
##
## Suggested value: 2 pi / 86400 = 7.27220522e-5
element omega {
real
}
}|
## As f_plane, but with the value for f set using a python
## function. Allows for time varying rotation rate.
##
## Functions should be of the form:
##
## def val(t):
## # Function code
## return # Return value
##
## where the return value is a float.
element python_f_plane {
python_code
}
)
}
f_plane_options =
## f-plane approximation
## This means the Coriolis force looks like:
## f k x u
## where k is the z unit vector
## and u the velocity vector
## and f is constant
element f_plane {
## f-plane approximation
## This means the Coriolis force looks like:
## f k x u
## where k is the z unit vector
## and u the velocity vector
## and f is constant
element f {
real
}
}
beta_plane_options =
## Beta-plane approximation
## This means the Coriolis force looks like:
## f k x u
## where k is the z unit vector
## and u the velocity vector
## and f=f_0+beta . (x,y,z)
element beta_plane {
## Beta-plane approximation
## This means the Coriolis force looks like:
## f k x u
## where k is the z unit vector
## and u the velocity vector
## and f=f_0+beta . (x,y,z)
element f_0 {
real
},
## Beta-plane approximation
## This means the Coriolis force looks like:
## f k x u
## where k is the z unit vector
## and u the velocity vector
## and f=f_0+beta . (x,y,z)
## usually only the y-component of beta is non-zero
element beta {
real_dim_vector
}
}