IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
StandardFDTDSolver.h
Go to the documentation of this file.
1
6
7#ifndef IPPL_STANDARD_FDTD_SOLVER_H
8#define IPPL_STANDARD_FDTD_SOLVER_H
9
10#include <cstddef>
11using std::size_t;
12#include "Types/Vector.h"
13
20
21namespace ippl {
22
32 template <typename EMField, typename SourceField, fdtd_bc boundary_conditions = periodic>
33 class StandardFDTDSolver : public FDTDSolverBase<EMField, SourceField, boundary_conditions> {
34 public:
42 StandardFDTDSolver(SourceField& source, EMField& E, EMField& B);
43
44 constexpr static unsigned Dim = EMField::dim; // Dimension of the electromagnetic field.
45 using scalar = typename EMField::value_type::value_type; // Scalar type used in the
46 // electromagnetic field.
47 using Vector_t = Vector<typename EMField::value_type::value_type,
48 Dim>; // Vector type used in the electromagnetic field.
50 typename SourceField::value_type; // Vector type used in the source field.
51
55 virtual void step() override;
59 virtual void initialize() override;
60 };
61} // namespace ippl
62
64#endif
Impelmentation of the StandardFDTDSolver class functions.
Definition Archive.h:20
FDTDSolverBase(SourceField &source, EMField &E, EMField &B)
typename SourceField::value_type SourceVector_t
typename EMField::value_type::value_type scalar
static constexpr unsigned Dim
virtual void step() override
Advances the simulation by one time step.
virtual void initialize() override
Initializes the solver.
Vector< typename EMField::value_type::value_type, Dim > Vector_t
StandardFDTDSolver(SourceField &source, EMField &E, EMField &B)
Constructs a StandardFDTDSolver.