1 #ifndef AMREX_YAFLUXREGISTER_3D_K_H_
2 #define AMREX_YAFLUXREGISTER_3D_K_H_
3 #include <AMReX_Config.H>
15 T dtdx, T dtdy, T dtdz,
int nc) noexcept
20 for (
int k = lo.z; k <= hi.z; ++k) {
21 for (
int j = lo.y; j <= hi.y; ++j) {
22 for (
int i = lo.x; i <= hi.x; ++i) {
26 for (
int n = 0; n < nc; ++n) {
27 d(i,j,k,n) -= dtdx*fx(i,j,k,n);
31 for (
int n = 0; n < nc; ++n) {
32 d(i,j,k,n) += dtdx*fx(i+1,j,k,n);
37 for (
int n = 0; n < nc; ++n) {
38 d(i,j,k,n) -= dtdy*fy(i,j,k,n);
42 for (
int n = 0; n < nc; ++n) {
43 d(i,j,k,n) += dtdy*fy(i,j+1,k,n);
48 for (
int n = 0; n < nc; ++n) {
49 d(i,j,k,n) -= dtdz*fz(i,j,k,n);
53 for (
int n = 0; n < nc; ++n) {
54 d(i,j,k,n) += dtdz*fz(i,j,k+1,n);
64 T dtdx,
int nc,
int dirside, Dim3
const& rr) noexcept
72 for (
int n = 0; n < nc; ++n) {
73 for (
int k = lo.z; k <= hi.z; ++k) {
74 for (
int j = lo.y; j <= hi.y; ++j) {
76 const int ii = (i+1)*rr.x;
78 for (
int koff = 0; koff < rr.z; ++koff) {
79 const int kk = k*rr.z + koff;
80 for (
int joff = 0; joff < rr.y; ++joff) {
81 const int jj = j*rr.y + joff;
82 T tmp = -dtdx*
f(ii,jj,kk,n);
93 for (
int n = 0; n < nc; ++n) {
94 for (
int k = lo.z; k <= hi.z; ++k) {
95 for (
int j = lo.y; j <= hi.y; ++j) {
97 const int ii = i*rr.x;
99 for (
int koff = 0; koff < rr.z; ++koff) {
100 const int kk = k*rr.z + koff;
101 for (
int joff = 0; joff < rr.y; ++joff) {
102 const int jj = j*rr.y + joff;
103 T tmp = dtdx*
f(ii,jj,kk,n);
114 for (
int n = 0; n < nc; ++n) {
115 for (
int k = lo.z; k <= hi.z; ++k) {
116 for (
int i = lo.x; i <= hi.x; ++i) {
118 const int jj = (j+1)*rr.y;
120 for (
int koff = 0; koff < rr.z; ++koff) {
121 const int kk = k*rr.z + koff;
122 for (
int ioff = 0; ioff < rr.x; ++ioff) {
123 const int ii = i*rr.x + ioff;
124 T tmp = -dtdx*
f(ii,jj,kk,n);
135 for (
int n = 0; n < nc; ++n) {
136 for (
int k = lo.z; k <= hi.z; ++k) {
137 for (
int i = lo.x; i <= hi.x; ++i) {
139 const int jj = j*rr.y;
141 for (
int koff = 0; koff < rr.z; ++koff) {
142 const int kk = k*rr.z + koff;
143 for (
int ioff = 0; ioff < rr.x; ++ioff) {
144 const int ii = i*rr.x + ioff;
145 T tmp = dtdx*
f(ii,jj,kk,n);
156 for (
int n = 0; n < nc; ++n) {
157 for (
int j = lo.y; j <= hi.y; ++j) {
158 for (
int i = lo.x; i <= hi.x; ++i) {
160 const int kk = (k+1)*rr.z;
162 for (
int joff = 0; joff < rr.y; ++joff) {
163 const int jj = j*rr.y + joff;
164 for (
int ioff = 0; ioff < rr.x; ++ioff) {
165 const int ii = i*rr.x + ioff;
166 T tmp = -dtdx*
f(ii,jj,kk,n);
177 for (
int n = 0; n < nc; ++n) {
178 for (
int j = lo.y; j <= hi.y; ++j) {
179 for (
int i = lo.x; i <= hi.x; ++i) {
181 const int kk = k*rr.z;
183 for (
int joff = 0; joff < rr.y; ++joff) {
184 const int jj = j*rr.y + joff;
185 for (
int ioff = 0; ioff < rr.x; ++ioff) {
186 const int ii = i*rr.x + ioff;
187 T tmp = dtdx*
f(ii,jj,kk,n);
#define AMREX_FORCE_INLINE
Definition: AMReX_Extension.H:119
#define AMREX_RESTRICT
Definition: AMReX_Extension.H:37
#define AMREX_GPU_HOST_DEVICE
Definition: AMReX_GpuQualifiers.H:20
constexpr int amrex_yafluxreg_fine_cell
Definition: AMReX_YAFluxRegister_K.H:8
constexpr int amrex_yafluxreg_crse_fine_boundary_cell
Definition: AMReX_YAFluxRegister_K.H:7
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void Add(T *const sum, T const value) noexcept
Definition: AMReX_GpuAtomic.H:619
static int f(amrex::Real t, N_Vector y_data, N_Vector y_rhs, void *user_data)
Definition: AMReX_SundialsIntegrator.H:44
Definition: AMReX_Amr.cpp:49
BoxND< AMREX_SPACEDIM > Box
Definition: AMReX_BaseFwd.H:27
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE Dim3 ubound(Array4< T > const &a) noexcept
Definition: AMReX_Array4.H:315
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE Dim3 lbound(Array4< T > const &a) noexcept
Definition: AMReX_Array4.H:308
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void yafluxreg_fineadd(Box const &bx, Array4< T > const &d, Array4< T const > const &f, T dtdx, int nc, int dirside, Dim3 const &rr) noexcept
Definition: AMReX_YAFluxRegister_1D_K.H:36
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void yafluxreg_crseadd(Box const &bx, Array4< T > const &d, Array4< int const > const &flag, Array4< T const > const &fx, T dtdx, int nc) noexcept
Definition: AMReX_YAFluxRegister_1D_K.H:11
integer, parameter dp
Definition: AMReX_SDCquadrature.F90:8
Definition: AMReX_Array4.H:61