#include <fractional_step_theta_step_newtonsolver.h>
|
| FractionalStepThetaStepNewtonSolver (INTEGRATOR &integrator, ParameterReader ¶m_reader) |
|
| ~FractionalStepThetaStepNewtonSolver () |
|
template<typename PROBLEM > |
void | ReInit (PROBLEM &pde) |
|
template<typename PROBLEM > |
bool | NonlinearSolve (PROBLEM &pde, const VECTOR &last_time_solution, VECTOR &solution, bool apply_boundary_values=true, bool force_matrix_build=false, int priority=5, std::string algo_level="\t\t ") |
|
template<typename PROBLEM > |
bool | NonlinearSolve_Initial (PROBLEM &pde, VECTOR &solution, bool apply_boundary_values=true, bool force_matrix_build=false, int priority=5, std::string algo_level="\t\t ") |
|
template<typename PROBLEM > |
void | NonlinearLastTimeEvals (PROBLEM &pde, const VECTOR &last_time_solution, VECTOR &residual) |
|
template<typename INTEGRATOR, typename LINEARSOLVER, typename VECTOR>
class DOpE::FractionalStepThetaStepNewtonSolver< INTEGRATOR, LINEARSOLVER, VECTOR >
A nonlinear solver class to compute solutions to time dependent PDE- and optimization problems with help of the Fractional-Step-theta (FS) scheme. This class differ from the instat_step_newtonsolver.h since the time interval is split into three sub-intervals which is characteristic of this scheme.
- 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. |
template<typename INTEGRATOR , typename LINEARSOLVER , typename VECTOR >
Constructor of this class. Initialization of parameters which are used during computation. E.g., maximal number of newton iterations, global tolerance of the nonlinear solver etc.
- Parameters
-
integrator | A reference of the integrator is given to the nonlinear solver. |
param_reader | An object which has run time data for the nonlinear solver. |
template<typename INTEGRATOR , typename LINEARSOLVER , typename VECTOR >
template<typename INTEGRATOR , typename LINEARSOLVER , typename VECTOR >
Static member function for run time parameters.
- Parameters
-
param_reader | An object which has run time data. |
template<typename INTEGRATOR , typename LINEARSOLVER , typename VECTOR >
template<typename INTEGRATOR , typename LINEARSOLVER , typename VECTOR >
template<typename PROBLEM >
Evaluates the timestep Problem at the previous time-point, this is part of the rhs for the Solution
- Template Parameters
-
<PROBLEM> | The description of the problem we want to solve. |
- Parameters
-
pde | The problem |
last_time_solution | A Vector stores the solution from the previous timestep |
residual | A Vector that will store the results upon completion |
template<typename INTEGRATOR , typename LINEARSOLVER , typename VECTOR >
template<typename PROBLEM >
bool DOpE::FractionalStepThetaStepNewtonSolver< INTEGRATOR, LINEARSOLVER, VECTOR >::NonlinearSolve |
( |
PROBLEM & |
pde, |
|
|
const VECTOR & |
last_time_solution, |
|
|
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 coming from the fractional-step-theta time-discretization described by the PROBLEM using a Newton-Method
- Template Parameters
-
<PROBLEM> | The description of the problem we want to solve. |
- Parameters
-
pde | The problem |
last_time_solution | A Vector stores the solution from the previous timestep |
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. |
- 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 >
bool DOpE::FractionalStepThetaStepNewtonSolver< INTEGRATOR, LINEARSOLVER, VECTOR >::NonlinearSolve_Initial |
( |
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 to determine the initial value for the PROBLEM, i.e., there is no time dependence in this problem! using a Newton-Method
- Template Parameters
-
<PROBLEM> | The description of the problem we want to solve. |
- Parameters
-
pde | The problem |
solution | A Vector that will store the solution upon completion It is expected that solution is initially set to the return value of residual in NonlinearLastTimeEvals! |
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. |
- 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 >
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: