ug4
|
Concrete definition of subspace V_k (based on size_t) More...
#include <sequential_subspace_correction.h>
Public Types | |
typedef TAlgebra | algebra_type |
Algebra type. More... | |
typedef std::vector< size_t > | index_vector |
Local data. More... | |
typedef TAlgebra::matrix_type | matrix_type |
Matrix type. More... | |
typedef DenseMatrix< VariableArray2< number > > | matrix_type_local |
typedef TAlgebra::vector_type | vector_type |
Vector type. More... | |
typedef DenseVector< VariableArray1< number > > | vector_type_local |
Public Types inherited from ug::ILocalSubspace< TDomain, TAlgebra, TObject > | |
typedef TAlgebra | algebra_type |
Algebra type. More... | |
typedef GridFunction< TDomain, TAlgebra > | grid_function_type |
Grid function type. More... | |
typedef TAlgebra::matrix_type | matrix_type |
Matrix type. More... | |
typedef DenseMatrix< VariableArray2< number > > | matrix_type_local |
typedef TAlgebra::vector_type | vector_type |
Vector type. More... | |
typedef DenseVector< VariableArray1< number > > | vector_type_local |
Public Member Functions | |
virtual void | extract_matrix (const matrix_type &A) |
Extract matrix (on local index set) More... | |
virtual void | extract_rhs (const vector_type &d) |
Extract rhs (on local index set) for parallel subspace correction. More... | |
virtual void | extract_rhs (const vector_type &d, const matrix_type &A, const vector_type &c) |
Extract rhs (on local index set) for sequential subspace correction. More... | |
virtual void | init (TObject *, const vector_type &)=0 |
Called once. More... | |
virtual size_t | size () |
virtual void | update_solution (vector_type &u, double omega=1.0) |
u = u + ck More... | |
virtual | ~LocalIndexSubspace () |
virtual DTOR More... | |
Public Member Functions inherited from ug::ILocalSubspace< TDomain, TAlgebra, TObject > | |
virtual bool | preprocess (const vector_type &c) |
Called once. More... | |
virtual | ~ILocalSubspace () |
virtual DTOR More... | |
Protected Attributes | |
matrix_type_local | m_Aloc |
vector_type_local | m_dloc |
vector_type_local | m_uloc |
Memory for local algebra. More... | |
index_vector | m_vInd |
Algebraic indices. More... | |
Concrete definition of subspace V_k (based on size_t)
typedef TAlgebra ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::algebra_type |
Algebra type.
typedef std::vector<size_t> ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::index_vector |
Local data.
typedef TAlgebra::matrix_type ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::matrix_type |
Matrix type.
typedef DenseMatrix< VariableArray2<number> > ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::matrix_type_local |
typedef TAlgebra::vector_type ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::vector_type |
Vector type.
typedef DenseVector< VariableArray1<number> > ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::vector_type_local |
|
inlinevirtual |
virtual DTOR
|
inlinevirtual |
Extract matrix (on local index set)
Implements ug::ILocalSubspace< TDomain, TAlgebra, TObject >.
References ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::m_Aloc, ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::m_vInd, ug::VariableArray2< T, T_ordering >::resize(), ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::size(), and ug::DenseMatrix< TStorage >::subassign().
|
inlinevirtual |
Extract rhs (on local index set) for parallel subspace correction.
Implements ug::ILocalSubspace< TDomain, TAlgebra, TObject >.
References ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::m_dloc, ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::m_vInd, ug::VariableArray1< T >::resize(), ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::size(), and ug::DenseVector< TStorage >::subassign().
|
inlinevirtual |
Extract rhs (on local index set) for sequential subspace correction.
Implements ug::ILocalSubspace< TDomain, TAlgebra, TObject >.
References ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::m_dloc, ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::m_vInd, ug::MatMultAdd(), ug::VariableArray1< T >::resize(), ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::size(), and ug::DenseVector< TStorage >::subassign().
|
pure virtual |
Called once.
Extract local data (based on group obj)
Implements ug::ILocalSubspace< TDomain, TAlgebra, TObject >.
|
inlinevirtual |
Reimplemented from ug::ILocalSubspace< TDomain, TAlgebra, TObject >.
References ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::m_vInd.
Referenced by ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::extract_matrix(), ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::extract_rhs(), and ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::update_solution().
|
inlinevirtual |
u = u + ck
Implements ug::ILocalSubspace< TDomain, TAlgebra, TObject >.
References ug::InverseMatMult(), ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::m_Aloc, ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::m_dloc, ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::m_uloc, ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::m_vInd, omega, ug::VariableArray1< T >::resize(), and ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::size().
|
protected |
|
protected |
|
protected |
Memory for local algebra.
Referenced by ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::update_solution().
|
protected |
Algebraic indices.
Referenced by ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::extract_matrix(), ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::extract_rhs(), ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::size(), and ug::LocalIndexSubspace< TDomain, TAlgebra, TObject >::update_solution().