DOpE
Public Member Functions | Static Public Member Functions | Protected Member Functions
DOpE::NewtonSolver< INTEGRATOR, LINEARSOLVER, VECTOR > Class Template Reference

#include <newtonsolver.h>

Inheritance diagram for DOpE::NewtonSolver< INTEGRATOR, LINEARSOLVER, VECTOR >:

Public Member Functions

 NewtonSolver (INTEGRATOR &integrator, ParameterReader &param_reader)
 
 ~NewtonSolver ()
 
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 &param_reader)
 

Protected Member Functions

INTEGRATOR & GetIntegrator ()
 

Detailed Description

template<typename INTEGRATOR, typename LINEARSOLVER, typename VECTOR>
class DOpE::NewtonSolver< INTEGRATOR, LINEARSOLVER, VECTOR >

A nonlinear solver class to compute solutions to nonlinear (stationary) problems

Template Parameters
<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.

Constructor & Destructor Documentation

template<typename INTEGRATOR , typename LINEARSOLVER , typename VECTOR >
DOpE::NewtonSolver< INTEGRATOR, LINEARSOLVER, VECTOR >::NewtonSolver ( INTEGRATOR &  integrator,
ParameterReader param_reader 
)
template<typename INTEGRATOR , typename LINEARSOLVER , typename VECTOR >
DOpE::NewtonSolver< INTEGRATOR, LINEARSOLVER, VECTOR >::~NewtonSolver ( )

Member Function Documentation

template<typename INTEGRATOR , typename LINEARSOLVER , typename VECTOR >
void DOpE::NewtonSolver< INTEGRATOR, LINEARSOLVER, VECTOR >::declare_params ( ParameterReader param_reader)
static
template<typename INTEGRATOR , typename LINEARSOLVER , typename VECTOR >
INTEGRATOR & DOpE::NewtonSolver< INTEGRATOR, LINEARSOLVER, VECTOR >::GetIntegrator ( )
inlineprotected
template<typename INTEGRATOR , typename LINEARSOLVER , typename VECTOR >
template<typename PROBLEM >
bool DOpE::NewtonSolver< 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 PROBLEM using a Newton-Method

Template Parameters
<PROBLEM>The description of the problem we want to solve.
Parameters
pdeThe problem
solutionA 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_valuesA 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_matrixA 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.
priorityA number that defines the offset for the priority of the output
algo_levelA prefix string to adjust indentation of the output.
Returns
a boolean, that indicates whether it should be required to build the matrix next time that this method is used, e.g. the value for force_build_matrix of the next call.
template<typename INTEGRATOR , typename LINEARSOLVER , typename VECTOR >
template<typename PROBLEM >
void DOpE::NewtonSolver< 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.


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