7 #ifndef WARPX_SPECTRAL_SOLVER_H_ 8 #define WARPX_SPECTRAL_SOLVER_H_ 14 #ifdef WARPX_USE_PSATD 32 const amrex::DistributionMapping& dm,
33 const int norder_x,
const int norder_y,
34 const int norder_z,
const bool nodal,
35 const amrex::Array<amrex::Real,3>& v_galilean,
36 const amrex::RealVect
dx,
const amrex::Real dt,
38 const bool periodic_single_box=
false,
39 const bool update_with_rho=
false,
40 const bool fft_do_time_averaging=
false);
47 const int field_index,
55 const int field_index,
68 amrex::MultiFab& divE ) {
83 const std::unique_ptr<amrex::MultiFab>& rho ) {
96 void VayDeposition (std::array<std::unique_ptr<amrex::MultiFab>,3>& current)
112 #endif // WARPX_USE_PSATD 113 #endif // WARPX_SPECTRAL_SOLVER_H_
SpectralFieldData field_data
Definition: SpectralSolver.H:105
int dx
Definition: compute_domain.py:35
SpectralSolver(const amrex::BoxArray &realspace_ba, const amrex::DistributionMapping &dm, const int norder_x, const int norder_y, const int norder_z, const bool nodal, const amrex::Array< amrex::Real, 3 > &v_galilean, const amrex::RealVect dx, const amrex::Real dt, const bool pml=false, const bool periodic_single_box=false, const bool update_with_rho=false, const bool fft_do_time_averaging=false)
Definition: SpectralSolver.cpp:34
void VayDeposition(std::array< std::unique_ptr< amrex::MultiFab >, 3 > ¤t)
Public interface to call the virtual function VayDeposition, declared in the base class SpectralBaseA...
Definition: SpectralSolver.H:96
void CurrentCorrection(std::array< std::unique_ptr< amrex::MultiFab >, 3 > ¤t, const std::unique_ptr< amrex::MultiFab > &rho)
Public interface to call the virtual function CurrentCorrection, defined in the base class SpectralBa...
Definition: SpectralSolver.H:82
void ComputeSpectralDivE(const std::array< std::unique_ptr< amrex::MultiFab >, 3 > &Efield, amrex::MultiFab &divE)
Public interface to call the member function ComputeSpectralDivE of the base class SpectralBaseAlgori...
Definition: SpectralSolver.H:67
void pushSpectralFields()
Update the fields in spectral space, over one timestep.
Definition: SpectralSolver.cpp:102
void ForwardTransform(const amrex::MultiFab &mf, const int field_index, const int i_comp=0)
Transform the component i_comp of MultiFab mf to spectral space, and store the corresponding result i...
Definition: SpectralSolver.cpp:84
Class that stores the fields in spectral space, and performs the Fourier transforms between real spac...
Definition: SpectralFieldData.H:46
void BackwardTransform(amrex::MultiFab &mf, const int field_index, const int i_comp=0)
Transform spectral field specified by field_index back to real space, and store it in the component i...
Definition: SpectralSolver.cpp:93
std::unique_ptr< SpectralBaseAlgorithm > algorithm
Definition: SpectralSolver.H:110
Top-level class for the electromagnetic spectral solver.
Definition: SpectralSolver.H:22