aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianCKCAlgorithm.H
diff options
context:
space:
mode:
Diffstat (limited to 'Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianCKCAlgorithm.H')
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianCKCAlgorithm.H13
1 files changed, 8 insertions, 5 deletions
diff --git a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianCKCAlgorithm.H b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianCKCAlgorithm.H
index ef6d53416..b688110b7 100644
--- a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianCKCAlgorithm.H
+++ b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianCKCAlgorithm.H
@@ -143,9 +143,10 @@ struct CartesianCKCAlgorithm {
/**
* Perform derivative along x on a nodal grid, from a cell-centered field `F` */
+ template< typename T_Field>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
static amrex::Real DownwardDx (
- amrex::Array4<amrex::Real> const& F,
+ T_Field const& F,
amrex::Real const * const coefs_x, int const /*n_coefs_x*/,
int const i, int const j, int const k, int const ncomp=0 ) {
@@ -189,15 +190,16 @@ struct CartesianCKCAlgorithm {
/**
* Perform derivative along y on a nodal grid, from a cell-centered field `F` */
+ template< typename T_Field>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
static amrex::Real DownwardDy (
- amrex::Array4<amrex::Real> const& F,
+ T_Field const& F,
amrex::Real const * const coefs_y, int const n_coefs_y,
int const i, int const j, int const k, int const ncomp=0 ) {
using namespace amrex;
#if defined WARPX_DIM_3D
- Real const inv_dy = coefs_y[0];
+ amrex::Real const inv_dy = coefs_y[0];
return inv_dy*( F(i,j,k,ncomp) - F(i,j-1,k,ncomp) );
amrex::ignore_unused(n_coefs_y);
#elif (defined WARPX_DIM_XZ)
@@ -248,11 +250,12 @@ struct CartesianCKCAlgorithm {
/**
* Perform derivative along z on a nodal grid, from a cell-centered field `F` */
+ template< typename T_Field>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
static amrex::Real DownwardDz (
- amrex::Array4<amrex::Real> const& F,
+ T_Field const& F,
amrex::Real const * const coefs_z, int const /*n_coefs_z*/,
- int const i, int const j, int const k, int const ncomp=0 ) {
+ int const i, int const j, int const k, int const ncomp=0) {
amrex::Real const inv_dz = coefs_z[0];
#if defined WARPX_DIM_3D