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...
 

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 

◆ 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 

◆ 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 

◆ 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