22 0,AMREX_SPACEDIM>
const& bct,
25 0,AMREX_SPACEDIM>
const& bcl,
26 int inhomog,
int maxorder,
28 Dim3 const& dlo,
Dim3 const& dhi)
noexcept
36 int const i = vlo.x-1;
37 int const j = vlo.y-1;
43 if ((x_interior && y_interior) || (x_exterior && y_exterior)) {
44 for (
int icomp = 0; icomp < AMREX_SPACEDIM; ++icomp) {
48 bcvalxlo, maxorder, dxinv[0], inhomog, icomp);
49 Real tmp = vel(i,j,k,icomp);
53 bcvalylo, maxorder, dxinv[1], inhomog, icomp);
54 vel(i,j,k,icomp) = 0.5_rt*(tmp+vel(i,j,k,icomp));
56 }
else if (x_interior || dlo.x == vlo.x) {
57 for (
int icomp = 0; icomp < AMREX_SPACEDIM; ++icomp) {
61 bcvalxlo, maxorder, dxinv[0], inhomog, icomp);
63 }
else if (y_interior || dlo.y == vlo.y) {
64 for (
int icomp = 0; icomp < AMREX_SPACEDIM; ++icomp) {
68 bcvalylo, maxorder, dxinv[1], inhomog, icomp);
72 }
else if (icorner == 1) {
73 int const i = vhi.x+1;
74 int const j = vlo.y-1;
80 if ((x_interior && y_interior) || (x_exterior && y_exterior)) {
81 for (
int icomp = 0; icomp < AMREX_SPACEDIM; ++icomp) {
85 bcvalxhi, maxorder, dxinv[0], inhomog, icomp);
86 Real tmp = vel(i,j,k,icomp);
90 bcvalylo, maxorder, dxinv[1], inhomog, icomp);
91 vel(i,j,k,icomp) = 0.5_rt*(tmp+vel(i,j,k,icomp));
93 }
else if (x_interior || dhi.x == vhi.x) {
94 for (
int icomp = 0; icomp < AMREX_SPACEDIM; ++icomp) {
98 bcvalxhi, maxorder, dxinv[0], inhomog, icomp);
100 }
else if (y_interior || dlo.y == vlo.y) {
101 for (
int icomp = 0; icomp < AMREX_SPACEDIM; ++icomp) {
105 bcvalylo, maxorder, dxinv[1], inhomog, icomp);
109 }
else if (icorner == 2) {
110 int const i = vlo.x-1;
111 int const j = vhi.y+1;
117 if ((x_interior && y_interior) || (x_exterior && y_exterior)) {
118 for (
int icomp = 0; icomp < AMREX_SPACEDIM; ++icomp) {
122 bcvalxlo, maxorder, dxinv[0], inhomog, icomp);
123 Real tmp = vel(i,j,k,icomp);
127 bcvalyhi, maxorder, dxinv[1], inhomog, icomp);
128 vel(i,j,k,icomp) = 0.5_rt*(tmp+vel(i,j,k,icomp));
130 }
else if (x_interior || dlo.x == vlo.x) {
131 for (
int icomp = 0; icomp < AMREX_SPACEDIM; ++icomp) {
135 bcvalxlo, maxorder, dxinv[0], inhomog, icomp);
137 }
else if (y_interior || dhi.y == vhi.y) {
138 for (
int icomp = 0; icomp < AMREX_SPACEDIM; ++icomp) {
142 bcvalyhi, maxorder, dxinv[1], inhomog, icomp);
146 }
else if (icorner == 3) {
147 int const i = vhi.x+1;
148 int const j = vhi.y+1;
154 if ((x_interior && y_interior) || (x_exterior && y_exterior)) {
155 for (
int icomp = 0; icomp < AMREX_SPACEDIM; ++icomp) {
159 bcvalxhi, maxorder, dxinv[0], inhomog, icomp);
160 Real tmp = vel(i,j,k,icomp);
164 bcvalyhi, maxorder, dxinv[1], inhomog, icomp);
165 vel(i,j,k,icomp) = 0.5_rt*(tmp+vel(i,j,k,icomp));
167 }
else if (x_interior || dhi.x == vhi.x) {
168 for (
int icomp = 0; icomp < AMREX_SPACEDIM; ++icomp) {
172 bcvalxhi, maxorder, dxinv[0], inhomog, icomp);
174 }
else if (y_interior || dhi.y == vhi.y) {
175 for (
int icomp = 0; icomp < AMREX_SPACEDIM; ++icomp) {
179 bcvalyhi, maxorder, dxinv[1], inhomog, icomp);
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void mltensor_fill_corners(int icorner, Box const &vbox, Array4< Real > const &vel, Array4< int const > const &mxlo, Array4< int const > const &mylo, Array4< int const > const &mxhi, Array4< int const > const &myhi, Array4< Real const > const &bcvalxlo, Array4< Real const > const &bcvalylo, Array4< Real const > const &bcvalxhi, Array4< Real const > const &bcvalyhi, Array2D< BoundCond, 0, 2 *AMREX_SPACEDIM, 0, AMREX_SPACEDIM > const &bct, Array2D< Real, 0, 2 *AMREX_SPACEDIM, 0, AMREX_SPACEDIM > const &bcl, int inhomog, int maxorder, GpuArray< Real, AMREX_SPACEDIM > const &dxinv, Dim3 const &dlo, Dim3 const &dhi) noexcept
Definition AMReX_MLTensor_2D_K.H:10