|
ug4
|
#include <std_injection.h>
Inheritance diagram for ug::StdInjection< TDomain, TAlgebra >:Public Types | |
| typedef TAlgebra | algebra_type |
| Type of algebra. | |
| typedef ITransferOperator< TDomain, TAlgebra > | base_type |
| Type of base class. | |
| typedef TDomain | domain_type |
| Type of Domain. | |
| typedef TAlgebra::matrix_type | matrix_type |
| Type of Vector. | |
| typedef TAlgebra::vector_type | vector_type |
| Type of Vector. | |
Public Types inherited from ug::ITransferOperator< TDomain, TAlgebra > | |
| typedef TDomain | domain_type |
| Domain type. | |
| typedef TAlgebra::matrix_type | matrix_type |
| Matrix type. | |
| typedef TAlgebra::vector_type | vector_type |
| Vector type. | |
Public Member Functions | |
| virtual SmartPtr< ITransferOperator< TDomain, TAlgebra > > | clone () |
| clones the operator | |
| virtual void | do_restrict (vector_type &uCoarse, const vector_type &uFine) |
| Apply Transposed Operator u = L^T*f. | |
| virtual void | init () |
| Init operator. | |
| virtual void | prolongate (vector_type &uFine, const vector_type &uCoarse) |
| Project uFine to uCoarse; uCoarse = P(uFine);. | |
| void | set_approximation_space (SmartPtr< ApproximationSpace< TDomain > > approxSpace) |
| Set Approximation Space. | |
| void | set_levels (GridLevel coarseLevel, GridLevel fineLevel) |
| Set approximation level. | |
| StdInjection () | |
| Constructor. | |
| StdInjection (SmartPtr< ApproximationSpace< TDomain > > approxSpace) | |
| Constructor. | |
| virtual | ~StdInjection () |
| virtual Destructor | |
Public Member Functions inherited from ug::ITransferOperator< TDomain, TAlgebra > | |
| virtual void | add_constraint (SmartPtr< IConstraint< TAlgebra > > pp) |
| adds a dirichlet post process (not added if already registered) | |
| virtual void | clear_constraints () |
| clears dirichlet post processes | |
| ITransferOperator () | |
| constructor | |
| virtual SmartPtr< matrix_type > | prolongation (const GridLevel &fineGL, const GridLevel &coarseGL, ConstSmartPtr< ApproximationSpace< TDomain > > spApproxSpace) |
| returns prolongation as a matrix | |
| virtual void | remove_constraint (SmartPtr< IConstraint< TAlgebra > > pp) |
| removes a post process | |
| virtual SmartPtr< matrix_type > | restriction (const GridLevel &coarseGL, const GridLevel &fineGL, ConstSmartPtr< ApproximationSpace< TDomain > > spApproxSpace) |
| returns restriction as a matrix | |
| virtual | ~ITransferOperator () |
| virtual destructor | |
Protected Member Functions | |
| template<typename TElem > | |
| void | set_identity_on_pure_surface (matrix_type &mat, const DoFDistribution &coarseDD, const DoFDistribution &fineDD) |
| void | set_identity_on_pure_surface (matrix_type &mat, const DoFDistribution &coarseDD, const DoFDistribution &fineDD) |
Protected Attributes | |
| bool | m_bInit |
| init flag | |
| GridLevel | m_coarseLevel |
| coarse level of approximation space | |
| GridLevel | m_fineLevel |
| fine level of approximation space | |
| matrix_type | m_matrix |
| matrix used for projection | |
| SmartPtr< ApproximationSpace< TDomain > > | m_spApproxSpace |
| the underlying approximation space | |
Protected Attributes inherited from ug::ITransferOperator< TDomain, TAlgebra > | |
| std::vector< SmartPtr< IConstraint< TAlgebra > > > | m_vConstraint |
| list of post processes | |
The Projection operator transfers is used to transfer vectors between two grid levels. It implements a purely algebraic interface, just mapping between two algebraic vectors, but given the approximation space this is indeed a mapping between two grid functions.
| TDomain | the domain |
| TAlgebra | the algebra |
| typedef TAlgebra ug::StdInjection< TDomain, TAlgebra >::algebra_type |
Type of algebra.
| typedef ITransferOperator<TDomain, TAlgebra> ug::StdInjection< TDomain, TAlgebra >::base_type |
Type of base class.
| typedef TDomain ug::StdInjection< TDomain, TAlgebra >::domain_type |
Type of Domain.
| typedef TAlgebra::matrix_type ug::StdInjection< TDomain, TAlgebra >::matrix_type |
Type of Vector.
| typedef TAlgebra::vector_type ug::StdInjection< TDomain, TAlgebra >::vector_type |
Type of Vector.
|
inline |
Constructor.
|
inline |
Constructor.
|
inlinevirtual |
virtual Destructor
|
virtual |
clones the operator
Implements ug::ITransferOperator< TDomain, TAlgebra >.
|
virtual |
Apply Transposed Operator u = L^T*f.
Implements ug::ITransferOperator< TDomain, TAlgebra >.
References PROFILE_FUNC_GROUP, UG_ASSERT, UG_CATCH_THROW, and UG_THROW.
|
virtual |
Init operator.
Implements ug::ITransferOperator< TDomain, TAlgebra >.
References ug::LFEID::LAGRANGE, PROFILE_FUNC_GROUP, ug::PST_CONSISTENT, UG_CATCH_THROW, and UG_THROW.
|
virtual |
Project uFine to uCoarse; uCoarse = P(uFine);.
Implements ug::ITransferOperator< TDomain, TAlgebra >.
References PROFILE_FUNC_GROUP, UG_ASSERT, and UG_THROW.
| void ug::StdInjection< TDomain, TAlgebra >::set_approximation_space | ( | SmartPtr< ApproximationSpace< TDomain > > | approxSpace | ) |
Set Approximation Space.
|
protected |
|
protected |
References ug::EDGE, ug::FACE, ug::DoFDistributionInfoProvider::max_dofs(), ug::VERTEX, and ug::VOLUME.
|
virtual |
Set approximation level.
Implements ug::ITransferOperator< TDomain, TAlgebra >.
References UG_THROW.
|
protected |
init flag
|
protected |
coarse level of approximation space
|
protected |
fine level of approximation space
|
protected |
matrix used for projection
|
protected |
the underlying approximation space