[Trilinos-Users] Creating linear operators by combining other linear operators

Baker, Christopher G. bakercg at ornl.gov
Fri Jul 1 08:37:05 MDT 2011

Hi Einar, 

There are a few different linear operator interfaces in Trilinos. Most
notably, there are Epetra and Thyra.
Supporting composite linear operators in Thyra is more straight-forward
than Epetra, because the linear operator interface is based on
y = alpha*Op*x + beta*y
whereas Epetra's linear operator interface is
y = Op*x
As such, Thyra has significant support for composite operators of many
different forms. I have used these in the past, and they are very
convenient. See, for example, the "Composite and other linear operator
base classes" under the THyra operator/vector extended interfaces at the
following URL:

In particular, the one that you are looking for is here:

As for Epetra, I don't know of an implementation to support this. It
should be straightforward to write one, and to encapsulate it into an
Epetra_Operator implementation.


On 7/1/11 6:24 AM, "Einar Otnes" <eotnes at gmail.com> wrote:

>Dear experts,
>I have a question related to constructing linear operators in Trilinos.
>Are there any packages in trilinos that support constructing new linear
>operators from previously defined ones.
>In other words, say I want to do two operations
>y = A(x)
>z = B(y)
>Is there a way I can combine the two operators such that
>z=B(y) = B(A(x)) = (BA)(x) = C(x) , where C is now a new operator
>generated from  B and A?
>Trilinos-Users mailing list
>Trilinos-Users at software.sandia.gov

More information about the Trilinos-Users mailing list