Histories provide data from each time step of a simulation. They can provide useful diagnostics to make sure your simulation is proceeding as intended. Some histories are only available with certain simulation setups (e.g. only available in electromagnetic simulation, or only available in simulations with particles).

To add a history, right-click the “Histories” element of the setup tree then navigate to the history to be added to the simulation

An *Array History* will output an array of data for each time-step.

**Field Slab Data**Store the value of a field at every timestep within a specified 3D volume.

**kind**(not editable)- Field Slab Data
**description**- A comment to describe the history.
**field**Choose the field to record. Options for electromagnetic simulations are:

**Electric Field****Magnetic Field**

Options for electromagnetic simulations are:

**Phi****Charge Density****Electric Field**

**volume**The volume inside of which to collect the field data.

**cartesian 3d slab****xMin**- The minimum x position of the box.

**xMax**- The maximum x position of the box.

**yMin**- The minimum y position of the box.

**yMax**- The maximum y position of the box.

**zMin**- The minimum z position of the box.

**zMax**- The maximum z position of the box.

**Particle Momentum**Calculate the total momentum for a particular set of particles in the whole simulation domain. All three components of the momentum are recorded. Thus, for some simulations in 1D or 2D, some components of the momentum may always be zero.

**kind**(not editable)- Particle Momentum
**particles**- Select any of the previously defined
*KineticParticles*in your simulation.

**Far-Field Observation****ONLY AVAILABLE IN ELECTROMAGNETIC SIMULATIONS****kind**(not editable)- Far-Field Observation
**time delay**- The simulation time at which the history begins recording.
**duration**- The simulation time length during which the history records.
**number of time points**- The number of time points.
**Kirchhoff sphere radius**- The radius of the Kirchhoff sphere.
**number of polar angles**- The number of polar angles represented on the Kirchhoff sphere.
**number of azimuthal angles**- The number of azimuthal angles represented on the Kirchhoff shpere.
**number of line integral segments**- The number of integration points around the far-field sphere.
**Kirchhoff sphere center**- The center of the Kirchhoff sphere.

**Far-Field Box Data****ONLY AVAILABLE IN ELECTROMAGNETIC SIMULATIONS****kind**(not editable)- Far-Field Box Data
**start time**- The simulation time at which the history begins recording.
**end time**- The simulation time at which the history ends recording.
**volume**The volume to use for the box.

**cartesian 3d slab****xMin**- The minimum x position of the box.

**xMax**- The maximum x position of the box.

**yMin**- The minimum y position of the box.

**yMax**- The maximum y position of the box.

**zMin**- The minimum z position of the box.

**zMax**- The maximum z position of the box.

**Combo Histories** are used to do operations on other histories. The operation is done at every time step and the resulting
values are recorded as a new history. The output will be a 1D array of the value vs time.
Any number of histories may be combined, beware of dividing by zero.

kind(not editable)- Combination History
Constituent HistoryAs many constituent histories as desired may be added. The name of the constituent history itself is not of particular importance. -

history nameSelect one previously definedFieldorParticleHistory.

coefficientThis is a multiplying factor on the selected history.

combinationThis operation will be applied to combine the history with all preceding constituent histories. The order of operations is demonstrated in an example with three histories of each below

add0 + (coefficient1*history name 1) + (coefficient2*history name 2) + (coefficient3*history name 3)

subtract0 - (coefficient1*history name 1) - (coefficient2*history name 2) - (coefficient3*history name 3)

multiply((0 * (coefficient1*history name 1)) * (coefficient2*history name 2)) * (coefficient3*history name 3)

divide((0 / (coefficient1*history name 1)) / (coefficient2*history name 2)) / (coefficient3*history name 3)

As the above examples show, using a multiply or divide operation on the first constituent history added will yield an error. If used on the third constituent history, the two preceding histories will be combined first and then multiplied or divided by the third.

**Field Histories** record on a per time-step basis. Field histories are used to measure quantities such as the value or
energy of the field at a location. The output will be a 1D array of the value vs time.

**Accelerating Voltage**This history creates a test electron and measures the accelerating voltage received by an electron traveling at a fixed velocity across a gap in a cavity structure. See acceleratingVoltage for a reference defining ‘acclerating voltage’.

**kind**(not editable)- Accelerating Voltage
**description**- A comment to describe the history.
**start coordinate 0**- The starting position of the test electron in the x-direction in Cartesian simulations (or z-direction in cylindrical simulations).
**start coordinate 1**- The starting position of the test electron in the y-direction in Cartesian simulations (or r-direction in cylindrical simulations).
**start coordinate 2**- The starting position of the test electron in the z-direction in Cartesian simulations (or phi-direction in cylindrical simulations).
**end coordinate 0**- The starting position of the test electron in the x-direction in Cartesian simulations (or z-direction in cylindrical simulations).
**end coordinate 1**- The starting position of the test electron in the y-direction in Cartesian simulations (or r-direction in cylindrical simulations).
**end coordinate 2**- The starting position of the test electron in the z-direction in Cartesian simulations (or phi-direction in cylindrical simulations).
**velocity**- The velocity of the test electron. By default this is the speed of light.

**Electric Field Energy**Calculate the total energy of the electric field in the specified volume.

**kind**(not editable)- Electric Field Energy
**volume**The region over which to calculate the field energy.

**simulation region**Use the entire simulation domain.

**index 3d slab**A user-defined volume based on cell indices.

**lower indices**The lower indices of the volume.

**upper indices**The upper indices of the volume.

**EM Field Energy**Calculate the total energy of the electromagnetic field in the specified volume. Only available in electromagnetic simulations.

**kind**(not editable)- EM Field Energy
**volume**The region over which to calculate the field energy.

**simulation region**Use the entire simulation domain.

**index 3d slab**A user-defined volume based on cell indices.

**lower indices**The lower indices of the volume.

**upper indices**The upper indices of the volume.

**shape**A volume based on a previously defined geometry.

**object name**Select from a previously defined geometry.

**Magnetic Field Energy**Calculate the total energy of the magnetic field in the specified volume.

**kind**(not editable)- Magnetic Field Energy
**volume**The region over which to calculate the field energy.

**simulation region**Use the entire simulation domain.

**index 3d slab**A user-defined volume based on cell indices.

**lower indices**The lower indices of the volume.

**upper indices**The upper indices of the volume.

**Field at Position**Record the specified field at the specified coordinates. All components of the field are recorded into an array.

**kind**(not editable)- Field at Position
**field**- Select the desired field.
**coordinate0**- The position coordinate in the 0th dimension, x in cartesian coordinates, z in cylindrical.
**coordinate1**- The position coordinate in the 1st dimension, y in cartesian coordinates, r in cylindrical.
**coordinate2**- The position coordinate in the 2nd dimension, z in cartesian coordinates.

**Poynting Flux****ONLY AVAILABLE IN ELECTROMAGNETIC SIMULATIONS**Calculates the integrated Poynting vector (energy flux) through the area defined by the min and max values.

**kind**(not editable)- Poynting Vector
**surface**The plane to use.

**yz****offset**The x offset from zero, in meters.

**yMin**The location of the y minimum, in meters.

**yMax**The location of the y maximum, in meters.

**zMin**The location of the z minimum, in meters.

**zMax**The location of the z maximum, in meters.

**xz****offset**The y offset from zero, in meters.

**xMin**The location of the x minimum, in meters.

**xMax**The location of the x maximum, in meters.

**zMin**The location of the z minimum, in meters.

**zMax**The location of the z maximum, in meters.

**xy****offset**The z offset from zero, in meters.

**xMin**The location of the x minimum, in meters.

**xMax**The location of the x maximum, in meters.

**yMin**The location of the y minimum, in meters.

**yMax**The location of the y maximum, in meters.

**Pseudo-potential****This option is deprecated. Use ‘Pseudo-potential at Coordinates’ or ‘pseudo-potential at Indices’ instead.****kind**(not editable)- Pseudo-potential
**start indices**- The indices of the cells for the starting location.
**end indices**- The indices of the cells for the ending location.

**Pseudo-potential at Coordinates**Calculates the pseudo-potential difference, in Volts, between two points. The start point would correspond to the measure point, while the end point would correspond to the reference.

**kind**(not editable)- Pseudo-potential
**start coordinate 0**- The coordinate of the start point in the 0th dimension.
**start coordinate 1**- The coordinate of the start point in the 1st dimension.
**start coordinate 2**- The coordinate of the start point in the 2nd dimension.
**end coordinate 0**- The coordinate of the end point in the 0th dimension.
**end coordinate 1**- The coordinate of the end point in the 1st dimension.
**end coordinate 2**- The coordinate of the end point in the 2nd dimension.

**Pseudo-potential at Indices**Calculates the pseudo-potential difference, in Volts, between two points, specified by grid index.

**kind**(not editable)- Pseudo-potential
**description**- A description of the potential difference.
**start indices**- The indices of the cells for the starting location.
**end indices**- The indices of the cells for the ending location.

A *Log History* will record data based on user specified logging method. A single log history may contain multiple particle quantities.

**Absorbed Particle Log**Record information about each and every particle that strikes a chosen absorbing surface. The output will be a 1D array of the value.

**kind**(not editable)- Absorbed Particle Log
**particle absorber**- Select the previously defined particle absorbing boundary condition. This must be a ParticleBoundaryCondition
that can
*Save*. **particle quantity**What information about the particle is to be recorded. For vector-like quantities (position, velocity, and weight), you must select which component of the vector you wish to record in the

*component*option (0 –> x, 1 –> y, 2 –> z).**particle time**- The time the particle strikes the absorber.
**particle position**- The position of the particle when it is absorbed.
**particle velocity**- The velocity of the particle when it is absorbed.
**particle weight**- The weight of the particle when it is absorbed.
**particle energy**- The total energy of all the particles that are absorbed.
**particle current**- The total current of all the particles that are absorbed.
**particle gamma velocity**- The gamma velocity of the particle when it is absorbed.
**particle charge**- The charge of the particle when it is absorbed.
**particles in macro particle**- The number of particles in that macro particle when it is absorbed.

*Particle Histories* record on a per time-step basis. Particle histories are used to measure quantities such as the
total number of particles in a simulation at each step, or the current absorbed at chosen absorbing surface at each
step. The output will be a 1D array of the value vs time.

**Absorbed Particle Current**Calculates the absorbed current on a specified particle absorber.

**kind**(not editable)- Absorbed Particle Current
**particle absorber**- Select the previously defined particle absorbing boundary condition. This must be a ParticleBoundaryCondition
that can
*Save*.

**Absorbed Particle Power**Calculates the power absorbed on a specified particle absorber.

**kind**(not editable)- Absorbed Particle Power
**particle absorber**- Select the previously defined particle absorbing boundary condition. This must be a ParticleBoundaryCondition
that can
*Save*particle data.

**Emitted Current**Records the emitted current from the specified particle emitter

**kind**(not editable)- Emitted Current
**particle emitter**- Select the previously defined particle emitting boundary condition.

**Number of Macroparticles**Calculates the total number of macroparticles in the simulation domain for the specified

*KineticParticle*.**kind**(not editable)- Number of Macroparticles
**particles**- Select the name of the previously defined
*KineticParticles*.

**Number of Physical Particles**Calculates the total number of real particles in the simulation domain for the specified

*KineticParticle*.**kind**(not editable)- Number of Physical Particles
**particles**- Select the name of the previously defined
*KineticParticles*.

**Particle Energy**Calculates the total energy in the simulation domain for the specified

*KineticParticle*.**kind**(not editable)- Particle Energy
**particles**- Select the name of the previously defined
*KineticParticles*.

**Particle Energy Change from Boundary**Calculates the energy change in a particle species due to a diffuse reflector boundary condition.

**kind**(not editable)- Particle Energy Change from Boundary
**particle absorber**- Select the name of the boundary diffuse reflector particle boundary condition.