wraparound can't be pickled
I am using the latest kwant
version where a system can be pickled.
import pickle
from wraparound import wraparound
import kwant
def _simple_syst(lat, E=0, t=1+1j):
"""Create a builder for a simple infinite system."""
sym = kwant.TranslationalSymmetry(lat.vec((1, 0)), lat.vec((0, 1)))
syst = kwant.Builder(sym)
syst[lat.shape(lambda p: True, (0, 0))] = E
syst[lat.neighbors(1)] = t
return syst
lat = kwant.lattice.square()
syst = _simple_syst(lat)
syst = wraparound(syst, keep=1).finalized()
with open('test.kwant', 'wb') as f:
pickle.dump(syst, f)
results in
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-24-37a4c7bc4d57> in <module>()
2 syst = make_2d_scatter(**dict(**syst_pars, L_sc=100))
3 with open('test.kwant', 'wb') as f:
----> 4 pickle.dump(syst, f)
AttributeError: Can't pickle local object 'wraparound.<locals>.bind_hopping.<locals>.f'