Hi Adel,
Please check the documentation [1]. Since you have multiple site
families, you need to specify the conservation law as a dictionary, so
{metal_like_sub: -np.kron(sigma_z, np.eye(3)), C_like_sub1: -sigma_z,
C_like_sub2: -sigma_z}.
Best,
Anton
https://kwant-project.org/doc/1/reference/generated/kwant.builder.Builder#kw...
On Sat, 14 Aug 2021 at 16:08, Adel Belayadi
Dear Kwant user, Good day and I hope this email finds you well. Using conservation law was fully explained, in the Kwant mailing list, while we are having sublattices with the same degree of freedom (same number of orbitals). For instance, if we have two sites with 3 orbitals in the case of a spin full Hamiltonian, the onsite matrix is (onsite_matrix(6*6) for each site ). So in this case, the conservation law will be straightforward: conservation_law=-np.kron(sigma_z, np.eye(3)).But what would be the case if we are dealing with sublattices which have different numbers of orbitals?
In my case, I am interested in spin conductance. I am using 3 sublattices with different orbitals. Let us say for instance sublattice0 has (6-orbitals), sublattice1 with (2-orbitals) and sublattice2 with (2-orbitals). In fact I am working on hetero-structure with two sites of C-like(pz with spin up and down) and one site of metal-like(3d-orbitals with spin up and down). I can resume my lattice as follow
lat = kwant.lattice.general(prim_vecs, basis=[ [...], [...], [...]] , norbs=[6, 2, 2]) metal-like_sub, C-like_sub1, C-like_sub2 = lat.sublattices
According to my understanding the conservation law would be something like conservation_law=-np.kron(sigma_z, np.eye(5)). However Kwant raises an error with my choice of the conservation law.
Is there something missing with my understanding of the conservation law!. Or in the case of different orbitals per site, we need to define two lattices (lattice1 for spin up and lattice2 for spindown). Thanks in advance, Best