ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
MYNNLevel2 Struct Reference

#include <ERF_MYNNStruct.H>

Collaboration diagram for MYNNLevel2:

Public Member Functions

void init_coeffs (amrex::Real A1_lvl25, amrex::Real A2_lvl25, amrex::Real B1, amrex::Real B2, amrex::Real C1, amrex::Real C2, amrex::Real C3, amrex::Real, amrex::Real C5)
 
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real calc_Rf (const amrex::Real GM, const amrex::Real GH) const
 
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real calc_SH (const amrex::Real Rf) const
 
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real calc_SM (const amrex::Real Rf) const
 

Public Attributes

bool initialized {false}
 
amrex::Real A1
 
amrex::Real A2
 
amrex::Real F1
 
amrex::Real F2
 
const amrex::Real gam1 = amrex::Real(0.235)
 
amrex::Real gam2
 
amrex::Real Rf1
 
amrex::Real Rf2
 
amrex::Real Rfc
 
amrex::Real Ri1
 
amrex::Real Ri2
 
amrex::Real Ri3
 
const amrex::Real eps = std::numeric_limits<amrex::Real>::epsilon()
 

Member Function Documentation

◆ calc_Rf()

AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real MYNNLevel2::calc_Rf ( const amrex::Real  GM,
const amrex::Real  GH 
) const
inline
99  {
100  AMREX_ASSERT(initialized);
101  amrex::Real lGM = std::copysign(std::max(std::fabs(GM),eps),GM);
102  amrex::Real Ri = -GH/lGM;
103  return Ri1*(Ri + Ri2 - std::sqrt(Ri*Ri - Ri3*Ri + Ri2*Ri2));
104  }
amrex::Real Real
Definition: ERF_ShocInterface.H:19
const amrex::Real eps
Definition: ERF_MYNNStruct.H:131
amrex::Real Ri3
Definition: ERF_MYNNStruct.H:129
amrex::Real Ri2
Definition: ERF_MYNNStruct.H:129
amrex::Real Ri1
Definition: ERF_MYNNStruct.H:129
bool initialized
Definition: ERF_MYNNStruct.H:122

◆ calc_SH()

AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real MYNNLevel2::calc_SH ( const amrex::Real  Rf) const
inline
109  {
110  AMREX_ASSERT(initialized);
111  return three*A2*(gam1+gam2)*(Rfc-Rf)/(one-Rf);
112  }
constexpr amrex::Real three
Definition: ERF_Constants.H:11
constexpr amrex::Real one
Definition: ERF_Constants.H:9
amrex::Real A2
Definition: ERF_MYNNStruct.H:124
const amrex::Real gam1
Definition: ERF_MYNNStruct.H:126
amrex::Real Rfc
Definition: ERF_MYNNStruct.H:128
amrex::Real gam2
Definition: ERF_MYNNStruct.H:127

Referenced by calc_SM().

Here is the caller graph for this function:

◆ calc_SM()

AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real MYNNLevel2::calc_SM ( const amrex::Real  Rf) const
inline
117  {
118  AMREX_ASSERT(initialized);
119  return A1*F1/(A2*F2) * (Rf1-Rf) / (Rf2-Rf) * calc_SH(Rf);
120  }
amrex::Real F2
Definition: ERF_MYNNStruct.H:125
amrex::Real Rf1
Definition: ERF_MYNNStruct.H:128
amrex::Real Rf2
Definition: ERF_MYNNStruct.H:128
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real calc_SH(const amrex::Real Rf) const
Definition: ERF_MYNNStruct.H:108
amrex::Real F1
Definition: ERF_MYNNStruct.H:125
amrex::Real A1
Definition: ERF_MYNNStruct.H:124
Here is the call graph for this function:

◆ init_coeffs()

void MYNNLevel2::init_coeffs ( amrex::Real  A1_lvl25,
amrex::Real  A2_lvl25,
amrex::Real  B1,
amrex::Real  B2,
amrex::Real  C1,
amrex::Real  C2,
amrex::Real  C3,
amrex::Real  ,
amrex::Real  C5 
)
inline
80  {
81  A1 = A1_lvl25;
82  A2 = A2_lvl25;
83  gam2 = (two*A1*(three-two*C2) + B2*(one-C3)) / B1;
84  F1 = B1*(gam1-C1) + two*A1*(three-two*C2) + three*A2*(one-C2)*(one-C5);
85  F2 = B1*(gam1+gam2) - three*A1*(one-C2);
86  Rf1 = B1*(gam1-C1) / F1;
87  Rf2 = B1*gam1 / F2;
88  Rfc = gam1 / (gam1 + gam2);
89  Ri1 = myhalf*A2*F2/(A1*F1);
90  Ri2 = myhalf*Rf1/Ri1;
91  Ri3 = (two*Rf2-Rf1)/Ri1;
92 
93  initialized = true;
94  }
constexpr amrex::Real two
Definition: ERF_Constants.H:10
constexpr amrex::Real myhalf
Definition: ERF_Constants.H:13

Referenced by TurbChoice::init_params().

Here is the caller graph for this function:

Member Data Documentation

◆ A1

amrex::Real MYNNLevel2::A1

Referenced by calc_SM(), and init_coeffs().

◆ A2

amrex::Real MYNNLevel2::A2

Referenced by calc_SH(), calc_SM(), and init_coeffs().

◆ eps

const amrex::Real MYNNLevel2::eps = std::numeric_limits<amrex::Real>::epsilon()

Referenced by calc_Rf().

◆ F1

amrex::Real MYNNLevel2::F1

Referenced by calc_SM(), and init_coeffs().

◆ F2

amrex::Real MYNNLevel2::F2

Referenced by calc_SM(), and init_coeffs().

◆ gam1

const amrex::Real MYNNLevel2::gam1 = amrex::Real(0.235)

Referenced by calc_SH(), and init_coeffs().

◆ gam2

amrex::Real MYNNLevel2::gam2

Referenced by calc_SH(), and init_coeffs().

◆ initialized

bool MYNNLevel2::initialized {false}

Referenced by calc_Rf(), calc_SH(), calc_SM(), and init_coeffs().

◆ Rf1

amrex::Real MYNNLevel2::Rf1

Referenced by calc_SM(), and init_coeffs().

◆ Rf2

amrex::Real MYNNLevel2::Rf2

Referenced by calc_SM(), and init_coeffs().

◆ Rfc

amrex::Real MYNNLevel2::Rfc

Referenced by calc_SH(), and init_coeffs().

◆ Ri1

amrex::Real MYNNLevel2::Ri1

Referenced by calc_Rf(), and init_coeffs().

◆ Ri2

amrex::Real MYNNLevel2::Ri2

Referenced by calc_Rf(), and init_coeffs().

◆ Ri3

amrex::Real MYNNLevel2::Ri3

Referenced by calc_Rf(), and init_coeffs().


The documentation for this struct was generated from the following file: