[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:
trilinos.sandia.gov/packages/docs/r10.6/packages/thyra/doc/html/index.html#
interfaces_operator_vector_ana_extended

In particular, the one that you are looking for is here:
trilinos.sandia.gov/packages/docs/r10.6/packages/thyra/doc/html/classThyra_
1_1MultipliedLinearOpBase.html

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.

Chris

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?
>
>Thanks,
>Einar
>
>_______________________________________________
>Trilinos-Users mailing list
>Trilinos-Users at software.sandia.gov
>hxxp://software.sandia.gov/mailman/listinfo/trilinos-users
>
>