NuTo
Numerics Tool
|
Classes | |
struct | DoubleSolver |
"Solver" for scalar values More... | |
class | LineSearchImplementation |
Performs the line search algorithm based on the results of a single newton iteration step. More... | |
class | NoConvergence |
custom exception for the newton algorithm More... | |
class | NoLineSearch |
just a normal continuation of the newton scheme without using line search while keeping the interface of NuTo::LineSearch More... | |
struct | Problem |
problem definition More... | |
struct | VoidInfo |
takes any argument and does nothing... More... | |
Functions | |
template<typename TInfo = VoidInfo> | |
LineSearchImplementation< TInfo > | LineSearch (TInfo info=VoidInfo(), int mMaxNumLineSearchStep=6) |
convienient instantiation of the NuTo::LineSearchImplementation with template deduction More... | |
template<typename TR , typename TDR , typename TNorm , typename TTol , typename TInfo = VoidInfo> | |
auto | DefineProblem (TR residual, TDR derivative, TNorm norm, TTol tolerance, TInfo info=VoidInfo()) |
defines the problem, basically just to enable automatic template deduction. More... | |
template<typename TNonlinearProblem , typename TX , typename TSolver , typename TLineSearchAlgorithm = NoLineSearch> | |
auto | Solve (TNonlinearProblem &&problem, TX &&x0, TSolver &&solver, int maxIterations=20, TLineSearchAlgorithm &&lineSearch=NoLineSearch(), int *numIterations=nullptr) |
solves the Problem using the newton raphson iteration with linesearch More... | |
auto NuTo::NewtonRaphson::DefineProblem | ( | TR | residual, |
TDR | derivative, | ||
TNorm | norm, | ||
TTol | tolerance, | ||
TInfo | info = VoidInfo() |
||
) |
defines the problem, basically just to enable automatic template deduction.
If you create a Problem directly, you'll have to specify each template parameter. This methods avoids it.
LineSearchImplementation<TInfo> NuTo::NewtonRaphson::LineSearch | ( | TInfo | info = VoidInfo() , |
int | mMaxNumLineSearchStep = 6 |
||
) |
convienient instantiation of the NuTo::LineSearchImplementation with template deduction
auto NuTo::NewtonRaphson::Solve | ( | TNonlinearProblem && | problem, |
TX && | x0, | ||
TSolver && | solver, | ||
int | maxIterations = 20 , |
||
TLineSearchAlgorithm && | lineSearch = NoLineSearch() , |
||
int * | numIterations = nullptr |
||
) |
solves the Problem using the newton raphson iteration with linesearch
problem | type of the nonlinear problem |
x0 | of the initial value for the iteration |
solver | solver that provides a TX = solver.Solve(TNonlinearProblem::DR, TNonlinearProblem::R) |
maxIterations | default = 20 |
lineSearch | line search algorithm, default = NoLineSearch, alternatively use NuTo::LineSearch() |
numIterations | optionally returns the number of iterations required |