Octopus
propagator_oct_m Module Reference

This module implements the basic propagator framework. More...

Detailed Description

This module implements the basic propagator framework.

Data Types

type  propagator_t
 Abstract class implementing propagators. More...
 

Functions/Subroutines

logical function propagator_do_operation (this, operation)
 Try to perform one operation of the algorithm. Return .true. if sucessful. More...
 
logical function propagator_finished (this)
 indicate whether a propagation has reached the final time More...
 
subroutine propagator_init_iteration_counters (this)
 Initialize the propagator and system clocks. More...
 
subroutine propagator_save_scf_start (this)
 Save the current iteration state (START_SCF_LOOP) and move to next step. More...
 
subroutine propagator_rewind_scf_loop (this)
 Reset the iteration state to the beginning of the loop (START_SCF_LOOP) and move to next step. More...
 

Variables

character(len=algo_label_len), parameter, public start_scf_loop = 'START_SCF_LOOP'
 
character(len=algo_label_len), parameter, public end_scf_loop = 'END_SCF_LOOP'
 
character(len=algo_label_len), parameter, public store_current_status = 'STORE_CURRENT_STATUS'
 
type(algorithmic_operation_t), parameter, public op_start_scf_loop = algorithmic_operation_t(START_SCF_LOOP, 'Starting SCF loop')
 
type(algorithmic_operation_t), parameter, public op_end_scf_loop = algorithmic_operation_t(END_SCF_LOOP, 'End of SCF iteration')
 
type(algorithmic_operation_t), parameter, public op_store_current_status = algorithmic_operation_t(STORE_CURRENT_STATUS, 'Store current status')
 

Function/Subroutine Documentation

◆ propagator_do_operation()

logical function propagator_oct_m::propagator_do_operation ( class(propagator_t), intent(inout)  this,
type(algorithmic_operation_t), intent(in)  operation 
)
private

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

Definition at line 183 of file propagator.F90.

◆ propagator_finished()

logical function propagator_oct_m::propagator_finished ( class(propagator_t), intent(in)  this)
private

indicate whether a propagation has reached the final time

Definition at line 249 of file propagator.F90.

◆ propagator_init_iteration_counters()

subroutine propagator_oct_m::propagator_init_iteration_counters ( class(propagator_t), intent(inout)  this)
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 264 of file propagator.F90.

◆ propagator_save_scf_start()

subroutine propagator_oct_m::propagator_save_scf_start ( class(propagator_t), intent(inout)  this)
private

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

Definition at line 274 of file propagator.F90.

◆ propagator_rewind_scf_loop()

subroutine propagator_oct_m::propagator_rewind_scf_loop ( class(propagator_t), intent(inout)  this)
private

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

Definition at line 289 of file propagator.F90.

Variable Documentation

◆ start_scf_loop

character(len=algo_label_len), parameter, public propagator_oct_m::start_scf_loop = 'START_SCF_LOOP'

Definition at line 167 of file propagator.F90.

◆ end_scf_loop

character(len=algo_label_len), parameter, public propagator_oct_m::end_scf_loop = 'END_SCF_LOOP'

Definition at line 167 of file propagator.F90.

◆ store_current_status

character(len=algo_label_len), parameter, public propagator_oct_m::store_current_status = 'STORE_CURRENT_STATUS'

Definition at line 167 of file propagator.F90.

◆ op_start_scf_loop

type(algorithmic_operation_t), parameter, public propagator_oct_m::op_start_scf_loop = algorithmic_operation_t(START_SCF_LOOP, 'Starting SCF loop')

Definition at line 172 of file propagator.F90.

◆ op_end_scf_loop

type(algorithmic_operation_t), parameter, public propagator_oct_m::op_end_scf_loop = algorithmic_operation_t(END_SCF_LOOP, 'End of SCF iteration')

Definition at line 172 of file propagator.F90.

◆ op_store_current_status

type(algorithmic_operation_t), parameter, public propagator_oct_m::op_store_current_status = algorithmic_operation_t(STORE_CURRENT_STATUS, 'Store current status')

Definition at line 172 of file propagator.F90.