grid_concat
full name: tenpy.linalg.np_conserved.grid_concat
parent module:
tenpy.linalg.np_conserved
type: function
- tenpy.linalg.np_conserved.grid_concat(grid, axes, copy=True)[source]
Given an np.array of npc.Arrays, performs a multi-dimensional concatenation along ‘axes’.
Similar to
numpy.block()
, but only for uniform blocking.Stacks the qind of the array, without sorting/blocking.
- Parameters:
Examples
Assume we have prepared rank 2 Arrays
A, B, C, D
sharing the legs of equal sizes and looking like this:>>> print(A.to_ndarray()) [[0 1]] >>> print(B.to_ndarray()) [[10 11 12 13]] >>> print(C.to_ndarray()) [[20 21] [22 23] [24 25]] >>> print(D.to_ndarray()) [[30 31 32 33] [34 35 36 37] [38 39 40 41]]
Then the following grid will result in a
(1+3, 2+4)
shaped array:>>> g = npc.grid_concat([[A, B], ... [C, D]], axes=[0, 1]) >>> g.shape (4, 6) >>> print(g.to_ndarray()) [[ 0 1 10 11 12 13] [20 21 30 31 32 33] [22 23 34 35 36 37] [24 25 38 39 40 41]]
If
A, B, C, D
were rank 4 arrays, with the first and last leg as before, and sharing common legs1
and2
of dimensions 1, 2, then you would get a rank-4 array:>>> g = grid_concat([[A, B], [C, D]], axes=[0, 3]) >>> g.shape (4, 1, 2, 6)
See also
Array.sort_legcharge
can be used to block by charges.