(git:561f475)
Loading...
Searching...
No Matches
qs_moments Module Reference

Calculates the moment integrals <a|r^m|b> and <a|r x d/dr|b> More...

Functions/Subroutines

subroutine, public dipole_velocity_deriv (qs_env, difdip, order, lambda, rc)
 This returns the derivative of the moment integrals [a|\mu|b], with respect to the basis function on the right difdip(beta, alpha) = < mu | r_beta | ∂_alpha nu > * (mu - nu)
 
subroutine, public build_dsdv_moments (qs_env, moments, nmoments, ref_point, ref_points, basis_type)
 Builds the moments for the derivative of the overlap with respect to nuclear velocities.
 
subroutine, public build_local_moment_matrix (qs_env, moments, nmoments, ref_point, ref_points, basis_type)
 ...
 
subroutine, public build_local_moments_der_matrix (qs_env, moments_der, nmoments_der, nmoments, ref_point, moments)
 Calculate right-hand sided derivatives of multipole moments, e. g. < a | xy d/dz | b > Optionally stores the multipole moments themselves for free. Note that the multipole moments are symmetric while their derivatives are anti-symmetric Only first derivatives are performed, e. g. x d/dy.
 
subroutine, public build_local_magmom_matrix (qs_env, magmom, nmoments, ref_point, ref_points, basis_type)
 ...
 
subroutine, public build_berry_moment_matrix (qs_env, cosmat, sinmat, kvec, sab_orb_external, basis_type)
 ...
 
subroutine, public build_berry_kpoint_matrix (qs_env, cosmat, sinmat, kvec, basis_type)
 ...
 
subroutine, public qs_moment_berry_phase (qs_env, magnetic, nmoments, reference, ref_point, unit_number)
 ...
 
subroutine, public op_orbbas (cosmat, sinmat, mos, op_fm_set, opvec)
 ...
 
subroutine, public op_orbbas_rtp (cosmat, sinmat, mos, op_fm_set, mos_new)
 ...
 
subroutine, public qs_moment_locop (qs_env, magnetic, nmoments, reference, ref_point, unit_number, vel_reprs, com_nl)
 ...
 
subroutine, public set_label (label, ix, iy, iz)
 ...
 
subroutine, public print_moments (unit_number, nmom, rmom, rlab, rcc, cell, periodic, mmom, rmom_vel)
 ...
 
subroutine, public print_moments_nl (unit_number, nmom, rlab, mmom, rmom_vel)
 ...
 
subroutine, public calculate_commutator_nl_terms (qs_env, nlcom_rv, nlcom_rxrv, nlcom_rrv, nlcom_rvr, nlcom_rrv_vrr, ref_point)
 Calculate the expectation value of operators related to non-local potential: [r, Vnl], noted rv r x [r,Vnl], noted rxrv [rr,Vnl], noted rrv r x Vnl x r, noted rvr r x r x Vnl + Vnl x r x r, noted rrv_vrr Note that the 3 first operator are commutator while the 2 last are not. For reading clarity the same notation is used for all 5 operators.
 
subroutine, public dipole_deriv_ao (qs_env, difdip, deltar, order, rcc)
 ...
 
subroutine, public build_local_moment_matrix_rs_img (qs_env, moments_rs_img, rcc)
 Calculate local moment matrix for a periodic system for all image cells.
 
subroutine, public qs_moment_kpoints_deep (qs_env, xkp, dipole, rcc, berry_c, do_parallel)
 Calculates the dipole moments and berry curvature for periodic systems for kpoints.
 
subroutine, public qs_moment_kpoints_scf_mos (qs_env, dipole, rcc, nmo_spin_out)
 Calculates interband k-point dipoles in the existing SCF MO basis.
 
subroutine, public qs_moment_kpoints (qs_env, nmoments, reference, ref_point, max_nmo, unit_number)
 Calculate and print dipole moment elements d_nm(k) for k-point calculations.
 

Detailed Description

Calculates the moment integrals <a|r^m|b> and <a|r x d/dr|b>

History
added angular moments (JGH 11.2012)
Author
JGH (20.07.2006)

Function/Subroutine Documentation

◆ dipole_velocity_deriv()

subroutine, public qs_moments::dipole_velocity_deriv ( type(qs_environment_type), pointer  qs_env,
type(dbcsr_p_type), dimension(:, :), intent(inout)  difdip,
integer, intent(in)  order,
integer, intent(in)  lambda,
real(kind=dp), dimension(3)  rc 
)

This returns the derivative of the moment integrals [a|\mu|b], with respect to the basis function on the right difdip(beta, alpha) = < mu | r_beta | ∂_alpha nu > * (mu - nu)

Parameters
qs_env...
difdip...
orderThe order of the derivative (1 for dipole moment)
lambdaThe atom on which we take the derivative
rc...
Author
Edward Ditler

Definition at line 160 of file qs_moments.F.

Here is the call graph for this function:

◆ build_dsdv_moments()

subroutine, public qs_moments::build_dsdv_moments ( type(qs_environment_type), pointer  qs_env,
type(dbcsr_p_type), dimension(:)  moments,
integer, intent(in)  nmoments,
real(kind=dp), dimension(:), intent(in), optional  ref_point,
real(kind=dp), dimension(:, :), intent(in), optional  ref_points,
character(len=*), optional  basis_type 
)

Builds the moments for the derivative of the overlap with respect to nuclear velocities.

Parameters
qs_env...
moments...
nmoments...
ref_point...
ref_points...
basis_type...
Author
Edward Ditler

Definition at line 363 of file qs_moments.F.

Here is the call graph for this function:

◆ build_local_moment_matrix()

subroutine, public qs_moments::build_local_moment_matrix ( type(qs_environment_type), pointer  qs_env,
type(dbcsr_p_type), dimension(:), pointer  moments,
integer, intent(in)  nmoments,
real(kind=dp), dimension(:), intent(in), optional  ref_point,
real(kind=dp), dimension(:, :), intent(in), optional  ref_points,
character(len=*), optional  basis_type 
)

...

Parameters
qs_env...
moments...
nmoments...
ref_point...
ref_points...
basis_type...

Definition at line 592 of file qs_moments.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_local_moments_der_matrix()

subroutine, public qs_moments::build_local_moments_der_matrix ( type(qs_environment_type), pointer  qs_env,
type(dbcsr_p_type), dimension(:, :), intent(inout), pointer  moments_der,
integer, intent(in)  nmoments_der,
integer, intent(in)  nmoments,
real(kind=dp), dimension(:), intent(in), optional  ref_point,
type(dbcsr_p_type), dimension(:), intent(inout), optional, pointer  moments 
)

Calculate right-hand sided derivatives of multipole moments, e. g. < a | xy d/dz | b > Optionally stores the multipole moments themselves for free. Note that the multipole moments are symmetric while their derivatives are anti-symmetric Only first derivatives are performed, e. g. x d/dy.

Parameters
qs_env...
moments_derwill contain the derivatives of the multipole moments
nmoments_derorder of the moments with derivatives
nmomentsorder of the multipole moments (no derivatives, same output as build_local_moment_matrix, needs moments as arguments to store results)
ref_point...
momentscontains the multipole moments, optionally for free, up to order nmoments
Note
Adapted from rRc_xyz_der_ao in qs_operators_ao

Definition at line 823 of file qs_moments.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_local_magmom_matrix()

subroutine, public qs_moments::build_local_magmom_matrix ( type(qs_environment_type), pointer  qs_env,
type(dbcsr_p_type), dimension(:), pointer  magmom,
integer, intent(in)  nmoments,
real(kind=dp), dimension(:), intent(in), optional  ref_point,
real(kind=dp), dimension(:, :), intent(in), optional  ref_points,
character(len=*), optional  basis_type 
)

...

Parameters
qs_env...
magmom...
nmoments...
ref_point...
ref_points...
basis_type...

Definition at line 1157 of file qs_moments.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_berry_moment_matrix()

subroutine, public qs_moments::build_berry_moment_matrix ( type(qs_environment_type), pointer  qs_env,
type(dbcsr_type), pointer  cosmat,
type(dbcsr_type), pointer  sinmat,
real(kind=dp), dimension(3), intent(in)  kvec,
type(neighbor_list_set_p_type), dimension(:), optional, pointer  sab_orb_external,
character(len=*), optional  basis_type 
)

...

Parameters
qs_env...
cosmat...
sinmat...
kvec...
sab_orb_external...
basis_type...

Definition at line 1370 of file qs_moments.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_berry_kpoint_matrix()

subroutine, public qs_moments::build_berry_kpoint_matrix ( type(qs_environment_type), pointer  qs_env,
type(dbcsr_p_type), dimension(:, :), pointer  cosmat,
type(dbcsr_p_type), dimension(:, :), pointer  sinmat,
real(kind=dp), dimension(3), intent(in)  kvec,
character(len=*), optional  basis_type 
)

...

Parameters
qs_env...
cosmat...
sinmat...
kvec...
basis_type...

Definition at line 1537 of file qs_moments.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ qs_moment_berry_phase()

subroutine, public qs_moments::qs_moment_berry_phase ( type(qs_environment_type), pointer  qs_env,
logical, intent(in)  magnetic,
integer, intent(in)  nmoments,
integer, intent(in)  reference,
real(dp), dimension(:), pointer  ref_point,
integer, intent(in)  unit_number 
)

...

Parameters
qs_env...
magnetic...
nmoments...
reference...
ref_point...
unit_number...

Definition at line 1744 of file qs_moments.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ op_orbbas()

subroutine, public qs_moments::op_orbbas ( type(dbcsr_type), pointer  cosmat,
type(dbcsr_type), pointer  sinmat,
type(mo_set_type), dimension(:), intent(in)  mos,
type(cp_fm_type), dimension(:, :), intent(in)  op_fm_set,
type(cp_fm_type), dimension(:), intent(inout)  opvec 
)

...

Parameters
cosmat...
sinmat...
mos...
op_fm_set...
opvec...

Definition at line 2143 of file qs_moments.F.

Here is the caller graph for this function:

◆ op_orbbas_rtp()

subroutine, public qs_moments::op_orbbas_rtp ( type(dbcsr_type), pointer  cosmat,
type(dbcsr_type), pointer  sinmat,
type(mo_set_type), dimension(:), intent(in)  mos,
type(cp_fm_type), dimension(:, :), intent(in)  op_fm_set,
type(cp_fm_type), dimension(:), pointer  mos_new 
)

...

Parameters
cosmat...
sinmat...
mos...
op_fm_set...
mos_new...

Definition at line 2173 of file qs_moments.F.

Here is the caller graph for this function:

◆ qs_moment_locop()

subroutine, public qs_moments::qs_moment_locop ( type(qs_environment_type), pointer  qs_env,
logical, intent(in)  magnetic,
integer, intent(in)  nmoments,
integer, intent(in)  reference,
real(dp), dimension(:), intent(in), pointer  ref_point,
integer, intent(in)  unit_number,
logical, intent(in), optional  vel_reprs,
logical, intent(in), optional  com_nl 
)

...

Parameters
qs_env...
magnetic...
nmoments...
reference...
ref_point...
unit_number...
vel_reprs...
com_nl...

Definition at line 2265 of file qs_moments.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_label()

subroutine, public qs_moments::set_label ( character(len=*), intent(out)  label,
integer, intent(in)  ix,
integer, intent(in)  iy,
integer, intent(in)  iz 
)

...

Parameters
label...
ix...
iy...
iz...

Definition at line 2666 of file qs_moments.F.

Here is the caller graph for this function:

◆ print_moments()

subroutine, public qs_moments::print_moments ( integer, intent(in)  unit_number,
integer, intent(in)  nmom,
real(dp), dimension(:, :), intent(in)  rmom,
character(len=8), dimension(:)  rlab,
real(dp), dimension(3), intent(in)  rcc,
type(cell_type), pointer  cell,
logical  periodic,
real(dp), dimension(:), intent(in), optional  mmom,
real(dp), dimension(:), intent(in), optional  rmom_vel 
)

...

Parameters
unit_number...
nmom...
rmom...
rlab...
rcc...
cell...
periodic...
mmom...
rmom_vel...

Definition at line 2697 of file qs_moments.F.

Here is the caller graph for this function:

◆ print_moments_nl()

subroutine, public qs_moments::print_moments_nl ( integer, intent(in)  unit_number,
integer, intent(in)  nmom,
character(len=8), dimension(:)  rlab,
real(dp), dimension(:), intent(in), optional  mmom,
real(dp), dimension(:), intent(in), optional  rmom_vel 
)

...

Parameters
unit_number...
nmom...
rlab...
mmom...
rmom_vel...

Definition at line 2805 of file qs_moments.F.

Here is the caller graph for this function:

◆ calculate_commutator_nl_terms()

subroutine, public qs_moments::calculate_commutator_nl_terms ( type(qs_environment_type), pointer  qs_env,
real(dp), dimension(:), optional, allocatable  nlcom_rv,
real(dp), dimension(:), optional, allocatable  nlcom_rxrv,
real(dp), dimension(:), optional, allocatable  nlcom_rrv,
real(dp), dimension(:), optional, allocatable  nlcom_rvr,
real(dp), dimension(:), optional, allocatable  nlcom_rrv_vrr,
real(dp), dimension(3)  ref_point 
)

Calculate the expectation value of operators related to non-local potential: [r, Vnl], noted rv r x [r,Vnl], noted rxrv [rr,Vnl], noted rrv r x Vnl x r, noted rvr r x r x Vnl + Vnl x r x r, noted rrv_vrr Note that the 3 first operator are commutator while the 2 last are not. For reading clarity the same notation is used for all 5 operators.

Parameters
qs_env...
nlcom_rv...
nlcom_rxrv...
nlcom_rrv...
nlcom_rvr...
nlcom_rrv_vrr...
ref_point...

Definition at line 2872 of file qs_moments.F.

Here is the caller graph for this function:

◆ dipole_deriv_ao()

subroutine, public qs_moments::dipole_deriv_ao ( type(qs_environment_type), pointer  qs_env,
type(dbcsr_p_type), dimension(:, :), intent(inout), pointer  difdip,
real(kind=dp), dimension(:, :), intent(in), pointer  deltar,
integer, intent(in)  order,
real(kind=dp), dimension(3), optional  rcc 
)

...

Parameters
qs_env...
difdip...
deltaR...
order...
rcc...
Note
calculate matrix elements <a|r_beta |db/dR_alpha > + <da/dR_alpha | r_beta | b > be aware: < a | r_beta| db/dR_alpha > = - < da/dR_alpha | r_beta | b > only valid if alpha .neq.beta if alpha=beta: < a | r_beta| db/dR_alpha > = - < da/dR_alpha | r_beta | b > - < a | b > modified from qs_efield_mo_derivatives SL July 2015

Definition at line 3128 of file qs_moments.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_local_moment_matrix_rs_img()

subroutine, public qs_moments::build_local_moment_matrix_rs_img ( type(qs_environment_type), pointer  qs_env,
type(dbcsr_p_type), dimension(:, :), pointer  moments_rs_img,
real(kind=dp), dimension(3), optional  rcc 
)

Calculate local moment matrix for a periodic system for all image cells.

Parameters
qs_env...
moments_rs_img...
rcc...
Author
Shridhar Shanbhag

Definition at line 3464 of file qs_moments.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ qs_moment_kpoints_deep()

subroutine, public qs_moments::qs_moment_kpoints_deep ( type(qs_environment_type), pointer  qs_env,
real(kind=dp), dimension(:, :), allocatable  xkp,
complex(kind=dp), dimension(:, :, :, :, :), allocatable  dipole,
real(kind=dp), dimension(3), optional  rcc,
real(kind=dp), dimension(:, :, :, :), optional, allocatable  berry_c,
logical, optional  do_parallel 
)

Calculates the dipole moments and berry curvature for periodic systems for kpoints.

Parameters
qs_env...
xkplist of kpoints
dipole...
rcccoordinates about which to calculate the dipole
berry_cberry curvature calculated using Ω^γ_n = Σ_m 2*Im[d^α_nm (d^β_mn)*]
do_paralleloption to distribute the result in dipole across different MPI ranks
Author
Shridhar Shanbhag

Definition at line 3643 of file qs_moments.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ qs_moment_kpoints_scf_mos()

subroutine, public qs_moments::qs_moment_kpoints_scf_mos ( type(qs_environment_type), pointer  qs_env,
complex(kind=dp), dimension(:, :, :, :, :), allocatable  dipole,
real(kind=dp), dimension(3), optional  rcc,
integer, dimension(:), intent(out), optional, allocatable  nmo_spin_out 
)

Calculates interband k-point dipoles in the existing SCF MO basis.

Parameters
qs_env...
dipole...
rccretained for interface compatibility; interband dipoles are origin independent
nmo_spin_outnumber of SCF MOs available for each spin

Definition at line 3837 of file qs_moments.F.

Here is the caller graph for this function:

◆ qs_moment_kpoints()

subroutine, public qs_moments::qs_moment_kpoints ( type(qs_environment_type), pointer  qs_env,
integer, intent(in)  nmoments,
integer, intent(in)  reference,
real(dp), dimension(:), intent(in), pointer  ref_point,
integer, intent(in)  max_nmo,
integer, intent(in)  unit_number 
)

Calculate and print dipole moment elements d_nm(k) for k-point calculations.

Parameters
qs_env...
nmoments...
reference...
ref_point...
max_nmo...
unit_number...
Author
Shridhar Shanbhag

Definition at line 4054 of file qs_moments.F.

Here is the call graph for this function:
Here is the caller graph for this function: