WarpX
Public Member Functions | Private Attributes | List of all members
PsatdAlgorithmPml Class Reference

#include <PsatdAlgorithmPml.H>

Inheritance diagram for PsatdAlgorithmPml:
SpectralBaseAlgorithm

Public Member Functions

 PsatdAlgorithmPml (const SpectralKSpace &spectral_kspace, const amrex::DistributionMapping &dm, const SpectralFieldIndex &spectral_index, int norder_x, int norder_y, int norder_z, short grid_type, const amrex::Vector< amrex::Real > &v_galilean, amrex::Real dt, bool dive_cleaning, bool divb_cleaning)
 Constructor of the class PsatdAlgorithmPml. More...
 
void InitializeSpectralCoefficients (const SpectralKSpace &spectral_kspace, const amrex::DistributionMapping &dm)
 Initializes the coefficients used in pushSpectralFields to update the E and B fields. More...
 
void pushSpectralFields (SpectralFieldData &f) const final
 Updates the E and B fields in spectral space, according to the relevant PSATD equations. More...
 
void CurrentCorrection (SpectralFieldData &field_data) final
 Virtual function for current correction in Fourier space (Vay et al, 2013). This function overrides the virtual function CurrentCorrection in the base class SpectralBaseAlgorithm and cannot be overridden by further derived classes. More...
 
void VayDeposition (SpectralFieldData &field_data) final
 Virtual function for Vay current deposition in Fourier space (Vay et al, 2013). This function overrides the virtual function VayDeposition in the base class SpectralBaseAlgorithm and cannot be overridden by further derived classes. More...
 
- Public Member Functions inherited from SpectralBaseAlgorithm
virtual ~SpectralBaseAlgorithm ()=default
 
 SpectralBaseAlgorithm (const SpectralBaseAlgorithm &)=default
 
SpectralBaseAlgorithmoperator= (const SpectralBaseAlgorithm &)=default
 
 SpectralBaseAlgorithm (SpectralBaseAlgorithm &&)=default
 
SpectralBaseAlgorithmoperator= (SpectralBaseAlgorithm &&)=default
 
void ComputeSpectralDivE (int lev, SpectralFieldData &field_data, const std::array< std::unique_ptr< amrex::MultiFab >, 3 > &Efield, amrex::MultiFab &divE)
 Compute spectral divergence of E. More...
 

Private Attributes

SpectralRealCoefficients C_coef
 
SpectralRealCoefficients S_ck_coef
 
SpectralRealCoefficients inv_k2_coef
 
SpectralComplexCoefficients T2_coef
 
KVectorComponent modified_kx_vec_centered
 
KVectorComponent modified_kz_vec_centered
 
amrex::Vector< amrex::Real > m_v_galilean
 
amrex::Real m_dt
 
bool m_dive_cleaning
 
bool m_divb_cleaning
 
bool m_is_galilean
 

Additional Inherited Members

- Protected Types inherited from SpectralBaseAlgorithm
using SpectralRealCoefficients = amrex::FabArray< amrex::BaseFab< amrex::Real > >
 
using SpectralComplexCoefficients = amrex::FabArray< amrex::BaseFab< Complex > >
 
- Protected Member Functions inherited from SpectralBaseAlgorithm
 SpectralBaseAlgorithm (const SpectralKSpace &spectral_kspace, const amrex::DistributionMapping &dm, const SpectralFieldIndex &spectral_index, int norder_x, int norder_y, int norder_z, short grid_type)
 Constructor. More...
 
- Protected Attributes inherited from SpectralBaseAlgorithm
SpectralFieldIndex m_spectral_index
 
KVectorComponent modified_kx_vec
 
KVectorComponent modified_kz_vec
 

Constructor & Destructor Documentation

◆ PsatdAlgorithmPml()

PsatdAlgorithmPml::PsatdAlgorithmPml ( const SpectralKSpace spectral_kspace,
const amrex::DistributionMapping dm,
const SpectralFieldIndex spectral_index,
int  norder_x,
int  norder_y,
int  norder_z,
short  grid_type,
const amrex::Vector< amrex::Real > &  v_galilean,
amrex::Real  dt,
bool  dive_cleaning,
bool  divb_cleaning 
)

Constructor of the class PsatdAlgorithmPml.

Parameters
[in]spectral_kspaceSpectral space
[in]dmDistribution mapping
[in]spectral_indexObject containing indices to access data in spectral space
[in]norder_xOrder of the spectral solver along x
[in]norder_yOrder of the spectral solver along y
[in]norder_zOrder of the spectral solver along z
[in]grid_typeType of grid (collocated or not)
[in]v_galileanGalilean velocity
[in]dtTime step of the simulation
[in]dive_cleaningWhether to use divergence correction for E (F term)
[in]divb_cleaningWhether to use divergence correction for B (G term)

Member Function Documentation

◆ CurrentCorrection()

void PsatdAlgorithmPml::CurrentCorrection ( SpectralFieldData field_data)
finalvirtual

Virtual function for current correction in Fourier space (Vay et al, 2013). This function overrides the virtual function CurrentCorrection in the base class SpectralBaseAlgorithm and cannot be overridden by further derived classes.

Parameters
[in,out]field_dataAll fields in Fourier space

Implements SpectralBaseAlgorithm.

◆ InitializeSpectralCoefficients()

void PsatdAlgorithmPml::InitializeSpectralCoefficients ( const SpectralKSpace spectral_kspace,
const amrex::DistributionMapping dm 
)

Initializes the coefficients used in pushSpectralFields to update the E and B fields.

Parameters
[in]spectral_kspaceSpectral space
[in]dmDistribution mapping

◆ pushSpectralFields()

void PsatdAlgorithmPml::pushSpectralFields ( SpectralFieldData f) const
finalvirtual

Updates the E and B fields in spectral space, according to the relevant PSATD equations.

Parameters
[in,out]fAll fields in spectral space

Implements SpectralBaseAlgorithm.

◆ VayDeposition()

void PsatdAlgorithmPml::VayDeposition ( SpectralFieldData field_data)
finalvirtual

Virtual function for Vay current deposition in Fourier space (Vay et al, 2013). This function overrides the virtual function VayDeposition in the base class SpectralBaseAlgorithm and cannot be overridden by further derived classes.

Parameters
[in,out]field_dataAll fields in Fourier space

Implements SpectralBaseAlgorithm.

Member Data Documentation

◆ C_coef

SpectralRealCoefficients PsatdAlgorithmPml::C_coef
private

◆ inv_k2_coef

SpectralRealCoefficients PsatdAlgorithmPml::inv_k2_coef
private

◆ m_divb_cleaning

bool PsatdAlgorithmPml::m_divb_cleaning
private

◆ m_dive_cleaning

bool PsatdAlgorithmPml::m_dive_cleaning
private

◆ m_dt

amrex::Real PsatdAlgorithmPml::m_dt
private

◆ m_is_galilean

bool PsatdAlgorithmPml::m_is_galilean
private

◆ m_v_galilean

amrex::Vector<amrex::Real> PsatdAlgorithmPml::m_v_galilean
private

◆ modified_kx_vec_centered

KVectorComponent PsatdAlgorithmPml::modified_kx_vec_centered
private

◆ modified_kz_vec_centered

KVectorComponent PsatdAlgorithmPml::modified_kz_vec_centered
private

◆ S_ck_coef

SpectralRealCoefficients PsatdAlgorithmPml::S_ck_coef
private

◆ T2_coef

SpectralComplexCoefficients PsatdAlgorithmPml::T2_coef
private

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