ug4
|
interface for transfer routines More...
#include <transfer_interface.h>
Public Types | |
typedef TDomain | domain_type |
Domain type. More... | |
typedef TAlgebra::matrix_type | matrix_type |
Matrix type. More... | |
typedef TAlgebra::vector_type | vector_type |
Vector type. More... | |
Public Member Functions | |
virtual void | add_constraint (SmartPtr< IConstraint< TAlgebra > > pp) |
adds a dirichlet post process (not added if already registered) More... | |
virtual void | clear_constraints () |
clears dirichlet post processes More... | |
virtual SmartPtr< ITransferOperator< TDomain, TAlgebra > > | clone ()=0 |
Clone. More... | |
virtual void | do_restrict (vector_type &uCoarse, const vector_type &uFine)=0 |
Restricts vector, i.e. moves data from fine to coarse level. More... | |
virtual void | init ()=0 |
initialize the operator More... | |
ITransferOperator () | |
constructor More... | |
virtual void | prolongate (vector_type &uFine, const vector_type &uCoarse)=0 |
Prolongates vector, i.e. moves data from coarse to fine level. More... | |
virtual SmartPtr< matrix_type > | prolongation (const GridLevel &fineGL, const GridLevel &coarseGL, ConstSmartPtr< ApproximationSpace< TDomain > > spApproxSpace) |
returns prolongation as a matrix More... | |
virtual void | remove_constraint (SmartPtr< IConstraint< TAlgebra > > pp) |
removes a post process More... | |
virtual SmartPtr< matrix_type > | restriction (const GridLevel &coarseGL, const GridLevel &fineGL, ConstSmartPtr< ApproximationSpace< TDomain > > spApproxSpace) |
returns restriction as a matrix More... | |
virtual void | set_levels (GridLevel coarseLevel, GridLevel fineLevel)=0 |
Set Levels for Prolongation coarse -> fine. More... | |
virtual | ~ITransferOperator () |
virtual destructor More... | |
Protected Attributes | |
std::vector< SmartPtr< IConstraint< TAlgebra > > > | m_vConstraint |
list of post processes More... | |
interface for transfer routines
typedef TDomain ug::ITransferOperator< TDomain, TAlgebra >::domain_type |
Domain type.
typedef TAlgebra::matrix_type ug::ITransferOperator< TDomain, TAlgebra >::matrix_type |
Matrix type.
typedef TAlgebra::vector_type ug::ITransferOperator< TDomain, TAlgebra >::vector_type |
Vector type.
|
inline |
constructor
References ug::ITransferOperator< TDomain, TAlgebra >::clear_constraints().
|
inlinevirtual |
virtual destructor
|
inlinevirtual |
adds a dirichlet post process (not added if already registered)
References ug::find(), and ug::ITransferOperator< TDomain, TAlgebra >::m_vConstraint.
|
inlinevirtual |
clears dirichlet post processes
References ug::ITransferOperator< TDomain, TAlgebra >::m_vConstraint.
Referenced by ug::ITransferOperator< TDomain, TAlgebra >::ITransferOperator().
|
pure virtual |
|
pure virtual |
Restricts vector, i.e. moves data from fine to coarse level.
Implemented in ug::StdTransfer< TDomain, TAlgebra >, ug::StdInjection< TDomain, TAlgebra >, and ug::Electromagnetism::NedelecTransfer< class, class >.
|
pure virtual |
initialize the operator
Implemented in ug::TruncatedMonotoneTransfer< TDomain, TAlgebra >, ug::StdTransfer< TDomain, TAlgebra >, ug::StdInjection< TDomain, TAlgebra >, and ug::Electromagnetism::NedelecTransfer< class, class >.
|
pure virtual |
Prolongates vector, i.e. moves data from coarse to fine level.
Implemented in ug::Electromagnetism::NedelecTransfer< class, class >, ug::StdTransfer< TDomain, TAlgebra >, and ug::StdInjection< TDomain, TAlgebra >.
|
inlinevirtual |
returns prolongation as a matrix
Reimplemented in ug::TruncatedMonotoneTransfer< TDomain, TAlgebra >, and ug::StdTransfer< TDomain, TAlgebra >.
References UG_THROW.
|
inlinevirtual |
removes a post process
References ug::ITransferOperator< TDomain, TAlgebra >::m_vConstraint.
|
inlinevirtual |
returns restriction as a matrix
Reimplemented in ug::TruncatedMonotoneTransfer< TDomain, TAlgebra >, and ug::StdTransfer< TDomain, TAlgebra >.
References UG_THROW.
|
pure virtual |
Set Levels for Prolongation coarse -> fine.
Implemented in ug::TruncatedMonotoneTransfer< TDomain, TAlgebra >, ug::StdTransfer< TDomain, TAlgebra >, ug::StdInjection< TDomain, TAlgebra >, and ug::Electromagnetism::NedelecTransfer< class, class >.
|
protected |