46 class(system_t),
pointer,
public :: system
47 integer,
public :: max_iter
48 logical,
public :: converged = .false.
63 class(minimizer_algorithm_t),
intent(inout) :: this
64 type(algorithmic_operation_t),
intent(in) :: operation
75 class(minimizer_algorithm_t),
intent(in) :: this
77 type(iteration_counter_t) :: iter
79 iter = this%system%iteration
80 finished = iter%value() > this%max_iter
82 finished = finished .or. this%converged
91 class(minimizer_algorithm_t),
intent(inout) :: this
100 class(minimizer_algorithm_t),
intent(in) :: this
114 class(minimizer_algorithm_t),
intent(in) :: this
This module implements the basic elements defining algorithms.
subroutine, public messages_print_with_emphasis(msg, iunit, namespace)
character(len=512), private msg
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
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.
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.