ug4
ug::ITransferOperator< TDomain, TAlgebra > Class Template Referenceabstract

interface for transfer routines More...

#include <transfer_interface.h>

+ Inheritance diagram for ug::ITransferOperator< TDomain, TAlgebra >:

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_typeprolongation (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_typerestriction (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...
 

Detailed Description

template<typename TDomain, typename TAlgebra>
class ug::ITransferOperator< TDomain, TAlgebra >

interface for transfer routines

Member Typedef Documentation

◆ domain_type

template<typename TDomain , typename TAlgebra >
typedef TDomain ug::ITransferOperator< TDomain, TAlgebra >::domain_type

Domain type.

◆ matrix_type

template<typename TDomain , typename TAlgebra >
typedef TAlgebra::matrix_type ug::ITransferOperator< TDomain, TAlgebra >::matrix_type

Matrix type.

◆ vector_type

template<typename TDomain , typename TAlgebra >
typedef TAlgebra::vector_type ug::ITransferOperator< TDomain, TAlgebra >::vector_type

Vector type.

Constructor & Destructor Documentation

◆ ITransferOperator()

template<typename TDomain , typename TAlgebra >
ug::ITransferOperator< TDomain, TAlgebra >::ITransferOperator ( )
inline

◆ ~ITransferOperator()

template<typename TDomain , typename TAlgebra >
virtual ug::ITransferOperator< TDomain, TAlgebra >::~ITransferOperator ( )
inlinevirtual

virtual destructor

Member Function Documentation

◆ add_constraint()

template<typename TDomain , typename TAlgebra >
virtual void ug::ITransferOperator< TDomain, TAlgebra >::add_constraint ( SmartPtr< IConstraint< TAlgebra > >  pp)
inlinevirtual

adds a dirichlet post process (not added if already registered)

References ug::find(), and ug::ITransferOperator< TDomain, TAlgebra >::m_vConstraint.

◆ clear_constraints()

template<typename TDomain , typename TAlgebra >
virtual void ug::ITransferOperator< TDomain, TAlgebra >::clear_constraints ( )
inlinevirtual

◆ clone()

template<typename TDomain , typename TAlgebra >
virtual SmartPtr<ITransferOperator<TDomain, TAlgebra> > ug::ITransferOperator< TDomain, TAlgebra >::clone ( )
pure virtual

◆ do_restrict()

template<typename TDomain , typename TAlgebra >
virtual void ug::ITransferOperator< TDomain, TAlgebra >::do_restrict ( vector_type uCoarse,
const vector_type uFine 
)
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 >.

◆ init()

template<typename TDomain , typename TAlgebra >
virtual void ug::ITransferOperator< TDomain, TAlgebra >::init ( )
pure virtual

◆ prolongate()

template<typename TDomain , typename TAlgebra >
virtual void ug::ITransferOperator< TDomain, TAlgebra >::prolongate ( vector_type uFine,
const vector_type uCoarse 
)
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 >.

◆ prolongation()

template<typename TDomain , typename TAlgebra >
virtual SmartPtr<matrix_type> ug::ITransferOperator< TDomain, TAlgebra >::prolongation ( const GridLevel fineGL,
const GridLevel coarseGL,
ConstSmartPtr< ApproximationSpace< TDomain > >  spApproxSpace 
)
inlinevirtual

returns prolongation as a matrix

Reimplemented in ug::TruncatedMonotoneTransfer< TDomain, TAlgebra >, and ug::StdTransfer< TDomain, TAlgebra >.

References UG_THROW.

◆ remove_constraint()

template<typename TDomain , typename TAlgebra >
virtual void ug::ITransferOperator< TDomain, TAlgebra >::remove_constraint ( SmartPtr< IConstraint< TAlgebra > >  pp)
inlinevirtual

◆ restriction()

template<typename TDomain , typename TAlgebra >
virtual SmartPtr<matrix_type> ug::ITransferOperator< TDomain, TAlgebra >::restriction ( const GridLevel coarseGL,
const GridLevel fineGL,
ConstSmartPtr< ApproximationSpace< TDomain > >  spApproxSpace 
)
inlinevirtual

returns restriction as a matrix

Reimplemented in ug::TruncatedMonotoneTransfer< TDomain, TAlgebra >, and ug::StdTransfer< TDomain, TAlgebra >.

References UG_THROW.

◆ set_levels()

template<typename TDomain , typename TAlgebra >
virtual void ug::ITransferOperator< TDomain, TAlgebra >::set_levels ( GridLevel  coarseLevel,
GridLevel  fineLevel 
)
pure virtual

Member Data Documentation

◆ m_vConstraint

template<typename TDomain , typename TAlgebra >
std::vector<SmartPtr<IConstraint<TAlgebra> > > ug::ITransferOperator< TDomain, TAlgebra >::m_vConstraint
protected

The documentation for this class was generated from the following file: