35 use,
intrinsic :: ieee_arithmetic, only : ieee_is_nan
53 strict_convergence, allow_stabilization, iteration)
56 logical,
intent(in) :: full_stress_formulation
57 logical,
intent(in),
optional :: strict_convergence
58 logical,
intent(in),
optional :: allow_stabilization
59 integer,
intent(in),
optional :: iteration
60 logical :: converged, strict_conv, allow_stab
61 character(len=LOG_SIZE) :: log_buf
65 if (full_stress_formulation) n = 2
67 if (
present(strict_convergence))
then
68 strict_conv = strict_convergence
73 if (
present(allow_stabilization))
then
74 allow_stab = allow_stabilization
79 if (
present(iteration))
then
80 if (iteration .gt. 1)
then
81 write(log_buf,
'(A,I3)')
'Schwarz-like iteration ', iteration - 1
87 call ksp_results(1)%print_header()
89 call ksp_results(i)%print_result(time%tstep)
95 if (ieee_is_nan(ksp_results(i)%res_final))
then
96 call neko_error(
"Fluid solver diverged for " // &
97 trim(ksp_results(i)%name))
100 if (.not. ksp_results(i)%converged)
then
102 log_buf =
'Fluid solver did not converge for ' &
103 // trim(ksp_results(i)%name)
107 else if (strict_conv)
then
Auxiliary routines for fluid solvers.
subroutine, public fluid_step_info(time, ksp_results, full_stress_formulation, strict_convergence, allow_stabilization, iteration)
Prints for prs, velx, vely, velz the following: Number of iterations, start residual,...
subroutine, public fluid_step_info_reset_stabilized()
Resets the stabilized flag to false.
logical, public, protected stabilized
To track if the solver is stabilized.
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
Module with things related to the simulation time.
subroutine, public neko_warning(warning_msg)
Reports a warning to standard output.
Type for storing initial and final residuals in a Krylov solver.
A struct that contains all info about the time, expand as needed.