ARTEMIS
Functions
WarpXComm_K.H File Reference
#include <AMReX.H>
#include <AMReX_FArrayBox.H>

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)
 
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void warpx_interp_nd_bfield_x (int j, int k, int l, amrex::Array4< amrex::Real > const &Bxa, amrex::Array4< amrex::Real const > const &Bxf, amrex::Array4< amrex::Real const > const &Bxc, amrex::Array4< amrex::Real const > const &Bxg)
 
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void warpx_interp_nd_bfield_y (int j, int k, int l, amrex::Array4< amrex::Real > const &Bya, amrex::Array4< amrex::Real const > const &Byf, amrex::Array4< amrex::Real const > const &Byc, amrex::Array4< amrex::Real const > const &Byg)
 
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void warpx_interp_nd_bfield_z (int j, int k, int l, amrex::Array4< amrex::Real > const &Bza, amrex::Array4< amrex::Real const > const &Bzf, amrex::Array4< amrex::Real const > const &Bzc, amrex::Array4< amrex::Real const > const &Bzg)
 
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void warpx_interp_nd_efield_x (int j, int k, int l, amrex::Array4< amrex::Real > const &Exa, amrex::Array4< amrex::Real const > const &Exf, amrex::Array4< amrex::Real const > const &Exc, amrex::Array4< amrex::Real const > const &Exg)
 
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void warpx_interp_nd_efield_y (int j, int k, int l, amrex::Array4< amrex::Real > const &Eya, amrex::Array4< amrex::Real const > const &Eyf, amrex::Array4< amrex::Real const > const &Eyc, amrex::Array4< amrex::Real const > const &Eyg)
 
AMREX_GPU_DEVICE AMREX_FORCE_INLINE void warpx_interp_nd_efield_z (int j, int k, int l, amrex::Array4< amrex::Real > const &Eza, amrex::Array4< amrex::Real const > const &Ezf, amrex::Array4< amrex::Real const > const &Ezc, amrex::Array4< amrex::Real const > const &Ezg)
 
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...
 

Function Documentation

◆ warpx_interp() [1/2]

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]jindex along x of the output array
[in]kindex along y (in 3D) or z (in 2D) of the output array
[in]lindex along z (in 3D, l = 0 in 2D) of the output array
[in,out]dst_arroutput array where interpolated values are stored
[in]src_arrinput array storing the values used for interpolation
[in]dst_stagIndexType of the output array
[in]src_stagIndexType of the input array
[in]noxorder of finite-order centering along x
[in]noyorder of finite-order centering along y
[in]nozorder of finite-order centering along z
[in]stencil_coeffs_xarray of ordered Fornberg coefficients for finite-order centering stencil along x
[in]stencil_coeffs_yarray of ordered Fornberg coefficients for finite-order centering stencil along y
[in]stencil_coeffs_zarray of ordered Fornberg coefficients for finite-order centering stencil along z

◆ warpx_interp() [2/2]

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 
)

◆ warpx_interp_nd_bfield_x()

AMREX_GPU_DEVICE AMREX_FORCE_INLINE void warpx_interp_nd_bfield_x ( int  j,
int  k,
int  l,
amrex::Array4< amrex::Real > const &  Bxa,
amrex::Array4< amrex::Real const > const &  Bxf,
amrex::Array4< amrex::Real const > const &  Bxc,
amrex::Array4< amrex::Real const > const &  Bxg 
)

◆ warpx_interp_nd_bfield_y()

AMREX_GPU_DEVICE AMREX_FORCE_INLINE void warpx_interp_nd_bfield_y ( int  j,
int  k,
int  l,
amrex::Array4< amrex::Real > const &  Bya,
amrex::Array4< amrex::Real const > const &  Byf,
amrex::Array4< amrex::Real const > const &  Byc,
amrex::Array4< amrex::Real const > const &  Byg 
)

◆ warpx_interp_nd_bfield_z()

AMREX_GPU_DEVICE AMREX_FORCE_INLINE void warpx_interp_nd_bfield_z ( int  j,
int  k,
int  l,
amrex::Array4< amrex::Real > const &  Bza,
amrex::Array4< amrex::Real const > const &  Bzf,
amrex::Array4< amrex::Real const > const &  Bzc,
amrex::Array4< amrex::Real const > const &  Bzg 
)

◆ warpx_interp_nd_efield_x()

AMREX_GPU_DEVICE AMREX_FORCE_INLINE void warpx_interp_nd_efield_x ( int  j,
int  k,
int  l,
amrex::Array4< amrex::Real > const &  Exa,
amrex::Array4< amrex::Real const > const &  Exf,
amrex::Array4< amrex::Real const > const &  Exc,
amrex::Array4< amrex::Real const > const &  Exg 
)

◆ warpx_interp_nd_efield_y()

AMREX_GPU_DEVICE AMREX_FORCE_INLINE void warpx_interp_nd_efield_y ( int  j,
int  k,
int  l,
amrex::Array4< amrex::Real > const &  Eya,
amrex::Array4< amrex::Real const > const &  Eyf,
amrex::Array4< amrex::Real const > const &  Eyc,
amrex::Array4< amrex::Real const > const &  Eyg 
)

◆ warpx_interp_nd_efield_z()

AMREX_GPU_DEVICE AMREX_FORCE_INLINE void warpx_interp_nd_efield_z ( int  j,
int  k,
int  l,
amrex::Array4< amrex::Real > const &  Eza,
amrex::Array4< amrex::Real const > const &  Ezf,
amrex::Array4< amrex::Real const > const &  Ezc,
amrex::Array4< amrex::Real const > const &  Ezg 
)