Finite Element Domain Decomposition Library
FEDDLib
Loading...
Searching...
No Matches
FEDD::NonLinearSolver< SC, LO, GO, NO > Class Template Reference

Public Types

typedef Problem< SC, LO, NO, GO > Problem_Type
 
typedef Teuchos::RCP< Problem_TypeProblemPtr_Type
 
typedef TimeProblem< SC, LO, GO, NO > TimeProblem_Type
 
typedef NonLinearProblem< SC, LO, GO, NO > NonLinearProblem_Type
 
typedef Problem_Type::Matrix_Type Matrix_Type
 
typedef Problem_Type::MatrixPtr_Type MatrixPtr_Type
 
typedef Teuchos::RCP< ExporterTxtExporterTxtPtr_Type
 
typedef boost::function< bool(std::string &, int, double, ParameterListPtr_Type parameterList)> SwitchingStrategyFunc
 

Public Member Functions

 NonLinearSolver (std::string type)
 Constructor with the corresponding type of nonlinear Solver / Linearization: Newton, FixedPoint, NOX.
 
void solve (NonLinearProblem_Type &problem, vec_dbl_ptr_Type valuesForExport=Teuchos::null)
 Call for solving a nonlinear problem, depending on linearization solveNOX/solveFixedPoint/solveNewton is called.
 
void solve (TimeProblem_Type &problem, double time=0., vec_dbl_ptr_Type valuesForExport=Teuchos::null)
 Call for solving a nonlinear problem which is also a time problem, depending on linearization solveNOX/solveFixedPoint/solveNewton is called.
 
int getNonLinIts ()
 return the number of nonlinear iterations needed
 
void addSwitchingStrategyFunction (SwitchingStrategyFunc switchingStrategy)
 Add a switching strategy function for the FixedPointNewton method.
 

Member Function Documentation

◆ addSwitchingStrategyFunction()

template<class SC = default_sc, class LO = default_lo, class GO = default_go, class NO = default_no>
void FEDD::NonLinearSolver< SC, LO, GO, NO >::addSwitchingStrategyFunction ( SwitchingStrategyFunc switchingStrategy)
inline

Add a switching strategy function for the FixedPointNewton method.

Parameters
[in]switchingStrategyfunction which decides whether to switch the linearization or not and outputs a boolean value whether linearization was switched or not

◆ solve() [1/2]

template<class SC, class LO, class GO, class NO>
void FEDD::NonLinearSolver< SC, LO, GO, NO >::solve ( NonLinearProblem_Type & problem,
vec_dbl_ptr_Type valuesForExport = Teuchos::null )

Call for solving a nonlinear problem, depending on linearization solveNOX/solveFixedPoint/solveNewton is called.

Parameters
[in]problem
[in]valuesForExport

◆ solve() [2/2]

template<class SC, class LO, class GO, class NO>
void FEDD::NonLinearSolver< SC, LO, GO, NO >::solve ( TimeProblem_Type & problem,
double time = 0.,
vec_dbl_ptr_Type valuesForExport = Teuchos::null )

Call for solving a nonlinear problem which is also a time problem, depending on linearization solveNOX/solveFixedPoint/solveNewton is called.

Parameters
[in]problemtime dependent problem
[in]currenttime
[in]valuesForExportcontains nonlinear and average linear iteration count per solve step

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