WarpX
|
Functions | |
void | ApplyPECtoEfield (std::array< amrex::MultiFab *, 3 > Efield, const amrex::Vector< FieldBoundaryType > &field_boundary_lo, const amrex::Vector< FieldBoundaryType > &field_boundary_hi, 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. More... | |
void | ApplyPECtoBfield (std::array< amrex::MultiFab *, 3 > Bfield, const amrex::Vector< FieldBoundaryType > &field_boundary_lo, const amrex::Vector< FieldBoundaryType > &field_boundary_hi, const amrex::IntVect &ng_fieldgather, const amrex::Geometry &geom, int lev, PatchType patch_type, const amrex::Vector< amrex::IntVect > &ref_ratios) |
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. More... | |
void | ApplyReflectiveBoundarytoRhofield (amrex::MultiFab *rho, const amrex::Vector< FieldBoundaryType > &field_boundary_lo, const amrex::Vector< FieldBoundaryType > &field_boundary_hi, const amrex::Vector< ParticleBoundaryType > &particle_boundary_lo, const amrex::Vector< ParticleBoundaryType > &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. More... | |
void | ApplyReflectiveBoundarytoJfield (amrex::MultiFab *Jx, amrex::MultiFab *Jy, amrex::MultiFab *Jz, const amrex::Vector< FieldBoundaryType > &field_boundary_lo, const amrex::Vector< FieldBoundaryType > &field_boundary_hi, const amrex::Vector< ParticleBoundaryType > &particle_boundary_lo, const amrex::Vector< ParticleBoundaryType > &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. More... | |
void | ApplyPECtoElectronPressure (amrex::MultiFab *Pefield, const amrex::Vector< FieldBoundaryType > &field_boundary_lo, const amrex::Vector< FieldBoundaryType > &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. More... | |
void PEC::ApplyPECtoBfield | ( | std::array< amrex::MultiFab *, 3 > | Bfield, |
const amrex::Vector< FieldBoundaryType > & | field_boundary_lo, | ||
const amrex::Vector< FieldBoundaryType > & | field_boundary_hi, | ||
const amrex::IntVect & | ng_fieldgather, | ||
const amrex::Geometry & | geom, | ||
int | lev, | ||
PatchType | patch_type, | ||
const amrex::Vector< amrex::IntVect > & | ref_ratios | ||
) |
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.
[in,out] | Bfield | Boundary values of normal Bfield are set to zero. |
[in] | field_boundary_lo | Boundary types of the "low" field boundaries |
[in] | field_boundary_hi | Boundary types of the "high" field boundaries |
[in] | ng_fieldgather | number of guard cells used by field gather |
[in] | geom | geometry object of level "lev" |
[in] | lev | level of the Multifab |
[in] | patch_type | coarse or fine |
[in] | ref_ratios | vector containing the refinement ratios of the refinement levels |
void PEC::ApplyPECtoEfield | ( | std::array< amrex::MultiFab *, 3 > | Efield, |
const amrex::Vector< FieldBoundaryType > & | field_boundary_lo, | ||
const amrex::Vector< FieldBoundaryType > & | field_boundary_hi, | ||
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.
[in,out] | Efield | Boundary values of tangential Efield are set to zero |
[in] | field_boundary_lo | Boundary types of the "low" boundaries |
[in] | field_boundary_hi | Boundary types of the "high" boundaries |
[in] | ng_fieldgather | number of guard cells used by field gather |
[in] | geom | geometry object of level "lev" |
[in] | lev | level of the Multifab |
[in] | patch_type | coarse or fine |
[in] | ref_ratios | vector containing the refinement ratios of the refinement levels |
[in] | split_pml_field | whether pml the multifab is the regular Efield or split pml field |
void PEC::ApplyPECtoElectronPressure | ( | amrex::MultiFab * | Pefield, |
const amrex::Vector< FieldBoundaryType > & | field_boundary_lo, | ||
const amrex::Vector< FieldBoundaryType > & | 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.
[in,out] | Pefield | Multifab containing the electron pressure |
[in] | field_boundary_lo | Boundary types of the "low" field boundaries |
[in] | field_boundary_hi | Boundary types of the "high" field boundaries |
[in] | geom | geometry object of level "lev" |
[in] | lev | level of the Multifab |
[in] | patch_type | coarse or fine |
[in] | ref_ratios | vector containing the refinement ratios of the refinement levels |
void PEC::ApplyReflectiveBoundarytoJfield | ( | amrex::MultiFab * | Jx, |
amrex::MultiFab * | Jy, | ||
amrex::MultiFab * | Jz, | ||
const amrex::Vector< FieldBoundaryType > & | field_boundary_lo, | ||
const amrex::Vector< FieldBoundaryType > & | field_boundary_hi, | ||
const amrex::Vector< ParticleBoundaryType > & | particle_boundary_lo, | ||
const amrex::Vector< ParticleBoundaryType > & | 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.
[in,out] | Jx,Jy,Jz | Multifabs containing the current density |
[in] | field_boundary_lo | Boundary types of the "low" field boundaries |
[in] | field_boundary_hi | Boundary types of the "high" field boundaries |
[in] | particle_boundary_lo | Boundary types of the "low" particle boundaries |
[in] | particle_boundary_hi | Boundary types of the "high" particle boundaries |
[in] | geom | geometry object of level "lev" |
[in] | lev | level of the Multifab |
[in] | patch_type | coarse or fine |
[in] | ref_ratios | vector containing the refinement ratios of the refinement levels |
void PEC::ApplyReflectiveBoundarytoRhofield | ( | amrex::MultiFab * | rho, |
const amrex::Vector< FieldBoundaryType > & | field_boundary_lo, | ||
const amrex::Vector< FieldBoundaryType > & | field_boundary_hi, | ||
const amrex::Vector< ParticleBoundaryType > & | particle_boundary_lo, | ||
const amrex::Vector< ParticleBoundaryType > & | 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.
Sets the rho field value in cells close to and inside a PEC boundary. The charge density deposited in the guard cells are either reflected back into the simulation domain (if a reflecting particle boundary is used), or the opposite charge density is deposited back in the domain to capture the effect of an image charge. The charge density on the PEC boundary is set to 0 while values in the guard cells are set equal and opposite to their mirror location inside the domain - representing image charges.
[in,out] | rho | Multifab containing the charge density |
[in] | field_boundary_lo | Boundary types of the "low" field boundaries |
[in] | field_boundary_hi | Boundary types of the "high" field boundaries |
[in] | particle_boundary_lo | Boundary types of the "low" particle boundaries |
[in] | particle_boundary_hi | Boundary types of the "high" particle boundaries |
[in] | geom | geometry object of level "lev" |
[in] | lev | level of the Multifab |
[in] | patch_type | coarse or fine |
[in] | ref_ratios | vector containing the refinement ratios of the refinement levels |