WarpX
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
SpectralBaseAlgorithm Class Referenceabstract

#include <SpectralBaseAlgorithm.H>

Inheritance diagram for SpectralBaseAlgorithm:
AvgGalileanAlgorithm GalileanAlgorithm PMLPsatdAlgorithm PsatdAlgorithm

Public Member Functions

virtual void pushSpectralFields (SpectralFieldData &f) const =0
 
virtual int getRequiredNumberOfFields () const =0
 
virtual ~SpectralBaseAlgorithm ()
 
virtual void CurrentCorrection (SpectralFieldData &field_data, std::array< std::unique_ptr< amrex::MultiFab >, 3 > &current, const std::unique_ptr< amrex::MultiFab > &rho)=0
 Virtual function for current correction in Fourier space (Vay et al, 2013). This virtual function is pure and must be defined in derived classes. More...
 
virtual void VayDeposition (SpectralFieldData &field_data, std::array< std::unique_ptr< amrex::MultiFab >, 3 > &current)=0
 Virtual function for Vay current deposition in Fourier space (Vay et al, 2013). This virtual function is pure and must be defined in derived classes. More...
 
void ComputeSpectralDivE (SpectralFieldData &field_data, const std::array< std::unique_ptr< amrex::MultiFab >, 3 > &Efield, amrex::MultiFab &divE)
 Compute spectral divergence of E. More...
 

Protected Types

using SpectralRealCoefficients = amrex::FabArray< amrex::BaseFab< amrex::Real > >
 
using SpectralComplexCoefficients = amrex::FabArray< amrex::BaseFab< Complex > >
 

Protected Member Functions

 SpectralBaseAlgorithm (const SpectralKSpace &spectral_kspace, const amrex::DistributionMapping &dm, const int norder_x, const int norder_y, const int norder_z, const bool nodal)
 

Protected Attributes

KVectorComponent modified_kx_vec
 
KVectorComponent modified_ky_vec
 
KVectorComponent modified_kz_vec
 

Member Typedef Documentation

◆ SpectralComplexCoefficients

using SpectralBaseAlgorithm::SpectralComplexCoefficients = amrex::FabArray< amrex::BaseFab <Complex> >
protected

◆ SpectralRealCoefficients

using SpectralBaseAlgorithm::SpectralRealCoefficients = amrex::FabArray< amrex::BaseFab <amrex::Real> >
protected

Constructor & Destructor Documentation

◆ ~SpectralBaseAlgorithm()

virtual SpectralBaseAlgorithm::~SpectralBaseAlgorithm ( )
inlinevirtual

◆ SpectralBaseAlgorithm()

SpectralBaseAlgorithm::SpectralBaseAlgorithm ( const SpectralKSpace spectral_kspace,
const amrex::DistributionMapping &  dm,
const int  norder_x,
const int  norder_y,
const int  norder_z,
const bool  nodal 
)
inlineprotected

Member Function Documentation

◆ ComputeSpectralDivE()

void SpectralBaseAlgorithm::ComputeSpectralDivE ( SpectralFieldData field_data,
const std::array< std::unique_ptr< amrex::MultiFab >, 3 > &  Efield,
amrex::MultiFab &  divE 
)

Compute spectral divergence of E.

◆ CurrentCorrection()

virtual void SpectralBaseAlgorithm::CurrentCorrection ( SpectralFieldData field_data,
std::array< std::unique_ptr< amrex::MultiFab >, 3 > &  current,
const std::unique_ptr< amrex::MultiFab > &  rho 
)
pure virtual

Virtual function for current correction in Fourier space (Vay et al, 2013). This virtual function is pure and must be defined in derived classes.

Parameters
[in,out]field_dataAll fields in Fourier space
[in,out]currentArray of unique pointers to MultiFab storing the three components of the current density
[in]rhoUnique pointer to MultiFab storing the charge density

Implemented in PsatdAlgorithm, PMLPsatdAlgorithm, AvgGalileanAlgorithm, and GalileanAlgorithm.

◆ getRequiredNumberOfFields()

virtual int SpectralBaseAlgorithm::getRequiredNumberOfFields ( ) const
pure virtual

◆ pushSpectralFields()

virtual void SpectralBaseAlgorithm::pushSpectralFields ( SpectralFieldData f) const
pure virtual

◆ VayDeposition()

virtual void SpectralBaseAlgorithm::VayDeposition ( SpectralFieldData field_data,
std::array< std::unique_ptr< amrex::MultiFab >, 3 > &  current 
)
pure virtual

Virtual function for Vay current deposition in Fourier space (Vay et al, 2013). This virtual function is pure and must be defined in derived classes.

Parameters
[in,out]field_dataAll fields in Fourier space
[in,out]currentArray of unique pointers to MultiFab storing the three components of the current density

Implemented in PsatdAlgorithm, PMLPsatdAlgorithm, AvgGalileanAlgorithm, and GalileanAlgorithm.

Member Data Documentation

◆ modified_kx_vec

KVectorComponent SpectralBaseAlgorithm::modified_kx_vec
protected

◆ modified_ky_vec

KVectorComponent SpectralBaseAlgorithm::modified_ky_vec
protected

◆ modified_kz_vec

KVectorComponent SpectralBaseAlgorithm::modified_kz_vec
protected

The documentation for this class was generated from the following files: