DOpE
|
#include <newtonsolvermixeddims.h>
Public Member Functions | |
NewtonSolverMixedDimensions (INTEGRATOR &integrator, ParameterReader ¶m_reader) | |
~NewtonSolverMixedDimensions () | |
template<typename PROBLEM > | |
void | ReInit (PROBLEM &pde) |
template<typename PROBLEM > | |
bool | NonlinearSolve (PROBLEM &pde, VECTOR &solution, bool apply_boundary_values=true, bool force_matrix_build=false, int priority=5, std::string algo_level="\t\t ") |
Static Public Member Functions | |
static void | declare_params (ParameterReader ¶m_reader) |
Protected Member Functions | |
INTEGRATOR & | GetIntegrator () |
A nonlinear solver class to compute solutions to nonlinear (stationary) problems Where the nonlinear variable is in a lower dimensional (0-dim) depending on quanties given in a higherdimensional space in which we can integrate using the INTEGRATOR.
<INTEGRATOR> | Integration routines to compute domain-, face-, and right-hand side values. |
<LINEARSOLVER> | A linear solver to solve the linear subproblems. |
<VECTOR> | A template class for arbitrary vectors which are given to the FS scheme and where the solution is stored in. |
DOpE::NewtonSolverMixedDimensions< INTEGRATOR, LINEARSOLVER, VECTOR >::NewtonSolverMixedDimensions | ( | INTEGRATOR & | integrator, |
ParameterReader & | param_reader | ||
) |
DOpE::NewtonSolverMixedDimensions< INTEGRATOR, LINEARSOLVER, VECTOR >::~NewtonSolverMixedDimensions | ( | ) |
|
static |
|
inlineprotected |
bool DOpE::NewtonSolverMixedDimensions< INTEGRATOR, LINEARSOLVER, VECTOR >::NonlinearSolve | ( | PROBLEM & | pde, |
VECTOR & | solution, | ||
bool | apply_boundary_values = true , |
||
bool | force_matrix_build = false , |
||
int | priority = 5 , |
||
std::string | algo_level = "\t\t " |
||
) |
Solves the nonlinear PDE described by the PDEPROBLEM given initialy to the constructor using a Newton-Method
<PROBLEM> | The description of the problem we want to solve. |
pde | The problem |
solution | A Vector that will store the solution upon completion Note that an initial guess for the solution may be stored in this vector as this Vector is used as starting value for the Iteration. |
apply_boundary_values | A boolean that decides whether we apply strong dirichlet boundary values to the Vector solution or not. If true (default) the Values will be applied However if it is set to false, solution will be used unchanged as initial condition. Be aware of the fact that NewtonsMethod can only converge in this case if the initial Value of solution has the correct boundary values. |
force_build_matrix | A boolean value, that indicates whether the Matrix should be build by the linear solver in the first iteration. The default is false, meaning that if we have no idea we don't want to build a matrix. |
priority | A number that defines the offset for the priority of the output |
algo_level | A prefix string to adjust indentation of the output. |
void DOpE::NewtonSolverMixedDimensions< INTEGRATOR, LINEARSOLVER, VECTOR >::ReInit | ( | PROBLEM & | pde | ) |
This Function should be called once after grid refinement, or changes in boundary values to recompute sparsity patterns, and constraint matrices.