Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alexbuccheri/matlab-tight-binding
Matlab program for fitting the bulk parameters of the nearest neighbour sp3s* tight-binding model
https://github.com/alexbuccheri/matlab-tight-binding
Last synced: about 1 month ago
JSON representation
Matlab program for fitting the bulk parameters of the nearest neighbour sp3s* tight-binding model
- Host: GitHub
- URL: https://github.com/alexbuccheri/matlab-tight-binding
- Owner: AlexBuccheri
- Created: 2017-06-29T19:17:55.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-06-29T19:53:29.000Z (over 7 years ago)
- Last Synced: 2024-10-28T10:28:30.039Z (3 months ago)
- Language: Matlab
- Homepage:
- Size: 15.6 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
Awesome Lists containing this project
README
Matlab Implementation of the semi-empirical sp3s* tight-binding model for fitting parameters
Alexander Buccheri. December 2016 - June 2017Description
This program provides a simple means of fitting bulk tight-binding parameters for the sp3s* model.
The Hamiltonian can be constructed and solved either in the absence or presence of spin-orbit coupling.
Fitting is done using the orthogonal NN tight-binding model band structure as the 'target'
The main point of the program is to be able to apply a scissor shift to this gap and therefore modify the
input bulk parameters to either a) change the bulk band gap or b) adjust the parameters following the introduction
of spin-orbit coupling.One could therefore use a 'target' band structure generated by alternative means.
Parameter fitting minimises a fit value defined in genf.m using the matlab function fminsearch.
This uses a simplex algorithm which finds a local minimum of the function (i.e. not great but sufficient for
small modifications to a parameter set).The code evaluates RMS error of the fitted bands, the bulk band gap, zone-centre splitting and effective masses
against the initial values. It also auto-generates a gnuplot script to compare the band structures generated
with the initial and new parameter sets. I.e. type " load 'compare.p' " in gnuplot to run.Things to Address
Spin-orbit parameters are not included in the fit, and are only defined for CdSe and CdS.
File Descriptions:
itr_fit.m Main calling programUser variables:
ic Material index. Can take a value of 1 to 19, with the indices corresponding to the materials:
C,Si,Ge,Sn,SiC,AlP,AlAs,AlSb,GaP,GaAs,GaSb,InP,InAs,InSb,ZnSe,ZnTe,CdS,ZnS,CdSe
spin Spin states: 1 or 2. The latter introduces spin-orbit coupling (defined in get_mat.param.m)nkpt Number of k-points used to sample each k-vector of the BZ. >1
Eg_ideal Target bulk band gap for generated parameter set (eV)
b_weight Weighting associated with each bulk band's contribution to the fit value
Values are relative. Higher conduction bands are junk, so one can use lower values
for their weights. (i.e. bands 7-10 (13-20) without spin-orbit (with spin-orbit)).Nr Number of parameter sets generated. One can randomise seed parameters for use in fitting
and run Nr fits i.e. brute-force.