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_
40template <
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.");
53template <
typename TDomain,
typename TAlgebra>
63template <
typename TDomain,
typename TAlgebra>
74template <
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);
111template <
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
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