WarpX
Loading...
Searching...
No Matches
WarpXAlgorithmSelection.H File Reference
#include <AMReX_BaseFwd.H>
#include <AMReX_Enum.H>
#include <ablastr/utils/Enums.H>
#include <string>

Go to the source code of this file.

Enumerations

enum class  MediumForEM : int { Vacuum , Macroscopic , Default = Vacuum }
 struct to determine the computational medium, i.e., vacuum or material/macroscopic default is vacuum. More...
 
enum class  EvolveScheme : int {
  Explicit , ThetaImplicitEM , SemiImplicitEM , StrangImplicitSpectralEM ,
  Default = Explicit
}
 struct to select the overall evolve scheme More...
 
enum class  MacroscopicSolverAlgo : int { BackwardEuler , LaxWendroff , Default = BackwardEuler }
 struct to select algorithm for macroscopic Maxwell solver LaxWendroff (semi-implicit) represents sigma*E = sigma*0.5*(E^(n) + E^(n+1)) Backward Euler (fully-implicit) represents sigma*E = sigma*E^(n+1) default is Backward Euler as it is more robust. More...
 
enum class  ElectromagneticSolverAlgo : int {
  None , Yee , CKC , PSATD ,
  ECT , HybridPIC , hybrid = HybridPIC , Default = Yee
}
 
enum class  ElectrostaticSolverAlgo : int {
  None , Relativistic , LabFrameElectroMagnetostatic , LabFrame ,
  LabFrameEffectivePotential , Default = None
}
 
enum class  PoissonSolverAlgo : int { Multigrid , IntegratedGreenFunction , fft = IntegratedGreenFunction , Default = Multigrid }
 
enum class  ParticlePusherAlgo : int {
  Boris , Vay , HigueraCary , higuera = HigueraCary ,
  Default = Boris
}
 
enum class  CurrentDepositionAlgo : int {
  Esirkepov , Direct , Vay , Villasenor ,
  Default = Esirkepov
}
 
enum class  ChargeDepositionAlgo : int { Standard , Default = Standard }
 
enum class  GatheringAlgo : int { EnergyConserving , MomentumConserving , Default = EnergyConserving }
 
enum class  PSATDSolutionType : int { FirstOrder , SecondOrder , Default = SecondOrder }
 
enum class  TimeDependencyJ : int { Constant , Linear , Quadratic , Default = Constant }
 
enum class  TimeDependencyRho : int { Constant , Linear , Quadratic , Default = Linear }
 
enum class  LoadBalanceCostsUpdateAlgo : int { Timers , Heuristic , Default = Timers }
 
enum class  FieldBoundaryType : int {
  PML , Periodic , PEC , PMC ,
  Neumann = PMC , Damped , Absorbing_SilverMueller , absorbingsilvermueller = Absorbing_SilverMueller ,
  None , Open , PECInsulator , Default = PML
}
 
enum class  ParticleBoundaryType : int {
  Absorbing , Open , Reflecting , Periodic ,
  Thermal , None , Default = Absorbing
}
 
enum class  ReductionType : int { Maximum , Minimum , Sum , Integral = Sum }
 
enum class  SubcyclingHalf : int { FirstHalf , SecondHalf , None , Default = None }
 Subcycling half selector. More...
 
enum class  PushType : int { Explicit , Implicit , Default = Explicit }
 Particle push scheme. More...
 
enum class  PositionPushType : int { None , Full , Default = Full }
 For advanced collision algorithms that split the particle push in substeps. More...
 
enum class  MomentumPushType : int { Full , FirstHalf , SecondHalf , Default = Full }
 For advanced collision algorithms that split the particle push in substeps. More...
 
enum class  ScatteringAngleModel : int { Forward , Isotropic , Default = Isotropic }
 For binary collision algorithms, the strategy to determine the scattering angle in the center of mass frame. More...
 

Enumeration Type Documentation

◆ ChargeDepositionAlgo

enum class ChargeDepositionAlgo : int
strong
Enumerator
Standard 
Default 

◆ CurrentDepositionAlgo

enum class CurrentDepositionAlgo : int
strong
Enumerator
Esirkepov 
Direct 
Vay 
Villasenor 
Default 

◆ ElectromagneticSolverAlgo

enum class ElectromagneticSolverAlgo : int
strong
Enumerator
None 
Yee 
CKC 
PSATD 
ECT 
HybridPIC 
hybrid 
Default 

◆ ElectrostaticSolverAlgo

enum class ElectrostaticSolverAlgo : int
strong
Enumerator
None 
Relativistic 
LabFrameElectroMagnetostatic 
LabFrame 
LabFrameEffectivePotential 
Default 

◆ EvolveScheme

enum class EvolveScheme : int
strong

struct to select the overall evolve scheme

Enumerator
Explicit 
ThetaImplicitEM 
SemiImplicitEM 
StrangImplicitSpectralEM 
Default 

◆ FieldBoundaryType

enum class FieldBoundaryType : int
strong

Field boundary conditions at the domain boundary

Enumerator
PML 
Periodic 
PEC 

perfect electric conductor (PEC) with E_tangential=0

PMC 

perfect magnetic conductor (PMC) with B_tangential=0

Neumann 
Damped 
Absorbing_SilverMueller 
absorbingsilvermueller 
None 
Open 
PECInsulator 
Default 

◆ GatheringAlgo

enum class GatheringAlgo : int
strong
Enumerator
EnergyConserving 
MomentumConserving 
Default 

◆ LoadBalanceCostsUpdateAlgo

enum class LoadBalanceCostsUpdateAlgo : int
strong

Strategy to compute weights for use in load balance.

Enumerator
Timers 

load balance according to in-code timer-based weights (i.e., with costs)

Heuristic 

load balance according to weights computed from number of cells and number of particles per box (i.e., with costs_heuristic)

Default 

◆ MacroscopicSolverAlgo

enum class MacroscopicSolverAlgo : int
strong

struct to select algorithm for macroscopic Maxwell solver LaxWendroff (semi-implicit) represents sigma*E = sigma*0.5*(E^(n) + E^(n+1)) Backward Euler (fully-implicit) represents sigma*E = sigma*E^(n+1) default is Backward Euler as it is more robust.

Enumerator
BackwardEuler 
LaxWendroff 
Default 

◆ MediumForEM

enum class MediumForEM : int
strong

struct to determine the computational medium, i.e., vacuum or material/macroscopic default is vacuum.

Enumerator
Vacuum 
Macroscopic 
Default 

◆ MomentumPushType

enum class MomentumPushType : int
strong

For advanced collision algorithms that split the particle push in substeps.

Enumerator
Full 
FirstHalf 
SecondHalf 
Default 

◆ ParticleBoundaryType

enum class ParticleBoundaryType : int
strong

Particle boundary conditions at the domain boundary

Enumerator
Absorbing 

particles crossing domain boundary are removed

Open 

particles cross domain boundary leave with damped j

Reflecting 

particles are reflected

Periodic 

particles are introduced from the periodic boundary

Thermal 
None 

For r=0 boundary with RZ simulations

Default 

◆ ParticlePusherAlgo

enum class ParticlePusherAlgo : int
strong
Enumerator
Boris 
Vay 
HigueraCary 
higuera 
Default 

◆ PoissonSolverAlgo

enum class PoissonSolverAlgo : int
strong
Enumerator
Multigrid 
IntegratedGreenFunction 
fft 
Default 

◆ PositionPushType

enum class PositionPushType : int
strong

For advanced collision algorithms that split the particle push in substeps.

Enumerator
None 
Full 
Default 

◆ PSATDSolutionType

enum class PSATDSolutionType : int
strong
Enumerator
FirstOrder 
SecondOrder 
Default 

◆ PushType

enum class PushType : int
strong

Particle push scheme.

Enumerator
Explicit 

Standard leap-frog scheme

Implicit 

Crank-Nicolson scheme (e.g., equations (15)-(18) in (Chen et al, JCP 407, 2020))

Default 

◆ ReductionType

enum class ReductionType : int
strong

MPI reductions

Enumerator
Maximum 
Minimum 
Sum 
Integral 

◆ ScatteringAngleModel

enum class ScatteringAngleModel : int
strong

For binary collision algorithms, the strategy to determine the scattering angle in the center of mass frame.

Enumerator
Forward 

Scattering angle is zero, i.e., products have the same direction as the incident particle in the center of mass frame

Isotropic 

Scattering angle is random, i.e., products are scattered isotropically in the center of mass frame

Default 

Isotropic

◆ SubcyclingHalf

enum class SubcyclingHalf : int
strong

Subcycling half selector.

Enumerator
FirstHalf 
SecondHalf 
None 
Default 

◆ TimeDependencyJ

enum class TimeDependencyJ : int
strong
Enumerator
Constant 
Linear 
Quadratic 
Default 

◆ TimeDependencyRho

enum class TimeDependencyRho : int
strong
Enumerator
Constant 
Linear 
Quadratic 
Default