cbr{ }
Calling sequence
quantum{ cbr{ } }
Properties
usage:
items: maximum 1
Dependencies
if
global{ simulate1D{} }
is called thenquantum{ cbr{ lead } }
cannot be usedquantum{ cbr{ min_energy } }
andquantum{ cbr{ rel_min_energy} }
cannot be used simultaneouslyquantum{ cbr{ max_energy } }
andquantum{ cbr{ rel_max_energy } }
cannot be used simultaneously
Functionality
Specifications that define CBR (Contact Block Reduction method) calculation, i.e. ballistic current calculations. This method is based on the following publications: [BirnerCBR2009], [MamaluyCBR2003]
CBR current calculation at a glance:
full 1D, 2D and 3D calculation of quantum mechanical ballistic transmission probabilities for open systems with scattering boundary conditions
- Contact Block Reduction method:
only incomplete set of quantum states needed (~ 100)
reduction of matrix sizes from
to
ballistic current according to Landauer–Büttiker formalism
The CBR method is an efficient method that uses a limited set of eigenstates of the decoupled device and a few propagating lead modes to calculate the retarded Green’s function of the device coupled to external contacts. From this Green’s function, the density and the current is obtained in the ballistic limit using Landauer’s formula with fixed Fermi levels for the leads. It is important to note that the efficiency of the calculation and also the convergence of the results are strongly dependent on the cutoff energies for the eigenstates and modes. Thus it is important to check during the calculation if the specified number of states and modes is sufficient for the applied voltages. To summarize, the code may do its job very efficiently but is far away from being a black box tool.
cbr{
name = "qr" # quantum region to which cbr method will be
lead{
name = "lead_1" # name of the lead
x = 12.0 # position of the lead in 1D simulation
kinetic_coupling = 1.5
rel_kinetic_coupling = 0.2
}
min_energy = 2.5 # lower boundary (absolute)
max_energy = 2.6 # upper boundary (absolute)
rel_min_energy = -0.01 # lower boundary (relative)
rel_max_energy = 0.3 # upper boundary (relative)
energy_resolution = 1e-6 # energy grid resolution
transmission_threshold = 0.01
ildos = yes # outputs integrated LDOS
ldos = yes # outputs LDOS
output_ldos_single_file = yes
}
Figure 2.6.3 shows the calculated transmission from lead 1 to lead 3 as a function of energy

Figure 2.6.3 The transmission calculated with the CBR method using all eigenstates and only 7% of the eigenstates. In the latter case, the transmission is still very accurate for the lower energies.
Special boundary conditions are applied for the Schrödinger equation while using the CBR method:
Neumann boundary conditions along the propagation direction.
Dirichlet boundary conditions perpendicular to the propagation direction.
Note
The quantum region must be a surface in a 3D simulation, a line in a 2D simulation, and a point in a 1D simulation.
Nested keywords
name
Calling sequence
quantum{ cbr{ name = ... } }
Properties
usage:
type: character string
Functionality
refers to quantum region to which CBR method will be applied (
lead{ }
Calling sequence
quantum{ cbr{ lead{ } } }
Properties
usage:
items: minimum 2
Functionality
Defining a lead. The lead region has dimension
lead{ name }
Calling sequence
quantum{ cbr{ lead{ name = ... } } }
Properties
usage:
type: character string
Functionality
Provides the name of the quantum region of the lead. It must be corresponding to a defined quantum{ region{} }
unless the global simulation is held in 1D.
lead{ x }
Calling sequence
quantum{ cbr{ lead{ x = ... } } }
Properties
usage:
type: real number
values: no constraints
default:
unit:
Functionality
—
Note
Only needed for 1D.
lead{ kinetic_coupling }
Calling sequence
quantum{ cbr{ lead{ kinetic_coupling = ... } } }
Properties
usage:
type: real number
values:
(0.0, ...)
unit:
Dependencies
rel_kinetic_coupling
is not defined
Functionality
—
lead{ rel_kinetic_coupling }
Calling sequence
quantum{ cbr{ lead{ rel_kinetic_coupling = ... } } }
Properties
usage:
type: real number
values:
(0.0, ...)
default:
unit:
Dependencies
kinetic_coupling
is not defined
Functionality
—
min_energy
Calling sequence
quantum{ cbr{ min_energy = ... } }
Properties
usage:
type: real number
values: no constraints
default:
unit:
Dependencies
rel_min_energy
is not defined
Functionality
Lower boundary for transmission energy interval on an absolute energy scale
max_energy
Calling sequence
quantum{ cbr{ max_energy = ... } }
Properties
usage:
type: real number
values: no constraints
default:
unit:
Dependencies
rel_max_energy
is not defined
Functionality
Upper boundary for transmission energy interval on an absolute energy scale
rel_min_energy
Calling sequence
quantum{ cbr{ rel_min_energy = ... } }
Properties
usage:
type: real number
values: no constraints
default:
unit:
Dependencies
min_energy
is not defined
Functionality
Lower boundary for transmission energy interval relative to the lowest eigenvalue
rel_max_energy
Calling sequence
quantum{ cbr{ rel_max_energy = ... } }
Properties
usage:
type: real number
values: no constraints
default:
unit:
Dependencies
max_energy
is not defined
Functionality
Upper boundary for transmission energy interval relative to the highest eigenvalue
energy_resolution
Calling sequence
quantum{ cbr{ energy_resolution = ... } }
Properties
usage:
type: real number
values:
(0.0, ...)
default:
unit:
Functionality
This value determines the resolution of the transmission curve
transmission_threshold
Calling sequence
quantum{ cbr{ transmission_threshold = ... } }
Properties
usage:
type: real number
values:
[0.0, ...)
default:
unit:
Functionality
This value determines the resolution of the transmission curve
ildos
Calling sequence
quantum{ cbr{ ildos = ... } }
Properties
usage:
type: choice
values:
yes
orno
default:
no
Functionality
If set to yes
then outputs integrated local density of states.
ldos
Calling sequence
quantum{ cbr{ ldos = ... } }
Properties
usage:
type: choice
values:
yes
orno
default:
no
Functionality
If set to yes
then outputs local density of states.
output_ldos_single_file
Calling sequence
quantum{ cbr{ output_ldos_single_file = ... } }
Properties
usage:
type: choice
values:
yes
orno
default:
yes
Functionality
Outputs all LDOS data into a single large file.
Warning
Enabling ILDOS or LDOS can massively increase runtime and RAM usage in 2D and 3D simulations. Moreover, enabling LDOS also will rewrite huge amounts of data to disk in 2D and 3D simulations.
If your system environment cannot handle a huge number of files (e.g. you are using a slow hard disk instead of a SSD), outputting all LDOS data into a single large file (as set per default) is strongly recommended.
Please note that writing all LDOS data in one file is not possible in 3D simulations
or when output{ only_sections = yes }
is set (the respective flag is ignored then).
See output{ } for reference.
two_particle_options
Calling sequence
quantum{ cbr{ two_particle_options = [ ..., ..., ..., ..., ..., ..., ..., ..., ..., ..., ... ] } }
Properties
usage:
type: vector of 11 real numbers:
—
Functionality
Contains 11 values for two-particle model [number of states, relative permittivity, x1, y1, z1, x2, y2, z2, splitting, tunneling]
with units [ –, –, nm, nm, nm, nm, nm, nm, eV, eV ]. Constraint: number of states = 2
Last update: 17/04/2025