Skip to content

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

./bin/HDirac -h

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.

CLI value Alias Description
biawgn - Binary-input AWGN channel
real - CVQKD virtual channel (d = 1)
complex - CVQKD virtual channel (d = 2)
quaternion quat CVQKD virtual channel (d = 4)
octonion oct CVQKD virtual channel (d = 8)
householder_od2 hod2 Householder virtual channel with O(d²) complexity
householder_od3 hod3 Householder virtual channel with O(d³) complexity

Coding sheme --decoder OPTIONAL

Type string
Default coset
Allowed values coset coset_synd
Example --decoder coset

Select the coding scheme.

CLI value Alias Description
coset - Standard coset decoder \(-\) decodes toward a given syndrome
coset_synd cs Coset decoder with syndrome concatenation \(-\) for performance comparison only

Warning

The coset_synd decoder is intended only for performance comparison and is only available with the biawgn channel.


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

The --d parameter is only used with:

  • householder_od2
  • householder_od3

For the low-dimensional virtual channels, the dimension is fixed automatically:

Channel Dimension
real 1
complex 2
quaternion 4
octonion 8

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.