![]() |
Octopus
|
Data Types | |
| type | oct_prop_t |
Functions/Subroutines | |
| subroutine, public | propagation_mod_init (niter, eta, delta, number_checkpoints, zbr98, gradients) |
| This subroutine must be called before any QOCT propagations are done. It simply stores in the module some data that is needed for the propagations, and which should stay invariant during the whole run. There is no need for any propagation_mod_close. More... | |
| subroutine, public | propagate_forward (sys, td, par, tg, qcpsi, prop, write_iter) |
| subroutine, public | propagate_backward (sys, td, qcpsi, prop) |
| subroutine, public | fwd_step (sys, td, tg, par, par_chi, qcpsi, prop_chi, prop_psi) |
| subroutine, public | bwd_step (sys, td, tg, par, par_chi, qcchi, prop_chi, prop_psi) |
| subroutine, public | bwd_step_2 (sys, td, tg, par, par_chi, qcchi, prop_chi, prop_psi) |
| subroutine | update_hamiltonian_elec_chi (iter, namespace, space, gr, ks, hm, ext_partners, td, tg, par_chi, ions, st, qtildehalf) |
| subroutine | update_hamiltonian_elec_psi (iter, namespace, space, gr, ks, hm, ext_partners, td, tg, par, st, ions) |
| subroutine | calculate_g (space, gr, hm, lasers, psi, chi, dl, dq) |
| subroutine | update_field (iter, cp, space, gr, hm, ext_partners, ions, qcpsi, qcchi, cpp, dir) |
| Calculates the value of the control functions at iteration iter, from the state psi and the Lagrange-multiplier chi. More... | |
| subroutine, public | oct_prop_init (prop, namespace, dirname, mesh, mc) |
| subroutine, public | oct_prop_end (prop) |
| subroutine, public | oct_prop_check (prop, namespace, space, psi, mesh, kpoints, iter) |
| subroutine | oct_prop_dump_states (prop, space, iter, psi, mesh, kpoints, ierr) |
| subroutine | oct_prop_load_states (prop, namespace, space, psi, mesh, kpoints, iter, ierr) |
| subroutine | vlaser_operator_quadratic (laser, mesh, space, psi, hpsi) |
| subroutine | vlaser_operator_linear (laser, der, std, psi, hpsi, ik, gyromagnetic_ratio, a_static) |
Variables | |
| integer | niter_ |
| Module variables. More... | |
| integer | number_checkpoints_ |
| real(real64) | eta_ |
| real(real64) | delta_ |
| logical | zbr98_ |
| logical | gradients_ |
| subroutine, public propagation_oct_m::propagation_mod_init | ( | integer, intent(in) | niter, |
| real(real64), intent(in) | eta, | ||
| real(real64), intent(in) | delta, | ||
| integer, intent(in) | number_checkpoints, | ||
| logical, intent(in) | zbr98, | ||
| logical, intent(in) | gradients | ||
| ) |
This subroutine must be called before any QOCT propagations are done. It simply stores in the module some data that is needed for the propagations, and which should stay invariant during the whole run. There is no need for any propagation_mod_close.
Definition at line 209 of file propagation.F90.
| subroutine, public propagation_oct_m::propagate_forward | ( | type(electrons_t), intent(inout) | sys, |
| type(td_t), intent(inout) | td, | ||
| type(controlfunction_t), intent(in) | par, | ||
| class(target_t), intent(inout) | tg, | ||
| type(opt_control_state_t), intent(inout) | qcpsi, | ||
| type(oct_prop_t), intent(inout), optional | prop, | ||
| logical, intent(in), optional | write_iter | ||
| ) |
Performs a full propagation of state psi, with the laser field specified in par. If write_iter is present and is
Definition at line 238 of file propagation.F90.
| subroutine, public propagation_oct_m::propagate_backward | ( | type(electrons_t), intent(inout) | sys, |
| type(td_t), intent(inout) | td, | ||
| type(opt_control_state_t), intent(inout) | qcpsi, | ||
| type(oct_prop_t), intent(inout) | prop | ||
| ) |
Performs a full backward propagation of state psi, with the
Definition at line 380 of file propagation.F90.
| subroutine, public propagation_oct_m::fwd_step | ( | type(electrons_t), intent(inout) | sys, |
| type(td_t), intent(inout) | td, | ||
| class(target_t), intent(inout) | tg, | ||
| type(controlfunction_t), intent(inout) | par, | ||
| type(controlfunction_t), intent(in) | par_chi, | ||
| type(opt_control_state_t), intent(inout) | qcpsi, | ||
| type(oct_prop_t), intent(inout) | prop_chi, | ||
| type(oct_prop_t), intent(inout) | prop_psi | ||
| ) |
Performs a forward propagation on the state psi and on the Lagrange-multiplier state chi. It also updates the control function par, according to the following scheme:
|chi> --> U[par_chi](T, 0)|chi> par = par[|psi>, |chi>] |psi> --> U[par](T, 0)|psi>
Note that the control functions "par" are updated on the fly, so that the propagation of psi is performed with the
Definition at line 446 of file propagation.F90.
| subroutine, public propagation_oct_m::bwd_step | ( | type(electrons_t), intent(inout) | sys, |
| type(td_t), intent(inout) | td, | ||
| class(target_t), intent(inout) | tg, | ||
| type(controlfunction_t), intent(in) | par, | ||
| type(controlfunction_t), intent(inout) | par_chi, | ||
| type(opt_control_state_t), intent(inout) | qcchi, | ||
| type(oct_prop_t), intent(inout) | prop_chi, | ||
| type(oct_prop_t), intent(inout) | prop_psi | ||
| ) |
Performs a backward propagation on the state psi and on the Lagrange-multiplier state chi, according to the following scheme:
|psi> --> U[par](0, T)|psi> par_chi = par_chi[|psi>, |chi>]
Definition at line 574 of file propagation.F90.
| subroutine, public propagation_oct_m::bwd_step_2 | ( | type(electrons_t), intent(inout) | sys, |
| type(td_t), intent(inout) | td, | ||
| class(target_t), intent(inout) | tg, | ||
| type(controlfunction_t), intent(in) | par, | ||
| type(controlfunction_t), intent(inout) | par_chi, | ||
| type(opt_control_state_t), intent(inout) | qcchi, | ||
| type(oct_prop_t), intent(inout) | prop_chi, | ||
| type(oct_prop_t), intent(inout) | prop_psi | ||
| ) |
Performs a backward propagation on the state psi and on the Lagrange-multiplier state chi, according to the following scheme:
|psi> --> U[par](0, T)|psi> |chi> --> U[par](0, T)|chi>
It also calculates during the propagation, a new "output" field:
Definition at line 676 of file propagation.F90.
|
private |
Definition at line 889 of file propagation.F90.
|
private |
Definition at line 984 of file propagation.F90.
|
private |
Definition at line 1033 of file propagation.F90.
|
private |
Calculates the value of the control functions at iteration iter, from the state psi and the Lagrange-multiplier chi.
If dir = 'f', the field must be updated for a forward propagation. In that case, the propagation step that is going to be done moves from (iter-1)*|dt| to iter*|dt|.
If dir = 'b', the field must be updated for a backward propagation. In taht case, the propagation step that is going to be done moves from iter*|dt| to (iter-1)*|dt|.
cp = (1-eta)*cpp - (eta/alpha) * <chi|V|Psi>
Definition at line 1118 of file propagation.F90.
| subroutine, public propagation_oct_m::oct_prop_init | ( | type(oct_prop_t), intent(inout) | prop, |
| type(namespace_t), intent(in) | namespace, | ||
| character(len=*), intent(in) | dirname, | ||
| class(mesh_t), intent(in) | mesh, | ||
| type(multicomm_t), intent(in) | mc | ||
| ) |
| [in,out] | prop | The propagator |
| [in] | namespace | namespace of the system |
| [in] | dirname | folder name for the restart data |
| [in] | mesh | the mesh to use |
| [in] | mc | the object holding mpi communicators and groups |
Definition at line 1210 of file propagation.F90.
| subroutine, public propagation_oct_m::oct_prop_end | ( | type(oct_prop_t), intent(inout) | prop | ) |
Definition at line 1243 of file propagation.F90.
| subroutine, public propagation_oct_m::oct_prop_check | ( | type(oct_prop_t), intent(inout) | prop, |
| type(namespace_t), intent(in) | namespace, | ||
| class(space_t), intent(in) | space, | ||
| type(states_elec_t), intent(inout) | psi, | ||
| class(mesh_t), intent(in) | mesh, | ||
| type(kpoints_t), intent(in) | kpoints, | ||
| integer, intent(in) | iter | ||
| ) |
Definition at line 1260 of file propagation.F90.
|
private |
Definition at line 1313 of file propagation.F90.
|
private |
Definition at line 1362 of file propagation.F90.
|
private |
| [in,out] | psi | psi(dermeshnp_part, hddim) |
| [in,out] | hpsi | hpsi(dermeshnp_part, hddim) |
Definition at line 1413 of file propagation.F90.
|
private |
Definition at line 1473 of file propagation.F90.
|
private |
Module variables.
Definition at line 195 of file propagation.F90.
|
private |
Definition at line 196 of file propagation.F90.
|
private |
Definition at line 197 of file propagation.F90.
|
private |
Definition at line 198 of file propagation.F90.
|
private |
Definition at line 199 of file propagation.F90.
|
private |
Definition at line 200 of file propagation.F90.