gray/doc/4.implementation.md
Lorenzo Figini 10dc3ba3d0 Improve documentation build
- Documentation is not built anymore with the default `all` rule to
improve portability. It must be built explicitly with `make docs`.
- Font types are not specified to allow building on systems with a
restricted set of fonts.
- Syntax fixes in the documentation Markdown.
2022-11-17 19:31:58 +01:00

26 lines
847 B
Markdown

# Implementation
## `index_rt` {#sec:index_rt}
The `index_rt` is a unique index assigned to each combination of beam
propagation mode and number of passes into the plasma.
Initially `index_rt` is 1 for the ordinary mode or 2 for the extraordinary
mode. Due to the mode mixing, on subsequent passes each beam splits into two
modes and the `index_rt` is updated as:
```fortran
index_rt = 2*index_rt + 1 ! for the O mode
index_rt = 2*index_rt + 2 ! for the X mode
```
It follows that ordinary(extraordinary) modes respectively have odd(even)
indices and the number of passes is given by $\lfloor \log₂(1 + \tt index\_rt)
\rfloor$. For example, an `index_rt`=19 denotes the following chain:
$$
\begin{aligned}
\text{mode:} && O &→ X → O → O \\
\text{\tt index\_rt:} && 1 &→ 4 → 9 → 19
\end{aligned}
$$