33 #ifndef __H__UG__LIB_DISC__OPERATOR__NON_LINEAR_OPERATOR__NI_SOLVER__NI__
34 #define __H__UG__LIB_DISC__OPERATOR__NON_LINEAR_OPERATOR__NI_SOLVER__NI__
60 template <
typename TDomain,
typename TAlgebra>
Definition: smart_pointer.h:108
Definition: debug_writer.h:354
represents numerical solutions on a grid using an algebraic vector
Definition: grid_function.h:121
Interface providing Jacobian and Defect of a discretization.
Definition: assemble_interface.h:110
Abstract base class for element marking (in adaptive refinement)
Definition: error_elem_marking_strategy.h:125
Abstract base class for grid functions.
Definition: metric_spaces.h:82
describes an inverse linear mapping X->Y
Definition: linear_operator_inverse.h:80
describes a mapping X->Y
Definition: operator.h:86
describes an inverse mapping X->Y
Definition: operator_inverse.h:79
linear solver using abstract preconditioner interface
Definition: linear_solver.h:57
Nested iteration solver (e.g. for full multigrid)
Definition: nested_iteration.h:64
SmartPtr< AssembledOperator< algebra_type > > m_N
assembling routine
Definition: nested_iteration.h:193
virtual std::string config_string() const
returns information about configuration parameters
Definition: nested_iteration_impl.h:365
SmartPtr< IAssemble< TAlgebra > > m_spDomErr
Definition: nested_iteration.h:198
bool use_adaptive_refinement() const
indicates, if grids should be refined further (if desired accuracy has not been achieved)
Definition: nested_iteration.h:154
number m_TOL
tolerance
Definition: nested_iteration.h:219
SmartPtr< IElementMarkingStrategy< TDomain > > m_spCoarseningMarking
Definition: nested_iteration.h:212
void set_coarsening_marking(SmartPtr< IElementMarkingStrategy< TDomain > > m)
getter/setter for top level
Definition: nested_iteration.h:144
void set_max_steps(int steps)
getter/setter for top level
Definition: nested_iteration.h:161
SmartPtr< IRefiner > m_spRefiner
(adaptive) refinement
Definition: nested_iteration.h:209
TAlgebra algebra_type
Algebra type.
Definition: nested_iteration.h:67
void set_linear_solver(SmartPtr< ILinearOperatorInverse< vector_type > > LinearSolver)
sets the linear solver (this should be a fixed number of multi-grid cycles )
Definition: nested_iteration.h:98
void set_base_level(int lev)
getter/setter for top level
Definition: nested_iteration.h:137
int base_level() const
getter/setter for base level
Definition: nested_iteration.h:136
SmartPtr< IGridFunctionSpace< grid_function_type > > m_spAssociatedSpace
associated norm (for relative error)
Definition: nested_iteration.h:222
void set_debug_elem_error(SmartPtr< error_function_type > spErrEta)
Definition: nested_iteration.h:179
number last_error() const
getter/setter for top level
Definition: nested_iteration.h:162
GridFunction< TDomain, TAlgebra > grid_function_type
GridFunction type.
Definition: nested_iteration.h:76
virtual bool apply(vector_type &u)
apply Operator, i.e. N^{-1}(0) = u
Definition: nested_iteration_impl.h:208
number m_absTOL
absolute tolerance (for relative error)
Definition: nested_iteration.h:225
number refine_domain(const grid_function_type &u)
void set_refiner(SmartPtr< IRefiner > r)
set grid refiner
Definition: nested_iteration.h:140
SmartPtr< IElementMarkingStrategy< TDomain > > m_spRefinementMarking
Definition: nested_iteration.h:211
void set_absolute_tolerance(number atol)
getter/setter for top level
Definition: nested_iteration.h:167
void disable_adaptive_refinement()
disable grid refinement
Definition: nested_iteration.h:156
void set_refinement_marking(SmartPtr< IElementMarkingStrategy< TDomain > > m)
set marking strategy
Definition: nested_iteration.h:143
SmartPtr< error_function_type > m_spElemError
(optional) debug info for adaptive refinement
Definition: nested_iteration.h:228
int m_baseLevel
Definition: nested_iteration.h:205
SmartPtr< IAssemble< TAlgebra > > m_spAss
assembling
Definition: nested_iteration.h:197
SmartPtr< AssembledLinearOperator< algebra_type > > m_J
jacobi operator
Definition: nested_iteration.h:195
GridFunction< TDomain, CPUAlgebra > error_function_type
Error function type.
Definition: nested_iteration.h:79
int m_lastNumSteps
Definition: nested_iteration.h:202
number coarsen_domain(const grid_function_type &u)
Coarsen all elements.
Definition: nested_iteration_impl.h:192
void set_tolerance(number tol)
getter/setter for top level
Definition: nested_iteration.h:145
SmartPtr< ILinearOperatorInverse< vector_type > > m_spLinearSolver
linear solver
Definition: nested_iteration.h:190
TAlgebra::matrix_type matrix_type
Matrix type.
Definition: nested_iteration.h:73
virtual bool init(SmartPtr< IOperator< vector_type > > N)
Definition: nested_iteration_impl.h:134
int m_dgbCall
call counter
Definition: nested_iteration.h:201
void set_top_level(int lev)
getter/setter for top level
Definition: nested_iteration.h:133
void estimate_and_mark_domain(const grid_function_type &u, SmartPtr< IElementMarkingStrategy< TDomain > > spMarking, bool bClearMarks=true)
Refines domain and provides error estimate.
Definition: nested_iteration_impl.h:157
void enable_adaptive_refinement()
enable grid refinement
Definition: nested_iteration.h:158
void set_associated_space(SmartPtr< IGridFunctionSpace< grid_function_type > > spSpace)
getter/setter for top level
Definition: nested_iteration.h:164
TAlgebra::vector_type vector_type
Vector type.
Definition: nested_iteration.h:70
NestedIterationSolver()
default constructor
Definition: nested_iteration_impl.h:71
bool m_bUseAdaptiveRefinement
Definition: nested_iteration.h:213
int top_level() const
getter/setter for top level
Definition: nested_iteration.h:132
int m_topLevel
Definition: nested_iteration.h:206
virtual bool prepare(vector_type &u)
prepare Operator
Definition: nested_iteration_impl.h:147
int m_maxSteps
Definition: nested_iteration.h:215
number m_lastError
Definition: nested_iteration.h:216
#define UG_LOG(msg)
Definition: log.h:367
double number
Definition: types.h:124
CPUAlgebra::vector_type vector_type