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__
71template <
typename TDomain,
typename TAlgebra>
124 virtual const char*
name()
const = 0;
Definition smart_pointer.h:108
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
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
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
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 const char * name() const =0
name
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