LinearOpBase subclass that creates an implicitly added linear operator out of one or more constituent LinearOpBase objects.
More...
#include <Thyra_DefaultAddedLinearOpDecl.hpp>
Inheritance diagram for Thyra::DefaultAddedLinearOp< Scalar >:

Constructors/initializers/accessors | |
| DefaultAddedLinearOp () | |
| Constructs to uninitialized. | |
| DefaultAddedLinearOp (const int numOps, const RCP< LinearOpBase< Scalar > > Ops[]) | |
| DefaultAddedLinearOp (const int numOps, const RCP< const LinearOpBase< Scalar > > Ops[]) | |
| void | initialize (const int numOps, const RCP< LinearOpBase< Scalar > > Ops[]) |
| Initialize given a list of non-const linear operators. | |
| void | initialize (const int numOps, const RCP< const LinearOpBase< Scalar > > Ops[]) |
| Initialize given a list of const linear operators. | |
| void | uninitialize () |
| Set to uninitialized. | |
Overridden from AddedLinearOpBase | |
| int | numOps () const |
| | |
| bool | opIsConst (const int k) const |
| | |
| RCP< LinearOpBase< Scalar > > | getNonconstOp (const int k) |
| | |
| RCP< const LinearOpBase< Scalar > > | getOp (const int k) const |
| | |
Overridden from LinearOpBase | |
| RCP< const VectorSpaceBase< Scalar > > | range () const |
Returns this->getOp(0).range() if <t>this->numOps() > 0 and returns Teuchos::null otherwise. | |
| RCP< const VectorSpaceBase< Scalar > > | domain () const |
Returns this->getOp(this->numOps()-1).domain() if <t>this->numOps() > 0 and returns Teuchos::null otherwise. | |
| RCP< const LinearOpBase< Scalar > > | clone () const |
| | |
Overridden from Teuchos::Describable | |
| std::string | description () const |
Prints just the name DefaultAddedLinearOp along with the overall dimensions and the number of constituent operators. | |
| void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const |
| Prints the details about the constituent linear operators. | |
Overridden from SingleScalarLinearOpBase | |
| bool | opSupported (EOpTransp M_trans) const |
Returns true only if all constituent operators support M_trans. | |
| void | apply (const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, MultiVectorBase< Scalar > *Y, const Scalar alpha, const Scalar beta) const |
| | |
Related Functions | |
| (Note that these are not member functions.) | |
| RCP< LinearOpBase< Scalar > > | nonconstAdd (const RCP< LinearOpBase< Scalar > > &A, const RCP< LinearOpBase< Scalar > > &B, const std::string &label="") |
Form an implicit addition of two linear operators: M = A + B. | |
| RCP< const LinearOpBase< Scalar > > | add (const RCP< const LinearOpBase< Scalar > > &A, const RCP< const LinearOpBase< Scalar > > &B, const std::string &label="") |
Form an implicit addition of two linear operators: M = A + B. | |
| RCP< LinearOpBase< Scalar > > | nonconstSubtract (const RCP< LinearOpBase< Scalar > > &A, const RCP< LinearOpBase< Scalar > > &B, const std::string &label="") |
Form an implicit subtraction of two linear operators: M = A - B. | |
| RCP< const LinearOpBase< Scalar > > | subtract (const RCP< const LinearOpBase< Scalar > > &A, const RCP< const LinearOpBase< Scalar > > &B, const std::string &label="") |
Form an implicit subtraction of two linear operators: M = A - B. | |
LinearOpBase subclass that creates an implicitly added linear operator out of one or more constituent LinearOpBase objects.
This class represents a added linear operator M of the form:
M = Op[0] + Op[1] + ... + Op[numOps-1]
where Op[] is an array of numOps LinearOp objects. Of course the operator M is not constructed explicitly but instead just applies the constituent linear operators accordingly using temporaries.
In other words, this class defines apply() as:
y = alpha*M*x + beta*y = alpha * ( Op[0]*x + Op[1]*x + ... * Op[numOps-1]*x ) + beta * y
Rather than calling the constructor directly, consider using the non-member helper functions described here.
Definition at line 74 of file Thyra_DefaultAddedLinearOpDecl.hpp.
| Thyra::DefaultAddedLinearOp< Scalar >::DefaultAddedLinearOp | ( | ) |
Constructs to uninitialized.
Postconditions:
this->numOps()==0 Definition at line 42 of file Thyra_DefaultAddedLinearOp.hpp.
| Thyra::DefaultAddedLinearOp< Scalar >::DefaultAddedLinearOp | ( | const int | numOps, | |
| const RCP< LinearOpBase< Scalar > > | Ops[] | |||
| ) |
Calls initialize().
Rather than calling this constructor directly, consider using the non-member helper functions described here.
Definition at line 46 of file Thyra_DefaultAddedLinearOp.hpp.
| Thyra::DefaultAddedLinearOp< Scalar >::DefaultAddedLinearOp | ( | const int | numOps, | |
| const RCP< const LinearOpBase< Scalar > > | Ops[] | |||
| ) |
Calls initialize().
Rather than calling this constructor directly, consider using the non-member helper functions described here.
| void Thyra::DefaultAddedLinearOp< Scalar >::initialize | ( | const int | numOps, | |
| const RCP< LinearOpBase< Scalar > > | Ops[] | |||
| ) |
Initialize given a list of non-const linear operators.
| numOps | [in] Number of constituent operators. | |
| Ops | [in] Array (length numOps) of constituent linear operators and their aggregated default definitions of the non-transposed operator. |
numOps > 0 Ops != NULL Ops[k].op().get()!=NULL, for k=0...numOps-1 Postconditions:
this->numOps()==numOps this->getOp(k).op().get()==Ops[k].op().get(), for k=0...numOps-1 Definition at line 64 of file Thyra_DefaultAddedLinearOp.hpp.
| void Thyra::DefaultAddedLinearOp< Scalar >::initialize | ( | const int | numOps, | |
| const RCP< const LinearOpBase< Scalar > > | Ops[] | |||
| ) |
Initialize given a list of const linear operators.
| numOps | [in] Number of constituent operators. | |
| Ops | [in] Array (length numOps) of constituent linear operators and their aggregated default definitions of the non-transposed operator. |
numOps > 0 Ops != NULL Ops[k].op().get()!=NULL, for k=0...numOps-1 Postconditions:
this->numOps()==numOps this->getOp(k).op().get()==Ops[k].op().get(), for k=0...numOps-1 | void Thyra::DefaultAddedLinearOp< Scalar >::uninitialize | ( | ) |
Set to uninitialized.
Postconditions:
this->numOps()==0 Definition at line 96 of file Thyra_DefaultAddedLinearOp.hpp.
| int Thyra::DefaultAddedLinearOp< Scalar >::numOps | ( | ) | const [virtual] |
Implements Thyra::AddedLinearOpBase< Scalar >.
Definition at line 105 of file Thyra_DefaultAddedLinearOp.hpp.
| bool Thyra::DefaultAddedLinearOp< Scalar >::opIsConst | ( | const int | k | ) | const [virtual] |
Implements Thyra::AddedLinearOpBase< Scalar >.
Definition at line 111 of file Thyra_DefaultAddedLinearOp.hpp.
| Teuchos::RCP< LinearOpBase< Scalar > > Thyra::DefaultAddedLinearOp< Scalar >::getNonconstOp | ( | const int | k | ) | [virtual] |
Implements Thyra::AddedLinearOpBase< Scalar >.
Definition at line 121 of file Thyra_DefaultAddedLinearOp.hpp.
| Teuchos::RCP< const LinearOpBase< Scalar > > Thyra::DefaultAddedLinearOp< Scalar >::getOp | ( | const int | k | ) | const [virtual] |
Implements Thyra::AddedLinearOpBase< Scalar >.
Definition at line 131 of file Thyra_DefaultAddedLinearOp.hpp.
| Teuchos::RCP< const VectorSpaceBase< Scalar > > Thyra::DefaultAddedLinearOp< Scalar >::range | ( | ) | const [virtual] |
Returns this->getOp(0).range() if <t>this->numOps() > 0 and returns Teuchos::null otherwise.
Implements Thyra::LinearOpBase< Scalar >.
Definition at line 143 of file Thyra_DefaultAddedLinearOp.hpp.
| Teuchos::RCP< const VectorSpaceBase< Scalar > > Thyra::DefaultAddedLinearOp< Scalar >::domain | ( | ) | const [virtual] |
Returns this->getOp(this->numOps()-1).domain() if <t>this->numOps() > 0 and returns Teuchos::null otherwise.
Implements Thyra::LinearOpBase< Scalar >.
Definition at line 151 of file Thyra_DefaultAddedLinearOp.hpp.
| Teuchos::RCP< const LinearOpBase< Scalar > > Thyra::DefaultAddedLinearOp< Scalar >::clone | ( | ) | const [virtual] |
Reimplemented from Thyra::LinearOpBase< Scalar >.
Definition at line 159 of file Thyra_DefaultAddedLinearOp.hpp.
| std::string Thyra::DefaultAddedLinearOp< Scalar >::description | ( | ) | const [virtual] |
Prints just the name DefaultAddedLinearOp along with the overall dimensions and the number of constituent operators.
Reimplemented from Thyra::LinearOpDefaultBase< Scalar >.
Definition at line 167 of file Thyra_DefaultAddedLinearOp.hpp.
| void Thyra::DefaultAddedLinearOp< Scalar >::describe | ( | Teuchos::FancyOStream & | out, | |
| const Teuchos::EVerbosityLevel | verbLevel | |||
| ) | const [virtual] |
Prints the details about the constituent linear operators.
This function outputs different levels of detail based on the value passed in for verbLevel:
ToDo: Finish documentation!
Reimplemented from Thyra::LinearOpDefaultBase< Scalar >.
Definition at line 176 of file Thyra_DefaultAddedLinearOp.hpp.
| bool Thyra::DefaultAddedLinearOp< Scalar >::opSupported | ( | EOpTransp | M_trans | ) | const [protected, virtual] |
Returns true only if all constituent operators support M_trans.
Implements Thyra::SingleScalarLinearOpBase< Scalar >.
Definition at line 222 of file Thyra_DefaultAddedLinearOp.hpp.
| void Thyra::DefaultAddedLinearOp< Scalar >::apply | ( | const EOpTransp | M_trans, | |
| const MultiVectorBase< Scalar > & | X, | |||
| MultiVectorBase< Scalar > * | Y, | |||
| const Scalar | alpha, | |||
| const Scalar | beta | |||
| ) | const [protected, virtual] |
Implements Thyra::SingleScalarLinearOpBase< Scalar >.
Definition at line 232 of file Thyra_DefaultAddedLinearOp.hpp.
| RCP< LinearOpBase< Scalar > > nonconstAdd | ( | const RCP< LinearOpBase< Scalar > > & | A, | |
| const RCP< LinearOpBase< Scalar > > & | B, | |||
| const std::string & | label = "" | |||
| ) | [related] |
Form an implicit addition of two linear operators: M = A + B.
Definition at line 312 of file Thyra_DefaultAddedLinearOp.hpp.
| RCP< const LinearOpBase< Scalar > > add | ( | const RCP< const LinearOpBase< Scalar > > & | A, | |
| const RCP< const LinearOpBase< Scalar > > & | B, | |||
| const std::string & | label = "" | |||
| ) | [related] |
Form an implicit addition of two linear operators: M = A + B.
Definition at line 334 of file Thyra_DefaultAddedLinearOp.hpp.
| RCP< LinearOpBase< Scalar > > nonconstSubtract | ( | const RCP< LinearOpBase< Scalar > > & | A, | |
| const RCP< LinearOpBase< Scalar > > & | B, | |||
| const std::string & | label = "" | |||
| ) | [related] |
Form an implicit subtraction of two linear operators: M = A - B.
Definition at line 356 of file Thyra_DefaultAddedLinearOp.hpp.
| RCP< const LinearOpBase< Scalar > > subtract | ( | const RCP< const LinearOpBase< Scalar > > & | A, | |
| const RCP< const LinearOpBase< Scalar > > & | B, | |||
| const std::string & | label = "" | |||
| ) | [related] |
Form an implicit subtraction of two linear operators: M = A - B.
Definition at line 380 of file Thyra_DefaultAddedLinearOp.hpp.
1.4.7