1 #ifndef ERF_IBSEB_SLAB_H
2 #define ERF_IBSEB_SLAB_H
4 #include <AMReX_REAL.H>
5 #include <AMReX_GpuQualifiers.H>
50 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
61 const amrex::Real b0 = 1.0 + 2.0 * Fourier + ((N > 1) ? Fourier : 2.0 * Fourier);
63 const amrex::Real d0 =
T[0] + 2.0 * Fourier * T_skin + ((N > 1) ? 0.0 : 2.0 * Fourier * T_int);
68 for (
int l = 1; l < N - 1; ++l) {
69 const amrex::Real a = -Fourier, b = 1.0 + 2.0 * Fourier, c = -Fourier;
77 const amrex::Real a = -Fourier, b = 1.0 + Fourier + 2.0 * Fourier;
79 gamma[l] = (
T[l] + 2.0 * Fourier * T_int - a *
gamma[l - 1]) / bm;
84 for (
int l = N - 2; l >= 0; --l) {
T[l] =
gamma[l] -
alpha[l] *
T[l + 1]; }
85 return 2.0 * k * (T_skin -
T[0]) /
dz;
104 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
111 for (
int l = 0; l < N; ++l) { W[l] =
T[l]; }
113 for (
int l = 0; l < N; ++l) { W[l] =
T[l]; }
amrex::Real gamma
Definition: ERF_InitCustomPert_DataAssimilation_ISV.H:9
amrex::Real Real
Definition: ERF_ShocInterface.H:19
@ T
Definition: ERF_IndexDefines.H:128
@ dz
Definition: ERF_AdvanceWDM6.cpp:272
Definition: ERF_IBSEBBalance.H:51
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real advance_slab_dirichlet(amrex::Real *T, amrex::Real T_skin, amrex::Real T_int, amrex::Real k, amrex::Real rho_cp, amrex::Real dz, amrex::Real dt, int N)
Definition: ERF_IBSEBSlab.H:51
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void slab_skin_response(const amrex::Real *T, amrex::Real T_int, amrex::Real k, amrex::Real rho_cp, amrex::Real dz, amrex::Real dt, int N, amrex::Real &a, amrex::Real &b)
Definition: ERF_IBSEBSlab.H:105
constexpr int SLAB_MAX_LAYERS
Definition: ERF_IBSEBSlab.H:28
real(kind=kind_phys), parameter, private alpha
Definition: ERF_module_mp_wdm6.F90:62