ug4
|
#include <transforming.h>
Public Types | |
typedef TAlgebra | algebra_type |
Algebra type. More... | |
typedef algebra_type::matrix_type | matrix_type |
Matrix type. More... | |
typedef algebra_type::vector_type | vector_type |
Vector type. More... | |
Public Types inherited from ug::ILinearIterator< TAlgebra::vector_type > | |
typedef TAlgebra::vector_type | codomain_function_type |
Range space. More... | |
typedef TAlgebra::vector_type | domain_function_type |
Domain space. More... | |
Public Types inherited from ug::DebugWritingObject< TAlgebra > | |
typedef TAlgebra | algebra_type |
type of algebra More... | |
typedef TAlgebra::matrix_type | matrix_type |
type of matrix More... | |
typedef TAlgebra::vector_type | vector_type |
type of vector More... | |
Public Types inherited from ug::VectorDebugWritingObject< TAlgebra::vector_type > | |
typedef TAlgebra::vector_type | vector_type |
type of vector More... | |
Private Member Functions | |
TDerived & | derived () |
CRTP operator. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ug::DebugWritingObject< TAlgebra > | |
void | enter_debug_writer_section (const char *secDir) |
enters a debugging section More... | |
void | enter_debug_writer_section (std::string secDir) |
enters a debugging section More... | |
void | leave_debug_writer_section () |
leaves a debugging section More... | |
void | write_debug (const matrix_type &mat, const char *filename) |
write debug output for a matrix (if debug writer set) More... | |
void | write_debug (const matrix_type &mat, std::string name) |
write debug output for a matrix (if debug writer set) More... | |
Protected Member Functions inherited from ug::VectorDebugWritingObject< TAlgebra::vector_type > | |
void | enter_vector_debug_writer_section (const char *secDir) |
enters a debugging section More... | |
void | enter_vector_debug_writer_section (std::string secDir) |
enters a debugging section More... | |
void | leave_vector_debug_writer_section () |
leaves a debugging section More... | |
void | print_debugger_message (const char *msg) |
prints a debugger message (listing all the sections) More... | |
void | print_debugger_message (std::string msg) |
prints a debugger message (listing all the sections) More... | |
virtual void | write_debug (const vector_type &vec, std::string name) |
writing debug output for a vector (if debug writer set) More... | |
Protected Attributes inherited from ug::ILinearIterator< TAlgebra::vector_type > | |
SmartPtr< IDamping< TAlgebra::vector_type, TAlgebra::vector_type > > | m_spDamping |
the scaling More... | |
Protected Attributes inherited from ug::DebugWritingObject< TAlgebra > | |
SmartPtr< IDebugWriter< algebra_type > > | m_spDebugWriter |
Debug Writer. More... | |
Protected Attributes inherited from ug::VectorDebugWritingObject< TAlgebra::vector_type > | |
SmartPtr< IVectorDebugWriter< vector_type > > | m_spVectorDebugWriter |
Debug Writer. More... | |
Abstract base class for transforming iterations. Supporting both left- and right transformations
Given
\begin{eqnarray*} A = T_L^{-1} \hat{A} T_R \end{eqnarray*}
this implements a subspace correction based on a defect correction:
\begin{eqnarray*} x := x + T_R^{-1} {\hat{A}}^{-1} T_L (b-Ax) \end{eqnarray*}
If inversion is to expensive, we replace may replace this by a (single step) iterative solver.
In order
typedef TAlgebra ug::ITransformingIteration< TAlgebra, TDerived >::algebra_type |
Algebra type.
typedef algebra_type::matrix_type ug::ITransformingIteration< TAlgebra, TDerived >::matrix_type |
Matrix type.
typedef algebra_type::vector_type ug::ITransformingIteration< TAlgebra, TDerived >::vector_type |
Vector type.
|
inline |
|
inline |
References UG_THROW.
|
inlinevirtual |
implementation of apply (final, non-CRTP)
Implements ug::ILinearIterator< TAlgebra::vector_type >.
References ug::ITransformingIteration< TAlgebra, TDerived >::apply_transformed(), ug::ITransformingIteration< TAlgebra, TDerived >::derived(), ug::ITransformingIteration< TAlgebra, TDerived >::transform_defect(), and ug::ITransformingIteration< TAlgebra, TDerived >::untransform_correction().
Referenced by ug::ITransformingIteration< TAlgebra, TDerived >::apply_update_defect().
|
inline |
map: dtilde -> ctilde (CRTP)
References ug::ITransformingIteration< TAlgebra, TDerived >::derived().
Referenced by ug::ITransformingIteration< TAlgebra, TDerived >::apply().
|
inlinevirtual |
implementation of apply (final, non-CRTP)
Implements ug::ILinearIterator< TAlgebra::vector_type >.
References ug::ITransformingIteration< TAlgebra, TDerived >::apply(), and ug::ITransformingIteration< TAlgebra, TDerived >::original_operator().
|
inlineprivate |
CRTP operator.
Referenced by ug::ITransformingIteration< TAlgebra, TDerived >::apply(), ug::ITransformingIteration< TAlgebra, TDerived >::apply_transformed(), ug::ITransformingIteration< TAlgebra, TDerived >::init(), ug::ITransformingIteration< TAlgebra, TDerived >::original_operator(), ug::ITransformingIteration< TAlgebra, TDerived >::transform_defect(), and ug::ITransformingIteration< TAlgebra, TDerived >::untransform_correction().
|
inline |
implementation of init for non-linear (CRTP)
References ug::ITransformingIteration< TAlgebra, TDerived >::derived().
|
inline |
implementation of init for linear (CRTP)
References ug::ITransformingIteration< TAlgebra, TDerived >::derived().
|
inline |
original operator (CRTP)
References ug::ITransformingIteration< TAlgebra, TDerived >::derived().
Referenced by ug::ITransformingIteration< TAlgebra, TDerived >::apply_update_defect().
|
inline |
map: d -> dtilde (CRTP)
References ug::ITransformingIteration< TAlgebra, TDerived >::derived().
Referenced by ug::ITransformingIteration< TAlgebra, TDerived >::apply().
|
inline |
map: ctilde -> c (CRTP)
References ug::ITransformingIteration< TAlgebra, TDerived >::derived().
Referenced by ug::ITransformingIteration< TAlgebra, TDerived >::apply().