$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 nextnano++.