diff options
Diffstat (limited to 'Source/FieldSolver')
-rw-r--r-- | Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp | 30 | ||||
-rw-r--r-- | Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H | 16 | ||||
-rw-r--r-- | Source/FieldSolver/Make.package | 3 |
3 files changed, 24 insertions, 25 deletions
diff --git a/Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp b/Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp index 9252237bd..647e27d8a 100644 --- a/Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp +++ b/Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp @@ -1,13 +1,13 @@ -#include <WarpXAlgorithmSelection.H> -#include<FiniteDifferenceAlgorithms/YeeAlgorithm.H> -#include<FiniteDifferenceSolver.H> -#include<AMReX_Gpu.H> +#include "WarpXAlgorithmSelection.H" +#include "FiniteDifferenceAlgorithms/YeeAlgorithm.H" +#include "FiniteDifferenceSolver.H" +#include <AMReX_Gpu.H> using namespace amrex; void FiniteDifferenceSolver::EvolveB ( VectorField& Bfield, - VectorField& Efield, - amrex::Real dt ) { + VectorField const& Efield, + amrex::Real const dt ) { // Select algorithm (The choice of algorithm is a runtime option, // but we compile code for each algorithm, using templates) if (m_fdtd_algo == MaxwellSolverAlgo::Yee){ @@ -19,10 +19,10 @@ void FiniteDifferenceSolver::EvolveB ( VectorField& Bfield, } } -template<typename algo> +template<typename T_Algo> void FiniteDifferenceSolver::EvolveBwithAlgo ( VectorField& Bfield, - VectorField& Efield, - amrex::Real dt ) { + VectorField const& Efield, + amrex::Real const dt ) { // Loop through the grids, and over the tiles within each grid #ifdef _OPENMP @@ -55,18 +55,18 @@ void FiniteDifferenceSolver::EvolveBwithAlgo ( VectorField& Bfield, amrex::ParallelFor(tbx, tby, tbz, [=] AMREX_GPU_DEVICE (int i, int j, int k){ - Bx(i, j, k) += dt * algo::UpwardDz(Ey, coefs_z, n_coefs_z, i, j, k) - - dt * algo::UpwardDy(Ez, coefs_y, n_coefs_y, i, j, k); + Bx(i, j, k) += dt * T_Algo::UpwardDz(Ey, coefs_z, n_coefs_z, i, j, k) + - dt * T_Algo::UpwardDy(Ez, coefs_y, n_coefs_y, i, j, k); }, [=] AMREX_GPU_DEVICE (int i, int j, int k){ - By(i, j, k) += dt * algo::UpwardDx(Ez, coefs_x, n_coefs_x, i, j, k) - - dt * algo::UpwardDz(Ex, coefs_z, n_coefs_z, i, j, k); + By(i, j, k) += dt * T_Algo::UpwardDx(Ez, coefs_x, n_coefs_x, i, j, k) + - dt * T_Algo::UpwardDz(Ex, coefs_z, n_coefs_z, i, j, k); }, [=] AMREX_GPU_DEVICE (int i, int j, int k){ - Bz(i, j, k) += dt * algo::UpwardDy(Ex, coefs_y, n_coefs_y, i, j, k) - - dt * algo::UpwardDx(Ey, coefs_x, n_coefs_x, i, j, k); + Bz(i, j, k) += dt * T_Algo::UpwardDy(Ex, coefs_y, n_coefs_y, i, j, k) + - dt * T_Algo::UpwardDx(Ey, coefs_x, n_coefs_x, i, j, k); } ); diff --git a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H index 5496adff9..8653ce62b 100644 --- a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H +++ b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H @@ -1,9 +1,9 @@ #ifndef WARPX_FINITE_DIFFERENCE_SOLVER_H_ #define WARPX_FINITE_DIFFERENCE_SOLVER_H_ +#include "WarpXAlgorithmSelection.H" +#include "FiniteDifferenceAlgorithms/YeeAlgorithm.H" #include <AMReX_MultiFab.H> -#include <WarpXAlgorithmSelection.H> -#include<FiniteDifferenceAlgorithms/YeeAlgorithm.H> /** * \brief Top-level class for the electromagnetic finite-difference solver @@ -17,7 +17,7 @@ class FiniteDifferenceSolver using VectorField = std::array< std::unique_ptr<amrex::MultiFab>, 3 >; // Constructor - FiniteDifferenceSolver ( int fdtd_algo, + FiniteDifferenceSolver ( int const fdtd_algo, std::array<amrex::Real,3> cell_size ) { // Register the type of finite-difference algorithm @@ -36,8 +36,8 @@ class FiniteDifferenceSolver }; void EvolveB ( VectorField& Bfield, - VectorField& Efield, - amrex::Real dt ); + VectorField const& Efield, + amrex::Real const dt ); private: int m_fdtd_algo; @@ -46,10 +46,10 @@ class FiniteDifferenceSolver amrex::Gpu::ManagedVector<amrex::Real> stencil_coefs_y; amrex::Gpu::ManagedVector<amrex::Real> stencil_coefs_z; - template< typename fdtd_algo > + template< typename T_Algo > void EvolveBwithAlgo ( VectorField& Bfield, - VectorField& Efield, - amrex::Real dt ); + VectorField const& Efield, + amrex::Real const dt ); }; diff --git a/Source/FieldSolver/Make.package b/Source/FieldSolver/Make.package index a7c8ce671..522c4c07a 100644 --- a/Source/FieldSolver/Make.package +++ b/Source/FieldSolver/Make.package @@ -6,9 +6,8 @@ ifeq ($(USE_PSATD),TRUE) ifeq ($(USE_PSATD_PICSAR),TRUE) include $(WARPX_HOME)/Source/FieldSolver/PicsarHybridSpectralSolver/Make.package endif -else - include $(WARPX_HOME)/Source/FieldSolver/FiniteDifferenceSolver/Make.package endif +include $(WARPX_HOME)/Source/FieldSolver/FiniteDifferenceSolver/Make.package INCLUDE_LOCATIONS += $(WARPX_HOME)/Source/FieldSolver VPATH_LOCATIONS += $(WARPX_HOME)/Source/FieldSolver |