WarpX
PsatdAlgorithmFirstOrder.H
Go to the documentation of this file.
1 /* Copyright 2019
2  *
3  * This file is part of WarpX.
4  *
5  * License: BSD-3-Clause-LBNL
6  */
7 #ifndef WARPX_PSATD_ALGORITHM_FIRST_ORDER_H_
8 #define WARPX_PSATD_ALGORITHM_FIRST_ORDER_H_
9 
12 #include "SpectralBaseAlgorithm.H"
13 
14 #include <AMReX_Array.H>
15 #include <AMReX_Config.H>
16 #include <AMReX_REAL.H>
17 
18 #include <AMReX_BaseFwd.H>
19 
20 #include <array>
21 #include <memory>
22 
23 #if WARPX_USE_PSATD
24 /*
25  * \brief Class that updates the fields in spectral space according to the first-order PSATD equations.
26  */
28 {
29  public:
30 
47  const SpectralKSpace& spectral_kspace,
49  const SpectralFieldIndex& spectral_index,
50  int norder_x,
51  int norder_y,
52  int norder_z,
53  short grid_type,
54  amrex::Real dt,
55  bool div_cleaning,
56  int J_in_time,
57  int rho_in_time);
58 
65  void pushSpectralFields (SpectralFieldData& f) const final;
66 
76  void CurrentCorrection (SpectralFieldData& field_data) final;
77 
87  void VayDeposition (SpectralFieldData& field_data) final;
88 
89  private:
90 
91  // Other member variables
92  amrex::Real m_dt;
96 };
97 #endif // WARPX_USE_PSATD
98 #endif // WARPX_PSATD_ALGORITHM_FIRST_ORDER_H_
Definition: PsatdAlgorithmFirstOrder.H:28
int m_J_in_time
Definition: PsatdAlgorithmFirstOrder.H:94
void CurrentCorrection(SpectralFieldData &field_data) final
Virtual function for current correction in Fourier space (Vay et al, 2013). This function overrides t...
Definition: PsatdAlgorithmFirstOrder.cpp:353
int m_rho_in_time
Definition: PsatdAlgorithmFirstOrder.H:95
bool m_div_cleaning
Definition: PsatdAlgorithmFirstOrder.H:93
amrex::Real m_dt
Definition: PsatdAlgorithmFirstOrder.H:92
void VayDeposition(SpectralFieldData &field_data) final
Virtual function for Vay current deposition in Fourier space (Vay et al, 2013). This function overrid...
Definition: PsatdAlgorithmFirstOrder.cpp:364
void pushSpectralFields(SpectralFieldData &f) const final
Updates E, B, F, and G fields in spectral space, according to the first-order PSATD equations.
Definition: PsatdAlgorithmFirstOrder.cpp:52
PsatdAlgorithmFirstOrder(const SpectralKSpace &spectral_kspace, const amrex::DistributionMapping &dm, const SpectralFieldIndex &spectral_index, int norder_x, int norder_y, int norder_z, short grid_type, amrex::Real dt, bool div_cleaning, int J_in_time, int rho_in_time)
Constructor of the class PsatdAlgorithmFirstOrder.
Definition: PsatdAlgorithmFirstOrder.cpp:31
Definition: SpectralBaseAlgorithm.H:36
Class that stores the fields in spectral space, and performs the Fourier transforms between real spac...
Definition: SpectralFieldData.H:143
Definition: SpectralFieldData.H:34
Class that represents the spectral space.
Definition: SpectralKSpace.H:48
float dt
Definition: stencil.py:442