ug4
|
ComponentGaussSeidel Preconditioner. More...
#include <component_gauss_seidel.h>
Classes | |
struct | DimCache |
Public Types | |
typedef GF::element_type | Element |
typedef GridFunction< TDomain, TAlgebra > | GF |
World dimension. | |
typedef GF::side_type | Side |
typedef TAlgebra | algebra_type |
typedef TAlgebra::vector_type | vector_type |
typedef TAlgebra::matrix_type | matrix_type |
![]() | |
typedef TAlgebra | algebra_type |
Algebra type. | |
typedef MatrixOperator< matrix_type, vector_type > | matrix_operator_type |
Matrix Operator type. | |
typedef TAlgebra::matrix_type | matrix_type |
Matrix type. | |
typedef TAlgebra::vector_type | vector_type |
Vector type. | |
![]() | |
typedef TAlgebra::vector_type | codomain_function_type |
Range space. | |
typedef TAlgebra::vector_type | domain_function_type |
Domain space. | |
![]() | |
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 | |
![]() | |
typedef TAlgebra::vector_type | vector_type |
type of vector | |
Public Member Functions | |
virtual SmartPtr< ILinearIterator< vector_type > > | clone () |
Clone. | |
ComponentGaussSeidel (const std::vector< std::string > &vFullRowCmp) | |
default constructor | |
ComponentGaussSeidel (number relax, const std::vector< std::string > &vFullRowCmp) | |
constructor setting relaxation and type | |
ComponentGaussSeidel (number relax, const std::vector< std::string > &vFullRowCmp, const std::vector< int > &vSmooth, const std::vector< number > &vDamp) | |
constructor setting relaxation and type | |
void | set_alpha (number alpha) |
void | set_beta (number beta) |
void | set_weights (bool b) |
virtual bool | supports_parallel () const |
returns if parallel solving is supported | |
![]() | |
virtual bool | apply (vector_type &c, const vector_type &d) |
compute new correction c = B*d | |
virtual bool | apply_update_defect (vector_type &c, vector_type &d) |
compute new correction c = B*d and update defect d:= d - L*c | |
SmartPtr< MatrixOperator< matrix_type, vector_type > > | approx_operator () |
underlying matrix based operator used for the preconditioner | |
SmartPtr< MatrixOperator< matrix_type, vector_type > > | defect_operator () |
underlying matrix based operator for calculation of defect | |
virtual bool | init (SmartPtr< ILinearOperator< vector_type > > J, const vector_type &u) |
implements the ILinearIterator-interface for matrix based preconditioner | |
bool | init (SmartPtr< ILinearOperator< vector_type > > L) |
implements the ILinearIterator-interface for matrix based preconditioner | |
bool | init (SmartPtr< MatrixOperator< matrix_type, vector_type > > Op) |
initializes the preconditioner for a matrix based operator | |
IPreconditioner () | |
default constructor | |
IPreconditioner (const IPreconditioner< TAlgebra > &parent) | |
clone constructor | |
IPreconditioner (SmartPtr< IDebugWriter< algebra_type > > spDebugWriter) | |
constructor setting debug writer | |
virtual void | set_approximation (SmartPtr< MatrixOperator< matrix_type, vector_type > > approx) |
virtual | ~IPreconditioner () |
virtual destructor | |
![]() | |
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 | |
![]() | |
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 | |
![]() | |
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 | |
Static Public Attributes | |
static const int | dim = TDomain::dim |
Protected Types | |
typedef IPreconditioner< TAlgebra > | base_type |
Protected Member Functions | |
void | apply_blocks (const matrix_type &A, GF &c, const vector_type &d, number relax, const DimCache &dimCache, bool bReverse) |
void | apply_blocks_weighted (const matrix_type &A, GF &c, const vector_type &d, number relax, const DimCache &dimCache, bool bReverse) |
void | extract_blocks (const matrix_type &A, const GF &c) |
virtual const char * | name () const |
Name of preconditioner. | |
virtual bool | postprocess () |
Postprocess routine. | |
virtual bool | preprocess (SmartPtr< MatrixOperator< matrix_type, vector_type > > pOp) |
Preprocess routine. | |
virtual bool | step (SmartPtr< MatrixOperator< matrix_type, vector_type > > pOp, vector_type &c, const vector_type &d) |
step method | |
![]() | |
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) | |
![]() | |
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) | |
Protected Attributes | |
matrix_type | m_A |
number | m_alpha |
number | m_beta |
bool | m_bInit |
init flag | |
bool | m_bWeighted |
number | m_relax |
relaxing parameter | |
std::vector< number > | m_vDamp |
DimCache | m_vDimCache [VOLUME+1] |
caching storage | |
std::vector< std::string > | m_vFullRowCmp |
components, whose matrix row must be fulfilled completely on gs-block | |
std::vector< int > | m_vGroupObj |
smooth order | |
SmartPtr< GF > | m_weight |
![]() | |
bool | m_bInit |
init flag indicating if init has been called | |
bool | m_bOtherApproxOperator |
SmartPtr< MatrixOperator< matrix_type, vector_type > > | m_spApproxOperator |
underlying matrix based operator used for the preconditioner | |
SmartPtr< ILinearOperator< vector_type > > | m_spDefectOperator |
underlying matrix based operator for calculation of defect | |
![]() | |
SmartPtr< IDamping< TAlgebra::vector_type, TAlgebra::vector_type > > | m_spDamping |
the scaling | |
![]() | |
SmartPtr< IDebugWriter< algebra_type > > | m_spDebugWriter |
Debug Writer. | |
![]() | |
SmartPtr< IVectorDebugWriter< vector_type > > | m_spVectorDebugWriter |
Debug Writer. | |
ComponentGaussSeidel Preconditioner.
typedef TAlgebra ug::ComponentGaussSeidel< TDomain, TAlgebra >::algebra_type |
Algebra types
|
protected |
typedef GF::element_type ug::ComponentGaussSeidel< TDomain, TAlgebra >::Element |
typedef GridFunction<TDomain, TAlgebra> ug::ComponentGaussSeidel< TDomain, TAlgebra >::GF |
World dimension.
typedef TAlgebra::matrix_type ug::ComponentGaussSeidel< TDomain, TAlgebra >::matrix_type |
Algebra types
typedef GF::side_type ug::ComponentGaussSeidel< TDomain, TAlgebra >::Side |
typedef TAlgebra::vector_type ug::ComponentGaussSeidel< TDomain, TAlgebra >::vector_type |
Algebra types
|
inline |
default constructor
|
inline |
constructor setting relaxation and type
|
inline |
constructor setting relaxation and type
|
protected |
|
protected |
|
virtual |
Clone.
Implements ug::ILinearIterator< TAlgebra::vector_type >.
|
protected |
Create 'm_vGroupObj' contain all dimensions containg objects from 'vFullRowCmp'
References ug::GridFunction< TDomain, TAlgebra >::approx_space(), ug::GridFunction< TDomain, TAlgebra >::clone_without_values(), ug::DoFRef(), ug::EDGE, ug::FACE, ug::Invert(), UG_THROW, ug::VERTEX, and ug::VOLUME.
|
inlineprotectedvirtual |
Name of preconditioner.
Implements ug::IPreconditioner< TAlgebra >.
|
inlineprotectedvirtual |
Postprocess routine.
Implements ug::IPreconditioner< TAlgebra >.
|
protectedvirtual |
Preprocess routine.
Implements ug::IPreconditioner< TAlgebra >.
References ug::MakeConsistent(), pcl::NumProcs(), and ug::SetDirichletRow().
|
inline |
|
inline |
|
inline |
|
protectedvirtual |
step method
Implements ug::IPreconditioner< TAlgebra >.
References SmartPtr< T, FreePolicy >::get(), pcl::NumProcs(), ug::PST_UNIQUE, and UG_THROW.
|
inlinevirtual |
returns if parallel solving is supported
Implements ug::ILinearIterator< TAlgebra::vector_type >.
|
static |
|
protected |
|
protected |
Referenced by ug::ComponentGaussSeidel< TDomain, TAlgebra >::set_alpha().
|
protected |
Referenced by ug::ComponentGaussSeidel< TDomain, TAlgebra >::set_beta().
|
protected |
init flag
|
protected |
Referenced by ug::ComponentGaussSeidel< TDomain, TAlgebra >::set_weights().
|
protected |
relaxing parameter
|
protected |
|
protected |
caching storage
|
protected |
components, whose matrix row must be fulfilled completely on gs-block
|
protected |
smooth order
|
protected |