33 #ifndef __H__UG__LIB_DISC__OPERATOR__LINEAR_OPERATOR__TRANSFER_INTERFACE__
34 #define __H__UG__LIB_DISC__OPERATOR__LINEAR_OPERATOR__TRANSFER_INTERFACE__
48 template <
typename TDomain,
typename TAlgebra>
99 UG_THROW(
"ITransferOperator: Matrix-prolongation not implemented.")
106 UG_THROW(
"ITransferOperator: Matrix-restriction not implemented.")
126 template <
typename TDomain,
typename TAlgebra>
Definition: smart_pointer.h:296
Definition: smart_pointer.h:108
base class for approximation spaces without type of algebra or dof distribution
Definition: approximation_space.h:279
represents numerical solutions on a grid using an algebraic vector
Definition: grid_function.h:121
Definition: grid_level.h:42
interface for adjustment of constraints
Definition: constraint_interface.h:63
interface for transfer routines
Definition: transfer_interface.h:50
virtual void remove_constraint(SmartPtr< IConstraint< TAlgebra > > pp)
removes a post process
Definition: transfer_interface.h:77
virtual ~ITransferOperator()
virtual destructor
Definition: transfer_interface.h:113
ITransferOperator()
constructor
Definition: transfer_interface.h:63
TAlgebra::matrix_type matrix_type
Matrix type.
Definition: transfer_interface.h:56
virtual void prolongate(vector_type &uFine, const vector_type &uCoarse)=0
Prolongates vector, i.e. moves data from coarse to fine level.
TDomain domain_type
Domain type.
Definition: transfer_interface.h:59
virtual SmartPtr< matrix_type > restriction(const GridLevel &coarseGL, const GridLevel &fineGL, ConstSmartPtr< ApproximationSpace< TDomain > > spApproxSpace)
returns restriction as a matrix
Definition: transfer_interface.h:104
std::vector< SmartPtr< IConstraint< TAlgebra > > > m_vConstraint
list of post processes
Definition: transfer_interface.h:117
virtual void init()=0
initialize the operator
virtual void do_restrict(vector_type &uCoarse, const vector_type &uFine)=0
Restricts vector, i.e. moves data from fine to coarse level.
virtual SmartPtr< matrix_type > prolongation(const GridLevel &fineGL, const GridLevel &coarseGL, ConstSmartPtr< ApproximationSpace< TDomain > > spApproxSpace)
returns prolongation as a matrix
Definition: transfer_interface.h:97
virtual void add_constraint(SmartPtr< IConstraint< TAlgebra > > pp)
adds a dirichlet post process (not added if already registered)
Definition: transfer_interface.h:69
TAlgebra::vector_type vector_type
Vector type.
Definition: transfer_interface.h:53
virtual void set_levels(GridLevel coarseLevel, GridLevel fineLevel)=0
Set Levels for Prolongation coarse -> fine.
virtual void clear_constraints()
clears dirichlet post processes
Definition: transfer_interface.h:66
virtual SmartPtr< ITransferOperator< TDomain, TAlgebra > > clone()=0
Clone.
interface for transfer routines
Definition: transfer_interface.h:128
virtual ~ITransferPostProcess()
virtual destructor
Definition: transfer_interface.h:144
virtual void post_process(SmartPtr< GF > spGF)=0
apply post process
TDomain domain_type
Domain type.
Definition: transfer_interface.h:134
TAlgebra::vector_type vector_type
Vector type.
Definition: transfer_interface.h:131
GridFunction< TDomain, TAlgebra > GF
GridFunction type.
Definition: transfer_interface.h:137
#define UG_THROW(msg)
Definition: error.h:57
IndexLayout::Interface::iterator find(IndexLayout::Interface &interface, size_t i)
Definition: parallel_index_layout.h:77