Octopus
|
Abstract class implementing propagators. More...
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.
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_t) | scf_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... | |
|
private |
Try to perform one operation of the algorithm. Return .true. if sucessful.
Definition at line 158 of file propagator.F90.
|
private |
indicate whether a propagation has reached the final time
Definition at line 159 of file propagator.F90.
|
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.
|
private |
Save the current iteration state (START_SCF_LOOP) and move to next step.
Definition at line 161 of file propagator.F90.
|
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.
class(system_t), pointer, public propagator_oct_m::propagator_t::system |
The system using this propagator.
Definition at line 140 of file propagator.F90.
|
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.
real(real64), public propagator_oct_m::propagator_t::dt |
Physical duration of one time step.
Definition at line 146 of file propagator.F90.
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.
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.
logical, public propagator_oct_m::propagator_t::predictor_corrector = .false. |
Definition at line 151 of file propagator.F90.
integer, public propagator_oct_m::propagator_t::scf_count |
Counter for self-consistency iterations.
Definition at line 152 of file propagator.F90.
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.
integer, public propagator_oct_m::propagator_t::accumulated_loop_ticks |
Definition at line 154 of file propagator.F90.
real(real64), public propagator_oct_m::propagator_t::scf_tol |
Tolerance for self-consistent propagators.
Definition at line 155 of file propagator.F90.