diff options
author | 2020-01-10 14:11:57 -0800 | |
---|---|---|
committer | 2020-01-10 14:11:57 -0800 | |
commit | b178920da516e66a21a283c8b794a63b491d24a2 (patch) | |
tree | 8d20a64ad808662554c35b74f53c4f1c3df1c6ab /Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H | |
parent | 9035ee165054e25aedf98d97f16786d8d5f2965a (diff) | |
download | WarpX-b178920da516e66a21a283c8b794a63b491d24a2.tar.gz WarpX-b178920da516e66a21a283c8b794a63b491d24a2.tar.zst WarpX-b178920da516e66a21a283c8b794a63b491d24a2.zip |
Update Evolve B
Diffstat (limited to 'Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H')
-rw-r--r-- | Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H index c1fdef5dd..98a34e634 100644 --- a/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H +++ b/Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceSolver.H @@ -14,11 +14,23 @@ class FiniteDifferenceSolver using ConstVectorField = std::array< std::unique_ptr<amrex::MultiFab const>, 3 >; // Constructor - void FiniteDifferenceSolver( std::array<Real,3> dx ); + void FiniteDifferenceSolver::FiniteDifferenceSolver ( std::array<Real,3> cell_size ) { + // Select algorithm (The choice of algorithm is a runtime option, + // but we compile code for each algorithm, using templates) + if (fdtd_algo == MaxwellSolverAlgo::Yee){ + YeeAlgorithm::InitializeStencilCoefficients( cell_size, + stencil_coefs_x, stencil_coefs_y, stencil_coefs_z ); + } else if (fdtd_algo == MaxwellSolverAlgo::CKC) { + CKCAlgorithm::InitializeStencilCoefficients( cell_size, + stencil_coefs_x, stencil_coefs_y, stencil_coefs_z ); + } else { + amrex::Abort("Unknown algorithm"); + } + }; - void EvolveB( VectorField Bfield, - ConstVectorField Efield, - amrex::Real dt ) const; + void EvolveB ( VectorField Bfield, + ConstVectorField Efield, + amrex::Real dt ) const; }; @@ -31,7 +43,9 @@ class FiniteDifferenceSolver amrex::Gpu::ManagedVector<amrex::Real> stencil_coefs_z; template< typename fdtd_algo > - void EvolveB + void EvolveBwithAlgo ( VectorField Bfield, + ConstVectorField Efield, + amrex::Real dt ) const; }; |