thunderboltz.Process

class thunderboltz.Process(process_type, r1=0, r2=1, p1=0, p2=1, threshold=0.0, cs_func=None, cs_data=None, name=None, differential_process=None, nsamples=250)[source]

A reaction process determined by reaction and product indices, a process type, a potential threshold, and a corresponding cross section specification.

process_type: str

Elastic | Inelastic | Ionization

r1,r2,p1,p2: int (0,1,0,1)

The indices of the reactants and products.

threshold: float

The threshold value for the process (e.g. the binding energy of an ionization process).

cs_func: callable

Function that returns the cross section for this process in \(\mathrm{m}^2\) given an incident electron energy in eV (center of mass frame).

cs_data: 2-D Array-Like

Tabular cross section data with columns of energy (eV) and cross section (\(\mathrm{m}^2\)).

Attributes

SAMPLE_MAX

SAMPLE_MIN

cs_func

nsamples

Methods

add_differential_parameters(name, params)

Typically differential processes require analytic forms due to the difficulty of extrapolation in several dimensions.

auto_sample()

Check if the cross section needs a dense grid or not by comparing simple and dense grids.

require_cs()

Ensure there is some kind of cross section data associated with this process.

sample_cs([e_points, grid_type, nsamples])

Sample self.cs_func on a grid of energies.

to_cs_frame(a)

Convert any kind of two-dimensional data to a pandas DataFrame with columns Energy (eV) and Cross Section (m^2)

to_df()

Convert to properly formatted pandas DataFrame.

zero_below_thresh()

Enforce the ThunderBoltz required cross section format.