|
ug4
|
#include <schur_complement_operator.h>
Inheritance diagram for ug::SchurComplementOperator< TAlgebra >:Public Types | |
| typedef TAlgebra | algebra_type |
| typedef TAlgebra::matrix_type | matrix_type |
| typedef TAlgebra::vector_type | vector_type |
Public Types inherited from ug::ILinearOperator< TAlgebra::vector_type, 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::IOperator< X, Y > | |
| typedef Y | codomain_function_type |
| Range space. | |
| typedef X | domain_function_type |
| Domain space. | |
Public Member Functions | |
| virtual void | apply (vector_type &f, const vector_type &u) |
| apply schur complement \( f_{\Gamma} = (A_{\Gamma, \Gamma} - A_{\Gamma, I} A_{I, I}^{-1} A_{I, \Gamma} )u_{\Gamma} \) | |
| virtual void | apply_sub (vector_type &f, const vector_type &u) |
| void | compute_matrix (matrix_type &schur_matrix, double threshold=0.0) |
| void | debug_compute_matrix () |
| virtual void | init () |
| initializes the solver for operator A | |
| void | init (const vector_type &u) |
| implementation of the operator for the solution dependent initialization. | |
| virtual const char * | name () const |
| name of solver | |
| SchurComplementOperator (SmartPtr< MatrixOperator< matrix_type, vector_type > > Alocal, SchurSlicingData::slice_desc_type_vector &sdv) | |
| constructor | |
| virtual void | set_debug (SmartPtr< IDebugWriter< algebra_type > > spDebugWriter) |
| void | set_dirichlet_solver (SmartPtr< ILinearOperatorInverse< vector_type > > dirichletSolver) |
| sets a Dirichlet solver | |
| template<typename T > | |
| void | set_inner_debug (SmartPtr< T > op) |
| void | set_matrix (SmartPtr< MatrixOperator< matrix_type, vector_type > > A) |
| template<typename T > | |
| void | set_skeleton_debug (SmartPtr< T > op) |
| const SchurSlicingData & | slicing () const |
| matrix_type & | sub_matrix (int r, int c) |
| SmartPtr< MatrixOperator< matrix_type, vector_type > > | sub_operator (int r, int c) |
| size_t | sub_size (schur_slice_desc_type type) |
| virtual | ~SchurComplementOperator () |
Public Member Functions inherited from ug::ILinearOperator< TAlgebra::vector_type, TAlgebra::vector_type > | |
| virtual void | prepare (TAlgebra::vector_type &u) |
| default implementation for IOperator interface | |
| virtual | ~ILinearOperator () |
| virtual destructor | |
Public Member Functions inherited from ug::IOperator< X, Y > | |
| virtual void | apply (Y &d, const X &u)=0 |
| computes the nonlinear mapping d := N(u) | |
| virtual void | prepare (X &u)=0 |
| prepares domain and codomain functions for application | |
| virtual | ~IOperator () |
| virtual destructor | |
Protected Member Functions | |
| template<int dim> | |
| void | set_debug_dim () |
Protected Attributes | |
| int | m_applyCnt |
| SmartPtr< MatrixOperator< matrix_type, vector_type > > | m_op [2][2] |
| const SchurSlicingData | m_slicing |
| SmartPtr< IDebugWriter< algebra_type > > | m_spDebugWriter |
| SmartPtr< AlgebraDebugWriter< algebra_type > > | m_spDebugWriterInner |
| SmartPtr< AlgebraDebugWriter< algebra_type > > | m_spDebugWriterSkeleton |
| SmartPtr< ILinearOperatorInverse< vector_type > > | m_spDirichletSolver |
| SmartPtr< MatrixOperator< matrix_type, vector_type > > | m_spOperator |
| typedef TAlgebra ug::SchurComplementOperator< TAlgebra >::algebra_type |
| typedef TAlgebra::matrix_type ug::SchurComplementOperator< TAlgebra >::matrix_type |
| typedef TAlgebra::vector_type ug::SchurComplementOperator< TAlgebra >::vector_type |
|
inline |
constructor
References ug::SchurComplementOperator< TAlgebra >::m_op, and make_sp().
|
inlinevirtual |
|
virtual |
apply schur complement \( f_{\Gamma} = (A_{\Gamma, \Gamma} - A_{\Gamma, I} A_{I, I}^{-1} A_{I, \Gamma} )u_{\Gamma} \)
applies the Schur complement built from matrix operator set via 'set_matrix()' to 'u' and returns the result 'f := S times u'
Implements ug::ILinearOperator< TAlgebra::vector_type, TAlgebra::vector_type >.
References SCHUR_PROFILE_BEGIN.
|
virtual |
applies the Schur complement built from matrix operator set via 'set_matrix()' to 'u' and returns the result 'f := f - S times u'
Implements ug::ILinearOperator< TAlgebra::vector_type, TAlgebra::vector_type >.
References SCHUR_PROFILE_BEGIN, ug::SchurDebug, and UG_DLOG.
| void ug::SchurComplementOperator< TAlgebra >::compute_matrix | ( | matrix_type & | schur_matrix, |
| double | threshold = 0.0 |
||
| ) |
| void ug::SchurComplementOperator< TAlgebra >::debug_compute_matrix | ( | ) |
References ug::JuliaString(), SCHUR_PROFILE_BEGIN, ug::SD_SKELETON, and UG_LOG.
|
virtual |
initializes the solver for operator A
Implements ug::ILinearOperator< TAlgebra::vector_type, TAlgebra::vector_type >.
References PROGRESS_START, SCHUR_PROFILE_BEGIN, ug::SchurDebug, and UG_DLOG.
|
inlinevirtual |
implementation of the operator for the solution dependent initialization.
Implements ug::ILinearOperator< TAlgebra::vector_type, TAlgebra::vector_type >.
References ug::SchurComplementOperator< TAlgebra >::init().
Referenced by ug::SchurComplementOperator< TAlgebra >::init().
|
inlinevirtual |
name of solver
|
virtual |
References UG_LOG.
|
protected |
References ug::CreateDirectory(), make_sp(), pcl::ProcRank(), ug::SD_INNER, and ug::SD_SKELETON.
|
inline |
sets a Dirichlet solver
References ug::SchurComplementOperator< TAlgebra >::m_spDirichletSolver.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
References ug::SchurComplementOperator< TAlgebra >::m_op.
Referenced by ug::SchurComplementOperator< TAlgebra >::sub_matrix().
|
inline |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by ug::SchurComplementOperator< TAlgebra >::set_inner_debug().
|
protected |
|
protected |
|
protected |
Referenced by ug::SchurComplementOperator< TAlgebra >::set_matrix().