Octopus
algorithm_oct_m::algorithm_t Type Reference

An algorithm is a list of algorithmic operations executed sequentially. More...

Detailed Description

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.

Inheritance diagram for algorithm_oct_m::algorithm_t:
Inheritance graph

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_tcurrent_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...
 

Member Function/Subroutine Documentation

◆ add_operation()

procedure algorithm_oct_m::algorithm_t::add_operation
private

add an algorithmic operation to the list

Definition at line 228 of file algorithm.F90.

◆ do_operation()

procedure algorithm_oct_m::algorithm_t::do_operation
private

try to perform one operation of the algorithm. If successfull return .true.

Definition at line 229 of file algorithm.F90.

◆ update_elapsed_time()

procedure algorithm_oct_m::algorithm_t::update_elapsed_time
private

The elapsed time is used for the output of run time information.

Definition at line 230 of file algorithm.F90.

◆ rewind()

procedure algorithm_oct_m::algorithm_t::rewind
private

Reset the algorithm to the first operation.

Definition at line 231 of file algorithm.F90.

◆ next()

procedure algorithm_oct_m::algorithm_t::next
private

move to the next algorithmic operation

Definition at line 232 of file algorithm.F90.

◆ get_current_operation()

procedure algorithm_oct_m::algorithm_t::get_current_operation
private

return the current algorithmic operation.

Definition at line 233 of file algorithm.F90.

◆ finished()

procedure(algorithm_finished), deferred algorithm_oct_m::algorithm_t::finished
private

indicate whether the algorithm has finished one time step

Definition at line 234 of file algorithm.F90.

◆ init_iteration_counters()

procedure(algorithm_init_iteration_counters), deferred algorithm_oct_m::algorithm_t::init_iteration_counters
private

initializes the algorithm and system iteration counters

Definition at line 235 of file algorithm.F90.

Member Data Documentation

◆ iter

type(algorithm_iterator_t), public algorithm_oct_m::algorithm_t::iter

Iterator for algorithmic operations.

Definition at line 202 of file algorithm.F90.

◆ current_ops

type(algorithmic_operation_t) algorithm_oct_m::algorithm_t::current_ops
private

The current operation.

Definition at line 203 of file algorithm.F90.

◆ start_operation

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.

◆ final_operation

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.

◆ algo_steps

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.

◆ iteration_done

logical algorithm_oct_m::algorithm_t::iteration_done
private

Indicate whether the current iteration is done.

Definition at line 221 of file algorithm.F90.

◆ iteration

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.

◆ start_time

real(real64) algorithm_oct_m::algorithm_t::start_time = M_ZERO
private

Keep the wall clock time when the algorithm started,.

Definition at line 224 of file algorithm.F90.

◆ elapsed_time

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.


The documentation for this type was generated from the following file: