$magnetic-field

One can apply a magnetic field only for 2D and 3D simulations. For 1D simulations this is not possible.

$magnetic-field                                         optional
  magnetic-field-on                     character       required
  magnetic-field-strength               double          required
  magnetic-field-direction              integer_array   required

  magnetic-field-sweep-active           character       optional
  magnetic-field-sweep-step-size        double          optional
  magnetic-field-sweep-number-of-steps  integer         optional

  output-magnetic-vector-potential      character       optional
  exclude-region-cluster-numbers        integer_array   optional
$end_magnetic-field                                     optional

Example

!-------------------------------------------------!
$magnetic-field                                   !
 magnetic-field-on                    = yes       ! yes/no
 magnetic-field-strength              = 4.0       ! [T]
 magnetic-field-direction             = 0 0 1     ! along z direction
                                                  !
 output-magnetic-vector-potential     = yes       ! yes/no
 exclude-region-cluster-numbers       = 2 3       !
$end_magnetic-field                               !
!-------------------------------------------------!

Here, a magnetic field of 4 T is applied.

magnetic-field-on
type

character

presence

required

options

yes or no

default

no

Flag for switching magnetic field on or off.

magnetic-field-strength
type

double

unit

[T]

example

2.5

The magnetic field strength refers to the magnetic flux density \(\mathbf{B}\) which has the SI unit [T] = [Vs/m^2]. Note that the SI unit for the magnetic field strength \(\mathbf{H}\) is [A/m]. It is possible to specify a negative value which inverts the vector specified here: magnetic-field-direction

magnetic-field-direction
type

integer array of dimension 3

example

0 0 1

The 3 (integer) indices \(x\), \(y\), \(z\) of a vector \(\mathbf{x}=(x,y,z)\) which is parallel to the magnetic field vector.

The direction of the magnetic field must be perpendicular to simulation orientation, e.g. if

!------------------------------------!
$simulation-dimension                !
 dimension                = 2        !
 orientation              = 0 1 1    ! simulation in (y,z) plane
$end_simulation-dimension            !
!------------------------------------!

then the magnetic field direction must be

magnetic-field-direction = 1 0 0     ! along x direction

For a 3D simulation, the magnetic field can have any direction. The vector \(\mathbf{B}\) must be specified with respect to the xyz simulation system, i.e. you cannot specify the four-digit Miller-Bravais indices as in the case for wurtzite. It is with respect to the x, y and z coordinate axes that were specified under $domain-coordinates: If not specified, default values specified in database_nn3.in are taken.

x y z  :=  hkl-x-direction-zb, hkl-y-direction-zb, hkl-z-direction-zb

or

x y z  :=  hkil-x-direction,   hkil-y-direction,   hkil-z-direction

(optional, only needed for magnetic field sweep)

output-magnetic-vector-potential
type

character

options

yes or no

default

no

The magnetic vector potential \(\mathbf{A}(x,y,z)\) is defined with respect to the symmetric gauge: \(\mathbf{A}(\mathbf{r}) = - 1/2 (\mathbf{r} \times \mathbf{B})\).

exclude-region-cluster-numbers
type

integer array

example

2 4

Here, cluster numbers 2 and 4 are exempted from magnetic field, i.e. B=0. This is useful for Aharonov–Bohm effect (not fully implemented yet).

Magnetic field sweep

It is possible to sweep over the magnetic field strength, i.e. to vary the strength of the magnetic field stepwise. This is similar to electric field sweeps ($electric-field), voltage sweeps ($voltage-sweep) and doping concentration sweeps ($doping-function).

magnetic-field-sweep-active
type

character

options

yes or no

default

no

Specify yes if you want to sweep over several values of the magnetic field.

magnetic-field-sweep-size
type

double

example

0.5

example

[T]

Here, the magnetic field increases in steps of 0.5 [T]. A negative value can be used to decrease the magnetic field.

magnetic-field-sweep-number-of-steps
type

integer

example

10

Specify here the number of steps for the magnetic field sweep.

Example

!-------------------------------------------------!
$magnetic-field                                   !
 magnetic-field-on                    = yes       ! yes/no
 magnetic-field-strength              = 0.0       ! [T]
 magnetic-field-direction             = 0 0 1     ! along z direction
                                                  !
 magnetic-field-sweep-active          = yes       ! yes/no
 magnetic-field-sweep-step-size       = 0.5       ! [T]
 magnetic-field-sweep-number-of-steps = 10        !
$end_magnetic-field                               !
!-------------------------------------------------!

Here, the magnetic field increases from 0 [T] to 5 [T] in steps of 0.5 [T], i.e. 11 simulations are performed.

The output is labeled with _ind000.dat, _ind001.dat, _ind002.dat, … where the index refers to the number of the magnetic field sweep step.

The output for the eigenvalues as a function of applied magnetic field can be found here: magnetic_ev_vb1_qc1_sg1_deg1.dat.

In this particular example, the heavy hole valence band edge energies (vb1) have been written out as a function of magnetic field. The first column contains the strength of the magnetic field in units of [T]. The second column contains the 1st eigenvalue for the specified electric field in units of [eV], the third column contains the 2nd eigenvalue for the specified electric field in units of [eV], …

Note

The magnetic field is only implemented for the single-band effective mass model but not for the multi-band \(\mathbf{k} \cdot \mathbf{p}\) model. For the combination of \(\mathbf{k} \cdot \mathbf{p}\) and magnetic field, please use the nextnano++ software.