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.

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.