aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp
diff options
context:
space:
mode:
authorGravatar Remi Lehe <remi.lehe@normalesup.org> 2020-01-10 16:27:06 -0800
committerGravatar Remi Lehe <remi.lehe@normalesup.org> 2020-01-10 16:27:06 -0800
commitc049e742014fca3bba78534b7afcc6bcd477aa0e (patch)
tree2f3a18d4b3126e10502b9ba362e60f1aa3ff0571 /Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp
parentb178920da516e66a21a283c8b794a63b491d24a2 (diff)
downloadWarpX-c049e742014fca3bba78534b7afcc6bcd477aa0e.tar.gz
WarpX-c049e742014fca3bba78534b7afcc6bcd477aa0e.tar.zst
WarpX-c049e742014fca3bba78534b7afcc6bcd477aa0e.zip
Update finite-difference solver
Diffstat (limited to 'Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp')
-rw-r--r--Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp b/Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp
index 1bba6b317..33253c986 100644
--- a/Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp
+++ b/Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp
@@ -1,4 +1,5 @@
-// TODO include statements
+#include<FiniteDifferenceAlgorithms/YeeAlgorithm.H>
+#include<FiniteDifferenceSolver.H>
FiniteDifferenceSolver::EvolveB ( VectorField Bfield,
ConstVectorField Efield,
@@ -7,8 +8,8 @@ FiniteDifferenceSolver::EvolveB ( VectorField Bfield,
// but we compile code for each algorithm, using templates)
if (fdtd_algo == MaxwellSolverAlgo::Yee){
EvolveBwithAlgo <YeeAlgorithm> ( Bfield, Efield, dt );
- } else if (fdtd_algo == MaxwellSolverAlgo::CKC) {
- EvolveBwithAlgo <CKCAlgorithm> ( Bfield, Efield, dt );
+// } else if (fdtd_algo == MaxwellSolverAlgo::CKC) {
+// EvolveBwithAlgo <CKCAlgorithm> ( Bfield, Efield, dt );
} else {
amrex::Abort("Unknown algorithm");
}
@@ -23,7 +24,7 @@ FiniteDifferenceSolver::EvolveBwithAlgo ( VectorField Bfield,
#ifdef _OPENMP
#pragma omp parallel if (Gpu::notInLaunchRegion())
#endif
- for ( MFIter mfi(*Bx, TilingIfNotGPU()); mfi.isValid(); ++mfi ) {
+ for ( MFIter mfi(*Bfield[0], TilingIfNotGPU()); mfi.isValid(); ++mfi ) {
// Extract field data for this grid/tile
auto const& Bx = Bfield[0]->array(mfi);
@@ -47,18 +48,18 @@ 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, i, j, k, coefs_z)
- - dt * algo::UpwardDy( Ez, i, j, k, coefs_y);
+ Bx(i, j, k) += dt * algo::UpwardDz(Ey, i, j, k, coefs_z)
+ - dt * algo::UpwardDy(Ez, i, j, k, coefs_y);
},
[=] AMREX_GPU_DEVICE (int i, int j, int k){
- By(i, j, k) += dt * algo::UpwardDx( Ez, i, j, k, coefs_x)
- - dt * algo::UpwardDz( Ex, i, j, k, coefs_z);
+ By(i, j, k) += dt * algo::UpwardDx(Ez, i, j, k, coefs_x)
+ - dt * algo::UpwardDz(Ex, i, j, k, coefs_z);
},
[=] AMREX_GPU_DEVICE (int i, int j, int k){
- Bz(i, j, k) += dt * algo::UpwardDy( Ex, i, j, k, coefs_y)
- - dt * algo::UpwardDx( Ey, i, j, k, coefs_x);
+ Bz(i, j, k) += dt * algo::UpwardDy(Ex, i, j, k, coefs_y)
+ - dt * algo::UpwardDx(Ey, i, j, k, coefs_x);
}
);