23 amrex::ParmParse
pp(pp_prefix);
27 std::string dycore_horiz_adv_string =
"" ; std::string dycore_vert_adv_string =
"";
28 std::string dryscal_horiz_adv_string =
"" ; std::string dryscal_vert_adv_string =
"";
29 pp.query(
"dycore_horiz_adv_type" , dycore_horiz_adv_string);
30 pp.query(
"dycore_vert_adv_type" , dycore_vert_adv_string);
31 pp.query(
"dryscal_horiz_adv_type" , dryscal_horiz_adv_string);
32 pp.query(
"dryscal_vert_adv_type" , dryscal_vert_adv_string);
34 std::string moistscal_horiz_adv_string =
""; std::string moistscal_vert_adv_string =
"";
35 pp.query(
"moistscal_horiz_adv_type", moistscal_horiz_adv_string);
36 pp.query(
"moistscal_vert_adv_type" , moistscal_vert_adv_string);
39 amrex::Print() <<
"Using efficient advection scheme" << std::endl;
42 if ( (dycore_horiz_adv_string ==
"Blended_3rd4th") ||
43 (dycore_horiz_adv_string ==
"Blended_5th6th") )
47 "The dycore horizontal upwinding fraction must be between 0 and 1");
50 if ( (dycore_vert_adv_string ==
"Blended_3rd4th") ||
51 (dycore_vert_adv_string ==
"Blended_5th6th") )
55 "The dycore vertical upwinding fraction must be between 0 and 1");
58 if ( (dryscal_horiz_adv_string ==
"Blended_3rd4th") ||
59 (dryscal_horiz_adv_string ==
"Blended_5th6th") )
63 "The dry scalar horizontal upwinding fraction must be between 0 and 1");
66 if ( (dryscal_vert_adv_string ==
"Blended_3rd4th") ||
67 (dryscal_vert_adv_string ==
"Blended_5th6th") )
71 "The dry scalar vertical upwinding fraction must be between 0 and 1");
74 if ( (moistscal_horiz_adv_string ==
"Blended_3rd4th") ||
75 (moistscal_horiz_adv_string ==
"Blended_5th6th") )
79 "The moist scalar horizontal upwinding fraction must be between 0 and 1");
82 if ( (moistscal_vert_adv_string ==
"Blended_3rd4th") ||
83 (moistscal_vert_adv_string ==
"Blended_5th6th") )
87 "The moist scalar vertical upwinding fraction must be between 0 and 1");
90 if (dycore_horiz_adv_string !=
"") {
91 if ( (dycore_horiz_adv_string ==
"Centered_2nd") ||
92 (dycore_horiz_adv_string ==
"Upwind_3rd" ) ||
93 (dycore_horiz_adv_string ==
"Blended_3rd4th") ||
94 (dycore_horiz_adv_string ==
"Centered_4th") ||
95 (dycore_horiz_adv_string ==
"Upwind_5th" ) ||
96 (dycore_horiz_adv_string ==
"Blended_5th6th") ||
97 (dycore_horiz_adv_string ==
"Centered_6th") ||
98 (dycore_horiz_adv_string ==
"WENO3" ) ||
99 (dycore_horiz_adv_string ==
"WENOZ3" ) ||
100 (dycore_horiz_adv_string ==
"WENO5" ) ||
101 (dycore_horiz_adv_string ==
"WENOZ5" ) ||
102 (dycore_horiz_adv_string ==
"WENO7" ) ||
103 (dycore_horiz_adv_string ==
"WENOZ7" ))
107 amrex::Error(
"Don't know this dycore_horiz_adv_string");
111 if (dycore_vert_adv_string !=
"") {
112 if ( (dycore_vert_adv_string ==
"Centered_2nd") ||
113 (dycore_vert_adv_string ==
"Upwind_3rd" ) ||
114 (dycore_vert_adv_string ==
"Blended_3rd4th") ||
115 (dycore_vert_adv_string ==
"Centered_4th") ||
116 (dycore_vert_adv_string ==
"Upwind_5th" ) ||
117 (dycore_vert_adv_string ==
"Blended_5th6th") ||
118 (dycore_vert_adv_string ==
"Centered_6th") ||
119 (dycore_vert_adv_string ==
"WENO3" ) ||
120 (dycore_vert_adv_string ==
"WENOZ3" ) ||
121 (dycore_vert_adv_string ==
"WENO5" ) ||
122 (dycore_vert_adv_string ==
"WENOZ5" ) ||
123 (dycore_vert_adv_string ==
"WENO7" ) ||
124 (dycore_vert_adv_string ==
"WENOZ7" ))
128 amrex::Error(
"Don't know this dycore_vert_adv_string");
132 if (dryscal_horiz_adv_string !=
"") {
133 if ( (dryscal_horiz_adv_string ==
"Centered_2nd") ||
134 (dryscal_horiz_adv_string ==
"Upwind_3rd" ) ||
135 (dryscal_horiz_adv_string ==
"Upwind_3rd_SL") ||
136 (dryscal_horiz_adv_string ==
"Blended_3rd4th") ||
137 (dryscal_horiz_adv_string ==
"Centered_4th") ||
138 (dryscal_horiz_adv_string ==
"Upwind_5th" ) ||
139 (dryscal_horiz_adv_string ==
"Blended_5th6th") ||
140 (dryscal_horiz_adv_string ==
"Centered_6th") ||
141 (dryscal_horiz_adv_string ==
"WENO3" ) ||
142 (dryscal_horiz_adv_string ==
"WENOZ3" ) ||
143 (dryscal_horiz_adv_string ==
"WENOMZQ3" ) ||
144 (dryscal_horiz_adv_string ==
"WENO5" ) ||
145 (dryscal_horiz_adv_string ==
"WENOZ5" ) ||
146 (dryscal_horiz_adv_string ==
"WENO7" ) ||
147 (dryscal_horiz_adv_string ==
"WENOZ7" ) )
151 amrex::Error(
"Don't know this dryscal_horiz_adv_string");
155 if (dryscal_vert_adv_string !=
"") {
156 if ( (dryscal_vert_adv_string ==
"Centered_2nd") ||
157 (dryscal_vert_adv_string ==
"Upwind_3rd" ) ||
158 (dryscal_vert_adv_string ==
"Upwind_3rd_SL") ||
159 (dryscal_vert_adv_string ==
"Blended_3rd4th") ||
160 (dryscal_vert_adv_string ==
"Centered_4th") ||
161 (dryscal_vert_adv_string ==
"Upwind_5th" ) ||
162 (dryscal_vert_adv_string ==
"Blended_5th6th") ||
163 (dryscal_vert_adv_string ==
"Centered_6th") ||
164 (dryscal_vert_adv_string ==
"WENO3" ) ||
165 (dryscal_vert_adv_string ==
"WENOZ3" ) ||
166 (dryscal_vert_adv_string ==
"WENOMZQ3" ) ||
167 (dryscal_vert_adv_string ==
"WENO5" ) ||
168 (dryscal_vert_adv_string ==
"WENOZ5" ) ||
169 (dryscal_vert_adv_string ==
"WENO7" ) ||
170 (dryscal_vert_adv_string ==
"WENOZ7" ))
174 amrex::Error(
"Don't know this dryscal_vert_adv_string");
178 if (moistscal_horiz_adv_string !=
"") {
179 if ( (moistscal_horiz_adv_string ==
"Centered_2nd") ||
180 (moistscal_horiz_adv_string ==
"Upwind_3rd" ) ||
181 (moistscal_horiz_adv_string ==
"Upwind_3rd_SL" ) ||
182 (moistscal_horiz_adv_string ==
"Blended_3rd4th") ||
183 (moistscal_horiz_adv_string ==
"Centered_4th") ||
184 (moistscal_horiz_adv_string ==
"Upwind_5th" ) ||
185 (moistscal_horiz_adv_string ==
"Blended_5th6th") ||
186 (moistscal_horiz_adv_string ==
"Centered_6th") ||
187 (moistscal_horiz_adv_string ==
"WENO3" ) ||
188 (moistscal_horiz_adv_string ==
"WENOZ3" ) ||
189 (moistscal_horiz_adv_string ==
"WENOMZQ3" ) ||
190 (moistscal_horiz_adv_string ==
"WENO5" ) ||
191 (moistscal_horiz_adv_string ==
"WENOZ5" ) ||
192 (moistscal_horiz_adv_string ==
"WENO7" ) ||
193 (moistscal_horiz_adv_string ==
"WENOZ7" ))
197 amrex::Error(
"Don't know this moistscal_horiz_adv_string");
201 if (moistscal_vert_adv_string !=
"") {
202 if ( (moistscal_vert_adv_string ==
"Centered_2nd") ||
203 (moistscal_vert_adv_string ==
"Upwind_3rd" ) ||
204 (moistscal_vert_adv_string ==
"Upwind_3rd_SL" ) ||
205 (moistscal_vert_adv_string ==
"Blended_3rd4th") ||
206 (moistscal_vert_adv_string ==
"Centered_4th") ||
207 (moistscal_vert_adv_string ==
"Upwind_5th" ) ||
208 (moistscal_vert_adv_string ==
"Blended_5th6th") ||
209 (moistscal_vert_adv_string ==
"Centered_6th") ||
210 (moistscal_vert_adv_string ==
"WENO3" ) ||
211 (moistscal_vert_adv_string ==
"WENOZ3" ) ||
212 (moistscal_vert_adv_string ==
"WENOMZQ3" ) ||
213 (moistscal_vert_adv_string ==
"WENO5" ) ||
214 (moistscal_vert_adv_string ==
"WENOZ5" ) ||
215 (moistscal_vert_adv_string ==
"WENO7" ) ||
216 (moistscal_vert_adv_string ==
"WENOZ7" ))
220 amrex::Error(
"Don't know this moistscal_vert_adv_string");
225 std::string terrain_type;
226 pp.query(
"terrain_type", terrain_type);
amrex::Vector< amrex::IntVect > zero_yflux
Definition: ERF_AdvStruct.H:438
void validate_weno_momentum_compatibility(bool use_embedded_boundary)
Definition: ERF_AdvStruct.H:385
AdvType adv_type_convert_string_to_advtype(std::string adv_string)
Definition: ERF_AdvStruct.H:352
bool use_efficient_advection
Definition: ERF_AdvStruct.H:418
amrex::Vector< amrex::IntVect > zero_xflux
Definition: ERF_AdvStruct.H:437
amrex::Vector< amrex::IntVect > zero_zflux
Definition: ERF_AdvStruct.H:439
bool have_zero_flux_faces
Definition: ERF_AdvStruct.H:440