Thyra Package Browser (Single Doxygen Collection) Version of the Day
exampleImplicitlyComposedLinearOperators.cpp File Reference
#include "Thyra_OperatorVectorClientSupport.hpp"
#include "Thyra_DefaultSpmdVectorSpace.hpp"
#include "Teuchos_CommandLineProcessor.hpp"
#include "Teuchos_VerboseObject.hpp"
#include "Teuchos_VerbosityLevelCommandLineProcessorHelpers.hpp"
#include "Teuchos_Time.hpp"
#include "Teuchos_StandardCatchMacros.hpp"
#include "Teuchos_as.hpp"
#include "Teuchos_GlobalMPISession.hpp"
Include dependency graph for exampleImplicitlyComposedLinearOperators.cpp:

Go to the source code of this file.


template<class Scalar >
int exampleImplicitlyComposedLinearOperators (const int n0, const int n1, const int n2, Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel, typename Teuchos::ScalarTraits< Scalar >::magnitudeType errorTol, const bool testAdjoint)
int main (int argc, char *argv[])

Function Documentation

template<class Scalar >
int exampleImplicitlyComposedLinearOperators ( const int  n0,
const int  n1,
const int  n2,
Teuchos::FancyOStream out,
const Teuchos::EVerbosityLevel  verbLevel,
typename Teuchos::ScalarTraits< Scalar >::magnitudeType  errorTol,
const bool  testAdjoint 

This is an example of how to use the implicitly composed linear operator subclasses to build a complex implicit linear operator.

The linear operator that we are trying to build is:

   M = [ M00, M01 ]
       [ M10, M11 ]



   M00 = [ gama*B*A + C,  E + F ] ^H
         [ J^H * A,       I     ]
       = ( n0, n1 ) x ( n0, n1 )

   M01 = beta * [ Q ]
                [ K ]

       = ( n0, n1 ) x n2

   M10 = [ L * N^H,  eta*P ]

       = n2 x ( n0, n1 )

   M11 = D - Q^H*Q


Above, I1 and I2 are the identity operators.

This system of linear operators is build around three basic vector spaces space0, space1 and space2 with the dimensions n0, n1, and n2 respectively. For this example, we will just create random Multi-vectors for each of the component linear operators.

Definition at line 61 of file exampleImplicitlyComposedLinearOperators.cpp.

References Thyra::DefaultAddedLinearOp< Scalar >::add(), Thyra::DefaultScaledAdjointLinearOp< Scalar >::adjoint(), Teuchos::as(), Thyra::DefaultBlockedLinearOp< Scalar >::block1x2(), Thyra::DefaultBlockedLinearOp< Scalar >::block2x1(), Thyra::DefaultBlockedLinearOp< Scalar >::block2x2(), Thyra::LinearOpTester< Scalar >::check(), Thyra::VectorSpaceBase< Scalar >::createMember(), Thyra::VectorSpaceBase< Scalar >::createMembers(), Thyra::DefaultDiagonalLinearOp< Scalar >::diagonal(), Thyra::DefaultIdentityLinearOp< Scalar >::identity(), Thyra::DefaultMultipliedLinearOp< Scalar >::multiply(), Thyra::MultiVectorBase< Scalar >::randomize(), Thyra::randomize(), Thyra::DefaultScaledAdjointLinearOp< Scalar >::scale(), Thyra::scale(), Thyra::LinearOpTester< Scalar >::set_all_error_tol(), Thyra::DefaultAddedLinearOp< Scalar >::subtract(), Teuchos::VERB_EXTREME, and Teuchos::VERB_HIGH.

int main ( int  argc,
char *  argv[] 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines