FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
FEAT::Solver::QPenalty< Functional_ > Class Template Referenceabstract

Quadratic penalty iteration. More...

#include <qpenalty.hpp>

Inheritance diagram for FEAT::Solver::QPenalty< Functional_ >:
FEAT::Solver::IterativeSolver< Functional_::VectorTypeR > FEAT::Solver::SolverBase< Vector_ >

Public Types

typedef IterativeSolver< VectorTypeBaseClass
 Our base class. More...
 
typedef VectorType::DataType DataType
 Underlying floating point type. More...
 
typedef Functional_ FunctionalType
 The functional type. More...
 
typedef Functional_::VectorTypeR VectorType
 The input vector type. More...
 

Public Member Functions

 QPenalty (const QPenalty &)=delete
 Explicitly delete the copy constructor.
 
 QPenalty (const String &section_name, const PropertyMap *section, FunctionalType &functional, std::shared_ptr< IterativeSolver< VectorType > > inner_solver)
 Constructor using a PropertyMap. More...
 
 QPenalty (FunctionalType &functional, std::shared_ptr< IterativeSolver< VectorType > > inner_solver, DataType initial_penalty_param=DataType(1))
 Constructor. More...
 
virtual ~QPenalty ()
 Virtual destructor. More...
 
virtual Status apply (Vector_ &vec_cor, const Vector_ &vec_def)=0
 Solver application method. More...
 
virtual Status apply (VectorType &vec_cor, const VectorType &vec_def) override
 Solver application method. More...
 
DataType calc_convergence_rate () const
 Computes the overall convergence rate: (defect_final / defect_initial) ^ (1 / number of iterations) More...
 
DataType calc_defect_reduction () const
 Computes the overall defect reduction factor: (defect_final / defect_inital) More...
 
virtual Status correct (VectorType &vec_sol, const VectorType &vec_rhs) override
 Solver correction method. More...
 
virtual void done ()
 Finalization method. More...
 
virtual void done_numeric ()
 Numeric finalization method. More...
 
virtual void done_symbolic () override
 Symbolic initialization method. More...
 
virtual void force_defect_norm_calc (bool force)
 Forces the calculation of defect norms in every iteration. More...
 
DataType get_def_final () const
 Returns the final defect. More...
 
DataType get_def_initial () const
 Returns the initial defect. More...
 
DataType get_div_abs () const
 Returns the absolute divergence. More...
 
DataType get_div_rel () const
 Returns the relative divergence. More...
 
Index get_max_iter () const
 Returns the maximum number of iterations. More...
 
Index get_min_iter () const
 Returns the minimal number of iterations. More...
 
Index get_min_stag_iter () const
 Returns the minimum stagnation iteration count. More...
 
Index get_num_iter () const
 Returns number of performed iterations. More...
 
String get_plot_name () const
 Returns the plot name of the solver. More...
 
DataType get_stag_rate () const
 Returns the stagnation rate. More...
 
Status get_status () const
 Returns the status. More...
 
virtual String get_summary () const
 Returns a summary string. More...
 
DataType get_tol_abs () const
 Returns the absolute tolerance. More...
 
DataType get_tol_abs_low () const
 Returns the lower absolute tolerance. More...
 
DataType get_tol_rel () const
 Returns the relative tolerance. More...
 
virtual void init ()
 Initialization method. More...
 
virtual void init_numeric ()
 Numeric initialization method. More...
 
virtual void init_symbolic () override
 Symbolic initialization method. More...
 
bool is_converged () const
 checks for convergence More...
 
bool is_converged (const DataType def_cur) const
 checks for convergence More...
 
bool is_diverged () const
 checks for divergence More...
 
bool is_diverged (const DataType def_cur) const
 checks for divergence More...
 
virtual String name () const override
 Returns a descriptive string. More...
 
virtual void plot_summary () const
 Plot a summary of the last solver run. More...
 
void set_div_abs (DataType div_abs)
 Sets the absolute divergence for the solver. More...
 
void set_div_rel (DataType div_rel)
 Sets the relative divergence for the solver. More...
 
void set_initial_penalty_param (DataType initial_penalty_param)
 Sets the initial penalty parameter. More...
 
void set_max_iter (Index max_iter)
 Sets the maximum iteration count for the solver. More...
 
void set_min_iter (Index min_iter)
 Sets the minimum iteration count for the solver. More...
 
void set_min_stag_iter (Index min_iter)
 Sets the minimum stagnate iteration count for the solver. More...
 
void set_plot_interval (const Index plot_interval)
 Sets the interval between two plot outputs, if any. More...
 
void set_plot_mode (const PlotMode plot_mode)
 Sets the plot mode of the solver. More...
 
void set_plot_name (const String &plot_name)
 Sets the plot name of the solver. More...
 
void set_stag_rate (DataType rate)
 Sets the stagnation rate for the solver. More...
 
void set_tol_abs (DataType tol_abs)
 Sets the absolute tolerance for the solver. More...
 
void set_tol_abs_low (DataType tol_abs_low)
 Sets the lower absolute tolerance for the solver. More...
 
void set_tol_penalty (DataType tol_penalty)
 Sets the initial penalty parameter. More...
 
void set_tol_rel (DataType tol_rel)
 Sets the relative tolerance for the solver. More...
 

Protected Member Functions

virtual Status _analyze_defect (Index num_iter, DataType def_cur, DataType def_prev, bool check_stag)
 Internal function: analyze the current defect. More...
 
virtual Status _apply_intern (VectorType &vec_sol, const VectorType &vec_rhs)
 Internal function, applies the solver. More...
 
virtual DataType _calc_def_norm (const VectorType &vec_def, const VectorType &vec_sol)
 Computes the defect norm. More...
 
bool _plot_iter (Status st=Status::progress) const
 Plot the current iteration? More...
 
virtual void _plot_iter_line (Index num_iter, DataType def_cur, DataType def_prev)
 Plots an iteration line. More...
 
bool _plot_summary () const
 Plot summary? More...
 
void _print_line (const String &line) const
 Prints a line. More...
 
bool _progress () const
 Progress iteration? More...
 
void _set_comm (const Dist::Comm *comm)
 Sets the communicator for the solver directly. More...
 
void _set_comm_by_matrix (const Matrix_ &matrix)
 Sets the communicator for the solver from a matrix. More...
 
void _set_comm_by_vector (const Functional_::VectorTypeR &vector)
 Sets the communicator for the solver from a vector. More...
 
Status _set_initial_defect (const DataType def_init_)
 Internal function: sets the initial defect. More...
 
virtual Status _set_initial_defect (const VectorType &vec_def, const VectorType &vec_sol)
 Makes the BaseClass' routine available, which cannot be used but shuts up the overloaded virtual warning. More...
 
virtual Status _set_new_defect (const VectorType &vec_def, const VectorType &vec_sol)
 Internal function: sets the new (next) defect vector. More...
 
virtual Status _update_defect (const DataType def_cur_norm)
 Internal function: sets the new (next) defect norm. More...
 

Protected Attributes

const Dist::Comm_comm
 Communicator of the solver. More...
 
DataType _def_cur
 current defect More...
 
DataType _def_init
 initial defect More...
 
DataType _def_prev
 previous iteration defect More...
 
DataType _div_abs
 absolute divergence parameter More...
 
DataType _div_rel
 relative divergence parameter More...
 
bool _force_def_norm_calc
 whether skipping of defect computation is allowed or not More...
 
Index _iter_digits
 iteration count digits for plotting More...
 
Index _max_iter
 maximum number of iterations More...
 
Index _min_iter
 minimum number of iterations More...
 
Index _min_stag_iter
 minimum number of stagnation iterations More...
 
Index _num_iter
 number of performed iterations More...
 
Index _num_stag_iter
 number of consecutive stagnated iterations More...
 
Index _plot_interval
 plot output interval More...
 
PlotMode _plot_mode
 whether to plot something More...
 
String _plot_name
 name of the solver in plots More...
 
DataType _stag_rate
 stagnation rate More...
 
Status _status
 current status of the solver More...
 
DataType _tol_abs
 absolute tolerance parameter More...
 
DataType _tol_abs_low
 absolute low tolerance parameter More...
 
DataType _tol_rel
 relative tolerance parameter More...
 

Private Attributes

FunctionalType_functional
 The functional that takes the penalty parameters and is assembled in the inner solver. More...
 
DataType _initial_penalty_param
 We start with this initial penalty parameter. More...
 
std::shared_ptr< IterativeSolver< VectorType > > _inner_solver
 The inner solver for the penalized, unconstrained optimization problem. More...
 
DataType _tol_penalty
 Maximum value the penalty parameter is allowed to take. More...
 

Detailed Description

template<typename Functional_>
class FEAT::Solver::QPenalty< Functional_ >

Quadratic penalty iteration.

Template Parameters
Functional_The functional (or functional) for the constrained optimization problem.

This class implements an outer solver for a quadratic penalty iteration. Assume we have an optimization problem of the form

\[ x^* = \mathrm{argmin}_{x \in D} f(x) ~ \mathrm{subject~to~} \forall i \in E: c_i(x) = 0 \]

\( c_i \) are equality constraints turning the minimization of \( f \) into a constrained optimization problem. To solve this constrained problem, one can solve a series of unconstrained problems with the quadratic penalty iteration by defining the quadratic penalty function

\[ Q(x,\mu) := f(x) + \frac{\mu}{2} \sum_{i \in E} c_i^2(x) \]

and solving it for a series \( (\mu_k)_k \in \mathbb{N}, \mu_k \stackrel{k \to \infty}{\longrightarrow} \infty \). Because the penalty terms are smooth, tools from unconstrained optimization can be applied (see [NW06] Chapter 17.1). The greatest advantage of this is that this needs no constraint qualifications and is still applicable if \( \mathrm{dim}( \mathrm{ker} (\nabla c_{i_1}, \dots, \nabla c_{i_M}) ) > 0 \), which is required by all more sophisticated methods like augmented Lagragian etc.

All of this means that the Functional_ \( Q \) must be assembled anew in every iteration and the inner solver needs to take care of this.

One critical part is the choice of \(\mu_k\). It needs to start small (i.e. \(\mu_1 = 1\)) because the initial state might violate the constraints quite strongly. The rate of increase has to be fast enough that the number of penalty iterations remains small (i.e. \( \leq 10 \)), but the systematic ill-conditioning of the penalty function means that we cannot be too quick about this. If the increase is too quick, the previous iterate will be too far away of a minimizer of the new problem and the inner solver will fail to converge. So take care.

Author
Jordi Paul

Definition at line 47 of file qpenalty.hpp.

Member Typedef Documentation

◆ BaseClass

template<typename Functional_ >
typedef IterativeSolver<VectorType> FEAT::Solver::QPenalty< Functional_ >::BaseClass

Our base class.

Definition at line 57 of file qpenalty.hpp.

◆ DataType

template<typename Functional_ >
typedef VectorType::DataType FEAT::Solver::QPenalty< Functional_ >::DataType

Underlying floating point type.

Definition at line 55 of file qpenalty.hpp.

◆ FunctionalType

template<typename Functional_ >
typedef Functional_ FEAT::Solver::QPenalty< Functional_ >::FunctionalType

The functional type.

Definition at line 51 of file qpenalty.hpp.

◆ VectorType

template<typename Functional_ >
typedef Functional_::VectorTypeR FEAT::Solver::QPenalty< Functional_ >::VectorType

The input vector type.

Definition at line 53 of file qpenalty.hpp.

Constructor & Destructor Documentation

◆ QPenalty() [1/2]

template<typename Functional_ >
FEAT::Solver::QPenalty< Functional_ >::QPenalty ( FunctionalType functional,
std::shared_ptr< IterativeSolver< VectorType > >  inner_solver,
DataType  initial_penalty_param = DataType(1) 
)
inlineexplicit

Constructor.

Parameters
[in]functionalThe functional for the inner constrained optimization problem.
[in]inner_solverThe solver for the inner penalized unconstrained optimization problem.
[in]initial_penalty_paramThe starting penalty parameter, defaults to 1.

Definition at line 82 of file qpenalty.hpp.

References FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_set_comm_by_matrix().

◆ QPenalty() [2/2]

template<typename Functional_ >
FEAT::Solver::QPenalty< Functional_ >::QPenalty ( const String section_name,
const PropertyMap section,
FunctionalType functional,
std::shared_ptr< IterativeSolver< VectorType > >  inner_solver 
)
inlineexplicit

Constructor using a PropertyMap.

Template Parameters
Functional_The type of the quadratic penalty function \( Q \).
Parameters
[in]section_nameThe name of the config section, which it does not know by itself.
[in]sectionA pointer to the PropertyMap section configuring this solver.
[in]functionalThe quadratic penalty function \( Q \).
[in]inner_solverThe inner solver for solving the penalized unconstrained optimization problem.

Definition at line 112 of file qpenalty.hpp.

References FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_set_comm_by_matrix(), FEAT::PropertyMap::query(), FEAT::Solver::QPenalty< Functional_ >::set_initial_penalty_param(), and FEAT::Solver::QPenalty< Functional_ >::set_tol_penalty().

◆ ~QPenalty()

template<typename Functional_ >
virtual FEAT::Solver::QPenalty< Functional_ >::~QPenalty ( )
inlinevirtual

Virtual destructor.

Definition at line 142 of file qpenalty.hpp.

References FEAT::Solver::QPenalty< Functional_ >::_inner_solver.

Member Function Documentation

◆ _analyze_defect()

virtual Status FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_analyze_defect ( Index  num_iter,
DataType  def_cur,
DataType  def_prev,
bool  check_stag 
)
inlineprotectedvirtualinherited

Internal function: analyze the current defect.

Note
This function is called by _set_new_defect() and _update_defect().
Parameters
[in]num_iterCurrent number of iterations; usually = this->_num_iter.
[in]def_curCurrent defect norm; usually = this->_def_cur.
[in]def_prevPrevious defect norm; usually = this->_def_prev.
[in]check_stagSpecifies whether to check (and update) the stagnation criterion. This is typically set to false if one wants to check anything else than the 'true' next defect norm.
Returns
The updated status code.

Definition at line 866 of file iterative.hpp.

◆ _apply_intern()

template<typename Functional_ >
virtual Status FEAT::Solver::QPenalty< Functional_ >::_apply_intern ( VectorType vec_sol,
const VectorType vec_rhs 
)
inlineprotectedvirtual

Internal function, applies the solver.

Parameters
[in,out]vec_solThe initial guess, gets overwritten by the solution
[in]vec_rhsThe right-hand side.
Returns
A solver status code.

Definition at line 226 of file qpenalty.hpp.

References FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_def_cur, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_def_init, FEAT::Solver::QPenalty< Functional_ >::_functional, FEAT::Solver::QPenalty< Functional_ >::_inner_solver, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_iter_digits, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_max_iter, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_min_iter, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_num_iter, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_plot_iter(), FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_plot_name, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_print_line(), FEAT::Solver::QPenalty< Functional_ >::_set_initial_defect(), FEAT::Solver::QPenalty< Functional_ >::_tol_penalty, FEAT::Solver::aborted, FEAT::Solver::diverged, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_num_iter(), FEAT::Math::ilog10(), FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::is_converged(), FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::is_diverged(), FEAT::Math::isfinite(), FEAT::Math::max(), FEAT::Solver::max_iter, FEAT::Solver::QPenalty< Functional_ >::name(), FEAT::String::pad_front(), FEAT::Solver::progress, FEAT::Math::sqr(), FEAT::Solver::stagnated, FEAT::stringify(), FEAT::stringify_fp_sci(), FEAT::Solver::success, and FEAT::Solver::undefined.

Referenced by FEAT::Solver::QPenalty< Functional_ >::apply(), and FEAT::Solver::QPenalty< Functional_ >::correct().

◆ _calc_def_norm()

virtual DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_calc_def_norm ( const VectorType vec_def,
const VectorType vec_sol 
)
inlineprotectedvirtualinherited

Computes the defect norm.

Parameters
[in]vec_defThe current defect vector.
[in]vec_solThe current solution vector approximation.

Definition at line 706 of file iterative.hpp.

◆ _plot_iter()

bool FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_plot_iter ( Status  st = Status::progress) const
inlineprotectedinherited

Plot the current iteration?

Parameters
[in]stThe status of the current iteration.
Returns
true if the plot mode is set to iter or all and the plot interval matches or the solver does not continue to the next iteration

Definition at line 720 of file iterative.hpp.

◆ _plot_iter_line()

virtual void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_plot_iter_line ( Index  num_iter,
DataType  def_cur,
DataType  def_prev 
)
inlineprotectedvirtualinherited

Plots an iteration line.

Parameters
[in]num_iterCurrent number of iterations; usually = this->_num_iter.
[in]def_curCurrent defect norm; usually = this->_def_cur.
[in]def_prevPrevious defect norm; usually = this->_def_prev.

Definition at line 773 of file iterative.hpp.

◆ _plot_summary()

bool FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_plot_summary ( ) const
inlineprotectedinherited

Plot summary?

Returns
true if the plot mode is set to summary or all.

Definition at line 731 of file iterative.hpp.

◆ _print_line()

void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_print_line ( const String line) const
inlineprotectedinherited

Prints a line.

Parameters
[in]lineThe line to be printed.

Definition at line 752 of file iterative.hpp.

◆ _progress()

bool FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_progress ( ) const
inlineprotectedinherited

Progress iteration?

Returns
true if the solver should process, otherwise false.

Definition at line 741 of file iterative.hpp.

◆ _set_comm()

void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_set_comm ( const Dist::Comm comm)
inlineprotectedinherited

Sets the communicator for the solver directly.

Parameters
[in]commA pointer to the communicator that is to be used by the solver.

Definition at line 667 of file iterative.hpp.

◆ _set_comm_by_matrix()

void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_set_comm_by_matrix ( const Matrix_ &  matrix)
inlineprotectedinherited

Sets the communicator for the solver from a matrix.

Parameters
[in]matrixA reference to a matrix. If 'Matrix_' is a 'Global::Matrix', then the communicator of the matrix gate is taken.

Definition at line 680 of file iterative.hpp.

◆ _set_comm_by_vector()

void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_set_comm_by_vector ( const Functional_::VectorTypeR &  vector)
inlineprotectedinherited

Sets the communicator for the solver from a vector.

Parameters
[in]vectorA reference to a vector. If 'Vector_' is a 'Global::Vector', then the communicator of the vector gate is taken.

Definition at line 692 of file iterative.hpp.

◆ _set_initial_defect() [1/2]

◆ _set_initial_defect() [2/2]

template<typename Functional_ >
virtual Status FEAT::Solver::IterativeSolver< Vector_ >::_set_initial_defect ( const VectorType vec_def,
const VectorType vec_sol 
)
inlineprotectedvirtual

Makes the BaseClass' routine available, which cannot be used but shuts up the overloaded virtual warning.

Reimplemented from FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >.

Definition at line 802 of file iterative.hpp.

◆ _set_new_defect()

virtual Status FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_set_new_defect ( const VectorType vec_def,
const VectorType vec_sol 
)
inlineprotectedvirtualinherited

Internal function: sets the new (next) defect vector.

This function computes the defect vector's norm, increments the iteration count, plots an output line to std::cout and checks whether any of the stopping criterions is fulfilled.

Parameters
[in]vec_defThe new defect vector.
[in]vec_solThe current solution vector approximation.
Returns
The updated Status code.

Definition at line 924 of file iterative.hpp.

◆ _update_defect()

virtual Status FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_update_defect ( const DataType  def_cur_norm)
inlineprotectedvirtualinherited

Internal function: sets the new (next) defect norm.

This function takes a pre-calculated defect vector norm, increments the iteration count, plots an output line to std::cout and checks whether any of the stopping criterions is fulfilled.

Parameters
[in]def_cur_normThe new defect norm.
Returns
The updated Status code.
Note
This function is preferred over _set_new_defect when using asynchronous mpi operations.

Definition at line 970 of file iterative.hpp.

◆ apply() [1/2]

template<typename Vector_ >
virtual Status FEAT::Solver::SolverBase< Vector_ >::apply ( Vector_ &  vec_cor,
const Vector_ &  vec_def 
)
pure virtualinherited

Solver application method.

This method applies the solver represented by this object onto a given defect vector and returns the corresponding correction vector.

Note
Solvers which derive from the IterativeSolver base class also provide a correct() method which corrects an initial solution instead of starting with the null vector.
Parameters
[out]vec_corThe vector that shall receive the solution of the linear system. It is assumed to be allocated, but its numerical contents may be undefined upon calling this method.
[in]vec_defThe vector that represents the right-hand-side of the linear system to be solved.
Attention
vec_cor and vec_def must not refer to the same vector object!
Returns
A Status code that represents the status of the solution step.

Implemented in FEAT::Solver::SchwarzPrecond< Global::Vector< LocalVector_, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > >, FEAT::Solver::CuSolverLU, FEAT::Solver::CuSolverQR, FEAT::Solver::ScalePrecond< Vector_, Filter_ >, FEAT::Solver::DiagonalPrecond< Vector_, Filter_ >, FEAT::Solver::MultiGrid< SystemMatrix_, SystemFilter_, TransferOperator_ >, FEAT::Solver::NLOptPrecond< VectorType_, FilterType_ >, FEAT::Solver::AmaVanka< Matrix_, Filter_ >, FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >, FEAT::Solver::ConvertPrecond< Global::Vector< LocalVectorOuter_, MirrorOuter_ >, Global::Vector< LocalVectorInner_, MirrorInner_ > >, and FEAT::Solver::BFBT< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >.

Referenced by FEAT::Solver::solve().

◆ apply() [2/2]

template<typename Functional_ >
virtual Status FEAT::Solver::QPenalty< Functional_ >::apply ( VectorType vec_cor,
const VectorType vec_def 
)
inlineoverridevirtual

Solver application method.

This method applies the solver represented by this object onto a given defect vector and returns the corresponding correction vector.

Note
Solvers which derive from the IterativeSolver base class also provide a correct() method which corrects an initial solution instead of starting with the null vector.
Parameters
[out]vec_corThe vector that shall receive the solution of the linear system. It is assumed to be allocated, but its numerical contents may be undefined upon calling this method.
[in]vec_defThe vector that represents the right-hand-side of the linear system to be solved.
Attention
vec_cor and vec_def must not refer to the same vector object!
Returns
A Status code that represents the status of the solution step.

Definition at line 188 of file qpenalty.hpp.

References FEAT::Solver::QPenalty< Functional_ >::_apply_intern(), FEAT::Solver::QPenalty< Functional_ >::_functional, FEAT::Solver::QPenalty< Functional_ >::_initial_penalty_param, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_status, and FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::plot_summary().

◆ calc_convergence_rate()

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::calc_convergence_rate ( ) const
inlineinherited

Computes the overall convergence rate: (defect_final / defect_initial) ^ (1 / number of iterations)

Definition at line 582 of file iterative.hpp.

◆ calc_defect_reduction()

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::calc_defect_reduction ( ) const
inlineinherited

Computes the overall defect reduction factor: (defect_final / defect_inital)

Definition at line 597 of file iterative.hpp.

◆ correct()

template<typename Functional_ >
virtual Status FEAT::Solver::QPenalty< Functional_ >::correct ( VectorType vec_sol,
const VectorType vec_rhs 
)
inlineoverridevirtual

Solver correction method.

This method applies the solver represented by this object onto a given right-hand-side vector and updates the corresponding solution vector.

In contrast to the apply() method of the SolverBase base class, this method uses the vector vec_sol as the initial solution vector for the iterative solution process instead of ignoring its contents upon entry and starting with the null vector.

Parameters
[in,out]vec_solThe vector that contains the initial solution upon entry and receives the solution of the linear system upon exit.
[in]vec_rhsThe vector that represents the right-hand-side of the linear system to be solved.
Attention
vec_sol and vec_rhs must not refer to the same vector object!
Returns
A Status code that represents the status of the solution step.

Implements FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >.

Definition at line 202 of file qpenalty.hpp.

References FEAT::Solver::QPenalty< Functional_ >::_apply_intern(), FEAT::Solver::QPenalty< Functional_ >::_functional, FEAT::Solver::QPenalty< Functional_ >::_initial_penalty_param, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_status, and FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::plot_summary().

◆ done()

template<typename Vector_ >
virtual void FEAT::Solver::SolverBase< Vector_ >::done ( )
inlinevirtualinherited

Finalization method.

This function performs both the symbolic and numeric finalization, i.e. it simply performs

this->done_numeric();
this->done_symbolic();

Definition at line 283 of file base.hpp.

References FEAT::Solver::SolverBase< Vector_ >::done_numeric(), and FEAT::Solver::SolverBase< Vector_ >::done_symbolic().

◆ done_numeric()

template<typename Vector_ >
virtual void FEAT::Solver::SolverBase< Vector_ >::done_numeric ( )
inlinevirtualinherited

Numeric finalization method.

This method is called to release any data allocated in the numeric initialization step.

Reimplemented in FEAT::Solver::BFBT< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >, FEAT::Solver::BFBT< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >, FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >, FEAT::Solver::ConvertPrecond< Global::Vector< LocalVectorOuter_, MirrorOuter_ >, Global::Vector< LocalVectorInner_, MirrorInner_ > >, FEAT::Solver::CUDSS, FEAT::Solver::DirectStokesSolver< LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ >, LAFEM::TupleFilter< FilterV_, FilterP_ > >, FEAT::Solver::DirectStokesSolver< Global::Matrix< LocalMatrix_, Mirror_, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > >, FEAT::Solver::ParaSailsPrecond< Matrix_, Filter_ >, FEAT::Solver::EuclidPrecond< Matrix_, Filter_ >, FEAT::Solver::BoomerAMG< Matrix_, Filter_ >, FEAT::Solver::PreconditionedIterativeSolver< Vector_ >, FEAT::Solver::PreconditionedIterativeSolver< Matrix_::VectorTypeR >, FEAT::Solver::PreconditionedIterativeSolver< Functional_::VectorTypeR >, FEAT::Solver::MKLDSS, FEAT::Solver::MultiGrid< SystemMatrix_, SystemFilter_, TransferOperator_ >, FEAT::Solver::PCGNR< Matrix_, Filter_ >, FEAT::Solver::SchwarzPrecond< Global::Vector< LocalVector_, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > >, FEAT::Solver::Umfpack, FEAT::Solver::UmfpackMean, FEAT::Solver::SaddleUmfpackMean< DT_, IT_, dim_ >, FEAT::Solver::GenericUmfpack< Matrix_ >, FEAT::Solver::UzawaPrecond< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >, and FEAT::Solver::UzawaPrecond< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >.

Definition at line 246 of file base.hpp.

Referenced by FEAT::Solver::SolverBase< Vector_ >::done(), FEAT::Solver::BFBT< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >::done_numeric(), FEAT::Solver::BFBT< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >::done_numeric(), FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >::done_numeric(), FEAT::Solver::ConvertPrecond< Global::Vector< LocalVectorOuter_, MirrorOuter_ >, Global::Vector< LocalVectorInner_, MirrorInner_ > >::done_numeric(), FEAT::Solver::ParaSailsPrecond< Matrix_, Filter_ >::done_numeric(), FEAT::Solver::PreconditionedIterativeSolver< Vector_ >::done_numeric(), FEAT::Solver::MultiGrid< SystemMatrix_, SystemFilter_, TransferOperator_ >::done_numeric(), FEAT::Solver::PCGNR< Matrix_, Filter_ >::done_numeric(), FEAT::Solver::SaddleUmfpackMean< DT_, IT_, dim_ >::done_numeric(), FEAT::Solver::UzawaPrecond< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >::done_numeric(), and FEAT::Solver::UzawaPrecond< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >::done_numeric().

◆ done_symbolic()

template<typename Functional_ >
virtual void FEAT::Solver::QPenalty< Functional_ >::done_symbolic ( )
inlineoverridevirtual

Symbolic initialization method.

This method is called to perform symbolic initialization of the solver.

Reimplemented from FEAT::Solver::SolverBase< Vector_ >.

Definition at line 161 of file qpenalty.hpp.

References FEAT::Solver::QPenalty< Functional_ >::_inner_solver, and FEAT::Solver::SolverBase< Vector_ >::done_symbolic().

◆ force_defect_norm_calc()

virtual void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::force_defect_norm_calc ( bool  force)
inlinevirtualinherited

Forces the calculation of defect norms in every iteration.

Note
Please note that allowing the skipping of defect norm calculations is merely a hint and a derived class may override this function therefore always forcing the calculation of defect norms. One possible reason is that the derived solver class may require defect norms as part of its solver algorithm and therefore skipping the computation of the defect norms may break the solver; two examples are the BiCGStab and GMRES solvers.
Parameters
[in]forceSpecifies whether defect norm computation is to be enforced in every iteration

Definition at line 490 of file iterative.hpp.

◆ get_def_final()

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_def_final ( ) const
inlineinherited

Returns the final defect.

Definition at line 570 of file iterative.hpp.

◆ get_def_initial()

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_def_initial ( ) const
inlineinherited

Returns the initial defect.

Definition at line 564 of file iterative.hpp.

◆ get_div_abs()

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_div_abs ( ) const
inlineinherited

Returns the absolute divergence.

Definition at line 419 of file iterative.hpp.

◆ get_div_rel()

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_div_rel ( ) const
inlineinherited

Returns the relative divergence.

Definition at line 413 of file iterative.hpp.

◆ get_max_iter()

Index FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_max_iter ( ) const
inlineinherited

Returns the maximum number of iterations.

Definition at line 474 of file iterative.hpp.

◆ get_min_iter()

Index FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_min_iter ( ) const
inlineinherited

Returns the minimal number of iterations.

Definition at line 468 of file iterative.hpp.

◆ get_min_stag_iter()

Index FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_min_stag_iter ( ) const
inlineinherited

Returns the minimum stagnation iteration count.

Definition at line 443 of file iterative.hpp.

◆ get_num_iter()

Index FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_num_iter ( ) const
inlineinherited

Returns number of performed iterations.

Definition at line 462 of file iterative.hpp.

◆ get_plot_name()

String FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_plot_name ( ) const
inlineinherited

Returns the plot name of the solver.

Definition at line 523 of file iterative.hpp.

◆ get_stag_rate()

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_stag_rate ( ) const
inlineinherited

Returns the stagnation rate.

Definition at line 431 of file iterative.hpp.

◆ get_status()

Status FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_status ( ) const
inlineinherited

Returns the status.

Definition at line 576 of file iterative.hpp.

◆ get_summary()

virtual String FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_summary ( ) const
inlinevirtualinherited

Returns a summary string.

Reimplemented in FEAT::Solver::Linesearch< Functional_, Filter_ >.

Definition at line 610 of file iterative.hpp.

◆ get_tol_abs()

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_tol_abs ( ) const
inlineinherited

Returns the absolute tolerance.

Definition at line 389 of file iterative.hpp.

◆ get_tol_abs_low()

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_tol_abs_low ( ) const
inlineinherited

Returns the lower absolute tolerance.

Definition at line 395 of file iterative.hpp.

◆ get_tol_rel()

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_tol_rel ( ) const
inlineinherited

Returns the relative tolerance.

Definition at line 383 of file iterative.hpp.

◆ init()

template<typename Vector_ >
virtual void FEAT::Solver::SolverBase< Vector_ >::init ( )
inlinevirtualinherited

Initialization method.

This function performs both the symbolic and numeric initialization, i.e. it simply performs

this->init_symbolic();
this->init_numeric();

Definition at line 268 of file base.hpp.

References FEAT::Solver::SolverBase< Vector_ >::init_numeric(), and FEAT::Solver::SolverBase< Vector_ >::init_symbolic().

◆ init_numeric()

template<typename Vector_ >
virtual void FEAT::Solver::SolverBase< Vector_ >::init_numeric ( )
inlinevirtualinherited

Numeric initialization method.

This method is called to perform numeric initialization of the solver.
Before this function can be called, the symbolic initialization must be performed.

Reimplemented in FEAT::Solver::AmaVanka< Matrix_, Filter_ >, FEAT::Solver::BFBT< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >, FEAT::Solver::BFBT< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >, FEAT::Solver::Chebyshev< Matrix_, Filter_ >, FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >, FEAT::Solver::ConvertPrecond< Global::Vector< LocalVectorOuter_, MirrorOuter_ >, Global::Vector< LocalVectorInner_, MirrorInner_ > >, FEAT::Solver::CUDSS, FEAT::Solver::DirectStokesSolver< LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ >, LAFEM::TupleFilter< FilterV_, FilterP_ > >, FEAT::Solver::DirectStokesSolver< Global::Matrix< LocalMatrix_, Mirror_, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > >, FEAT::Solver::HypreSolverBase< Matrix_, Filter_, SolverBase_ >, FEAT::Solver::ParaSailsPrecond< Matrix_, Filter_ >, FEAT::Solver::EuclidPrecond< Matrix_, Filter_ >, FEAT::Solver::BoomerAMG< Matrix_, Filter_ >, FEAT::Solver::ILUPrecond< Matrix_, Filter_ >, FEAT::Solver::PreconditionedIterativeSolver< Vector_ >, FEAT::Solver::PreconditionedIterativeSolver< Matrix_::VectorTypeR >, FEAT::Solver::PreconditionedIterativeSolver< Functional_::VectorTypeR >, FEAT::Solver::JacobiPrecond< Matrix_, Filter_ >, FEAT::Solver::MatrixPrecond< Matrix_, Filter_ >, FEAT::Solver::MKLDSS, FEAT::Solver::MultiGrid< SystemMatrix_, SystemFilter_, TransferOperator_ >, FEAT::Solver::NonlinearOperatorPrecondWrapper< NonlinearOperator_ >, FEAT::Solver::PCGNR< Matrix_, Filter_ >, FEAT::Solver::PCGNRILU< Matrix_, Filter_ >, FEAT::Solver::PolynomialPrecond< Matrix_, Filter_ >, FEAT::Solver::SchwarzPrecond< Global::Vector< LocalVector_, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > >, FEAT::Solver::SuperLU< Matrix_, Filter_ >, FEAT::Solver::Umfpack, FEAT::Solver::UmfpackMean, FEAT::Solver::SaddleUmfpackMean< DT_, IT_, dim_ >, FEAT::Solver::GenericUmfpack< Matrix_ >, FEAT::Solver::UzawaPrecond< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >, FEAT::Solver::UzawaPrecond< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >, FEAT::Solver::Vanka< LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ >, Filter_ >, and FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >.

Definition at line 237 of file base.hpp.

Referenced by FEAT::Solver::SolverBase< Vector_ >::init(), FEAT::Solver::BFBT< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >::init_numeric(), FEAT::Solver::BFBT< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >::init_numeric(), FEAT::Solver::Chebyshev< Matrix_, Filter_ >::init_numeric(), FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >::init_numeric(), FEAT::Solver::ConvertPrecond< Global::Vector< LocalVectorOuter_, MirrorOuter_ >, Global::Vector< LocalVectorInner_, MirrorInner_ > >::init_numeric(), FEAT::Solver::HypreSolverBase< Matrix_, Filter_, SolverBase_ >::init_numeric(), FEAT::Solver::PreconditionedIterativeSolver< Vector_ >::init_numeric(), FEAT::Solver::MultiGrid< SystemMatrix_, SystemFilter_, TransferOperator_ >::init_numeric(), FEAT::Solver::PCGNR< Matrix_, Filter_ >::init_numeric(), FEAT::Solver::PCGNRILU< Matrix_, Filter_ >::init_numeric(), FEAT::Solver::SuperLU< Matrix_, Filter_ >::init_numeric(), FEAT::Solver::SaddleUmfpackMean< DT_, IT_, dim_ >::init_numeric(), FEAT::Solver::UzawaPrecond< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >::init_numeric(), FEAT::Solver::UzawaPrecond< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >::init_numeric(), and FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::init_numeric().

◆ init_symbolic()

template<typename Functional_ >
virtual void FEAT::Solver::QPenalty< Functional_ >::init_symbolic ( )
inlineoverridevirtual

Symbolic initialization method.

This method is called to perform symbolic initialization of the solver.

Reimplemented from FEAT::Solver::SolverBase< Vector_ >.

Definition at line 154 of file qpenalty.hpp.

References FEAT::Solver::QPenalty< Functional_ >::_inner_solver, and FEAT::Solver::SolverBase< Vector_ >::init_symbolic().

◆ is_converged() [1/2]

bool FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::is_converged ( ) const
inlineinherited

checks for convergence

Returns
true, if converged, else false

Definition at line 533 of file iterative.hpp.

◆ is_converged() [2/2]

bool FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::is_converged ( const DataType  def_cur) const
inlineinherited

checks for convergence

Parameters
[in]def_curThe defect norm that is to be analyzed
Returns
true, if converged, else false

Definition at line 546 of file iterative.hpp.

◆ is_diverged() [1/2]

bool FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::is_diverged ( ) const
inlineinherited

checks for divergence

Definition at line 552 of file iterative.hpp.

◆ is_diverged() [2/2]

bool FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::is_diverged ( const DataType  def_cur) const
inlineinherited

checks for divergence

Definition at line 558 of file iterative.hpp.

◆ name()

template<typename Functional_ >
virtual String FEAT::Solver::QPenalty< Functional_ >::name ( ) const
inlineoverridevirtual

Returns a descriptive string.

Returns
A string describing the solver.

Implements FEAT::Solver::SolverBase< Vector_ >.

Definition at line 148 of file qpenalty.hpp.

Referenced by FEAT::Solver::QPenalty< Functional_ >::_apply_intern(), and FEAT::Solver::QPenalty< Functional_ >::_set_initial_defect().

◆ plot_summary()

virtual void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::plot_summary ( ) const
inlinevirtualinherited

Plot a summary of the last solver run.

Definition at line 627 of file iterative.hpp.

◆ set_div_abs()

void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::set_div_abs ( DataType  div_abs)
inlineinherited

Sets the absolute divergence for the solver.

Definition at line 407 of file iterative.hpp.

◆ set_div_rel()

void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::set_div_rel ( DataType  div_rel)
inlineinherited

Sets the relative divergence for the solver.

Definition at line 401 of file iterative.hpp.

◆ set_initial_penalty_param()

template<typename Functional_ >
void FEAT::Solver::QPenalty< Functional_ >::set_initial_penalty_param ( DataType  initial_penalty_param)
inline

Sets the initial penalty parameter.

Definition at line 170 of file qpenalty.hpp.

References FEAT::Solver::QPenalty< Functional_ >::_initial_penalty_param, and XASSERT.

Referenced by FEAT::Solver::QPenalty< Functional_ >::QPenalty().

◆ set_max_iter()

void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::set_max_iter ( Index  max_iter)
inlineinherited

Sets the maximum iteration count for the solver.

Definition at line 455 of file iterative.hpp.

◆ set_min_iter()

void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::set_min_iter ( Index  min_iter)
inlineinherited

Sets the minimum iteration count for the solver.

Definition at line 449 of file iterative.hpp.

◆ set_min_stag_iter()

void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::set_min_stag_iter ( Index  min_iter)
inlineinherited

Sets the minimum stagnate iteration count for the solver.

Definition at line 437 of file iterative.hpp.

◆ set_plot_interval()

void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::set_plot_interval ( const Index  plot_interval)
inlineinherited

Sets the interval between two plot outputs, if any.

Parameters
[in]plot_intervalThe desired interval of iteration plots

Definition at line 511 of file iterative.hpp.

◆ set_plot_mode()

void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::set_plot_mode ( const PlotMode  plot_mode)
inlineinherited

Sets the plot mode of the solver.

Parameters
[in]plot_modeThe desired plot mode

Definition at line 501 of file iterative.hpp.

◆ set_plot_name()

void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::set_plot_name ( const String plot_name)
inlineinherited

Sets the plot name of the solver.

Definition at line 517 of file iterative.hpp.

◆ set_stag_rate()

void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::set_stag_rate ( DataType  rate)
inlineinherited

Sets the stagnation rate for the solver.

Definition at line 425 of file iterative.hpp.

◆ set_tol_abs()

void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::set_tol_abs ( DataType  tol_abs)
inlineinherited

Sets the absolute tolerance for the solver.

Definition at line 371 of file iterative.hpp.

◆ set_tol_abs_low()

void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::set_tol_abs_low ( DataType  tol_abs_low)
inlineinherited

Sets the lower absolute tolerance for the solver.

Definition at line 377 of file iterative.hpp.

◆ set_tol_penalty()

template<typename Functional_ >
void FEAT::Solver::QPenalty< Functional_ >::set_tol_penalty ( DataType  tol_penalty)
inline

Sets the initial penalty parameter.

Definition at line 180 of file qpenalty.hpp.

References FEAT::Solver::QPenalty< Functional_ >::_tol_penalty, and XASSERT.

Referenced by FEAT::Solver::QPenalty< Functional_ >::QPenalty().

◆ set_tol_rel()

void FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::set_tol_rel ( DataType  tol_rel)
inlineinherited

Sets the relative tolerance for the solver.

Definition at line 365 of file iterative.hpp.

Member Data Documentation

◆ _comm

const Dist::Comm* FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_comm
protectedinherited

Communicator of the solver.

Definition at line 209 of file iterative.hpp.

◆ _def_cur

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_def_cur
protectedinherited

current defect

Definition at line 239 of file iterative.hpp.

◆ _def_init

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_def_init
protectedinherited

initial defect

Definition at line 237 of file iterative.hpp.

◆ _def_prev

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_def_prev
protectedinherited

previous iteration defect

Definition at line 241 of file iterative.hpp.

◆ _div_abs

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_div_abs
protectedinherited

absolute divergence parameter

Definition at line 223 of file iterative.hpp.

◆ _div_rel

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_div_rel
protectedinherited

relative divergence parameter

Definition at line 221 of file iterative.hpp.

◆ _force_def_norm_calc

bool FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_force_def_norm_calc
protectedinherited

whether skipping of defect computation is allowed or not

Definition at line 249 of file iterative.hpp.

◆ _functional

template<typename Functional_ >
FunctionalType& FEAT::Solver::QPenalty< Functional_ >::_functional
private

The functional that takes the penalty parameters and is assembled in the inner solver.

Definition at line 61 of file qpenalty.hpp.

Referenced by FEAT::Solver::QPenalty< Functional_ >::_apply_intern(), FEAT::Solver::QPenalty< Functional_ >::apply(), and FEAT::Solver::QPenalty< Functional_ >::correct().

◆ _initial_penalty_param

template<typename Functional_ >
DataType FEAT::Solver::QPenalty< Functional_ >::_initial_penalty_param
private

◆ _inner_solver

template<typename Functional_ >
std::shared_ptr<IterativeSolver<VectorType> > FEAT::Solver::QPenalty< Functional_ >::_inner_solver
private

◆ _iter_digits

Index FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_iter_digits
protectedinherited

iteration count digits for plotting

Definition at line 243 of file iterative.hpp.

◆ _max_iter

Index FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_max_iter
protectedinherited

maximum number of iterations

Definition at line 229 of file iterative.hpp.

◆ _min_iter

Index FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_min_iter
protectedinherited

minimum number of iterations

Definition at line 227 of file iterative.hpp.

◆ _min_stag_iter

Index FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_min_stag_iter
protectedinherited

minimum number of stagnation iterations

Definition at line 233 of file iterative.hpp.

◆ _num_iter

Index FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_num_iter
protectedinherited

number of performed iterations

Definition at line 231 of file iterative.hpp.

◆ _num_stag_iter

Index FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_num_stag_iter
protectedinherited

number of consecutive stagnated iterations

Definition at line 235 of file iterative.hpp.

◆ _plot_interval

Index FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_plot_interval
protectedinherited

plot output interval

Definition at line 247 of file iterative.hpp.

◆ _plot_mode

PlotMode FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_plot_mode
protectedinherited

whether to plot something

Definition at line 245 of file iterative.hpp.

◆ _plot_name

String FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_plot_name
protectedinherited

name of the solver in plots

Definition at line 211 of file iterative.hpp.

◆ _stag_rate

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_stag_rate
protectedinherited

stagnation rate

Definition at line 225 of file iterative.hpp.

◆ _status

Status FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_status
protectedinherited

current status of the solver

Definition at line 213 of file iterative.hpp.

◆ _tol_abs

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_tol_abs
protectedinherited

absolute tolerance parameter

Definition at line 217 of file iterative.hpp.

◆ _tol_abs_low

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_tol_abs_low
protectedinherited

absolute low tolerance parameter

Definition at line 219 of file iterative.hpp.

◆ _tol_penalty

template<typename Functional_ >
DataType FEAT::Solver::QPenalty< Functional_ >::_tol_penalty
private

Maximum value the penalty parameter is allowed to take.

Definition at line 67 of file qpenalty.hpp.

Referenced by FEAT::Solver::QPenalty< Functional_ >::_apply_intern(), and FEAT::Solver::QPenalty< Functional_ >::set_tol_penalty().

◆ _tol_rel

DataType FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_tol_rel
protectedinherited

relative tolerance parameter

Definition at line 215 of file iterative.hpp.


The documentation for this class was generated from the following file: