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:
ComovingPsatdAlgorithm PMLPsatdAlgorithm PsatdAlgorithm

Public Member Functions

virtual void pushSpectralFields (SpectralFieldData &f) const =0
 
virtual ~SpectralBaseAlgorithm ()
 
virtual void CurrentCorrection (const int lev, 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 (const int lev, 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 (const int lev, 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 SpectralFieldIndex &spectral_index, const int norder_x, const int norder_y, const int norder_z, const bool nodal, const amrex::IntVect &fill_guards)
 Constructor. More...
 

Protected Attributes

amrex::IntVect m_fill_guards
 
SpectralFieldIndex m_spectral_index
 
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 SpectralFieldIndex spectral_index,
const int  norder_x,
const int  norder_y,
const int  norder_z,
const bool  nodal,
const amrex::IntVect &  fill_guards 
)
protected

Constructor.

Member Function Documentation

◆ ComputeSpectralDivE()

void SpectralBaseAlgorithm::ComputeSpectralDivE ( const int  lev,
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 ( const int  lev,
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, ComovingPsatdAlgorithm, and PMLPsatdAlgorithm.

◆ pushSpectralFields()

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

◆ VayDeposition()

virtual void SpectralBaseAlgorithm::VayDeposition ( const int  lev,
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, ComovingPsatdAlgorithm, and PMLPsatdAlgorithm.

Member Data Documentation

◆ m_fill_guards

amrex::IntVect SpectralBaseAlgorithm::m_fill_guards
protected

◆ m_spectral_index

SpectralFieldIndex SpectralBaseAlgorithm::m_spectral_index
protected

◆ 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: