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  const SpectralFieldIndex& spectral_index,
22  int const n_rz_azimuthal_modes, int const norder_z,
23  bool const nodal, amrex::Real const dt_step,
24  bool const update_with_rho,
25  const bool time_averaging,
26  const bool J_linear_in_time,
27  const bool dive_cleaning,
28  const bool divb_cleaning);
29  // Redefine functions from base class
30  virtual void pushSpectralFields(SpectralFieldDataRZ & f) override final;
31 
33 
46  virtual void CurrentCorrection (const int lev,
47  SpectralFieldDataRZ& field_data,
48  std::array<std::unique_ptr<amrex::MultiFab>,3>& current,
49  const std::unique_ptr<amrex::MultiFab>& rho) override final;
50 
62  virtual void VayDeposition (const int lev,
63  SpectralFieldDataRZ& field_data,
64  std::array<std::unique_ptr<amrex::MultiFab>,3>& current) override final;
65 
66  private:
67 
69 
71  // Note that dt is saved to use in InitializeSpectralCoefficients
72  amrex::Real m_dt;
80 };
81 
82 #endif // WARPX_PSATD_ALGORITHM_RZ_H_
bool m_time_averaging
Definition: PsatdAlgorithmRZ.H:74
amrex::FabArray< amrex::BaseFab< amrex::Real > > SpectralRealCoefficients
Definition: SpectralBaseAlgorithmRZ.H:68
SpectralRealCoefficients X1_coef
Definition: PsatdAlgorithmRZ.H:78
virtual void pushSpectralFields(SpectralFieldDataRZ &f) override final
Definition: PsatdAlgorithmRZ.cpp:74
SpectralRealCoefficients S_ck_coef
Definition: PsatdAlgorithmRZ.H:78
f
Definition: write_atomic_data_cpp.py:83
bool m_update_with_rho
Definition: PsatdAlgorithmRZ.H:73
Definition: SpectralFieldDataRZ.H:20
virtual void VayDeposition(const int lev, 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:500
virtual void CurrentCorrection(const int lev, 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:416
SpectralRealCoefficients C_coef
Definition: PsatdAlgorithmRZ.H:78
void InitializeSpectralCoefficients(SpectralFieldDataRZ const &f)
Definition: PsatdAlgorithmRZ.cpp:328
SpectralRealCoefficients X6_coef
Definition: PsatdAlgorithmRZ.H:79
Definition: SpectralKSpaceRZ.H:18
Definition: PsatdAlgorithmRZ.H:15
SpectralFieldIndex m_spectral_index
Definition: PsatdAlgorithmRZ.H:68
Definition: SpectralFieldData.H:32
bool m_dive_cleaning
Definition: PsatdAlgorithmRZ.H:76
SpectralRealCoefficients X5_coef
Definition: PsatdAlgorithmRZ.H:79
bool m_J_linear_in_time
Definition: PsatdAlgorithmRZ.H:75
amrex::Real m_dt
Definition: PsatdAlgorithmRZ.H:72
SpectralRealCoefficients X3_coef
Definition: PsatdAlgorithmRZ.H:78
SpectralRealCoefficients X2_coef
Definition: PsatdAlgorithmRZ.H:78
bool coefficients_initialized
Definition: PsatdAlgorithmRZ.H:70
bool m_divb_cleaning
Definition: PsatdAlgorithmRZ.H:77
Definition: SpectralBaseAlgorithmRZ.H:20
PsatdAlgorithmRZ(SpectralKSpaceRZ const &spectral_kspace, amrex::DistributionMapping const &dm, const SpectralFieldIndex &spectral_index, int const n_rz_azimuthal_modes, int const norder_z, bool const nodal, amrex::Real const dt_step, bool const update_with_rho, const bool time_averaging, const bool J_linear_in_time, const bool dive_cleaning, const bool divb_cleaning)
Definition: PsatdAlgorithmRZ.cpp:18