|
WarpX
|
Go to the source code of this file.
Functions | |
| 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 with electromagnetic solver 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). | |
| 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. | |
| 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, const amrex::IntVect &arr_fine_stag) |
| 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. | |
| 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. | |
| 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.
| [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 |
| 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.
| [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_tmp | temporary array to store a copy of the 'aux' MultiFab with given guard cells |
| [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 |
| 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 with electromagnetic solver 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).
| [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 |
| 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, | ||
| const amrex::IntVect & | arr_fine_stag ) |
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.
| [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_fine_stag | IndexType of the fine-patch arrays |