BandstructureCalibration

class BandstructureCalibration(band_structure_model, max_steps=20)

Fit a band structure model.

Parameters:
modelParameters()
Returns:The fitted band structure model parameters. The exact meaning of these values will vary based upon the model that is being fit.
Return type:array
nlprint(stream=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>)

Print sde and sband inputs.

Usage Example

Use the BandstructureCalibration object to fit nanowire band structure with effective mass model.

from SMW import *

# -------------------------------------------------------------
# Bulk Configuration
# -------------------------------------------------------------

# Set up lattice
lattice = SimpleTetragonal(35.4795916589*Angstrom, 5.4306*Angstrom)

# Define elements
elements = [Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
            Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
            Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
            Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
            Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
            Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
            Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
            Silicon, Silicon, Silicon, Hydrogen, Hydrogen, Hydrogen, Hydrogen,
            Hydrogen, Hydrogen, Hydrogen, Hydrogen, Hydrogen, Hydrogen,
            Hydrogen, Hydrogen, Hydrogen, Hydrogen, Hydrogen, Hydrogen,
            Hydrogen, Hydrogen, Hydrogen, Hydrogen, Hydrogen, Hydrogen,
            Hydrogen, Hydrogen, Hydrogen, Hydrogen, Hydrogen, Hydrogen,
            Hydrogen, Hydrogen]

# Define coordinates
fractional_coordinates = [[ 0.366070189147,  0.366070189147,  0.625         ],
                          [ 0.404335849391,  0.404335849391,  0.375         ],
                          [ 0.404335849391,  0.327804528904,  0.875         ],
                          [ 0.327804528904,  0.404335849391,  0.875         ],
                          [ 0.327804528904,  0.480867169878,  0.375         ],
                          [ 0.366070189147,  0.519132830122,  0.625         ],
                          [ 0.404335849391,  0.557398490365,  0.375         ],
                          [ 0.28953886866 ,  0.442601509635,  0.625         ],
                          [ 0.404335849391,  0.480867169878,  0.875         ],
                          [ 0.28953886866 ,  0.519132830122,  0.125         ],
                          [ 0.327804528904,  0.557398490365,  0.875         ],
                          [ 0.366070189147,  0.442601509635,  0.125         ],
                          [ 0.404335849391,  0.633929810853,  0.875         ],
                          [ 0.366070189147,  0.595664150609,  0.125         ],
                          [ 0.480867169878,  0.327804528904,  0.375         ],
                          [ 0.519132830122,  0.366070189147,  0.625         ],
                          [ 0.557398490365,  0.404335849391,  0.375         ],
                          [ 0.442601509635,  0.28953886866 ,  0.625         ],
                          [ 0.557398490365,  0.327804528904,  0.875         ],
                          [ 0.442601509635,  0.366070189147,  0.125         ],
                          [ 0.480867169878,  0.404335849391,  0.875         ],
                          [ 0.519132830122,  0.28953886866 ,  0.125         ],
                          [ 0.480867169878,  0.480867169878,  0.375         ],
                          [ 0.519132830122,  0.519132830122,  0.625         ],
                          [ 0.557398490365,  0.557398490365,  0.375         ],
                          [ 0.442601509635,  0.442601509635,  0.625         ],
                          [ 0.557398490365,  0.480867169878,  0.875         ],
                          [ 0.442601509635,  0.519132830122,  0.125         ],
                          [ 0.480867169878,  0.557398490365,  0.875         ],
                          [ 0.519132830122,  0.442601509635,  0.125         ],
                          [ 0.480867169878,  0.633929810853,  0.375         ],
                          [ 0.519132830122,  0.672195471096,  0.625         ],
                          [ 0.557398490365,  0.71046113134 ,  0.375         ],
                          [ 0.442601509635,  0.595664150609,  0.625         ],
                          [ 0.557398490365,  0.633929810853,  0.875         ],
                          [ 0.442601509635,  0.672195471096,  0.125         ],
                          [ 0.480867169878,  0.71046113134 ,  0.875         ],
                          [ 0.519132830122,  0.595664150609,  0.125         ],
                          [ 0.595664150609,  0.366070189147,  0.125         ],
                          [ 0.633929810853,  0.404335849391,  0.875         ],
                          [ 0.633929810853,  0.480867169878,  0.375         ],
                          [ 0.672195471096,  0.519132830122,  0.625         ],
                          [ 0.71046113134 ,  0.557398490365,  0.375         ],
                          [ 0.595664150609,  0.442601509635,  0.625         ],
                          [ 0.71046113134 ,  0.480867169878,  0.875         ],
                          [ 0.595664150609,  0.519132830122,  0.125         ],
                          [ 0.633929810853,  0.557398490365,  0.875         ],
                          [ 0.672195471096,  0.442601509635,  0.125         ],
                          [ 0.633929810853,  0.633929810853,  0.375         ],
                          [ 0.595664150609,  0.595664150609,  0.625         ],
                          [ 0.595664150609,  0.672195471096,  0.125         ],
                          [ 0.672195471096,  0.595664150609,  0.125         ],
                          [ 0.341986531553,  0.341986531553,  0.467654893179],
                          [ 0.380252191797,  0.303720871309,  0.032345106821],
                          [ 0.303720871309,  0.380252191797,  0.032345106821],
                          [ 0.265455211066,  0.41851785204 ,  0.467654893179],
                          [ 0.265455211066,  0.466685167229,  0.782345106821],
                          [ 0.265455211066,  0.495049172527,  0.967654893179],
                          [ 0.265455211066,  0.543216487716,  0.282345106821],
                          [ 0.303720871309,  0.58148214796 ,  0.717654893179],
                          [ 0.380252191797,  0.658013468447,  0.717654893179],
                          [ 0.341986531553,  0.619747808203,  0.282345106821],
                          [ 0.466685167229,  0.265455211066,  0.782345106821],
                          [ 0.41851785204 ,  0.265455211066,  0.467654893179],
                          [ 0.58148214796 ,  0.303720871309,  0.717654893179],
                          [ 0.543216487716,  0.265455211066,  0.282345106821],
                          [ 0.495049172527,  0.265455211066,  0.967654893179],
                          [ 0.533314832771,  0.734544788934,  0.217654893179],
                          [ 0.58148214796 ,  0.734544788934,  0.532345106821],
                          [ 0.41851785204 ,  0.696279128691,  0.282345106821],
                          [ 0.456783512284,  0.734544788934,  0.717654893179],
                          [ 0.504950827473,  0.734544788934,  0.032345106821],
                          [ 0.619747808203,  0.341986531553,  0.282345106821],
                          [ 0.658013468447,  0.380252191797,  0.717654893179],
                          [ 0.734544788934,  0.58148214796 ,  0.532345106821],
                          [ 0.734544788934,  0.533314832771,  0.217654893179],
                          [ 0.734544788934,  0.504950827473,  0.032345106821],
                          [ 0.734544788934,  0.456783512284,  0.717654893179],
                          [ 0.696279128691,  0.41851785204 ,  0.282345106821],
                          [ 0.658013468447,  0.658013468447,  0.532345106821],
                          [ 0.619747808203,  0.696279128691,  0.967654893179],
                          [ 0.696279128691,  0.619747808203,  0.967654893179]]

# Set up configuration
bulk_configuration = BulkConfiguration(
    bravais_lattice=lattice,
    elements=elements,
    fractional_coordinates=fractional_coordinates
    )

# Add tags
bulk_configuration.addTags('H_Si', [52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
                                    65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
                                    78, 79, 80, 81])

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
k_point_sampling = MonkhorstPackGrid(
    nc=5,
    )
numerical_accuracy_parameters = NumericalAccuracyParameters(
    density_mesh_cutoff=80.0*Hartree,
    k_point_sampling=k_point_sampling,
    )

calculator = LCAOCalculator(
    numerical_accuracy_parameters=numerical_accuracy_parameters,
    )

bulk_configuration.setCalculator(calculator)
nlprint(bulk_configuration)
bulk_configuration.update()
nlsave('Si_nanowire_100.hdf5', bulk_configuration)

# -------------------------------------------------------------
# Bandstructure
# -------------------------------------------------------------
bandstructure = Bandstructure(
    configuration=bulk_configuration,
    route=['G', 'Z'],
    points_per_segment=40
    )

# ----------------------------------------------------------------------------------------------
# Band structure fitting with Effective mass model
# ----------------------------------------------------------------------------------------------
# Define nanowire shape.
nanowire_shape = CircularNanowireParameters((1,0,0), 15 * Angstrom )

# Sband Model we are going to fit.
model = NanowireEffectiveMassModel(bandstructure, nanowire_shape_parameters=nanowire_shape)

# Initialization, with a max iteration = 20.
band_structure_fitting = BandstructureCalibration(model,20)

band_structure_fitting.nlprint()

bandstructure_calibration_example.py

By running this example. The Sde and SBand inputdeck with fitted parameters can be printed out with nlprint_c:

(define rSi (/ 0.0015 2))
(define tox  1.0e-3)
(define totalr (+ rSi tox))
(define totalr1 (+ totalr 0.1))
(sdegeo:set-default-boolean "BAB")

(sdegeo:create-circular-sheet (position 0 0 0)  rSi "Silicon" "si1" )
(sdegeo:create-circular-sheet (position 0 0 0)  totalr  "Oxide" "ox1" )
(sdegeo:create-circular-sheet (position 0 0 0)  (+ totalr 0.1)  "Metal" "gate" )

(sdegeo:define-contact-set "gate" 4  (color:rgb 1 0 0 ) "##" )
(sdegeo:set-current-contact-set "gate")
(sdegeo:set-contact-boundary-edges (list (car (find-body-id (position  (+ totalr 0.05) 0 0)))) "gate")
(sdegeo:delete-region (list (car (find-body-id (position (+ totalr 0.05) 0 0)))))

(sdedr:define-refeval-window       "Global" "Rectangle"  (position (* -1 totalr) (* -1 totalr) 0) (position totalr totalr  0))
(sdedr:define-refinement-size      "Global" (/ totalr 10) (/ totalr 10) 1 0.0005 0.0005 1 )
(sdedr:define-refinement-placement "Global" "Global" "Global" )

(sdedr:offset-global "maxlevel" 20)

sde_inputdeck.cmd

# Load Device
LoadDevice tdrFile=structure_msh.tdr

# Set orientation # Although with use of DeviceCoordEllipsoidal valley this is not really used by anything
set channelOrientation 100; # Can be 100, 110, or 111

if { $channelOrientation==100 } {
  set xAxis [list  1 1 0]
  set yAxis [list -1 1 0]
  set zAxis [list  0 0 1]
} elseif { $channelOrientation==110 } {
  set xAxis [list  0 0 1]
  set yAxis [list -1 1 0]
  set zAxis [list  1 1 0]
} elseif { $channelOrientation==111} {
  set xAxis [list  1 1 -2]
  set yAxis [list -1 1  0]
  set zAxis [list  1 1  1]
} else {
  puts "Invalid channelOrientation"

sband_inputdeck.cmd .. _BandstructureCalibration_notes:

Notes

The BandstructureCalibration class is designed to extract SBand parameters from first principle calculations of nanostructures. Current implementation supports parameters extraction for effective mass model and six band “k.p” model. During the extraction, Sband will be called. The Sband and Sde inputdeck with fitted parameters can be obtained by nlprint().

The Sband parameters extraction is done in two steps.

1. Standard first principle calculation of a nanowire. The shape of nanowire can be circular or rectangular.

2. Define BandstructureCalibration object to extract the band parameters. The geometric parameters of nanowires are specified by classes CircularNanowireParameters and RectangularNanowireParameters. The band model considered in Sband can be specified by classes NanowireEffectiveMassModel, or NanowireKDotPModel.