Eötvös Quantum Utilities  v4.9.146
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  ret = struct();
54 
55 elseif strcmp( name, 'lead_param')
56  ret = struct();
57 
58 elseif strcmp( name, 'Opt')
59  %> Structure Opt contains the basic computational parameters used in EQuUs
60  ret = struct( ... name: Opt
61  ... %> Set 1 in order to supress output messages.
62  'Silent', true,...
63  ... %> Set 1 to use the Bogoliubov de Gennes model, 0 (default) for normal systems.
64  'BdG',[],...
65  ... %> Obsolete parameter
66  'Just_Create_Hamiltonians',[],...
67  ... %> Set true if a magnetic field is involved in the calculations, false (default) otherwise.
68  'magnetic_field',[],...
69  ... %> Set true (default) if a magnetic field is translational invariant along the scattering center, or false otherwise.
70  'magnetic_field_trans_invariant',[],...
71  ... %> String containining a bult-in vector potential. Possible values are: 'LandauX', 'LandauY'
72  'gauge',[],...
73  ... %> 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.
74  'eta',[],...
75  ... %> 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.
76  'Linear_Regression_in_B',[],...
77  ... %> 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).
78  'Simple_Green_Function',[],...
79  ... %> String describing the preprogrammed lattice type. See the documentation of lattice types for details
80  'Lattice_Type',[], ...
81  ... %> Number of leads attached to the scattering region.
82  'NofLeads',[],...
83  ... %> Obsolete parameter
84  'Decimate_only_Dyson',[],...
85  ... %> The maximal number of the sites to be decimated at once.
86  'Decimation_block',[],...
87  ... %> Option for using decimation algorith. (see more details at the documenatation of class Decimation)
88  'Decimation',[],...
89  ... %> Set 1 to use dual modes in the calculations, or 0 to use the left and right sided eigenvectors instead.
90  'usingDualModes',[], ...
91  ... %> Set 1 to export debug informations into the debug.txt file, or 0 otherwise.
92  'debug', [],...
93  ... %> Number of workers in the parallel pool.
94  'workers', [], ...
95  ... %> Set 'siesta' to import Hamiltonians from Siesta, 'custom' to use custom defined Hamiltonians.
96  'custom_Hamiltonians', [],...
97  ... %> Set 1 to use 1/2 spin degree of freedom in the Hamiltonians, or 0 otherwise.
98  'Spin', []...
99  );
100 
101 elseif strcmp( name, 'coordinates')
102  ret = Coordinates();
103 
104 elseif strcmp( name, 'shape')
105  %> Structure shape contains data about the geometry of the scattering region.
106  ret = struct( ... name: shape
107  ... %> The number of sites in the cross section.
108  'width',[],...
109  ... %> Number of unit cells along the logitudinal direction in the scattering region.
110  'height',[] ...
111  );
112 
113 elseif strcmp( name, 'scatterers')
114  %> Structure scatterers contains data on the scattering impurities used in class antidot
115  ret = struct( ... name: scatterers
116  ... %> A vector of slab indexes in the ribbon.
117  'z',[],...
118  ... %> A vector of site indexes in the slabs.
119  'zpoints',[],...
120  ... %> A vector of the on-site potentials.
121  'potentials',[],...
122  ... %> A vector of the site indexes
123  'siteindexes',[],...
124  ... %> Set true if the given sites are about to remove from the lattice.
125  'aremissing',[]...
126  );
127 
128 elseif strcmp( name, 'BandWidth')
129  %> Structure BandWidth describes the bandwidth in the lead and in the scattering center.
130  ret = struct( ... name: BandWidth
131  ... %> An instance of the structure @BandWidthLimits for the lead.
132  'Lead',[],...
133  ... %> An instance of the structure @BandWidthLimits for the scattering region.
134  'Scatter',[]...
135  );
136 
137 elseif strcmp( name, 'BandWidthLimits')
138  %> Structure BandWidthLimits contains the bandwidth limits.
139  ret = struct( ... name: BandWidthLimits
140  ... %> The minimal value of the energy band.
141  'Emin',[],...
142  ... %> The maximal value of the energy band.
143  'Emax',[]...
144  );
145 
146 elseif strcmp( name, 'Atom')
147  %> Structure Atom contains the atomic identifiers of the sites.
148  ret = struct( ... name: Atom
149  ... %> Identification number of the principal layer containing the atom.
150  'PL', [],...
151  ... %> Identification number of the atom.
152  'Id', []...
153  );
154  ret.PL = cell(0);
155  ret.Id = cell(0);
156 
157 elseif strcmp( name, 'open_channels')
158  %> Structure open_channels describes the open channel in the individual leads.
159  ret = struct( ... name: open_channels
160  ... %> Number of open channels.
161  'num', [],...
162  ... %> Logical indexes of incoming electron-like channels.
163  'BdG_u_incoming', [],...
164  ... %> Logical indexes of outgoing electron-like channels.
165  'BdG_u_outgoing', [],...
166  ... %> true of the system is superconducting, false otherwise.
167  'isSuperconducting', [],...
168  ... %> Logical indexes of ingoing channels.
169  'open_channels_p', [],...
170  ... %> Logical indexes of outgoing channels.
171  'open_channels_m', []...
172  );
173 
174 elseif strcmp( name, 'junction_sites')
175  %> Structure junction_sites contains data to identify the individual sites of the leads, the interface regions and the scattering region in a matrix.
176  ret = struct( ... name: junction_sites
177  ... %> Structure @sites describing the geometry of the leads.
178  'Leads', [],... type: sites
179  ... %> Structure @sites describing the geometry of the scattering region.
180  'Scatter', [],... type: sites
181  ... %> Structure @sites describing the geometry of the interface regions.
182  'Interface', []... type: sites
183  );
184 
185 elseif strcmp( name, 'sites')
186  %> Structure sites contains data to identify the individual sites in a matrix.
187  ret = struct( ... name: sites
188  ... %> An instance of structure @coordinates describing the geometry.
189  'coordinates', [],...
190  ... %> An array containing the site indexes of the given system part.
191  'site_indexes', []...
192  );
193 
194 elseif strcmp( name, 'DOS')
195  %> Structure containg the energy resolved density of states
196  ret = struct( ... name: DOS
197  ... %> Array of the density of states values
198  'DOSvec', [],...
199  ... %> Array of the enrgy points
200  'Evec', [] ...
201  );
202 
203 elseif strcmp( name, 'LocalDOS')
204  %> Structure containg the local density of states at a given energy point
205  ret = struct( ... name: LocalDOS
206  ... %> Array of the density of states values
207  'DOSvec', [],...
208  ... %> A structure containing the coordinates of the sites
210  ... %> The energy point
211  'Energy', [] ...
212  );
213 
214 elseif strcmp( name, 'WaveFnc')
215  %> Structure containg datat on the calculated eigenstate in a translational invariant lead.
216  ret = struct( ... name: WaveFnc
217  ... %> Cell array containing the individual wave functions.
218  'WaveFnc', [], ...
219  ... %> Cell array containing the individual k-pints.
220  'ka', cell(length(ka_vec),1), ...
221  ... %> Cell array containing the individual energies.
222  'E', cell(length(ka_vec),1) ...
223  );
224 
225 else
226  err = MException('structure:name', 'Unrecognized structure name');
227  save('structure.mat');
228  throw(err);
229 end
230 
231 
232 
233 end
234 
235 
236 
237 
238 
Structure Atom contains the atomic identifiers of the sites.
Definition: structures.m:148
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:60
Structure open_channels describes the open channel in the individual leads.
Definition: structures.m:159
Structure shape contains data about the geometry of the scattering region.
Definition: structures.m:106
Structure containg the local density of states at a given energy point.
Definition: structures.m:205
function Transport(Energy, B)
Calculates the conductance at a given energy value.
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 containg the energy resolved density of states.
Definition: structures.m:196
Structure scatterers contains data on the scattering impurities used in class antidot.
Definition: structures.m:115
Property height
height (length) of the scattering region (number of unit cells)
Definition: Ribbon.m:51
A class to calculate the Green functions and self energies of a translational invariant lead The nota...
Definition: Lead.m:29
function()
Property width
width of the scattering region (number of the nonsingular atomic sites in the cross section)
Definition: Ribbon.m:48
Structure BandWidthLimits contains the bandwidth limits.
Definition: structures.m:139
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:130
Structure sites contains data to identify the individual sites in a matrix.
Definition: structures.m:187
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:216
Property E
The energy used in the calculations.
Definition: NTerminal.m:55
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,...
Definition: structures.m:176