pylops.VStack#

class pylops.VStack(ops, nproc=1, forceflat=None, dtype=None)[source]#

Vertical stacking.

Stack a set of N linear operators vertically.

Parameters
opslist

Linear operators to be stacked. Alternatively, numpy.ndarray or scipy.sparse matrices can be passed in place of one or more operators.

nprocint, optional

Number of processes used to evaluate the N operators in parallel using multiprocessing. If nproc=1, work in serial mode.

forceflatbool, optional

New in version 2.2.0.

Force an array to be flattened after rmatvec.

dtypestr, optional

Type of elements in input array.

Raises
ValueError

If ops have different number of rows

Notes

A vertical stack of N linear operators is created such as its application in forward mode leads to

\[\begin{split}\begin{bmatrix} \mathbf{L}_{1} \\ \mathbf{L}_{2} \\ \vdots \\ \mathbf{L}_{N} \end{bmatrix} \mathbf{x} = \begin{bmatrix} \mathbf{L}_{1} \mathbf{x} \\ \mathbf{L}_{2} \mathbf{x} \\ \vdots \\ \mathbf{L}_{N} \mathbf{x} \end{bmatrix} = \begin{bmatrix} \mathbf{y}_{1} \\ \mathbf{y}_{2} \\ \vdots \\ \mathbf{y}_{N} \end{bmatrix}\end{split}\]

while its application in adjoint mode leads to

\[\begin{split}\begin{bmatrix} \mathbf{L}_{1}^H & \mathbf{L}_{2}^H & \ldots & \mathbf{L}_{N}^H \end{bmatrix} \begin{bmatrix} \mathbf{y}_{1} \\ \mathbf{y}_{2} \\ \vdots \\ \mathbf{y}_{N} \end{bmatrix} = \mathbf{L}_{1}^H \mathbf{y}_1 + \mathbf{L}_{2}^H \mathbf{y}_2 + \ldots + \mathbf{L}_{N}^H \mathbf{y}_N\end{split}\]
Attributes
shapetuple

Operator shape

explicitbool

Operator contains a matrix that can be solved explicitly (True) or not (False)

Methods

__init__(ops[, nproc, forceflat, dtype])

adjoint()

apply_columns(cols)

Apply subset of columns of operator

cond([uselobpcg])

Condition number of linear operator.

conj()

Complex conjugate operator

div(y[, niter, densesolver])

Solve the linear problem \(\mathbf{y}=\mathbf{A}\mathbf{x}\).

dot(x)

Matrix-matrix or matrix-vector multiplication.

eigs([neigs, symmetric, niter, uselobpcg])

Most significant eigenvalues of linear operator.

matmat(X)

Matrix-matrix multiplication.

matvec(x)

Matrix-vector multiplication.

reset_count()

Reset counters

rmatmat(X)

Matrix-matrix multiplication.

rmatvec(x)

Adjoint matrix-vector multiplication.

todense([backend])

Return dense matrix.

toimag([forw, adj])

Imag operator

toreal([forw, adj])

Real operator

tosparse()

Return sparse matrix.

trace([neval, method, backend])

Trace of linear operator.

transpose()

Examples using pylops.VStack#

Operators concatenation

Operators concatenation

Operators with Multiprocessing

Operators with Multiprocessing

Wavelet estimation

Wavelet estimation

08. Pre-stack (AVO) inversion

08. Pre-stack (AVO) inversion

17. Real/Complex Inversion

17. Real/Complex Inversion