Eötvös Quantum Utilities  v4.8.128
Providing the Horsepowers in the Quantum Realm
structures.m
Go to the documentation of this file.
1 %% Eotvos Quantum Transport Utilities - structures
2 % Copyright (C) 2009-2015 Peter Rakyta, Ph.D.
3 %
4 % This program is free software: you can redistribute it and/or modify
5 % it under the terms of the GNU General Public License as published by
6 % the Free Software Foundation, either version 3 of the License, or
7 % (at your option) any later version.
8 %
9 % This program is distributed in the hope that it will be useful,
10 % but WITHOUT ANY WARRANTY; without even the implied warranty of
11 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 % GNU General Public License for more details.
13 %
14 % You should have received a copy of the GNU General Public License
15 % along with this program. If not, see http://www.gnu.org/licenses/.
16 %
17 % This function creates a data structure used by EQuUs. (since EQuUs v4.5)
18 %%
19 function ret = structures( name )
20 
21 if strcmp( name, 'hole')
22  %> Structure hole contains the data about the antidot used in class antidot
23  ret = struct( ... name: hole
24  ... %> An instance of structure @coordinates containing the coordinates of the center.
25  'center', [], ... type: coordinates
26  ... %> The radius of the hole in the units of the lattice constant.
27  'radius',[] ...
28  );
29 
30  ret.center = structures('coordinates');
31 
32 elseif strcmp( name, 'circle')
33  %> Structure circle contains data describing a circle shaped area positioned in a two-dimensional space
34  ret = struct( ... name: circle
35  ... %> An instance of structure @coordinates containing the coordinates of the center.
36  'center', [], ... type: coordinates
37  ... %> The radius of the circle .
38  'radius',[] ...
39  );
40 
41  ret.center = structures('coordinates');
42 
43 elseif strcmp( name, 'param')
44  %> Structure param contains data structures describing the physical parameters of the scattering center and the leads.
45  ret = struct( ... name: param
46  ... %> An instance of the structure @scatter_param containing the physical parameters for the scattering region.
47  'scatter',[], ...type: scatter_param
48  ... %> A list of structures @lead_param containing the physical parameters for the scattering region.
49  'Leads',[] ... type: lead_param
50  );
51 
52 elseif strcmp( name, 'scatter_param') %NEW vargamma2
53  %> Structure scatter_param contains the physical parameters describing the scattering region.
54  ret = struct( ... name: scatter_param
55  ... %> A physical parameter, see the individual lattice documentations for details
56  'epsilon',[], ...
57  ... %> A physical parameter, see the individual lattice documentations for details
58  'vargamma',[],...
59  ... %> A physical parameter, see the individual lattice documentations for details
60  'SOintrinsic',[],...
61  ... %> A physical parameter, see the individual lattice documentations for details
62  'deltaAB',[], ...
63  ... %> A physical parameter, see the individual lattice documentations for details
64  'SO_rashba_intrinsic',[], ...
65  ... %> A physical parameter, see the individual lattice documentations for details
66  'pair_potential',[], ...
67  ... %> A physical parameter, see the individual lattice documentations for details
68  'vargamma1', [], ...
69  ... %> A physical parameter, see the individual lattice documentations for details
70  'vargamma2',[], ...
71  ... %> A physical parameter, see the individual lattice documentations for details
72  'vargamma3', [], ...
73  ... %> An instance of structure @shape describing the geometry of the scattering region.
74  'shape',[], ... type: shape
75  ... %> A physical parameter, see the individual lattice documentations for details
76  'End_Type',[], ...
77  ... %> String containing the filename of the external Hamiltonain source (see Custom_Hamiltonians for details)
78  'FileName', [], ...
79  ... %> Cell array of structure @Atom.
80  'Atom', [] ... type: Atom
81  );
82 
83 elseif strcmp( name, 'lead_param') %NEW vargamma2
84  %> Structure containing the physical parameters describing a given lead.
85  ret = struct( ... name: lead_param
86  ... %> A physical parameter, see the individual lattice documentations for details
87  'epsilon',[], ...
88  ... %> A physical parameter, see the individual lattice documentations for details
89  'vargamma',[], ...
90  ... %> A physical parameter, see the individual lattice documentations for details
91  'SOintrinsic',[], ...
92  ... %> A physical parameter, see the individual lattice documentations for details
93  'deltaAB',[], ...
94  ... %> A physical parameter, see the individual lattice documentations for details
95  'SO_rashba_intrinsic',[], ...
96  ... %> A physical parameter, see the individual lattice documentations for details
97  'pair_potential',[], ...
98  ... %> A physical parameter, see the individual lattice documentations for details
99  'vargamma1', [], ...
100  ... %> A physical parameter, see the individual lattice documentations for details
101  'vargamma2', [], ...
102  ... %> A physical parameter, see the individual lattice documentations for details
103  'vargamma3', [], ...
104  ... %> A physical parameter, see the individual lattice documentations for details
105  'vargamma_sc', [], ...
106  ... %> Orientation of the lead. Set +1 (default) is the "incoming" direction of the propagating states is defined in the +x or +y direction, and "-1" otherwise.
107  'Lead_Orientation',[], ...
108  ... %> The number of regular sites in the cross section of one unit cell in the lead.
109  'M', [], ...
110  ... %> A physical parameter, see the individual lattice documentations for details
111  'End_Type',[], ...
112  ... %> String containing the filename of the external Hamiltonain source (see Custom_Hamiltonians for details)
113  'FileName', [], ...
114  ... %> Cell array of structure @Atom.
115  'Atom', [] ... type: Atom
116  );
117 
118 elseif strcmp( name, 'Opt')
119  %> Structure Opt contains the basic computational parameters used in EQuUs
120  ret = struct( ... name: Opt
121  ... %> Set 1 in order to supress output messages.
122  'Silent', true,...
123  ... %> Set 1 to use the Bogoliubov de Gennes model, 0 (default) for normal systems.
124  'BdG',[],...
125  ... %> Obsolete parameter
126  'Just_Create_Hamiltonians',[],...
127  ... %> Set true if a magnetic field is involved in the calculations, false (default) otherwise.
128  'magnetic_field',[],...
129  ... %> Set true (default) if a magnetic field is translational invariant along the scattering center, or false otherwise.
130  'magnetic_field_trans_invariant',[],...
131  ... %> String containining a bult-in vector potential. Possible values are: 'LandauX', 'LandauY'
132  'gauge',[],...
133  ... %> Scalar value representing the strength of the bult-in vector potential: \f$ \eta = ea^2B/\hbar \f$ with \f$a\f$ standing for the atom-atom distance.
134  'eta',[],...
135  ... %> Set 1 to use linear interpolation for the vector potential between the atomic sites to calculate the Peierls phases. Useful when dealing with a homogeneous magnetic field.
136  'Linear_Regression_in_B',[],...
137  ... %> Set 1 if a simple analytical surface greens function computational method is about to be used, 0 otherwise (Only for square lattice without magnetic field).
138  'Simple_Green_Function',[],...
139  ... %> String describing the preprogrammed lattice type. See the documentation of lattice types for details
140  'Lattice_Type',[], ...
141  ... %> Number of leads attached to the scattering region.
142  'NofLeads',[],...
143  ... %> Obsolete parameter
144  'Decimate_only_Dyson',[],...
145  ... %> The maximal number of the sites to be decimated at once.
146  'Decimation_block',[],...
147  ... %> Option for using decimation algorith. (see more details at the documenatation of class Decimation)
148  'Decimation',[],...
149  ... %> Set 1 to use dual modes in the calculations, or 0 to use the left and right sided eigenvectors instead.
150  'usingDualModes',[], ...
151  ... %> Set 1 to export debug informations into the debug.txt file, or 0 otherwise.
152  'debug', [],...
153  ... %> Number of workers in the parallel pool.
154  'workers', [], ...
155  ... %> Set 'siesta' to import Hamiltonians from Siesta, 'custom' to use custom defined Hamiltonians.
156  'custom_Hamiltonians', [],...
157  ... %> Set 1 to use 1/2 spin degree of freedom in the Hamiltonians, or 0 otherwise.
158  'Spin', []...
159  );
160 
161 elseif strcmp( name, 'coordinates')
162  ret = Coordinates();
163 
164 elseif strcmp( name, 'shape')
165  %> Structure shape contains data about the geometry of the scattering region.
166  ret = struct( ... name: shape
167  ... %> The number of sites in the cross section.
168  'width',[],...
169  ... %> Number of unit cells along the logitudinal direction in the scattering region.
170  'height',[] ...
171  );
172 
173 elseif strcmp( name, 'scatterers')
174  %> Structure scatterers contains data on the scattering impurities used in class antidot
175  ret = struct( ... name: scatterers
176  ... %> A vector of slab indexes in the ribbon.
177  'z',[],...
178  ... %> A vector of site indexes in the slabs.
179  'zpoints',[],...
180  ... %> A vector of the on-site potentials.
181  'potentials',[],...
182  ... %> A vector of the site indexes
183  'siteindexes',[],...
184  ... %> Set true if the given sites are about to remove from the lattice.
185  'aremissing',[]...
186  );
187 
188 elseif strcmp( name, 'BandWidth')
189  %> Structure BandWidth describes the bandwidth in the lead and in the scattering center.
190  ret = struct( ... name: BandWidth
191  ... %> An instance of the structure @BandWidthLimits for the lead.
192  'Lead',[],...
193  ... %> An instance of the structure @BandWidthLimits for the scattering region.
194  'Scatter',[]...
195  );
196 
197 elseif strcmp( name, 'BandWidthLimits')
198  %> Structure BandWidthLimits contains the bandwidth limits.
199  ret = struct( ... name: BandWidthLimits
200  ... %> The minimal value of the energy band.
201  'Emin',[],...
202  ... %> The maximal value of the energy band.
203  'Emax',[]...
204  );
205 
206 elseif strcmp( name, 'Atom')
207  %> Structure Atom contains the atomic identifiers of the sites.
208  ret = struct( ... name: Atom
209  ... %> Identification number of the principal layer containing the atom.
210  'PL', [],...
211  ... %> Identification number of the atom.
212  'Id', []...
213  );
214  ret.PL = cell(0);
215  ret.Id = cell(0);
216 
217 elseif strcmp( name, 'open_channels')
218  %> Structure open_channels describes the open channel in the individual leads.
219  ret = struct( ... name: open_channels
220  ... %> Number of open channels.
221  'num', [],...
222  ... %> Logical indexes of incoming electron-like channels.
223  'BdG_u_incoming', [],...
224  ... %> Logical indexes of outgoing electron-like channels.
225  'BdG_u_outgoing', [],...
226  ... %> true of the system is superconducting, false otherwise.
227  'isSuperconducting', [],...
228  ... %> Logical indexes of ingoing channels.
229  'open_channels_p', [],...
230  ... %> Logical indexes of outgoing channels.
231  'open_channels_m', []...
232  );
233 
234 elseif strcmp( name, 'junction_sites')
235  %> Structure junction_sites contains data to identify the individual sites of the leads, the interface regions and the scattering region in a matrix.
236  ret = struct( ... name: junction_sites
237  ... %> Structure @sites describing the geometry of the leads.
238  'Leads', [],... type: sites
239  ... %> Structure @sites describing the geometry of the scattering region.
240  'Scatter', [],... type: sites
241  ... %> Structure @sites describing the geometry of the interface regions.
242  'Interface', []... type: sites
243  );
244 
245 elseif strcmp( name, 'sites')
246  %> Structure sites contains data to identify the individual sites in a matrix.
247  ret = struct( ... name: sites
248  ... %> An instance of structure @coordinates describing the geometry.
249  'coordinates', [],...
250  ... %> An array containing the site indexes of the given system part.
251  'site_indexes', []...
252  );
253 
254 elseif strcmp( name, 'DOS') %NEW
255  %> Structure containg the energy resolved density of states
256  ret = struct( ... name: DOS
257  ... %> Array of the density of states values
258  'DOSvec', [],...
259  ... %> Array of the enrgy points
260  'Evec', [] ...
261  );
262 
263 elseif strcmp( name, 'WaveFnc')
264  %> Structure containg datat on the calculated eigenstate in a translational invariant lead.
265  ret = struct( ... name: WaveFnc
266  ... %> Cell array containing the individual wave functions.
267  'WaveFnc', [], ...
268  ... %> Cell array containing the individual k-pints.
269  'ka', cell(length(ka_vec),1), ...
270  ... %> Cell array containing the individual energies.
271  'E', cell(length(ka_vec),1) ...
272  );
273 
274 else
275  err = MException('structure:name', 'Unrecognized structure name');
276  save('structure.mat');
277  throw(err);
278 end
279 
280 
281 
282 end
283 
284 
285 
286 
287 
Structure Atom contains the atomic identifiers of the sites.
Definition: structures.m:208
Structure hole contains the data about the antidot used in class antidot.
Definition: structures.m:23
Structure circle contains data describing a circle shaped area positioned in a two-dimensional space...
Definition: structures.m:34
Structure Opt contains the basic computational parameters used in EQuUs.
Definition: structures.m:120
Structure open_channels describes the open channel in the individual leads.
Definition: structures.m:219
Structure shape contains data about the geometry of the scattering region.
Definition: structures.m:166
Structure scatter_param contains the physical parameters describing the scattering region...
Definition: structures.m:54
Atom Atom
Cell array of structure Atom.
Definition: structures.m:80
function Transport(Energy, B)
creating the Ribbon class representing the twoterminal setup
function Hamiltonians(varargin)
Function to create the custom Hamiltonians for the 1D chain.
A class to perform transport calculations on a graphene antidot (i.e., a hollow in a ribbon)...
Definition: antidot.m:24
A class providing function handle to reduce the number of sites in the Hamiltonian via decimation pro...
Definition: Decimation.m:29
Structure containing the physical parameters describing a given lead.
Definition: structures.m:85
Structure containg the energy resolved density of states.
Definition: structures.m:256
Structure scatterers contains data on the scattering impurities used in class antidot.
Definition: structures.m:175
A class to import custom Hamiltonians provided by other codes or created manually ...
A class to calculate the Green functions and self energies of a translational invariant lead The nota...
Definition: Lead.m:29
Structure BandWidthLimits contains the bandwidth limits.
Definition: structures.m:199
Property B
The strength of the magnetic field in Tesla.
Definition: antidot.m:52
Structure param contains data structures describing the physical parameters of the scattering center ...
Definition: structures.m:45
Property coordinates
an instance of structure structures
Definition: antidot.m:55
Structure BandWidth describes the bandwidth in the lead and in the scattering center.
Definition: structures.m:190
Structure sites contains data to identify the individual sites in a matrix.
Definition: structures.m:247
A class responsible for the Peierls and gauge transformations.
Definition: Peierls.m:24
Structure containg datat on the calculated eigenstate in a translational invariant lead...
Definition: structures.m:265
Structure containing the coordinates and other quantum number identifiers of the sites in the Hamilto...
Definition: Coordinates.m:24
function structures(name)
Structure junction_sites contains data to identify the individual sites of the leads, the interface regions and the scattering region in a matrix.
Definition: structures.m:236
Atom Atom
Cell array of structure Atom.
Definition: structures.m:115