pylops_mpi.MPIStackedLinearOperator#

class pylops_mpi.MPIStackedLinearOperator(shape=None, dtype=None, base_comm=<mpi4py.MPI.Intracomm object>)[source]#

Stack of MPI-enabled PyLops Linear Operators

Common interface for performing matrix-vector products in distributed fashion for a stack of pylops_mpi.MPILinearOperator operators.

In practice, this class provides methods to perform matrix-vector and adjoint matrix-vector products on a stack of pylops_mpi.MPILinearOperator operators, allowing the actual execution of each operator to be distributed, whilst dispatching the execution of the different operators in sequential order.

Note

End users of pylops-mpi should not use this class directly but simply use operators that are already implemented as extensions of this class. This class is meant for developers only, it has to be used as the parent class of any new stacked operator developed within pylops-mpi.

Parameters:
shapetuple(int, int), optional

Shape of the MPIStackedLinearOperator. Defaults to None.

dtypestr, optional

Type of elements in input array. Defaults to None.

base_commmpi4py.MPI.Comm, optional

MPI Base Communicator. Defaults to mpi4py.MPI.COMM_WORLD.

Methods

__init__([shape, dtype, base_comm])

adjoint()

Adjoint MPIStackedLinearOperator

conj()

Complex conjugate operator

dot(x)

Matrix Vector Multiplication

matvec(x)

Matrix-vector multiplication.

rmatvec(x)

Adjoint Matrix-vector multiplication.

transpose()

Transposition of MPIStackedLinearOperator

Examples using pylops_mpi.MPIStackedLinearOperator#

Derivatives

Derivatives

Stacked Array

Stacked Array

Post Stack Inversion - 3D

Post Stack Inversion - 3D