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.