48 class(system_t),
pointer,
public :: system
49 integer,
public :: max_iter
50 logical,
public :: converged = .false.
71 class(minimizer_algorithm_t),
intent(inout) :: this
72 type(algorithmic_operation_t),
intent(in) :: operation
83 class(minimizer_algorithm_t),
intent(in) :: this
85 type(iteration_counter_t) :: iter
87 iter = this%system%iteration
88 finished = iter%value() > this%max_iter
90 finished = finished .or. this%converged
99 class(minimizer_algorithm_t),
intent(inout) :: this
108 class(minimizer_algorithm_t),
intent(in) :: this
122 class(minimizer_algorithm_t),
intent(in) :: this
135 class(minimizer_algorithm_t),
intent(in) :: this
136 real(real64) :: wall_time, simulation_time, speed_per_day
140 simulation_time = this%iteration%value(elapsed=.
true.)
141 speed_per_day = simulation_time / (wall_time / 86400.0_real64)
142 write(
message(1),
'(a,f10.3,a)')
'Propagation speed: ', speed_per_day,
' iterations/day'
This module implements the basic elements defining algorithms.
subroutine, public messages_print_with_emphasis(msg, iunit, namespace)
character(len=512), private msg
character(len=256), dimension(max_lines), public message
to be output by fatal, warning
subroutine, public messages_info(no_lines, iunit, debug_only, stress, all_nodes, namespace)
This module implements the basic minimizer framework.
subroutine minimizer_algorithm_init_iteration_counters(this)
Initialize the minimizer and system clocks.
subroutine minimizer_algorithm_write_output_header(this)
logical function, public minimizer_algorithm_finished(this)
indicate whether a minimizer has reached the final time
subroutine minimizer_algorithm_print_speed(this)
print iteration speed, i.e., fs/day of wall clock time
logical function minimizer_continues_after_finished(this)
logical function minimizer_algorithm_do_operation(this, operation)
Try to perform one operation of the algorithm. Return .true. if sucessful.
This module implements the abstract system type.
This module provices a simple timer class which can be used to trigger the writing of a restart file ...
real(real64) function, public walltimer_get_start_time()
Return the walltimer start time.
An algorithm is a list of algorithmic operations executed sequentially.
This class implements the iteration counter used by the multisystem algorithms. As any iteration coun...
Abstract class implementing minimizers.