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 ==
"Centered_2nd") ||
91 (dycore_horiz_adv_string ==
"Upwind_3rd" ) ||
92 (dycore_horiz_adv_string ==
"Blended_3rd4th") ||
93 (dycore_horiz_adv_string ==
"Centered_4th") ||
94 (dycore_horiz_adv_string ==
"Upwind_5th" ) ||
95 (dycore_horiz_adv_string ==
"Blended_5th6th") ||
96 (dycore_horiz_adv_string ==
"Centered_6th") )
99 amrex::Print() <<
"Using dycore_horiz_adv_type: " << dycore_horiz_adv_string << std::endl;
101 amrex::Print() <<
"Using default dycore_horiz_adv_type" << std::endl;;
104 if ( (dycore_vert_adv_string ==
"Centered_2nd") ||
105 (dycore_vert_adv_string ==
"Upwind_3rd" ) ||
106 (dycore_vert_adv_string ==
"Blended_3rd4th") ||
107 (dycore_vert_adv_string ==
"Centered_4th") ||
108 (dycore_vert_adv_string ==
"Upwind_5th" ) ||
109 (dycore_vert_adv_string ==
"Blended_5th6th") ||
110 (dycore_vert_adv_string ==
"Centered_6th") )
113 amrex::Print() <<
"Using dycore_vert_adv_type: " << dycore_vert_adv_string << std::endl;
115 amrex::Print() <<
"Using default dycore_vert_adv_type" << std::endl;;
118 if ( (dryscal_horiz_adv_string ==
"Centered_2nd") ||
119 (dryscal_horiz_adv_string ==
"Upwind_3rd" ) ||
120 (dryscal_horiz_adv_string ==
"Blended_3rd4th") ||
121 (dryscal_horiz_adv_string ==
"Centered_4th") ||
122 (dryscal_horiz_adv_string ==
"Upwind_5th" ) ||
123 (dryscal_horiz_adv_string ==
"Blended_5th6th") ||
124 (dryscal_horiz_adv_string ==
"Centered_6th") ||
125 (dryscal_horiz_adv_string ==
"WENO3" ) ||
126 (dryscal_horiz_adv_string ==
"WENOZ3" ) ||
127 (dryscal_horiz_adv_string ==
"WENOMZQ3" ) ||
128 (dryscal_horiz_adv_string ==
"WENO5" ) ||
129 (dryscal_horiz_adv_string ==
"WENOZ5" ) )
132 amrex::Print() <<
"Using dryscal_horiz_adv_type: " << dryscal_horiz_adv_string << std::endl;
134 amrex::Print() <<
"Using default dryscal_horiz_adv_type" << std::endl;;
137 if ( (dryscal_vert_adv_string ==
"Centered_2nd") ||
138 (dryscal_vert_adv_string ==
"Upwind_3rd" ) ||
139 (dryscal_vert_adv_string ==
"Blended_3rd4th") ||
140 (dryscal_vert_adv_string ==
"Centered_4th") ||
141 (dryscal_vert_adv_string ==
"Upwind_5th" ) ||
142 (dryscal_vert_adv_string ==
"Blended_5th6th") ||
143 (dryscal_vert_adv_string ==
"Centered_6th") ||
144 (dryscal_vert_adv_string ==
"WENO3" ) ||
145 (dryscal_vert_adv_string ==
"WENOZ3" ) ||
146 (dryscal_vert_adv_string ==
"WENOMZQ3" ) ||
147 (dryscal_vert_adv_string ==
"WENO5" ) ||
148 (dryscal_vert_adv_string ==
"WENOZ5" ) )
151 amrex::Print() <<
"Using dryscal_vert_adv_type: " << dryscal_vert_adv_string << std::endl;
153 amrex::Print() <<
"Using default dryscal_vert_adv_type" << std::endl;;
156 if ( (moistscal_horiz_adv_string ==
"Centered_2nd") ||
157 (moistscal_horiz_adv_string ==
"Upwind_3rd" ) ||
158 (moistscal_horiz_adv_string ==
"Blended_3rd4th") ||
159 (moistscal_horiz_adv_string ==
"Centered_4th") ||
160 (moistscal_horiz_adv_string ==
"Upwind_5th" ) ||
161 (moistscal_horiz_adv_string ==
"Blended_5th6th") ||
162 (moistscal_horiz_adv_string ==
"Centered_6th") ||
163 (moistscal_horiz_adv_string ==
"WENO3" ) ||
164 (moistscal_horiz_adv_string ==
"WENOZ3" ) ||
165 (moistscal_horiz_adv_string ==
"WENOMZQ3" ) ||
166 (moistscal_horiz_adv_string ==
"WENO5" ) ||
167 (moistscal_horiz_adv_string ==
"WENOZ5" ) )
170 amrex::Print() <<
"Using moistscal_horiz_adv_type: " << moistscal_horiz_adv_string << std::endl;
172 amrex::Print() <<
"Using default moistscal_horiz_adv_type" << std::endl;;
175 if ( (moistscal_vert_adv_string ==
"Centered_2nd") ||
176 (moistscal_vert_adv_string ==
"Upwind_3rd" ) ||
177 (moistscal_vert_adv_string ==
"Blended_3rd4th") ||
178 (moistscal_vert_adv_string ==
"Centered_4th") ||
179 (moistscal_vert_adv_string ==
"Upwind_5th" ) ||
180 (moistscal_vert_adv_string ==
"Blended_5th6th") ||
181 (moistscal_vert_adv_string ==
"Centered_6th") ||
182 (moistscal_vert_adv_string ==
"WENO3" ) ||
183 (moistscal_vert_adv_string ==
"WENOZ3" ) ||
184 (moistscal_vert_adv_string ==
"WENOMZQ3" ) ||
185 (moistscal_vert_adv_string ==
"WENO5" ) ||
186 (moistscal_vert_adv_string ==
"WENOZ5" ) )
189 amrex::Print() <<
"Using moistscal_vert_adv_type: " << moistscal_vert_adv_string << std::endl;
191 amrex::Print() <<
"Using default moistscal_vert_adv_type" << std::endl;;
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real pp(amrex::Real y)
Definition: Microphysics_Utils.H:183
amrex::Vector< amrex::IntVect > zero_yflux
Definition: AdvStruct.H:302
AdvType adv_type_convert_string_to_advtype(std::string adv_string)
Definition: AdvStruct.H:250
bool use_efficient_advection
Definition: AdvStruct.H:282
std::string pp_prefix
Definition: AdvStruct.H:278
amrex::Vector< amrex::IntVect > zero_xflux
Definition: AdvStruct.H:301
amrex::Vector< amrex::IntVect > zero_zflux
Definition: AdvStruct.H:303