IPPL API Reference
Independent Parallel Particle Layer C++ API
Loading...
Searching...
No Matches
StandardFDTDSolver.h
Go to the documentation of this file.
1
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
14#include "FieldLayout/FieldLayout.h"
15#include "MaxwellSolvers/AbsorbingBC.h"
16#include "MaxwellSolvers/FDTDSolverBase.h"
17#include "MaxwellSolvers/Maxwell.h"
18#include "Meshes/UniformCartesian.h"
19#include "Particle/ParticleBase.h"
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.
49 using SourceVector_t =
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.
Base class for FDTD solvers in the ippl library.
Definition FDTDSolverBase.h:28
A solver for Maxwell's equations using the Finite-Difference Time-Domain (FDTD) method.
Definition StandardFDTDSolver.h:33
virtual void step() override
Advances the simulation by one time step.
Definition StandardFDTDSolver.hpp:23
virtual void initialize() override
Initializes the solver.
Definition StandardFDTDSolver.hpp:85
Definition Archive.h:20