2 % Copyright (C) 2018 Peter Rakyta, Ph.D.
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.
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.
14 % You should have received a copy of the GNU General Public License
15 % along with
this program. If not, see http:
17 %> @addtogroup filters Filters
25 %> @
return [1] An instance of structure #
Opt 26 %> @
return [2] An instance of structure #
param 29 filename = mfilename(
'fullpath');
30 [directory, fncname] = fileparts( filename );
33 % checking the number of leads
35 Opt.NofLeads = length(
param.Leads );
36 elseif length(
param.Leads ) >
Opt.NofLeads
37 warning(['EQuUs:Filters:', fncname], 'Structure
param contains more leads as structure
Opt. Reducing number of leads');
38 elseif length(
param.Leads ) <
Opt.NofLeads
39 error(['EQuUs:Filters:', fncname], 'Structure
param contains less leads as structure
Opt.');
43 % checking the lattice type
44 if isempty(
Opt.Lattice_Type )
45 if isempty(
Opt.custom_Hamiltonians )
50 Lattice_Type =
Opt.Lattice_Type;
51 custom_Hamiltonians =
Opt.custom_Hamiltonians;
54 for idx = 1:length(
param.Leads )
56 % handling obsolete XML parameter 'orientation'
57 if isfield(
param.Leads{idx},
'orientation' )
66 % check data consistency like LeadNum, orientation VS Lead_orientation
70 %> @brief Convert structure
param relsted to the scattering region to system specific structure.
72 %> @
return Returns with the system specific strucutre #
param_scatter 75 if strcmpi(custom_Hamiltonians,
'Siesta')
77 elseif strcmpi(custom_Hamiltonians, 'yaehmop')
79 elseif strcmpi(Lattice_Type, 'Square')
81 elseif strcmpi(Lattice_Type, 'SSH')
83 elseif strcmp(Lattice_Type, 'Lieb')
85 elseif strcmp(Lattice_Type, 'BiTeI')
87 elseif strcmp(Lattice_Type, 'Graphene')
89 elseif strcmpi(Lattice_Type, 'Graphene_Bilayer')
91 elseif strcmpi(Lattice_Type, 'Graphene_Bilayer_2')
93 elseif strcmpi(Lattice_Type, 'Graphene_Bilayer_3')
95 elseif strcmpi(Lattice_Type, 'Silicene')
97 elseif strcmpi(Lattice_Type, 'Triangle')
99 elseif strcmpi(Lattice_Type, 'TMDC_Monolayer')
101 elseif strcmpi(Lattice_Type, 'TMDC_Monolayer_SOC')
103 elseif strcmpi(Lattice_Type, 'TMDC_Bilayer_SOC')
105 elseif isempty(Lattice_Type)
109 param_fieldnames = fieldnames(
param );
110 for iidx = 1:length( param_fieldnames )
111 fieldname = param_fieldnames{iidx};
113 if ~isfield( param_in, fieldname )
117 param.(fieldname) = param_in.(fieldname);
124 %> @brief Convert structure
param relsted to the scattering region to system specific structure.
126 %> @
return Returns with the system specific strucutre #
param_Lead 129 if strcmpi(custom_Hamiltonians,
'Siesta')
131 elseif strcmpi(custom_Hamiltonians, 'yaehmop')
133 elseif strcmpi(Lattice_Type, 'Square')
135 elseif strcmpi(Lattice_Type, 'SSH')
137 elseif strcmp(Lattice_Type, 'Lieb')
139 elseif strcmp(Lattice_Type, 'BiTeI')
141 elseif strcmp(Lattice_Type, 'Graphene')
143 elseif strcmpi(Lattice_Type, 'Graphene_Bilayer')
145 elseif strcmpi(Lattice_Type, 'Graphene_Bilayer_2')
147 elseif strcmpi(Lattice_Type, 'Graphene_Bilayer_3')
149 elseif strcmpi(Lattice_Type, 'Silicene')
151 elseif strcmpi(Lattice_Type, 'Triangle')
153 elseif strcmpi(Lattice_Type, 'TMDC_Monolayer')
155 elseif strcmpi(Lattice_Type, 'TMDC_Monolayer_SOC')
157 elseif strcmpi(Lattice_Type, 'TMDC_Bilayer_SOC')
159 elseif isempty(Lattice_Type)
163 param_fieldnames = fieldnames(
param );
164 for iidx = 1:length( param_fieldnames )
165 fieldname = param_fieldnames{iidx};
167 if ~isfield( param_in, fieldname )
171 param.(fieldname) = param_in.(fieldname);
Base class to construct a structure containing physical parameters of a specific lead for DFT calcula...
Class containing physical parameters of a particular lead defined on a Triangle lattice.
Class containing physical parameters of a particular lead defined on a bilayer graphene lattice.
lead_param Leads
A list of structures lead_param containing the physical parameters for the scattering region.
Class containing physical parameters of a scattering center defined on a bilayer graphene (hexagonal)...
Base class to construct a structure containing physical parameters of a specific lead.
Structure Opt contains the basic computational parameters used in EQuUs.
NofLeads
Number of leads attached to the scattering region.
function Transport(Energy, B)
Calculates the conductance at a given energy value.
Class containing physical parameters of a scattering center defined on a TMDC_Monolayer lattice.
Class containing physical parameters of a scattering center defined on a Lieb lattice.
Class containing physical parameters of a particular lead defined on a BiTeI lattice.
Class containing physical parameters of a particular lead defined on a TMDC_Monolayer lattice.
Class containing physical parameters of a scattering center defined on a TMDC_Monolayer lattice inclu...
Class containing physical parameters of a scattering center defined on a graphene (hexagonal) lattice...
Class containing physical parameters of a particular lead defined on a Lieb lattice.
Class containing physical parameters of a particular lead defined on a TMDC_Monolayer lattice includi...
Base class to construct a structure containing physical parameters of the scattering region for DFT c...
function ConvertParamLead(param_in)
Convert structure param relsted to the scattering region to system specific structure.
Class containing physical parameters of a scattering center defined on a Silicene lattice.
Class containing physical parameters of a particular lead defined on a Silicene lattice.
Class containing physical parameters of a particular lead defined on a square lattice.
Structure param contains data structures describing the physical parameters of the scattering center ...
Base class to construct a structure containing physical parameters of the scattering region.
Class containing physical parameters of a particular lead defined on a TMDC Bilayer lattice including...
Class containing physical parameters of a scattering center defined on a TMDC bilayer lattice includi...
function ConvertParamScatter(param_in)
Convert structure param relsted to the scattering region to system specific structure.
Class containing physical parameters of a particular lead defined on a SSH lattice.
function ValidateStructures(Opt, param)
This function verify the input structures Opt and param and create system specific data structures.
Class containing physical parameters of a scattering center defined on a square lattice.
Class containing physical parameters of a scattering center defined on a BiTeI lattice.
function structures(name)
Class containing physical parameters of a particular lead defined on a graphene lattice.
Class containing physical parameters of a scattering center defined on a SSH lattice.