/[escript]/trunk/paso/src/Solver.c
ViewVC logotype

Diff of /trunk/paso/src/Solver.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2483 by gross, Thu Jun 18 06:50:37 2009 UTC revision 2484 by gross, Mon Jun 22 04:22:19 2009 UTC
# Line 214  void Paso_Solver(Paso_SystemMatrix* A,do Line 214  void Paso_Solver(Paso_SystemMatrix* A,do
214                    if (options->verbose) printf("Paso_Solver: Step %5d: l2/lmax-norm of residual is  %e/%e",totIter,norm2_of_residual,norm_max_of_residual);                    if (options->verbose) printf("Paso_Solver: Step %5d: l2/lmax-norm of residual is  %e/%e",totIter,norm2_of_residual,norm_max_of_residual);
215                    if (totIter>1 && norm2_of_residual>=last_norm2_of_residual &&  norm_max_of_residual>=last_norm_max_of_residual) {                    if (totIter>1 && norm2_of_residual>=last_norm2_of_residual &&  norm_max_of_residual>=last_norm_max_of_residual) {
216                       if (options->verbose) printf(" divergence!\n");                       if (options->verbose) printf(" divergence!\n");
217                       Paso_setError(WARNING, "Paso_Solver: No improvement during iteration. Iterative solver gives up.");                       Paso_setError(DIVERGED, "Paso_Solver: No improvement during iteration. Iterative solver gives up.");
218                    } else {                    } else {
219                       /* */                       /* */
220                       if (norm2_of_residual>tolerance*norm2_of_b || norm_max_of_residual>tolerance*norm_max_of_b ) {                       if (norm2_of_residual>tolerance*norm2_of_b || norm_max_of_residual>tolerance*norm_max_of_b ) {
# Line 248  void Paso_Solver(Paso_SystemMatrix* A,do Line 248  void Paso_Solver(Paso_SystemMatrix* A,do
248                          if (errorCode==NO_ERROR) {                          if (errorCode==NO_ERROR) {
249                             finalizeIteration = FALSE;                             finalizeIteration = FALSE;
250                          } else if (errorCode==SOLVER_MAXITER_REACHED) {                          } else if (errorCode==SOLVER_MAXITER_REACHED) {
251                             Paso_setError(WARNING,"Paso_Solver: maximum number of iteration step reached.\nReturned solution does not fulfil stopping criterion.");                             Paso_setError(DIVERGED,"Paso_Solver: maximum number of iteration step reached.\nReturned solution does not fulfil stopping criterion.");
252                             if (options->verbose) printf("Paso_Solver: Maximum number of iterations reached.!\n");                             if (options->verbose) printf("Paso_Solver: Maximum number of iterations reached.!\n");
253                          } else if (errorCode == SOLVER_INPUT_ERROR ) {                          } else if (errorCode == SOLVER_INPUT_ERROR ) {
254                             Paso_setError(SYSTEM_ERROR,"Paso_Solver: illegal dimension in iterative solver.");                             Paso_setError(SYSTEM_ERROR,"Paso_Solver: illegal dimension in iterative solver.");

Legend:
Removed from v.2483  
changed lines
  Added in v.2484

  ViewVC Help
Powered by ViewVC 1.1.26