Go to the source code of this file.
|
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void | warpx_interp (int j, int k, int l, amrex::Array4< amrex::Real > const &arr_aux, amrex::Array4< amrex::Real const > const &arr_fine, amrex::Array4< amrex::Real const > const &arr_coarse, const amrex::IntVect &arr_stag, const amrex::IntVect &rr) |
| Interpolation function called within WarpX::UpdateAuxilaryDataSameType to interpolate data from the coarse and fine grids to the fine aux grid, assuming that all grids have the same staggering (either collocated or staggered). More...
|
|
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void | warpx_interp (int j, int k, int l, amrex::Array4< amrex::Real > const &arr_aux, amrex::Array4< amrex::Real const > const &arr_fine, amrex::Array4< amrex::Real const > const &arr_coarse, amrex::Array4< amrex::Real const > const &arr_tmp, const amrex::IntVect &arr_fine_stag, const amrex::IntVect &arr_coarse_stag, const amrex::IntVect &rr) |
| Interpolation function called within WarpX::UpdateAuxilaryDataStagToNodal to interpolate data from the coarse and fine grids to the fine aux grid, with momentum-conserving field gathering, hence between grids with different staggering, and assuming that the aux grid is collocated. More...
|
|
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void | warpx_interp (const int j, const int k, const int l, amrex::Array4< amrex::Real > const &dst_arr, amrex::Array4< amrex::Real const > const &src_arr, const amrex::IntVect &dst_stag, const amrex::IntVect &src_stag, const int nox=2, const int noy=2, const int noz=2, amrex::Real const *stencil_coeffs_x=nullptr, amrex::Real const *stencil_coeffs_y=nullptr, amrex::Real const *stencil_coeffs_z=nullptr) |
| Arbitrary-order interpolation function used to center a given MultiFab between two grids with different staggerings. The arbitrary-order interpolation is based on the Fornberg coefficients. The result is stored in the output array dst_arr . More...
|
|
◆ warpx_interp() [1/3]
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void warpx_interp |
( |
const int |
j, |
|
|
const int |
k, |
|
|
const int |
l, |
|
|
amrex::Array4< amrex::Real > const & |
dst_arr, |
|
|
amrex::Array4< amrex::Real const > const & |
src_arr, |
|
|
const amrex::IntVect & |
dst_stag, |
|
|
const amrex::IntVect & |
src_stag, |
|
|
const int |
nox = 2 , |
|
|
const int |
noy = 2 , |
|
|
const int |
noz = 2 , |
|
|
amrex::Real const * |
stencil_coeffs_x = nullptr , |
|
|
amrex::Real const * |
stencil_coeffs_y = nullptr , |
|
|
amrex::Real const * |
stencil_coeffs_z = nullptr |
|
) |
| |
Arbitrary-order interpolation function used to center a given MultiFab between two grids with different staggerings. The arbitrary-order interpolation is based on the Fornberg coefficients. The result is stored in the output array dst_arr
.
- Parameters
-
[in] | j | index along x of the output array |
[in] | k | index along y (in 3D) or z (in 2D) of the output array |
[in] | l | index along z (in 3D, l = 0 in 2D) of the output array |
[in,out] | dst_arr | output array where interpolated values are stored |
[in] | src_arr | input array storing the values used for interpolation |
[in] | dst_stag | IndexType of the output array |
[in] | src_stag | IndexType of the input array |
[in] | nox | order of finite-order centering along x |
[in] | noy | order of finite-order centering along y |
[in] | noz | order of finite-order centering along z |
[in] | stencil_coeffs_x | array of ordered Fornberg coefficients for finite-order centering stencil along x |
[in] | stencil_coeffs_y | array of ordered Fornberg coefficients for finite-order centering stencil along y |
[in] | stencil_coeffs_z | array of ordered Fornberg coefficients for finite-order centering stencil along z |
◆ warpx_interp() [2/3]
Interpolation function called within WarpX::UpdateAuxilaryDataStagToNodal to interpolate data from the coarse and fine grids to the fine aux grid, with momentum-conserving field gathering, hence between grids with different staggering, and assuming that the aux grid is collocated.
- Parameters
-
[in] | j | index along x of the output array |
[in] | k | index along y (in 3D) or z (in 2D) of the output array |
[in] | l | index along z (in 3D, l=0 in 2D) of the output array |
[in,out] | arr_aux | output array where interpolated values are stored |
[in] | arr_fine | input fine-patch array storing the values to interpolate |
[in] | arr_coarse | input coarse-patch array storing the values to interpolate |
[in] | arr_fine_stag | IndexType of the fine-patch arrays |
[in] | arr_coarse_stag | IndexType of the coarse-patch arrays |
[in] | rr | mesh refinement ratios along each direction |
◆ warpx_interp() [3/3]
Interpolation function called within WarpX::UpdateAuxilaryDataSameType to interpolate data from the coarse and fine grids to the fine aux grid, assuming that all grids have the same staggering (either collocated or staggered).
- Parameters
-
[in] | j | index along x of the output array |
[in] | k | index along y (in 3D) or z (in 2D) of the output array |
[in] | l | index along z (in 3D, l=0 in 2D) of the output array |
[in,out] | arr_aux | output array where interpolated values are stored |
[in] | arr_fine | input fine-patch array storing the values to interpolate |
[in] | arr_coarse | input coarse-patch array storing the values to interpolate |
[in] | arr_stag | IndexType of the arrays |
[in] | rr | mesh refinement ratios along each direction |