Loading [MathJax]/extensions/tex2jax.js
ug4
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
ug::AssembledTransformingSmoother< TDomain, TAlgebra > Class Template Reference

#include <transforming.h>

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

Public Types

typedef TAlgebra algebra_type
 Algebra type.
 
typedef TDomain domain_type
 Domain.
 
typedef algebra_type::matrix_type matrix_type
 Matrix type.
 
typedef algebra_type::vector_type vector_type
 Vector type.
 
- Public Types inherited from ug::ITransformingIteration< TAlgebra, AssembledTransformingSmoother< TDomain, TAlgebra > >
typedef TAlgebra algebra_type
 Algebra type.
 
typedef algebra_type::matrix_type matrix_type
 Matrix type.
 
typedef algebra_type::vector_type vector_type
 Vector type.
 
- Public Types inherited from ug::ILinearIterator< TAlgebra::vector_type >
typedef TAlgebra::vector_type codomain_function_type
 Range space.
 
typedef TAlgebra::vector_type domain_function_type
 Domain space.
 
- Public Types inherited from ug::DebugWritingObject< TAlgebra >
typedef TAlgebra algebra_type
 type of algebra
 
typedef TAlgebra::matrix_type matrix_type
 type of matrix
 
typedef TAlgebra::vector_type vector_type
 type of vector
 
- Public Types inherited from ug::VectorDebugWritingObject< TAlgebra::vector_type >
typedef TAlgebra::vector_type vector_type
 type of vector
 

Public Member Functions

bool apply_transformed (vector_type &c, const vector_type &d)
 
 AssembledTransformingSmoother (SmartPtr< IAssemble< TAlgebra > > spAuxSystemAss, SmartPtr< ILinearIterator< vector_type > > spAuxSmoother, SmartPtr< IAssemble< TAlgebra > > spRightTrafoAss, SmartPtr< ILinearIterator< vector_type > > spRightTrafoSmoother=SPNULL)
 constructor setting approximation space
 
SmartPtr< ILinearIterator< vector_type > > clone ()
 Clone.
 
bool init (SmartPtr< ILinearOperator< vector_type > > J, const vector_type &u)
 
bool init (SmartPtr< ILinearOperator< vector_type > > L)
 Since we need grid information, linear operators are not supported...
 
virtual const char * name () const
 name
 
SmartPtr< ILinearOperator< vector_type > > original_operator ()
 
virtual bool supports_parallel () const
 returns if parallel solving is supported
 
bool transform_defect (vector_type &c, const vector_type &d)
 
bool untransform_correction (vector_type &c, const vector_type &d)
 
- Public Member Functions inherited from ug::ITransformingIteration< TAlgebra, AssembledTransformingSmoother< TDomain, TAlgebra > >
virtual bool apply (vector_type &c, const vector_type &d)
 implementation of apply (final, non-CRTP)
 
bool apply_transformed (vector_type &c, const vector_type &d)
 map: dtilde -> ctilde (CRTP)
 
virtual bool apply_update_defect (vector_type &c, vector_type &d)
 implementation of apply (final, non-CRTP)
 
bool init (SmartPtr< ILinearOperator< vector_type > > J, const vector_type &u)
 implementation of init for non-linear (CRTP)
 
bool init (SmartPtr< ILinearOperator< vector_type > > L)
 implementation of init for linear (CRTP)
 
 ITransformingIteration ()
 
 ITransformingIteration (const ITransformingIteration &ti)
 
SmartPtr< ILinearOperator< vector_type > > original_operator ()
 original operator (CRTP)
 
bool transform_defect (vector_type &c, const vector_type &d)
 map: d -> dtilde (CRTP)
 
bool untransform_correction (vector_type &c, const vector_type &d)
 map: ctilde -> c (CRTP)
 
- Public Member Functions inherited from ug::ILinearIterator< TAlgebra::vector_type >
virtual bool apply (TAlgebra::vector_type &c, const TAlgebra::vector_type &d)=0
 compute new correction c = B*d
 
virtual bool apply_update_defect (TAlgebra::vector_type &c, TAlgebra::vector_type &d)=0
 compute new correction c = B*d and update defect d := d - A*c
 
virtual std::string config_string () const
 
SmartPtr< IDamping< TAlgebra::vector_type, TAlgebra::vector_type > > damping ()
 returns the scaling
 
 ILinearIterator ()
 constructor
 
 ILinearIterator (const ILinearIterator< TAlgebra::vector_type, TAlgebra::vector_type > &parent)
 copy constructor
 
virtual bool init (SmartPtr< ILinearOperator< TAlgebra::vector_type, TAlgebra::vector_type > > J, const TAlgebra::vector_type &u)=0
 initialize for operator J(u) and linearization point u
 
virtual bool init (SmartPtr< ILinearOperator< TAlgebra::vector_type, TAlgebra::vector_type > > L)=0
 initialize for linear operator L
 
void set_damp (number factor)
 sets the damping to a constant factor
 
void set_damp (SmartPtr< IDamping< TAlgebra::vector_type, TAlgebra::vector_type > > spScaling)
 sets a scaling for the correction
 
virtual ~ILinearIterator ()
 virtual destructor
 
- Public Member Functions inherited from ug::DebugWritingObject< TAlgebra >
SmartPtr< IDebugWriter< algebra_type > > debug_writer ()
 returns the debug writer
 
ConstSmartPtr< IDebugWriter< algebra_type > > debug_writer () const
 
bool debug_writer_valid () const
 returns true if the debug writer is set
 
 DebugWritingObject ()
 
 DebugWritingObject (const DebugWritingObject< algebra_type > &parent)
 clone constructor
 
 DebugWritingObject (SmartPtr< IDebugWriter< algebra_type > > spDebugWriter)
 
virtual void set_debug (SmartPtr< IDebugWriter< algebra_type > > spDebugWriter)
 set debug writer
 
virtual ~DebugWritingObject ()
 virtual destructor
 
- Public Member Functions inherited from ug::VectorDebugWritingObject< TAlgebra::vector_type >
virtual void set_debug (SmartPtr< IVectorDebugWriter< vector_type > > spDebugWriter)
 set debug writer
 
SmartPtr< IVectorDebugWriter< vector_type > > vector_debug_writer ()
 returns the debug writer
 
ConstSmartPtr< IVectorDebugWriter< vector_type > > vector_debug_writer () const
 
bool vector_debug_writer_valid () const
 returns true if the debug writer is set
 
 VectorDebugWritingObject ()
 
 VectorDebugWritingObject (SmartPtr< IVectorDebugWriter< vector_type > > spDebugWriter)
 
void write_debug (const vector_type &vec, const char *filename)
 writing debug output for a vector (if debug writer set)
 
virtual ~VectorDebugWritingObject ()
 virtual destructor
 

Protected Attributes

SmartPtr< vector_typem_spAuxCorrection
 auxiliary correction vector
 
SmartPtr< MatrixOperator< matrix_type, vector_type > > m_spAuxMatrixOperator
 matrix (operator) of transformed system
 
SmartPtr< ILinearIterator< vector_type > > m_spAuxSmoother
 smoother used on transformed system
 
SmartPtr< IAssemble< TAlgebra > > m_spAuxSystemAss
 assembling the transformed system
 
SmartPtr< ILinearOperator< vector_type > > m_spOriginalSystemOp
 matrix for original system
 
SmartPtr< IAssemble< TAlgebra > > m_spRightTrafoAss
 assembling the right-transformation
 
SmartPtr< MatrixOperator< matrix_type, vector_type > > m_spRightTrafoMat
 matrix (operator) of right-transformation
 
SmartPtr< ILinearIterator< vector_type > > m_spRightTrafoSmoother
 smoother used on transformed system
 
- Protected Attributes inherited from ug::ILinearIterator< TAlgebra::vector_type >
SmartPtr< IDamping< TAlgebra::vector_type, TAlgebra::vector_type > > m_spDamping
 the scaling
 
- Protected Attributes inherited from ug::DebugWritingObject< TAlgebra >
SmartPtr< IDebugWriter< algebra_type > > m_spDebugWriter
 Debug Writer.
 
- Protected Attributes inherited from ug::VectorDebugWritingObject< TAlgebra::vector_type >
SmartPtr< IVectorDebugWriter< vector_type > > m_spVectorDebugWriter
 Debug Writer.
 

Additional Inherited Members

- Protected Member Functions inherited from ug::DebugWritingObject< TAlgebra >
void enter_debug_writer_section (const char *secDir)
 enters a debugging section
 
void enter_debug_writer_section (std::string secDir)
 enters a debugging section
 
void leave_debug_writer_section ()
 leaves a debugging section
 
void write_debug (const matrix_type &mat, const char *filename)
 write debug output for a matrix (if debug writer set)
 
void write_debug (const matrix_type &mat, std::string name)
 write debug output for a matrix (if debug writer set)
 
- Protected Member Functions inherited from ug::VectorDebugWritingObject< TAlgebra::vector_type >
void enter_vector_debug_writer_section (const char *secDir)
 enters a debugging section
 
void enter_vector_debug_writer_section (std::string secDir)
 enters a debugging section
 
void leave_vector_debug_writer_section ()
 leaves a debugging section
 
void print_debugger_message (const char *msg)
 prints a debugger message (listing all the sections)
 
void print_debugger_message (std::string msg)
 prints a debugger message (listing all the sections)
 
virtual void write_debug (const vector_type &vec, std::string name)
 writing debug output for a vector (if debug writer set)
 

Member Typedef Documentation

◆ algebra_type

template<typename TDomain , typename TAlgebra >
typedef TAlgebra ug::AssembledTransformingSmoother< TDomain, TAlgebra >::algebra_type

Algebra type.

◆ domain_type

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

◆ matrix_type

template<typename TDomain , typename TAlgebra >
typedef algebra_type::matrix_type ug::AssembledTransformingSmoother< TDomain, TAlgebra >::matrix_type

Matrix type.

◆ vector_type

template<typename TDomain , typename TAlgebra >
typedef algebra_type::vector_type ug::AssembledTransformingSmoother< TDomain, TAlgebra >::vector_type

Vector type.

Constructor & Destructor Documentation

◆ AssembledTransformingSmoother()

template<typename TDomain , typename TAlgebra >
ug::AssembledTransformingSmoother< TDomain, TAlgebra >::AssembledTransformingSmoother ( SmartPtr< IAssemble< TAlgebra > >  spAuxSystemAss,
SmartPtr< ILinearIterator< vector_type > >  spAuxSmoother,
SmartPtr< IAssemble< TAlgebra > >  spRightTrafoAss,
SmartPtr< ILinearIterator< vector_type > >  spRightTrafoSmoother = SPNULL 
)
inline

constructor setting approximation space

References new().

Member Function Documentation

◆ apply_transformed()

template<typename TDomain , typename TAlgebra >
bool ug::AssembledTransformingSmoother< TDomain, TAlgebra >::apply_transformed ( vector_type c,
const vector_type d 
)

temporary vector for defect vector_type dTmp; dTmp.resize(d.size());

copy defect dTmp = d;

work on copy return apply_update_defect(c, dTmp);

References UG_LOG.

◆ clone()

template<typename TDomain , typename TAlgebra >
SmartPtr< ILinearIterator< typename TAlgebra::vector_type > > ug::AssembledTransformingSmoother< TDomain, TAlgebra >::clone ( )
virtual

◆ init() [1/2]

template<typename TDomain , typename TAlgebra >
bool ug::AssembledTransformingSmoother< TDomain, TAlgebra >::init ( SmartPtr< ILinearOperator< vector_type > >  J,
const vector_type u 
)

◆ init() [2/2]

template<typename TDomain , typename TAlgebra >
bool ug::AssembledTransformingSmoother< TDomain, TAlgebra >::init ( SmartPtr< ILinearOperator< vector_type > >  L)
inline

Since we need grid information, linear operators are not supported...

References UG_THROW.

◆ name()

template<typename TDomain , typename TAlgebra >
virtual const char * ug::AssembledTransformingSmoother< TDomain, TAlgebra >::name ( ) const
inlinevirtual

◆ original_operator()

template<typename TDomain , typename TAlgebra >
SmartPtr< ILinearOperator< vector_type > > ug::AssembledTransformingSmoother< TDomain, TAlgebra >::original_operator ( )
inline

◆ supports_parallel()

template<typename TDomain , typename TAlgebra >
virtual bool ug::AssembledTransformingSmoother< TDomain, TAlgebra >::supports_parallel ( ) const
inlinevirtual

◆ transform_defect()

template<typename TDomain , typename TAlgebra >
bool ug::AssembledTransformingSmoother< TDomain, TAlgebra >::transform_defect ( vector_type c,
const vector_type d 
)
inline

◆ untransform_correction()

template<typename TDomain , typename TAlgebra >
bool ug::AssembledTransformingSmoother< TDomain, TAlgebra >::untransform_correction ( vector_type c,
const vector_type d 
)

References ug::PST_CONSISTENT, SPNULL, and UG_LOG.

Member Data Documentation

◆ m_spAuxCorrection

template<typename TDomain , typename TAlgebra >
SmartPtr<vector_type> ug::AssembledTransformingSmoother< TDomain, TAlgebra >::m_spAuxCorrection
protected

auxiliary correction vector

◆ m_spAuxMatrixOperator

template<typename TDomain , typename TAlgebra >
SmartPtr<MatrixOperator<matrix_type, vector_type> > ug::AssembledTransformingSmoother< TDomain, TAlgebra >::m_spAuxMatrixOperator
protected

matrix (operator) of transformed system

◆ m_spAuxSmoother

template<typename TDomain , typename TAlgebra >
SmartPtr<ILinearIterator<vector_type> > ug::AssembledTransformingSmoother< TDomain, TAlgebra >::m_spAuxSmoother
protected

smoother used on transformed system

Referenced by ug::AssembledTransformingSmoother< TDomain, TAlgebra >::supports_parallel().

◆ m_spAuxSystemAss

template<typename TDomain , typename TAlgebra >
SmartPtr<IAssemble<TAlgebra> > ug::AssembledTransformingSmoother< TDomain, TAlgebra >::m_spAuxSystemAss
protected

assembling the transformed system

◆ m_spOriginalSystemOp

template<typename TDomain , typename TAlgebra >
SmartPtr<ILinearOperator<vector_type> > ug::AssembledTransformingSmoother< TDomain, TAlgebra >::m_spOriginalSystemOp
protected

◆ m_spRightTrafoAss

template<typename TDomain , typename TAlgebra >
SmartPtr<IAssemble<TAlgebra> > ug::AssembledTransformingSmoother< TDomain, TAlgebra >::m_spRightTrafoAss
protected

assembling the right-transformation

◆ m_spRightTrafoMat

template<typename TDomain , typename TAlgebra >
SmartPtr<MatrixOperator<matrix_type, vector_type> > ug::AssembledTransformingSmoother< TDomain, TAlgebra >::m_spRightTrafoMat
protected

matrix (operator) of right-transformation

◆ m_spRightTrafoSmoother

template<typename TDomain , typename TAlgebra >
SmartPtr<ILinearIterator<vector_type> > ug::AssembledTransformingSmoother< TDomain, TAlgebra >::m_spRightTrafoSmoother
protected

smoother used on transformed system


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