- Dec 10, 2019
-
-
Joseph Weston authored
-
Joseph Weston authored
We get rid of '_is_herm_conj' in favour of '_is_hermitian', replace '_check_ham' with '_check_hams' (which works on vectorized values) and add '_check_onsites' (which also works on vectorized values). Replace absolute value calculation with call to 'cabs' from 'complex.h'
-
Joseph Weston authored
This includes the following changes: + Group the elements of 'where' according to the term/site-families they belong to. This is pre-computed and stored in '_terms'. What specifically is stored depends on whether vectorization is enabled. + BlockSparseMatrix now takes its matrix elements as a sequence of pairs 'which, data', where 'which' indexes 'where'. This leverages the values stored in '_terms'. + Normalize 'onsite' to a function that takes 'site_range' (int) and 'site_offsets' (array of int). This facilitates vectorization when it is enabled. Previously 'onsite' was normalized to a function taking 'site' (int), which was not vectorizable. + '_eval_onsite' is modified to compose components of '_terms' with 'onsite'. + '_eval_hamiltonian' is modified to compose compoenents of '_terms' with 'hamiltonian_term' when vectorized, or 'hamiltonian' when not vectorized.
-
Joseph Weston authored
It is not clear how this will be implemented right now.
-
Joseph Weston authored
The next commit(s) will implement the necessary changes to the operator module to make this test pass.
-
Joseph Weston authored
We will need this normalization in several places, and it is more general than *just* Hamiltonian terms.
-
- Dec 06, 2019
-
-
Joseph Weston authored
This is the canonical way of checking if a system exposes vectorization capabilities.
-
Joseph Weston authored
One less import, and the explicit pattern match is not any less readable
-
Joseph Weston authored
-
- Dec 05, 2019
-
-
Joseph Weston authored
-
- Nov 26, 2019
-
-
Joseph Weston authored
The removed logic is an artifact from when vectorized and unvectorized systems shared the same logic for 'hamiltonian_submatrix'. This was accidentally left in when we reverted to the old logic for unvectorized systems.
-
Joseph Weston authored
-
Joseph Weston authored
-
- Nov 22, 2019
-
-
Joseph Weston authored
We forgot to add him when merging kwant/kwant!333
-
Joseph Weston authored
-
Joseph Weston authored
-
Joseph Weston authored
Require that norbs are specified for abstract vectorized systems. This was already a de-facto requirement for finalized Builders, and it should be part of the abstract base class. Closes #336 See merge request kwant/kwant!334
-
Joseph Weston authored
-
Joseph Weston authored
All site arrays must have 'norbs' set by definition.
-
Joseph Weston authored
The docstring erroneously stated that 'site_ranges' could be 'None', however we want to restrict VectorizedSystems to contain only site families that have 'norbs' specified. The docstring is now explicit about that fact.
-
- Nov 20, 2019
-
-
Joseph Weston authored
fix add_peierls_phase for system without leads Closes #331 See merge request !333
-
Dennis Heffels authored
-
Dennis Heffels authored
-
- Nov 15, 2019
-
-
Joseph Weston authored
-
Joseph Weston authored
Incraese the timeout and number of retries when running the link check on the documentation; this should increase the specificity of the test. See merge request kwant/kwant!332 Closes #332.
-
Joseph Weston authored
The combination of longer timeout and larger number of retries should make the linkcheck sufficiently specific again.
-
Joseph Weston authored
Retrying > once should increase the specificity of the check a lot.
-
- Nov 13, 2019
-
-
Joseph Weston authored
vectorize systems so that value functions may be called once on a whole vector of sites (for onsite value functions) or a pair of vectors of sites (for hopping value functions). In this way we avoid the Python overhead of calling the value functions many times. For systems with vectorization enabled this can result in a ~100x speedup when evaluating the Hamiltonian. See merge request kwant/kwant!323 Closes kwant/kwant#302
-
Joseph Weston authored
-
Joseph Weston authored
Update internal uses of 'hamiltonian' to suppress this warning and add a TODO to update to the new API.
-
Joseph Weston authored
-
Joseph Weston authored
-
Joseph Weston authored
-
Joseph Weston authored
We now have *System and *System2, so the old 'isinstance' checks will not be complete. We add convenience functions in 'kwant.system' and 'kwant.builder' to check against all the relvant classes. We leave the original 'isinstance' checks in 'kwant.physics.gauge' because that module does not work with vectorize systems yet.
-
Joseph Weston authored
-
Joseph Weston authored
These will be used in vectorized systems later.
-
Joseph Weston authored
Add the 'subgraphs', 'terms', and 'site_arrays' attributes, and 'hamiltonian_term' method and implement 'hamiltonian_submatrix', 'cell_hamiltonian' and 'inter_cell_hopping' in a vectorized way.
-
Joseph Weston authored
Now 'which' and 'act' (and, by extension, 'to_fd') now accept SiteArrays as well as Sites.
-
Joseph Weston authored
-
Joseph Weston authored
We remove the ABC metaclass as now 'normalize_tag' and 'normalize_tags' are cyclically defined, and subclasses must redefine at least 1.
-