I am currently simulating a carbon nanotube system by defining a 1D scattering region as:
def kwant_shape(site):
(z,) = pos
return (-total_length / 2 <= z < total_length/ 2)
I then build the system by discretizing a continuous Hamiltonian onto the grid region, as shown in the function below:
def make_system():
lattice_size = total_length / number_of_lattices
template = kwant.continuum.discretize(hamiltonian, grid=lattice_size)
syst = kwant.Builder()
# add the nanotube to the system
syst.fill(template, kwant_shape, (0,))
syst = syst.finalized()
return syst
The lowest eigenvector of the Hamiltonian system is calculated and evolved over time using Tkwant.
However, by changing the parameter 'number_of_lattices', hence using a different size grid spacing, the response of the system is very different. Sometimes the resulting graph shows a changing density of the wavefunction (which is expected), however for certain
lattice points there is no change in the graph, suggesting that the system does not evolve. For example, for 40 lattice points I get the expected response however for 60 lattice points I do not.