385 class(PetscSolverType) :: this
387 character(len=128) :: ksp_str, pc_str, subpc_str, &
388 dvclose_str, rclose_str, relax_str, dtol_str
389 character(len=128) :: ksp_logfile
392 petscviewer :: ksp_viewer
394 if (this%use_ims_pc)
then
395 call kspgettype(this%ksp_petsc, ksp_str, ierr)
397 call kspgetpc(this%ksp_petsc, pc, ierr)
399 call pcgettype(pc, pc_str, ierr)
401 subpc_str = this%pc_context%ims_pc_type
403 write (dvclose_str,
'(e15.5)') this%linear_settings%dvclose
404 write (rclose_str,
'(e15.5)') this%linear_settings%rclose
405 write (relax_str,
'(e15.5)') this%linear_settings%relax
406 write (dtol_str,
'(e15.5)') this%linear_settings%droptol
408 write (iout,
'(/,1x,a)')
"PETSc linear solver settings: "
409 write (iout,
'(1x,a)') repeat(
'-', 66)
410 write (iout,
'(1x,a,a)')
"Linear acceleration method: ", trim(ksp_str)
411 write (iout,
'(1x,a,a)')
"Preconditioner type: ", trim(pc_str)
412 write (iout,
'(1x,a,a)')
"Sub-preconditioner type: ", trim(subpc_str)
413 write (iout,
'(1x,a,i0)')
"Maximum nr. of iterations: ", &
414 this%linear_settings%iter1
415 write (iout,
'(1x,a,a)') &
416 "Dep. var. closure criterion: ", trim(adjustl(dvclose_str))
417 write (iout,
'(1x,a,a)') &
418 "Residual closure criterion: ", trim(adjustl(rclose_str))
419 if (this%use_ims_cnvgopt)
then
420 write (iout,
'(1x,a,i0)') &
421 "Residual convergence option: ", this%linear_settings%icnvgopt
423 write (iout,
'(1x,a)') &
424 "Residual convergence option: PETSc L2 norm"
426 write (iout,
'(1x,a,a)') &
427 "Relaxation factor MILU(T): ", trim(adjustl(relax_str))
428 write (iout,
'(1x,a,i0)') &
429 "Fill level in factorization: ", this%linear_settings%level
430 write (iout,
'(1x,a,a,/)') &
431 "Drop tolerance level fill: ", trim(adjustl(dtol_str))
433 ksp_logfile = trim(this%option_prefix)//
"ksp_logview.txt"
434 write (iout,
'(/,1x,a)')
"PETSc linear solver settings from .petscrc: "
435 write (iout,
'(1x,a)') repeat(
'-', 66)
436 write (iout,
'(1x,2a)')
"see ", trim(ksp_logfile)
439 call petscviewerasciiopen(petsc_comm_world, ksp_logfile, ksp_viewer, ierr);
441 call petscviewerpushformat(ksp_viewer, petsc_viewer_ascii_info_detail, ierr)
443 call kspview(this%ksp_petsc, ksp_viewer, ierr)
445 call petscviewerdestroy(ksp_viewer, ierr)