33 #ifndef __H__UG__LIB_ALGEBRA__OPERATOR__PRECONDITIONER__PROJECTED_GAUSS_SEIDEL__PROJ_GAUSS_SEIDEL_INTERFACE__
34 #define __H__UG__LIB_ALGEBRA__OPERATOR__PRECONDITIONER__PROJECTED_GAUSS_SEIDEL__PROJ_GAUSS_SEIDEL_INTERFACE__
71 template <
typename TDomain,
typename TAlgebra>
124 virtual const char*
name()
const = 0;
Definition: smart_pointer.h:108
TAlgebra::vector_type vector_type
type of vector
Definition: debug_writer.h:360
TAlgebra::matrix_type matrix_type
type of matrix
Definition: debug_writer.h:363
Definition: gauss_seidel.h:52
represents numerical solutions on a grid using an algebraic vector
Definition: grid_function.h:121
describes a linear mapping X->Y
Definition: linear_operator.h:80
Interface for Obstacle Constraints.
Definition: obstacle_constraint_interface.h:73
describes a linear iterator that is based on a matrix operator
Definition: preconditioner.h:103
Interface for Projected GaussSeidel Preconditioner.
Definition: proj_gauss_seidel_interface.h:74
vector_type::value_type value_type
Value type.
Definition: proj_gauss_seidel_interface.h:89
virtual bool init(SmartPtr< ILinearOperator< vector_type > > J, const vector_type &u)
Prepare for Operator J(u) and linearization point u (current solution)
Definition: proj_gauss_seidel_interface_impl.h:94
IProjGaussSeidel()
constructor
Definition: proj_gauss_seidel_interface.h:96
virtual void step(const matrix_type &mat, vector_type &c, const vector_type &d, const number relax)=0
computes a new correction c = B*d and projects on the underlying constraint
~IProjGaussSeidel()
Destructor.
Definition: proj_gauss_seidel_interface.h:121
SmartPtr< vector_type > m_spSol
pointer to solution
Definition: proj_gauss_seidel_interface.h:164
void truncateMat(matrix_type &mat, vector< DoFIndex > &vInd)
Definition: proj_gauss_seidel_interface_impl.h:73
void add_obstacle_constraint(SmartPtr< IObstacleConstraint< TDomain, TAlgebra > > spObsCons)
adds the obstacle constraint function c(u)
Definition: proj_gauss_seidel_interface.h:111
void project_correction(value_type &c_i, const size_t i)
projects the correction on the underlying constraints set by the obstacleConstraints
Definition: proj_gauss_seidel_interface_impl.h:130
bool m_bInit
init flag indicating if init has been called
Definition: proj_gauss_seidel_interface.h:170
GridFunction< TDomain, TAlgebra > GF
Grid Function type.
Definition: proj_gauss_seidel_interface.h:92
TAlgebra algebra_type
Algebra type.
Definition: proj_gauss_seidel_interface.h:80
algebra_type::matrix_type matrix_type
Matrix type.
Definition: proj_gauss_seidel_interface.h:83
virtual const char * name() const =0
name
GaussSeidelBase< TAlgebra > base_type
Base class type.
Definition: proj_gauss_seidel_interface.h:77
algebra_type::vector_type vector_type
Vector type.
Definition: proj_gauss_seidel_interface.h:86
virtual bool apply_update_defect(vector_type &c, vector_type &d)
Compute new correction c = B*d and return new defect d := d - A*c.
Definition: proj_gauss_seidel_interface_impl.h:298
bool m_bObsCons
flag indicating if obstacle constraint has been set
Definition: proj_gauss_seidel_interface.h:167
void truncateVec(vector_type &vec, vector< DoFIndex > &vInd)
Definition: proj_gauss_seidel_interface_impl.h:54
IProjGaussSeidel(const IProjGaussSeidel< TDomain, TAlgebra > &parent)
clone constructor
Definition: proj_gauss_seidel_interface.h:103
vector< SmartPtr< IObstacleConstraint< TDomain, TAlgebra > > > m_spvObsConstraint
obstacle constraint
Definition: proj_gauss_seidel_interface.h:160
virtual bool apply(vector_type &c, const vector_type &d)
Compute new correction c = B*d.
Definition: proj_gauss_seidel_interface_impl.h:174
double number
Definition: types.h:124
T value_type
Definition: sparsematrix_interface.h:2