ARTEMIS
PsatdAlgorithmPml.H
Go to the documentation of this file.
1 /* Copyright 2019 Axel Huebl, Remi Lehe
2  *
3  * This file is part of WarpX.
4  *
5  * License: BSD-3-Clause-LBNL
6  */
7 #ifndef WARPX_PSATD_ALGORITHM_PML_H_
8 #define WARPX_PSATD_ALGORITHM_PML_H_
9 
10 #include "SpectralBaseAlgorithm.H"
11 
14 
15 #include <AMReX_REAL.H>
16 
17 #include <AMReX_BaseFwd.H>
18 
19 #include <array>
20 #include <memory>
21 
22 #if WARPX_USE_PSATD
23 
24 /* \brief Class that updates the field in spectral space
25  * and stores the coefficients of the corresponding update equation.
26  */
28 {
29  public:
30  PsatdAlgorithmPml(const SpectralKSpace& spectral_kspace,
32  const SpectralFieldIndex& spectral_index,
33  const int norder_x, const int norder_y,
34  const int norder_z, const short grid_type,
35  const amrex::Real dt,
36  const bool dive_cleaning,
37  const bool divb_cleaning);
38 
40  const SpectralKSpace& spectral_kspace,
42  const amrex::Real dt);
43 
44  // Redefine functions from base class
45  virtual void pushSpectralFields(SpectralFieldData& f) const override final;
46 
56  virtual void CurrentCorrection (SpectralFieldData& field_data) override final;
57 
67  virtual void VayDeposition (SpectralFieldData& field_data) override final;
68 
69  private:
72  amrex::Real m_dt;
75 };
76 
77 #endif // WARPX_USE_PSATD
78 #endif // WARPX_PSATD_ALGORITHM_PML_H_
Definition: PsatdAlgorithmPml.H:28
virtual void pushSpectralFields(SpectralFieldData &f) const override final
Definition: PsatdAlgorithmPml.cpp:60
amrex::Real m_dt
Definition: PsatdAlgorithmPml.H:72
virtual void CurrentCorrection(SpectralFieldData &field_data) override final
Virtual function for current correction in Fourier space (Vay et al, 2013). This function overrides t...
Definition: PsatdAlgorithmPml.cpp:406
void InitializeSpectralCoefficients(const SpectralKSpace &spectral_kspace, const amrex::DistributionMapping &dm, const amrex::Real dt)
Definition: PsatdAlgorithmPml.cpp:350
SpectralFieldIndex m_spectral_index
Definition: PsatdAlgorithmPml.H:70
virtual void VayDeposition(SpectralFieldData &field_data) override final
Virtual function for Vay current deposition in Fourier space (Vay et al, 2013). This function overrid...
Definition: PsatdAlgorithmPml.cpp:413
PsatdAlgorithmPml(const SpectralKSpace &spectral_kspace, const amrex::DistributionMapping &dm, const SpectralFieldIndex &spectral_index, const int norder_x, const int norder_y, const int norder_z, const short grid_type, const amrex::Real dt, const bool dive_cleaning, const bool divb_cleaning)
Definition: PsatdAlgorithmPml.cpp:33
bool m_divb_cleaning
Definition: PsatdAlgorithmPml.H:74
bool m_dive_cleaning
Definition: PsatdAlgorithmPml.H:73
SpectralRealCoefficients inv_k2_coef
Definition: PsatdAlgorithmPml.H:71
SpectralRealCoefficients S_ck_coef
Definition: PsatdAlgorithmPml.H:71
SpectralRealCoefficients C_coef
Definition: PsatdAlgorithmPml.H:71
Definition: SpectralBaseAlgorithm.H:36
Class that stores the fields in spectral space, and performs the Fourier transforms between real spac...
Definition: SpectralFieldData.H:122
Definition: SpectralFieldData.H:33
Class that represents the spectral space.
Definition: SpectralKSpace.H:48
int dt
Definition: stencil.py:440
f
Definition: write_atomic_data_cpp.py:88