#include <nonlinsystem.h>
Inherits LinSystem.
Inherited by RefNonlinSystem, and RefSystem.
Public Member Functions | |
| void | init_nonlin () |
| Initializes the class and creates a zero initial coefficient vector. | |
| NonlinSystem (WeakForm *wf, Solver *solver) | |
| NonlinSystem (WeakForm *wf) | |
| NonlinSystem (WeakForm *wf, Solver *solver, Space *s) | |
| NonlinSystem (WeakForm *wf, Space *s) | |
| NonlinSystem (WeakForm *wf, Solver *solver, int n,...) | |
| NonlinSystem (WeakForm *wf, int n,...) | |
| virtual void | free () |
| Frees the memory for the RHS, Dir and Vec vectors, and solver data,. | |
| void | set_alpha (double alpha) |
| Adjusts the iteration coefficient. The default value for alpha is 1. | |
| void | assemble (bool rhsonly=false) |
| Assembles the Jacobian matrix and the residual vector (as opposed to LibSystem::assemble() that constructs a stiffness matrix and load vector). | |
| bool | solve (int n,...) |
| Performs one step of the Newton's method for an arbitrary number of equations, stores the result in the given Solutions. | |
| bool | solve (Solution *sln) |
| bool | solve_newton (Solution *u_prev, double newton_tol, int newton_max_iter, Filter *f1=NULL, Filter *f2=NULL, Filter *f3=NULL) |
| Performs complete Newton's loop for one equation. | |
| bool | solve_newton (Solution *u_prev_1, Solution *u_prev_2, double newton_tol, int newton_max_iter, Filter *f1=NULL, Filter *f2=NULL, Filter *f3=NULL) |
| Performs complete Newton's loop for two equations. | |
| bool | solve_newton (Solution *u_prev_1, Solution *u_prev_2, Solution *u_prev_3, double newton_tol, int newton_max_iter, Filter *f1=NULL, Filter *f2=NULL, Filter *f3=NULL) |
| Performs complete Newton's loop for three equations. | |
| double | get_residual_l2_norm () const |
| returns the L2-norm of the residual vector | |
| double | get_residual_l1_norm () const |
| returns the L1-norm of the residual vector | |
| double | get_residual_max_norm () const |
| returns the L_inf-norm of the residual vector | |
| virtual bool | is_linear () |
| Helps to determine if linear or nonlinear class instance is used similar to Java instanceof functionality. | |
Protected Attributes | |
| double | alpha |
| double | res_l2 |
| double | res_l1 |
| double | res_max |
Friends | |
| class | RefNonlinSystem |
| NonlinSystem::NonlinSystem | ( | WeakForm * | wf | ) |
| NonlinSystem::NonlinSystem | ( | WeakForm * | wf, | |
| int | n, | |||
| ... | ||||
| ) |
| void NonlinSystem::assemble | ( | bool | rhsonly = false |
) | [virtual] |
| void NonlinSystem::free | ( | ) | [virtual] |
Frees the memory for the RHS, Dir and Vec vectors, and solver data,.
Reimplemented from LinSystem.
| double NonlinSystem::get_residual_l1_norm | ( | ) | const [inline] |
returns the L1-norm of the residual vector
| double NonlinSystem::get_residual_l2_norm | ( | ) | const [inline] |
returns the L2-norm of the residual vector
| double NonlinSystem::get_residual_max_norm | ( | ) | const [inline] |
returns the L_inf-norm of the residual vector
| void NonlinSystem::init_nonlin | ( | ) |
Initializes the class and creates a zero initial coefficient vector.
| virtual bool NonlinSystem::is_linear | ( | ) | [inline, virtual] |
Helps to determine if linear or nonlinear class instance is used similar to Java instanceof functionality.
Reimplemented from LinSystem.
| void NonlinSystem::set_alpha | ( | double | alpha | ) | [inline] |
Adjusts the iteration coefficient. The default value for alpha is 1.
| bool NonlinSystem::solve | ( | int | n, | |
| ... | ||||
| ) |
Performs one step of the Newton's method for an arbitrary number of equations, stores the result in the given Solutions.
Reimplemented from LinSystem.
| bool NonlinSystem::solve_newton | ( | Solution * | u_prev_1, | |
| Solution * | u_prev_2, | |||
| Solution * | u_prev_3, | |||
| double | newton_tol, | |||
| int | newton_max_iter, | |||
| Filter * | f1 = NULL, |
|||
| Filter * | f2 = NULL, |
|||
| Filter * | f3 = NULL | |||
| ) |
Performs complete Newton's loop for three equations.
| bool NonlinSystem::solve_newton | ( | Solution * | u_prev_1, | |
| Solution * | u_prev_2, | |||
| double | newton_tol, | |||
| int | newton_max_iter, | |||
| Filter * | f1 = NULL, |
|||
| Filter * | f2 = NULL, |
|||
| Filter * | f3 = NULL | |||
| ) |
Performs complete Newton's loop for two equations.
| bool NonlinSystem::solve_newton | ( | Solution * | u_prev, | |
| double | newton_tol, | |||
| int | newton_max_iter, | |||
| Filter * | f1 = NULL, |
|||
| Filter * | f2 = NULL, |
|||
| Filter * | f3 = NULL | |||
| ) |
Performs complete Newton's loop for one equation.
friend class RefNonlinSystem [friend] |
double NonlinSystem::alpha [protected] |
double NonlinSystem::res_l1 [protected] |
double NonlinSystem::res_l2 [protected] |
double NonlinSystem::res_max [protected] |
1.6.3