ParticleSink

ParticleSink

Nested block to create particle boundary for a Species. Typically, ParticleSinks removes particles in a boundary region although other behaviors are possible.

Multiple types of particle sinks may be specified in the input file, and you can specify the locations of these sinks within multiple input blocks. If you specify multiple particle sinks for the same grid cell, only one of them will be created. In the case of overlapping physical sinks, the one specified in the last sink input block within the corresponding species block is the one that Vorpal creates. Vorpal issues a warning when it detects overlapping particle sinks.

Any grid cell may contain both a messaging sink and a physical sink. The messaging sinks are auto-generated by Vorpal during simulation setup, and they are used to enforce periodic boundary conditions on particles, to communicate particles between processors in parallel runs, etc. The physical sinks are used to absorb particles that strike a boundary, leave a specified region of the grid, or for more specialized purposes. In most cases, you have complete control over the type and location of physical sinks. Vorpal checks physical sinks first in each cell, after which the messaging sinks are applied.

You must set up the particle boundary conditions so that they completely surround the space in which particles are loaded. Otherwise, particles will drift out of the simulation and try to reference fields that do not exist. This leads to a segmentation fault when Vorpal runs the simulation. The most common cause of Vorpal crashes is improperly set up particle boundary conditions.

If you do not explicitly specify all particle boundary conditions with ParticleSink input blocks, you must specify periodic boundary conditions with the periodicDirs parameter in the Decomp input block, allowing particles to “wrap around” to the opposite side of the simulation.

Note

The interplay of messaging sinks and physical sinks is important to understand when you create a species input block that includes the specification of particle absorbers around the domain (typically in the guard cells). When specifying periodic boundary conditions with the syntax periodicDirs = [1 1 1] in the Decomp block, be aware that Vorpal implements this directive for all particle species by auto-generating messaging sinks around the simulation domain (in the guard cells). Hence, this requested boundary condition will be overridden for any species that explicitly specifies absorbers in these same guard cells.

ParticleSink parameters

recordParticleSumStats (boolean, optional, default = true)

If true, then at each time step, simple statistics will be recorded for all sourced particles (summed over the entire simulation): including the number of macroparticles sourced, their total weight, and the weighted sum of position coordinates as well as the weighted sum of internal variables (the latter can be divided by the total weight to get average positions and velocities of sourced particles). The total energy is currently not recorded (because of the computational time it takes—if desired, one can set recordParticleData to record individual particle data, and then History to sum the particle energies); however, the total (hence average) momentum can be obtained. This data can be accessed via ptclSumData Histories; it is also used by Conductor Block to record charge emitted from conductors. The record is cleared after each time step.