WarpX
Loading...
Searching...
No Matches
WarpX_PEC.H File Reference
#include "Utils/WarpXAlgorithmSelection.H"
#include <AMReX_Array.H>
#include <AMReX_Geometry.H>
#include <AMReX_Vector.H>
#include <AMReX_BaseFwd.H>
#include <array>

Go to the source code of this file.

Namespaces

namespace  PEC
 

Functions

void PEC::ApplyPECtoEfield (std::array< amrex::MultiFab *, 3 > Efield, const amrex::Array< FieldBoundaryType, 3 > &field_boundary_lo, const amrex::Array< FieldBoundaryType, 3 > &field_boundary_hi, FieldBoundaryType bc_type, const amrex::IntVect &ng_fieldgather, const amrex::Geometry &geom, int lev, PatchType patch_type, const amrex::Vector< amrex::IntVect > &ref_ratios, bool split_pml_field=false)
 Sets the tangential electric field at the PEC boundary to zero. The guard cell values are set equal and opposite to the valid cell field value at the respective mirror locations.
 
void PEC::ApplyPECtoBfield (std::array< amrex::MultiFab *, 3 > Bfield, const amrex::Array< FieldBoundaryType, 3 > &field_boundary_lo, const amrex::Array< FieldBoundaryType, 3 > &field_boundary_hi, FieldBoundaryType bc_type, const amrex::IntVect &ng_fieldgather, const amrex::Geometry &geom, int lev, PatchType patch_type, const amrex::Vector< amrex::IntVect > &ref_ratios, bool split_pml_field=false)
 Sets the normal component of the magnetic field at the PEC boundary to zero. The guard cell values are set equal and opposite to the valid cell field value at the respective mirror locations.
 
void PEC::ApplyReflectiveBoundarytoRhofield (amrex::MultiFab *rho, const amrex::Array< FieldBoundaryType, 3 > &field_boundary_lo, const amrex::Array< FieldBoundaryType, 3 > &field_boundary_hi, const amrex::Array< ParticleBoundaryType, 3 > &particle_boundary_lo, const amrex::Array< ParticleBoundaryType, 3 > &particle_boundary_hi, const amrex::Geometry &geom, int lev, PatchType patch_type, const amrex::Vector< amrex::IntVect > &ref_ratios)
 Reflects charge density deposited over the PEC boundary back into the simulation domain.
 
void PEC::ApplyReflectiveBoundarytoJfield (amrex::MultiFab *Jx, amrex::MultiFab *Jy, amrex::MultiFab *Jz, const amrex::Array< FieldBoundaryType, 3 > &field_boundary_lo, const amrex::Array< FieldBoundaryType, 3 > &field_boundary_hi, const amrex::Array< ParticleBoundaryType, 3 > &particle_boundary_lo, const amrex::Array< ParticleBoundaryType, 3 > &particle_boundary_hi, const amrex::Geometry &geom, int lev, PatchType patch_type, const amrex::Vector< amrex::IntVect > &ref_ratios)
 Reflects current density deposited over the PEC boundary back into the simulation domain.
 
void PEC::ApplyPECtoElectronPressure (amrex::MultiFab *Pefield, const amrex::Array< FieldBoundaryType, 3 > &field_boundary_lo, const amrex::Array< FieldBoundaryType, 3 > &field_boundary_hi, const amrex::Geometry &geom, int lev, PatchType patch_type, const amrex::Vector< amrex::IntVect > &ref_ratios)
 Apply the PEC boundary to the electron pressure field.