![]() |
(git:7fc1fe1)
|
Calculates the moment integrals <a|r^m|b> and <a|r x d/dr|b>. More...
Functions/Subroutines | |
| subroutine, public | build_local_moment_matrix (qs_env, moments, nmoments, ref_point, ref_points, basis_type, all_images, minimum_image, neighbor_image, first_component) |
| ... | |
| subroutine, public | get_multipoles_ao (qs_env, n_moments, matrix_multipole, rpoint) |
| The AO multipoles M^k_µν = <φ_µ|(r - r_0)^k|φ_ν> of every order up to n_moments, on the block pattern of the overlap, about r_0, the centre of atomic charges; k = x, y, z for order 1, then xx, xy, xz, yy, yz, zz for order 2. | |
| subroutine, public | build_local_moments_der_matrix (qs_env, moments_der, nmoments_der, nmoments, ref_point, moments, basis_type, minimum_image, ordered, lambda, deltar, neighbor_image) |
| 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, ordered, ordered_kpoints) |
| ... | |
| subroutine, public | qs_moment_berry_phase (qs_env, magnetic, nmoments, reference, ref_point, unit_number, unit_str) |
| ... | |
| 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, unit_str) |
| ... | |
| subroutine, public | set_label (label, ix, iy, iz) |
| ... | |
| subroutine, public | print_moments (unit_number, nmom, rmom, rlab, rcc, cell, periodic, mmom, rmom_vel, unit_str) |
| ... | |
| 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 | 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, momentum, energy, do_parallel) |
| Calculate interband k-point dipole moments d_nm(k) = i<u_n|∇_k|u_m>, Berry curvature, momentum and band energies for a periodic system for k-points. | |
| subroutine, public | qs_moment_kpoints_deep_soc (qs_env, xkp, dipole, rcc, berry_c, momentum, energy, do_parallel) |
| Calculate interband k-point dipole moments d_nm(k) = i<u_n|∇_k|u_m>, Berry curvature, momentum and band energies for a periodic system for k-points with spin-orbit coupling (SOC) in the 2*nao spinor basis, via the length-gauge sum rule. SOC enters both the Hamiltonian and the velocity operator (the k-derivative of V^SOC is included). Mirrors qs_moment_kpoints_deep but promoted to spinor space; the two spin channels are merged into 2*nao spinor bands (returned with spin dimension 1). | |
| 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, do_soc, unit_str, dip_file, bc_file) |
| Calculate and print dipole moment elements d_nm(k) = i<u_n|∇_k|u_m> for k-point calculations. | |
Calculates the moment integrals <a|r^m|b> and <a|r x d/dr|b>.
| 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, | ||
| logical, optional | all_images, | ||
| logical, optional | minimum_image, | ||
| logical, optional | neighbor_image, | ||
| integer, optional | first_component ) |
...
| qs_env | ... |
| moments | ... |
| nmoments | ... |
| ref_point | ... |
| ref_points | ... |
| basis_type | ... |
| all_images | accumulate all neighbor images belonging to one atom pair |
| minimum_image | apply the half-cell image filter |
| neighbor_image | preserve the neighbor-list image geometry |
| first_component | first Cartesian moment component to write |
Definition at line 176 of file qs_moments.F.
| subroutine, public qs_moments::get_multipoles_ao | ( | type(qs_environment_type), pointer | qs_env, |
| integer, intent(in) | n_moments, | ||
| type(dbcsr_p_type), dimension(:), pointer | matrix_multipole, | ||
| real(kind=dp), dimension(3), intent(out) | rpoint ) |
The AO multipoles M^k_µν = <φ_µ|(r - r_0)^k|φ_ν> of every order up to n_moments, on the block pattern of the overlap, about r_0, the centre of atomic charges; k = x, y, z for order 1, then xx, xy, xz, yy, yz, zz for order 2.
| qs_env | source of the basis, the geometry and the overlap's block pattern |
| n_moments | highest order, 1 for dipoles, 2 adds quadrupoles |
| matrix_multipole | M^k_µν, one entry per component k, allocated here; the caller releases it |
| rpoint | r_0 |
Definition at line 441 of file qs_moments.F.
| 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, | ||
| character(len=*), optional | basis_type, | ||
| logical, optional | minimum_image, | ||
| logical, optional | ordered, | ||
| integer, optional | lambda, | ||
| real(kind=dp), dimension(:, :), optional, pointer | deltar, | ||
| logical, optional | neighbor_image ) |
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.
| qs_env | ... |
| moments_der | will contain the derivatives of the multipole moments |
| nmoments_der | order of the moments with derivatives |
| nmoments | order of the multipole moments (no derivatives, same output as build_local_moment_matrix, needs moments as arguments to store results) |
| ref_point | ... |
| moments | contains the multipole moments, optionally for free, up to order nmoments |
| basis_type | basis set used for the integral evaluation |
| minimum_image | apply the half-cell image filter |
| ordered | use ordered neighbor blocks and, for ordinary derivatives, the full neighbor list |
| lambda | optional atom selector for the right-hand derivative |
| deltaR | optional weights for left and right nuclear-coordinate derivatives |
| neighbor_image | use the neighbor-list image for coordinate construction |
Definition at line 499 of file qs_moments.F.
| 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 ) |
...
| qs_env | ... |
| magmom | ... |
| nmoments | ... |
| ref_point | ... |
| ref_points | ... |
| basis_type | ... |
Definition at line 907 of file qs_moments.F.
| 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 ) |
...
| qs_env | ... |
| cosmat | ... |
| sinmat | ... |
| kvec | ... |
| sab_orb_external | ... |
| basis_type | ... |
Definition at line 1113 of file qs_moments.F.
| 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, | ||
| logical, intent(in), optional | ordered, | ||
| type(kpoint_type), optional, pointer | ordered_kpoints ) |
...
| qs_env | ... |
| cosmat | ... |
| sinmat | ... |
| kvec | ... |
| basis_type | ... |
| ordered | use all ordered atom pairs for a non-Hermitian cross-k overlap |
| ordered_kpoints | image-cell mapping for the ordered neighbour list |
Definition at line 1151 of file qs_moments.F.
| 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, | ||
| character(len=*), intent(in), optional | unit_str ) |
...
| qs_env | ... |
| magnetic | ... |
| nmoments | ... |
| reference | ... |
| ref_point | ... |
| unit_number | ... |
| unit_str | unit of the printed moments (dipole unit of cp_units), default debye |
Definition at line 1380 of file qs_moments.F.
| 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 ) |
...
| cosmat | ... |
| sinmat | ... |
| mos | ... |
| op_fm_set | ... |
| opvec | ... |
Definition at line 1835 of file qs_moments.F.
| 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 ) |
...
| cosmat | ... |
| sinmat | ... |
| mos | ... |
| op_fm_set | ... |
| mos_new | ... |
Definition at line 1865 of file qs_moments.F.
| 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, | ||
| character(len=*), intent(in), optional | unit_str ) |
...
| qs_env | ... |
| magnetic | ... |
| nmoments | ... |
| reference | ... |
| ref_point | ... |
| unit_number | ... |
| vel_reprs | ... |
| com_nl | ... |
| unit_str | unit of the printed moments (dipole unit of cp_units), default debye |
Definition at line 1958 of file qs_moments.F.
| subroutine, public qs_moments::set_label | ( | character(len=*), intent(out) | label, |
| integer, intent(in) | ix, | ||
| integer, intent(in) | iy, | ||
| integer, intent(in) | iz ) |
...
| label | ... |
| ix | ... |
| iy | ... |
| iz | ... |
Definition at line 2372 of file qs_moments.F.
| 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, | ||
| character(len=*), intent(in), optional | unit_str ) |
...
| unit_number | ... |
| nmom | ... |
| rmom | ... |
| rlab | ... |
| rcc | ... |
| cell | ... |
| periodic | ... |
| mmom | ... |
| rmom_vel | ... |
| unit_str | unit of the printed electric moments (a dipole unit of cp_units), default debye |
Definition at line 2404 of file qs_moments.F.
| 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 ) |
...
| unit_number | ... |
| nmom | ... |
| rlab | ... |
| mmom | ... |
| rmom_vel | ... |
Definition at line 2585 of file qs_moments.F.
| 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.
| qs_env | ... |
| nlcom_rv | ... |
| nlcom_rxrv | ... |
| nlcom_rrv | ... |
| nlcom_rvr | ... |
| nlcom_rrv_vrr | ... |
| ref_point | ... |
Definition at line 2652 of file qs_moments.F.
| 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.
| qs_env | ... |
| moments_rs_img | ... |
| rcc | ... |
Definition at line 3029 of file qs_moments.F.
| 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(:, :, :, :, :), optional, allocatable | dipole, | ||
| real(kind=dp), dimension(3), optional | rcc, | ||
| real(kind=dp), dimension(:, :, :, :), optional, allocatable | berry_c, | ||
| complex(kind=dp), dimension(:, :, :, :, :), optional, allocatable | momentum, | ||
| real(kind=dp), dimension(:, :, :), optional, allocatable | energy, | ||
| logical, optional | do_parallel ) |
Calculate interband k-point dipole moments d_nm(k) = i<u_n|∇_k|u_m>, Berry curvature, momentum and band energies for a periodic system for k-points.
| qs_env | ... |
| xkp | list of kpoints |
| dipole | ... |
| rcc | coordinates about which to calculate the dipole |
| berry_c | berry curvature calculated using Ω^γ_n = -Σ_{m≠n} 2*Im[d^α_nm d^β_mn] |
| momentum | ... |
| energy | ... |
| do_parallel | option to distribute the result in dipole across different MPI ranks |
Definition at line 3271 of file qs_moments.F.
| subroutine, public qs_moments::qs_moment_kpoints_deep_soc | ( | type(qs_environment_type), pointer | qs_env, |
| real(kind=dp), dimension(:, :), allocatable | xkp, | ||
| complex(kind=dp), dimension(:, :, :, :, :), optional, allocatable | dipole, | ||
| real(kind=dp), dimension(3), optional | rcc, | ||
| real(kind=dp), dimension(:, :, :, :), optional, allocatable | berry_c, | ||
| complex(kind=dp), dimension(:, :, :, :, :), optional, allocatable | momentum, | ||
| real(kind=dp), dimension(:, :, :), optional, allocatable | energy, | ||
| logical, optional | do_parallel ) |
Calculate interband k-point dipole moments d_nm(k) = i<u_n|∇_k|u_m>, Berry curvature, momentum and band energies for a periodic system for k-points with spin-orbit coupling (SOC) in the 2*nao spinor basis, via the length-gauge sum rule. SOC enters both the Hamiltonian and the velocity operator (the k-derivative of V^SOC is included). Mirrors qs_moment_kpoints_deep but promoted to spinor space; the two spin channels are merged into 2*nao spinor bands (returned with spin dimension 1).
| qs_env | ... |
| xkp | k-points at which the dipoles are evaluated |
| dipole | optional output dipoles, dim (1, k copy, 3, 2*nao, 2*nao) |
| rcc | reference point for the local dipole operator (interband dipoles are origin-independent) |
| berry_c | optional SOC Berry curvature, dim (1, k copy, 3, 2*nao) |
| momentum | optional SOC momentum matrix elements p_nm, dim (1, k copy, 3, 2*nao, 2*nao) |
| energy | optional spinor band energies, dim (1, k copy, 2*nao) |
| do_parallel | distribute k-points over MPI ranks |
Definition at line 3572 of file qs_moments.F.
| 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.
| qs_env | ... |
| dipole | ... |
| rcc | retained for interface compatibility; interband dipoles are origin independent |
| nmo_spin_out | number of SCF MOs available for each spin |
Definition at line 3846 of file qs_moments.F.
| 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, | ||
| logical, intent(in) | do_soc, | ||
| character(len=*), intent(in), optional | unit_str, | ||
| character(len=*), intent(in), optional | dip_file, | ||
| character(len=*), intent(in), optional | bc_file ) |
Calculate and print dipole moment elements d_nm(k) = i<u_n|∇_k|u_m> for k-point calculations.
| qs_env | ... |
| nmoments | ... |
| reference | ... |
| ref_point | ... |
| max_nmo | ... |
| unit_number | ... |
| do_soc | include spin-orbit coupling (spinor sum-rule; requires an explicit KPOINT set) |
| unit_str | unit of the printed dipoles (dipole unit of cp_units), default debye; the Berry curvature is printed in the paired length unit squared |
| dip_file | if present and non-empty, the dipole matrix elements are written to this file instead of being printed to unit_number |
| bc_file | if present and non-empty, the Berry curvature is written to this file instead of being printed to unit_number |
Definition at line 4080 of file qs_moments.F.