7 #ifndef WARPX_PSATD_ALGORITHM_H_ 8 #define WARPX_PSATD_ALGORITHM_H_ 14 #include <AMReX_Array.H> 15 #include <AMReX_Config.H> 16 #include <AMReX_REAL.H> 18 #include <AMReX_BaseFwd.H> 50 const amrex::DistributionMapping& dm,
56 const amrex::IntVect& fill_guards,
57 const amrex::Array<amrex::Real,3>& v_galilean,
59 const bool update_with_rho,
60 const bool time_averaging,
61 const bool J_linear_in_time,
62 const bool dive_cleaning,
63 const bool divb_cleaning);
81 const amrex::DistributionMapping& dm,
82 const amrex::Real dt);
94 const amrex::DistributionMapping& dm,
95 const amrex::Real dt);
107 const amrex::DistributionMapping& dm,
108 const amrex::Real dt);
125 std::array<std::unique_ptr<amrex::MultiFab>,3>& current,
126 const std::unique_ptr<amrex::MultiFab>& rho)
override final;
142 std::array<std::unique_ptr<amrex::MultiFab>,3>& current)
override final;
159 #if (AMREX_SPACEDIM==3) 174 #endif // WARPX_USE_PSATD 175 #endif // WARPX_PSATD_ALGORITHM_H_ amrex::Array< amrex::Real, 3 > m_v_galilean
Definition: PsatdAlgorithm.H:165
amrex::Real m_dt
Definition: PsatdAlgorithm.H:166
Class that represents the spectral space.
Definition: SpectralKSpace.H:47
SpectralComplexCoefficients Y4_coef
Definition: PsatdAlgorithm.H:153
KVectorComponent modified_kz_vec_centered
Definition: PsatdAlgorithm.H:162
bool m_dive_cleaning
Definition: PsatdAlgorithm.H:170
SpectralComplexCoefficients X5_coef
Definition: PsatdAlgorithm.H:150
KVectorComponent modified_ky_vec_centered
Definition: PsatdAlgorithm.H:160
SpectralComplexCoefficients Y2_coef
Definition: PsatdAlgorithm.H:153
void InitializeSpectralCoefficientsAvgLin(const SpectralKSpace &spectral_kspace, const amrex::DistributionMapping &dm, const amrex::Real dt)
Initialize additional coefficients used in pushSpectralFields to update E,B, required only when using...
Definition: PsatdAlgorithm.cpp:815
void InitializeSpectralCoefficients(const SpectralKSpace &spectral_kspace, const amrex::DistributionMapping &dm, const amrex::Real dt)
Initializes the coefficients used in pushSpectralFields to update the E and B fields.
Definition: PsatdAlgorithm.cpp:422
f
Definition: write_atomic_data_cpp.py:83
SpectralRealCoefficients S_ck_coef
Definition: PsatdAlgorithm.H:147
amrex::FabArray< amrex::BaseFab< Complex > > SpectralComplexCoefficients
Definition: SpectralBaseAlgorithm.H:89
SpectralComplexCoefficients X1_coef
Definition: PsatdAlgorithm.H:148
SpectralComplexCoefficients X3_coef
Definition: PsatdAlgorithm.H:148
SpectralComplexCoefficients X4_coef
Definition: PsatdAlgorithm.H:148
SpectralRealCoefficients C_coef
Definition: PsatdAlgorithm.H:147
bool m_time_averaging
Definition: PsatdAlgorithm.H:168
SpectralFieldIndex m_spectral_index
Definition: PsatdAlgorithm.H:155
bool m_divb_cleaning
Definition: PsatdAlgorithm.H:171
Class that stores the fields in spectral space, and performs the Fourier transforms between real spac...
Definition: SpectralFieldData.H:105
Definition: PsatdAlgorithm.H:27
SpectralComplexCoefficients Psi2_coef
Definition: PsatdAlgorithm.H:153
virtual void CurrentCorrection(const int lev, SpectralFieldData &field_data, std::array< std::unique_ptr< amrex::MultiFab >, 3 > ¤t, 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: PsatdAlgorithm.cpp:886
amrex::FabArray< amrex::BaseFab< amrex::Real > > SpectralRealCoefficients
Definition: SpectralBaseAlgorithm.H:87
Definition: SpectralFieldData.H:32
KVectorComponent modified_kx_vec_centered
Definition: PsatdAlgorithm.H:158
SpectralComplexCoefficients Psi1_coef
Definition: PsatdAlgorithm.H:153
virtual void VayDeposition(const int lev, SpectralFieldData &field_data, std::array< std::unique_ptr< amrex::MultiFab >, 3 > ¤t) override final
Virtual function for Vay current deposition in Fourier space (Vay et al, 2013). This function overrid...
Definition: PsatdAlgorithm.cpp:1004
SpectralComplexCoefficients Y1_coef
Definition: PsatdAlgorithm.H:153
bool m_update_with_rho
Definition: PsatdAlgorithm.H:167
SpectralComplexCoefficients T2_coef
Definition: PsatdAlgorithm.H:148
amrex::LayoutData< RealKVector > KVectorComponent
Definition: SpectralKSpace.H:30
bool m_is_galilean
Definition: PsatdAlgorithm.H:172
virtual void pushSpectralFields(SpectralFieldData &f) const override final
Updates the E and B fields in spectral space, according to the relevant PSATD equations.
Definition: PsatdAlgorithm.cpp:118
PsatdAlgorithm(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 bool nodal, const amrex::IntVect &fill_guards, const amrex::Array< amrex::Real, 3 > &v_galilean, const amrex::Real dt, const bool update_with_rho, const bool time_averaging, const bool J_linear_in_time, const bool dive_cleaning, const bool divb_cleaning)
Constructor of the class PsatdAlgorithm.
Definition: PsatdAlgorithm.cpp:29
bool m_J_linear_in_time
Definition: PsatdAlgorithm.H:169
SpectralComplexCoefficients X2_coef
Definition: PsatdAlgorithm.H:148
void InitializeSpectralCoefficientsAveraging(const SpectralKSpace &spectral_kspace, const amrex::DistributionMapping &dm, const amrex::Real dt)
Initializes additional coefficients used in pushSpectralFields to update the E and B fields...
Definition: PsatdAlgorithm.cpp:624
Definition: SpectralBaseAlgorithm.H:35
SpectralComplexCoefficients X6_coef
Definition: PsatdAlgorithm.H:150
SpectralComplexCoefficients Y3_coef
Definition: PsatdAlgorithm.H:153