Octopus
propagator_factory_oct_m Module Reference

This module implements the factory for propagators. More...

Detailed Description

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
 

Function/Subroutine Documentation

◆ propagator_factory_constructor()

type(propagator_factory_t) function propagator_factory_oct_m::propagator_factory_constructor ( type(namespace_t), intent(in)  namespace)
private

Constructor for the propagator factory.

reads TDPropagationTime from the input file

Definition at line 190 of file propagator_factory.F90.

◆ propagator_factory_create()

class(algorithm_t) function, pointer propagator_factory_oct_m::propagator_factory_create ( class(propagator_factory_t), intent(in)  this,
class(interaction_partner_t), intent(in), target  system 
)
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.

Parameters
[in]thisthe factory
[in]systemthe system using the propagator
Returns
the newly created propagator

Definition at line 220 of file propagator_factory.F90.

◆ propagator_factory_create_static()

class(algorithm_t) function, pointer propagator_factory_oct_m::propagator_factory_create_static ( class(propagator_factory_t), intent(in)  this,
class(interaction_partner_t), intent(in), target  system 
)
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).

Parameters
[in]thisthe factory
[in]systemthe system using the algorithm
Returns
the newly created algorithm

Definition at line 333 of file propagator_factory.F90.

◆ propagator_factory_read_dt()

real(real64) function propagator_factory_oct_m::propagator_factory_read_dt ( class(propagator_factory_t), intent(in)  this,
type(namespace_t), intent(in)  namespace 
)
private

auxilliary function to read the time step from the input file

Definition at line 385 of file propagator_factory.F90.

Variable Documentation

◆ prop_static

integer, parameter, public propagator_factory_oct_m::prop_static = 0

Definition at line 154 of file propagator_factory.F90.

◆ prop_verlet

integer, parameter, public propagator_factory_oct_m::prop_verlet = 1

Definition at line 154 of file propagator_factory.F90.

◆ prop_beeman

integer, parameter, public propagator_factory_oct_m::prop_beeman = 2

Definition at line 154 of file propagator_factory.F90.

◆ prop_beeman_scf

integer, parameter, public propagator_factory_oct_m::prop_beeman_scf = 3

Definition at line 154 of file propagator_factory.F90.

◆ prop_expmid_2step

integer, parameter, public propagator_factory_oct_m::prop_expmid_2step = 4

Definition at line 154 of file propagator_factory.F90.

◆ prop_expmid_2step_scf

integer, parameter, public propagator_factory_oct_m::prop_expmid_2step_scf = 5

Definition at line 154 of file propagator_factory.F90.

◆ prop_aetrs_ms

integer, parameter, public propagator_factory_oct_m::prop_aetrs_ms = 6

Definition at line 154 of file propagator_factory.F90.

◆ prop_rk4

integer, parameter, public propagator_factory_oct_m::prop_rk4 = 7

Definition at line 154 of file propagator_factory.F90.

◆ prop_expmid

integer, parameter, public propagator_factory_oct_m::prop_expmid = 8

Definition at line 154 of file propagator_factory.F90.

◆ prop_leapfrog

integer, parameter, public propagator_factory_oct_m::prop_leapfrog = 9

Definition at line 154 of file propagator_factory.F90.

◆ prop_bomd

integer, parameter, public propagator_factory_oct_m::prop_bomd = 10

Definition at line 154 of file propagator_factory.F90.

◆ prop_expgauss1

integer, parameter, public propagator_factory_oct_m::prop_expgauss1 = 11

Definition at line 154 of file propagator_factory.F90.

◆ prop_expgauss2

integer, parameter, public propagator_factory_oct_m::prop_expgauss2 = 12

Definition at line 154 of file propagator_factory.F90.