Octopus
propagator_oct_m::propagator_t Type Reference

Abstract class implementing propagators. More...

Detailed Description

Abstract class implementing propagators.

Propagators are implemented as a state machine. This abstract class defines the steps which are independent of the actual propatation algorithm, and also independent of the system, to which is is applied.

Definition at line 138 of file propagator.F90.

Inheritance diagram for propagator_oct_m::propagator_t:
Inheritance graph

Public Attributes

class(system_t), pointer, public system
 The system using this propagator. More...
 
real(real64), public dt
 Physical duration of one time step. More...
 
real(real64), public final_time = M_ZERO
 The final time of the simulation. More...
 
logical, public inside_scf = .false.
 Indicate whether the system is executing an SCF loop. More...
 
logical, public predictor_corrector = .false.
 
integer, public scf_count
 Counter for self-consistency iterations. More...
 
integer, public max_scf_count
 Maximum number of iterations for self-consistent propagators. More...
 
integer, public accumulated_loop_ticks
 
real(real64), public scf_tol
 Tolerance for self-consistent propagators. More...
 
- Public Attributes inherited from algorithm_oct_m::algorithm_t
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 do_operation => propagator_do_operation
 Try to perform one operation of the algorithm. Return .true. if sucessful. More...
 
procedure finished => propagator_finished
 indicate whether a propagation has reached the final time More...
 
procedure init_iteration_counters => propagator_init_iteration_counters
 Initialize the propagator and system clocks. More...
 
procedure save_scf_start => propagator_save_scf_start
 Save the current iteration state (START_SCF_LOOP) and move to next step. More...
 
procedure rewind_scf_loop => propagator_rewind_scf_loop
 Reset the iteration state to the beginning of the loop (START_SCF_LOOP) and move to next step. More...
 

Private Attributes

type(algorithm_iterator_tscf_start
 If the algorithm contains a self-consistency loop, we need to save the start of that loop to be able to jump back to it. More...
 

Member Function/Subroutine Documentation

◆ do_operation()

procedure propagator_oct_m::propagator_t::do_operation
private

Try to perform one operation of the algorithm. Return .true. if sucessful.

Definition at line 158 of file propagator.F90.

◆ finished()

procedure propagator_oct_m::propagator_t::finished
private

indicate whether a propagation has reached the final time

Definition at line 159 of file propagator.F90.

◆ init_iteration_counters()

procedure propagator_oct_m::propagator_t::init_iteration_counters
private

Initialize the propagator and system clocks.

Note that we initialize the system clock here because it requires knowledge of the time-step.

Definition at line 160 of file propagator.F90.

◆ save_scf_start()

procedure propagator_oct_m::propagator_t::save_scf_start
private

Save the current iteration state (START_SCF_LOOP) and move to next step.

Definition at line 161 of file propagator.F90.

◆ rewind_scf_loop()

procedure propagator_oct_m::propagator_t::rewind_scf_loop
private

Reset the iteration state to the beginning of the loop (START_SCF_LOOP) and move to next step.

Definition at line 162 of file propagator.F90.

Member Data Documentation

◆ system

class(system_t), pointer, public propagator_oct_m::propagator_t::system

The system using this propagator.

Definition at line 140 of file propagator.F90.

◆ scf_start

type(algorithm_iterator_t) propagator_oct_m::propagator_t::scf_start
private

If the algorithm contains a self-consistency loop, we need to save the start of that loop to be able to jump back to it.

Definition at line 142 of file propagator.F90.

◆ dt

real(real64), public propagator_oct_m::propagator_t::dt

Physical duration of one time step.

Definition at line 146 of file propagator.F90.

◆ final_time

real(real64), public propagator_oct_m::propagator_t::final_time = M_ZERO

The final time of the simulation.

Definition at line 147 of file propagator.F90.

◆ inside_scf

logical, public propagator_oct_m::propagator_t::inside_scf = .false.

Indicate whether the system is executing an SCF loop.

Definition at line 150 of file propagator.F90.

◆ predictor_corrector

logical, public propagator_oct_m::propagator_t::predictor_corrector = .false.

Definition at line 151 of file propagator.F90.

◆ scf_count

integer, public propagator_oct_m::propagator_t::scf_count

Counter for self-consistency iterations.

Definition at line 152 of file propagator.F90.

◆ max_scf_count

integer, public propagator_oct_m::propagator_t::max_scf_count

Maximum number of iterations for self-consistent propagators.

Definition at line 153 of file propagator.F90.

◆ accumulated_loop_ticks

integer, public propagator_oct_m::propagator_t::accumulated_loop_ticks

Definition at line 154 of file propagator.F90.

◆ scf_tol

real(real64), public propagator_oct_m::propagator_t::scf_tol

Tolerance for self-consistent propagators.

Definition at line 155 of file propagator.F90.


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