WarpX
PsatdAlgorithmRZ.H
Go to the documentation of this file.
1 /* Copyright 2019 David Grote
2  *
3  * This file is part of WarpX.
4  *
5  * License: BSD-3-Clause-LBNL
6  */
7 #ifndef WARPX_PSATD_ALGORITHM_RZ_H_
8 #define WARPX_PSATD_ALGORITHM_RZ_H_
9 
11 
12 /* \brief Class that updates the field in spectral space
13  * and stores the coefficients of the corresponding update equation.
14  */
16 {
17 
18  public:
19  PsatdAlgorithmRZ(SpectralKSpaceRZ const & spectral_kspace,
20  amrex::DistributionMapping const & dm,
21  int const n_rz_azimuthal_modes, int const norder_z,
22  bool const nodal, amrex::Real const dt_step);
23  // Redefine functions from base class
24  virtual void pushSpectralFields(SpectralFieldDataRZ & f) override final;
25  virtual int getRequiredNumberOfFields() const override final {
27  }
28 
30 
43  virtual void CurrentCorrection (SpectralFieldDataRZ& field_data,
44  std::array<std::unique_ptr<amrex::MultiFab>,3>& current,
45  const std::unique_ptr<amrex::MultiFab>& rho) override final;
46 
58  virtual void VayDeposition (SpectralFieldDataRZ& field_data,
59  std::array<std::unique_ptr<amrex::MultiFab>,3>& current) override final;
60 
61  private:
63  // Note that dt is saved to use in InitializeSpectralCoefficients
64  amrex::Real m_dt;
66 };
67 
68 #endif // WARPX_PSATD_ALGORITHM_RZ_H_
amrex::FabArray< amrex::BaseFab< amrex::Real > > SpectralRealCoefficients
Definition: SpectralBaseAlgorithmRZ.H:66
SpectralRealCoefficients X1_coef
Definition: PsatdAlgorithmRZ.H:65
virtual void CurrentCorrection(SpectralFieldDataRZ &field_data, std::array< std::unique_ptr< amrex::MultiFab >, 3 > &current, const std::unique_ptr< amrex::MultiFab > &rho) override final
Virtual function for current correction in Fourier space (Vay et al, 2013). This function overrides t...
Definition: PsatdAlgorithmRZ.cpp:203
virtual void pushSpectralFields(SpectralFieldDataRZ &f) override final
Definition: PsatdAlgorithmRZ.cpp:42
SpectralRealCoefficients S_ck_coef
Definition: PsatdAlgorithmRZ.H:65
f
Definition: write_atomic_data_cpp.py:79
PsatdAlgorithmRZ(SpectralKSpaceRZ const &spectral_kspace, amrex::DistributionMapping const &dm, int const n_rz_azimuthal_modes, int const norder_z, bool const nodal, amrex::Real const dt_step)
Definition: PsatdAlgorithmRZ.cpp:18
Definition: SpectralFieldDataRZ.H:19
SpectralRealCoefficients C_coef
Definition: PsatdAlgorithmRZ.H:65
void InitializeSpectralCoefficients(SpectralFieldDataRZ const &f)
Definition: PsatdAlgorithmRZ.cpp:146
virtual int getRequiredNumberOfFields() const override final
Definition: PsatdAlgorithmRZ.H:25
Definition: SpectralFieldData.H:27
Definition: SpectralKSpaceRZ.H:18
Definition: PsatdAlgorithmRZ.H:15
amrex::Real m_dt
Definition: PsatdAlgorithmRZ.H:64
SpectralRealCoefficients X3_coef
Definition: PsatdAlgorithmRZ.H:65
SpectralRealCoefficients X2_coef
Definition: PsatdAlgorithmRZ.H:65
virtual void VayDeposition(SpectralFieldDataRZ &field_data, std::array< std::unique_ptr< amrex::MultiFab >, 3 > &current) override final
Virtual function for Vay current deposition in Fourier space (Vay et al, 2013). This function overrid...
Definition: PsatdAlgorithmRZ.cpp:285
bool coefficients_initialized
Definition: PsatdAlgorithmRZ.H:62
Definition: SpectralBaseAlgorithmRZ.H:20