aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver
diff options
context:
space:
mode:
Diffstat (limited to 'Source/FieldSolver')
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp30
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H16
-rw-r--r--Source/FieldSolver/Make.package3
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