- Dec 15, 2019
-
-
Kelvin Loh authored
-
Kelvin Loh authored
-
Kelvin Loh authored
-
Kelvin Loh authored
-
Kelvin Loh authored
Raises a RuntimeError when incompatible inputs are provided to the plot function using the plotly backend.
-
Kelvin Loh authored
-
Kelvin Loh authored
-
Kelvin Loh authored
-
Kelvin Loh authored
-
Kelvin Loh authored
Called once during setting of plotly backend.
-
Kelvin Loh authored
-
Kelvin Loh authored
-
Kelvin Loh authored
-
Kelvin Loh authored
-
Kelvin Loh authored
-
-
- Dec 13, 2019
-
-
Joseph Weston authored
make _normalize_matrix_blocks check number of orbitals Closes #346 See merge request kwant/kwant!349
-
- Dec 12, 2019
-
-
Joseph Weston authored
-
Joseph Weston authored
This test was previously incorrect, but because we didn't actually check the number of orbitals on constant values on finalization this was not caught.
-
Joseph Weston authored
We allow the function that produced the data to be passed to '_normalize_matrix_blocks', and any error messages are augmented with this information. This may prove useful for debugging.
-
Joseph Weston authored
-
Joseph Weston authored
Previously these 2 steps were done in one pass. Now we separate them out in order to facilitate augnmenting the verification to include checking the number of orbitals (in future commits).
-
Joseph Weston authored
These will be needed later when verifying that constant values have the correct shape.
-
Joseph Weston authored
It is only used in the tests anyway. This way we export less API from the builder module.
-
- Dec 10, 2019
-
-
Joseph Weston authored
add a test for invalid value functions See merge request kwant/kwant!347
-
Joseph Weston authored
Previously we would use '*_term_parameters', as returned by '_make_*_terms', however this was polluted with Exceptions. Instead we modify '_make_*_terms' so that it does not return this confusing object and use 'terms' directly, which are guaranteed to either have a valid set of 'parameters' or 'None'.
-
Joseph Weston authored
Note that we only raise an error if 'params' is specified. This may actually be incorrect; if we have a keyword-only parameter, for example then the way in which we call the value function will always produce an error, regardless of whether 'params' is specified or not.
-
Joseph Weston authored
implement vectorized value broadcasting Closes #342 See merge request kwant/kwant!346
-
Joseph Weston authored
This is shorter but no less clear.
-
Joseph Weston authored
When a value function returns a single scalar or a matrix, we reshape and repeat this value to obtain the required 3-axis array.
-
Joseph Weston authored
We want to enable: single scalars (norbs=1) or matrices (norbs>1), functions returning single scalars or matrices, or functions returning vectors of single scalars or matrices.
-
Joseph Weston authored
make system terms immutable See merge request kwant/kwant!348
-
Joseph Weston authored
-
Joseph Weston authored
It is very easy to accidentally modify the subgraphs in place, which should not be possible
-
Joseph Weston authored
Finalized Builders store negative term numbers associated with edges in the graph whose reverse we must compute using 'hamiltonian_term'. If we are not careful people may use these negative term numbers with 'hamiltonian_submatrix'.
-
Joseph Weston authored
vectorized operators Closes #318 See merge request kwant/kwant!337
-
Joseph Weston authored
-
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.
-