Octopus
|
An algorithm is a list of algorithmic operations executed sequentially. More...
An algorithm is a list of algorithmic operations executed sequentially.
This is implemented as a linked list of algorithmic operations.
Definition at line 200 of file algorithm.F90.
Public Attributes | |
type(algorithm_iterator_t), public | iter |
Iterator for algorithmic operations. More... | |
type(algorithmic_operation_t), public | start_operation |
algorithm specific initialization operation; More... | |
type(algorithmic_operation_t), public | final_operation |
algorithm specific finalization operation More... | |
integer, public | algo_steps |
Number of 'algorithmic steps' per algorithmic iteration. More... | |
type(iteration_counter_t), public | iteration |
Keep track at which iteration this algorithm is. More... | |
real(real64), public | elapsed_time = M_ZERO |
Elapsed wall clock time for printing info. More... | |
Public Attributes inherited from linked_list_oct_m::linked_list_t | |
integer, public | size = 0 |
Private Member Functions | |
procedure | add_operation => algorithm_add_operation |
add an algorithmic operation to the list More... | |
procedure | do_operation => algorithm_do_operation |
try to perform one operation of the algorithm. If successfull return .true. More... | |
procedure | update_elapsed_time => algorithm_update_elapsed_time |
The elapsed time is used for the output of run time information. More... | |
procedure | rewind => algorithm_rewind |
Reset the algorithm to the first operation. More... | |
procedure | next => algorithm_next |
move to the next algorithmic operation More... | |
procedure | get_current_operation => algorithm_get_current_operation |
return the current algorithmic operation. More... | |
procedure(algorithm_finished), deferred | finished |
indicate whether the algorithm has finished one time step More... | |
procedure(algorithm_init_iteration_counters), deferred | init_iteration_counters |
initializes the algorithm and system iteration counters More... | |
Private Attributes | |
type(algorithmic_operation_t) | current_ops |
The current operation. More... | |
logical | iteration_done |
Indicate whether the current iteration is done. More... | |
real(real64) | start_time = M_ZERO |
Keep the wall clock time when the algorithm started,. More... | |
|
private |
add an algorithmic operation to the list
Definition at line 228 of file algorithm.F90.
|
private |
try to perform one operation of the algorithm. If successfull return .true.
Definition at line 229 of file algorithm.F90.
|
private |
The elapsed time is used for the output of run time information.
Definition at line 230 of file algorithm.F90.
|
private |
Reset the algorithm to the first operation.
Definition at line 231 of file algorithm.F90.
|
private |
move to the next algorithmic operation
Definition at line 232 of file algorithm.F90.
|
private |
return the current algorithmic operation.
Definition at line 233 of file algorithm.F90.
|
private |
indicate whether the algorithm has finished one time step
Definition at line 234 of file algorithm.F90.
|
private |
initializes the algorithm and system iteration counters
Definition at line 235 of file algorithm.F90.
type(algorithm_iterator_t), public algorithm_oct_m::algorithm_t::iter |
Iterator for algorithmic operations.
Definition at line 202 of file algorithm.F90.
|
private |
The current operation.
Definition at line 203 of file algorithm.F90.
type(algorithmic_operation_t), public algorithm_oct_m::algorithm_t::start_operation |
algorithm specific initialization operation;
this operation is performed only once before the algorithm loop starts.
Definition at line 205 of file algorithm.F90.
type(algorithmic_operation_t), public algorithm_oct_m::algorithm_t::final_operation |
algorithm specific finalization operation
this operation is performed only once after the algorithm loop ends.
Definition at line 209 of file algorithm.F90.
integer, public algorithm_oct_m::algorithm_t::algo_steps |
Number of 'algorithmic steps' per algorithmic iteration.
This describes the granularity of the iteration. The algorithm iteration counter will advance algo_steps per iteration.
This also means that the interactions have to be updated at algo_steps times per algorithm iteration.
Definition at line 213 of file algorithm.F90.
|
private |
Indicate whether the current iteration is done.
Definition at line 221 of file algorithm.F90.
type(iteration_counter_t), public algorithm_oct_m::algorithm_t::iteration |
Keep track at which iteration this algorithm is.
Definition at line 223 of file algorithm.F90.
|
private |
Keep the wall clock time when the algorithm started,.
Definition at line 224 of file algorithm.F90.
real(real64), public algorithm_oct_m::algorithm_t::elapsed_time = M_ZERO |
Elapsed wall clock time for printing info.
Definition at line 225 of file algorithm.F90.