Running the Simulation
As mentioned earlier, the compiled simulation binary is located at build/bin/HDirac.
To run the simulation, an LDPC code in the form of a .bsparse file must be provided. For more details, please refer to the LDPC Codes section.
The available parameters can be displayed and usage instructions by executing
from the build/ directory.
Note
Pressing Ctrl + C twice quickly will exit the simulation.
Pressing Ctrl + C once will only skip the current simulation round.
Structure Parameters
LDPC Code File --file REQUIRED
| Type | path |
| Example | --file codes/n200000r0p1_cil.bsparse |
Path to the LDPC code file in .bsparse format. See LDPC Codes for how to generate this file.
Channel Type --channel OPTIONAL
| Type | string |
| Default | householder_od2 |
| Allowed values | biawgn real complex quaternion octonion householder_od2 householder_od3 |
| Example | --channel octonion |
Select the virtual channel model to simulate.
| Value | Description |
|---|---|
biawgn |
Binary input additive white Gaussian noise \(-\) ideal limit as \(d \to \infty\) |
real |
CVQKD virtual channel, real-valued (\(d=1\)) |
complex |
CVQKD virtual channel, complex (\(d=2\)) |
quaternion |
CVQKD virtual channel, quaternion (\(d=4\)) |
octonion |
CVQKD virtual channel, octonion (\(d=8\)) |
householder_od2 |
Householder-based virtual channel with \(O(d^2)\) complexity |
householder_od3 |
Householder-based virtual channel with \(O(d^3)\) complexity |
Aliases
quat = quaternion
oct = octonion
hod2 = householder_od2
hod3 = householder_od3
Coding sheme --decoder OPTIONAL
| Type | string |
| Default | coset |
| Allowed values | coset coset_synd |
| Example | --decoder coset |
Select the coding scheme.
| Value | Description |
|---|---|
coset |
Standard coset decoder \(-\) decodes toward a given syndrome |
coset_synd |
Coset decoder with syndrome concatenation \(-\) for performance comparison only |
Alias
cs = coset_synd
Warning
coset_synd is not intended for practical use. It is only available with biawgn,
regardless of the mode (sequence or pipeline).
Execution Mode --mode OPTIONAL
| Type | text |
| Default | pipeline |
| Allowed values | sequence pipeline |
| Example | --mode pipeline |
Select the execution mode. See Pipeline & Sequence for a detailed explanation.
| Value | Description |
|---|---|
sequence |
Tasks are chained and executed one after another |
pipeline |
The decoder stage is parallelised — multiple batches processed simultaneously |
Warning
In pipeline mode, coset is only available with biawgn and householder_od2.
coset_synd is only available with biawgn.
Dimension --d OPTIONAL
| Type | integer |
| Default | 64 |
| Example | --d 128 |
Note
The dimension \(d\) of the CVQKD virtual channel. Required to be > 0 for householder_od2 and householder_od3 channels. Must divide the frame length \(n\) evenly — see Choose of the Code Rate.
Simulation Parameters
Beta settings
Minimum Beta Value --beta-min OPTIONAL
| Type | float |
| Default | 0.85 |
| Constraint | \( < \) --beta-max, \(\geq 0.0\) |
| Example | --beta-min 0.9 |
Define the minimum \(\beta\) value.
Maximum Beta Value --beta-max OPTIONAL
| Type | float |
| Default | 1.0 |
| Constraint | \( > \) --beta-min, \( \leq 1.0 \) |
| Example | --beta-max 0.98 |
Define the maximum \( \beta \) value.
Beta --beta-step OPTIONAL
| Type | float |
| Default | 0.01 |
| Constraint | \(> 0\) |
| Example | --beta-step 0.02 |
Define the sweep range of reconciliation efficiency \(\beta\). The simulation runs from --beta-min to --beta-max with increment --beta-step.
Maximum Error Frames --max-error-frame OPTIONAL
| Type | float |
| Default | 100 |
| Example | --max-error-frame 10 |
Stop the simulation for a given \(\beta\) once this number of frame errors has been reached.
Maximum Frames --max-frame OPTIONAL
| Type | integer |
| Default | 1000 |
| Example | --max-frame 250 |
Maximum number of frames to simulate per \(\beta\) point, regardless of error count.
Other Options
Statistics --stats OPTIONAL
Print detailed per-task timing statistics at the end of the simulation. Or per-stage if a pipeline is used.
Help --help, --h, -h HELP
Print the help message and exit.