Hi Camilla,

> (am using the development version, 1.3)
> 
> 
> I am trying to plot the potential of my system and I want to use the 
> hamiltonian(ind,ind,*args) function, but I don't understand how to use the 
> args. Normally, I would give a vector with the values of the args as input, 
> but this doesn't work in the case of hamiltonian (it does with 
> hamiltonian_submatrix). What am I doing wrong?

if you are using 'hamiltonian' directly then you pass extra arguments
directly to the function like so:

    syst.hamiltonian(i, j, param1, param2)

I guess the confusion comes from the fact that usually you package up
'param1' and 'param2' into a sequence like

    all_params = [param1, param2]

In this case you can use Python's argument unpacking [1] syntax:

    syst.hamiltonian(i, j, *all_params)

The '*' will unpack the contents of 'all_params' in the call to
'syst.hamiltonian'.


> I also have a problem using the kwant.plot(sys) after I switched to Linux, I 
> get the error message "NameError: name 'mplot3d' is not defined", is there 
> something I need to install?

Under what circumstances, precisely, do you see this? Please provide a
backtrace and what version of matplotlib you have installed, and how
it was installed (distribution package manager [which distro, which
version], pip, conda, etc.)


Thanks,

Joe

[1]: https://docs.python.org/3/tutorial/controlflow.html#tut-unpacking-arguments

Attachment: signature.asc
Description: PGP signature

Reply via email to