22  use, 
intrinsic :: iso_fortran_env
 
   41    procedure propagator_exp_mid_2step_constructor
 
   46  character(len=ALGO_LABEL_LEN), 
public, 
parameter :: &
 
   47    EXPMID_2STEP_START        = 
'EXPMID_2STEP_START',             &
 
   55  type(algorithmic_operation_t), 
public, 
parameter :: &
 
   57    'Starting exponential mid-point propagation'),  &
 
   59    'Finishing exponential mid-point propagation'), &
 
   61    'Prediction step - Predicting state at dt/2 '), &
 
   63    'Prediction step - Predicting state at dt'),    &
 
   65    'Correction step - Correcting state at dt/2'),  &
 
   73    real(real64),              
intent(in) :: dt
 
   74    logical,                   
intent(in) :: predictor_corrector
 
   75    type(propagator_exp_mid_2step_t), 
pointer   :: this
 
   81    this%predictor_corrector = predictor_corrector
 
   82    this%start_operation = op_expmid_2step_start
 
   85    if (predictor_corrector) 
then 
   99      this%max_scf_count = 10
 
  100      this%scf_tol = 1e-6_real64 
 
This module implements the basic elements defining algorithms.
 
type(algorithmic_operation_t), parameter, public op_iteration_done
 
type(algorithmic_operation_t), parameter, public op_rewind_algorithm
 
type(algorithmic_operation_t), parameter, public op_update_couplings
 
type(algorithmic_operation_t), parameter, public op_update_interactions
 
character(len=algo_label_len), parameter, public expmid_2step_predict_dt
 
character(len=algo_label_len), parameter, public expmid_2step_finish
 
character(len=algo_label_len), parameter, public expmid_2step_correct_dt_2
 
type(algorithmic_operation_t), parameter, public op_expmid_2step_predict_dt
 
character(len=algo_label_len), parameter, public update_hamiltonian
 
type(algorithmic_operation_t), parameter, public op_update_hamiltonian
 
type(algorithmic_operation_t), parameter, public op_expmid_2step_finish
 
type(propagator_exp_mid_2step_t) function, pointer propagator_exp_mid_2step_constructor(dt, predictor_corrector)
 
character(len=algo_label_len), parameter, public expmid_2step_predict_dt_2
 
type(algorithmic_operation_t), parameter, public op_expmid_2step_predict_dt_2
 
type(algorithmic_operation_t), parameter, public op_expmid_2step_correct_dt_2
 
This module implements the basic propagator framework.
 
type(algorithmic_operation_t), parameter, public op_store_current_status
 
type(algorithmic_operation_t), parameter, public op_start_scf_loop
 
type(algorithmic_operation_t), parameter, public op_end_scf_loop
 
Descriptor of one algorithmic operation.
 
Implements the implicit exponential midpoint propagator with predictor-corrector.
 
Abstract class implementing propagators.