Thanks!

On Mon, Apr 19, 2021 at 2:49 AM Antonio Manesco <antonio...@usp.br> wrote:

> Sorry, I think you meant the diagonal elements of the Hamiltonian matrix.
> You do that with the hamiltonian_submatrix method (
> https://kwant-project.org/doc/1/reference/generated/kwant.system.System).
>
> On Sun, 18 Apr 2021, 19:15 Antonio Manesco, <antonio...@usp.br> wrote:
>
>> Hi Nafise
>>
>> You can access the s-matrix elements using the submatrix method (
>> https://kwant-project.org/doc/latest/reference/generated/kwant.solvers.common.SMatrix
>> ).
>>
>> Best,
>> Antonio
>>
>> On Sun, 18 Apr 2021, 11:55 Nafise Nouri, <nafise.n...@gmail.com> wrote:
>>
>>> Dear all,
>>> I need to access the matrix diagonal element in the scattering region in
>>> my program. Is there any way to access  the matrix diagonal element in the
>>> following program or do I have to use numpy?
>>>
>>> Best regard,
>>>
>>> import kwant
>>> import matplotlib.pyplot as plt
>>> import tinyarray
>>> import numpy as np
>>> import math
>>> from functools import partial
>>> from kwant.physics import dispersion
>>>
>>> #mport matplotlib
>>>
>>> d=1.42;
>>> a1=d*math.sqrt(3);
>>>
>>> latt = kwant.lattice.general([(a1,0),(0.5*a1,a1*math.sqrt(3)/2)],
>>>                              [(0,0),(0,a1/math.sqrt(3))])
>>> a,b = latt.sublattices
>>> syst= kwant.Builder()
>>>
>>>
>>> #...................................................................................
>>> def rectangle(pos):
>>>     x, y = pos
>>>     z=x**2+y**2
>>>     return -4*3*a1<y<4.5*3*a1 and -4.5*d<=x<4.5*d
>>>
>>> syst[a.shape(rectangle, (2,2))] = 0
>>> syst[b.shape(rectangle, (2,2))] = 0
>>>
>>> #nearest
>>> neighbors.............................................................
>>> syst[[kwant.builder.HoppingKind((0,0),a,b)]] = -2.7
>>> syst[[kwant.builder.HoppingKind((0,1),a,b)]] = -2.7
>>> syst[[kwant.builder.HoppingKind((-1,1),a,b)]] = -2.7
>>>
>>> ax=kwant.plot(syst);
>>>
>>> sym = kwant.TranslationalSymmetry(latt.vec((-1,0)))
>>>
>>> sym.add_site_family(latt.sublattices[0], other_vectors=[(-1, 2)])
>>> sym.add_site_family(latt.sublattices[1], other_vectors=[(-1, 2)])
>>> lead = kwant.Builder(sym)
>>>
>>>
>>> def lead_shape(pos):
>>>     x, y = pos
>>>     return  -4*3*a1<y<4.5*3*a1
>>>
>>> lead[a.shape(rectangle, (2,2))] = 0
>>> lead[b.shape(rectangle, (2,2))] = 0
>>>
>>>
>>> #nearest
>>> neighbors.............................................................
>>> lead[[kwant.builder.HoppingKind((0,0),a,b)]] = -2.7
>>> lead[[kwant.builder.HoppingKind((0,1),a,b)]] = -2.7
>>> lead[[kwant.builder.HoppingKind((-1,1),a,b)]] = -2.7
>>>
>>> syst.attach_lead(lead)
>>> syst.attach_lead(lead.reversed())
>>> ax=kwant.plot(syst);
>>>
>>>
>>> ###############################################################################\
>>> fsys = syst.finalized()
>>> Sites= list(fsys.sites)   #list of all the sites in the scattering region
>>> number_of_sites=len(Sites)
>>>
>>>
>>> bands = dispersion.Bands(fsys.leads[0])
>>> momenta = np.linspace(-np.pi,np.pi, 100)
>>> energies=[bands(k) for k in momenta]
>>>
>>> np.savetxt('band1.txt',bands(-np.pi))
>>>
>>>
>>> plt.plot(momenta,energies)
>>>
>>> plt.xlabel(r'$K$')
>>> plt.ylabel(r'$band structure (eV)$')
>>> plt.ylim((-0.5,0.5))
>>> plt.savefig('bandsarmBiStrain.pdf')
>>> plt.show()
>>>
>>

Reply via email to