WarpX
Loading...
Searching...
No Matches
WarpX_PEC.H
Go to the documentation of this file.
1#ifndef WARPX_PEC_KERNELS_H_
2#define WARPX_PEC_KERNELS_H_
3
5
6#include <AMReX_Array.H>
7#include <AMReX_Geometry.H>
8#include <AMReX_Vector.H>
9
10#include <AMReX_BaseFwd.H>
11
12#include <array>
13
14namespace PEC {
31 void ApplyPECtoEfield (
32 std::array<amrex::MultiFab*, 3> Efield,
35 FieldBoundaryType bc_type,
36 const amrex::IntVect& ng_fieldgather, const amrex::Geometry& geom,
37 int lev, PatchType patch_type, const amrex::Vector<amrex::IntVect>& ref_ratios,
38 bool split_pml_field = false);
55 void ApplyPECtoBfield (
56 std::array<amrex::MultiFab*, 3> Bfield,
59 FieldBoundaryType bc_type,
60 const amrex::IntVect& ng_fieldgather, const amrex::Geometry& geom,
61 int lev, PatchType patch_type, const amrex::Vector<amrex::IntVect>& ref_ratios,
62 bool split_pml_field = false);
63
79 amrex::MultiFab* rho,
82 const amrex::Array<ParticleBoundaryType,AMREX_SPACEDIM>& particle_boundary_lo,
83 const amrex::Array<ParticleBoundaryType,AMREX_SPACEDIM>& particle_boundary_hi,
84 const amrex::Geometry& geom,
85 int lev, PatchType patch_type, const amrex::Vector<amrex::IntVect>& ref_ratios);
86
103 amrex::MultiFab* Jz,
104 const amrex::Array<FieldBoundaryType,AMREX_SPACEDIM>& field_boundary_lo,
105 const amrex::Array<FieldBoundaryType,AMREX_SPACEDIM>& field_boundary_hi,
106 const amrex::Array<ParticleBoundaryType,AMREX_SPACEDIM>& particle_boundary_lo,
107 const amrex::Array<ParticleBoundaryType,AMREX_SPACEDIM>& particle_boundary_hi,
108 const amrex::Geometry& geom,
109 int lev, PatchType patch_type, const amrex::Vector<amrex::IntVect>& ref_ratios);
110
123 amrex::MultiFab* Pefield,
124 const amrex::Array<FieldBoundaryType,AMREX_SPACEDIM>& field_boundary_lo,
125 const amrex::Array<FieldBoundaryType,AMREX_SPACEDIM>& field_boundary_hi,
126 const amrex::Geometry& geom,
127 int lev, PatchType patch_type, const amrex::Vector<amrex::IntVect>& ref_ratios);
128}
129#endif // WarpX_PEC_KERNELS_H_
FieldBoundaryType
Definition WarpXAlgorithmSelection.H:138
Definition WarpX_PEC.H:14
void 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 a...
Definition WarpX_PEC.cpp:532
void 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.
Definition WarpX_PEC.cpp:714
void 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.
Definition WarpX_PEC.cpp:1090
void 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.
Definition WarpX_PEC.cpp:874
void 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 ar...
Definition WarpX_PEC.cpp:616
PatchType
Definition Enums.H:30
IntVectND< 3 > IntVect
std::array< T, N > Array