#ifndef WARPX_PSATD_ALGORITHM_COMOVING_H_ #define WARPX_PSATD_ALGORITHM_COMOVING_H_ #include "FieldSolver/SpectralSolver/SpectralFieldData.H" #include "FieldSolver/SpectralSolver/SpectralKSpace.H" #include "SpectralBaseAlgorithm.H" #include #include #include #include #include #include #if WARPX_USE_PSATD /* \brief Class that updates the field in spectral space and stores the coefficients * of the corresponding update equation, according to the comoving spectral scheme. */ class PsatdAlgorithmComoving : public SpectralBaseAlgorithm { public: /** * \brief Class constructor */ PsatdAlgorithmComoving (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::Vector& v_comoving, const amrex::Real dt, const bool update_with_rho); /** * \brief Override the update equations in Fourier space */ virtual void pushSpectralFields (SpectralFieldData& f) const override final; /* \brief Initialize the coefficients needed in the update equations */ void InitializeSpectralCoefficients (const SpectralKSpace& spectral_kspace, const amrex::DistributionMapping& dm, const amrex::Real dt); /** * \brief Virtual function for current correction in Fourier space. * This function overrides the virtual function \c CurrentCorrection in the * base class \c SpectralBaseAlgorithm and cannot be overridden by further * derived classes. * * \param[in,out] field_data All fields in Fourier space */ virtual void CurrentCorrection (SpectralFieldData& field_data) override final; /** * \brief Virtual function for Vay current deposition in Fourier space. * This function overrides the virtual function \c VayDeposition in the * base class \c SpectralBaseAlgorithm and cannot be overridden by further * derived classes. * * \param[in,out] field_data All fields in Fourier space */ virtual void VayDeposition (SpectralFieldData& field_data) override final; private: // Real and complex spectral coefficients SpectralRealCoefficients C_coef, S_ck_coef; SpectralComplexCoefficients Theta2_coef, X1_coef, X2_coef, X3_coef, X4_coef; // k vectors KVectorComponent kx_vec; #if defined(WARPX_DIM_3D) KVectorComponent ky_vec; #endif KVectorComponent kz_vec; // Additional member variables amrex::Vector m_v_comoving; amrex::Real m_dt; }; #endif // WARPX_USE_PSATD #endif // WARPX_PSATD_ALGORITHM_COMOVING_H_ -0700'>2019-05-07Split theory into several rst filesGravatar Remi Lehe 13-1133/+1211 2019-05-06Passing icomp as a variable to the dataPtr() function in the charge deposit ↵Gravatar Revathi Jambunathan 1-1/+1 subroutine -- ensuring that the rho_old values are not over-written by rho_new 2019-05-04add parameter z_start for parabolic chanel profileGravatar MaxThevenet 2-20/+21 2019-05-03In documentation, use "git clone --branch" optionGravatar Dave Grote 5-56/+20 2019-05-02Update version numberGravatar Remi Lehe 3-3/+3 2019-05-02Fix guard cell summationGravatar Remi Lehe 1-19/+10 2019-05-02Update implementation of WarpXSumGuardCellsGravatar Remi Lehe 1-8/+12 2019-05-02Implement WarpXSumGuardCellsGravatar Remi Lehe 3-33/+97 2019-05-02Fix indent in WarpXEvolveEM.cppGravatar MaxThevenet 1-72/+77 2019-05-02typo in comment lineGravatar MaxThevenet 1-1/+1 2019-05-02fix typos and issuesGravatar MaxThevenet 2-7/+22 2019-05-01Correct error in calculation of k vectorGravatar Remi Lehe 2-6/+9 2019-05-01add docGravatar MaxThevenet 1-0/+19 2019-05-01add TinyProfiler in NullifyGravatar MaxThevenet 1-0/+1 2019-05-01Perfect mirror inside the box in z directionGravatar MaxThevenet 5-1/+112 2019-05-01Fix FFT sizeGravatar Remi Lehe 1-5/+8 2019-05-01Fix normalizationGravatar Remi Lehe 1-6/+8 2019-05-01Implement Real-to-complex FFTGravatar Remi Lehe 4-30/+56 2019-05-01Add virtual destructorGravatar Remi Lehe 1-0/+4 2019-05-01Add commentsGravatar Remi Lehe 2-2/+9 2019-04-30update read_raw_data.py to do the write thing whether or not each fab has a ↵Gravatar Andrew Myers 1-2/+4 header 2019-04-30Allow to plot the fine mesh, even with only one levelGravatar Remi Lehe 1-1/+1 2019-04-30Fix typoGravatar Remi Lehe 1-1/+2 2019-04-30Update Make.packageGravatar Remi Lehe 1-0/+1 2019-04-30Add separate file for constructorGravatar Remi Lehe 2-17/+38 2019-04-30Use factory method for the solverGravatar Remi Lehe 5-27/+62 2019-04-30Reorganize directoriesGravatar Remi Lehe 4-2/+7 2019-04-29fix typoGravatar Andrew Myers 1-1/+1 2019-04-29fix number of particle containers due to upstream changesGravatar Andrew Myers 1-1/+1 2019-04-29Implemented multiple antennas in picmiGravatar Dave Grote 6-21/+39 2019-04-29Revert to enumeration in structGravatar Remi Lehe 1-3/+4 2019-04-29make sure we initialize the new particle components for all the different ↵Gravatar Andrew Myers 2-0/+29 paths for particle initialization 2019-04-29make sure we pass the right number of flags into the WritePlotFile routineGravatar Andrew Myers 1-2/+16 2019-04-29Update PSATD algorithmGravatar Remi Lehe 1-31/+21 2019-04-29Update structure for storing spectral fieldsGravatar Remi Lehe 2-48/+18 2019-04-29replace the compile time checks used for the old particle attributes with ↵Gravatar Andrew Myers 2-47/+52 runtime ones 2019-04-29set up particle comps ids if using boosted frame particlesGravatar Andrew Myers 1-0/+11 2019-04-29add the old positions and momenta to the particle plotvar names if they are usedGravatar Andrew Myers 1-9/+10 2019-04-29add the xold, uxold, etc particle components at runtime if doing boosted ↵Gravatar Andrew Myers 3-13/+53 frame diagnostics for the particles 2019-04-29remove the compilation flag for STORE_OLD_PARTICLE_ATTRIBS - this can be ↵Gravatar Andrew Myers 5-24/+11 done at runtime now 2019-04-28Fix more 2D bugsGravatar Remi Lehe 1-2/+7 2019-04-28Fix 2D bugsGravatar Remi Lehe 2-3/+10 2019-04-28Fix error in calculation of modified k vectorsGravatar Remi Lehe 1-2/+3 2019-04-26Implemented dive cleaning for RZ geometryGravatar Dave Grote 7-12/+138