|
ug4
|
Newton solver for assembling based discretizations. More...
#include <newton.h>
Inheritance diagram for ug::NewtonSolver< TAlgebra >:Public Types | |
| typedef TAlgebra | algebra_type |
| Algebra type. | |
| typedef TAlgebra::matrix_type | matrix_type |
| Matrix type. | |
| typedef TAlgebra::vector_type | vector_type |
| Vector type. | |
Public Types inherited from ug::IOperatorInverse< TAlgebra::vector_type > | |
| typedef TAlgebra::vector_type | codomain_function_type |
| Range space. | |
| typedef TAlgebra::vector_type | domain_function_type |
| Domain space. | |
Public Types inherited from ug::DebugWritingObject< TAlgebra > | |
| typedef TAlgebra | algebra_type |
| type of algebra | |
| typedef TAlgebra::matrix_type | matrix_type |
| type of matrix | |
| typedef TAlgebra::vector_type | vector_type |
| type of vector | |
Public Types inherited from ug::VectorDebugWritingObject< TAlgebra::vector_type > | |
| typedef TAlgebra::vector_type | vector_type |
| type of vector | |
Public Member Functions | |
| void | add_inner_step_update (SmartPtr< INewtonUpdate > NU) |
| add inner step update (applied before every linear solver step) | |
| void | add_step_update (SmartPtr< INewtonUpdate > NU) |
| add outer step update (applied before every Newton step) | |
| virtual bool | apply (vector_type &u) |
| apply Operator, i.e. N^{-1}(0) = u | |
| void | clear_average_convergence () |
| resets average linear solver convergence | |
| void | clear_inner_step_update (SmartPtr< INewtonUpdate > NU) |
| clears inner step update | |
| void | clear_step_update (SmartPtr< INewtonUpdate > NU) |
| clears outer step update | |
| virtual std::string | config_string () const |
| returns information about configuration parameters | |
| bool | createNewtonUpdater () |
| void | disable_line_search () |
| virtual bool | init (SmartPtr< IOperator< vector_type > > N) |
| This operator inverts the Operator N: Y -> X. | |
| SmartPtr< ILineSearch< vector_type > > | line_search () |
| NewtonSolver () | |
| default constructor | |
| NewtonSolver (SmartPtr< IAssemble< TAlgebra > > spAss) | |
| constructor using assembling | |
| NewtonSolver (SmartPtr< ILinearOperatorInverse< vector_type > > LinearSolver, SmartPtr< IConvergenceCheck< vector_type > > spConvCheck, SmartPtr< ILineSearch< vector_type > > spLineSearch) | |
| constructor | |
| NewtonSolver (SmartPtr< IOperator< vector_type > > N) | |
| constructor setting operator | |
| virtual bool | prepare (vector_type &u) |
| prepare Operator | |
| void | print_average_convergence () const |
| prints average linear solver convergence | |
| void | set_convergence_check (SmartPtr< IConvergenceCheck< vector_type > > spConvCheck) |
| sets the convergence check | |
| void | set_line_search (SmartPtr< ILineSearch< vector_type > > spLineSearch) |
| sets the line search | |
| void | set_linear_solver (SmartPtr< ILinearOperatorInverse< vector_type > > LinearSolver) |
| sets the linear solver | |
| void | set_reassemble_J_freq (int freq) |
| sets the frequency of reassembling of the Jacobian (0 == 1 == in every step, i.e. classically) | |
| void | setNewtonUpdater (SmartPtr< NewtonUpdaterGeneric< vector_type > > nU) |
| size_t | num_newton_steps () const |
| int | num_linsolver_calls (size_t call) const |
| int | num_linsolver_steps (size_t call) const |
| double | average_linear_steps (size_t call) const |
| int | total_linsolver_calls () const |
| int | total_linsolver_steps () const |
| double | total_average_linear_steps () const |
| int | last_num_newton_steps () const |
Public Member Functions inherited from ug::IOperatorInverse< TAlgebra::vector_type > | |
| virtual bool | init (SmartPtr< IOperator< TAlgebra::vector_type, TAlgebra::vector_type > > N)=0 |
| initializes the operator for the inversion of the operator N: Y -> X | |
| virtual | ~IOperatorInverse () |
| virtual destructor | |
Public Member Functions inherited from ug::DebugWritingObject< TAlgebra > | |
| SmartPtr< IDebugWriter< algebra_type > > | debug_writer () |
| returns the debug writer | |
| ConstSmartPtr< IDebugWriter< algebra_type > > | debug_writer () const |
| bool | debug_writer_valid () const |
| returns true if the debug writer is set | |
| DebugWritingObject () | |
| DebugWritingObject (const DebugWritingObject< algebra_type > &parent) | |
| clone constructor | |
| DebugWritingObject (SmartPtr< IDebugWriter< algebra_type > > spDebugWriter) | |
| virtual void | set_debug (SmartPtr< IDebugWriter< algebra_type > > spDebugWriter) |
| set debug writer | |
| virtual | ~DebugWritingObject () |
| virtual destructor | |
Public Member Functions inherited from ug::VectorDebugWritingObject< TAlgebra::vector_type > | |
| virtual void | set_debug (SmartPtr< IVectorDebugWriter< vector_type > > spDebugWriter) |
| set debug writer | |
| SmartPtr< IVectorDebugWriter< vector_type > > | vector_debug_writer () |
| returns the debug writer | |
| ConstSmartPtr< IVectorDebugWriter< vector_type > > | vector_debug_writer () const |
| bool | vector_debug_writer_valid () const |
| returns true if the debug writer is set | |
| VectorDebugWritingObject () | |
| VectorDebugWritingObject (SmartPtr< IVectorDebugWriter< vector_type > > spDebugWriter) | |
| void | write_debug (const vector_type &vec, const char *filename) |
| writing debug output for a vector (if debug writer set) | |
| virtual | ~VectorDebugWritingObject () |
| virtual destructor | |
Private Member Functions | |
| void | write_debug (const vector_type &vec, std::string filename) |
| void | write_debug (const matrix_type &mat, std::string filename) |
Private Attributes | |
| int | m_dgbCall |
| call counter | |
| std::vector< SmartPtr< INewtonUpdate > > | m_innerStepUpdate |
| Update. | |
| SmartPtr< AssembledLinearOperator< algebra_type > > | m_J |
| jacobi operator | |
| int | m_lastNumSteps |
| SmartPtr< AssembledOperator< algebra_type > > | m_N |
| assembling routine | |
| SmartPtr< NewtonUpdaterGeneric< vector_type > > | m_newtonUpdater |
| int | m_reassembe_J_freq |
| how often to reassemble the Jacobian (0 == 1 == in every step, i.e. classically) | |
| SmartPtr< IAssemble< TAlgebra > > | m_spAss |
| assembling | |
| SmartPtr< IConvergenceCheck< vector_type > > | m_spConvCheck |
| Convergence Check. | |
| SmartPtr< ILinearOperatorInverse< vector_type > > | m_spLinearSolver |
| linear solver | |
| SmartPtr< ILineSearch< vector_type > > | m_spLineSearch |
| LineSearch. | |
| std::vector< SmartPtr< INewtonUpdate > > | m_stepUpdate |
| std::vector< int > | m_vTotalLinSolverSteps |
| std::vector< int > | m_vLinSolverCalls |
| std::vector< number > | m_vNonLinSolverRates |
| std::vector< number > | m_vLinSolverRates |
Additional Inherited Members | |
Protected Member Functions inherited from ug::DebugWritingObject< TAlgebra > | |
| void | enter_debug_writer_section (const char *secDir) |
| enters a debugging section | |
| void | enter_debug_writer_section (std::string secDir) |
| enters a debugging section | |
| void | leave_debug_writer_section () |
| leaves a debugging section | |
| void | write_debug (const matrix_type &mat, const char *filename) |
| write debug output for a matrix (if debug writer set) | |
| void | write_debug (const matrix_type &mat, std::string name) |
| write debug output for a matrix (if debug writer set) | |
Protected Member Functions inherited from ug::VectorDebugWritingObject< TAlgebra::vector_type > | |
| void | enter_vector_debug_writer_section (const char *secDir) |
| enters a debugging section | |
| void | enter_vector_debug_writer_section (std::string secDir) |
| enters a debugging section | |
| void | leave_vector_debug_writer_section () |
| leaves a debugging section | |
| void | print_debugger_message (const char *msg) |
| prints a debugger message (listing all the sections) | |
| void | print_debugger_message (std::string msg) |
| prints a debugger message (listing all the sections) | |
Protected Attributes inherited from ug::DebugWritingObject< TAlgebra > | |
| SmartPtr< IDebugWriter< algebra_type > > | m_spDebugWriter |
| Debug Writer. | |
Protected Attributes inherited from ug::VectorDebugWritingObject< TAlgebra::vector_type > | |
| SmartPtr< IVectorDebugWriter< vector_type > > | m_spVectorDebugWriter |
| Debug Writer. | |
Newton solver for assembling based discretizations.
| typedef TAlgebra ug::NewtonSolver< TAlgebra >::algebra_type |
Algebra type.
| typedef TAlgebra::matrix_type ug::NewtonSolver< TAlgebra >::matrix_type |
Matrix type.
| typedef TAlgebra::vector_type ug::NewtonSolver< TAlgebra >::vector_type |
Vector type.
| ug::NewtonSolver< TAlgebra >::NewtonSolver | ( | SmartPtr< IOperator< vector_type > > | N | ) |
constructor setting operator
References init().
| ug::NewtonSolver< TAlgebra >::NewtonSolver | ( | SmartPtr< IAssemble< TAlgebra > > | spAss | ) |
constructor using assembling
References ug::NewtonSolver< TAlgebra >::m_N, and ug::NewtonSolver< TAlgebra >::m_spAss.
| ug::NewtonSolver< TAlgebra >::NewtonSolver | ( | ) |
default constructor
| ug::NewtonSolver< TAlgebra >::NewtonSolver | ( | SmartPtr< ILinearOperatorInverse< vector_type > > | LinearSolver, |
| SmartPtr< IConvergenceCheck< vector_type > > | spConvCheck, | ||
| SmartPtr< ILineSearch< vector_type > > | spLineSearch | ||
| ) |
constructor
|
inline |
add inner step update (applied before every linear solver step)
References ug::NewtonSolver< TAlgebra >::m_innerStepUpdate.
|
inline |
add outer step update (applied before every Newton step)
References ug::NewtonSolver< TAlgebra >::m_stepUpdate.
|
virtual |
apply Operator, i.e. N^{-1}(0) = u
Implements ug::IOperatorInverse< TAlgebra::vector_type >.
References make_sp(), NEWTON_PROFILE_BEGIN, NEWTON_PROFILE_END, SPNULL, UG_CATCH_THROW, UG_LOG, and UG_THROW.
| double ug::NewtonSolver< TAlgebra >::average_linear_steps | ( | size_t | call | ) | const |
information on convergence history
| void ug::NewtonSolver< TAlgebra >::clear_average_convergence | ( | ) |
resets average linear solver convergence
|
inline |
clears inner step update
References ug::NewtonSolver< TAlgebra >::m_innerStepUpdate.
|
inline |
clears outer step update
References ug::NewtonSolver< TAlgebra >::m_stepUpdate.
|
virtual |
returns information about configuration parameters
this should return necessary information about parameters and possibly calling config_string of subcomponents.
Implements ug::IOperatorInverse< TAlgebra::vector_type >.
References ug::ConfigShift().
|
inline |
References ug::NewtonSolver< TAlgebra >::m_newtonUpdater, and SPNULL.
|
inline |
References ug::NewtonSolver< TAlgebra >::m_spLineSearch, and SPNULL.
|
virtual |
This operator inverts the Operator N: Y -> X.
References NEWTON_PROFILE_BEGIN, and UG_THROW.
|
inline |
information on convergence history
References ug::NewtonSolver< TAlgebra >::m_lastNumSteps.
|
inline |
References ug::NewtonSolver< TAlgebra >::m_spLineSearch.
| int ug::NewtonSolver< TAlgebra >::num_linsolver_calls | ( | size_t | call | ) | const |
information on convergence history
| int ug::NewtonSolver< TAlgebra >::num_linsolver_steps | ( | size_t | call | ) | const |
information on convergence history
| size_t ug::NewtonSolver< TAlgebra >::num_newton_steps | ( | ) | const |
information on convergence history
|
virtual |
prepare Operator
Implements ug::IOperatorInverse< TAlgebra::vector_type >.
| void ug::NewtonSolver< TAlgebra >::print_average_convergence | ( | ) | const |
prints average linear solver convergence
References UG_LOG.
| void ug::NewtonSolver< TAlgebra >::set_convergence_check | ( | SmartPtr< IConvergenceCheck< vector_type > > | spConvCheck | ) |
sets the convergence check
|
inline |
sets the line search
References ug::NewtonSolver< TAlgebra >::m_spLineSearch.
|
inline |
sets the linear solver
References ug::NewtonSolver< TAlgebra >::m_spLinearSolver.
|
inline |
sets the frequency of reassembling of the Jacobian (0 == 1 == in every step, i.e. classically)
References ug::NewtonSolver< TAlgebra >::m_reassembe_J_freq.
|
inline |
References ug::NewtonSolver< TAlgebra >::m_newtonUpdater.
| double ug::NewtonSolver< TAlgebra >::total_average_linear_steps | ( | ) | const |
information on convergence history
| int ug::NewtonSolver< TAlgebra >::total_linsolver_calls | ( | ) | const |
information on convergence history
| int ug::NewtonSolver< TAlgebra >::total_linsolver_steps | ( | ) | const |
information on convergence history
|
private |
help functions for debug output
References name.
|
privatevirtual |
help functions for debug output
Reimplemented from ug::VectorDebugWritingObject< TAlgebra::vector_type >.
References name.
|
private |
call counter
|
private |
Update.
Referenced by ug::NewtonSolver< TAlgebra >::add_inner_step_update(), and ug::NewtonSolver< TAlgebra >::clear_inner_step_update().
|
private |
jacobi operator
|
private |
Referenced by ug::NewtonSolver< TAlgebra >::last_num_newton_steps().
|
private |
assembling routine
Referenced by ug::NewtonSolver< TAlgebra >::NewtonSolver().
|
private |
|
private |
how often to reassemble the Jacobian (0 == 1 == in every step, i.e. classically)
Referenced by ug::NewtonSolver< TAlgebra >::set_reassemble_J_freq().
|
private |
assembling
Referenced by ug::NewtonSolver< TAlgebra >::NewtonSolver().
|
private |
Convergence Check.
|
private |
linear solver
Referenced by ug::NewtonSolver< TAlgebra >::set_linear_solver().
|
private |
|
private |
|
private |
convergence history of linear solver
|
private |
convergence history of linear solver
|
private |
convergence history of linear solver
|
private |
convergence history of linear solver