Octopus
propagator_cn_oct_m Module Reference

Functions/Subroutines

subroutine, public td_crank_nicolson (hm, namespace, space, gr, st, tr, time, dt, ions_dyn, ions, ext_partners, use_sparskit)
 Crank-Nicolson propagator. More...
 
subroutine td_zop (xre, xim, yre, yim)
 operators for Crank-Nicolson scheme More...
 
subroutine td_zopt (xre, xim, yre, yim)
 Transpose of H (called e.g. by bi-conjugate gradient solver) More...
 
subroutine propagator_qmr_op_batch (xxb, yyb)
 operators for Crank-Nicolson scheme More...
 
subroutine zbatch_qmr_dotu (namespace, mesh, st, xb, bb, op, max_iter, iter_used, residue, threshold, use_initial_guess)
 for complex symmetric matrices W Chen and B Poirier, J Comput Phys 219, 198-209 (2006) More...
 

Variables

type(namespace_t), pointer, private namespace_p
 
class(mesh_t), pointer, private mesh_p
 
type(hamiltonian_elec_t), pointer, private hm_p
 
type(propagator_base_t), pointer, private tr_p
 
type(states_elec_t), pointer, private st_p
 
integer, private ik_op
 
integer, private ist_op
 
integer, private dim_op
 
real(real64), private t_op
 
real(real64), private dt_op
 

Function/Subroutine Documentation

◆ td_crank_nicolson()

subroutine, public propagator_cn_oct_m::td_crank_nicolson ( type(hamiltonian_elec_t), intent(inout), target  hm,
type(namespace_t), intent(in), target  namespace,
type(electron_space_t), intent(in)  space,
type(grid_t), intent(inout), target  gr,
type(states_elec_t), intent(inout), target  st,
type(propagator_base_t), intent(inout), target  tr,
real(real64), intent(in)  time,
real(real64), intent(in)  dt,
type(ion_dynamics_t), intent(inout)  ions_dyn,
type(ions_t), intent(inout)  ions,
type(partner_list_t), intent(in)  ext_partners,
logical, intent(in)  use_sparskit 
)

Crank-Nicolson propagator.

Definition at line 169 of file propagator_cn.F90.

◆ td_zop()

subroutine propagator_cn_oct_m::td_zop ( real(real64), dimension(:), intent(in)  xre,
real(real64), dimension(:), intent(in)  xim,
real(real64), dimension(:), intent(out)  yre,
real(real64), dimension(:), intent(out)  yim 
)
private

operators for Crank-Nicolson scheme

Definition at line 315 of file propagator_cn.F90.

◆ td_zopt()

subroutine propagator_cn_oct_m::td_zopt ( real(real64), dimension(:), intent(in)  xre,
real(real64), dimension(:), intent(in)  xim,
real(real64), dimension(:), intent(out)  yre,
real(real64), dimension(:), intent(out)  yim 
)
private

Transpose of H (called e.g. by bi-conjugate gradient solver)

Definition at line 349 of file propagator_cn.F90.

◆ propagator_qmr_op_batch()

subroutine propagator_cn_oct_m::propagator_qmr_op_batch ( type(wfs_elec_t), intent(inout)  xxb,
type(wfs_elec_t), intent(inout)  yyb 
)
private

operators for Crank-Nicolson scheme

Definition at line 385 of file propagator_cn.F90.

◆ zbatch_qmr_dotu()

subroutine propagator_cn_oct_m::zbatch_qmr_dotu ( type(namespace_t), intent(in)  namespace,
class(mesh_t), intent(in)  mesh,
type(states_elec_t), intent(in)  st,
type(wfs_elec_t), intent(inout)  xb,
type(wfs_elec_t), intent(in)  bb,
  op,
integer, intent(in)  max_iter,
integer, dimension(:), intent(out)  iter_used,
real(real64), dimension(:), intent(out), contiguous  residue,
real(real64), intent(in)  threshold,
logical, intent(in), optional  use_initial_guess 
)
private

for complex symmetric matrices W Chen and B Poirier, J Comput Phys 219, 198-209 (2006)

Adapted from linear_solver_qmr_dotp This modified version does not have the preconditioner, as it is not used for the Crank-Nicolson, which allows for improved performances

Parameters
[out]residuethe residue = abs(Ax-b)
[in]thresholdconvergence threshold

Definition at line 405 of file propagator_cn.F90.

Variable Documentation

◆ namespace_p

type(namespace_t), pointer, private propagator_cn_oct_m::namespace_p
private

Definition at line 157 of file propagator_cn.F90.

◆ mesh_p

class(mesh_t), pointer, private propagator_cn_oct_m::mesh_p
private

Definition at line 158 of file propagator_cn.F90.

◆ hm_p

type(hamiltonian_elec_t), pointer, private propagator_cn_oct_m::hm_p
private

Definition at line 159 of file propagator_cn.F90.

◆ tr_p

type(propagator_base_t), pointer, private propagator_cn_oct_m::tr_p
private

Definition at line 160 of file propagator_cn.F90.

◆ st_p

type(states_elec_t), pointer, private propagator_cn_oct_m::st_p
private

Definition at line 161 of file propagator_cn.F90.

◆ ik_op

integer, private propagator_cn_oct_m::ik_op
private

Definition at line 162 of file propagator_cn.F90.

◆ ist_op

integer, private propagator_cn_oct_m::ist_op
private

Definition at line 162 of file propagator_cn.F90.

◆ dim_op

integer, private propagator_cn_oct_m::dim_op
private

Definition at line 162 of file propagator_cn.F90.

◆ t_op

real(real64), private propagator_cn_oct_m::t_op
private

Definition at line 163 of file propagator_cn.F90.

◆ dt_op

real(real64), private propagator_cn_oct_m::dt_op
private

Definition at line 163 of file propagator_cn.F90.