6 use,
intrinsic :: ieee_arithmetic, only: ieee_is_nan
20 integer,
intent(in) :: step
21 real(kind=
rp),
intent(in) :: t, dt
22 logical,
intent(in) :: strict_convergence
23 character(len=LOG_SIZE) :: log_buf
28 write(log_buf,
'(A,A,A)')
'Iterations: ',&
29 'Start residual: ',
'Final residual:'
31 write(log_buf,
'(I11,3x, E15.7,5x, E15.7)') ksp_results(1)%iter, &
32 ksp_results(1)%res_start, ksp_results(1)%res_final
36 write(log_buf,
'(A,A,A)')
'Iterations: ',&
37 'Start residual: ',
'Final residual:'
39 write(log_buf,
'(I11,3x, E15.7,5x, E15.7)') ksp_results(2)%iter, &
40 ksp_results(2)%res_start, ksp_results(2)%res_final
44 write(log_buf,
'(A,A,A)')
'Iterations: ',&
45 'Start residual: ',
'Final residual:'
47 write(log_buf,
'(I11,3x, E15.7,5x, E15.7)') ksp_results(3)%iter, &
48 ksp_results(3)%res_start, ksp_results(3)%res_final
52 write(log_buf,
'(A,A,A)')
'Iterations: ', &
53 'Start residual: ',
'Final residual:'
55 write(log_buf,
'(I11,3x, E15.7,5x, E15.7)') ksp_results(4)%iter, &
56 ksp_results(4)%res_start, ksp_results(4)%res_final
61 if (ieee_is_nan(ksp_results(i)%res_final))
then
65 if ((.not. ksp_results(i)%converged) .and. (
pe_rank .eq. 0))
then
66 log_buf =
'Fluid solver did not converge for'
69 log_buf = trim(log_buf) //
' pressure'
71 log_buf = trim(log_buf) //
' x-velocity'
73 log_buf = trim(log_buf) //
' y-velocity'
75 log_buf = trim(log_buf) //
' z-velocity'
78 if (strict_convergence)
then
Auxiliary routines for fluid solvers.
subroutine, public fluid_step_info(step, t, dt, ksp_results, strict_convergence)
Prints for prs, velx, vely, velz the following: Number of iterations, start residual,...
Implements the base abstract type for Krylov solvers plus helper types.
type(log_t), public neko_log
Global log stream.
integer, parameter, public log_size
integer, parameter, public rp
Global precision used in computations.
subroutine, public neko_warning(warning_msg)
Reports a warning to standard output.
Type for storing initial and final residuals in a Krylov solver.