The easiest answer is to use a petsc command line option 

-snes_max_it #

I believe (-help will tell you all the options for the particular petsc 
functions you are using) .  Longer term, we will look into using the provided 
option properly.

-Ben



----- Original Message -----
From: yunfei zhu <[email protected]>
To: [email protected] <[email protected]>
Sent: Tue Jan 13 16:23:23 2009
Subject: [Libmesh-users] nonlinear steps

Hi, all
I find that the number of nonlinear steps can not be controled by:
es.parameters.set<unsigned int> ("nonlinear solver maximum iterations") =
100
In the function NonlinearImplicitSystem::solve ( ) , the parameter is
assigned to  "maxits" by:
const unsigned int maxits = es.parameters.get<unsigned int>("nonlinear
solver maximum iterations");
Then  "maxits" is  transfered to nonlinear_solver:
const std::pair<unsigned int, Real> rval =
                              nonlinear_solver->solve (*matrix,
*solution, *rhs, rel_resid_tol, maxits);
I have checked the file of petsc_nonlinear_solver.C, actually, the
"maxits" is not adopted in the following function:
template<typename T >
std::pair< unsigned int, Real > PetscNonlinearSolver< T >::solve  (
SparseMatrix< T > &  jac_in,  NumericVector< T > &  x_in,
NumericVector< T > &  r_in,  const   double,  const unsigned  int ) .
I just tried to make add the following in the function
PetscNonlinearSolver< T >::solve()  before ierr = SNESSolve (_snes,
PETSC_NULL, x->vec()); CHKERRABORT(libMesh::COMM_WORLD,ierr);
EquationSystems& es = this->system().get_equation_systems();
int maxFails = es.parameters.get<unsigned int>("maxFails");
ierr = SNESSetMaximumUnsuccessfulSteps(_snes,maxFails);
CHKERRABORT(libMesh::COMM_WORLD,ierr);
But it does not work.
I am a beginner for C++, so maybe this question is stupid. But I
really do not know how to solve it. Controlling the NL steps is
important for my nonlinear PDEs.  Could anyone give me some
suggestion?   Thanks in advance.
With best wishes,
yunfei
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to