Procedure | Location | Procedure Type | Description |
---|---|---|---|
init | input_output | Subroutine | sets up parameters as defined by the problem statement |
interp | linear_algebra | Function | find a linearly interpolated value of a function \(f\left(x\right)\) at point \(x_{i}\) given values of the function in \(\vec{f}\) at points \(\vec{x}\) |
matvecmult | linear_algebra | Subroutine | multiply a matrix \(\mathbb{M}\) and a vector \(\vec{v}\) and get result \(\vec{outv}\) |
nonuniformmesh | mesh | Subroutine | creates a nonuniform mesh with size varying from delta_x_min on the left edge of the boundary to delta_x on the right edge of the boundary. The element sizes vary as \(\log\left(\frac{a}{a^{n}}\right)\) |
print_output | input_output | Subroutine | prints out the output of file \(n\) including the mesh points \(\vec{x}\) and their values \(\vec{y}\) |
read_srim | input_output | Subroutine | This subroutine opens a SRIM output file and reads the distribution of ions in the sample, outputting those to x and s |
solve | linear_algebra | Subroutine | solve the equation \(\mathbb{A}\vec{x} = \vec{b}\) for \(\vec{x}\) using Gauss-Seidel method |
uniformmesh | mesh | Subroutine | creates a uniform mesh with size delta_x |
workspace_setup | input_output | Subroutine | This subroutine will setup a workspace for us to generate and save our simulation files in |