|
Thyra Package Browser (Single Doxygen Collection) Version of the Day
|
#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"
Go to the source code of this file.
Functions | |
| 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[]) |
| 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 ]
where:
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(), 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(), and Thyra::DefaultAddedLinearOp< Scalar >::subtract().
| int main | ( | int | argc, |
| char * | argv[] | ||
| ) |
Definition at line 260 of file exampleImplicitlyComposedLinearOperators.cpp.
1.7.4