36class NonLinearSolver {
41 typedef Teuchos::RCP<Problem_Type> ProblemPtr_Type;
46 typedef typename Problem_Type::Matrix_Type Matrix_Type;
47 typedef typename Problem_Type::MatrixPtr_Type MatrixPtr_Type;
49 typedef Teuchos::RCP<ExporterTxt> ExporterTxtPtr_Type;
52 typedef boost::function<bool( std::string& ,
int,
double, ParameterListPtr_Type parameterList)> SwitchingStrategyFunc;
58 NonLinearSolver(std::string type);
67 void solve(NonLinearProblem_Type& problem,vec_dbl_ptr_Type valuesForExport = Teuchos::null );
75 void solve(TimeProblem_Type& problem,
double time=0., vec_dbl_ptr_Type valuesForExport = Teuchos::null );
85 switchingStrategy_ = switchingStrategy;
97 void solveNOX(NonLinearProblem_Type& problem,vec_dbl_ptr_Type valuesForExport = Teuchos::null);
104 void solveNOX( TimeProblem_Type& problem, vec_dbl_ptr_Type valuesForExport = Teuchos::null );
112 void solveFixedPoint(NonLinearProblem_Type& problem,vec_dbl_ptr_Type valuesForExport = Teuchos::null);
119 void solveNewton(NonLinearProblem_Type& problem, vec_dbl_ptr_Type valuesForExport = Teuchos::null );
129 void solveFixedPointNewton(NonLinearProblem_Type& problem, vec_dbl_ptr_Type valuesForExport = Teuchos::null );
137 void solveFixedPoint(TimeProblem_Type& problem,
double time);
145 void solveNewton(TimeProblem_Type& problem,
double time, vec_dbl_ptr_Type valuesForExport = Teuchos::null );
155 void solveExtrapolation(TimeProblem_Type& problem,
double time);
159 int nonLinearIts_ =0;
162 SwitchingStrategyFunc switchingStrategy_ = []( std::string& currentLinearization ,
int nlIts,
double criterionValue, ParameterListPtr_Type parameterList ) {
return false;};
void solve(NonLinearProblem_Type &problem, vec_dbl_ptr_Type valuesForExport=Teuchos::null)
Call for solving a nonlinear problem, depending on linearization solveNOX/solveFixedPoint/solveNewton...
Definition NonLinearSolver_def.hpp:33