Namespaces | |
| NonMatching | |
| Patterns | |
Functions | |
| template<typename Range , typename Domain , typename Payload = internal::LinearOperatorImplementation::EmptyPayload> | |
| LinearOperator< Range, Domain, Payload > | projection_operator (const Range &range_exemplar, const std::vector< std::reference_wrapper< const Domain >> &local_basis, const Domain *domain_exemplar=nullptr, const Payload &payload=Payload()) |
| Construct a LinearOperator object that projects a vector onto a basis. More... | |
| LinearOperator<Range, Domain, Payload> dealii::projection_operator | ( | const Range & | range_exemplar, |
| const std::vector< std::reference_wrapper< const Domain >> & | local_basis, | ||
| const Domain * | domain_exemplar = nullptr, |
||
| const Payload & | payload = Payload() |
||
| ) |
Construct a LinearOperator object that projects a vector onto a basis.
This function can be used to perform model order reduction, i.e. to project a large dimensional vector onto a smaller dimensional subspace. A typical usage of this class is the following:
| range_exemplar | An exmeplar vector of the range space. We'll make a few copies of this vector to allow the operator to be used with intermediate storage. |
| local_basis | A vector of references to the locally owned basis vectors. These vectors must be ordered according to the IndexSet Range::locally_owned_elements() of the range space. |
| domain_exemplar | If used in parallel, it may happen that some processes do not own any index of the Range space. In this case, you need to provide a pointer to a Domain vector to be used as an exemplar vector. |
Definition at line 77 of file projection_operator.h.
References VectorOperation::add, Assert, AssertDimension, StandardExceptions::ExcMessage(), and TrilinosWrappers::linear_operator().
Referenced by PDEs::Serial::ReducedLagrange< dim, spacedim >::solve().