blocks_to_amat#
- emg3d.core.blocks_to_amat(amat, bvec, middle, left, rhs, im, nc)[source]#
Insert middle, left, and rhs into main arrays amat and bvec.
The banded matrix
amat
contains the main diagonal and the first five lower off-diagonals. They are stored one column after the other, in a 6*n ndarray.The complete main matrix
amat
and themiddle
andleft
blocks are given by:.-0 |X|\ 0 0-.-0 left: middle: right: \|X|\ (not used) 0-.-0 0- .- 0 \|X|\ \ |X |\ 0-.-0 0 \|X| 0-. . 1*1, - 4*1, | 1*4, X 4*4, \ 4*4 upper or lower
Both,
middle
andleft
, are 5x5 matrices. The corresponding right-hand-siderhs
is filled intobvec
. The matricesleft
andmiddle
provided in a single call are horizontally aligned (not vertically). The sorting ofamat
(banded matrix) andbvec
is given by:amat (66,) example: n = 11 bvec (11,) -------------- -- |01 | FIRST CALL 01 |02 07 | Only `middle` and `rhs` 02 |03 08 13 | are used, not `left`. 03 |04 09 14 19 | 04 |05 10 15 20 25| 05 -------------- -------------- -- | 0 11 16 21 26|31 | SUBSEQUENT CALLS 06 | 12 17 22 27|32 37 | (normal case) 07 | 18 23 28|33 38 43 | Complete `left`, 08 | 24 29|34 39 44 49 | `middle` and `rhs` 09 | 30|35 40 45 50 55| are used. 10 -------------- -------------- --- -- | 0 41 46 51 56|61 LAST CALL 11 | 0 0 0 0| 0 Only top row of `left` | 0 0 0| 0 and the first elements | 0 0| 0 of `middle` and `rhs` | 0| 0 are used. -------------- --- | 0 Single zeros (0) show elements in amat which are 0, hence not used. Their location in amat can be deduced from their neighbours.
- Parameters
- amatndarray
Main banded matrix (stored as array) of length 6*n.
- bvecndarray
Main right-hand-side of length n.
- middlendarray
Middle block of size 5x5, as ndarray of length 25. Only the diagonal and the lower triangular part are used.
- leftndarray
Left block of size 5x5, as ndarray of length 25. Only the diagonal and the first row are used.
- rhsndarray
Corresponding right-hand-side of length 5.
- imint
Current minus-index of direction of line relaxation,
i{x;y;z}m
.- ncint
Total number of cells in direction of line relaxation,
n{x;y;z}
.