1 #ifndef ERF_INTERPOLATE_UPW_H_
2 #define ERF_INTERPOLATE_UPW_H_
11 CENTERED2 (
const amrex::Array4<const amrex::Real>& phi,
85 amrex::Array4<const amrex::Real>
m_phi;
94 UPWIND3 (
const amrex::Array4<const amrex::Real>& phi,
106 const int& qty_index,
117 if (upw_lo != 0.) upw_lo = (upw_lo > 0) ? 1. : -1.;
123 val_lo =
Evaluate(sp1,s,sm1,sm2,upw_lo);
132 const int& qty_index,
143 if (upw_lo != 0.) upw_lo = (upw_lo > 0) ? 1. : -1.;
149 val_lo =
Evaluate(sp1,s,sm1,sm2,upw_lo);
158 const int& qty_index,
169 if (upw_lo != 0.) upw_lo = (upw_lo > 0) ? 1. : -1.;
175 val_lo =
Evaluate(sp1,s,sm1,sm2,upw_lo);
194 return (
g1*a1 -
g2*
a2 + upw *
g2 * (d2 - 3.0*d1) );
202 amrex::Array4<const amrex::Real>
m_phi;
225 const int& qty_index,
230 if (upw_lo != 0.) upw_lo = (upw_lo > 0) ? 1. : -1.;
243 val_lo = (1.0 + upw_lo)/2.0 * Fhi + (1.0 - upw_lo)/2.0 * Flo;
252 const int& qty_index,
257 if (upw_lo != 0.) upw_lo = (upw_lo > 0) ? 1. : -1.;
270 val_lo = (1.0 + upw_lo)/2.0 * Fhi + (1.0 - upw_lo)/2.0 * Flo;
279 const int& qty_index,
284 if (upw_lo != 0.) upw_lo = (upw_lo > 0) ? 1. : -1.;
297 val_lo = (1.0 + upw_lo)/2.0 * Fhi + (1.0 - upw_lo)/2.0 * Flo;
309 amrex::Real phi = std::max(0.0,std::min(2.0*rmh,std::min(2.0,K)));
310 return (sm1 + 0.5 * phi * (sm1 - sm2));
316 amrex::Array4<const amrex::Real>
m_phi;
338 const int& qty_index,
358 const int& qty_index,
378 const int& qty_index,
411 amrex::Array4<const amrex::Real>
m_phi;
421 UPWIND5 (
const amrex::Array4<const amrex::Real>& phi,
433 const int& qty_index,
446 if (upw_lo != 0.) upw_lo = (upw_lo > 0) ? 1. : -1.;
452 val_lo =
Evaluate(sp2,sp1,s,sm1,sm2,sm3,upw_lo);
461 const int& qty_index,
474 if (upw_lo != 0.) upw_lo = (upw_lo > 0) ? 1. : -1.;
480 val_lo =
Evaluate(sp2,sp1,s,sm1,sm2,sm3,upw_lo);
489 const int& qty_index,
502 if (upw_lo != 0.) upw_lo = (upw_lo > 0) ? 1. : -1.;
508 val_lo =
Evaluate(sp2,sp1,s,sm1,sm2,sm3,upw_lo);
531 return (
g1*a1 -
g2*
a2 +
g3*
a3 - upw *
g3 * (d3 - 5.0*d2 + 10.0*d1) );
539 amrex::Array4<const amrex::Real>
m_phi;
561 const int& qty_index,
574 val_lo =
Evaluate(sp2,sp1,s,sm1,sm2,sm3);
583 const int& qty_index,
596 val_lo =
Evaluate(sp2,sp1,s,sm1,sm2,sm3);
605 const int& qty_index,
618 val_lo =
Evaluate(sp2,sp1,s,sm1,sm2,sm3);
643 amrex::Array4<const amrex::Real>
m_phi;
666 const int& qty_index,
672 val_lo = 0.5 * (
m_phi(i,j,k,qty_index) +
m_phi(i,j,k-1,qty_index) );
684 if (upw_lo != 0.) upw_lo = (upw_lo > 0) ? 1. : -1.;
690 val_lo =
Evaluate(sp2,sp1,s,sm1,sm2,sm3,upw_lo,adv_type);
731 amrex::Array4<const amrex::Real>
m_phi;
AdvType
Definition: ERF_IndexDefines.H:221
amrex::Real Real
Definition: ERF_ShocInterface.H:16
real(c_double), parameter a2
Definition: ERF_module_model_constants.F90:95
real(c_double), parameter a3
Definition: ERF_module_model_constants.F90:96
Definition: ERF_Interpolation_UPW.H:10
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Evaluate(const amrex::Real &s, const amrex::Real &sm1) const
Definition: ERF_Interpolation_UPW.H:72
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInY(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real) const
Definition: ERF_Interpolation_UPW.H:36
int GetUpwindCellNumber() const
Definition: ERF_Interpolation_UPW.H:82
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInZ(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real) const
Definition: ERF_Interpolation_UPW.H:54
CENTERED2(const amrex::Array4< const amrex::Real > &phi, const amrex::Real)
Definition: ERF_Interpolation_UPW.H:11
amrex::Array4< const amrex::Real > m_phi
Definition: ERF_Interpolation_UPW.H:85
static constexpr amrex::Real g1
Definition: ERF_Interpolation_UPW.H:86
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInX(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real) const
Definition: ERF_Interpolation_UPW.H:18
Definition: ERF_Interpolation_UPW.H:327
CENTERED4(const amrex::Array4< const amrex::Real > &phi, const amrex::Real)
Definition: ERF_Interpolation_UPW.H:328
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInZ(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real) const
Definition: ERF_Interpolation_UPW.H:375
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInY(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real) const
Definition: ERF_Interpolation_UPW.H:355
amrex::Array4< const amrex::Real > m_phi
Definition: ERF_Interpolation_UPW.H:411
static constexpr amrex::Real g1
Definition: ERF_Interpolation_UPW.H:412
int GetUpwindCellNumber() const
Definition: ERF_Interpolation_UPW.H:408
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInX(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real) const
Definition: ERF_Interpolation_UPW.H:335
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Evaluate(const amrex::Real &sp1, const amrex::Real &s, const amrex::Real &sm1, const amrex::Real &sm2) const
Definition: ERF_Interpolation_UPW.H:395
static constexpr amrex::Real g2
Definition: ERF_Interpolation_UPW.H:413
Definition: ERF_Interpolation_UPW.H:550
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInX(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real) const
Definition: ERF_Interpolation_UPW.H:558
static constexpr amrex::Real g2
Definition: ERF_Interpolation_UPW.H:645
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInY(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real) const
Definition: ERF_Interpolation_UPW.H:580
int GetUpwindCellNumber() const
Definition: ERF_Interpolation_UPW.H:640
static constexpr amrex::Real g1
Definition: ERF_Interpolation_UPW.H:644
amrex::Array4< const amrex::Real > m_phi
Definition: ERF_Interpolation_UPW.H:643
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInZ(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real) const
Definition: ERF_Interpolation_UPW.H:602
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Evaluate(const amrex::Real &sp2, const amrex::Real &sp1, const amrex::Real &s, const amrex::Real &sm1, const amrex::Real &sm2, const amrex::Real &sm3) const
Definition: ERF_Interpolation_UPW.H:624
CENTERED6(const amrex::Array4< const amrex::Real > &phi, const amrex::Real)
Definition: ERF_Interpolation_UPW.H:551
static constexpr amrex::Real g3
Definition: ERF_Interpolation_UPW.H:646
Definition: ERF_Interpolation_UPW.H:213
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInX(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real upw_lo) const
Definition: ERF_Interpolation_UPW.H:222
static constexpr amrex::Real eps
Definition: ERF_Interpolation_UPW.H:317
int GetUpwindCellNumber() const
Definition: ERF_Interpolation_UPW.H:313
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Evaluate(const amrex::Real &s, const amrex::Real &sm1, const amrex::Real &sm2) const
Definition: ERF_Interpolation_UPW.H:303
static constexpr amrex::Real l1
Definition: ERF_Interpolation_UPW.H:318
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInZ(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real upw_lo) const
Definition: ERF_Interpolation_UPW.H:276
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInY(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real upw_lo) const
Definition: ERF_Interpolation_UPW.H:249
UPWIND3SL(const amrex::Array4< const amrex::Real > &phi, const amrex::Real)
Definition: ERF_Interpolation_UPW.H:214
amrex::Array4< const amrex::Real > m_phi
Definition: ERF_Interpolation_UPW.H:316
static constexpr amrex::Real l2
Definition: ERF_Interpolation_UPW.H:319
Definition: ERF_Interpolation_UPW.H:93
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Evaluate(const amrex::Real &sp1, const amrex::Real &s, const amrex::Real &sm1, const amrex::Real &sm2, const amrex::Real &upw) const
Definition: ERF_Interpolation_UPW.H:181
static constexpr amrex::Real g2
Definition: ERF_Interpolation_UPW.H:205
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInZ(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real upw_lo) const
Definition: ERF_Interpolation_UPW.H:155
void SetUpwinding(amrex::Real upw_frac)
Definition: ERF_Interpolation_UPW.H:199
amrex::Array4< const amrex::Real > m_phi
Definition: ERF_Interpolation_UPW.H:202
static constexpr amrex::Real g1
Definition: ERF_Interpolation_UPW.H:204
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInY(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real upw_lo) const
Definition: ERF_Interpolation_UPW.H:129
int GetUpwindCellNumber() const
Definition: ERF_Interpolation_UPW.H:197
amrex::Real m_upw_frac
Definition: ERF_Interpolation_UPW.H:203
UPWIND3(const amrex::Array4< const amrex::Real > &phi, const amrex::Real upw_frac)
Definition: ERF_Interpolation_UPW.H:94
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInX(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real upw_lo) const
Definition: ERF_Interpolation_UPW.H:103
Definition: ERF_Interpolation_UPW.H:420
amrex::Real m_upw_frac
Definition: ERF_Interpolation_UPW.H:540
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Evaluate(const amrex::Real &sp2, const amrex::Real &sp1, const amrex::Real &s, const amrex::Real &sm1, const amrex::Real &sm2, const amrex::Real &sm3, const amrex::Real &upw) const
Definition: ERF_Interpolation_UPW.H:514
amrex::Array4< const amrex::Real > m_phi
Definition: ERF_Interpolation_UPW.H:539
static constexpr amrex::Real g2
Definition: ERF_Interpolation_UPW.H:542
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInZ(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real upw_lo) const
Definition: ERF_Interpolation_UPW.H:486
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInY(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real upw_lo) const
Definition: ERF_Interpolation_UPW.H:458
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInX(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real upw_lo) const
Definition: ERF_Interpolation_UPW.H:430
UPWIND5(const amrex::Array4< const amrex::Real > &phi, const amrex::Real upw_frac)
Definition: ERF_Interpolation_UPW.H:421
int GetUpwindCellNumber() const
Definition: ERF_Interpolation_UPW.H:534
static constexpr amrex::Real g1
Definition: ERF_Interpolation_UPW.H:541
static constexpr amrex::Real g3
Definition: ERF_Interpolation_UPW.H:543
void SetUpwinding(amrex::Real upw_frac)
Definition: ERF_Interpolation_UPW.H:536
Definition: ERF_Interpolation_UPW.H:653
amrex::Array4< const amrex::Real > m_phi
Definition: ERF_Interpolation_UPW.H:731
static constexpr amrex::Real g1_5_6
Definition: ERF_Interpolation_UPW.H:735
static constexpr amrex::Real g1_3_4
Definition: ERF_Interpolation_UPW.H:733
amrex::Real m_upw_frac
Definition: ERF_Interpolation_UPW.H:732
static constexpr amrex::Real g2_3_4
Definition: ERF_Interpolation_UPW.H:734
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Evaluate(const amrex::Real &sp2, const amrex::Real &sp1, const amrex::Real &s, const amrex::Real &sm1, const amrex::Real &sm2, const amrex::Real &sm3, const amrex::Real &upw, const AdvType adv_type) const
Definition: ERF_Interpolation_UPW.H:697
static constexpr amrex::Real g3_5_6
Definition: ERF_Interpolation_UPW.H:737
UPWINDALL(const amrex::Array4< const amrex::Real > &phi, const amrex::Real upw_frac)
Definition: ERF_Interpolation_UPW.H:654
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void InterpolateInZ(const int &i, const int &j, const int &k, const int &qty_index, amrex::Real &val_lo, amrex::Real upw_lo, const AdvType adv_type) const
Definition: ERF_Interpolation_UPW.H:663
static constexpr amrex::Real g2_5_6
Definition: ERF_Interpolation_UPW.H:736