Octopus
|
This module implements the factory for propagators. More...
This module implements the factory for propagators.
Data Types | |
interface | propagator_factory_t |
This class defines the factory for propagators. More... | |
Functions/Subroutines | |
type(propagator_factory_t) function | propagator_factory_constructor (namespace) |
Constructor for the propagator factory. More... | |
class(algorithm_t) function, pointer | propagator_factory_create (this, system) |
Create a general propagator. More... | |
class(algorithm_t) function, pointer | propagator_factory_create_static (this, system) |
Create a static propagator. More... | |
real(real64) function | propagator_factory_read_dt (this, namespace) |
auxilliary function to read the time step from the input file More... | |
Variables | |
integer, parameter, public | prop_static = 0 |
integer, parameter, public | prop_verlet = 1 |
integer, parameter, public | prop_beeman = 2 |
integer, parameter, public | prop_beeman_scf = 3 |
integer, parameter, public | prop_expmid_2step = 4 |
integer, parameter, public | prop_expmid_2step_scf = 5 |
integer, parameter, public | prop_aetrs_ms = 6 |
integer, parameter, public | prop_rk4 = 7 |
integer, parameter, public | prop_expmid = 8 |
integer, parameter, public | prop_leapfrog = 9 |
integer, parameter, public | prop_bomd = 10 |
integer, parameter, public | prop_expgauss1 = 11 |
integer, parameter, public | prop_expgauss2 = 12 |
|
private |
Constructor for the propagator factory.
reads TDPropagationTime from the input file
Definition at line 190 of file propagator_factory.F90.
|
private |
Create a general propagator.
The specific propagator, to be created, is determined from the input variable TDSystemPropagator.
@Note: We need to pass the system as an interaction_partner_t, but we can only create a propagator for systems.
@Note: We need to pass the resulting propagator as algorithm, as this method is a deferred method of the algorithm_factory.
[in] | this | the factory |
[in] | system | the system using the propagator |
Definition at line 220 of file propagator_factory.F90.
|
private |
Create a static propagator.
A static propagator is needed for consistency for systems which do not depend on time. One special example is the multisystem container, which itself can be kept static, as its components are propagated (in case of no self-consistent propagation of the subsystems).
[in] | this | the factory |
[in] | system | the system using the algorithm |
Definition at line 333 of file propagator_factory.F90.
|
private |
auxilliary function to read the time step from the input file
Definition at line 385 of file propagator_factory.F90.
integer, parameter, public propagator_factory_oct_m::prop_static = 0 |
Definition at line 154 of file propagator_factory.F90.
integer, parameter, public propagator_factory_oct_m::prop_verlet = 1 |
Definition at line 154 of file propagator_factory.F90.
integer, parameter, public propagator_factory_oct_m::prop_beeman = 2 |
Definition at line 154 of file propagator_factory.F90.
integer, parameter, public propagator_factory_oct_m::prop_beeman_scf = 3 |
Definition at line 154 of file propagator_factory.F90.
integer, parameter, public propagator_factory_oct_m::prop_expmid_2step = 4 |
Definition at line 154 of file propagator_factory.F90.
integer, parameter, public propagator_factory_oct_m::prop_expmid_2step_scf = 5 |
Definition at line 154 of file propagator_factory.F90.
integer, parameter, public propagator_factory_oct_m::prop_aetrs_ms = 6 |
Definition at line 154 of file propagator_factory.F90.
integer, parameter, public propagator_factory_oct_m::prop_rk4 = 7 |
Definition at line 154 of file propagator_factory.F90.
integer, parameter, public propagator_factory_oct_m::prop_expmid = 8 |
Definition at line 154 of file propagator_factory.F90.
integer, parameter, public propagator_factory_oct_m::prop_leapfrog = 9 |
Definition at line 154 of file propagator_factory.F90.
integer, parameter, public propagator_factory_oct_m::prop_bomd = 10 |
Definition at line 154 of file propagator_factory.F90.
integer, parameter, public propagator_factory_oct_m::prop_expgauss1 = 11 |
Definition at line 154 of file propagator_factory.F90.
integer, parameter, public propagator_factory_oct_m::prop_expgauss2 = 12 |
Definition at line 154 of file propagator_factory.F90.