ug4
ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename > Class Template Reference

#include <constrained_linear_iterator.h>

+ Inheritance diagram for ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >:

Classes

struct  apply_update_defect_impl
 
struct  apply_update_defect_impl< S, typename boost::enable_if< boost::is_base_of< IPreconditioner< TAlgebra >, S > >::type >
 

Public Types

typedef TLinIt base_type
 
typedef GridFunction< TDomain, TAlgebra > gf_type
 
typedef TAlgebra::vector_type vector_type
 

Public Member Functions

virtual SmartPtr< ILinearIterator< vector_type > > clone ()
 clone More...
 
 ConstrainedLinearIterator (const ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt > &parent)
 clone constructor More...
 
 ConstrainedLinearIterator (SmartPtr< IDomainDiscretization< TAlgebra > > domDisc)
 constructor More...
 
void set_time (number time)
 setter for time More...
 
virtual bool supports_parallel () const
 returns if parallel solving is supported More...
 
virtual ~ConstrainedLinearIterator ()
 destructor More...
 

Protected Member Functions

virtual bool apply (vector_type &c, const vector_type &d)
 
virtual bool apply_update_defect (vector_type &c, vector_type &d)
 
virtual bool init (SmartPtr< ILinearOperator< vector_type, vector_type > > J, const vector_type &u)
 
virtual bool init (SmartPtr< ILinearOperator< vector_type, vector_type > > L)
 
virtual const char * name () const
 returns the name of iterator More...
 

Protected Attributes

SmartPtr< IDomainDiscretization< TAlgebra > > m_spDomDisc
 
SmartPtr< ILinearIterator< vector_type > > m_spLinIt
 
number m_time
 

Friends

struct apply_update_defect_impl< TLinIt >
 

Detailed Description

template<typename TDomain, typename TAlgebra, typename TLinIt, typename = void>
class ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >

This class is a template for constraint-respecting versions of any linear iterator derived from ILinearIterator. This includes linear solvers as well as preconditioners. The derived ILinearIterator class must have a constructor without arguments. The handled constraints must implement the two methods: adjust_correction(), adjust_defect().

Note
This class may have lost its use: Constraints are now usually implemented in such a way that that both defect and correction is always zero in constrained DoFs.

Member Typedef Documentation

◆ base_type

template<typename TDomain , typename TAlgebra , typename TLinIt , typename = void>
typedef TLinIt ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >::base_type

◆ gf_type

template<typename TDomain , typename TAlgebra , typename TLinIt , typename = void>
typedef GridFunction<TDomain, TAlgebra> ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >::gf_type

◆ vector_type

template<typename TDomain , typename TAlgebra , typename TLinIt , typename = void>
typedef TAlgebra::vector_type ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >::vector_type

Constructor & Destructor Documentation

◆ ConstrainedLinearIterator() [1/2]

template<typename TDomain , typename TAlgebra , typename TLinIt , typename = void>
ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >::ConstrainedLinearIterator ( SmartPtr< IDomainDiscretization< TAlgebra > >  domDisc)
inline

constructor

◆ ConstrainedLinearIterator() [2/2]

template<typename TDomain , typename TAlgebra , typename TLinIt , typename = void>
ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >::ConstrainedLinearIterator ( const ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt > &  parent)
inline

clone constructor

◆ ~ConstrainedLinearIterator()

template<typename TDomain , typename TAlgebra , typename TLinIt , typename = void>
virtual ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >::~ConstrainedLinearIterator ( )
inlinevirtual

destructor

Member Function Documentation

◆ apply()

◆ apply_update_defect()

template<typename TDomain , typename TAlgebra , typename TLinIt , typename = void>
virtual bool ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >::apply_update_defect ( vector_type c,
vector_type d 
)
inlineprotectedvirtual

◆ clone()

template<typename TDomain , typename TAlgebra , typename TLinIt , typename = void>
virtual SmartPtr<ILinearIterator<vector_type> > ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >::clone ( )
inlinevirtual

clone

References make_sp().

◆ init() [1/2]

template<typename TDomain , typename TAlgebra , typename TLinIt , typename = void>
virtual bool ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >::init ( SmartPtr< ILinearOperator< vector_type, vector_type > >  J,
const vector_type u 
)
inlineprotectedvirtual

References init().

◆ init() [2/2]

template<typename TDomain , typename TAlgebra , typename TLinIt , typename = void>
virtual bool ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >::init ( SmartPtr< ILinearOperator< vector_type, vector_type > >  L)
inlineprotectedvirtual

References init().

◆ name()

template<typename TDomain , typename TAlgebra , typename TLinIt , typename = void>
virtual const char* ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >::name ( ) const
inlineprotectedvirtual

returns the name of iterator

This method returns the name of the iterator operator. This function is typically needed, when the iterator operator is used inside of another operator and some debug output should be printed

Returns
const char* name of inverse operator

References name.

◆ set_time()

template<typename TDomain , typename TAlgebra , typename TLinIt , typename = void>
void ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >::set_time ( number  time)
inline

◆ supports_parallel()

template<typename TDomain , typename TAlgebra , typename TLinIt , typename = void>
virtual bool ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >::supports_parallel ( ) const
inlinevirtual

returns if parallel solving is supported

Friends And Related Function Documentation

◆ apply_update_defect_impl< TLinIt >

template<typename TDomain , typename TAlgebra , typename TLinIt , typename = void>
friend struct apply_update_defect_impl< TLinIt >
friend

Member Data Documentation

◆ m_spDomDisc

template<typename TDomain , typename TAlgebra , typename TLinIt , typename = void>
SmartPtr<IDomainDiscretization<TAlgebra> > ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >::m_spDomDisc
protected

◆ m_spLinIt

template<typename TDomain , typename TAlgebra , typename TLinIt , typename = void>
SmartPtr<ILinearIterator<vector_type> > ug::ConstrainedLinearIterator< TDomain, TAlgebra, TLinIt, typename >::m_spLinIt
protected

◆ m_time


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