33 #ifndef __H__UG__LIB_DISC__OPERATOR__NON_LINEAR_OPERATOR__TRUNCATED_MONOTONE_MG__TRUNCATED_MONOTONE_TRANSFER_IMPL_H_
34 #define __H__UG__LIB_DISC__OPERATOR__NON_LINEAR_OPERATOR__TRUNCATED_MONOTONE_MG__TRUNCATED_MONOTONE_TRANSFER_IMPL_H_
40 template <
typename TDomain,
typename TAlgebra>
46 m_fineLevel = fineLevel;
47 m_coarseLevel = coarseLevel;
49 if(m_fineLevel.level () - m_coarseLevel.level () != 1)
50 UG_THROW(
"TruncatedMonotoneTransfer: Can only project between successive level.");
53 template <
typename TDomain,
typename TAlgebra>
63 template <
typename TDomain,
typename TAlgebra>
74 template <
typename TDomain,
typename TAlgebra>
86 int topLev = spApproxSpace->num_levels() - 1;
87 if(topLev == fineGL.
level())
89 UG_LOG(
"on topLevel: " <<topLev<<
"\n");
99 for(
size_t i = 0; i < m_vConstraint.size(); ++i)
102 UG_LOG(
"is CT_CONSTRAINT")
103 m_vConstraint[i]->adjust_restriction(*stdR, spCoarseDD, spFineDD,
CT_CONSTRAINTS);
111 template <
typename TDomain,
typename TAlgebra>
117 for(
size_t i = 0; i < m_vConstraint.size (); ++i)
118 op->add_constraint (m_vConstraint[i]);
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
Definition: grid_level.h:42
int level() const
returns the level
Definition: grid_level.h:74
void set_storage_type(uint type)
sets the storage type
Definition: parallel_matrix.h:101
Definition: truncated_monotone_transfer.h:43
SmartPtr< ITransferOperator< TDomain, TAlgebra > > clone()
Clone.
Definition: truncated_monotone_transfer_impl.h:114
void init()
initialize the operator
Definition: truncated_monotone_transfer_impl.h:56
SmartPtr< matrix_type > restriction(const GridLevel &coarseGL, const GridLevel &fineGL, ConstSmartPtr< ApproximationSpace< TDomain > > spApproxSpace)
returns restriction as a matrix
Definition: truncated_monotone_transfer_impl.h:77
SmartPtr< matrix_type > prolongation(const GridLevel &fineGL, const GridLevel &coarseGL, ConstSmartPtr< ApproximationSpace< TDomain > > spApproxSpace)
returns prolongation as a matrix
Definition: truncated_monotone_transfer_impl.h:66
void set_levels(GridLevel coarseLevel, GridLevel fineLevel)
Set Levels for Prolongation coarse -> fine.
Definition: truncated_monotone_transfer_impl.h:43
@ PST_CONSISTENT
Definition: parallel_storage_type.h:68
#define UG_THROW(msg)
Definition: error.h:57
#define UG_LOG(msg)
Definition: log.h:367
@ CT_CONSTRAINTS
Definition: ass_tuner.h:58