ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_TurbStruct.H File Reference
#include <ERF_MYNNStruct.H>
Include dependency graph for ERF_TurbStruct.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  TurbChoice
 

Functions

 AMREX_ENUM (LESType, None, Smagorinsky, Smagorinsky2D, Deardorff)
 
 AMREX_ENUM (RANSType, None, kEqn)
 
 AMREX_ENUM (PBLType, None, MYJ, MYNN25, MYNNEDMF, YSU, MRF, SHOC)
 
 AMREX_ENUM (StratType, theta, thetav, thetal)
 
template<typename T >
int query_one_or_per_level (const amrex::ParmParse &pp, const char *query_string, T &query_var, const int lev, const int maxlev)
 
template<typename T >
int query_one_or_per_level_enum_case_insensitive (const amrex::ParmParse &pp, const char *query_string, T &query_var, const int lev, const int maxlev)
 

Function Documentation

◆ AMREX_ENUM() [1/4]

AMREX_ENUM ( LESType  ,
None  ,
Smagorinsky  ,
Smagorinsky2D  ,
Deardorff   
)

◆ AMREX_ENUM() [2/4]

AMREX_ENUM ( PBLType  ,
None  ,
MYJ  ,
MYNN25  ,
MYNNEDMF  ,
YSU  ,
MRF  ,
SHOC   
)

◆ AMREX_ENUM() [3/4]

AMREX_ENUM ( RANSType  ,
None  ,
kEqn   
)

◆ AMREX_ENUM() [4/4]

AMREX_ENUM ( StratType  ,
theta  ,
thetav  ,
thetal   
)

◆ query_one_or_per_level()

template<typename T >
int query_one_or_per_level ( const amrex::ParmParse &  pp,
const char *  query_string,
T query_var,
const int  lev,
const int  maxlev 
)
22 {
23  int count = pp.countval(query_string);
24  if (count == 0) {
25  return 0; // nothing to do
26  } else if (count == 1) {
27  // In this case, we assume the same value is used at every level
28  return pp.query(query_string, query_var);
29  } else if (count >= maxlev + 1) {
30  // In this case, there may be more values than levels so we
31  // will just read the number of values we need and ignore the
32  // extra levels
33  return pp.query(query_string, query_var, lev);
34  } else {
35  // In this case, there is more than one value AND there
36  // are more levels than values; as an example, if max_level = 2
37  // but count = 2 so we have three levels but only two values --
38  // it is not clear how to interpret this so we abort
39  amrex::Error(
40  "For parmparse variable " + pp.prefixedName(query_string) +
41  ": if specified, specify once total or at least once for each level");
42  return 0; // avoid compiler warning
43  }
44 }
ParmParse pp("prob")

Referenced by TurbChoice::init_params().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ query_one_or_per_level_enum_case_insensitive()

template<typename T >
int query_one_or_per_level_enum_case_insensitive ( const amrex::ParmParse &  pp,
const char *  query_string,
T query_var,
const int  lev,
const int  maxlev 
)
54 {
55  int count = pp.countval(query_string);
56  if (count == 0) {
57  return 0; // nothing to do
58  } else if (count == 1) {
59  // In this case, we assume the same value is used at every level
60  return pp.query_enum_case_insensitive(query_string, query_var);
61  } else if (count >= maxlev + 1) {
62  // In this case, there may be more values than levels so we
63  // will just read the number of values we need and ignore the
64  // extra levels
65  return pp.query_enum_case_insensitive(query_string, query_var, lev);
66  } else {
67  // In this case, there is more than one value AND there
68  // are more levels than values; as an example, if max_level = 2
69  // but count = 2 so we have three levels but only two values --
70  // it is not clear how to interpret this so we abort
71  amrex::Error(
72  "For parmparse variable " + pp.prefixedName(query_string) +
73  ": if specified, specify once total or at least once for each level");
74  return 0; // avoid compiler warning
75  }
76 }

Referenced by SolverChoice::init_params().

Here is the call graph for this function:
Here is the caller graph for this function: